Module Sidekick_smtlib.Ast
Preprocessing AST
Types
module Var : sig ... endmodule Ty : sig ... endtype var= Ty.t Var.ttype op=|And|Or|Imply|Eq|Distincttype arith_op=|Leq|Lt|Geq|Gt|Add|Minus|Mult|Divtype binder=|Fun|Forall|Exists|Mutype term= private{term : term_cell;ty : Ty.t;}and term_cell=|Var of var|Const of Sidekick_base_term.ID.t|Num_z of Z.t|Num_q of Q.t|App of term * term list|If of term * term * term|Match of term * (var list * term) Sidekick_base_term.ID.Map.t|Select of select * term|Bind of binder * var * term|Arith of arith_op * term list|Let of (var * term) list * term|Not of term|Op of op * term list|Asserting of{t : term;guard : term;}|Undefined_value|Bool of booland select={select_name : Sidekick_base_term.ID.t lazy_t;select_cstor : Sidekick_base_term.ID.t;select_i : int;}type definition= Sidekick_base_term.ID.t * Ty.t * termtype statement=|SetLogic of string|SetOption of string list|SetInfo of string list|Data of Ty.data list|TyDecl of Sidekick_base_term.ID.t * int|Decl of Sidekick_base_term.ID.t * Ty.t|Define of definition list|Assert of term|Goal of var list * term|CheckSat|Exit
Constructors
val term_view : term -> term_cellval ty : term -> Ty.tval var : var -> termval const : Sidekick_base_term.ID.t -> Ty.t -> termval app : term -> term list -> termval app_a : term -> term array -> termval if_ : term -> term -> term -> termval match_ : term -> (var list * term) Sidekick_base_term.ID.Map.t -> termval let_ : var -> term -> term -> termval let_l : (var * term) list -> term -> termval bind : ty:Ty.t -> binder -> var -> term -> termval select : ty:Ty.t -> select -> term -> termval fun_ : var -> term -> termval fun_l : var list -> term -> termval fun_a : var array -> term -> termval forall : var -> term -> termval forall_l : var list -> term -> termval exists : var -> term -> termval exists_l : var list -> term -> termval mu : var -> term -> termval eq : term -> term -> termval not_ : term -> termval op : op -> term list -> termval and_ : term -> term -> termval and_l : term list -> termval or_ : term -> term -> termval or_l : term list -> termval imply : term -> term -> termval true_ : termval false_ : termval undefined_value : Ty.t -> termval asserting : term -> term -> termval num_z : Ty.t -> Z.t -> termval num_q : Ty.t -> Q.t -> termval num_str : Ty.t -> string -> termparses int +
num
helpers
Printing
Environment
type env_entry=|E_uninterpreted_ty|E_uninterpreted_cst|E_const of Ty.t|E_data of Ty.t Sidekick_base_term.ID.Map.t|E_cstor of Ty.t|E_defined of Ty.t * termtype env={defs : env_entry Sidekick_base_term.ID.Map.t;}Environment with definitions and goals