(* Specifications: *)
Lemma fermat4_weak: ~ exists x : Z, exists y : Z, exists z : Z, 0 < x /\ 0 < y /\ 0 < z /\ rel_prime y z /\ distinct_parity y z /\ x * x * x * x + y * y * y * y = z * z * z * z.
Lemma fermat4: ~(exists x : Z, exists y : Z, exists z : Z, 0 < x /\ 0 < y /\ 0 < z /\ x * x * x * x + y * y * y * y = z * z * z * z).
Lemma multiple4_2: forall u v : Z, Zodd v -> Zodd u -> v <= u -> rel_prime u v -> 1 < u -> 1 < v -> exists two : Z * Z, let (s, w) := two in (u - v = 4 * s /\ u + v = 2 * w \/ u - v = 2 * w /\ u + v = 4 * s) /\ 0 < s /\ 0 < w /\ rel_prime s w.
Lemma for_exists_ab : forall u v m n : Z, v <= u -> u * u = m * m + n * n -> v * v = n * n - m * m -> 1 < u -> 1 < v -> Zodd v -> Zodd u -> rel_prime u v -> exists two : Z * Z, let (a, b) := two in (u - v = 4 * (a * a) /\ u + v = 2 * (b * b) \/ u - v = 2 * (b * b) /\ u + v = 4 * (a * a)) /\ 0 < a /\ 0 < b.
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)).