proposition: Theorem nth_error_after_last: forall (n : nat) (X : Type) (l : list X), length l = n -> nth_error l n = None.
proof: Proof. Admitted. Definition square n := n * n. Lemma square_mult : forall n m, square (n * m) = square n * square m. Proof. intros n m. simpl. unfold square. rewrite mult_assoc. assert (H : n * m * n = n * n * m). { rewrite mul_comm. apply mult_assoc. } rewrite H. rewrite mult_assoc. reflexivity. Qed.