module Fol_let: sig
.. end
module Smap: Datatype.String.Map
type
sigma = {
|
cpt : int Smap.t ; |
|
var : Fol.term Fol.Vmap.t ; |
}
val fresh : sigma -> Fol.Vmap.key -> Fol.Var.t * sigma
val alpha : sigma -> Fol.Vmap.key -> Fol.term
val def : Fol.pred -> Fol.pred
val redef : Fol.pred -> Fol.pred -> Fol.pred
val is_simple : Fol.term -> bool
val bind : Fol.Vmap.key -> Fol.term -> sigma -> sigma
val term : sigma -> Fol.term -> Fol.term
val pred : sigma -> Fol.pred -> Fol.pred
val empty : sigma
val compile : Fol.pred -> Fol.pred
val fresh_params : Fol.Var.t list ->
sigma -> Fol.Vmap.key list -> Fol.Var.t list * sigma
val compile_def : Fol.Vmap.key list -> Fol.pred -> Fol.Var.t list * Fol.pred