proposition: Lemma sqrt_lt_cancel : forall a b, √a < √b -> a < b.
proof: Proof. intros a b H. destruct (lt_ge_cases b 0) as [Hb|Hb]. - rewrite (sqrt_neg b Hb) in H; generalize (sqrt_nonneg a); order. - destruct (lt_ge_cases a 0) as [Ha|Ha]; [order|]. destruct (sqrt_spec a Ha) as (_,LT). destruct (sqrt_spec b Hb) as (LE,_). apply le_succ_l in H. assert ((S (√a))² <= (√b)²). + apply mul_le_mono_nonneg; trivial. * now apply lt_le_incl, lt_succ_r, sqrt_nonneg. * now apply lt_le_incl, lt_succ_r, sqrt_nonneg. + order. Qed.
imports: NZAxioms NZMulOrder