X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsyntax%2Fpreterm.ma;h=6406d1dd7e50900f498b1832728315c5701e89e9;hb=829e3a8af3229c4e625245f7265dd67939da98c4;hp=9da0aa838e6f1a9b018063deb566c83d615aa80f;hpb=cfd201c62dd9b854bfb4ada648d3e556b29fac3a;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm.ma index 9da0aa838..6406d1dd7 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm.ma @@ -14,21 +14,28 @@ include "delayed_updating/syntax/prototerm.ma". include "delayed_updating/syntax/path_structure.ma". -include "delayed_updating/notation/relations/predicate_t_hook_1.ma". +include "delayed_updating/notation/functions/class_t_0.ma". (* PRETERM ******************************************************************) +(* Note: a preterm is a prototerm satislying the condition below *) (* Note: different root paths have different structure *) definition structure_injective: predicate prototerm ≝ λt. ∀p1,p2. p1 ϵ ▵t → p2 ϵ ▵t → ⊗p1 = ⊗p2 → p1 = p2 . -(* Note: a preterm is a prototerm satislying the conditions above *) -record is_preterm (t): Prop ≝ -{ - is_pt_injective: structure_injective t -}. - interpretation - "preterm condition (prototerm)" - 'PredicateTHook t = (is_preterm t). + "preterm (prototerm)" + 'ClassT = (structure_injective). + +(* Basic inversions *********************************************************) + +lemma preterm_in_root_append_inv_structure_empty_dx (t) (p) (q): + p●q ϵ ▵t → t ϵ 𝐓 → 𝐞 = ⊗q → 𝐞 = q. +#t #p #q #Hpq #Ht #Hq +lapply (Ht p ?? Hpq ?) +[