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. PrimitivePythagorean(a,b,c) → ¬b = 0 → Odd(a) → Even(b) → ∃ x. ∃ y. b = 2 · x ∧ (c = a + 2 · y ∧ ((a + y) · y = x · x ∧ Coprime(a + y,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. ((((a) * (a) + (b) * (b) = (c) * (c)) /\ (forall pff_divisor_pi_source. (exists pff_left_pi_source. (a) = pff_divisor_pi_source * pff_left_pi_source) -> (exists pff_right_pi_source. (b) = pff_divisor_pi_source * pff_right_pi_source) -> pff_divisor_pi_source = 1))) -> ~(b = 0) -> (exists pp_odd_pi_half_a. (a) = 2 * pp_odd_pi_half_a + 1) -> (exists pp_even_pi_half_b. (b) = 2 * pp_even_pi_half_b) -> exists h t. (b = 2 * h /\ (c = a + 2 * t /\ ((a + t) * t = h * h /\ (forall pff_divisor_pi_half_coprime. (exists pff_left_pi_half_coprime. (a + t) = pff_divisor_pi_half_coprime * pff_left_pi_half_coprime) -> (exists pff_right_pi_half_coprime. (t) = pff_divisor_pi_half_coprime * pff_right_pi_half_coprime) -> pff_divisor_pi_half_coprime = 1))))Proof neighborhood
Direct theorem prerequisites
PF000W pythagorean_primitive_hypotenuse_coprime_first_leg PF0016 pythagorean_primitive_hypotenuse_odd PF001I pythagorean_leg_strictly_below_hypotenuse lt_to_le · Stable closed PF001J pythagorean_odd_ordered_difference_even PF001M pythagorean_half_product_is_square PF001N pythagorean_half_factors_coprimeDirect 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 (6)
01Fix variables and assumptionsL1–7
02Establish hcopL8–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean primitive hypotenuse coprime first leg.
03Establish hcoddL14–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean primitive hypotenuse odd.
04Establish hboundL20–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt to le.
05Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hp
06Use earlier factsL27–28
07Establish hgapL29–33
08Separate the logical casesL34–35
09Construct an explicit witnessL36–37
10Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
11Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hbeven_witness
12Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
split
13Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hgap_witness
14Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
15Use earlier factsL43–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
16Calculate and transport equalitiesL48–49
17Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases hp
18Use earlier factsL51–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 58 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro hp - 0005
intro hb - 0006
intro haodd - 0007
intro hbeven - 0008
have hcop : Coprime(a,c)Exact native replay line
have hcop : forall pff_divisor_pi_half_pair. (exists pff_left_pi_half_pair. (a) = pff_divisor_pi_half_pair * pff_left_pi_half_pair) -> (exists pff_right_pi_half_pair. (c) = pff_divisor_pi_half_pair * pff_right_pi_half_pair) -> pff_divisor_pi_half_pair = 1 - 0009
specialize pythagorean_primitive_hypotenuse_coprime_first_leg a - 0010
specialize pythagorean_primitive_hypotenuse_coprime_first_leg b - 0011
specialize pythagorean_primitive_hypotenuse_coprime_first_leg c - 0012
apply pythagorean_primitive_hypotenuse_coprime_first_leg - 0013
exact hp - 0014
have hcodd : Odd(c)Exact native replay line
have hcodd : exists pp_odd_pi_half_hypotenuse. (c) = 2 * pp_odd_pi_half_hypotenuse + 1 - 0015
specialize pythagorean_primitive_hypotenuse_odd a - 0016
specialize pythagorean_primitive_hypotenuse_odd b - 0017
specialize pythagorean_primitive_hypotenuse_odd c - 0018
apply pythagorean_primitive_hypotenuse_odd - 0019
exact hp - 0020
have hbound : Le(a,c)Exact native replay line
have hbound : exists gap. gap + a = c - 0021
apply lt_to_le - 0022
specialize pythagorean_leg_strictly_below_hypotenuse a - 0023
specialize pythagorean_leg_strictly_below_hypotenuse b - 0024
specialize pythagorean_leg_strictly_below_hypotenuse c - 0025
apply pythagorean_leg_strictly_below_hypotenuse - 0026
cases hp - 0027
exact hp_left - 0028
exact hb - 0029
have hgap : exists t. c = a + 2 * t - 0030
apply pythagorean_odd_ordered_difference_even - 0031
exact hbound - 0032
exact haodd - 0033
exact hcodd - 0034
cases hgap - 0035
cases hbeven - 0036
exists x1 - 0037
exists x - 0038
split - 0039
exact hbeven_witness - 0040
split - 0041
exact hgap_witness - 0042
split - 0043
specialize pythagorean_half_product_is_square a - 0044
specialize pythagorean_half_product_is_square c - 0045
specialize pythagorean_half_product_is_square x1 - 0046
specialize pythagorean_half_product_is_square x - 0047
apply pythagorean_half_product_is_square - 0048
rewrite <- hbeven_witness - 0049
rewrite <- hbeven_witness - 0050
cases hp - 0051
exact hp_left - 0052
exact hgap_witness - 0053
specialize pythagorean_half_factors_coprime a - 0054
specialize pythagorean_half_factors_coprime c - 0055
specialize pythagorean_half_factors_coprime x - 0056
apply pythagorean_half_factors_coprime - 0057
exact hcop - 0058
exact hgap_witness