Skip to content

ltl-analyze

The commands are under static analysis. This page is the module.

npm install --save-dev @rhysbalevicius/ltl-analyze

Each opens and closes a solver session around the call, except verify, which needs none.

vacuity(spec, options?) Rules that pass for the wrong reasons.
consistency(spec, options?) Whether the rules can hold together.
witness(spec, ruleId, options?) The shortest trace that breaks one rule while the others hold.
verify(spec, workflow) Rules against a declared graph. Synchronous.
RunOptions { horizon }.
Report
VacuityReport Findings, each unsatisfiable, never-fires or implied.
ConsistencyReport { consistent, conflict?, witness? }.
WitnessReport The trace, or why there is none.
VerifyReport VerifyFindings, including out-of-scope rules.
Finding, VerifyFinding, Witness The entries those carry.
analyzeVacuity, analyzeConsistency, synthesizeWitness The same analyses, taking a solver rather than opening one.
verifyWorkflow(spec, source) What verify calls.
withSolver(work) Opens a session, runs the work, closes it.
openSolver() { solve, close }. The session owns worker threads: a process that forgets close will not exit.
SolverUnavailable Thrown when the solver cannot start. Also exported as SolverError.
Z3Session What openSolver returns.
AnalyzeOptions { solver, horizon }.
info, AnalyzeInfo The capability probe the CLI reads after its dynamic import, so an older binary can say what a newer package offers.
encode(spec, options) A rule set into constraints.
decode(assignment, alphabet) A satisfying assignment back into events.
horizonFor(spec) The bound, sized from the widest window the rules declare.
alphabetOf(spec) The events the rules can distinguish.
Encoding, Alphabet, FieldAlphabet Those types.
Problem, Declarations, Term, Assignment The solver-independent constraint IR.
evaluate(problem, assignment) The IR under an assignment, which is how a candidate is checked before it is reported.
solveByEnumeration(problem) A reference solver, used to test the real one.
Solver, Verdict The solver interface.
skeletonOf(source), Skeleton The step structure a declaration determines.
pathsOf(skeleton) Every step order it permits.
traceOf(path) One of those as real events, which is what gets replayed.
checkCtl(graph, formula) A quantified rule against a graph.
labelGraph(graph, props) The graph with propositions attached to states.
containsExistential(f) Whether a result rests on a possibilistic claim.
CtlReport, CtlResult, CtlWitness What checkCtl returns, including the path or lasso.
GraphSource A workflow, or a graph supplied directly.
PAYLOAD_MATCHER_MESSAGE, CUSTOM_PREDICATE_MESSAGE, linearOperatorMessage What the CTL fragment says when it refuses something, so a report explains rather than declines.

The soundness stance is worth reading before trusting any of this: universal verdicts are sound, existential ones are possibilistic, and the reports label which is which.