package psmt2-frontend

  1. Overview
  2. Docs
module SMap : sig ... end
val init : int -> (int -> 'a) -> 'a list
type assoc =
  1. | Right
  2. | Left
  3. | Chainable
  4. | Pairwise
type fun_def = {
  1. params : Smtlib_ty.ty;
  2. assoc : assoc option;
}
type env = {
  1. sorts : ((int * int) * (string -> (Smtlib_ty.ty list * int list) -> Smtlib_ty.desc)) SMap.t;
  2. funs : fun_def list SMap.t;
  3. par_funs : (string list -> fun_def) list SMap.t;
  4. constructors : int SMap.t SMap.t;
}
val empty : unit -> env
val get_arit : 'a Smtlib_syntax.data -> string -> int
val check_identifier : Smtlib_syntax.identifier_aux Smtlib_syntax.data -> int -> unit
val check_sort_already_exist : (env * 'a SMap.t) -> SMap.key Smtlib_syntax.data -> unit
val check_sort_exist : (env * 'a SMap.t) -> SMap.key Smtlib_syntax.data -> unit
val mk_sort_definition : int -> 'a -> bool -> (int * 'b) * (string -> (Smtlib_ty.ty list * 'c) -> Smtlib_ty.desc)
val mk_sort : (env * 'a SMap.t) -> SMap.key Smtlib_syntax.data -> ((int * int) * (string -> (Smtlib_ty.ty list * int list) -> Smtlib_ty.desc)) -> env
val mk_sort_decl : (env * 'a SMap.t) -> SMap.key Smtlib_syntax.data -> string -> bool -> env
val find_sort_def : env -> SMap.key Smtlib_syntax.data -> (int * int) * (string -> (Smtlib_ty.ty list * int list) -> Smtlib_ty.desc)
val add_sorts : env -> (SMap.key * ((int * int) * (string -> (Smtlib_ty.ty list * int list) -> Smtlib_ty.desc))) list -> env
val find_sort_symb : (env * Smtlib_ty.ty SMap.t) -> SMap.key Smtlib_syntax.data -> Smtlib_ty.ty list -> int list -> Smtlib_ty.ty
val extract_arit_ty_assoc : Smtlib_ty.ty -> int * Smtlib_ty.ty
val compare_fun_assoc : ('a * Smtlib_ty.ty Smtlib_ty.SMap.t) -> 'b Smtlib_syntax.data -> Smtlib_ty.ty -> Smtlib_ty.ty -> assoc -> Smtlib_ty.ty option
val compare_fun_def : ('a * Smtlib_ty.ty Smtlib_ty.SMap.t) -> 'b Smtlib_syntax.data -> Smtlib_ty.ty -> fun_def list -> bool -> Smtlib_ty.ty option
val find_fun : (env * Smtlib_ty.ty Smtlib_ty.SMap.t) -> SMap.key Smtlib_syntax.data -> Smtlib_ty.ty list -> string list -> bool -> Smtlib_ty.ty
val check_fun_exists : (env * Smtlib_ty.ty Smtlib_ty.SMap.t) -> SMap.key Smtlib_syntax.data -> Smtlib_ty.ty list -> bool -> unit
val mk_fun_ty : Smtlib_ty.ty list -> Smtlib_ty.ty -> assoc option -> fun_def
val mk_fun_ty_arg : Smtlib_ty.ty list -> Smtlib_ty.ty -> assoc option -> 'a -> 'b -> fun_def
val add_funs : env -> (SMap.key * fun_def) list -> env
val add_par_funs : env -> (SMap.key * (string list -> fun_def)) list -> env
val find_simpl_sort_symb : (env * 'a) -> SMap.key Smtlib_syntax.data -> Smtlib_ty.ty list -> Smtlib_ty.ty
val find_sort_name : Smtlib_syntax.sort_aux Smtlib_syntax.data -> Smtlib_syntax.symbol * string list