(** ** Associativity of multiplication *)

(* Specifications: *)
Theorem mul_assoc p q r : p * (q * r) = p * q * r.
(** ** Successor and multiplication *)
Lemma mul_succ_l p q : (succ p) * q = q + p * q.
Lemma mul_succ_r p q : p * (succ q) = p + p * q.
(** ** Parity properties of multiplication *)
Lemma mul_xI_mul_xO_discr p q r : p~1 * r <> q~0 * r.
Lemma mul_xO_discr p q : p~0 * q <> q.
(** ** Simplification properties of multiplication *)
Theorem mul_reg_r p q r : p * r = q * r -> p = q.
Theorem mul_reg_l p q r : r * p = r * q -> p = q.
Lemma mul_cancel_r p q r : p * r = q * r <-> p = q.
Lemma mul_cancel_l p q r : r * p = r * q <-> p = q.
(** ** Inversion of multiplication *)
Lemma mul_eq_1_l p q : p * q = 1 -> p = 1.
Lemma mul_eq_1_r p q : p * q = 1 -> q = 1.
Notation mul_eq_1 := mul_eq_1_l.