Variable A : t -> Prop.
Hypothesis A_wd : Proper (eq ==> iff) A.
Hypothesis A0 : A 0.
Hypothesis AS : forall n, A n <-> A (S n).
(* Below, we use only -> direction *)
Let B (n : Z) := A (ZnZ.of_Z n).

Theorem add_0_l : forall n, 0 + n == n.