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. PrimitiveTriple(a,b,c) → EuclidParametrization(a,b,c)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. ((~((a) = 0) /\ (~((b) = 0) /\ (~((c) = 0) /\ ((((a) * (a) + (b) * (b) = (c) * (c)) /\ (forall pff_divisor_pi_inverse_positive. (exists pff_left_pi_inverse_positive. (a) = pff_divisor_pi_inverse_positive * pff_left_pi_inverse_positive) -> (exists pff_right_pi_inverse_positive. (b) = pff_divisor_pi_inverse_positive * pff_right_pi_inverse_positive) -> pff_divisor_pi_inverse_positive = 1))))))) -> (exists pi_larger_inverse_either pi_smaller_inverse_either. ((~((pi_smaller_inverse_either) = 0) /\ ((exists pi_gap_inverse_either. pi_gap_inverse_either + S (pi_smaller_inverse_either) = (pi_larger_inverse_either)) /\ ((forall pff_divisor_pi_inverse_either_coprime. (exists pff_left_pi_inverse_either_coprime. (pi_larger_inverse_either) = pff_divisor_pi_inverse_either_coprime * pff_left_pi_inverse_either_coprime) -> (exists pff_right_pi_inverse_either_coprime. (pi_smaller_inverse_either) = pff_divisor_pi_inverse_either_coprime * pff_right_pi_inverse_either_coprime) -> pff_divisor_pi_inverse_either_coprime = 1) /\ (((((exists pp_even_pi_inverse_either_parity_first_even. (pi_larger_inverse_either) = 2 * pp_even_pi_inverse_either_parity_first_even) /\ (exists pp_odd_pi_inverse_either_parity_second_odd. (pi_smaller_inverse_either) = 2 * pp_odd_pi_inverse_either_parity_second_odd + 1)) \/ ((exists pp_odd_pi_inverse_either_parity_first_odd. (pi_larger_inverse_either) = 2 * pp_odd_pi_inverse_either_parity_first_odd + 1) /\ (exists pp_even_pi_inverse_either_parity_second_even. (pi_smaller_inverse_either) = 2 * pp_even_pi_inverse_either_parity_second_even)))) /\ ((c) = (pi_larger_inverse_either) * (pi_larger_inverse_either) + (pi_smaller_inverse_either) * (pi_smaller_inverse_either) /\ (((pi_larger_inverse_either) * (pi_larger_inverse_either) = (pi_smaller_inverse_either) * (pi_smaller_inverse_either) + (a) /\ (b) = 2 * ((pi_larger_inverse_either) * (pi_smaller_inverse_either))) \/ ((pi_larger_inverse_either) * (pi_larger_inverse_either) = (pi_smaller_inverse_either) * (pi_smaller_inverse_either) + (b) /\ (a) = 2 * ((pi_larger_inverse_either) * (pi_smaller_inverse_either)))))))))))Proof neighborhood
Direct theorem prerequisites
PF0014 pythagorean_primitive_legs_opposite_parity PF000C pythagorean_primitive_leg_swap PF001X pythagorean_primitive_odd_even_inverseDirect 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 (3)
01Fix variables and assumptionsL1–4
02Separate the logical casesL5–7
03Establish hparityL8–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean primitive legs opposite parity.
- L8
have hparity : OppositeParity(a,b)Definitions: OppositeParity(a,b)Original native command in the exact edition - L9
specialize pythagorean_primitive_legs_opposite_parity a - L10
specialize pythagorean_primitive_legs_opposite_parity b - L11
specialize pythagorean_primitive_legs_opposite_parity c - L12
apply pythagorean_primitive_legs_opposite_parity - L13
exact hp_right_right_right
04Separate the logical casesL14–15
05Establish hparametersL16–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean primitive odd even inverse.
- L16
have hparameters : ∃ m. ∃ n. EuclidParameters(b,a,c,m,n)Definitions: EuclidParameters(b,a,c,m,n)Original native command in the exact edition - L17
specialize pythagorean_primitive_odd_even_inverse b - L18
specialize pythagorean_primitive_odd_even_inverse a - L19
specialize pythagorean_primitive_odd_even_inverse c - L20
apply pythagorean_primitive_odd_even_inverse - L21
specialize pythagorean_primitive_leg_swap a - L22
specialize pythagorean_primitive_leg_swap b - L23
specialize pythagorean_primitive_leg_swap c - L24
apply pythagorean_primitive_leg_swap - L25
exact hp_right_right_right
06Use earlier factsL26–29
07Separate the logical casesL30–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
08Construct an explicit witnessL37–38
09Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
split
10Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hparameters_witness_witness_left
11Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
12Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hparameters_witness_witness_right_left
13Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
14Use earlier factsL44–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
exact hparameters_witness_witness_right_right_left
15Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
split
16Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
exact hparameters_witness_witness_right_right_right_left
17Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
split
18Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hparameters_witness_witness_right_right_right_right_left
19Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
right
20Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hparameters_witness_witness_right_right_right_right_right
21Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
cases hparity_right
22Establish hparametersL52–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean primitive odd even inverse.
- L52
have hparameters : ∃ m. ∃ n. EuclidParameters(a,b,c,m,n)Definitions: EuclidParameters(a,b,c,m,n)Original native command in the exact edition - L53
specialize pythagorean_primitive_odd_even_inverse a - L54
specialize pythagorean_primitive_odd_even_inverse b - L55
specialize pythagorean_primitive_odd_even_inverse c - L56
apply pythagorean_primitive_odd_even_inverse - L57
exact hp_right_right_right - L58
exact hp_left - L59
exact hp_right_left - L60
exact hparity_right_left - L61
exact hparity_right_right
23Separate the logical casesL62–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
24Construct an explicit witnessL69–70
25Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
split
26Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
exact hparameters_witness_witness_left
27Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
28Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact hparameters_witness_witness_right_left
29Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
30Use earlier factsL76–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
exact hparameters_witness_witness_right_right_left
31Separate the logical casesL77–77
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L77
split
32Use earlier factsL78–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
exact hparameters_witness_witness_right_right_right_left
33Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
34Use earlier factsL80–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L80
exact hparameters_witness_witness_right_right_right_right_left
35Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
left
36Use earlier factsL82–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
exact hparameters_witness_witness_right_right_right_right_right
Original defined command ledger · 82 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro hp - 0005
cases hp - 0006
cases hp_right - 0007
cases hp_right_right - 0008
have hparity : OppositeParity(a,b)Exact native replay line
have hparity : (((exists pp_even_pi_inverse_choice_first_even. (a) = 2 * pp_even_pi_inverse_choice_first_even) /\ (exists pp_odd_pi_inverse_choice_second_odd. (b) = 2 * pp_odd_pi_inverse_choice_second_odd + 1)) \/ ((exists pp_odd_pi_inverse_choice_first_odd. (a) = 2 * pp_odd_pi_inverse_choice_first_odd + 1) /\ (exists pp_even_pi_inverse_choice_second_even. (b) = 2 * pp_even_pi_inverse_choice_second_even))) - 0009
specialize pythagorean_primitive_legs_opposite_parity a - 0010
specialize pythagorean_primitive_legs_opposite_parity b - 0011
specialize pythagorean_primitive_legs_opposite_parity c - 0012
apply pythagorean_primitive_legs_opposite_parity - 0013
exact hp_right_right_right - 0014
cases hparity - 0015
cases hparity_left - 0016
have hparameters : ∃ m. ∃ n. EuclidParameters(b,a,c,m,n)Exact native replay line
have hparameters : exists m n. ((~((n) = 0) /\ ((exists pi_gap_choice. pi_gap_choice + S (n) = (m)) /\ ((forall pff_divisor_pi_choice_coprime. (exists pff_left_pi_choice_coprime. (m) = pff_divisor_pi_choice_coprime * pff_left_pi_choice_coprime) -> (exists pff_right_pi_choice_coprime. (n) = pff_divisor_pi_choice_coprime * pff_right_pi_choice_coprime) -> pff_divisor_pi_choice_coprime = 1) /\ (((((exists pp_even_pi_choice_parity_first_even. (m) = 2 * pp_even_pi_choice_parity_first_even) /\ (exists pp_odd_pi_choice_parity_second_odd. (n) = 2 * pp_odd_pi_choice_parity_second_odd + 1)) \/ ((exists pp_odd_pi_choice_parity_first_odd. (m) = 2 * pp_odd_pi_choice_parity_first_odd + 1) /\ (exists pp_even_pi_choice_parity_second_even. (n) = 2 * pp_even_pi_choice_parity_second_even)))) /\ ((c) = (m) * (m) + (n) * (n) /\ ((m) * (m) = (n) * (n) + (b) /\ (a) = 2 * ((m) * (n))))))))) - 0017
specialize pythagorean_primitive_odd_even_inverse b - 0018
specialize pythagorean_primitive_odd_even_inverse a - 0019
specialize pythagorean_primitive_odd_even_inverse c - 0020
apply pythagorean_primitive_odd_even_inverse - 0021
specialize pythagorean_primitive_leg_swap a - 0022
specialize pythagorean_primitive_leg_swap b - 0023
specialize pythagorean_primitive_leg_swap c - 0024
apply pythagorean_primitive_leg_swap - 0025
exact hp_right_right_right - 0026
exact hp_right_left - 0027
exact hp_left - 0028
exact hparity_left_right - 0029
exact hparity_left_left - 0030
cases hparameters - 0031
cases hparameters_witness - 0032
cases hparameters_witness_witness - 0033
cases hparameters_witness_witness_right - 0034
cases hparameters_witness_witness_right_right - 0035
cases hparameters_witness_witness_right_right_right - 0036
cases hparameters_witness_witness_right_right_right_right - 0037
exists x - 0038
exists x1 - 0039
split - 0040
exact hparameters_witness_witness_left - 0041
split - 0042
exact hparameters_witness_witness_right_left - 0043
split - 0044
exact hparameters_witness_witness_right_right_left - 0045
split - 0046
exact hparameters_witness_witness_right_right_right_left - 0047
split - 0048
exact hparameters_witness_witness_right_right_right_right_left - 0049
right - 0050
exact hparameters_witness_witness_right_right_right_right_right - 0051
cases hparity_right - 0052
have hparameters : ∃ m. ∃ n. EuclidParameters(a,b,c,m,n)Exact native replay line
have hparameters : exists m n. ((~((n) = 0) /\ ((exists pi_gap_choice. pi_gap_choice + S (n) = (m)) /\ ((forall pff_divisor_pi_choice_coprime. (exists pff_left_pi_choice_coprime. (m) = pff_divisor_pi_choice_coprime * pff_left_pi_choice_coprime) -> (exists pff_right_pi_choice_coprime. (n) = pff_divisor_pi_choice_coprime * pff_right_pi_choice_coprime) -> pff_divisor_pi_choice_coprime = 1) /\ (((((exists pp_even_pi_choice_parity_first_even. (m) = 2 * pp_even_pi_choice_parity_first_even) /\ (exists pp_odd_pi_choice_parity_second_odd. (n) = 2 * pp_odd_pi_choice_parity_second_odd + 1)) \/ ((exists pp_odd_pi_choice_parity_first_odd. (m) = 2 * pp_odd_pi_choice_parity_first_odd + 1) /\ (exists pp_even_pi_choice_parity_second_even. (n) = 2 * pp_even_pi_choice_parity_second_even)))) /\ ((c) = (m) * (m) + (n) * (n) /\ ((m) * (m) = (n) * (n) + (a) /\ (b) = 2 * ((m) * (n))))))))) - 0053
specialize pythagorean_primitive_odd_even_inverse a - 0054
specialize pythagorean_primitive_odd_even_inverse b - 0055
specialize pythagorean_primitive_odd_even_inverse c - 0056
apply pythagorean_primitive_odd_even_inverse - 0057
exact hp_right_right_right - 0058
exact hp_left - 0059
exact hp_right_left - 0060
exact hparity_right_left - 0061
exact hparity_right_right - 0062
cases hparameters - 0063
cases hparameters_witness - 0064
cases hparameters_witness_witness - 0065
cases hparameters_witness_witness_right - 0066
cases hparameters_witness_witness_right_right - 0067
cases hparameters_witness_witness_right_right_right - 0068
cases hparameters_witness_witness_right_right_right_right - 0069
exists x - 0070
exists x1 - 0071
split - 0072
exact hparameters_witness_witness_left - 0073
split - 0074
exact hparameters_witness_witness_right_left - 0075
split - 0076
exact hparameters_witness_witness_right_right_left - 0077
split - 0078
exact hparameters_witness_witness_right_right_right_left - 0079
split - 0080
exact hparameters_witness_witness_right_right_right_right_left - 0081
left - 0082
exact hparameters_witness_witness_right_right_right_right_right