proposition: Theorem Z_div_reg_r : ∀ a b c, (c | a)%Z → (c | b)%Z → (a / c = b / c)%Z → a = b.
proof: Proof. intros a b c Ha Hb Hab. destruct Ha as (d, Ha). destruct Hb as (e, Hb). subst a b. destruct (Z_zerop c) as [Hc| Hc]. subst c. do 2 rewrite Z.mul_0_r; reflexivity. rewrite Z.div_mul in Hab; [ idtac | assumption ]. rewrite Z.div_mul in Hab; [ idtac | assumption ]. subst d; reflexivity. Qed.
imports: Utf8 QArith NPeano Sorted Psatz