Make.Smtlib2_6
exception Error of State.t
type ty = Expr.ty
type ty_var = Expr.ty_var
type ty_cst = Expr.ty_cst
type ty_def = Expr.ty_def
type term = Expr.term
type term_var = Expr.term_var
type term_cst = Expr.term_cst
type formula = Expr.term
type nonrec !'a stmt = {
id : Dolmen.Std.Id.t;
loc : Dolmen.Std.Loc.t;
contents : 'a;
attrs : Dolmen.Std.Term.t list;
implicit : bool;
}
type def = [
| `Instanceof of
Dolmen.Std.Id.t * term_cst * ty list * ty_var list * term_var list * term
| `Term_def of Dolmen.Std.Id.t * term_cst * ty_var list * term_var list * term
| `Type_alias of Dolmen.Std.Id.t * ty_cst * ty_var list * ty
]
type get_info = [
| `Echo of string
| `Get_assertions
| `Get_assignment
| `Get_info of Dolmen.Std.Statement.term
| `Get_model
| `Get_option of Dolmen.Std.Statement.term
| `Get_proof
| `Get_unsat_assumptions
| `Get_unsat_core
| `Get_value of term list
| `Other of Dolmen.Std.Id.t * Dolmen.Std.Statement.term list
]
type set_info = [
| `Set_info of Dolmen.Std.Statement.term
| `Set_logic of string * Dolmen_type.Logic.t
| `Set_option of Dolmen.Std.Statement.term
]
type typechecked = [
| `Clause of formula list
| `Decls of bool * decl list
| `Defs of bool * def list
| `Echo of string
| `End
| `Exit
| `Get_assertions
| `Get_assignment
| `Get_info of Dolmen.Std.Statement.term
| `Get_model
| `Get_option of Dolmen.Std.Statement.term
| `Get_proof
| `Get_unsat_assumptions
| `Get_unsat_core
| `Get_value of term list
| `Goal of formula
| `Hyp of formula
| `Other of Dolmen.Std.Id.t * Dolmen.Std.Statement.term list
| `Pop of int
| `Push of int
| `Reset
| `Reset_assertions
| `Set_info of Dolmen.Std.Statement.term
| `Set_logic of string * Dolmen_type.Logic.t
| `Set_option of Dolmen.Std.Statement.term
| `Solve of formula list * formula list
]
module Env : sig ... end
module P : sig ... end
type acc =
Smtlib2(State)(Dolmen.Smtlib2.Script.V2_6.Print.Make)(Expr)(Sexpr)(View)(Typer_Types).acc =
{
env : Env.t;
fmt : Stdlib.Format.formatter;
close : unit -> unit;
}
val init : close:(unit -> unit) -> Stdlib.Format.formatter -> acc
val map_decl :
[< `Term_decl of 'a | `Type_decl of 'b * View.Ty.Def.t option ] ->
[> `Left of [> `Term_decl of 'a | `Type_decl of 'b ]
| `Right of
'b
* View.ty_var list
* (View.term_cst * (View.ty * View.term_cst) list) list ]
val register_simple_decl :
Env.t ->
[< `Term_decl of Expr.term_cst | `Type_decl of Expr.ty_cst ] ->
Env.t
val register_adt_decl :
Env.t ->
(Expr.ty_cst * 'a * (Expr.term_cst * ('b * Expr.term_cst) list) list) ->
Env.t
val print_simple_decl :
(State.t * acc) ->
[< `Term_decl of Env.term_cst | `Type_decl of Env.ty_cst ] ->
State.t * acc
val print_decls :
State.t ->
acc ->
[< `Implicit_type_var
| `Term_decl of Env.term_cst
| `Type_decl of Env.ty_cst * View.Ty.Def.t option ]
list ->
'a ->
State.t * acc
val map_def :
State.t ->
[< `Instanceof of 'a
| `Term_def of 'b * 'c * 'd * 'e * 'f
| `Type_alias of 'g * 'h * 'i * 'j ] ->
[> `Left of 'h * 'i * 'j | `Right of 'c * 'd * 'e * 'f ]
val assert_not_named : Expr.Term.Const.t -> unit
val print_defs :
State.t ->
acc ->
[< `Instanceof of 'a
| `Term_def of
'b * Expr.Term.Const.t * Env.ty_var list * Env.term_var list * Env.term
| `Type_alias of 'c * Env.ty_cst * Env.ty_var list * Env.ty ]
list ->
bool ->
State.t * acc
val is_not_trivially_false : View.Term.t -> bool
val print :
State.t ->
acc ->
Typer_Types.typechecked Typer_Types.stmt ->
State.t * acc