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) → ∃ z. ∃ m. y = z · z + m · m) → ∃ 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_fold_product ff_v_ftsf_fold_product. ((((exists ff_h_ftsf_fold_product_start. ff_h_ftsf_fold_product_start + S (1) = S ((S (0)) * ff_v_ftsf_fold_product)) /\ exists ff_q_ftsf_fold_product_start. ff_u_ftsf_fold_product = ff_q_ftsf_fold_product_start * S ((S (0)) * ff_v_ftsf_fold_product) + (1))) /\ ((((exists ff_h_ftsf_fold_product_terminal. ff_h_ftsf_fold_product_terminal + S (n) = S ((S (l)) * ff_v_ftsf_fold_product)) /\ exists ff_q_ftsf_fold_product_terminal. ff_u_ftsf_fold_product = ff_q_ftsf_fold_product_terminal * S ((S (l)) * ff_v_ftsf_fold_product) + (n))) /\ forall ff_i_ftsf_fold_product. (exists ff_lt_ftsf_fold_product_bound. ff_lt_ftsf_fold_product_bound + S ff_i_ftsf_fold_product = l) -> exists ff_p_ftsf_fold_product ff_r_ftsf_fold_product ff_s_ftsf_fold_product. ((((exists ff_h_ftsf_fold_product_factor. ff_h_ftsf_fold_product_factor + S (ff_p_ftsf_fold_product) = S ((S (ff_i_ftsf_fold_product)) * c)) /\ exists ff_q_ftsf_fold_product_factor. b = ff_q_ftsf_fold_product_factor * S ((S (ff_i_ftsf_fold_product)) * c) + (ff_p_ftsf_fold_product))) /\ ((((exists ff_h_ftsf_fold_product_partial. ff_h_ftsf_fold_product_partial + S (ff_r_ftsf_fold_product) = S ((S (ff_i_ftsf_fold_product)) * ff_v_ftsf_fold_product)) /\ exists ff_q_ftsf_fold_product_partial. ff_u_ftsf_fold_product = ff_q_ftsf_fold_product_partial * S ((S (ff_i_ftsf_fold_product)) * ff_v_ftsf_fold_product) + (ff_r_ftsf_fold_product))) /\ ((((exists ff_h_ftsf_fold_product_successor. ff_h_ftsf_fold_product_successor + S (ff_s_ftsf_fold_product) = S ((S (S ff_i_ftsf_fold_product)) * ff_v_ftsf_fold_product)) /\ exists ff_q_ftsf_fold_product_successor. ff_u_ftsf_fold_product = ff_q_ftsf_fold_product_successor * S ((S (S ff_i_ftsf_fold_product)) * ff_v_ftsf_fold_product) + (ff_s_ftsf_fold_product))) /\ ff_s_ftsf_fold_product = ff_r_ftsf_fold_product * ff_p_ftsf_fold_product)))))) -> (forall ftsf_index_fold_prefix ftsf_factor_fold_prefix. (exists ftsf_gap_fold_prefix_bound. ftsf_gap_fold_prefix_bound + S ftsf_index_fold_prefix = (l)) -> (((exists ff_h_ftsf_fold_prefix_entry. ff_h_ftsf_fold_prefix_entry + S (ftsf_factor_fold_prefix) = S ((S (ftsf_index_fold_prefix)) * c)) /\ exists ff_q_ftsf_fold_prefix_entry. b = ff_q_ftsf_fold_prefix_entry * S ((S (ftsf_index_fold_prefix)) * c) + (ftsf_factor_fold_prefix))) -> (exists ftsf_first_fold_prefix_representation ftsf_second_fold_prefix_representation. (ftsf_factor_fold_prefix) = ftsf_first_fold_prefix_representation * ftsf_first_fold_prefix_representation + ftsf_second_fold_prefix_representation * ftsf_second_fold_prefix_representation)) -> (exists ftsf_first_fold_result ftsf_second_fold_result. (n) = ftsf_first_fold_result * ftsf_first_fold_result + ftsf_second_fold_result * ftsf_second_fold_result)Proof neighborhood
Direct theorem prerequisites
TS002J beta_two_square_prefix_drop_last TS002L beta_two_square_prefix_last_represented TS001X two_square_representation_multiplicatively_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–2
02Induction on lL3–6
03Establish hunitL7–12
04Construct an explicit witnessL13–14
05Calculate and transport equalitiesL15–16
06Fix variables and assumptionsL17–19
07Establish hdecompositionL20–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
- L20
have hdecomposition : ∃ a. ∃ r. BetaAt(b,c,l,a) ∧ (Product(b,c,l,r) ∧ n = r · a)Definitions: BetaAt(b,c,l,a)Product(b,c,l,r)Original native command in the exact edition - L21
specialize beta_product_succ_decompose b - L22
specialize beta_product_succ_decompose c - L23
specialize beta_product_succ_decompose l - L24
specialize beta_product_succ_decompose n - L25
apply beta_product_succ_decompose - L26
exact hproduct
08Separate the logical casesL27–30
09Establish hrestrictedL31–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta two square prefix drop last.
- L31
have hrestricted : ∀ ftsf_index_fold_local_prefix. ∀ ftsf_factor_fold_local_prefix. Lt(ftsf_index_fold_local_prefix,l) → BetaAt(b,c,ftsf_index_fold_local_prefix,ftsf_factor_fold_local_prefix) → ∃ x. ∃ y. ftsf_factor_fold_local_prefix = x · x + y · yDefinitions: Lt(ftsf_index_fold_local_prefix,l)BetaAt(b,c,ftsf_index_fold_local_prefix,ftsf_factor_fold_local_prefix)Original native command in the exact edition - L32
specialize beta_two_square_prefix_drop_last b - L33
specialize beta_two_square_prefix_drop_last c - L34
specialize beta_two_square_prefix_drop_last l - L35
apply beta_two_square_prefix_drop_last - L36
exact hprefix
10Establish hpartialL37–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
11Establish hlastL42–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta two square prefix last represented.
- L42
have hlast : exists ftsf_first_fold_last_representation ftsf_second_fold_last_representation. (x) = ftsf_first_fold_last_representation * ftsf_first_fold_last_representation + ftsf_second_fold_last_representation * ftsf_second_fold_last_representation - L43
specialize beta_two_square_prefix_last_represented b - L44
specialize beta_two_square_prefix_last_represented c - L45
specialize beta_two_square_prefix_last_represented l - L46
specialize beta_two_square_prefix_last_represented x - L47
apply beta_two_square_prefix_last_represented - L48
exact hprefix - L49
exact hdecomposition_witness_witness_left - L50
rewrite hdecomposition_witness_witness_right_right - L51
specialize two_square_representation_multiplicatively_closed x1
Original defined command ledger · 55 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro n - 0005
intro hproduct - 0006
intro hprefix - 0007
have hunit : n = 1 - 0008
specialize beta_product_zero b - 0009
specialize beta_product_zero c - 0010
specialize beta_product_zero n - 0011
apply beta_product_zero - 0012
exact hproduct - 0013
exists 1 - 0014
exists 0 - 0015
rewrite hunit - 0016
norm_num - 0017
intro n - 0018
intro hproduct - 0019
intro hprefix - 0020
have hdecomposition : ∃ a. ∃ r. BetaAt(b,c,l,a) ∧ (Product(b,c,l,r) ∧ n = r · a)Exact native replay line
have hdecomposition : exists a r. ((((exists ff_h_ftsf_fold_last. ff_h_ftsf_fold_last + S (a) = S ((S (l)) * c)) /\ exists ff_q_ftsf_fold_last. b = ff_q_ftsf_fold_last * S ((S (l)) * c) + (a))) /\ ((exists ff_u_ftsf_fold_local ff_v_ftsf_fold_local. ((((exists ff_h_ftsf_fold_local_start. ff_h_ftsf_fold_local_start + S (1) = S ((S (0)) * ff_v_ftsf_fold_local)) /\ exists ff_q_ftsf_fold_local_start. ff_u_ftsf_fold_local = ff_q_ftsf_fold_local_start * S ((S (0)) * ff_v_ftsf_fold_local) + (1))) /\ ((((exists ff_h_ftsf_fold_local_terminal. ff_h_ftsf_fold_local_terminal + S (r) = S ((S (l)) * ff_v_ftsf_fold_local)) /\ exists ff_q_ftsf_fold_local_terminal. ff_u_ftsf_fold_local = ff_q_ftsf_fold_local_terminal * S ((S (l)) * ff_v_ftsf_fold_local) + (r))) /\ forall ff_i_ftsf_fold_local. (exists ff_lt_ftsf_fold_local_bound. ff_lt_ftsf_fold_local_bound + S ff_i_ftsf_fold_local = l) -> exists ff_p_ftsf_fold_local ff_r_ftsf_fold_local ff_s_ftsf_fold_local. ((((exists ff_h_ftsf_fold_local_factor. ff_h_ftsf_fold_local_factor + S (ff_p_ftsf_fold_local) = S ((S (ff_i_ftsf_fold_local)) * c)) /\ exists ff_q_ftsf_fold_local_factor. b = ff_q_ftsf_fold_local_factor * S ((S (ff_i_ftsf_fold_local)) * c) + (ff_p_ftsf_fold_local))) /\ ((((exists ff_h_ftsf_fold_local_partial. ff_h_ftsf_fold_local_partial + S (ff_r_ftsf_fold_local) = S ((S (ff_i_ftsf_fold_local)) * ff_v_ftsf_fold_local)) /\ exists ff_q_ftsf_fold_local_partial. ff_u_ftsf_fold_local = ff_q_ftsf_fold_local_partial * S ((S (ff_i_ftsf_fold_local)) * ff_v_ftsf_fold_local) + (ff_r_ftsf_fold_local))) /\ ((((exists ff_h_ftsf_fold_local_successor. ff_h_ftsf_fold_local_successor + S (ff_s_ftsf_fold_local) = S ((S (S ff_i_ftsf_fold_local)) * ff_v_ftsf_fold_local)) /\ exists ff_q_ftsf_fold_local_successor. ff_u_ftsf_fold_local = ff_q_ftsf_fold_local_successor * S ((S (S ff_i_ftsf_fold_local)) * ff_v_ftsf_fold_local) + (ff_s_ftsf_fold_local))) /\ ff_s_ftsf_fold_local = ff_r_ftsf_fold_local * ff_p_ftsf_fold_local)))))) /\ n = r * a)) - 0021
specialize beta_product_succ_decompose b - 0022
specialize beta_product_succ_decompose c - 0023
specialize beta_product_succ_decompose l - 0024
specialize beta_product_succ_decompose n - 0025
apply beta_product_succ_decompose - 0026
exact hproduct - 0027
cases hdecomposition - 0028
cases hdecomposition_witness - 0029
cases hdecomposition_witness_witness - 0030
cases hdecomposition_witness_witness_right - 0031
have hrestricted : ∀ ftsf_index_fold_local_prefix. ∀ ftsf_factor_fold_local_prefix. Lt(ftsf_index_fold_local_prefix,l) → BetaAt(b,c,ftsf_index_fold_local_prefix,ftsf_factor_fold_local_prefix) → ∃ x. ∃ y. ftsf_factor_fold_local_prefix = x · x + y · yExact native replay line
have hrestricted : forall ftsf_index_fold_local_prefix ftsf_factor_fold_local_prefix. (exists ftsf_gap_fold_local_prefix_bound. ftsf_gap_fold_local_prefix_bound + S ftsf_index_fold_local_prefix = (l)) -> (((exists ff_h_ftsf_fold_local_prefix_entry. ff_h_ftsf_fold_local_prefix_entry + S (ftsf_factor_fold_local_prefix) = S ((S (ftsf_index_fold_local_prefix)) * c)) /\ exists ff_q_ftsf_fold_local_prefix_entry. b = ff_q_ftsf_fold_local_prefix_entry * S ((S (ftsf_index_fold_local_prefix)) * c) + (ftsf_factor_fold_local_prefix))) -> (exists ftsf_first_fold_local_prefix_representation ftsf_second_fold_local_prefix_representation. (ftsf_factor_fold_local_prefix) = ftsf_first_fold_local_prefix_representation * ftsf_first_fold_local_prefix_representation + ftsf_second_fold_local_prefix_representation * ftsf_second_fold_local_prefix_representation) - 0032
specialize beta_two_square_prefix_drop_last b - 0033
specialize beta_two_square_prefix_drop_last c - 0034
specialize beta_two_square_prefix_drop_last l - 0035
apply beta_two_square_prefix_drop_last - 0036
exact hprefix - 0037
have hpartial : exists ftsf_first_fold_partial ftsf_second_fold_partial. (x1) = ftsf_first_fold_partial * ftsf_first_fold_partial + ftsf_second_fold_partial * ftsf_second_fold_partial - 0038
specialize IH x1 - 0039
apply IH - 0040
exact hdecomposition_witness_witness_right_left - 0041
exact hrestricted - 0042
have hlast : exists ftsf_first_fold_last_representation ftsf_second_fold_last_representation. (x) = ftsf_first_fold_last_representation * ftsf_first_fold_last_representation + ftsf_second_fold_last_representation * ftsf_second_fold_last_representation - 0043
specialize beta_two_square_prefix_last_represented b - 0044
specialize beta_two_square_prefix_last_represented c - 0045
specialize beta_two_square_prefix_last_represented l - 0046
specialize beta_two_square_prefix_last_represented x - 0047
apply beta_two_square_prefix_last_represented - 0048
exact hprefix - 0049
exact hdecomposition_witness_witness_left - 0050
rewrite hdecomposition_witness_witness_right_right - 0051
specialize two_square_representation_multiplicatively_closed x1 - 0052
specialize two_square_representation_multiplicatively_closed x - 0053
apply two_square_representation_multiplicatively_closed - 0054
exact hpartial - 0055
exact hlast