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.
The exact G025 progression-prime milestone is fully proved in unchanged constructive arithmetic; Mod4Three deliberately reuses its existing Quadratic Reciprocity definition PD0012. The much stronger full Dirichlet progression-prime milestone G030 remains open.
Exact theorem in conservative defined notation
∀ n. ¬n = 0 → (∀ x. Prime(x) → Dvd(x,n) → x = 2 ∨ (∃ y. x = 4 · y + 1)) → ∃ x. ∃ y. n = x · x + y · y
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 47 lines are the exact independently kernel-checked original script.
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 (2)
01Fix variables and assumptionsL1–3
02Use earlier factsL4–4
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L4
specialize prime_factorization_existence n
03Establish hfactorizationL5–7
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime factorization existence.
04Separate the logical casesL8–12
05Use earlier factsL13–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L13
specialize beta_admissible_prime_factor_product_is_two_square x1 - L14
specialize beta_admissible_prime_factor_product_is_two_square x2 - L15
specialize beta_admissible_prime_factor_product_is_two_square x - L16
specialize beta_admissible_prime_factor_product_is_two_square n - L17
apply beta_admissible_prime_factor_product_is_two_square - L18
exact hfactorization_witness_witness_witness_left
06Fix variables and assumptionsL19–22
07Establish hprimeL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta all prime entry is prime.
- L23
have hprime : (~(p = 1) /\ forall frm_prime_left_ftsf_canonical_local_prime frm_prime_right_ftsf_canonical_local_prime. p = frm_prime_left_ftsf_canonical_local_prime * frm_prime_right_ftsf_canonical_local_prime -> frm_prime_left_ftsf_canonical_local_prime = 1 \/ frm_prime_right_ftsf_canonical_local_prime = 1) - L24
specialize beta_all_prime_entry_is_prime x1 - L25
specialize beta_all_prime_entry_is_prime x2 - L26
specialize beta_all_prime_entry_is_prime x - L27
specialize beta_all_prime_entry_is_prime i - L28
specialize beta_all_prime_entry_is_prime p - L29
apply beta_all_prime_entry_is_prime - L30
exact hfactorization_witness_witness_witness_right_left - L31
exact hi - L32
exact hp
08Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
09Use earlier factsL34–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact hprime - L35
specialize hdivisors p - L36
apply hdivisors - L37
exact hprime - L38
specialize beta_factor_divides_product x1 - L39
specialize beta_factor_divides_product x2 - L40
specialize beta_factor_divides_product x - L41
specialize beta_factor_divides_product n - L42
specialize beta_factor_divides_product i - L43
specialize beta_factor_divides_product p
Original defined command ledger · 47 lines
- 0001
intro n - 0002
intro hnonzero - 0003
intro hdivisors - 0004
specialize prime_factorization_existence n - 0005
have hfactorization : exists l b c. ((exists ff_u_ftsf_canonical_product ff_v_ftsf_canonical_product. ((((exists ff_h_ftsf_canonical_product_start. ff_h_ftsf_canonical_product_start + S (1) = S ((S (0)) * ff_v_ftsf_canonical_product)) /\ exists ff_q_ftsf_canonical_product_start. ff_u_ftsf_canonical_product = ff_q_ftsf_canonical_product_start * S ((S (0)) * ff_v_ftsf_canonical_product) + (1))) /\ ((((exists ff_h_ftsf_canonical_product_terminal. ff_h_ftsf_canonical_product_terminal + S (n) = S ((S (l)) * ff_v_ftsf_canonical_product)) /\ exists ff_q_ftsf_canonical_product_terminal. ff_u_ftsf_canonical_product = ff_q_ftsf_canonical_product_terminal * S ((S (l)) * ff_v_ftsf_canonical_product) + (n))) /\ forall ff_i_ftsf_canonical_product. (exists ff_lt_ftsf_canonical_product_bound. ff_lt_ftsf_canonical_product_bound + S ff_i_ftsf_canonical_product = l) -> exists ff_p_ftsf_canonical_product ff_r_ftsf_canonical_product ff_s_ftsf_canonical_product. ((((exists ff_h_ftsf_canonical_product_factor. ff_h_ftsf_canonical_product_factor + S (ff_p_ftsf_canonical_product) = S ((S (ff_i_ftsf_canonical_product)) * c)) /\ exists ff_q_ftsf_canonical_product_factor. b = ff_q_ftsf_canonical_product_factor * S ((S (ff_i_ftsf_canonical_product)) * c) + (ff_p_ftsf_canonical_product))) /\ ((((exists ff_h_ftsf_canonical_product_partial. ff_h_ftsf_canonical_product_partial + S (ff_r_ftsf_canonical_product) = S ((S (ff_i_ftsf_canonical_product)) * ff_v_ftsf_canonical_product)) /\ exists ff_q_ftsf_canonical_product_partial. ff_u_ftsf_canonical_product = ff_q_ftsf_canonical_product_partial * S ((S (ff_i_ftsf_canonical_product)) * ff_v_ftsf_canonical_product) + (ff_r_ftsf_canonical_product))) /\ ((((exists ff_h_ftsf_canonical_product_successor. ff_h_ftsf_canonical_product_successor + S (ff_s_ftsf_canonical_product) = S ((S (S ff_i_ftsf_canonical_product)) * ff_v_ftsf_canonical_product)) /\ exists ff_q_ftsf_canonical_product_successor. ff_u_ftsf_canonical_product = ff_q_ftsf_canonical_product_successor * S ((S (S ff_i_ftsf_canonical_product)) * ff_v_ftsf_canonical_product) + (ff_s_ftsf_canonical_product))) /\ ff_s_ftsf_canonical_product = ff_r_ftsf_canonical_product * ff_p_ftsf_canonical_product)))))) /\ ((forall ftsf_index_canonical_all_prime. (exists ftsf_gap_canonical_all_prime_bound. ftsf_gap_canonical_all_prime_bound + S ftsf_index_canonical_all_prime = (l)) -> exists ftsf_factor_canonical_all_prime. ((((exists ff_h_ftsf_canonical_all_prime_entry. ff_h_ftsf_canonical_all_prime_entry + S (ftsf_factor_canonical_all_prime) = S ((S (ftsf_index_canonical_all_prime)) * c)) /\ exists ff_q_ftsf_canonical_all_prime_entry. b = ff_q_ftsf_canonical_all_prime_entry * S ((S (ftsf_index_canonical_all_prime)) * c) + (ftsf_factor_canonical_all_prime))) /\ ((~(ftsf_factor_canonical_all_prime = 1) /\ forall frm_prime_left_ftsf_canonical_all_prime_prime frm_prime_right_ftsf_canonical_all_prime_prime. ftsf_factor_canonical_all_prime = frm_prime_left_ftsf_canonical_all_prime_prime * frm_prime_right_ftsf_canonical_all_prime_prime -> frm_prime_left_ftsf_canonical_all_prime_prime = 1 \/ frm_prime_right_ftsf_canonical_all_prime_prime = 1)))) /\ (forall i. (exists ftsf_gap_canonical_sorted_bound. ftsf_gap_canonical_sorted_bound + S S i = (l)) -> exists p q. ((((exists ff_h_ftsf_canonical_sorted_left. ff_h_ftsf_canonical_sorted_left + S (p) = S ((S (i)) * c)) /\ exists ff_q_ftsf_canonical_sorted_left. b = ff_q_ftsf_canonical_sorted_left * S ((S (i)) * c) + (p))) /\ ((((exists ff_h_ftsf_canonical_sorted_right. ff_h_ftsf_canonical_sorted_right + S (q) = S ((S (S i)) * c)) /\ exists ff_q_ftsf_canonical_sorted_right. b = ff_q_ftsf_canonical_sorted_right * S ((S (S i)) * c) + (q))) /\ (exists h. h + p = q)))))) - 0006
apply prime_factorization_existence - 0007
exact hnonzero - 0008
cases hfactorization - 0009
cases hfactorization_witness - 0010
cases hfactorization_witness_witness - 0011
cases hfactorization_witness_witness_witness - 0012
cases hfactorization_witness_witness_witness_right - 0013
specialize beta_admissible_prime_factor_product_is_two_square x1 - 0014
specialize beta_admissible_prime_factor_product_is_two_square x2 - 0015
specialize beta_admissible_prime_factor_product_is_two_square x - 0016
specialize beta_admissible_prime_factor_product_is_two_square n - 0017
apply beta_admissible_prime_factor_product_is_two_square - 0018
exact hfactorization_witness_witness_witness_left - 0019
intro i - 0020
intro p - 0021
intro hi - 0022
intro hp - 0023
have hprime : (~(p = 1) /\ forall frm_prime_left_ftsf_canonical_local_prime frm_prime_right_ftsf_canonical_local_prime. p = frm_prime_left_ftsf_canonical_local_prime * frm_prime_right_ftsf_canonical_local_prime -> frm_prime_left_ftsf_canonical_local_prime = 1 \/ frm_prime_right_ftsf_canonical_local_prime = 1) - 0024
specialize beta_all_prime_entry_is_prime x1 - 0025
specialize beta_all_prime_entry_is_prime x2 - 0026
specialize beta_all_prime_entry_is_prime x - 0027
specialize beta_all_prime_entry_is_prime i - 0028
specialize beta_all_prime_entry_is_prime p - 0029
apply beta_all_prime_entry_is_prime - 0030
exact hfactorization_witness_witness_witness_right_left - 0031
exact hi - 0032
exact hp - 0033
split - 0034
exact hprime - 0035
specialize hdivisors p - 0036
apply hdivisors - 0037
exact hprime - 0038
specialize beta_factor_divides_product x1 - 0039
specialize beta_factor_divides_product x2 - 0040
specialize beta_factor_divides_product x - 0041
specialize beta_factor_divides_product n - 0042
specialize beta_factor_divides_product i - 0043
specialize beta_factor_divides_product p - 0044
apply beta_factor_divides_product - 0045
exact hi - 0046
exact hp - 0047
exact hfactorization_witness_witness_witness_left