module Ltl:sig
..end
Linear temporal logic
exception No_next_state
No next state in path.
type
expr =
| |
True |
|||
| |
False |
|||
| |
Var of |
|||
| |
And of |
|||
| |
Or of |
|||
| |
Impl of |
|||
| |
Iff of |
|||
| |
U of |
(* | until | *) |
| |
R of |
(* | release | *) |
| |
W of |
(* | weak | *) |
| |
M of |
(* | strong release | *) |
| |
Not of |
|||
| |
X of |
(* | ◯f -- true in next state | *) |
| |
G of |
(* | □f -- globally true | *) |
| |
F of |
(* | ◊f -- eventually true | *) |
val to_nnf : expr -> expr
Convert formula to negation normal form. Result contains only propositional connectives and U, R, X. Negations will only appear in front of atomic symbols.
val fmla_as_string : expr -> string
Formula as string
val to_atomics : expr -> expr
Rewrite formula to use only propositional operators, X, and U.
val eval_fmla : expr -> (string * bool) list list -> bool
Evaluate formula over path.
val modal_depth : expr -> int
Maximum depth of nested modalities in a formula.