module Ptree:sig
..end
type
term =
| |
TVar of |
| |
TTerm of |
type
atom =
| |
AVar of |
| |
AAtom of |
| |
AEq of |
| |
ANeq of |
| |
ALe of |
| |
ALt of |
type
formula =
| |
PAtom of |
| |
PNot of |
| |
PAnd of |
| |
POr of |
| |
PImp of |
| |
PEquiv of |
| |
PIte of |
| |
PForall of |
| |
PExists of |
| |
PForall_other of |
| |
PExists_other of |
type
term_or_formula =
| |
PF of |
| |
PT of |
typecformula =
formula
typepswts =
(cformula * term) list
type
pglob_update =
| |
PUTerm of |
| |
PUCase of |
type
pupdate = {
|
pup_loc : |
|
pup_arr : |
|
pup_arg : |
|
pup_swts : |
type
ptransition = {
|
ptr_lets : |
|
ptr_name : |
|
ptr_args : |
|
ptr_reqs : |
|
ptr_assigns : |
|
ptr_upds : |
|
ptr_nondets : |
|
ptr_loc : |
type
psystem = {
|
pglobals : |
|
pconsts : |
|
parrays : |
|
ptype_defs : |
|
pinit : |
|
pinvs : |
|
punsafe : |
|
ptrans : |
type
pdecl =
| |
PInit of |
| |
PInv of |
| |
PUnsafe of |
| |
PTrans of |
| |
PFun |
val add_fun_def : Hstring.t -> Variable.t list -> formula -> unit
val app_fun : Hstring.t -> term_or_formula list -> formula
val encode_psystem : psystem -> Ast.system
val psystem_of_decls : pglobals:(Util.loc * Hstring.t * Smt.Type.t) list ->
pconsts:(Util.loc * Hstring.t * Smt.Type.t) list ->
parrays:(Util.loc * Hstring.t * (Smt.Type.t list * Smt.Type.t)) list ->
ptype_defs:(Util.loc * Ast.type_constructors) list ->
pdecl list -> psystem
val print_system : Format.formatter -> Ast.system -> unit