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 a b c. (exists pi_larger_forward_either pi_smaller_forward_either. ((~((pi_smaller_forward_either) = 0) /\ ((exists pi_gap_forward_either. pi_gap_forward_either + S (pi_smaller_forward_either) = (pi_larger_forward_either)) /\ ((forall pff_divisor_pi_forward_either_coprime. (exists pff_left_pi_forward_either_coprime. (pi_larger_forward_either) = pff_divisor_pi_forward_either_coprime * pff_left_pi_forward_either_coprime) -> (exists pff_right_pi_forward_either_coprime. (pi_smaller_forward_either) = pff_divisor_pi_forward_either_coprime * pff_right_pi_forward_either_coprime) -> pff_divisor_pi_forward_either_coprime = 1) /\ (((((exists pp_even_pi_forward_either_parity_first_even. (pi_larger_forward_either) = 2 * pp_even_pi_forward_either_parity_first_even) /\ (exists pp_odd_pi_forward_either_parity_second_odd. (pi_smaller_forward_either) = 2 * pp_odd_pi_forward_either_parity_second_odd + 1)) \/ ((exists pp_odd_pi_forward_either_parity_first_odd. (pi_larger_forward_either) = 2 * pp_odd_pi_forward_either_parity_first_odd + 1) /\ (exists pp_even_pi_forward_either_parity_second_even. (pi_smaller_forward_either) = 2 * pp_even_pi_forward_either_parity_second_even)))) /\ ((c) = (pi_larger_forward_either) * (pi_larger_forward_either) + (pi_smaller_forward_either) * (pi_smaller_forward_either) /\ (((pi_larger_forward_either) * (pi_larger_forward_either) = (pi_smaller_forward_either) * (pi_smaller_forward_either) + (a) /\ (b) = 2 * ((pi_larger_forward_either) * (pi_smaller_forward_either))) \/ ((pi_larger_forward_either) * (pi_larger_forward_either) = (pi_smaller_forward_either) * (pi_smaller_forward_either) + (b) /\ (a) = 2 * ((pi_larger_forward_either) * (pi_smaller_forward_either))))))))))) -> ((~((a) = 0) /\ (~((b) = 0) /\ (~((c) = 0) /\ ((((a) * (a) + (b) * (b) = (c) * (c)) /\ (forall pff_divisor_pi_forward_triple. (exists pff_left_pi_forward_triple. (a) = pff_divisor_pi_forward_triple * pff_left_pi_forward_triple) -> (exists pff_right_pi_forward_triple. (b) = pff_divisor_pi_forward_triple * pff_right_pi_forward_triple) -> pff_divisor_pi_forward_triple = 1)))))))Constructive proof overview
Generated structural guide
Either canonical Euclidean leg orientation constructs a positive primitive Pythagorean triple with every positivity obligation checked.
The unchanged tactic script uses 2 declared prerequisites and contains 56 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
PF0021 pythagorean_euclidean_parameters_positive_constructor PF001Y pythagorean_positive_primitive_leg_swapDirect 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 (2)
01Fix variables and assumptionsL1–4
02Separate the logical casesL5–6
03Establish hpL7–8
Establish this local claim before using it. It is not an additional assumption.
- L7
have hp : ¬x1 = 0 ∧ (Lt(x1,x) ∧ (Coprime(x,x1) ∧ (OppositeParity(x,x1) ∧ (c = x · x + x1 · x1 ∧ (x · x = x1 · x1 + a ∧ b = 2 · (x · x1) ∨ x · x = x1 · x1 + b ∧ a = 2 · (x · x1))))))Definitions: OppositeParityLtCoprime - L8
exact hparameters_witness_witness
04Separate the logical casesL9–14
05Establish horientedL15–15
Establish this local claim before using it. It is not an additional assumption.
- L15
have horiented : EuclidParameters(a,b,c,x,x1)Definitions: EuclidParameters
06Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
split
07Use earlier factsL17–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
exact hp_left
08Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
split
09Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
exact hp_right_left
10Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
split
11Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact hp_right_right_left
12Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
split
13Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hp_right_right_right_left
14Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
split
15Use earlier factsL25–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
exact hp_right_right_right_right_left - L26
exact hp_right_right_right_right_right_left - L27
specialize pythagorean_euclidean_parameters_positive_constructor a - L28
specialize pythagorean_euclidean_parameters_positive_constructor b - L29
specialize pythagorean_euclidean_parameters_positive_constructor c - L30
specialize pythagorean_euclidean_parameters_positive_constructor x - L31
specialize pythagorean_euclidean_parameters_positive_constructor x1 - L32
apply pythagorean_euclidean_parameters_positive_constructor - L33
exact horiented
16Establish horientedL34–34
Establish this local claim before using it. It is not an additional assumption.
- L34
have horiented : EuclidParameters(b,a,c,x,x1)Definitions: EuclidParameters
17Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
split
18Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hp_left
19Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
20Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hp_right_left
21Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
split
22Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hp_right_right_left
23Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
24Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hp_right_right_right_left
25Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
26Use earlier factsL44–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
exact hp_right_right_right_right_left - L45
exact hp_right_right_right_right_right_right - L46
specialize pythagorean_positive_primitive_leg_swap b - L47
specialize pythagorean_positive_primitive_leg_swap a - L48
specialize pythagorean_positive_primitive_leg_swap c - L49
apply pythagorean_positive_primitive_leg_swap - L50
specialize pythagorean_euclidean_parameters_positive_constructor b - L51
specialize pythagorean_euclidean_parameters_positive_constructor a - L52
specialize pythagorean_euclidean_parameters_positive_constructor c - L53
specialize pythagorean_euclidean_parameters_positive_constructor x
Original exact command ledger · 56 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro hparameters - 0005
cases hparameters - 0006
cases hparameters_witness - 0007
have hp : (~((x1) = 0) /\ ((exists pi_gap_forward_copy. pi_gap_forward_copy + S (x1) = (x)) /\ ((forall pff_divisor_pi_forward_copy_coprime. (exists pff_left_pi_forward_copy_coprime. (x) = pff_divisor_pi_forward_copy_coprime * pff_left_pi_forward_copy_coprime) -> (exists pff_right_pi_forward_copy_coprime. (x1) = pff_divisor_pi_forward_copy_coprime * pff_right_pi_forward_copy_coprime) -> pff_divisor_pi_forward_copy_coprime = 1) /\ (((((exists pp_even_pi_forward_copy_parity_first_even. (x) = 2 * pp_even_pi_forward_copy_parity_first_even) /\ (exists pp_odd_pi_forward_copy_parity_second_odd. (x1) = 2 * pp_odd_pi_forward_copy_parity_second_odd + 1)) \/ ((exists pp_odd_pi_forward_copy_parity_first_odd. (x) = 2 * pp_odd_pi_forward_copy_parity_first_odd + 1) /\ (exists pp_even_pi_forward_copy_parity_second_even. (x1) = 2 * pp_even_pi_forward_copy_parity_second_even)))) /\ ((c) = (x) * (x) + (x1) * (x1) /\ (((x) * (x) = (x1) * (x1) + (a) /\ (b) = 2 * ((x) * (x1))) \/ ((x) * (x) = (x1) * (x1) + (b) /\ (a) = 2 * ((x) * (x1))))))))) - 0008
exact hparameters_witness_witness - 0009
cases hp - 0010
cases hp_right - 0011
cases hp_right_right - 0012
cases hp_right_right_right - 0013
cases hp_right_right_right_right - 0014
cases hp_right_right_right_right_right - 0015
have horiented : (~((x1) = 0) /\ ((exists pi_gap_forward_orientation. pi_gap_forward_orientation + S (x1) = (x)) /\ ((forall pff_divisor_pi_forward_orientation_coprime. (exists pff_left_pi_forward_orientation_coprime. (x) = pff_divisor_pi_forward_orientation_coprime * pff_left_pi_forward_orientation_coprime) -> (exists pff_right_pi_forward_orientation_coprime. (x1) = pff_divisor_pi_forward_orientation_coprime * pff_right_pi_forward_orientation_coprime) -> pff_divisor_pi_forward_orientation_coprime = 1) /\ (((((exists pp_even_pi_forward_orientation_parity_first_even. (x) = 2 * pp_even_pi_forward_orientation_parity_first_even) /\ (exists pp_odd_pi_forward_orientation_parity_second_odd. (x1) = 2 * pp_odd_pi_forward_orientation_parity_second_odd + 1)) \/ ((exists pp_odd_pi_forward_orientation_parity_first_odd. (x) = 2 * pp_odd_pi_forward_orientation_parity_first_odd + 1) /\ (exists pp_even_pi_forward_orientation_parity_second_even. (x1) = 2 * pp_even_pi_forward_orientation_parity_second_even)))) /\ ((c) = (x) * (x) + (x1) * (x1) /\ ((x) * (x) = (x1) * (x1) + (a) /\ (b) = 2 * ((x) * (x1)))))))) - 0016
split - 0017
exact hp_left - 0018
split - 0019
exact hp_right_left - 0020
split - 0021
exact hp_right_right_left - 0022
split - 0023
exact hp_right_right_right_left - 0024
split - 0025
exact hp_right_right_right_right_left - 0026
exact hp_right_right_right_right_right_left - 0027
specialize pythagorean_euclidean_parameters_positive_constructor a - 0028
specialize pythagorean_euclidean_parameters_positive_constructor b - 0029
specialize pythagorean_euclidean_parameters_positive_constructor c - 0030
specialize pythagorean_euclidean_parameters_positive_constructor x - 0031
specialize pythagorean_euclidean_parameters_positive_constructor x1 - 0032
apply pythagorean_euclidean_parameters_positive_constructor - 0033
exact horiented - 0034
have horiented : (~((x1) = 0) /\ ((exists pi_gap_forward_orientation. pi_gap_forward_orientation + S (x1) = (x)) /\ ((forall pff_divisor_pi_forward_orientation_coprime. (exists pff_left_pi_forward_orientation_coprime. (x) = pff_divisor_pi_forward_orientation_coprime * pff_left_pi_forward_orientation_coprime) -> (exists pff_right_pi_forward_orientation_coprime. (x1) = pff_divisor_pi_forward_orientation_coprime * pff_right_pi_forward_orientation_coprime) -> pff_divisor_pi_forward_orientation_coprime = 1) /\ (((((exists pp_even_pi_forward_orientation_parity_first_even. (x) = 2 * pp_even_pi_forward_orientation_parity_first_even) /\ (exists pp_odd_pi_forward_orientation_parity_second_odd. (x1) = 2 * pp_odd_pi_forward_orientation_parity_second_odd + 1)) \/ ((exists pp_odd_pi_forward_orientation_parity_first_odd. (x) = 2 * pp_odd_pi_forward_orientation_parity_first_odd + 1) /\ (exists pp_even_pi_forward_orientation_parity_second_even. (x1) = 2 * pp_even_pi_forward_orientation_parity_second_even)))) /\ ((c) = (x) * (x) + (x1) * (x1) /\ ((x) * (x) = (x1) * (x1) + (b) /\ (a) = 2 * ((x) * (x1)))))))) - 0035
split - 0036
exact hp_left - 0037
split - 0038
exact hp_right_left - 0039
split - 0040
exact hp_right_right_left - 0041
split - 0042
exact hp_right_right_right_left - 0043
split - 0044
exact hp_right_right_right_right_left - 0045
exact hp_right_right_right_right_right_right - 0046
specialize pythagorean_positive_primitive_leg_swap b - 0047
specialize pythagorean_positive_primitive_leg_swap a - 0048
specialize pythagorean_positive_primitive_leg_swap c - 0049
apply pythagorean_positive_primitive_leg_swap - 0050
specialize pythagorean_euclidean_parameters_positive_constructor b - 0051
specialize pythagorean_euclidean_parameters_positive_constructor a - 0052
specialize pythagorean_euclidean_parameters_positive_constructor c - 0053
specialize pythagorean_euclidean_parameters_positive_constructor x - 0054
specialize pythagorean_euclidean_parameters_positive_constructor x1 - 0055
apply pythagorean_euclidean_parameters_positive_constructor - 0056
exact horiented