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
∀ a. ∀ b. ∀ c. ∀ h. ∀ t. ¬a = 0 → ¬b = 0 → Odd(c) → b = 2 · h → c = a + 2 · t → (a + t) · t = h · h → Coprime(a + t,t) → ∃ x. ∃ y. EuclidParameters(a,b,c,x,y)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 a b c h t. ~(a = 0) -> ~(b = 0) -> (exists pp_odd_pi_extract_c. (c) = 2 * pp_odd_pi_extract_c + 1) -> b = 2 * h -> c = a + 2 * t -> (a + t) * t = h * h -> (forall pff_divisor_pi_extract_source. (exists pff_left_pi_extract_source. (a + t) = pff_divisor_pi_extract_source * pff_left_pi_extract_source) -> (exists pff_right_pi_extract_source. (t) = pff_divisor_pi_extract_source * pff_right_pi_extract_source) -> pff_divisor_pi_extract_source = 1) -> exists m n. ((~((n) = 0) /\ ((exists pi_gap_extract_result. pi_gap_extract_result + S (n) = (m)) /\ ((forall pff_divisor_pi_extract_result_coprime. (exists pff_left_pi_extract_result_coprime. (m) = pff_divisor_pi_extract_result_coprime * pff_left_pi_extract_result_coprime) -> (exists pff_right_pi_extract_result_coprime. (n) = pff_divisor_pi_extract_result_coprime * pff_right_pi_extract_result_coprime) -> pff_divisor_pi_extract_result_coprime = 1) /\ (((((exists pp_even_pi_extract_result_parity_first_even. (m) = 2 * pp_even_pi_extract_result_parity_first_even) /\ (exists pp_odd_pi_extract_result_parity_second_odd. (n) = 2 * pp_odd_pi_extract_result_parity_second_odd + 1)) \/ ((exists pp_odd_pi_extract_result_parity_first_odd. (m) = 2 * pp_odd_pi_extract_result_parity_first_odd + 1) /\ (exists pp_even_pi_extract_result_parity_second_even. (n) = 2 * pp_even_pi_extract_result_parity_second_even)))) /\ ((c) = (m) * (m) + (n) * (n) /\ ((m) * (m) = (n) * (n) + (a) /\ (b) = 2 * ((m) * (n)))))))))Proof neighborhood
Direct theorem prerequisites
PF001E coprime_square_product_factors PF001R pythagorean_half_roots_coordinates PF001S pythagorean_half_roots_even_leg PF001O pythagorean_coprime_square_roots PF001U pythagorean_positive_even_leg_parameters_nonzero PF001T pythagorean_positive_gap_orders_parameters PF001Q pythagorean_odd_square_sum_opposite_rootsDirect 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 (7)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish hrootsL13–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime square product factors.
04Separate the logical casesL20–22
05Establish hcoordinatesL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean half roots coordinates.
- L23
have hcoordinates : c = x * x + x1 * x1 /\ x * x = x1 * x1 + a - L24
specialize pythagorean_half_roots_coordinates a - L25
specialize pythagorean_half_roots_coordinates c - L26
specialize pythagorean_half_roots_coordinates t - L27
specialize pythagorean_half_roots_coordinates x - L28
specialize pythagorean_half_roots_coordinates x1 - L29
apply pythagorean_half_roots_coordinates - L30
exact hceq - L31
exact hroots_witness_witness_left - L32
exact hroots_witness_witness_right
06Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
cases hcoordinates
07Establish hlegL34–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean half roots even leg.
- L34
have hleg : b = 2 * (x * x1) - L35
trans 2 * h - L36
exact hbeq - L37
specialize pythagorean_half_roots_even_leg a - L38
specialize pythagorean_half_roots_even_leg t - L39
specialize pythagorean_half_roots_even_leg h - L40
specialize pythagorean_half_roots_even_leg x - L41
specialize pythagorean_half_roots_even_leg x1 - L42
apply pythagorean_half_roots_even_leg - L43
exact hproduct
08Use earlier factsL44–45
09Establish hpositiveL46–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean positive even leg parameters nonzero.
- L46
have hpositive : ~(x = 0) /\ ~(x1 = 0) - L47
specialize pythagorean_positive_even_leg_parameters_nonzero b - L48
specialize pythagorean_positive_even_leg_parameters_nonzero x - L49
specialize pythagorean_positive_even_leg_parameters_nonzero x1 - L50
apply pythagorean_positive_even_leg_parameters_nonzero - L51
exact hb - L52
exact hleg
10Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
cases hpositive
11Construct an explicit witnessL54–55
12Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
split
13Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact hpositive_right
14Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
split
15Use earlier factsL59–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
16Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
17Use earlier factsL66–68
18Calculate and transport equalitiesL69–70
19Use earlier factsL71–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
exact hcop
20Separate the logical casesL72–72
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L72
split
21Use earlier factsL73–75
22Calculate and transport equalitiesL76–76
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L76
rewrite <- hcoordinates_left
23Use earlier factsL77–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L77
exact hcodd
24Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
split
25Use earlier factsL79–79
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
exact hcoordinates_left
26Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
split
Original defined command ledger · 82 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro h - 0005
intro t - 0006
intro ha - 0007
intro hb - 0008
intro hcodd - 0009
intro hbeq - 0010
intro hceq - 0011
intro hproduct - 0012
intro hcop - 0013
have hroots : exists m n. a + t = m * m /\ t = n * n - 0014
specialize coprime_square_product_factors (a + t) - 0015
specialize coprime_square_product_factors t - 0016
specialize coprime_square_product_factors h - 0017
apply coprime_square_product_factors - 0018
exact hcop - 0019
exact hproduct - 0020
cases hroots - 0021
cases hroots_witness - 0022
cases hroots_witness_witness - 0023
have hcoordinates : c = x * x + x1 * x1 /\ x * x = x1 * x1 + a - 0024
specialize pythagorean_half_roots_coordinates a - 0025
specialize pythagorean_half_roots_coordinates c - 0026
specialize pythagorean_half_roots_coordinates t - 0027
specialize pythagorean_half_roots_coordinates x - 0028
specialize pythagorean_half_roots_coordinates x1 - 0029
apply pythagorean_half_roots_coordinates - 0030
exact hceq - 0031
exact hroots_witness_witness_left - 0032
exact hroots_witness_witness_right - 0033
cases hcoordinates - 0034
have hleg : b = 2 * (x * x1) - 0035
trans 2 * h - 0036
exact hbeq - 0037
specialize pythagorean_half_roots_even_leg a - 0038
specialize pythagorean_half_roots_even_leg t - 0039
specialize pythagorean_half_roots_even_leg h - 0040
specialize pythagorean_half_roots_even_leg x - 0041
specialize pythagorean_half_roots_even_leg x1 - 0042
apply pythagorean_half_roots_even_leg - 0043
exact hproduct - 0044
exact hroots_witness_witness_left - 0045
exact hroots_witness_witness_right - 0046
have hpositive : ~(x = 0) /\ ~(x1 = 0) - 0047
specialize pythagorean_positive_even_leg_parameters_nonzero b - 0048
specialize pythagorean_positive_even_leg_parameters_nonzero x - 0049
specialize pythagorean_positive_even_leg_parameters_nonzero x1 - 0050
apply pythagorean_positive_even_leg_parameters_nonzero - 0051
exact hb - 0052
exact hleg - 0053
cases hpositive - 0054
exists x - 0055
exists x1 - 0056
split - 0057
exact hpositive_right - 0058
split - 0059
specialize pythagorean_positive_gap_orders_parameters a - 0060
specialize pythagorean_positive_gap_orders_parameters x - 0061
specialize pythagorean_positive_gap_orders_parameters x1 - 0062
apply pythagorean_positive_gap_orders_parameters - 0063
exact ha - 0064
exact hcoordinates_right - 0065
split - 0066
specialize pythagorean_coprime_square_roots x - 0067
specialize pythagorean_coprime_square_roots x1 - 0068
apply pythagorean_coprime_square_roots - 0069
rewrite <- hroots_witness_witness_left - 0070
rewrite <- hroots_witness_witness_right - 0071
exact hcop - 0072
split - 0073
specialize pythagorean_odd_square_sum_opposite_roots x - 0074
specialize pythagorean_odd_square_sum_opposite_roots x1 - 0075
apply pythagorean_odd_square_sum_opposite_roots - 0076
rewrite <- hcoordinates_left - 0077
exact hcodd - 0078
split - 0079
exact hcoordinates_left - 0080
split - 0081
exact hcoordinates_right - 0082
exact hleg