Loop.Make
module State : Dolmen_loop.State.S
module Typer :
Dolmen_loop.Typer.Typer_Full
with type state := State.t
and type 'a key := 'a State.key
and type ty_state := Dolmen_loop.Typer.ty_state
and type env = Dolmen_loop.Typer.T.env
module Typer_Pipe :
Dolmen_loop.Typer.S
with type state := State.t
and type env = Typer.env
and type 'a key := 'a State.key
and type ty := Dolmen.Std.Expr.ty
and type ty_var := Dolmen.Std.Expr.ty_var
and type ty_cst := Dolmen.Std.Expr.ty_cst
and type ty_def := Dolmen.Std.Expr.ty_def
and type term := Dolmen.Std.Expr.term
and type term_var := Dolmen.Std.Expr.term_var
and type term_cst := Dolmen.Std.Expr.term_cst
and type formula := Dolmen.Std.Expr.formula
val check_model : bool State.key
val builtins : Env.builtins
val eval :
reraise_for_delayed_eval:bool ->
file:'a Dolmen_loop__State.file ->
loc:Dolmen.Std.Loc.full ->
State.t ->
Model.t ->
Dolmen_model.Fun.E.term ->
Value.t
val pack_abstract_defs :
loc:Dolmen.Std.Loc.full ->
file:Dolmen_loop.Logic.language file ->
[< `Instanceof of 'a
| `Term_def of
'b
* 'c
* Dolmen.Std.Expr.Term.ty_var list
* Dolmen.Std.Expr.Term.Var.t list
* Dolmen.Std.Expr.Term.t
| `Type_alias of 'd ]
list ->
('c * Dolmen.Std.Expr.Term.t) list located
val record_defs :
State.t ->
Model.t ->
Dolmen.Std.Expr.Term.Const.t list ->
Dolmen.Std.Statement.defs ->
[< `Instanceof of
'a
* Dolmen.Std.Expr.Term.Const.t
* Dolmen_model.Fun.E.Ty.t list
* 'b list
* Dolmen_model.Fun.E.Term.Var.t list
* Dolmen.Std.Expr.Term.t
| `Term_def of
'c
* Dolmen.Std.Expr.Term.Const.t
* Dolmen.Std.Expr.Term.ty_var list
* Dolmen.Std.Expr.Term.Var.t list
* Dolmen.Std.Expr.Term.t
| `Type_alias of 'd ]
list ->
State.t * Model.t * Dolmen.Std.Expr.Term.Const.t list
val are_defs_declared : State.t -> Dolmen.Std.Statement.defs -> State.t * bool
val type_model_aux :
input:Typer.input ->
?attrs:Dolmen.Std.Term.t list ->
State.t ->
Model.t ->
Dolmen.Std.Expr.Term.Const.t list ->
Dolmen.Std.Statement.def Dolmen.Std.Statement.group ->
State.t * Model.t * Dolmen.Std.Expr.Term.Const.t list
val type_model_defined :
input:Typer.input ->
?attrs:Dolmen.Std.Term.t list ->
State.t ->
Model.t ->
Dolmen.Std.Expr.Term.Const.t list ->
Dolmen.Std.Statement.defs list ->
State.t
* Model.t
* Dolmen.Std.Expr.Term.Const.t list
* Dolmen.Std.Statement.defs list
val type_model_partial :
?attrs:Dolmen.Std.Term.t list ->
State.t ->
Model.t ->
Dolmen.Std.Statement.defs list ->
State.t
* Model.t
* Dolmen.Std.Expr.Term.Const.t list
* Dolmen.Std.Statement.defs list
val gen_answer :
(State.t -> 'a * Dolmen.Std.Answer.t option) ->
State.t ->
'a * answer
val get_answer :
file:'a Dolmen_loop__State.file ->
loc:Dolmen.Std.Loc.full ->
State.t ->
State.t * answer
val eval_prop :
reraise:bool ->
file:Dolmen_loop.Logic.language Dolmen_loop.State.file ->
loc:Dolmen.Std.Loc.full ->
State.t ->
Model.t ->
Dolmen.Std.Expr.Term.t ->
bool
val eval_clause :
reraise:bool ->
State.t ->
Model.t ->
Dolmen.Std.Expr.Term.t list located ->
State.t
val check_defs :
State.t ->
file:Dolmen_loop.Logic.language file ->
loc:Dolmen.Std.Loc.full ->
[< `Instanceof of 'a
| `Term_def of
'b
* cst
* Dolmen.Std.Expr.Term.ty_var list
* Dolmen.Std.Expr.Term.Var.t list
* Dolmen.Std.Expr.Term.t
| `Type_alias of 'c ]
list ->
State.t
val check_hyps :
State.t ->
file:Dolmen_loop.Logic.language Dolmen_loop.State.file ->
loc:Dolmen.Std.Loc.full ->
term ->
State.t
val check_goal :
State.t ->
file:Dolmen_loop.Logic.language Dolmen_loop.State.file ->
loc:Dolmen.Std.Loc.full ->
term ->
State.t
val check_clause :
State.t ->
file:Dolmen_loop.Logic.language Dolmen_loop.State.file ->
loc:Dolmen.Std.Loc.full ->
term list ->
State.t
val check_solve :
State.t ->
file:Dolmen_loop.Logic.language Dolmen_loop.State.file ->
loc:Dolmen.Std.Loc.full ->
term list ->
term list ->
State.t
val check :
State.t ->
Typer_Pipe.typechecked Typer_Pipe.stmt list ->
State.t * Typer_Pipe.typechecked Typer_Pipe.stmt list