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=aabb5adae086e3bf10d98b1fe4f87783c8c3bda1;hpb=9605ffc88831066a901ea4eb8e419f277662f372;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 aabb5adae..6406d1dd7 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm.ma @@ -12,33 +12,30 @@ (* *) (**************************************************************************) -include "ground/lib/subset.ma". -include "delayed_updating/syntax/path.ma". -include "delayed_updating/notation/functions/pitchfork_2.ma". -include "delayed_updating/notation/functions/uptriangle_1.ma". +include "delayed_updating/syntax/prototerm.ma". +include "delayed_updating/syntax/path_structure.ma". +include "delayed_updating/notation/functions/class_t_0.ma". (* PRETERM ******************************************************************) -(* Note: preterms are subsets of complete paths *) -definition preterm: Type[0] ≝ 𝒫❨path❩. - -definition preterm_grafted: path → preterm → preterm ≝ - λp,t,q. p;;q ϵ t. - -interpretation - "grafted (preterm)" - 'Pitchfork t p = (preterm_grafted p t). - -definition preterm_root: preterm → preterm ≝ - λt,q. ∃r. q;;r ϵ t. +(* 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 +. interpretation - "root (preterm)" - 'UpTriangle t = (preterm_root t). - -(* Basic constructions ******************************************************) - -lemma preterm_in_comp_root (p) (t): - p ϵ t → p ϵ ▵t. -/2 width=2 by ex_intro/ -qed. + "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 ?) +[