(* *)
(**************************************************************************)
+include "ground/xoa/ex_6_4.ma".
include "static_2/notation/relations/lrsubeqc_4.ma".
include "static_2/static/aaa.ma".
include "static_2/static/gcp_cr.ma".
inductive lsubc (RP) (G): relation lenv ≝
| lsubc_atom: lsubc RP G (⋆) (⋆)
-| lsubc_bind: ∀I,L1,L2. lsubc RP G L1 L2 → lsubc RP G (L1.ⓘ{I}) (L2.ⓘ{I})
-| lsubc_beta: â\88\80L1,L2,V,W,A. â¦\83G,L1,Vâ¦\84 ϵ[RP] ã\80\9aAã\80\9b â\86\92 â¦\83G,L1,Wâ¦\84 ϵ[RP] ã\80\9aAã\80\9b â\86\92 â¦\83G,L2â¦\84 ⊢ W ⁝ A →
+| lsubc_bind: ∀I,L1,L2. lsubc RP G L1 L2 → lsubc RP G (L1.ⓘ[I]) (L2.ⓘ[I])
+| lsubc_beta: â\88\80L1,L2,V,W,A. â\9d¨G,L1,Vâ\9d© ϵ â\9f¦Aâ\9f§[RP] â\86\92 â\9d¨G,L1,Wâ\9d© ϵ â\9f¦Aâ\9f§[RP] â\86\92 â\9d¨G,L2â\9d© ⊢ W ⁝ A →
lsubc RP G L1 L2 → lsubc RP G (L1. ⓓⓝW.V) (L2.ⓛW)
.
lemma lsubc_inv_atom1: ∀RP,G,L2. G ⊢ ⋆ ⫃[RP] L2 → L2 = ⋆.
/2 width=5 by lsubc_inv_atom1_aux/ qed-.
-fact lsubc_inv_bind1_aux: ∀RP,G,L1,L2. G ⊢ L1 ⫃[RP] L2 → ∀I,K1. L1 = K1.ⓘ{I} →
- (∃∃K2. G ⊢ K1 ⫃[RP] K2 & L2 = K2.ⓘ{I}) ∨
- â\88\83â\88\83K2,V,W,A. â¦\83G,K1,Vâ¦\84 ϵ[RP] ã\80\9aAã\80\9b & â¦\83G,K1,Wâ¦\84 ϵ[RP] ã\80\9aAã\80\9b & â¦\83G,K2â¦\84 ⊢ W ⁝ A &
+fact lsubc_inv_bind1_aux: ∀RP,G,L1,L2. G ⊢ L1 ⫃[RP] L2 → ∀I,K1. L1 = K1.ⓘ[I] →
+ (∃∃K2. G ⊢ K1 ⫃[RP] K2 & L2 = K2.ⓘ[I]) ∨
+ â\88\83â\88\83K2,V,W,A. â\9d¨G,K1,Vâ\9d© ϵ â\9f¦Aâ\9f§[RP] & â\9d¨G,K1,Wâ\9d© ϵ â\9f¦Aâ\9f§[RP] & â\9d¨G,K2â\9d© ⊢ W ⁝ A &
G ⊢ K1 ⫃[RP] K2 &
L2 = K2. ⓛW & I = BPair Abbr (ⓝW.V).
#RP #G #L1 #L2 * -L1 -L2
qed-.
(* Basic_1: was: csubc_gen_head_r *)
-lemma lsubc_inv_bind1: ∀RP,I,G,K1,L2. G ⊢ K1.ⓘ{I} ⫃[RP] L2 →
- (∃∃K2. G ⊢ K1 ⫃[RP] K2 & L2 = K2.ⓘ{I}) ∨
- â\88\83â\88\83K2,V,W,A. â¦\83G,K1,Vâ¦\84 ϵ[RP] ã\80\9aAã\80\9b & â¦\83G,K1,Wâ¦\84 ϵ[RP] ã\80\9aAã\80\9b & â¦\83G,K2â¦\84 ⊢ W ⁝ A &
+lemma lsubc_inv_bind1: ∀RP,I,G,K1,L2. G ⊢ K1.ⓘ[I] ⫃[RP] L2 →
+ (∃∃K2. G ⊢ K1 ⫃[RP] K2 & L2 = K2.ⓘ[I]) ∨
+ â\88\83â\88\83K2,V,W,A. â\9d¨G,K1,Vâ\9d© ϵ â\9f¦Aâ\9f§[RP] & â\9d¨G,K1,Wâ\9d© ϵ â\9f¦Aâ\9f§[RP] & â\9d¨G,K2â\9d© ⊢ W ⁝ A &
G ⊢ K1 ⫃[RP] K2 &
L2 = K2.ⓛW & I = BPair Abbr (ⓝW.V).
/2 width=3 by lsubc_inv_bind1_aux/ qed-.
lemma lsubc_inv_atom2: ∀RP,G,L1. G ⊢ L1 ⫃[RP] ⋆ → L1 = ⋆.
/2 width=5 by lsubc_inv_atom2_aux/ qed-.
-fact lsubc_inv_bind2_aux: ∀RP,G,L1,L2. G ⊢ L1 ⫃[RP] L2 → ∀I,K2. L2 = K2.ⓘ{I} →
- (∃∃K1. G ⊢ K1 ⫃[RP] K2 & L1 = K1. ⓘ{I}) ∨
- â\88\83â\88\83K1,V,W,A. â¦\83G,K1,Vâ¦\84 ϵ[RP] ã\80\9aAã\80\9b & â¦\83G,K1,Wâ¦\84 ϵ[RP] ã\80\9aAã\80\9b & â¦\83G,K2â¦\84 ⊢ W ⁝ A &
+fact lsubc_inv_bind2_aux: ∀RP,G,L1,L2. G ⊢ L1 ⫃[RP] L2 → ∀I,K2. L2 = K2.ⓘ[I] →
+ (∃∃K1. G ⊢ K1 ⫃[RP] K2 & L1 = K1. ⓘ[I]) ∨
+ â\88\83â\88\83K1,V,W,A. â\9d¨G,K1,Vâ\9d© ϵ â\9f¦Aâ\9f§[RP] & â\9d¨G,K1,Wâ\9d© ϵ â\9f¦Aâ\9f§[RP] & â\9d¨G,K2â\9d© ⊢ W ⁝ A &
G ⊢ K1 ⫃[RP] K2 &
L1 = K1.ⓓⓝW.V & I = BPair Abst W.
#RP #G #L1 #L2 * -L1 -L2
qed-.
(* Basic_1: was just: csubc_gen_head_l *)
-lemma lsubc_inv_bind2: ∀RP,I,G,L1,K2. G ⊢ L1 ⫃[RP] K2.ⓘ{I} →
- (∃∃K1. G ⊢ K1 ⫃[RP] K2 & L1 = K1.ⓘ{I}) ∨
- â\88\83â\88\83K1,V,W,A. â¦\83G,K1,Vâ¦\84 ϵ[RP] ã\80\9aAã\80\9b & â¦\83G,K1,Wâ¦\84 ϵ[RP] ã\80\9aAã\80\9b & â¦\83G,K2â¦\84 ⊢ W ⁝ A &
+lemma lsubc_inv_bind2: ∀RP,I,G,L1,K2. G ⊢ L1 ⫃[RP] K2.ⓘ[I] →
+ (∃∃K1. G ⊢ K1 ⫃[RP] K2 & L1 = K1.ⓘ[I]) ∨
+ â\88\83â\88\83K1,V,W,A. â\9d¨G,K1,Vâ\9d© ϵ â\9f¦Aâ\9f§[RP] & â\9d¨G,K1,Wâ\9d© ϵ â\9f¦Aâ\9f§[RP] & â\9d¨G,K2â\9d© ⊢ W ⁝ A &
G ⊢ K1 ⫃[RP] K2 &
L1 = K1.ⓓⓝW.V & I = BPair Abst W.
/2 width=3 by lsubc_inv_bind2_aux/ qed-.