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
∀ x. ∀ y. ∀ z. PrimitivePythagorean(x,y,z) → Coprime(x,z)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 x y z. ((((x) * (x) + (y) * (y) = (z) * (z)) /\ (forall pff_divisor_pairwise_source. (exists pff_left_pairwise_source. (x) = pff_divisor_pairwise_source * pff_left_pairwise_source) -> (exists pff_right_pairwise_source. (y) = pff_divisor_pairwise_source * pff_right_pairwise_source) -> pff_divisor_pairwise_source = 1))) -> (forall pff_divisor_first_hypotenuse_result. (exists pff_left_first_hypotenuse_result. (x) = pff_divisor_first_hypotenuse_result * pff_left_first_hypotenuse_result) -> (exists pff_right_first_hypotenuse_result. (z) = pff_divisor_first_hypotenuse_result * pff_right_first_hypotenuse_result) -> pff_divisor_first_hypotenuse_result = 1)Proof neighborhood
Direct theorem prerequisites
PF000O pythagorean_parameter_divisor_divides_square divides_remainder · Stable closed mul_one · Stable closed coprime_mul_right · Stable closedDirect 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 (1)
01Fix variables and assumptionsL1–4
02Separate the logical casesL5–5
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L5
cases hprimitive
03Fix variables and assumptionsL6–8
04Establish hxsquareL9–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean parameter divisor divides square.
- L9
have hxsquare : Dvd(divisor,x · x)Definitions: Dvd(divisor,x · x)Original native command in the exact edition - L10
specialize pythagorean_parameter_divisor_divides_square divisor - L11
specialize pythagorean_parameter_divisor_divides_square x - L12
apply pythagorean_parameter_divisor_divides_square - L13
exact hx
05Establish hzsquareL14–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean parameter divisor divides square.
- L14
have hzsquare : Dvd(divisor,z · z)Definitions: Dvd(divisor,z · z)Original native command in the exact edition - L15
specialize pythagorean_parameter_divisor_divides_square divisor - L16
specialize pythagorean_parameter_divisor_divides_square z - L17
apply pythagorean_parameter_divisor_divides_square - L18
exact hz
06Establish hysquareL19–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divides remainder.
- L19
have hysquare : Dvd(divisor,y · y)Definitions: Dvd(divisor,y · y)Original native command in the exact edition - L20
specialize divides_remainder divisor - L21
specialize divides_remainder (z * z) - L22
specialize divides_remainder (x * x) - L23
specialize divides_remainder 1 - L24
specialize divides_remainder (y * y) - L25
apply divides_remainder - L26
exact hzsquare - L27
exact hxsquare - L28
specialize mul_one (x * x)
07Calculate and transport equalitiesL29–30
08Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact hprimitive_left
09Establish hsquarecopL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime mul right.
- L32
have hsquarecop : Coprime(x,y · y)Definitions: Coprime(x,y · y)Original native command in the exact edition - L33
specialize coprime_mul_right x - L34
specialize coprime_mul_right y - L35
specialize coprime_mul_right y - L36
apply coprime_mul_right - L37
exact hprimitive_right - L38
exact hprimitive_right - L39
specialize hsquarecop divisor - L40
apply hsquarecop - L41
exact hx
10Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hysquare
Original defined command ledger · 42 lines
- 0001
intro x - 0002
intro y - 0003
intro z - 0004
intro hprimitive - 0005
cases hprimitive - 0006
intro divisor - 0007
intro hx - 0008
intro hz - 0009
have hxsquare : Dvd(divisor,x · x)Exact native replay line
have hxsquare : exists q. x * x = divisor * q - 0010
specialize pythagorean_parameter_divisor_divides_square divisor - 0011
specialize pythagorean_parameter_divisor_divides_square x - 0012
apply pythagorean_parameter_divisor_divides_square - 0013
exact hx - 0014
have hzsquare : Dvd(divisor,z · z)Exact native replay line
have hzsquare : exists q. z * z = divisor * q - 0015
specialize pythagorean_parameter_divisor_divides_square divisor - 0016
specialize pythagorean_parameter_divisor_divides_square z - 0017
apply pythagorean_parameter_divisor_divides_square - 0018
exact hz - 0019
have hysquare : Dvd(divisor,y · y)Exact native replay line
have hysquare : exists q. y * y = divisor * q - 0020
specialize divides_remainder divisor - 0021
specialize divides_remainder (z * z) - 0022
specialize divides_remainder (x * x) - 0023
specialize divides_remainder 1 - 0024
specialize divides_remainder (y * y) - 0025
apply divides_remainder - 0026
exact hzsquare - 0027
exact hxsquare - 0028
specialize mul_one (x * x) - 0029
rewrite mul_one - 0030
symm - 0031
exact hprimitive_left - 0032
have hsquarecop : Coprime(x,y · y)Exact native replay line
have hsquarecop : forall pff_divisor_hypotenuse_first_square. (exists pff_left_hypotenuse_first_square. (x) = pff_divisor_hypotenuse_first_square * pff_left_hypotenuse_first_square) -> (exists pff_right_hypotenuse_first_square. (y * y) = pff_divisor_hypotenuse_first_square * pff_right_hypotenuse_first_square) -> pff_divisor_hypotenuse_first_square = 1 - 0033
specialize coprime_mul_right x - 0034
specialize coprime_mul_right y - 0035
specialize coprime_mul_right y - 0036
apply coprime_mul_right - 0037
exact hprimitive_right - 0038
exact hprimitive_right - 0039
specialize hsquarecop divisor - 0040
apply hsquarecop - 0041
exact hx - 0042
exact hysquare