Documentation
¶
Overview ¶
Package modelchecker provides a simple library interface for running FizzBee simulations.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type SimulationConfig ¶
type SimulationConfig struct {
// Seed for random number generation (0 = use timestamp)
Seed int64
// PreinitHook is Starlark code to run before initialization
PreinitHook string
// Options for state space exploration (nil = use defaults)
Options *ast.StateSpaceOptions
// DirPath is the directory for loading modules (empty = no modules)
DirPath string
// VisitedMapTracking controls loop detection behavior
// Default: uses liveness-based logic
// Enabled: always track visited states
// Disabled: always clear visited map (no loop detection)
VisitedMapTracking VisitedMapTracking
}
SimulationConfig contains configuration for a single simulation run
type SimulationResult ¶
type SimulationResult struct {
// InitNode is the root node of the state graph
InitNode *modelchecker.Node
// FailedNode is the node where an invariant failed (nil if no failure)
FailedNode *modelchecker.Node
// Error is any error that occurred during simulation
Error error
}
SimulationResult contains the results of a simulation run
func RunSimulation ¶
func RunSimulation(specData []byte, config *SimulationConfig) *SimulationResult
RunSimulation performs a single simulation run on the given specification. This is a minimal wrapper around the existing Processor for library use.
Example:
specData := []byte(`{"actions": [...]}`) // JSON AST
result := modelchecker.RunSimulation(specData, &modelchecker.SimulationConfig{
Seed: 12345,
PreinitHook: "initial_value = 10",
})
if result.FailedNode != nil {
fmt.Println("Invariant violation found!")
}
type VisitedMapTracking ¶
type VisitedMapTracking int
VisitedMapTracking controls whether the visited map should track visited states
const ( // VisitedMapTrackingDefault uses the current logic based on liveness settings VisitedMapTrackingDefault VisitedMapTracking = 0 // VisitedMapTrackingEnabled always tracks visited states (don't clear the map) VisitedMapTrackingEnabled VisitedMapTracking = 1 // VisitedMapTrackingDisabled always clears the map (no loop detection) VisitedMapTrackingDisabled VisitedMapTracking = 2 )
Click to show internal directories.
Click to hide internal directories.