(* Properties on pointwise union for local environments **********************)
lemma llpx_sn_llor_dx: ∀R. (s_r_confluent1 … R (llpx_sn R 0)) → (frees_trans R) →
- â\88\80L1,L2,T,d. llpx_sn R d T L1 L2 â\86\92 â\88\80L. L1 â©\96[T, d] L2 ≡ L → L2 ≡[T, d] L.
+ â\88\80L1,L2,T,d. llpx_sn R d T L1 L2 â\86\92 â\88\80L. L1 â\8b\93[T, d] L2 ≡ L → L2 ≡[T, d] L.
#R #H1R #H2R #L1 #L2 #T #d #H1 #L #H2
lapply (llpx_sn_frees_trans … H1R H2R … H1) -H1R -H2R #HR
elim (llpx_sn_llpx_sn_alt … H1) -H1 #HL12 #IH1
qed.
lemma llpx_sn_llor_dx_sym: ∀R. (s_r_confluent1 … R (llpx_sn R 0)) → (frees_trans R) →
- â\88\80L1,L2,T,d. llpx_sn R d T L1 L2 â\86\92 â\88\80L. L1 â©\96[T, d] L2 ≡ L → L ≡[T, d] L2.
+ â\88\80L1,L2,T,d. llpx_sn R d T L1 L2 â\86\92 â\88\80L. L1 â\8b\93[T, d] L2 ≡ L → L ≡[T, d] L2.
/3 width=6 by llpx_sn_llor_dx, lleq_sym/ qed.
(* Basic properties *********************************************************)
(* Note: this can be proved by llor_skip *)
-lemma llor_atom: â\88\80T,d. â\8b\86 â©\96[T, d] ⋆ ≡ ⋆.
+lemma llor_atom: â\88\80T,d. â\8b\86 â\8b\93[T, d] ⋆ ≡ ⋆.
#T #d @and3_intro //
#I1 #I2 #I #K1 #K2 #K #V1 #V2 #V #i #HLK1
elim (drop_inv_atom1 … HLK1) -HLK1 #H destruct
(* Alternative definition ***************************************************)
-lemma llor_tail_frees: â\88\80L1,L2,L,U,d. L1 â©\96[U, d] L2 ≡ L → d ≤ yinj (|L1|) →
+lemma llor_tail_frees: â\88\80L1,L2,L,U,d. L1 â\8b\93[U, d] L2 ≡ L → d ≤ yinj (|L1|) →
∀I1,W1. ⓑ{I1}W1.L1 ⊢ |L1| ϵ 𝐅*[d]⦃U⦄ →
- â\88\80I2,W2. â\93\91{I1}W1.L1 â©\96[U, d] ⓑ{I2}W2.L2 ≡ ⓑ{I2}W2.L.
+ â\88\80I2,W2. â\93\91{I1}W1.L1 â\8b\93[U, d] ⓑ{I2}W2.L2 ≡ ⓑ{I2}W2.L.
#L1 #L2 #L #U #d * #HL12 #HL1 #IH #Hd #I1 #W1 #HU #I2 #W2
@and3_intro [1,2: >ltail_length /2 width=1 by le_S_S/ ]
#J1 #J2 #J #K1 #K2 #K #V1 #V2 #V #i #HLK1 #HLK2 #HLK
]
qed.
-lemma llor_tail_cofrees: â\88\80L1,L2,L,U,d. L1 â©\96[U, d] L2 ≡ L →
+lemma llor_tail_cofrees: â\88\80L1,L2,L,U,d. L1 â\8b\93[U, d] L2 ≡ L →
∀I1,W1. (ⓑ{I1}W1.L1 ⊢ |L1| ϵ 𝐅*[d]⦃U⦄ → ⊥) →
- â\88\80I2,W2. â\93\91{I1}W1.L1 â©\96[U, d] ⓑ{I2}W2.L2 ≡ ⓑ{I1}W1.L.
+ â\88\80I2,W2. â\93\91{I1}W1.L1 â\8b\93[U, d] ⓑ{I2}W2.L2 ≡ ⓑ{I1}W1.L.
#L1 #L2 #L #U #d * #HL12 #HL1 #IH #I1 #W1 #HU #I2 #W2
@and3_intro [1,2: >ltail_length /2 width=1 by le_S_S/ ]
#J1 #J2 #J #K1 #K2 #K #V1 #V2 #V #i #HLK1 #HLK2 #HLK
(* Advanced properties ******************************************************)
-lemma llor_skip: â\88\80L1,L2,U,d. |L1| = |L2| â\86\92 yinj (|L1|) â\89¤ d â\86\92 L1 â©\96[U, d] L2 ≡ L1.
+lemma llor_skip: â\88\80L1,L2,U,d. |L1| = |L2| â\86\92 yinj (|L1|) â\89¤ d â\86\92 L1 â\8b\93[U, d] L2 ≡ L1.
#L1 #L2 #U #d #HL12 #Hd @and3_intro // -HL12
#I1 #I2 #I #K1 #K2 #K #W1 #W2 #W #i #HLK1 #_ #HLK -L2 -K2
lapply (drop_mono … HLK … HLK1) -HLK #H destruct
qed.
(* Note: lemma 1400 concludes the "big tree" theorem *)
-lemma llor_total: â\88\80L1,L2,T,d. |L1| = |L2| â\86\92 â\88\83L. L1 â©\96[T, d] L2 ≡ L.
+lemma llor_total: â\88\80L1,L2,T,d. |L1| = |L2| â\86\92 â\88\83L. L1 â\8b\93[T, d] L2 ≡ L.
#L1 @(lenv_ind_alt … L1) -L1
[ #L2 #T #d #H >(length_inv_zero_sn … H) -L2 /2 width=2 by ex_intro/
| #I1 #L1 #V1 #IHL1 #Y #T #d >ltail_length #H
lemma llpx_sn_llor_fwd_sn: ∀R. (∀L. reflexive … (R L)) →
∀L1,L2,T,d. llpx_sn R d T L1 L2 →
- â\88\80L. L1 â©\96[T, d] L2 ≡ L → lpx_sn R L1 L.
+ â\88\80L. L1 â\8b\93[T, d] L2 ≡ L → lpx_sn R L1 L.
#R #HR #L1 #L2 #T #d #H1 #L #H2
elim (llpx_sn_llpx_sn_alt … H1) -H1 #HL12 #IH1
elim H2 -H2 #_ #HL1 #IH2
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( L1 â©\96 break [ term 46 T , break term 46 d ] break term 46 L2 ≡ break term 46 L )"
+notation "hvbox( L1 â\8b\93 break [ term 46 T , break term 46 d ] break term 46 L2 ≡ break term 46 L )"
non associative with precedence 45
for @{ 'LazyOr $L1 $T $d $L2 $L }.
}
]
[ { "pointwise union for local environments" * } {
- [ "llor ( ? â©\96[?,?] ? ≡ ? )" "llor_alt" + "llor_drop" * ]
+ [ "llor ( ? â\8b\93[?,?] ? ≡ ? )" "llor_alt" + "llor_drop" * ]
}
]
[ { "context-sensitive exclusion from free variables" * } {