theorem times_plus_l: \forall n,m,p:nat. (n+m)*p = n*p + m*p.
intros.
-apply trans_eq ? ? (p*(n+m)).
+apply (trans_eq ? ? (p*(n+m))).
apply sym_times.
-apply trans_eq ? ? (p*n+p*m).
+apply (trans_eq ? ? (p*n+p*m)).
apply distr_times_plus.
apply eq_f2.
apply sym_times.
theorem times_minus_l: \forall n,m,p:nat. (n-m)*p = n*p - m*p.
intros.
-apply trans_eq ? ? (p*(n-m)).
+apply (trans_eq ? ? (p*(n-m))).
apply sym_times.
-apply trans_eq ? ? (p*n-p*m).
+apply (trans_eq ? ? (p*n-p*m)).
apply distr_times_minus.
apply eq_f2.
apply sym_times.
theorem times_plus_plus: \forall n,m,p,q:nat. (n + m)*(p + q) =
n*p + n*q + m*p + m*q.
intros.
-apply trans_eq nat ? ((n*(p+q) + m*(p+q))).
+apply (trans_eq nat ? ((n*(p+q) + m*(p+q)))).
apply times_plus_l.
rewrite > distr_times_plus.
rewrite > distr_times_plus.