Definition commutative (U : Set) (op : U -> U -> U) :=
  forall x y : U, op x y = op y x.

(* Specifications: *)
Theorem addZ_commutativity : commutative Z addZ.
Lemma tech_add_pos_neg_posZ : forall n1 n2 : nat, n2 < n1 -> addZ (pos n1) (neg n2) = pos (n1 - S n2).