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
∀ b. ∀ c. ∀ l. ∀ n. Product(b,c,l,n) → (∀ x. ∀ y. Lt(x,l) → BetaAt(b,c,x,y) → Prime(y) ∧ (y = 2 ∨ Mod4One(y)) ∨ (∃ z. ∃ m. Prime(z) ∧ (z = 4 · m + 3 ∧ y = z · z))) → ∃ x. ∃ y. n = x · x + y · yEvery 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 b c l n. (exists ff_u_ftsf_grouped_product ff_v_ftsf_grouped_product. ((((exists ff_h_ftsf_grouped_product_start. ff_h_ftsf_grouped_product_start + S (1) = S ((S (0)) * ff_v_ftsf_grouped_product)) /\ exists ff_q_ftsf_grouped_product_start. ff_u_ftsf_grouped_product = ff_q_ftsf_grouped_product_start * S ((S (0)) * ff_v_ftsf_grouped_product) + (1))) /\ ((((exists ff_h_ftsf_grouped_product_terminal. ff_h_ftsf_grouped_product_terminal + S (n) = S ((S (l)) * ff_v_ftsf_grouped_product)) /\ exists ff_q_ftsf_grouped_product_terminal. ff_u_ftsf_grouped_product = ff_q_ftsf_grouped_product_terminal * S ((S (l)) * ff_v_ftsf_grouped_product) + (n))) /\ forall ff_i_ftsf_grouped_product. (exists ff_lt_ftsf_grouped_product_bound. ff_lt_ftsf_grouped_product_bound + S ff_i_ftsf_grouped_product = l) -> exists ff_p_ftsf_grouped_product ff_r_ftsf_grouped_product ff_s_ftsf_grouped_product. ((((exists ff_h_ftsf_grouped_product_factor. ff_h_ftsf_grouped_product_factor + S (ff_p_ftsf_grouped_product) = S ((S (ff_i_ftsf_grouped_product)) * c)) /\ exists ff_q_ftsf_grouped_product_factor. b = ff_q_ftsf_grouped_product_factor * S ((S (ff_i_ftsf_grouped_product)) * c) + (ff_p_ftsf_grouped_product))) /\ ((((exists ff_h_ftsf_grouped_product_partial. ff_h_ftsf_grouped_product_partial + S (ff_r_ftsf_grouped_product) = S ((S (ff_i_ftsf_grouped_product)) * ff_v_ftsf_grouped_product)) /\ exists ff_q_ftsf_grouped_product_partial. ff_u_ftsf_grouped_product = ff_q_ftsf_grouped_product_partial * S ((S (ff_i_ftsf_grouped_product)) * ff_v_ftsf_grouped_product) + (ff_r_ftsf_grouped_product))) /\ ((((exists ff_h_ftsf_grouped_product_successor. ff_h_ftsf_grouped_product_successor + S (ff_s_ftsf_grouped_product) = S ((S (S ff_i_ftsf_grouped_product)) * ff_v_ftsf_grouped_product)) /\ exists ff_q_ftsf_grouped_product_successor. ff_u_ftsf_grouped_product = ff_q_ftsf_grouped_product_successor * S ((S (S ff_i_ftsf_grouped_product)) * ff_v_ftsf_grouped_product) + (ff_s_ftsf_grouped_product))) /\ ff_s_ftsf_grouped_product = ff_r_ftsf_grouped_product * ff_p_ftsf_grouped_product)))))) -> (forall ftsf_index_grouped_source ftsf_factor_grouped_source. (exists ftsf_gap_grouped_source_bound. ftsf_gap_grouped_source_bound + S ftsf_index_grouped_source = (l)) -> (((exists ff_h_ftsf_grouped_source_entry. ff_h_ftsf_grouped_source_entry + S (ftsf_factor_grouped_source) = S ((S (ftsf_index_grouped_source)) * c)) /\ exists ff_q_ftsf_grouped_source_entry. b = ff_q_ftsf_grouped_source_entry * S ((S (ftsf_index_grouped_source)) * c) + (ftsf_factor_grouped_source))) -> ((((~(ftsf_factor_grouped_source = 1) /\ forall frm_prime_left_ftsf_grouped_source_good_prime frm_prime_right_ftsf_grouped_source_good_prime. ftsf_factor_grouped_source = frm_prime_left_ftsf_grouped_source_good_prime * frm_prime_right_ftsf_grouped_source_good_prime -> frm_prime_left_ftsf_grouped_source_good_prime = 1 \/ frm_prime_right_ftsf_grouped_source_good_prime = 1)) /\ (ftsf_factor_grouped_source = 2 \/ exists ftsf_good_residue_grouped_source. ftsf_factor_grouped_source = 4 * ftsf_good_residue_grouped_source + 1)) \/ exists ftsf_bad_prime_grouped_source ftsf_bad_residue_grouped_source. (((~(ftsf_bad_prime_grouped_source = 1) /\ forall frm_prime_left_ftsf_grouped_source_bad_prime frm_prime_right_ftsf_grouped_source_bad_prime. ftsf_bad_prime_grouped_source = frm_prime_left_ftsf_grouped_source_bad_prime * frm_prime_right_ftsf_grouped_source_bad_prime -> frm_prime_left_ftsf_grouped_source_bad_prime = 1 \/ frm_prime_right_ftsf_grouped_source_bad_prime = 1)) /\ (ftsf_bad_prime_grouped_source = 4 * ftsf_bad_residue_grouped_source + 3 /\ ftsf_factor_grouped_source = ftsf_bad_prime_grouped_source * ftsf_bad_prime_grouped_source)))) -> (exists ftsf_first_grouped_result ftsf_second_grouped_result. (n) = ftsf_first_grouped_result * ftsf_first_grouped_result + ftsf_second_grouped_result * ftsf_second_grouped_result)Proof neighborhood
Direct theorem prerequisites
TS002M beta_two_square_represented_factor_product TS002O prime_two_or_one_mod_four_is_sum_of_two_squares TS001Z every_natural_square_is_sum_of_two_squaresDirect 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
02Use earlier factsL7–12
Instantiate or apply named facts and discharge the corresponding proof obligations.
03Fix variables and assumptionsL13–16
04Use earlier factsL17–18
05Establish hblockL19–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hgrouped.
- L19
have hblock : Prime(p) ∧ (p = 2 ∨ Mod4One(p)) ∨ (∃ x. ∃ y. Prime(x) ∧ (x = 4 · y + 3 ∧ p = x · x))Definitions: Prime(p)Mod4One(p)Prime(x)Original native command in the exact edition - L20
apply hgrouped - L21
exact hi - L22
exact hp
06Separate the logical casesL23–24
07Use earlier factsL25–28
08Separate the logical casesL29–32
09Calculate and transport equalitiesL33–33
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L33
rewrite hblock_right_witness_witness_right_right
Original defined command ledger · 35 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro hproduct - 0006
intro hgrouped - 0007
specialize beta_two_square_represented_factor_product b - 0008
specialize beta_two_square_represented_factor_product c - 0009
specialize beta_two_square_represented_factor_product l - 0010
specialize beta_two_square_represented_factor_product n - 0011
apply beta_two_square_represented_factor_product - 0012
exact hproduct - 0013
intro i - 0014
intro p - 0015
intro hi - 0016
intro hp - 0017
specialize hgrouped i - 0018
specialize hgrouped p - 0019
have hblock : Prime(p) ∧ (p = 2 ∨ Mod4One(p)) ∨ (∃ x. ∃ y. Prime(x) ∧ (x = 4 · y + 3 ∧ p = x · x))Exact native replay line
have hblock : ((((~(p = 1) /\ forall frm_prime_left_ftsf_grouped_local_good frm_prime_right_ftsf_grouped_local_good. p = frm_prime_left_ftsf_grouped_local_good * frm_prime_right_ftsf_grouped_local_good -> frm_prime_left_ftsf_grouped_local_good = 1 \/ frm_prime_right_ftsf_grouped_local_good = 1)) /\ (p = 2 \/ exists t. p = 4 * t + 1)) \/ exists q t. (((~(q = 1) /\ forall frm_prime_left_ftsf_grouped_local_bad frm_prime_right_ftsf_grouped_local_bad. q = frm_prime_left_ftsf_grouped_local_bad * frm_prime_right_ftsf_grouped_local_bad -> frm_prime_left_ftsf_grouped_local_bad = 1 \/ frm_prime_right_ftsf_grouped_local_bad = 1)) /\ (q = 4 * t + 3 /\ p = q * q))) - 0020
apply hgrouped - 0021
exact hi - 0022
exact hp - 0023
cases hblock - 0024
cases hblock_left - 0025
specialize prime_two_or_one_mod_four_is_sum_of_two_squares p - 0026
apply prime_two_or_one_mod_four_is_sum_of_two_squares - 0027
exact hblock_left_left - 0028
exact hblock_left_right - 0029
cases hblock_right - 0030
cases hblock_right_witness - 0031
cases hblock_right_witness_witness - 0032
cases hblock_right_witness_witness_right - 0033
rewrite hblock_right_witness_witness_right_right - 0034
specialize every_natural_square_is_sum_of_two_squares x - 0035
exact every_natural_square_is_sum_of_two_squares