proposition: Lemma subst_lift_generalized: forall `{Lift T, Subst V T}, forall { _ : LiftLift }, forall { _ : LiftLiftFuse }, forall { _ : SubstLift }, forall n v t, subst v n (lift (S n) 0 t) = lift n 0 t.
proof: Proof. intros. rewrite <- lift_lift_fuse_successor. rewrite lift_lift by lia. rewrite plus_0_r. apply subst_lift. Qed.
imports: Arith Lia Dblib.DblibTactics