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 n b c l. ((~(n = 0) /\ ((exists ff_u_fsat_decompose_full_product ff_v_fsat_decompose_full_product. ((((exists ff_h_fsat_decompose_full_product_start. ff_h_fsat_decompose_full_product_start + S (1) = S ((S (0)) * ff_v_fsat_decompose_full_product)) /\ exists ff_q_fsat_decompose_full_product_start. ff_u_fsat_decompose_full_product = ff_q_fsat_decompose_full_product_start * S ((S (0)) * ff_v_fsat_decompose_full_product) + (1))) /\ ((((exists ff_h_fsat_decompose_full_product_terminal. ff_h_fsat_decompose_full_product_terminal + S (n) = S ((S (S l)) * ff_v_fsat_decompose_full_product)) /\ exists ff_q_fsat_decompose_full_product_terminal. ff_u_fsat_decompose_full_product = ff_q_fsat_decompose_full_product_terminal * S ((S (S l)) * ff_v_fsat_decompose_full_product) + (n))) /\ forall ff_i_fsat_decompose_full_product. (exists ff_lt_fsat_decompose_full_product_bound. ff_lt_fsat_decompose_full_product_bound + S ff_i_fsat_decompose_full_product = S l) -> exists ff_p_fsat_decompose_full_product ff_r_fsat_decompose_full_product ff_s_fsat_decompose_full_product. ((((exists ff_h_fsat_decompose_full_product_factor. ff_h_fsat_decompose_full_product_factor + S (ff_p_fsat_decompose_full_product) = S ((S (ff_i_fsat_decompose_full_product)) * c)) /\ exists ff_q_fsat_decompose_full_product_factor. b = ff_q_fsat_decompose_full_product_factor * S ((S (ff_i_fsat_decompose_full_product)) * c) + (ff_p_fsat_decompose_full_product))) /\ ((((exists ff_h_fsat_decompose_full_product_partial. ff_h_fsat_decompose_full_product_partial + S (ff_r_fsat_decompose_full_product) = S ((S (ff_i_fsat_decompose_full_product)) * ff_v_fsat_decompose_full_product)) /\ exists ff_q_fsat_decompose_full_product_partial. ff_u_fsat_decompose_full_product = ff_q_fsat_decompose_full_product_partial * S ((S (ff_i_fsat_decompose_full_product)) * ff_v_fsat_decompose_full_product) + (ff_r_fsat_decompose_full_product))) /\ ((((exists ff_h_fsat_decompose_full_product_successor. ff_h_fsat_decompose_full_product_successor + S (ff_s_fsat_decompose_full_product) = S ((S (S ff_i_fsat_decompose_full_product)) * ff_v_fsat_decompose_full_product)) /\ exists ff_q_fsat_decompose_full_product_successor. ff_u_fsat_decompose_full_product = ff_q_fsat_decompose_full_product_successor * S ((S (S ff_i_fsat_decompose_full_product)) * ff_v_fsat_decompose_full_product) + (ff_s_fsat_decompose_full_product))) /\ ff_s_fsat_decompose_full_product = ff_r_fsat_decompose_full_product * ff_p_fsat_decompose_full_product)))))) /\ (forall ftsf_index_fsat_decompose_full_primes. (exists ftsf_gap_fsat_decompose_full_primes_bound. ftsf_gap_fsat_decompose_full_primes_bound + S ftsf_index_fsat_decompose_full_primes = (S l)) -> exists ftsf_factor_fsat_decompose_full_primes. ((((exists ff_h_ftsf_fsat_decompose_full_primes_entry. ff_h_ftsf_fsat_decompose_full_primes_entry + S (ftsf_factor_fsat_decompose_full_primes) = S ((S (ftsf_index_fsat_decompose_full_primes)) * c)) /\ exists ff_q_ftsf_fsat_decompose_full_primes_entry. b = ff_q_ftsf_fsat_decompose_full_primes_entry * S ((S (ftsf_index_fsat_decompose_full_primes)) * c) + (ftsf_factor_fsat_decompose_full_primes))) /\ ((~(ftsf_factor_fsat_decompose_full_primes = 1) /\ forall frm_prime_left_ftsf_fsat_decompose_full_primes_prime frm_prime_right_ftsf_fsat_decompose_full_primes_prime. ftsf_factor_fsat_decompose_full_primes = frm_prime_left_ftsf_fsat_decompose_full_primes_prime * frm_prime_right_ftsf_fsat_decompose_full_primes_prime -> frm_prime_left_ftsf_fsat_decompose_full_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_decompose_full_primes_prime = 1))))))) -> exists p r. (((~(p = 1) /\ forall frm_prime_left_pfp_decompose_prime frm_prime_right_pfp_decompose_prime. p = frm_prime_left_pfp_decompose_prime * frm_prime_right_pfp_decompose_prime -> frm_prime_left_pfp_decompose_prime = 1 \/ frm_prime_right_pfp_decompose_prime = 1)) /\ (((((exists ff_h_pfp_decompose_last. ff_h_pfp_decompose_last + S (p) = S ((S (l)) * c)) /\ exists ff_q_pfp_decompose_last. b = ff_q_pfp_decompose_last * S ((S (l)) * c) + (p))) /\ (((n = r * p) /\ ((~(r = 0) /\ ((exists ff_u_fsat_decompose_prefix_product ff_v_fsat_decompose_prefix_product. ((((exists ff_h_fsat_decompose_prefix_product_start. ff_h_fsat_decompose_prefix_product_start + S (1) = S ((S (0)) * ff_v_fsat_decompose_prefix_product)) /\ exists ff_q_fsat_decompose_prefix_product_start. ff_u_fsat_decompose_prefix_product = ff_q_fsat_decompose_prefix_product_start * S ((S (0)) * ff_v_fsat_decompose_prefix_product) + (1))) /\ ((((exists ff_h_fsat_decompose_prefix_product_terminal. ff_h_fsat_decompose_prefix_product_terminal + S (r) = S ((S (l)) * ff_v_fsat_decompose_prefix_product)) /\ exists ff_q_fsat_decompose_prefix_product_terminal. ff_u_fsat_decompose_prefix_product = ff_q_fsat_decompose_prefix_product_terminal * S ((S (l)) * ff_v_fsat_decompose_prefix_product) + (r))) /\ forall ff_i_fsat_decompose_prefix_product. (exists ff_lt_fsat_decompose_prefix_product_bound. ff_lt_fsat_decompose_prefix_product_bound + S ff_i_fsat_decompose_prefix_product = l) -> exists ff_p_fsat_decompose_prefix_product ff_r_fsat_decompose_prefix_product ff_s_fsat_decompose_prefix_product. ((((exists ff_h_fsat_decompose_prefix_product_factor. ff_h_fsat_decompose_prefix_product_factor + S (ff_p_fsat_decompose_prefix_product) = S ((S (ff_i_fsat_decompose_prefix_product)) * c)) /\ exists ff_q_fsat_decompose_prefix_product_factor. b = ff_q_fsat_decompose_prefix_product_factor * S ((S (ff_i_fsat_decompose_prefix_product)) * c) + (ff_p_fsat_decompose_prefix_product))) /\ ((((exists ff_h_fsat_decompose_prefix_product_partial. ff_h_fsat_decompose_prefix_product_partial + S (ff_r_fsat_decompose_prefix_product) = S ((S (ff_i_fsat_decompose_prefix_product)) * ff_v_fsat_decompose_prefix_product)) /\ exists ff_q_fsat_decompose_prefix_product_partial. ff_u_fsat_decompose_prefix_product = ff_q_fsat_decompose_prefix_product_partial * S ((S (ff_i_fsat_decompose_prefix_product)) * ff_v_fsat_decompose_prefix_product) + (ff_r_fsat_decompose_prefix_product))) /\ ((((exists ff_h_fsat_decompose_prefix_product_successor. ff_h_fsat_decompose_prefix_product_successor + S (ff_s_fsat_decompose_prefix_product) = S ((S (S ff_i_fsat_decompose_prefix_product)) * ff_v_fsat_decompose_prefix_product)) /\ exists ff_q_fsat_decompose_prefix_product_successor. ff_u_fsat_decompose_prefix_product = ff_q_fsat_decompose_prefix_product_successor * S ((S (S ff_i_fsat_decompose_prefix_product)) * ff_v_fsat_decompose_prefix_product) + (ff_s_fsat_decompose_prefix_product))) /\ ff_s_fsat_decompose_prefix_product = ff_r_fsat_decompose_prefix_product * ff_p_fsat_decompose_prefix_product)))))) /\ (forall ftsf_index_fsat_decompose_prefix_primes. (exists ftsf_gap_fsat_decompose_prefix_primes_bound. ftsf_gap_fsat_decompose_prefix_primes_bound + S ftsf_index_fsat_decompose_prefix_primes = (l)) -> exists ftsf_factor_fsat_decompose_prefix_primes. ((((exists ff_h_ftsf_fsat_decompose_prefix_primes_entry. ff_h_ftsf_fsat_decompose_prefix_primes_entry + S (ftsf_factor_fsat_decompose_prefix_primes) = S ((S (ftsf_index_fsat_decompose_prefix_primes)) * c)) /\ exists ff_q_ftsf_fsat_decompose_prefix_primes_entry. b = ff_q_ftsf_fsat_decompose_prefix_primes_entry * S ((S (ftsf_index_fsat_decompose_prefix_primes)) * c) + (ftsf_factor_fsat_decompose_prefix_primes))) /\ ((~(ftsf_factor_fsat_decompose_prefix_primes = 1) /\ forall frm_prime_left_ftsf_fsat_decompose_prefix_primes_prime frm_prime_right_ftsf_fsat_decompose_prefix_primes_prime. ftsf_factor_fsat_decompose_prefix_primes = frm_prime_left_ftsf_fsat_decompose_prefix_primes_prime * frm_prime_right_ftsf_fsat_decompose_prefix_primes_prime -> frm_prime_left_ftsf_fsat_decompose_prefix_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_decompose_prefix_primes_prime = 1))))))))))))Constructive proof overview
Generated structural guide
Every nonempty prime factorization supplies an actual last prime, its actual quotient, and a genuine shorter factorization.
The unchanged tactic script uses 4 declared prerequisites and contains 49 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_product_succ_decompose Stable theorem; checked-use authorized AF0007 factor_permutation_all_prime_entry AF0009 factor_permutation_cancel_last le_refl 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 exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply 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.
Named ingredients (2)
01Fix variables and assumptionsL1–5
02Establish hprodL6–6
03Separate the logical casesL7–8
04Use earlier factsL9–9
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L9
exact hf_right_left
05Establish hdL10–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
06Separate the logical casesL17–20
07Construct an explicit witnessL21–22
08Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
split
09Use earlier factsL24–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
specialize factor_permutation_all_prime_entry (b) - L25
specialize factor_permutation_all_prime_entry (c) - L26
specialize factor_permutation_all_prime_entry (S l) - L27
specialize factor_permutation_all_prime_entry (l) - L28
specialize factor_permutation_all_prime_entry (x) - L29
apply factor_permutation_all_prime_entry
10Separate the logical casesL30–31
11Use earlier factsL32–35
12Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
split
13Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
exact hd_witness_witness_left
14Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
15Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hd_witness_witness_right_right - L40
specialize factor_permutation_cancel_last (n) - L41
specialize factor_permutation_cancel_last (x) - L42
specialize factor_permutation_cancel_last (x1) - L43
specialize factor_permutation_cancel_last (b) - L44
specialize factor_permutation_cancel_last (c) - L45
specialize factor_permutation_cancel_last (l) - L46
apply factor_permutation_cancel_last - L47
exact hf - L48
exact hd_witness_witness_left
16Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hd_witness_witness_right_right
Original exact command ledger · 49 lines
- 0001
intro n - 0002
intro b - 0003
intro c - 0004
intro l - 0005
intro hf - 0006
have hprod : exists ff_u_fsat_decompose_product ff_v_fsat_decompose_product. ((((exists ff_h_fsat_decompose_product_start. ff_h_fsat_decompose_product_start + S (1) = S ((S (0)) * ff_v_fsat_decompose_product)) /\ exists ff_q_fsat_decompose_product_start. ff_u_fsat_decompose_product = ff_q_fsat_decompose_product_start * S ((S (0)) * ff_v_fsat_decompose_product) + (1))) /\ ((((exists ff_h_fsat_decompose_product_terminal. ff_h_fsat_decompose_product_terminal + S (n) = S ((S (S l)) * ff_v_fsat_decompose_product)) /\ exists ff_q_fsat_decompose_product_terminal. ff_u_fsat_decompose_product = ff_q_fsat_decompose_product_terminal * S ((S (S l)) * ff_v_fsat_decompose_product) + (n))) /\ forall ff_i_fsat_decompose_product. (exists ff_lt_fsat_decompose_product_bound. ff_lt_fsat_decompose_product_bound + S ff_i_fsat_decompose_product = S l) -> exists ff_p_fsat_decompose_product ff_r_fsat_decompose_product ff_s_fsat_decompose_product. ((((exists ff_h_fsat_decompose_product_factor. ff_h_fsat_decompose_product_factor + S (ff_p_fsat_decompose_product) = S ((S (ff_i_fsat_decompose_product)) * c)) /\ exists ff_q_fsat_decompose_product_factor. b = ff_q_fsat_decompose_product_factor * S ((S (ff_i_fsat_decompose_product)) * c) + (ff_p_fsat_decompose_product))) /\ ((((exists ff_h_fsat_decompose_product_partial. ff_h_fsat_decompose_product_partial + S (ff_r_fsat_decompose_product) = S ((S (ff_i_fsat_decompose_product)) * ff_v_fsat_decompose_product)) /\ exists ff_q_fsat_decompose_product_partial. ff_u_fsat_decompose_product = ff_q_fsat_decompose_product_partial * S ((S (ff_i_fsat_decompose_product)) * ff_v_fsat_decompose_product) + (ff_r_fsat_decompose_product))) /\ ((((exists ff_h_fsat_decompose_product_successor. ff_h_fsat_decompose_product_successor + S (ff_s_fsat_decompose_product) = S ((S (S ff_i_fsat_decompose_product)) * ff_v_fsat_decompose_product)) /\ exists ff_q_fsat_decompose_product_successor. ff_u_fsat_decompose_product = ff_q_fsat_decompose_product_successor * S ((S (S ff_i_fsat_decompose_product)) * ff_v_fsat_decompose_product) + (ff_s_fsat_decompose_product))) /\ ff_s_fsat_decompose_product = ff_r_fsat_decompose_product * ff_p_fsat_decompose_product))))) - 0007
cases hf - 0008
cases hf_right - 0009
exact hf_right_left - 0010
have hd : exists p r. ((((exists ff_h_pfp_decompose_entry. ff_h_pfp_decompose_entry + S (p) = S ((S (l)) * c)) /\ exists ff_q_pfp_decompose_entry. b = ff_q_pfp_decompose_entry * S ((S (l)) * c) + (p))) /\ (((exists ff_u_fsat_decompose_before ff_v_fsat_decompose_before. ((((exists ff_h_fsat_decompose_before_start. ff_h_fsat_decompose_before_start + S (1) = S ((S (0)) * ff_v_fsat_decompose_before)) /\ exists ff_q_fsat_decompose_before_start. ff_u_fsat_decompose_before = ff_q_fsat_decompose_before_start * S ((S (0)) * ff_v_fsat_decompose_before) + (1))) /\ ((((exists ff_h_fsat_decompose_before_terminal. ff_h_fsat_decompose_before_terminal + S (r) = S ((S (l)) * ff_v_fsat_decompose_before)) /\ exists ff_q_fsat_decompose_before_terminal. ff_u_fsat_decompose_before = ff_q_fsat_decompose_before_terminal * S ((S (l)) * ff_v_fsat_decompose_before) + (r))) /\ forall ff_i_fsat_decompose_before. (exists ff_lt_fsat_decompose_before_bound. ff_lt_fsat_decompose_before_bound + S ff_i_fsat_decompose_before = l) -> exists ff_p_fsat_decompose_before ff_r_fsat_decompose_before ff_s_fsat_decompose_before. ((((exists ff_h_fsat_decompose_before_factor. ff_h_fsat_decompose_before_factor + S (ff_p_fsat_decompose_before) = S ((S (ff_i_fsat_decompose_before)) * c)) /\ exists ff_q_fsat_decompose_before_factor. b = ff_q_fsat_decompose_before_factor * S ((S (ff_i_fsat_decompose_before)) * c) + (ff_p_fsat_decompose_before))) /\ ((((exists ff_h_fsat_decompose_before_partial. ff_h_fsat_decompose_before_partial + S (ff_r_fsat_decompose_before) = S ((S (ff_i_fsat_decompose_before)) * ff_v_fsat_decompose_before)) /\ exists ff_q_fsat_decompose_before_partial. ff_u_fsat_decompose_before = ff_q_fsat_decompose_before_partial * S ((S (ff_i_fsat_decompose_before)) * ff_v_fsat_decompose_before) + (ff_r_fsat_decompose_before))) /\ ((((exists ff_h_fsat_decompose_before_successor. ff_h_fsat_decompose_before_successor + S (ff_s_fsat_decompose_before) = S ((S (S ff_i_fsat_decompose_before)) * ff_v_fsat_decompose_before)) /\ exists ff_q_fsat_decompose_before_successor. ff_u_fsat_decompose_before = ff_q_fsat_decompose_before_successor * S ((S (S ff_i_fsat_decompose_before)) * ff_v_fsat_decompose_before) + (ff_s_fsat_decompose_before))) /\ ff_s_fsat_decompose_before = ff_r_fsat_decompose_before * ff_p_fsat_decompose_before)))))) /\ (n = r * p)))) - 0011
specialize beta_product_succ_decompose (b) - 0012
specialize beta_product_succ_decompose (c) - 0013
specialize beta_product_succ_decompose (l) - 0014
specialize beta_product_succ_decompose (n) - 0015
apply beta_product_succ_decompose - 0016
exact hprod - 0017
cases hd - 0018
cases hd_witness - 0019
cases hd_witness_witness - 0020
cases hd_witness_witness_right - 0021
exists x - 0022
exists x1 - 0023
split - 0024
specialize factor_permutation_all_prime_entry (b) - 0025
specialize factor_permutation_all_prime_entry (c) - 0026
specialize factor_permutation_all_prime_entry (S l) - 0027
specialize factor_permutation_all_prime_entry (l) - 0028
specialize factor_permutation_all_prime_entry (x) - 0029
apply factor_permutation_all_prime_entry - 0030
cases hf - 0031
cases hf_right - 0032
exact hf_right_right - 0033
specialize le_refl (S l) - 0034
apply le_refl - 0035
exact hd_witness_witness_left - 0036
split - 0037
exact hd_witness_witness_left - 0038
split - 0039
exact hd_witness_witness_right_right - 0040
specialize factor_permutation_cancel_last (n) - 0041
specialize factor_permutation_cancel_last (x) - 0042
specialize factor_permutation_cancel_last (x1) - 0043
specialize factor_permutation_cancel_last (b) - 0044
specialize factor_permutation_cancel_last (c) - 0045
specialize factor_permutation_cancel_last (l) - 0046
apply factor_permutation_cancel_last - 0047
exact hf - 0048
exact hd_witness_witness_left - 0049
exact hd_witness_witness_right_right