(* GENERIC EXTENSION ON REFERRED ENTRIES OF A CONTEXT-SENSITIVE REALTION ****)
definition R_fsge_compatible: predicate (relation3 …) ≝ λRN.
(* GENERIC EXTENSION ON REFERRED ENTRIES OF A CONTEXT-SENSITIVE REALTION ****)
definition R_fsge_compatible: predicate (relation3 …) ≝ λRN.
- â\88\80L,T1,T2. RN L T1 T2 â\86\92 â\9dªL,T2â\9d« â\8a\86 â\9dªL,T1â\9d«.
+ â\88\80L,T1,T2. RN L T1 T2 â\86\92 â\9d¨L,T2â\9d© â\8a\86 â\9d¨L,T1â\9d©.
- â\88\80L1,L2,T. L1 ⪤[RN,T] L2 â\86\92 â\9dªL2,Tâ\9d« â\8a\86 â\9dªL1,Tâ\9d«.
+ â\88\80L1,L2,T. L1 ⪤[RN,T] L2 â\86\92 â\9d¨L2,Tâ\9d© â\8a\86 â\9d¨L1,Tâ\9d©.
- â\88\80L1,L2,T. L1 ⪤[RN,T] L2 â\86\92 â\9dªL1,Tâ\9d« â\8a\86 â\9dªL2,Tâ\9d«.
+ â\88\80L1,L2,T. L1 ⪤[RN,T] L2 â\86\92 â\9d¨L1,Tâ\9d© â\8a\86 â\9d¨L2,Tâ\9d©.
(* Basic inversions with free variables inclusion for restricted closures ***)
lemma frees_sex_conf_fsge (R):
rex_fsge_compatible R →
(* Basic inversions with free variables inclusion for restricted closures ***)
lemma frees_sex_conf_fsge (R):
rex_fsge_compatible R →
#R #HR #L1 #T #f1 #Hf1 #L2 #H1L
lapply (HR L1 L2 T ?) /2 width=3 by ex2_intro/ #H2L
@(fsle_frees_trans_eq … H2L … Hf1) /3 width=4 by sex_fwd_length, sym_eq/
#R #HR #L1 #T #f1 #Hf1 #L2 #H1L
lapply (HR L1 L2 T ?) /2 width=3 by ex2_intro/ #H2L
@(fsle_frees_trans_eq … H2L … Hf1) /3 width=4 by sex_fwd_length, sym_eq/
#R #HR #L1 #T #f1 #Hf1 #L2 #H1L
lapply (HR L1 L2 T ?) /2 width=3 by ex2_intro/ #H2L
@(fsle_frees_conf_eq … H2L … Hf1) /3 width=4 by sex_fwd_length, sym_eq/
#R #HR #L1 #T #f1 #Hf1 #L2 #H1L
lapply (HR L1 L2 T ?) /2 width=3 by ex2_intro/ #H2L
@(fsle_frees_conf_eq … H2L … Hf1) /3 width=4 by sex_fwd_length, sym_eq/
(* Note: we just need lveq_inv_refl: ∀L, n1, n2. L ≋ⓧ*[n1, n2] L → ∧∧ 0 = n1 & 0 = n2 *)
lemma fsge_rex_trans (R):
(* Note: we just need lveq_inv_refl: ∀L, n1, n2. L ≋ⓧ*[n1, n2] L → ∧∧ 0 = n1 & 0 = n2 *)
lemma fsge_rex_trans (R):
- â\88\80L1,T1,T2. â\9dªL1,T1â\9d« â\8a\86 â\9dªL1,T2â\9d« →
+ â\88\80L1,T1,T2. â\9d¨L1,T1â\9d© â\8a\86 â\9d¨L1,T2â\9d© →
∀L2. L1 ⪤[R,T2] L2 → L1 ⪤[R,T1] L2.
#R #L1 #T1 #T2 * #n1 #n2 #f1 #f2 #Hf1 #Hf2 #Hn #Hf #L2 #HL12
elim (lveq_inj_length … Hn ?) // #H1 #H2 destruct
∀L2. L1 ⪤[R,T2] L2 → L1 ⪤[R,T1] L2.
#R #L1 #T1 #T2 * #n1 #n2 #f1 #f2 #Hf1 #Hf2 #Hn #Hf #L2 #HL12
elim (lveq_inj_length … Hn ?) // #H1 #H2 destruct