(** Proof that Sqrt(2) cannot be rational *)

Ltac mysimpl := simplify_eq; repeat rewrite Pmult_xO_permute_r.

(* Specifications: *)
Theorem main_thm : forall p q: positive, (p*p <> 2*(q*q))%positive.
Theorem sqrt2_not_rational : forall q:Q, ~ q^2 == 2.
Theorem main_thm_gen : forall p:Z, prime p -> forall a b:Z, 0<a -> 0<b -> a*a <> p*b*b.
Theorem sqrtprime_not_rational : forall p:Z, prime p -> forall q:Q, ~ q*q == p.