X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Fjsx.ma;h=2e477082b0541abeb609e152e61899d0b9e096d7;hb=57ae1762497a5f3ea75740e2908e04adb8642cc2;hp=a318423b5b1ab82ccd979a4a90b1cd5a498e7888;hpb=bd53c4e895203eb049e75434f638f26b5a161a2b;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx.ma index a318423b5..2e477082b 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx.ma @@ -25,7 +25,7 @@ inductive jsx (h) (G): relation lenv ≝ | jsx_bind: ∀I,K1,K2. jsx h G K1 K2 → jsx h G (K1.ⓘ[I]) (K2.ⓘ[I]) | jsx_pair: ∀I,K1,K2,V. jsx h G K1 K2 → - G ⊢ ⬈*[h,V] 𝐒❪K2❫ → jsx h G (K1.ⓑ[I]V) (K2.ⓧ) + G ⊢ ⬈*𝐒[h,V] K2 → jsx h G (K1.ⓑ[I]V) (K2.ⓧ) . interpretation @@ -43,14 +43,15 @@ fact jsx_inv_atom_sn_aux (h) (G): ] qed-. -lemma jsx_inv_atom_sn (h) (G): ∀L2. G ⊢ ⋆ ⊒[h] L2 → L2 = ⋆. +lemma jsx_inv_atom_sn (h) (G): + ∀L2. G ⊢ ⋆ ⊒[h] L2 → L2 = ⋆. /2 width=5 by jsx_inv_atom_sn_aux/ qed-. fact jsx_inv_bind_sn_aux (h) (G): ∀L1,L2. G ⊢ L1 ⊒[h] L2 → ∀I,K1. L1 = K1.ⓘ[I] → ∨∨ ∃∃K2. G ⊢ K1 ⊒[h] K2 & L2 = K2.ⓘ[I] - | ∃∃J,K2,V. G ⊢ K1 ⊒[h] K2 & G ⊢ ⬈*[h,V] 𝐒❪K2❫ & I = BPair J V & L2 = K2.ⓧ. + | ∃∃J,K2,V. G ⊢ K1 ⊒[h] K2 & G ⊢ ⬈*𝐒[h,V] K2 & I = BPair J V & L2 = K2.ⓧ. #h #G #L1 #L2 * -L1 -L2 [ #J #L1 #H destruct | #I #K1 #K2 #HK12 #J #L1 #H destruct /3 width=3 by ex2_intro, or_introl/ @@ -61,7 +62,7 @@ qed-. lemma jsx_inv_bind_sn (h) (G): ∀I,K1,L2. G ⊢ K1.ⓘ[I] ⊒[h] L2 → ∨∨ ∃∃K2. G ⊢ K1 ⊒[h] K2 & L2 = K2.ⓘ[I] - | ∃∃J,K2,V. G ⊢ K1 ⊒[h] K2 & G ⊢ ⬈*[h,V] 𝐒❪K2❫ & I = BPair J V & L2 = K2.ⓧ. + | ∃∃J,K2,V. G ⊢ K1 ⊒[h] K2 & G ⊢ ⬈*𝐒[h,V] K2 & I = BPair J V & L2 = K2.ⓧ. /2 width=3 by jsx_inv_bind_sn_aux/ qed-. (* Advanced inversion lemmas ************************************************) @@ -70,7 +71,7 @@ lemma jsx_inv_bind_sn (h) (G): lemma jsx_inv_pair_sn (h) (G): ∀I,K1,L2,V. G ⊢ K1.ⓑ[I]V ⊒[h] L2 → ∨∨ ∃∃K2. G ⊢ K1 ⊒[h] K2 & L2 = K2.ⓑ[I]V - | ∃∃K2. G ⊢ K1 ⊒[h] K2 & G ⊢ ⬈*[h,V] 𝐒❪K2❫ & L2 = K2.ⓧ. + | ∃∃K2. G ⊢ K1 ⊒[h] K2 & G ⊢ ⬈*𝐒[h,V] K2 & L2 = K2.ⓧ. #h #G #I #K1 #L2 #V #H elim (jsx_inv_bind_sn … H) -H * [ /3 width=3 by ex2_intro, or_introl/ | #J #K2 #X #HK12 #HX #H1 #H2 destruct /3 width=4 by ex3_intro, or_intror/