X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_unification%2FcicMetaSubst.mli;h=890a347b006b879660f9908569c5a0a2de7c83f1;hb=1276d3c7b85f4edc049a5d68a6120816fe64c806;hp=9a0bee6ae842d2c551778843bf809ce857a422a6;hpb=1592bfa20a80f2f58fe0593c019689cb32072db6;p=helm.git diff --git a/helm/ocaml/cic_unification/cicMetaSubst.mli b/helm/ocaml/cic_unification/cicMetaSubst.mli index 9a0bee6ae..890a347b0 100644 --- a/helm/ocaml/cic_unification/cicMetaSubst.mli +++ b/helm/ocaml/cic_unification/cicMetaSubst.mli @@ -23,9 +23,10 @@ * http://helm.cs.unibo.it/ *) -exception MetaSubstFailure of string -exception Uncertain of string -exception AssertFailure of string +exception MetaSubstFailure of string Lazy.t +exception Uncertain of string Lazy.t +exception AssertFailure of string Lazy.t +exception DeliftingARelWouldCaptureAFreeVariable;; (* The entry (i,t) in a substitution means that *) (* (META i) have been instantiated with t. *) @@ -50,6 +51,14 @@ val delift : val restrict : Cic.substitution -> (int * int) list -> Cic.metasenv -> Cic.metasenv * Cic.substitution + +(** delifts the Rels in t of n + * @raise DeliftingARelWouldCaptureAFreeVariable + *) +val delift_rels : + Cic.substitution -> Cic.metasenv -> int -> Cic.term -> + Cic.term * Cic.substitution * Cic.metasenv + (** {2 Pretty printers} *) val ppsubst_unfolded: Cic.substitution -> string @@ -58,7 +67,7 @@ val ppterm: Cic.substitution -> Cic.term -> string val ppcontext: ?sep: string -> Cic.substitution -> Cic.context -> string val ppterm_in_context: Cic.substitution -> Cic.term -> (Cic.name option) list -> string -val ppmetasenv: ?sep: string -> Cic.metasenv -> Cic.substitution -> string +val ppmetasenv: ?sep: string -> Cic.substitution -> Cic.metasenv -> string (** {2 Format-like pretty printers} * As above with prototypes suitable for toplevel/ocamldebug printers. No