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. ∀ m. ∀ n. EuclidParameters(a,b,c,m,n) → PrimitiveTriple(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 m n. ((~((n) = 0) /\ ((exists pi_gap_forward_parameters. pi_gap_forward_parameters + S (n) = (m)) /\ ((forall pff_divisor_pi_forward_parameters_coprime. (exists pff_left_pi_forward_parameters_coprime. (m) = pff_divisor_pi_forward_parameters_coprime * pff_left_pi_forward_parameters_coprime) -> (exists pff_right_pi_forward_parameters_coprime. (n) = pff_divisor_pi_forward_parameters_coprime * pff_right_pi_forward_parameters_coprime) -> pff_divisor_pi_forward_parameters_coprime = 1) /\ (((((exists pp_even_pi_forward_parameters_parity_first_even. (m) = 2 * pp_even_pi_forward_parameters_parity_first_even) /\ (exists pp_odd_pi_forward_parameters_parity_second_odd. (n) = 2 * pp_odd_pi_forward_parameters_parity_second_odd + 1)) \/ ((exists pp_odd_pi_forward_parameters_parity_first_odd. (m) = 2 * pp_odd_pi_forward_parameters_parity_first_odd + 1) /\ (exists pp_even_pi_forward_parameters_parity_second_even. (n) = 2 * pp_even_pi_forward_parameters_parity_second_even)))) /\ ((c) = (m) * (m) + (n) * (n) /\ ((m) * (m) = (n) * (n) + (a) /\ (b) = 2 * ((m) * (n))))))))) -> ((~((a) = 0) /\ (~((b) = 0) /\ (~((c) = 0) /\ ((((a) * (a) + (b) * (b) = (c) * (c)) /\ (forall pff_divisor_pi_forward_positive. (exists pff_left_pi_forward_positive. (a) = pff_divisor_pi_forward_positive * pff_left_pi_forward_positive) -> (exists pff_right_pi_forward_positive. (b) = pff_divisor_pi_forward_positive * pff_right_pi_forward_positive) -> pff_divisor_pi_forward_positive = 1)))))))Proof neighborhood
Direct theorem prerequisites
PF0020 pythagorean_ordered_gap_positive PF000T pythagorean_primitive_euclidean_constructor PF000A pythagorean_hypotenuse_nonzero mul_ne_zero · Stable closed succ_ne_zero · 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 (3)
01Fix variables and assumptionsL1–6
02Separate the logical casesL7–12
03Establish hpositiveL13–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pythagorean ordered gap positive.
- L13
have hpositive : ~(m = 0) /\ ~(a = 0) - L14
specialize pythagorean_ordered_gap_positive a - L15
specialize pythagorean_ordered_gap_positive m - L16
specialize pythagorean_ordered_gap_positive n - L17
apply pythagorean_ordered_gap_positive - L18
exact hp_left - L19
exact hp_right_left - L20
exact hp_right_right_right_right_right_left
04Separate the logical casesL21–22
05Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hpositive_right
06Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
split
07Fix variables and assumptionsL25–25
Work with arbitrary variables or the premises of the current implication.
- L25
intro hb
08Establish hevenzeroL26–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul ne zero.
09Use earlier factsL36–40
10Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
11Fix variables and assumptionsL42–42
Work with arbitrary variables or the premises of the current implication.
- L42
intro hc
12Use earlier factsL43–46
13Calculate and transport equalitiesL47–48
14Use earlier factsL49–50
15Calculate and transport equalitiesL51–55
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
16Use earlier factsL56–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
specialize pythagorean_primitive_euclidean_constructor m - L57
specialize pythagorean_primitive_euclidean_constructor n - L58
specialize pythagorean_primitive_euclidean_constructor a - L59
apply pythagorean_primitive_euclidean_constructor - L60
exact hp_right_right_right_right_right_left - L61
exact hp_right_right_left - L62
exact hp_right_right_right_left
Original defined command ledger · 62 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro m - 0005
intro n - 0006
intro hp - 0007
cases hp - 0008
cases hp_right - 0009
cases hp_right_right - 0010
cases hp_right_right_right - 0011
cases hp_right_right_right_right - 0012
cases hp_right_right_right_right_right - 0013
have hpositive : ~(m = 0) /\ ~(a = 0) - 0014
specialize pythagorean_ordered_gap_positive a - 0015
specialize pythagorean_ordered_gap_positive m - 0016
specialize pythagorean_ordered_gap_positive n - 0017
apply pythagorean_ordered_gap_positive - 0018
exact hp_left - 0019
exact hp_right_left - 0020
exact hp_right_right_right_right_right_left - 0021
cases hpositive - 0022
split - 0023
exact hpositive_right - 0024
split - 0025
intro hb - 0026
have hevenzero : 2 * (m * n) = 0 - 0027
trans b - 0028
symm - 0029
exact hp_right_right_right_right_right_right - 0030
exact hb - 0031
apply mul_ne_zero - 0032
intro htwo - 0033
apply succ_ne_zero - 0034
exact htwo - 0035
intro hproduct - 0036
apply mul_ne_zero - 0037
exact hpositive_left - 0038
exact hp_left - 0039
exact hproduct - 0040
exact hevenzero - 0041
split - 0042
intro hc - 0043
specialize pythagorean_hypotenuse_nonzero m - 0044
specialize pythagorean_hypotenuse_nonzero n - 0045
apply pythagorean_hypotenuse_nonzero - 0046
exact hpositive_left - 0047
trans c - 0048
symm - 0049
exact hp_right_right_right_right_left - 0050
exact hc - 0051
rewrite hp_right_right_right_right_left - 0052
rewrite hp_right_right_right_right_left - 0053
rewrite hp_right_right_right_right_right_right - 0054
rewrite hp_right_right_right_right_right_right - 0055
rewrite hp_right_right_right_right_right_right - 0056
specialize pythagorean_primitive_euclidean_constructor m - 0057
specialize pythagorean_primitive_euclidean_constructor n - 0058
specialize pythagorean_primitive_euclidean_constructor a - 0059
apply pythagorean_primitive_euclidean_constructor - 0060
exact hp_right_right_right_right_right_left - 0061
exact hp_right_right_left - 0062
exact hp_right_right_right_left