QEQuantifier elimination
exception QuantifiedTermFound of Term.tThe functions in this module are stafeful. They reuse the same solver instance and initial declarations unless on_exit is called in between
val set_ubound : Numeral.t -> unitSet the upper bound used in the initial declaration of the variables
val get_ubound : unit -> Numeral.tGet the upper bound used in the initial declaration of the variables
val generalize :
TransSys.t ->
(UfSymbol.t * (Var.t list * Term.t)) list ->
Model.t ->
Var.t list ->
Term.t ->
Term.t listgeneralize f m evaluates the term f with the model m and returns a term g that is implied by the model m and that implies the term f with the post-state variables existentially quantified. The returned term g contains only pre-state variables.
M |= g
g |= exists y f[y]
with y being the vector of post-state variables in f.
val ae_val : TransSys.t -> Term.t -> Var.t list -> Term.t -> responseae_val s p v c returns Valid t if (\forall vars(p). p => \exists v. c) is valid, otherwise it returns Invalid t. In both cases, t is such that (\forall vars(p). p => t <=> \exists v. c)