+lemma lsred_inv_vref: ∀p,M,N. M ⇀[p] N → ∀i. #i = M → ⊥.
+#p #M #N * -p -M -N
+[ #A #D #i #H destruct
+| #p #A #C #_ #i #H destruct
+| #p #B #D #A #_ #i #H destruct
+| #p #B #A #C #_ #i #H destruct
+]
+qed-.
+
+lemma lsred_inv_beta: ∀p,M,N. M ⇀[p] N → ∀D,C. @D.C = M → ◊ = p →
+ ∃∃A. 𝛌.A = C & [⬐D] A = N.
+#p #M #N * -p -M -N
+[ #A #D #D0 #C0 #H #_ destruct /2 width=3/
+| #p #A #C #_ #D0 #C0 #H destruct
+| #p #B #D #A #_ #D0 #C0 #_ #H destruct
+| #p #B #A #C #_ #D0 #C0 #_ #H destruct
+]
+qed-.
+
+lemma lsred_inv_abst: ∀p,M,N. M ⇀[p] N → ∀A. 𝛌.A = M →
+ ∃∃C. A ⇀[p] C & 𝛌.C = N.
+#p #M #N * -p -M -N
+[ #A #D #A0 #H destruct
+| #p #A #C #HAC #A0 #H destruct /2 width=3/
+| #p #B #D #A #_ #A0 #H destruct
+| #p #B #A #C #_ #A0 #H destruct
+]
+qed-.
+
+lemma lsred_inv_appl_sn: ∀p,M,N. M ⇀[p] N → ∀B,A,q. @B.A = M → true::q = p →
+ ∃∃D. B ⇀[q] D & @D.A = N.
+#p #M #N * -p -M -N
+[ #A #D #B0 #A0 #p0 #_ #H destruct
+| #p #A #C #_ #B0 #D0 #p0 #H destruct
+| #p #B #D #A #HBD #B0 #A0 #p0 #H1 #H2 destruct /2 width=3/
+| #p #B #A #C #_ #B0 #A0 #p0 #_ #H destruct
+]
+qed-.
+
+lemma lsred_inv_appl_dx: ∀p,M,N. M ⇀[p] N → ∀B,A,q. @B.A = M → false::q = p →
+ ∃∃C. A ⇀[q] C & @B.C = N.
+#p #M #N * -p -M -N
+[ #A #D #B0 #A0 #p0 #_ #H destruct
+| #p #A #C #_ #B0 #D0 #p0 #H destruct
+| #p #B #D #A #_ #B0 #A0 #p0 #_ #H destruct
+| #p #B #A #C #HAC #B0 #A0 #p0 #H1 #H2 destruct /2 width=3/
+]
+qed-.
+
+lemma lsred_fwd_mult: ∀p,M,N. M ⇀[p] N → #{N} < #{M} * #{M}.