X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_unification%2FcicMetaSubst.mli;h=fd770215a1bb1e42ebf5ef70c830fcac416fc421;hb=2f4e2076f4b53f0c3e277bff67268cb80bfae967;hp=3d1032aa85b629092ea3b4ca6f8a4a90aeb77506;hpb=0de03e5561ce39a3e684e367be7f5b7979575af9;p=helm.git diff --git a/helm/ocaml/cic_unification/cicMetaSubst.mli b/helm/ocaml/cic_unification/cicMetaSubst.mli index 3d1032aa8..fd770215a 100644 --- a/helm/ocaml/cic_unification/cicMetaSubst.mli +++ b/helm/ocaml/cic_unification/cicMetaSubst.mli @@ -26,18 +26,14 @@ exception AssertFailure of string exception MetaSubstFailure of string -val delift : - Cic.context -> Cic.metasenv -> (Cic.term option) list -> Cic.term -> - Cic.term * Cic.metasenv - (* The entry (i,t) in a substitution means that *) (* (META i) have been instantiated with t. *) type substitution = (int * Cic.term) list -(* unwind_subst metasenv subst *) -(* unwinds [subst] w.r.t. itself. *) -(* It can restrict some metavariable in the [metasenv] *) -val unwind_subst : Cic.metasenv -> substitution -> substitution * Cic.metasenv +val delift : + int -> substitution -> Cic.context -> Cic.metasenv -> + (Cic.term option) list -> Cic.term -> + Cic.term * Cic.metasenv * substitution (* apply_subst subst t *) (* applies the substitution [subst] to [t] *) @@ -55,20 +51,26 @@ val apply_subst : substitution -> Cic.term -> Cic.term (* during the unwinding the eta-expansions are undone. *) (* [subst] must be already unwinded *) val apply_subst_reducing : - substitution -> (int * int) option -> Cic.term -> Cic.term + (int * int) option -> substitution -> Cic.term -> Cic.term val apply_subst_context : substitution -> Cic.context -> Cic.context (** {2 Pretty printers} *) val ppcontext: ?sep: string -> substitution -> Cic.context -> string -val ppmetasenv: ?sep: string -> substitution -> Cic.metasenv -> string +val ppmetasenv: ?sep: string -> Cic.metasenv -> substitution -> string val ppsubst: substitution -> string +val ppterm: substitution -> Cic.term -> string -(* From now on we recreate a kernel abstraction where substitutions are part of +(* {2 Kernel wrappers} + * From now on we recreate a kernel abstraction where substitutions are part of * the calculus *) +val lift : substitution -> int -> Cic.term -> Cic.term +val subst: substitution -> Cic.term -> Cic.term -> Cic.term val whd: substitution -> Cic.context -> Cic.term -> Cic.term +val are_convertible: substitution -> Cic.context -> Cic.term -> Cic.term -> bool + val type_of_aux': Cic.metasenv -> substitution -> Cic.context -> Cic.term -> Cic.term