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. ∀ n. Le(n,B) → ¬n = 0 → (∀ x. Prime(x) → ∃ y. ∃ z. ∃ m. ∃ k. x = y · y + z · z + m · m + k · k) → ∃ x. ∃ y. ∃ z. ∃ m. n = x · x + y · y + z · z + m · mEvery 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 n. (exists fsl_bound. fsl_bound + n = B) -> ~(n = 0) -> (forall fsl_prime_universal. ((~(fsl_prime_universal = 1) /\ forall frm_prime_left_fsl_all_universal frm_prime_right_fsl_all_universal. fsl_prime_universal = frm_prime_left_fsl_all_universal * frm_prime_right_fsl_all_universal -> frm_prime_left_fsl_all_universal = 1 \/ frm_prime_right_fsl_all_universal = 1)) -> (exists fsl_a_all_universal fsl_b_all_universal fsl_c_all_universal fsl_d_all_universal. (fsl_prime_universal) = fsl_a_all_universal * fsl_a_all_universal + fsl_b_all_universal * fsl_b_all_universal + fsl_c_all_universal * fsl_c_all_universal + fsl_d_all_universal * fsl_d_all_universal)) -> (exists fsl_a_value fsl_b_value fsl_c_value fsl_d_value. (n) = fsl_a_value * fsl_a_value + fsl_b_value * fsl_b_value + fsl_c_value * fsl_c_value + fsl_d_value * fsl_d_value)Proof neighborhood
Direct theorem prerequisites
FS0030 four_square_euler_representations_closed_under_multiplicationDirect 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–1
Work with arbitrary variables or the premises of the current implication.
- L1
intro B
02Induction on BL2–6
03Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
exfalso
04Use earlier factsL8–11
05Fix variables and assumptionsL12–15
06Use earlier factsL16–17
07Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases eq_decidable
08Construct an explicit witnessL19–22
09Calculate and transport equalitiesL23–24
10Establish hfactorL25–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime divisor exists.
11Separate the logical casesL30–32
12Establish hprefix_nonzeroL33–39
13Establish hrepresented_primeL40–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprimes.
- L40
have hrepresented_prime : (exists fsl_a_induction_prime fsl_b_induction_prime fsl_c_induction_prime fsl_d_induction_prime. (x) = fsl_a_induction_prime * fsl_a_induction_prime + fsl_b_induction_prime * fsl_b_induction_prime + fsl_c_induction_prime * fsl_c_induction_prime + fsl_d_induction_prime * fsl_d_induction_prime) - L41
specialize hprimes x - L42
apply hprimes - L43
exact hfactor_witness_left
14Establish horderedL44–47
15Establish hnotoneL48–48
Establish this local claim before using it. It is not an additional assumption.
- L48
have hnotone : ~(x = 1)
16Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
cases hfactor_witness_left
17Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hfactor_witness_left_left
18Establish hstrictL51–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply proper factor lt.
19Establish hsuccessor_boundL59–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L59
have hsuccessor_bound : Lt(x1,S B)Definitions: Lt(x1,S B)Original native command in the exact edition - L60
specialize le_trans (S x1) - L61
specialize le_trans n - L62
specialize le_trans (S B) - L63
apply le_trans - L64
exact hstrict - L65
exact hbound
20Establish hprefix_boundL66–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
21Establish hprefix_representationL71–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L71
have hprefix_representation : (exists fsl_a_induction_prefix fsl_b_induction_prefix fsl_c_induction_prefix fsl_d_induction_prefix. (x1) = fsl_a_induction_prefix * fsl_a_induction_prefix + fsl_b_induction_prefix * fsl_b_induction_prefix + fsl_c_induction_prefix * fsl_c_induction_prefix + fsl_d_induction_prefix * fsl_d_induction_prefix) - L72
specialize IH x1 - L73
apply IH - L74
exact hprefix_bound - L75
exact hprefix_nonzero - L76
exact hprimes - L77
rewrite hordered - L78
specialize four_square_euler_representations_closed_under_multiplication x1 - L79
specialize four_square_euler_representations_closed_under_multiplication x - L80
apply four_square_euler_representations_closed_under_multiplication
Original defined command ledger · 82 lines
- 0001
intro B - 0002
induction B - 0003
intro n - 0004
intro hbound - 0005
intro hnonzero - 0006
intro hprimes - 0007
exfalso - 0008
apply hnonzero - 0009
specialize le_zero n - 0010
apply le_zero - 0011
exact hbound - 0012
intro n - 0013
intro hbound - 0014
intro hnonzero - 0015
intro hprimes - 0016
specialize eq_decidable n - 0017
specialize eq_decidable 1 - 0018
cases eq_decidable - 0019
exists 1 - 0020
exists 0 - 0021
exists 0 - 0022
exists 0 - 0023
rewrite eq_decidable_left - 0024
norm_num - 0025
have hfactor : ∃ p. Prime(p) ∧ Dvd(p,n)Exact native replay line
have hfactor : exists p. (((~(p = 1) /\ forall frm_prime_left_fsl_induction_factor frm_prime_right_fsl_induction_factor. p = frm_prime_left_fsl_induction_factor * frm_prime_right_fsl_induction_factor -> frm_prime_left_fsl_induction_factor = 1 \/ frm_prime_right_fsl_induction_factor = 1)) /\ exists r. n = p * r) - 0026
specialize prime_divisor_exists n - 0027
apply prime_divisor_exists - 0028
exact hnonzero - 0029
exact eq_decidable_right - 0030
cases hfactor - 0031
cases hfactor_witness - 0032
cases hfactor_witness_right - 0033
have hprefix_nonzero : ~(x1 = 0) - 0034
intro hzero - 0035
apply hnonzero - 0036
trans x * x1 - 0037
exact hfactor_witness_right_witness - 0038
rewrite hzero - 0039
apply PA5 - 0040
have hrepresented_prime : (exists fsl_a_induction_prime fsl_b_induction_prime fsl_c_induction_prime fsl_d_induction_prime. (x) = fsl_a_induction_prime * fsl_a_induction_prime + fsl_b_induction_prime * fsl_b_induction_prime + fsl_c_induction_prime * fsl_c_induction_prime + fsl_d_induction_prime * fsl_d_induction_prime) - 0041
specialize hprimes x - 0042
apply hprimes - 0043
exact hfactor_witness_left - 0044
have hordered : n = x1 * x - 0045
trans x * x1 - 0046
exact hfactor_witness_right_witness - 0047
apply mul_comm - 0048
have hnotone : ~(x = 1) - 0049
cases hfactor_witness_left - 0050
exact hfactor_witness_left_left - 0051
have hstrict : Lt(x1,n)Exact native replay line
have hstrict : exists k. k + S x1 = n - 0052
specialize proper_factor_lt n - 0053
specialize proper_factor_lt x1 - 0054
specialize proper_factor_lt x - 0055
apply proper_factor_lt - 0056
exact hnonzero - 0057
exact hordered - 0058
exact hnotone - 0059
have hsuccessor_bound : Lt(x1,S B)Exact native replay line
have hsuccessor_bound : exists k. k + S x1 = S B - 0060
specialize le_trans (S x1) - 0061
specialize le_trans n - 0062
specialize le_trans (S B) - 0063
apply le_trans - 0064
exact hstrict - 0065
exact hbound - 0066
have hprefix_bound : Le(x1,B)Exact native replay line
have hprefix_bound : exists k. k + x1 = B - 0067
specialize le_of_succ_le_succ x1 - 0068
specialize le_of_succ_le_succ B - 0069
apply le_of_succ_le_succ - 0070
exact hsuccessor_bound - 0071
have hprefix_representation : (exists fsl_a_induction_prefix fsl_b_induction_prefix fsl_c_induction_prefix fsl_d_induction_prefix. (x1) = fsl_a_induction_prefix * fsl_a_induction_prefix + fsl_b_induction_prefix * fsl_b_induction_prefix + fsl_c_induction_prefix * fsl_c_induction_prefix + fsl_d_induction_prefix * fsl_d_induction_prefix) - 0072
specialize IH x1 - 0073
apply IH - 0074
exact hprefix_bound - 0075
exact hprefix_nonzero - 0076
exact hprimes - 0077
rewrite hordered - 0078
specialize four_square_euler_representations_closed_under_multiplication x1 - 0079
specialize four_square_euler_representations_closed_under_multiplication x - 0080
apply four_square_euler_representations_closed_under_multiplication - 0081
exact hprefix_representation - 0082
exact hrepresented_prime