Definition int_ind := int_rect.
Variant int_spec (x : int) : int -> Type :=
| ZintNull : int_spec x 0
| ZintPos n : int_spec x n.+1
| ZintNeg n : int_spec x (- (n.+1)%:Z).

Lemma mulNz (m n : int) : ((- m) * n)%Z = - (m * n)%Z.