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.
Exact expanded first-order arithmetic statement
forall b c l r p q. ((~(p = 1) /\ forall frm_prime_left_ftsp_p frm_prime_right_ftsp_p. p = frm_prime_left_ftsp_p * frm_prime_right_ftsp_p -> frm_prime_left_ftsp_p = 1 \/ frm_prime_right_ftsp_p = 1)) -> (forall ftsf_index_ftsp_prefix. (exists ftsf_gap_ftsp_prefix_bound. ftsf_gap_ftsp_prefix_bound + S ftsf_index_ftsp_prefix = (S l)) -> exists ftsf_factor_ftsp_prefix. ((((exists ff_h_ftsf_ftsp_prefix_entry. ff_h_ftsf_ftsp_prefix_entry + S (ftsf_factor_ftsp_prefix) = S ((S (ftsf_index_ftsp_prefix)) * c)) /\ exists ff_q_ftsf_ftsp_prefix_entry. b = ff_q_ftsf_ftsp_prefix_entry * S ((S (ftsf_index_ftsp_prefix)) * c) + (ftsf_factor_ftsp_prefix))) /\ ((~(ftsf_factor_ftsp_prefix = 1) /\ forall frm_prime_left_ftsf_ftsp_prefix_prime frm_prime_right_ftsf_ftsp_prefix_prime. ftsf_factor_ftsp_prefix = frm_prime_left_ftsf_ftsp_prefix_prime * frm_prime_right_ftsf_ftsp_prefix_prime -> frm_prime_left_ftsf_ftsp_prefix_prime = 1 \/ frm_prime_right_ftsf_ftsp_prefix_prime = 1)))) -> (forall ftsp_index_prefix. (exists ftsp_bound_prefix. ftsp_bound_prefix + S (S ftsp_index_prefix) = (S l)) -> exists ftsp_left_prefix ftsp_right_prefix. ((((exists ff_h_ftsp_prefix_left. ff_h_ftsp_prefix_left + S (ftsp_left_prefix) = S ((S (ftsp_index_prefix)) * c)) /\ exists ff_q_ftsp_prefix_left. b = ff_q_ftsp_prefix_left * S ((S (ftsp_index_prefix)) * c) + (ftsp_left_prefix))) /\ ((((exists ff_h_ftsp_prefix_right. ff_h_ftsp_prefix_right + S (ftsp_right_prefix) = S ((S (S ftsp_index_prefix)) * c)) /\ exists ff_q_ftsp_prefix_right. b = ff_q_ftsp_prefix_right * S ((S (S ftsp_index_prefix)) * c) + (ftsp_right_prefix))) /\ (exists ftsp_order_prefix. ftsp_order_prefix + ftsp_left_prefix = ftsp_right_prefix)))) -> (exists ff_u_ftsp_prefix ff_v_ftsp_prefix. ((((exists ff_h_ftsp_prefix_start. ff_h_ftsp_prefix_start + S (1) = S ((S (0)) * ff_v_ftsp_prefix)) /\ exists ff_q_ftsp_prefix_start. ff_u_ftsp_prefix = ff_q_ftsp_prefix_start * S ((S (0)) * ff_v_ftsp_prefix) + (1))) /\ ((((exists ff_h_ftsp_prefix_terminal. ff_h_ftsp_prefix_terminal + S (r) = S ((S (S l)) * ff_v_ftsp_prefix)) /\ exists ff_q_ftsp_prefix_terminal. ff_u_ftsp_prefix = ff_q_ftsp_prefix_terminal * S ((S (S l)) * ff_v_ftsp_prefix) + (r))) /\ forall ff_i_ftsp_prefix. (exists ff_lt_ftsp_prefix_bound. ff_lt_ftsp_prefix_bound + S ff_i_ftsp_prefix = S l) -> exists ff_p_ftsp_prefix ff_r_ftsp_prefix ff_s_ftsp_prefix. ((((exists ff_h_ftsp_prefix_factor. ff_h_ftsp_prefix_factor + S (ff_p_ftsp_prefix) = S ((S (ff_i_ftsp_prefix)) * c)) /\ exists ff_q_ftsp_prefix_factor. b = ff_q_ftsp_prefix_factor * S ((S (ff_i_ftsp_prefix)) * c) + (ff_p_ftsp_prefix))) /\ ((((exists ff_h_ftsp_prefix_partial. ff_h_ftsp_prefix_partial + S (ff_r_ftsp_prefix) = S ((S (ff_i_ftsp_prefix)) * ff_v_ftsp_prefix)) /\ exists ff_q_ftsp_prefix_partial. ff_u_ftsp_prefix = ff_q_ftsp_prefix_partial * S ((S (ff_i_ftsp_prefix)) * ff_v_ftsp_prefix) + (ff_r_ftsp_prefix))) /\ ((((exists ff_h_ftsp_prefix_successor. ff_h_ftsp_prefix_successor + S (ff_s_ftsp_prefix) = S ((S (S ff_i_ftsp_prefix)) * ff_v_ftsp_prefix)) /\ exists ff_q_ftsp_prefix_successor. ff_u_ftsp_prefix = ff_q_ftsp_prefix_successor * S ((S (S ff_i_ftsp_prefix)) * ff_v_ftsp_prefix) + (ff_s_ftsp_prefix))) /\ ff_s_ftsp_prefix = ff_r_ftsp_prefix * ff_p_ftsp_prefix)))))) -> (((exists ff_h_ftsp_prefix_last. ff_h_ftsp_prefix_last + S (q) = S ((S (l)) * c)) /\ exists ff_q_ftsp_prefix_last. b = ff_q_ftsp_prefix_last * S ((S (l)) * c) + (q))) -> (exists ftcn_factor_ftsp_suffix. (r) = (p) * ftcn_factor_ftsp_suffix) -> (exists ftsp_upper_gap. ftsp_upper_gap + q = p) -> q = pConstructive proof overview
Generated structural guide
A prime dividing a sorted prime prefix equals its terminal factor whenever that terminal factor is bounded by the prime.
The unchanged tactic script uses 3 declared prerequisites and contains 43 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
beta_prime_divisor_product_member Stable theorem; checked-use authorized beta_sorted_factor_le_last Stable theorem; checked-use authorized le_antisymm Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This dependency-curried candidate body does not grant checked theorem use or Stable membership.
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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Establish hmemberL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prime divisor product member.
- L14
have hmember : exists i. ((exists k. k + S i = S l) /\ (((exists ff_h_ftsp_prefix_member. ff_h_ftsp_prefix_member + S (p) = S ((S (i)) * c)) /\ exists ff_q_ftsp_prefix_member. b = ff_q_ftsp_prefix_member * S ((S (i)) * c) + (p)))) - L15
specialize beta_prime_divisor_product_member b - L16
specialize beta_prime_divisor_product_member c - L17
specialize beta_prime_divisor_product_member (S l) - L18
specialize beta_prime_divisor_product_member r - L19
specialize beta_prime_divisor_product_member p - L20
apply beta_prime_divisor_product_member - L21
exact hprime - L22
exact hallprime - L23
exact hproduct
04Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hdivides
05Separate the logical casesL25–26
06Establish hlowerL27–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sorted factor le last.
- L27
have hlower : exists k. k + p = q - L28
specialize beta_sorted_factor_le_last b - L29
specialize beta_sorted_factor_le_last c - L30
specialize beta_sorted_factor_le_last l - L31
specialize beta_sorted_factor_le_last x - L32
specialize beta_sorted_factor_le_last p - L33
specialize beta_sorted_factor_le_last q - L34
apply beta_sorted_factor_le_last - L35
exact hmember_witness_left - L36
exact hmember_witness_right
Original exact command ledger · 43 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro r - 0005
intro p - 0006
intro q - 0007
intro hprime - 0008
intro hallprime - 0009
intro hsorted - 0010
intro hproduct - 0011
intro hlast - 0012
intro hdivides - 0013
intro hupper - 0014
have hmember : exists i. ((exists k. k + S i = S l) /\ (((exists ff_h_ftsp_prefix_member. ff_h_ftsp_prefix_member + S (p) = S ((S (i)) * c)) /\ exists ff_q_ftsp_prefix_member. b = ff_q_ftsp_prefix_member * S ((S (i)) * c) + (p)))) - 0015
specialize beta_prime_divisor_product_member b - 0016
specialize beta_prime_divisor_product_member c - 0017
specialize beta_prime_divisor_product_member (S l) - 0018
specialize beta_prime_divisor_product_member r - 0019
specialize beta_prime_divisor_product_member p - 0020
apply beta_prime_divisor_product_member - 0021
exact hprime - 0022
exact hallprime - 0023
exact hproduct - 0024
exact hdivides - 0025
cases hmember - 0026
cases hmember_witness - 0027
have hlower : exists k. k + p = q - 0028
specialize beta_sorted_factor_le_last b - 0029
specialize beta_sorted_factor_le_last c - 0030
specialize beta_sorted_factor_le_last l - 0031
specialize beta_sorted_factor_le_last x - 0032
specialize beta_sorted_factor_le_last p - 0033
specialize beta_sorted_factor_le_last q - 0034
apply beta_sorted_factor_le_last - 0035
exact hmember_witness_left - 0036
exact hmember_witness_right - 0037
exact hlast - 0038
exact hsorted - 0039
specialize le_antisymm q - 0040
specialize le_antisymm p - 0041
apply le_antisymm - 0042
exact hupper - 0043
exact hlower