- Type Parameters:
B- the concrete bigraph type used by the reactive system
- Direct Known Subclasses:
PureBigraphModelChecker
The model checker can operate with different traversal strategies (e.g., BFS, DFS, first-match variants, random exploration), enabling exhaustive analysis or guided simulations depending on the chosen configuration.
During simulation, the model checker emits state-space events through
BigraphModelChecker.ReactiveSystemListener instances (inner class of this class). Listeners notify the user when predicates are
evaluated, reaction rules applied or when lifecycle events are emitted.
After execution, the reaction graph (transition system, ReactionGraph) can be retrieved for inspection or further analysis.
For example, it can be exported via ReactionGraphExporter or DOTReactionGraphExporter.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceBigraphModelChecker.ReactiveSystemListener<B extends Bigraph<? extends Signature<?>>>static classEnum-like class that holds all kind of simulations. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected BigraphCanonicalFormprotected ModelCheckingStrategy<B> protected ModelCheckingOptionsprotected BigraphModelChecker.ReactiveSystemListener<B> -
Constructor Summary
ConstructorsConstructorDescriptionBigraphModelChecker(ReactiveSystem<B> reactiveSystem, BigraphModelChecker.SimulationStrategy.Type simulationStrategyType, ModelCheckingOptions options) Creates a BigraphModelChecker using the specified exploration strategy.BigraphModelChecker(ReactiveSystem<B> reactiveSystem, BigraphModelChecker.SimulationStrategy.Type simulationStrategyType, ModelCheckingOptions options, BigraphModelChecker.ReactiveSystemListener<B> listener) Creates a BigraphModelChecker with a specified exploration strategy and an optional listener.BigraphModelChecker(ReactiveSystem<B> reactiveSystem, ModelCheckingOptions options) Creates a BigraphModelChecker using Breadth-First Search (BFS) as default exploration strategy. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidPerforms some checks if the reactive system is valid.voidexecute()Perform the simulation based on the provided reactive system and options.Asynchronously start the simulation based on the provided reactive system and options.voidexportReactionGraph(ReactionGraph<B> reactionGraph) protected StringexportState(B bigraph, String canonicalForm, String suffix) Exports a bigraph to the filesystem using the export options setting from the member variableoptions.setReactiveSystemListener(BigraphModelChecker.ReactiveSystemListener<B> reactiveSystemListener) <A> A
-
Field Details
-
modelCheckingStrategy
-
simulationStrategyType
-
reactiveSystemListener
protected BigraphModelChecker.ReactiveSystemListener<B extends Bigraph<? extends Signature<?>>> reactiveSystemListener -
canonicalForm
-
options
-
-
Constructor Details
-
BigraphModelChecker
Creates a BigraphModelChecker using Breadth-First Search (BFS) as default exploration strategy.BFS ensures a level-by-level expansion of the reactive system and is typically preferred for exhaustive model checking where completeness and shortest-path properties are desired.
- Parameters:
reactiveSystem- the reactive system to be exploredoptions- configuration settings controlling model checking behavior
-
BigraphModelChecker
public BigraphModelChecker(ReactiveSystem<B> reactiveSystem, BigraphModelChecker.SimulationStrategy.Type simulationStrategyType, ModelCheckingOptions options) Creates a BigraphModelChecker using the specified exploration strategy.This constructor allows selecting between different model checking strategies, such as BFS, DFS, first-match variants, or randomized exploration. The choice of strategy influences how the state space is traversed:
- BFS: Exhaustive, level-order traversal.
- DFS: Deep-path exploration, useful for long execution traces.
- BFS_FIRST_MATCH / DFS_FIRST_MATCH: Deterministic path exploration using only the first available successor in natural match order.
- RANDOM: Stochastic exploration for sampling-based analysis.
- Parameters:
reactiveSystem- the reactive system to be exploredsimulationStrategyType- the traversal strategy to be usedoptions- configuration settings controlling model checking behavior
-
BigraphModelChecker
public BigraphModelChecker(ReactiveSystem<B> reactiveSystem, BigraphModelChecker.SimulationStrategy.Type simulationStrategyType, ModelCheckingOptions options, BigraphModelChecker.ReactiveSystemListener<B> listener) Creates a BigraphModelChecker with a specified exploration strategy and an optional listener.The listener can be used for advanced use cases where one needs to observe state-space exploration events (e.g., rule triggered, or predicate matched).
- Parameters:
reactiveSystem- the reactive system to be exploredsimulationStrategyType- the traversal strategy to be usedoptions- configuration settings controlling model checking behaviorlistener- optional listener for reactive system events (may benull)
-
-
Method Details
-
acquireCanonicalForm
-
execute
Perform the simulation based on the provided reactive system and options.- Throws:
BigraphSimulationException- if agent isnullor the simulation strategy was not selectedReactiveSystemException
-
executeAsync
Asynchronously start the simulation based on the provided reactive system and options.- Throws:
ReactiveSystemException
-
assertReactionSystemValid
Performs some checks if the reactive system is valid.- Throws:
ReactiveSystemException- if the system is not valid
-
getReactiveSystem
-
getPredicates
-
getMatcher
-
getReactionGraph
-
watch
-
exportState
Exports a bigraph to the filesystem using the export options setting from the member variableoptions.- Parameters:
bigraph- the bigraph to be exportedcanonicalForm- its canonical formsuffix- a suffix for the filename- Returns:
- the exported state label, or
null
-
exportReactionGraph
- Throws:
IOException
-
setReactiveSystemListener
public BigraphModelChecker<B> setReactiveSystemListener(BigraphModelChecker.ReactiveSystemListener<B> reactiveSystemListener)
-