Definition integrity := forall a b : S, Mult a b = O -> {a = O} + {b = O}.Definition is_unitary_commutative_ring :=
  is_ring /\ commutativity S Mult /\ neutral S A Mult I.(* Division *)

Definition divide (a b : S) :=
  A a /\ A b /\ (b = O \/ a <> O /\ (exists q : S, A q /\ b = Mult a q)).

(* Specifications: *)
Theorem div_O_O : is_ring -> divide O O.
Theorem div_add : is_ring -> forall a b d : S, divide d a -> divide d b -> divide d (Add a b).
Theorem div_mult : is_ring -> forall a b d : S, divide d a -> A b -> divide d (Mult a b).
Theorem div_opp : is_ring -> forall a d : S, divide d a -> divide d (Opp a).