(***********************)
(* Diophantus' problem *)
(***********************)

(* Specifications: *)
Lemma for_mba_pytha1: forall m n u v a b : Z,
u * u = m * m + n * n -> v * v = n * n - m * m -> u - v = 4 * (a * a) ->
u + v = 2 * (b * b) -> b * b * (b * b) + 2 * (a * a) * (2 * (a * a)) = n * n.
Lemma for_mba_pytha2: forall m n u v a b : Z,
u * u = m * m + n * n -> v * v = n * n - m * m -> u - v = 2 * (b * b) ->
u + v = 4 * (a * a) -> b * b * (b * b) + 2 * (a * a) * (2 * (a * a)) = n * n.
Lemma diophantus20_equiv: forall y z : Z,
y > 0 -> z > 0 -> y <= z -> rel_prime y z -> distinct_parity y z ->
~ is_sqr ((z * z + y * y) * (z * z - y * y)).
Lemma diophantus20_refined : forall p q : Z,
p > 0 -> q > 0 -> p <= q -> rel_prime p q -> distinct_parity p q ->
~ is_sqr (p * (q * (q * q - p * p))).
Lemma diophantus20 :
~ (exists x : Z, exists y : Z, exists z : Z, exists t : Z,
0 < x /\ 0 < y /\ 0 < z /\ 0 < t /\ x * x + y * y = z * z /\
x * y = 2 * (t * t)).