X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground_2%2Frelocation%2Frtmap_sand.ma;h=2a2058c5942ad6573a5d240992280918fc05b781;hb=1fd63df4c77f5c24024769432ea8492748b4ac79;hp=7e97d953ba26d1a1bb736de70eeaf40d0d00350b;hpb=75f395f0febd02de8e0f881d918a8812b1425c8d;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_sand.ma b/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_sand.ma index 7e97d953b..2a2058c59 100644 --- a/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_sand.ma +++ b/matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_sand.ma @@ -16,10 +16,10 @@ include "ground_2/notation/relations/rintersection_3.ma". include "ground_2/relocation/rtmap_sle.ma". coinductive sand: relation3 rtmap rtmap rtmap ≝ -| sand_pp: ∀f1,f2,f,g1,g2,g. sand f1 f2 f → ↑f1 = g1 → ↑f2 = g2 → ↑f = g → sand g1 g2 g -| sand_np: ∀f1,f2,f,g1,g2,g. sand f1 f2 f → ⫯f1 = g1 → ↑f2 = g2 → ↑f = g → sand g1 g2 g -| sand_pn: ∀f1,f2,f,g1,g2,g. sand f1 f2 f → ↑f1 = g1 → ⫯f2 = g2 → ↑f = g → sand g1 g2 g -| sand_nn: ∀f1,f2,f,g1,g2,g. sand f1 f2 f → ⫯f1 = g1 → ⫯f2 = g2 → ⫯f = g → sand g1 g2 g +| sand_pp: ∀f1,f2,f,g1,g2,g. sand f1 f2 f → ⫯f1 = g1 → ⫯f2 = g2 → ⫯f = g → sand g1 g2 g +| sand_np: ∀f1,f2,f,g1,g2,g. sand f1 f2 f → ↑f1 = g1 → ⫯f2 = g2 → ⫯f = g → sand g1 g2 g +| sand_pn: ∀f1,f2,f,g1,g2,g. sand f1 f2 f → ⫯f1 = g1 → ↑f2 = g2 → ⫯f = g → sand g1 g2 g +| sand_nn: ∀f1,f2,f,g1,g2,g. sand f1 f2 f → ↑f1 = g1 → ↑f2 = g2 → ↑f = g → sand g1 g2 g . interpretation "intersection (rtmap)" @@ -27,8 +27,8 @@ interpretation "intersection (rtmap)" (* Basic inversion lemmas ***************************************************) -lemma sand_inv_ppx: ∀g1,g2,g. g1 ⋒ g2 ≘ g → ∀f1,f2. ↑f1 = g1 → ↑f2 = g2 → - ∃∃f. f1 ⋒ f2 ≘ f & ↑f = g. +lemma sand_inv_ppx: ∀g1,g2,g. g1 ⋒ g2 ≘ g → ∀f1,f2. ⫯f1 = g1 → ⫯f2 = g2 → + ∃∃f. f1 ⋒ f2 ≘ f & ⫯f = g. #g1 #g2 #g * -g1 -g2 -g #f1 #f2 #f #g1 #g2 #g #Hf #H1 #H2 #H0 #x1 #x2 #Hx1 #Hx2 destruct try (>(injective_push … Hx1) -x1) try (>(injective_next … Hx1) -x1) @@ -38,8 +38,8 @@ try elim (discr_push_next … Hx2) try elim (discr_next_push … Hx2) /2 width=3 by ex2_intro/ qed-. -lemma sand_inv_npx: ∀g1,g2,g. g1 ⋒ g2 ≘ g → ∀f1,f2. ⫯f1 = g1 → ↑f2 = g2 → - ∃∃f. f1 ⋒ f2 ≘ f & ↑f = g. +lemma sand_inv_npx: ∀g1,g2,g. g1 ⋒ g2 ≘ g → ∀f1,f2. ↑f1 = g1 → ⫯f2 = g2 → + ∃∃f. f1 ⋒ f2 ≘ f & ⫯f = g. #g1 #g2 #g * -g1 -g2 -g #f1 #f2 #f #g1 #g2 #g #Hf #H1 #H2 #H0 #x1 #x2 #Hx1 #Hx2 destruct try (>(injective_push … Hx1) -x1) try (>(injective_next … Hx1) -x1) @@ -49,8 +49,8 @@ try elim (discr_push_next … Hx2) try elim (discr_next_push … Hx2) /2 width=3 by ex2_intro/ qed-. -lemma sand_inv_pnx: ∀g1,g2,g. g1 ⋒ g2 ≘ g → ∀f1,f2. ↑f1 = g1 → ⫯f2 = g2 → - ∃∃f. f1 ⋒ f2 ≘ f & ↑f = g. +lemma sand_inv_pnx: ∀g1,g2,g. g1 ⋒ g2 ≘ g → ∀f1,f2. ⫯f1 = g1 → ↑f2 = g2 → + ∃∃f. f1 ⋒ f2 ≘ f & ⫯f = g. #g1 #g2 #g * -g1 -g2 -g #f1 #f2 #f #g1 #g2 #g #Hf #H1 #H2 #H0 #x1 #x2 #Hx1 #Hx2 destruct try (>(injective_push … Hx1) -x1) try (>(injective_next … Hx1) -x1) @@ -60,8 +60,8 @@ try elim (discr_push_next … Hx2) try elim (discr_next_push … Hx2) /2 width=3 by ex2_intro/ qed-. -lemma sand_inv_nnx: ∀g1,g2,g. g1 ⋒ g2 ≘ g → ∀f1,f2. ⫯f1 = g1 → ⫯f2 = g2 → - ∃∃f. f1 ⋒ f2 ≘ f & ⫯f = g. +lemma sand_inv_nnx: ∀g1,g2,g. g1 ⋒ g2 ≘ g → ∀f1,f2. ↑f1 = g1 → ↑f2 = g2 → + ∃∃f. f1 ⋒ f2 ≘ f & ↑f = g. #g1 #g2 #g * -g1 -g2 -g #f1 #f2 #f #g1 #g2 #g #Hf #H1 #H2 #H0 #x1 #x2 #Hx1 #Hx2 destruct try (>(injective_push … Hx1) -x1) try (>(injective_next … Hx1) -x1)