Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Statement with defined notation
∀ m. ∀ n. ∀ y. Coprime(m,n) → Odd(m) → y · y = 2 · (m · n) → ∃ x. ∃ z. m = x · x ∧ n = 2 · (z · z)Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order statement
forall m n y. (forall pff_divisor_ffd_double_source. (exists pff_left_ffd_double_source. (m) = pff_divisor_ffd_double_source * pff_left_ffd_double_source) -> (exists pff_right_ffd_double_source. (n) = pff_divisor_ffd_double_source * pff_right_ffd_double_source) -> pff_divisor_ffd_double_source = 1) -> (exists k. m = 2 * k + 1) -> y * y = 2 * (m * n) -> exists u v. (m = u * u /\ n = 2 * (v * v))Proof neighborhood
Direct theorem prerequisites
PF000N pythagorean_odd_coordinate_coprime_two coprime_mul_right · Stable closed PF001E coprime_square_product_factors PF002D fermat_four_double_product_commute PF002C fermat_four_even_square_root mul_left_cancel_nonzero · Stable closed four_square_product_square · Alpha closed mul_assoc · Stable closed succ_ne_zero · Stable closedDirect theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (4)
01Fix variables and assumptionsL1–6
02Establish hm2L7–9
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean odd coordinate coprime two.
03Establish hm2nL10–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime mul right.
- L10
have hm2n : Coprime(m,2 · n)Definitions: Coprime(m,2 · n)Original native command in the exact edition - L11
specialize coprime_mul_right (m) - L12
specialize coprime_mul_right (2) - L13
specialize coprime_mul_right (n) - L14
apply coprime_mul_right - L15
exact hm2 - L16
exact hcoprime
04Establish hpartsL17–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime square product factors.
- L17
have hparts : exists u v. (m = u * u /\ 2 * n = v * v) - L18
specialize coprime_square_product_factors (m) - L19
specialize coprime_square_product_factors (2 * n) - L20
specialize coprime_square_product_factors (y) - L21
apply coprime_square_product_factors - L22
exact hm2n - L23
trans 2 * (m * n) - L24
apply fermat_four_double_product_commute - L25
symm - L26
exact hequation
05Separate the logical casesL27–29
06Establish hhalfL30–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply fermat four even square root.
07Construct an explicit witnessL32–32
Supply the displayed value, then prove that it has the required property.
- L32
exists n
08Calculate and transport equalitiesL33–33
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L33
symm
09Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact hparts_witness_witness_right
10Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hhalf
11Construct an explicit witnessL36–37
12Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
13Use earlier factsL39–43
14Fix variables and assumptionsL44–44
Work with arbitrary variables or the premises of the current implication.
- L44
intro hzero
15Use earlier factsL45–47
16Calculate and transport equalitiesL48–48
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L48
trans x1 * x1
17Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hparts_witness_witness_right
18Calculate and transport equalitiesL50–52
Original defined command ledger · 54 lines
- 0001
intro m - 0002
intro n - 0003
intro y - 0004
intro hcoprime - 0005
intro hm - 0006
intro hequation - 0007
have hm2 : Coprime(m,2)Exact native replay line
have hm2 : forall pff_divisor_ffd_double_two. (exists pff_left_ffd_double_two. (m) = pff_divisor_ffd_double_two * pff_left_ffd_double_two) -> (exists pff_right_ffd_double_two. (2) = pff_divisor_ffd_double_two * pff_right_ffd_double_two) -> pff_divisor_ffd_double_two = 1 - 0008
apply pythagorean_odd_coordinate_coprime_two - 0009
exact hm - 0010
have hm2n : Coprime(m,2 · n)Exact native replay line
have hm2n : forall pff_divisor_ffd_double_product. (exists pff_left_ffd_double_product. (m) = pff_divisor_ffd_double_product * pff_left_ffd_double_product) -> (exists pff_right_ffd_double_product. (2 * n) = pff_divisor_ffd_double_product * pff_right_ffd_double_product) -> pff_divisor_ffd_double_product = 1 - 0011
specialize coprime_mul_right (m) - 0012
specialize coprime_mul_right (2) - 0013
specialize coprime_mul_right (n) - 0014
apply coprime_mul_right - 0015
exact hm2 - 0016
exact hcoprime - 0017
have hparts : exists u v. (m = u * u /\ 2 * n = v * v) - 0018
specialize coprime_square_product_factors (m) - 0019
specialize coprime_square_product_factors (2 * n) - 0020
specialize coprime_square_product_factors (y) - 0021
apply coprime_square_product_factors - 0022
exact hm2n - 0023
trans 2 * (m * n) - 0024
apply fermat_four_double_product_commute - 0025
symm - 0026
exact hequation - 0027
cases hparts - 0028
cases hparts_witness - 0029
cases hparts_witness_witness - 0030
have hhalf : Even(x1)Exact native replay line
have hhalf : exists k. x1 = 2 * k - 0031
apply fermat_four_even_square_root - 0032
exists n - 0033
symm - 0034
exact hparts_witness_witness_right - 0035
cases hhalf - 0036
exists x - 0037
exists x2 - 0038
split - 0039
exact hparts_witness_witness_left - 0040
specialize mul_left_cancel_nonzero (2) - 0041
specialize mul_left_cancel_nonzero (n) - 0042
specialize mul_left_cancel_nonzero (2 * (x2 * x2)) - 0043
apply mul_left_cancel_nonzero - 0044
intro hzero - 0045
specialize succ_ne_zero 1 - 0046
apply succ_ne_zero - 0047
exact hzero - 0048
trans x1 * x1 - 0049
exact hparts_witness_witness_right - 0050
rewrite hhalf_witness - 0051
rewrite hhalf_witness - 0052
trans (2 * 2) * (x2 * x2) - 0053
apply four_square_product_square - 0054
apply mul_assoc