X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_unification%2FcicMetaSubst.mli;h=96f87205f4723e715ce84c114c63c500d6cc094f;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;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..96f87205f 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,15 +51,25 @@ 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 val ppsubst: Cic.substitution -> string val ppterm: Cic.substitution -> Cic.term -> string val ppcontext: ?sep: string -> Cic.substitution -> Cic.context -> string -val ppterm_in_context: +val ppterm_in_name_context: Cic.substitution -> Cic.term -> (Cic.name option) list -> string -val ppmetasenv: ?sep: string -> Cic.metasenv -> Cic.substitution -> string +val ppterm_in_context: + Cic.substitution -> Cic.term -> Cic.context -> 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