package dolmen_loop

  1. Overview
  2. Docs

Extended signature for typer.

type state

Global state for the while pipeline.

type 'a key

Type of keys for the state.

type ty_state

The type for the state of the typer.

type env

The type of the typechecker environment.

type 'a fragment

The type of fragments on which error/warning can occur.

type error

The type of type-checking errors.

type warning

The type of type-checking warnings.

type builtin_symbols

The type of builin symbols for the type-checker.

val ty_state : ty_state key

Key to store the local typechecking state in the global pipeline state.

val check_model : bool key

The typechecker needs to know whether we are checking models or not.

val smtlib2_forced_logic : string option key

The typechecker needs to know whether we are checking models or not.

val init : ?ty_state:ty_state -> ?smtlib2_forced_logic:string option -> state -> state

This signature includes the requirements to instantiate the {Pipes.Make: functor

include Typer with type state := state 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 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
type input = [
  1. | `Logic of Logic.language State.file
  2. | `Response of Response.language State.file
]
val reset : state -> ?loc:Dolmen.Std.Loc.t -> unit -> state
val reset_assertions : state -> ?loc:Dolmen.Std.Loc.t -> unit -> state
val push : state -> input:input -> ?loc:Dolmen.Std.Loc.t -> int -> state
val pop : state -> input:input -> ?loc:Dolmen.Std.Loc.t -> int -> state
val set_logic : state -> input:input -> ?loc:Dolmen.Std.Loc.t -> string -> state
val defs : mode:[ `Create_id | `Use_declared_id ] -> state -> input:input -> ?loc:Dolmen.Std.Loc.t -> ?attrs:Dolmen.Std.Term.t list -> Dolmen.Std.Statement.defs -> state * [ `Type_def of Dolmen.Std.Id.t * Dolmen.Std.Expr.ty_cst * Dolmen.Std.Expr.ty_var list * Dolmen.Std.Expr.ty | `Term_def of Dolmen.Std.Id.t * Dolmen.Std.Expr.term_cst * Dolmen.Std.Expr.ty_var list * Dolmen.Std.Expr.term_var list * Dolmen.Std.Expr.term ] list
val decls : state -> input:input -> ?loc:Dolmen.Std.Loc.t -> ?attrs:Dolmen.Std.Term.t list -> Dolmen.Std.Statement.decls -> state * [ `Type_decl of Dolmen.Std.Expr.ty_cst | `Term_decl of Dolmen.Std.Expr.term_cst ] list
val terms : state -> input:input -> ?loc:Dolmen.Std.Loc.t -> ?attrs:Dolmen.Std.Term.t list -> Dolmen.Std.Term.t list -> state * Dolmen.Std.Expr.term list
val formula : state -> input:input -> ?loc:Dolmen.Std.Loc.t -> ?attrs:Dolmen.Std.Term.t list -> goal:bool -> Dolmen.Std.Term.t -> state * Dolmen.Std.Expr.formula
val formulas : state -> input:input -> ?loc:Dolmen.Std.Loc.t -> ?attrs:Dolmen.Std.Term.t list -> Dolmen.Std.Term.t list -> state * Dolmen.Std.Expr.formula list
val report_error : input:input -> state -> error -> state

Report a typing error by calling the appropriate state function.

val report_warning : input:input -> state -> warning -> state

Return a typing warning by calling the appropriate state function.

val additional_builtins : builtin_symbols Stdlib.ref

This reference can be modified to parse new builtin symbols. By default no additional builtin symbols are parsed. It is added for all the languages except Dimacs, and iCNF.

val pop_inferred_model_constants : state -> Dolmen.Std.Expr.term_cst list

TODO:doc