proposition: Lemma int_to_nat_of_nonneg x : 0 ≤ x → f (int_to_nat Z N x) = x.
proof: Proof. intros E1. destruct (int_to_nat_spec x) as [[? E2]|[? E2]]; intuition. rewrite E2, preserves_0. now apply (antisymmetry (≤)). Qed.
imports: Coq.setoid_ring.Ring MathClasses.interfaces.naturals MathClasses.interfaces.abstract_algebra MathClasses.interfaces.orders MathClasses.orders.nat_int MathClasses.theory.integers MathClasses.theory.rings MathClasses.orders.rings