X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsyntax%2Fpath_proper.ma;h=ff6a53c3932c4a01eac32c3e58993ab8fadb9174;hb=ccbaf3fd118c7c6425b3572a057ccc2941b7762e;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..ff6a53c39 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,38 @@ 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_lcons (l) (q): l◗q ϵ 𝐏. +#l #q #H0 destruct +qed. + +lemma ppc_rcons (l) (q): q◖l ϵ 𝐏. +#l #q #H +elim (eq_inv_list_empty_rcons ??? H) qed. (* Basic inversions ********************************************************) +lemma ppc_inv_empty: + (𝐞) ϵ 𝐏 → ⊥. +#H0 @H0 -H0 // +qed-. + lemma ppc_inv_lcons (p): - Ꝕp → ∃∃l,q. l◗q = p. + p ϵ 𝐏 → ∃∃l,q. l◗q = p. * -[ #H elim H -H // +[ #H0 elim (ppc_inv_empty … H0) | #l #q #_ /2 width=3 by ex1_2_intro/ ] qed-. + +lemma ppc_inv_rcons (p): + p ϵ 𝐏 → ∃∃q,l. q◖l = p. +#p @(list_ind_rcons … p) -p +[ #H0 elim (ppc_inv_empty … H0) +| #q #l #_ #_ /2 width=3 by ex1_2_intro/ +] +qed-.