| Step of rule * int * int * direction * position * 'a substitution
(* rule, eq1, eq2, direction of eq2, position, substitution *)
| Step of rule * int * int * direction * position * 'a substitution
(* rule, eq1, eq2, direction of eq2, position, substitution *)
(* TODO: consider taking in input an imperative buffer for Format
* val pp : Format.formatter -> t -> unit
* *)
(* TODO: consider taking in input an imperative buffer for Format
* val pp : Format.formatter -> t -> unit
* *)
-module Utils (B : Blob) :
- sig
- val eq_foterm : B.t foterm -> B.t foterm -> bool
- val compare_foterm : B.t foterm -> B.t foterm -> int
+ val embed : t -> t foterm
+ (* saturate [proof] [type] -> [proof] * [type] *)
+ val saturate : t -> t -> t foterm * t foterm