(* GENERIC SLICING FOR LOCAL ENVIRONMENTS ***********************************)
definition dedropable_sn: predicate … ≝
- λR. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 → ∀K2. K1 ⪤[R] K2 →
- â\88\83â\88\83L2. L1 ⪤[R] L2 & â¬\87*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
+ λR. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 → ∀K2. K1 ⪤[R] K2 →
+ â\88\83â\88\83L2. L1 ⪤[R] L2 & â\87©*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
definition dropable_sn: predicate … ≝
- λR. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 â\89\98 K1 â\86\92 ð\9d\90\94â¦\83fâ¦\84 → ∀L2. L1 ⪤[R] L2 →
- â\88\83â\88\83K2. K1 ⪤[R] K2 & â¬\87*[b,f] L2 ≘ K2.
+ λR. â\88\80b,f,L1,K1. â\87©*[b,f] L1 â\89\98 K1 â\86\92 ð\9d\90\94â\9d¨fâ\9d© → ∀L2. L1 ⪤[R] L2 →
+ â\88\83â\88\83K2. K1 ⪤[R] K2 & â\87©*[b,f] L2 ≘ K2.
definition dropable_dx: predicate … ≝
- λR. â\88\80L1,L2. L1 ⪤[R] L2 â\86\92 â\88\80b,f,K2. â¬\87*[b,f] L2 â\89\98 K2 â\86\92 ð\9d\90\94â¦\83fâ¦\84 →
- â\88\83â\88\83K1. â¬\87*[b,f] L1 ≘ K1 & K1 ⪤[R] K2.
+ λR. â\88\80L1,L2. L1 ⪤[R] L2 â\86\92 â\88\80b,f,K2. â\87©*[b,f] L2 â\89\98 K2 â\86\92 ð\9d\90\94â\9d¨fâ\9d© →
+ â\88\83â\88\83K1. â\87©*[b,f] L1 ≘ K1 & K1 ⪤[R] K2.
(* Properties with generic extension ****************************************)
d_liftable2_sn … lifts R → dedropable_sn R.
#R #H1R #H2R #b #f #L1 #K1 #HLK1 #K2 * #f1 #Hf1 #HK12
elim (sex_liftable_co_dedropable_sn … HLK1 … HK12) -K1
-/3 width=6 by cext2_d_liftable2_sn, cfull_lift_sn, ext2_refl, coafter_isid_dx, ex3_intro, ex2_intro/
+/3 width=6 by cext2_d_liftable2_sn, cfull_lift_sn, ext2_refl, pr_coafter_isi_dx, ex3_intro, ex2_intro/
qed-.
(* Inversion lemmas with generic extension **********************************)
lemma lex_dropable_sn (R): dropable_sn R.
#R #b #f #L1 #K1 #HLK1 #H1f #L2 * #f2 #Hf2 #HL12
elim (sex_co_dropable_sn … HLK1 … HL12) -L1
-/3 width=3 by coafter_isid_dx, ex2_intro/
+/3 width=3 by pr_coafter_isi_dx, ex2_intro/
qed-.
(* Basic_2A1: was: lpx_sn_dropable *)
lemma lex_dropable_dx (R): dropable_dx R.
#R #L1 #L2 * #f2 #Hf2 #HL12 #b #f #K2 #HLK2 #Hf
elim (sex_co_dropable_dx … HL12 … HLK2) -L2
-/3 width=5 by coafter_isid_dx, ex2_intro/
+/3 width=5 by pr_coafter_isi_dx, ex2_intro/
qed-.
(* Basic_2A1: includes: lpx_sn_drop_conf *)
lemma lex_drops_conf_pair (R): ∀L1,L2. L1 ⪤[R] L2 →
- â\88\80b,f,I,K1,V1. â¬\87*[b,f] L1 â\89\98 K1.â\93\91{I}V1 â\86\92 ð\9d\90\94â¦\83fâ¦\84 →
- â\88\83â\88\83K2,V2. â¬\87*[b,f] L2 â\89\98 K2.â\93\91{I}V2 & K1 ⪤[R] K2 & R K1 V1 V2.
+ â\88\80b,f,I,K1,V1. â\87©*[b,f] L1 â\89\98 K1.â\93\91[I]V1 â\86\92 ð\9d\90\94â\9d¨fâ\9d© →
+ â\88\83â\88\83K2,V2. â\87©*[b,f] L2 â\89\98 K2.â\93\91[I]V2 & K1 ⪤[R] K2 & R K1 V1 V2.
#R #L1 #L2 * #f2 #Hf2 #HL12 #b #f #I #K1 #V1 #HLK1 #Hf
elim (sex_drops_conf_push … HL12 … HLK1 Hf f2) -L1 -Hf
[ #Z2 #K2 #HLK2 #HK12 #H
elim (ext2_inv_pair_sn … H) -H #V2 #HV12 #H destruct
/3 width=5 by ex3_2_intro, ex2_intro/
-| /3 width=3 by coafter_isid_dx, isid_push/
+| /3 width=3 by pr_coafter_isi_dx, pr_isi_push/
]
qed-.
(* Basic_2A1: includes: lpx_sn_drop_trans *)
lemma lex_drops_trans_pair (R): ∀L1,L2. L1 ⪤[R] L2 →
- â\88\80b,f,I,K2,V2. â¬\87*[b,f] L2 â\89\98 K2.â\93\91{I}V2 â\86\92 ð\9d\90\94â¦\83fâ¦\84 →
- â\88\83â\88\83K1,V1. â¬\87*[b,f] L1 â\89\98 K1.â\93\91{I}V1 & K1 ⪤[R] K2 & R K1 V1 V2.
+ â\88\80b,f,I,K2,V2. â\87©*[b,f] L2 â\89\98 K2.â\93\91[I]V2 â\86\92 ð\9d\90\94â\9d¨fâ\9d© →
+ â\88\83â\88\83K1,V1. â\87©*[b,f] L1 â\89\98 K1.â\93\91[I]V1 & K1 ⪤[R] K2 & R K1 V1 V2.
#R #L1 #L2 * #f2 #Hf2 #HL12 #b #f #I #K2 #V2 #HLK2 #Hf
elim (sex_drops_trans_push … HL12 … HLK2 Hf f2) -L2 -Hf
[ #Z1 #K1 #HLK1 #HK12 #H
elim (ext2_inv_pair_dx … H) -H #V1 #HV12 #H destruct
/3 width=5 by ex3_2_intro, ex2_intro/
-| /3 width=3 by coafter_isid_dx, isid_push/
+| /3 width=3 by pr_coafter_isi_dx, pr_isi_push/
]
qed-.