X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsyntax%2Fpath_proper.ma;h=5d29633620eb9b15364d24f5177a28b8667db624;hb=306205b6853874cf485152222593b57249c6e7fa;hp=e519394f4e98d76220a7a3000ff6c7aeb96a28cd;hpb=ac8d0dc0c6fb995736e0c10486d996bd023f3c32;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_proper.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_proper.ma index e519394f4..5d2963362 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_proper.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_proper.ma @@ -13,7 +13,8 @@ (**************************************************************************) include "delayed_updating/syntax/path.ma". -include "delayed_updating/notation/relations/predicate_p_tail_1.ma". +include "delayed_updating/notation/functions/class_p_0.ma". +include "ground/lib/subset.ma". include "ground/xoa/ex_1_2.ma". (* PROPER CONDITION FOR PATH ************************************************) @@ -24,20 +25,40 @@ definition ppc: predicate path ≝ interpretation "proper condition (path)" - 'PredicatePTail p = (ppc p). + 'ClassP = (ppc). (* Basic constructions ******************************************************) -lemma ppc_lcons (l) (q): Ꝕ(l◗q). -#l #p #H destruct +lemma ppc_rcons (p) (l): + p◖l ϵ 𝐏. +#p #l #H0 destruct +qed. + +lemma ppc_lcons (p) (l): + l◗p ϵ 𝐏. +#p #l #H0 +elim (eq_inv_list_empty_rcons ??? H0) qed. (* Basic inversions ********************************************************) -lemma ppc_inv_lcons (p): - Ꝕp → ∃∃l,q. l◗q = p. +lemma ppc_inv_empty: + (𝐞) ϵ 𝐏 → ⊥. +#H0 @H0 -H0 // +qed-. + +lemma ppc_inv_rcons (p): + p ϵ 𝐏 → ∃∃q,l. q◖l = p. * -[ #H elim H -H // +[ #H0 elim (ppc_inv_empty … H0) | #l #q #_ /2 width=3 by ex1_2_intro/ ] qed-. + +lemma ppc_inv_lcons (p): + p ϵ 𝐏 → ∃∃q,l. l◗q = p. +#p @(list_ind_rcons … p) -p +[ #H0 elim (ppc_inv_empty … H0) +| #q #l #_ #_ /2 width=3 by ex1_2_intro/ +] +qed-.