+/3 width=5 by mq, mr/ qed-.
+
+lemma seq_canc_sn (M): is_model M → left_cancellable … (sq M).
+/3 width=3 by seq_trans, seq_sym/ qed-.
+
+lemma seq_canc_dx (M): is_model M → right_cancellable … (sq M).
+/3 width=3 by seq_trans, seq_sym/ qed-.
+
+lemma ti_lref_vpush_eq (M): is_model M →
+ ∀gv,lv,d,i. ⟦#i⟧[gv,⫯[i←d]lv] ≗{M} d.
+#M #HM #gv #lv #d #i
+@(seq_trans … HM) [2: @ml // | skip ]
+>vpush_eq /2 width=1 by mr/
+qed.
+
+lemma ti_lref_vpush_gt (M): is_model M →
+ ∀gv,lv,d,i. ⟦#(↑i)⟧[gv,⫯[0←d]lv] ≗{M} ⟦#i⟧[gv,lv].
+#M #HM #gv #lv #d #i
+@(mq … HM) [4,5: @(seq_sym … HM) /2 width=2 by ml/ |1,2: skip ]
+>vpush_gt /2 width=1 by mr/
+qed.
+
+(* Basic Forward lemmas *****************************************************)
+
+lemma ti_fwd_mx_dx (M): is_model M →
+ ∀gv1,gv2,lv1,lv2,p,W1,W2,T1,T2.
+ ⟦ⓛ{p}W1.T1⟧[gv1, lv1] ≗ ⟦ⓛ{p}W2.T2⟧[gv2, lv2] →
+ ∀d. ⟦T1⟧{M}[gv1, ⫯[0←d]lv1] ≗ ⟦T2⟧{M}[gv2, ⫯[0←d]lv2].
+#M #HM #gv1 #gv2 #lv1 #lv2 #p #W1 #W2 #T1 #T2 #H12 #d
+@(mq … HM) /3 width=5 by mb, mp, mr/
+qed-.