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.
Exact expanded first-order arithmetic 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))Constructive proof overview
Generated structural guide
A square twice a coprime product with odd first factor supplies an actual square first factor and twice-square second factor.
The unchanged tactic script uses 9 declared prerequisites and contains 54 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
PF000N pythagorean_odd_coordinate_coprime_two coprime_mul_right Stable theorem; checked-use authorized PF001E coprime_square_product_factors PF002D fermat_four_double_product_commute PF002C fermat_four_even_square_root mul_left_cancel_nonzero Stable theorem; checked-use authorized four_square_product_square Alpha theorem; checked-use authorized mul_assoc Stable theorem; checked-use authorized succ_ne_zero Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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.
- L7
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 - L8
apply pythagorean_odd_coordinate_coprime_two - L9
exact hm
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 : 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 - 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
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 exact 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 : 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 : 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 : 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