lemma lleq_leq_repl: ∀L1,L2,T,d. L1 ⋕[T, d] L2 → ∀K1. K1 ≃[d, ∞] L1 →
∀K2. L2 ≃[d, ∞] K2 → K1 ⋕[T, d] K2.
/2 width=5 by llpx_sn_leq_repl/ qed-.
+
+lemma lleq_bind_repl_SO: ∀I1,I2,L1,L2,V1,V2,T. L1.ⓑ{I1}V1 ⋕[T, 0] L2.ⓑ{I2}V2 →
+ ∀J1,J2,W1,W2. L1.ⓑ{J1}W1 ⋕[T, 1] L2.ⓑ{J2}W2.
+/2 width=5 by llpx_sn_bind_repl_SO/ qed-.
lemma llpx_sn_leq_repl: ∀R,L1,L2,T,d. llpx_sn R d T L1 L2 → ∀K1. K1 ≃[d, ∞] L1 →
∀K2. L2 ≃[d, ∞] K2 → llpx_sn R d T K1 K2.
/3 width=4 by llpx_sn_leq_trans, leq_llpx_sn_trans/ qed-.
+
+lemma llpx_sn_bind_repl_SO: ∀R,I1,I2,L1,L2,V1,V2,T. llpx_sn R 0 T (L1.ⓑ{I1}V1) (L2.ⓑ{I2}V2) →
+ ∀J1,J2,W1,W2. llpx_sn R 1 T (L1.ⓑ{J1}W1) (L2.ⓑ{J2}W2).
+#R #I1 #I2 #L1 #L2 #V1 #V2 #T #HT #J1 #J2 #W1 #W2 lapply (llpx_sn_ge R … 1 … HT) -HT
+/3 width=7 by llpx_sn_leq_repl, leq_succ/
+qed-.
#x #H0 #H destruct /3 width=4 by yle_fwd_plus_ge, yle_inj/
qed-.
-(* Forward lemmas on strict_order *******************************************)
+(* Forward lemmas on strict order *******************************************)
lemma ylt_inv_monotonic_plus_dx: ∀x,y,z. x + z < y + z → x < y.
* [2: #y #z >yplus_comm #H elim (ylt_inv_Y1 … H) ]
(* Properties on strict order ***********************************************)
+lemma ylt_plus_dx1_trans: ∀x,z. z < x → ∀y. z < x + yinj y.
+/2 width=3 by ylt_yle_trans/ qed.
+
+lemma ylt_plus_dx2_trans: ∀y,z. z < y → ∀x. z < yinj x + y.
+/2 width=3 by ylt_yle_trans/ qed.
+
lemma monotonic_ylt_plus_dx: ∀x,y. x < y → ∀z:nat. x + yinj z < y + yinj z.
#x #y #Hxy #z elim z -z /3 width=1 by ylt_succ/
qed.