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 i p. ((~(N = 0) /\ ((exists ff_u_fsat_swap_exists_factor_product ff_v_fsat_swap_exists_factor_product. ((((exists ff_h_fsat_swap_exists_factor_product_start. ff_h_fsat_swap_exists_factor_product_start + S (1) = S ((S (0)) * ff_v_fsat_swap_exists_factor_product)) /\ exists ff_q_fsat_swap_exists_factor_product_start. ff_u_fsat_swap_exists_factor_product = ff_q_fsat_swap_exists_factor_product_start * S ((S (0)) * ff_v_fsat_swap_exists_factor_product) + (1))) /\ ((((exists ff_h_fsat_swap_exists_factor_product_terminal. ff_h_fsat_swap_exists_factor_product_terminal + S (N) = S ((S (S l)) * ff_v_fsat_swap_exists_factor_product)) /\ exists ff_q_fsat_swap_exists_factor_product_terminal. ff_u_fsat_swap_exists_factor_product = ff_q_fsat_swap_exists_factor_product_terminal * S ((S (S l)) * ff_v_fsat_swap_exists_factor_product) + (N))) /\ forall ff_i_fsat_swap_exists_factor_product. (exists ff_lt_fsat_swap_exists_factor_product_bound. ff_lt_fsat_swap_exists_factor_product_bound + S ff_i_fsat_swap_exists_factor_product = S l) -> exists ff_p_fsat_swap_exists_factor_product ff_r_fsat_swap_exists_factor_product ff_s_fsat_swap_exists_factor_product. ((((exists ff_h_fsat_swap_exists_factor_product_factor. ff_h_fsat_swap_exists_factor_product_factor + S (ff_p_fsat_swap_exists_factor_product) = S ((S (ff_i_fsat_swap_exists_factor_product)) * c)) /\ exists ff_q_fsat_swap_exists_factor_product_factor. b = ff_q_fsat_swap_exists_factor_product_factor * S ((S (ff_i_fsat_swap_exists_factor_product)) * c) + (ff_p_fsat_swap_exists_factor_product))) /\ ((((exists ff_h_fsat_swap_exists_factor_product_partial. ff_h_fsat_swap_exists_factor_product_partial + S (ff_r_fsat_swap_exists_factor_product) = S ((S (ff_i_fsat_swap_exists_factor_product)) * ff_v_fsat_swap_exists_factor_product)) /\ exists ff_q_fsat_swap_exists_factor_product_partial. ff_u_fsat_swap_exists_factor_product = ff_q_fsat_swap_exists_factor_product_partial * S ((S (ff_i_fsat_swap_exists_factor_product)) * ff_v_fsat_swap_exists_factor_product) + (ff_r_fsat_swap_exists_factor_product))) /\ ((((exists ff_h_fsat_swap_exists_factor_product_successor. ff_h_fsat_swap_exists_factor_product_successor + S (ff_s_fsat_swap_exists_factor_product) = S ((S (S ff_i_fsat_swap_exists_factor_product)) * ff_v_fsat_swap_exists_factor_product)) /\ exists ff_q_fsat_swap_exists_factor_product_successor. ff_u_fsat_swap_exists_factor_product = ff_q_fsat_swap_exists_factor_product_successor * S ((S (S ff_i_fsat_swap_exists_factor_product)) * ff_v_fsat_swap_exists_factor_product) + (ff_s_fsat_swap_exists_factor_product))) /\ ff_s_fsat_swap_exists_factor_product = ff_r_fsat_swap_exists_factor_product * ff_p_fsat_swap_exists_factor_product)))))) /\ (forall ftsf_index_fsat_swap_exists_factor_primes. (exists ftsf_gap_fsat_swap_exists_factor_primes_bound. ftsf_gap_fsat_swap_exists_factor_primes_bound + S ftsf_index_fsat_swap_exists_factor_primes = (S l)) -> exists ftsf_factor_fsat_swap_exists_factor_primes. ((((exists ff_h_ftsf_fsat_swap_exists_factor_primes_entry. ff_h_ftsf_fsat_swap_exists_factor_primes_entry + S (ftsf_factor_fsat_swap_exists_factor_primes) = S ((S (ftsf_index_fsat_swap_exists_factor_primes)) * c)) /\ exists ff_q_ftsf_fsat_swap_exists_factor_primes_entry. b = ff_q_ftsf_fsat_swap_exists_factor_primes_entry * S ((S (ftsf_index_fsat_swap_exists_factor_primes)) * c) + (ftsf_factor_fsat_swap_exists_factor_primes))) /\ ((~(ftsf_factor_fsat_swap_exists_factor_primes = 1) /\ forall frm_prime_left_ftsf_fsat_swap_exists_factor_primes_prime frm_prime_right_ftsf_fsat_swap_exists_factor_primes_prime. ftsf_factor_fsat_swap_exists_factor_primes = frm_prime_left_ftsf_fsat_swap_exists_factor_primes_prime * frm_prime_right_ftsf_fsat_swap_exists_factor_primes_prime -> frm_prime_left_ftsf_fsat_swap_exists_factor_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_swap_exists_factor_primes_prime = 1))))))) -> (exists pfp_gap_swap_exists_index. pfp_gap_swap_exists_index + S (i) = (l)) -> (((exists ff_h_pfp_swap_exists_selected. ff_h_pfp_swap_exists_selected + S (p) = S ((S (i)) * c)) /\ exists ff_q_pfp_swap_exists_selected. b = ff_q_pfp_swap_exists_selected * S ((S (i)) * c) + (p))) -> exists d e q. (((~(N = 0) /\ ((exists ff_u_fsat_swap_exists_result_product ff_v_fsat_swap_exists_result_product. ((((exists ff_h_fsat_swap_exists_result_product_start. ff_h_fsat_swap_exists_result_product_start + S (1) = S ((S (0)) * ff_v_fsat_swap_exists_result_product)) /\ exists ff_q_fsat_swap_exists_result_product_start. ff_u_fsat_swap_exists_result_product = ff_q_fsat_swap_exists_result_product_start * S ((S (0)) * ff_v_fsat_swap_exists_result_product) + (1))) /\ ((((exists ff_h_fsat_swap_exists_result_product_terminal. ff_h_fsat_swap_exists_result_product_terminal + S (N) = S ((S (S l)) * ff_v_fsat_swap_exists_result_product)) /\ exists ff_q_fsat_swap_exists_result_product_terminal. ff_u_fsat_swap_exists_result_product = ff_q_fsat_swap_exists_result_product_terminal * S ((S (S l)) * ff_v_fsat_swap_exists_result_product) + (N))) /\ forall ff_i_fsat_swap_exists_result_product. (exists ff_lt_fsat_swap_exists_result_product_bound. ff_lt_fsat_swap_exists_result_product_bound + S ff_i_fsat_swap_exists_result_product = S l) -> exists ff_p_fsat_swap_exists_result_product ff_r_fsat_swap_exists_result_product ff_s_fsat_swap_exists_result_product. ((((exists ff_h_fsat_swap_exists_result_product_factor. ff_h_fsat_swap_exists_result_product_factor + S (ff_p_fsat_swap_exists_result_product) = S ((S (ff_i_fsat_swap_exists_result_product)) * e)) /\ exists ff_q_fsat_swap_exists_result_product_factor. d = ff_q_fsat_swap_exists_result_product_factor * S ((S (ff_i_fsat_swap_exists_result_product)) * e) + (ff_p_fsat_swap_exists_result_product))) /\ ((((exists ff_h_fsat_swap_exists_result_product_partial. ff_h_fsat_swap_exists_result_product_partial + S (ff_r_fsat_swap_exists_result_product) = S ((S (ff_i_fsat_swap_exists_result_product)) * ff_v_fsat_swap_exists_result_product)) /\ exists ff_q_fsat_swap_exists_result_product_partial. ff_u_fsat_swap_exists_result_product = ff_q_fsat_swap_exists_result_product_partial * S ((S (ff_i_fsat_swap_exists_result_product)) * ff_v_fsat_swap_exists_result_product) + (ff_r_fsat_swap_exists_result_product))) /\ ((((exists ff_h_fsat_swap_exists_result_product_successor. ff_h_fsat_swap_exists_result_product_successor + S (ff_s_fsat_swap_exists_result_product) = S ((S (S ff_i_fsat_swap_exists_result_product)) * ff_v_fsat_swap_exists_result_product)) /\ exists ff_q_fsat_swap_exists_result_product_successor. ff_u_fsat_swap_exists_result_product = ff_q_fsat_swap_exists_result_product_successor * S ((S (S ff_i_fsat_swap_exists_result_product)) * ff_v_fsat_swap_exists_result_product) + (ff_s_fsat_swap_exists_result_product))) /\ ff_s_fsat_swap_exists_result_product = ff_r_fsat_swap_exists_result_product * ff_p_fsat_swap_exists_result_product)))))) /\ (forall ftsf_index_fsat_swap_exists_result_primes. (exists ftsf_gap_fsat_swap_exists_result_primes_bound. ftsf_gap_fsat_swap_exists_result_primes_bound + S ftsf_index_fsat_swap_exists_result_primes = (S l)) -> exists ftsf_factor_fsat_swap_exists_result_primes. ((((exists ff_h_ftsf_fsat_swap_exists_result_primes_entry. ff_h_ftsf_fsat_swap_exists_result_primes_entry + S (ftsf_factor_fsat_swap_exists_result_primes) = S ((S (ftsf_index_fsat_swap_exists_result_primes)) * e)) /\ exists ff_q_ftsf_fsat_swap_exists_result_primes_entry. d = ff_q_ftsf_fsat_swap_exists_result_primes_entry * S ((S (ftsf_index_fsat_swap_exists_result_primes)) * e) + (ftsf_factor_fsat_swap_exists_result_primes))) /\ ((~(ftsf_factor_fsat_swap_exists_result_primes = 1) /\ forall frm_prime_left_ftsf_fsat_swap_exists_result_primes_prime frm_prime_right_ftsf_fsat_swap_exists_result_primes_prime. ftsf_factor_fsat_swap_exists_result_primes = frm_prime_left_ftsf_fsat_swap_exists_result_primes_prime * frm_prime_right_ftsf_fsat_swap_exists_result_primes_prime -> frm_prime_left_ftsf_fsat_swap_exists_result_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_swap_exists_result_primes_prime = 1))))))) /\ (((((exists ff_h_pfp_swap_exists_witnessoldi. ff_h_pfp_swap_exists_witnessoldi + S (p) = S ((S (i)) * c)) /\ exists ff_q_pfp_swap_exists_witnessoldi. b = ff_q_pfp_swap_exists_witnessoldi * S ((S (i)) * c) + (p))) /\ (((((exists ff_h_pfp_swap_exists_witnessoldlast. ff_h_pfp_swap_exists_witnessoldlast + S (q) = S ((S (l)) * c)) /\ exists ff_q_pfp_swap_exists_witnessoldlast. b = ff_q_pfp_swap_exists_witnessoldlast * S ((S (l)) * c) + (q))) /\ (((((exists ff_h_pfp_swap_exists_witnessnewi. ff_h_pfp_swap_exists_witnessnewi + S (q) = S ((S (i)) * e)) /\ exists ff_q_pfp_swap_exists_witnessnewi. d = ff_q_pfp_swap_exists_witnessnewi * S ((S (i)) * e) + (q))) /\ (((((exists ff_h_pfp_swap_exists_witnessnewlast. ff_h_pfp_swap_exists_witnessnewlast + S (p) = S ((S (l)) * e)) /\ exists ff_q_pfp_swap_exists_witnessnewlast. d = ff_q_pfp_swap_exists_witnessnewlast * S ((S (l)) * e) + (p))) /\ (forall pfp_j_swap_exists_witness pfp_a_swap_exists_witness. (exists pfp_gap_swap_exists_witnessbound. pfp_gap_swap_exists_witnessbound + S (pfp_j_swap_exists_witness) = (S (l))) -> ~(pfp_j_swap_exists_witness = i) -> ~(pfp_j_swap_exists_witness = l) -> (((exists ff_h_pfp_swap_exists_witnessold. ff_h_pfp_swap_exists_witnessold + S (pfp_a_swap_exists_witness) = S ((S (pfp_j_swap_exists_witness)) * c)) /\ exists ff_q_pfp_swap_exists_witnessold. b = ff_q_pfp_swap_exists_witnessold * S ((S (pfp_j_swap_exists_witness)) * c) + (pfp_a_swap_exists_witness))) -> (((exists ff_h_pfp_swap_exists_witnessnew. ff_h_pfp_swap_exists_witnessnew + S (pfp_a_swap_exists_witness) = S ((S (pfp_j_swap_exists_witness)) * e)) /\ exists ff_q_pfp_swap_exists_witnessnew. d = ff_q_pfp_swap_exists_witnessnew * S ((S (pfp_j_swap_exists_witness)) * e) + (pfp_a_swap_exists_witness)))))))))))))Constructive proof overview
Generated structural guide
Construct a full recoded prime-factor list moving a selected interior prime to the last position, with exact swap witnesses and an unchanged actual product.
The unchanged tactic script uses 3 declared prerequisites and contains 58 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_at_exists Stable theorem; checked-use authorized beta_prefix_swap_last_from_entries Stable theorem; checked-use authorized AF0015 factor_permutation_swap_factorizationDirect 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 (1)
01Fix variables and assumptionsL1–9
02Establish hlastL10–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L10
have hlast : exists q. (((exists ff_h_pfp_swap_exists_last. ff_h_pfp_swap_exists_last + S (q) = S ((S (l)) * c)) /\ exists ff_q_pfp_swap_exists_last. b = ff_q_pfp_swap_exists_last * S ((S (l)) * c) + (q))) - L11
specialize beta_at_exists (b) - L12
specialize beta_at_exists (c) - L13
specialize beta_at_exists (l) - L14
apply beta_at_exists
03Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
cases hlast
04Establish hnewL16–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix swap last from entries.
- L16
- L17
specialize beta_prefix_swap_last_from_entries (b) - L18
specialize beta_prefix_swap_last_from_entries (c) - L19
specialize beta_prefix_swap_last_from_entries (l) - L20
specialize beta_prefix_swap_last_from_entries (i) - L21
specialize beta_prefix_swap_last_from_entries (p) - L22
specialize beta_prefix_swap_last_from_entries (x) - L23
apply beta_prefix_swap_last_from_entries - L24
exact hi - L25
exact hselected
05Use earlier factsL26–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
exact hlast_witness
06Separate the logical casesL27–30
07Establish hswapL31–31
08Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
split
09Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hselected
10Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
split
11Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hlast_witness
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 hnew_witness_witness_left
14Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
15Use earlier factsL39–40
16Construct an explicit witnessL41–43
17Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
18Use earlier factsL45–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
specialize factor_permutation_swap_factorization (N) - L46
specialize factor_permutation_swap_factorization (b) - L47
specialize factor_permutation_swap_factorization (c) - L48
specialize factor_permutation_swap_factorization (x1) - L49
specialize factor_permutation_swap_factorization (x2) - L50
specialize factor_permutation_swap_factorization (l) - L51
specialize factor_permutation_swap_factorization (i) - L52
specialize factor_permutation_swap_factorization (p) - L53
specialize factor_permutation_swap_factorization (x) - L54
apply factor_permutation_swap_factorization
Original exact command ledger · 58 lines
- 0001
intro N - 0002
intro b - 0003
intro c - 0004
intro l - 0005
intro i - 0006
intro p - 0007
intro hf - 0008
intro hi - 0009
intro hselected - 0010
have hlast : exists q. (((exists ff_h_pfp_swap_exists_last. ff_h_pfp_swap_exists_last + S (q) = S ((S (l)) * c)) /\ exists ff_q_pfp_swap_exists_last. b = ff_q_pfp_swap_exists_last * S ((S (l)) * c) + (q))) - 0011
specialize beta_at_exists (b) - 0012
specialize beta_at_exists (c) - 0013
specialize beta_at_exists (l) - 0014
apply beta_at_exists - 0015
cases hlast - 0016
have hnew : exists d e. ((((exists ff_h_pfp_swap_new_i. ff_h_pfp_swap_new_i + S (x) = S ((S (i)) * e)) /\ exists ff_q_pfp_swap_new_i. d = ff_q_pfp_swap_new_i * S ((S (i)) * e) + (x))) /\ (((((exists ff_h_pfp_swap_new_last. ff_h_pfp_swap_new_last + S (p) = S ((S (l)) * e)) /\ exists ff_q_pfp_swap_new_last. d = ff_q_pfp_swap_new_last * S ((S (l)) * e) + (p))) /\ (forall j a. (exists pfp_gap_swap_new_bound. pfp_gap_swap_new_bound + S (j) = (S l)) -> ~(j = i) -> ~(j = l) -> (((exists ff_h_pfp_swap_new_old. ff_h_pfp_swap_new_old + S (a) = S ((S (j)) * c)) /\ exists ff_q_pfp_swap_new_old. b = ff_q_pfp_swap_new_old * S ((S (j)) * c) + (a))) -> (((exists ff_h_pfp_swap_new_new. ff_h_pfp_swap_new_new + S (a) = S ((S (j)) * e)) /\ exists ff_q_pfp_swap_new_new. d = ff_q_pfp_swap_new_new * S ((S (j)) * e) + (a))))))) - 0017
specialize beta_prefix_swap_last_from_entries (b) - 0018
specialize beta_prefix_swap_last_from_entries (c) - 0019
specialize beta_prefix_swap_last_from_entries (l) - 0020
specialize beta_prefix_swap_last_from_entries (i) - 0021
specialize beta_prefix_swap_last_from_entries (p) - 0022
specialize beta_prefix_swap_last_from_entries (x) - 0023
apply beta_prefix_swap_last_from_entries - 0024
exact hi - 0025
exact hselected - 0026
exact hlast_witness - 0027
cases hnew - 0028
cases hnew_witness - 0029
cases hnew_witness_witness - 0030
cases hnew_witness_witness_right - 0031
have hswap : ((((exists ff_h_pfp_swap_constructedoldi. ff_h_pfp_swap_constructedoldi + S (p) = S ((S (i)) * c)) /\ exists ff_q_pfp_swap_constructedoldi. b = ff_q_pfp_swap_constructedoldi * S ((S (i)) * c) + (p))) /\ (((((exists ff_h_pfp_swap_constructedoldlast. ff_h_pfp_swap_constructedoldlast + S (x) = S ((S (l)) * c)) /\ exists ff_q_pfp_swap_constructedoldlast. b = ff_q_pfp_swap_constructedoldlast * S ((S (l)) * c) + (x))) /\ (((((exists ff_h_pfp_swap_constructednewi. ff_h_pfp_swap_constructednewi + S (x) = S ((S (i)) * x2)) /\ exists ff_q_pfp_swap_constructednewi. x1 = ff_q_pfp_swap_constructednewi * S ((S (i)) * x2) + (x))) /\ (((((exists ff_h_pfp_swap_constructednewlast. ff_h_pfp_swap_constructednewlast + S (p) = S ((S (l)) * x2)) /\ exists ff_q_pfp_swap_constructednewlast. x1 = ff_q_pfp_swap_constructednewlast * S ((S (l)) * x2) + (p))) /\ (forall pfp_j_swap_constructed pfp_a_swap_constructed. (exists pfp_gap_swap_constructedbound. pfp_gap_swap_constructedbound + S (pfp_j_swap_constructed) = (S (l))) -> ~(pfp_j_swap_constructed = i) -> ~(pfp_j_swap_constructed = l) -> (((exists ff_h_pfp_swap_constructedold. ff_h_pfp_swap_constructedold + S (pfp_a_swap_constructed) = S ((S (pfp_j_swap_constructed)) * c)) /\ exists ff_q_pfp_swap_constructedold. b = ff_q_pfp_swap_constructedold * S ((S (pfp_j_swap_constructed)) * c) + (pfp_a_swap_constructed))) -> (((exists ff_h_pfp_swap_constructednew. ff_h_pfp_swap_constructednew + S (pfp_a_swap_constructed) = S ((S (pfp_j_swap_constructed)) * x2)) /\ exists ff_q_pfp_swap_constructednew. x1 = ff_q_pfp_swap_constructednew * S ((S (pfp_j_swap_constructed)) * x2) + (pfp_a_swap_constructed))))))))))) - 0032
split - 0033
exact hselected - 0034
split - 0035
exact hlast_witness - 0036
split - 0037
exact hnew_witness_witness_left - 0038
split - 0039
exact hnew_witness_witness_right_left - 0040
exact hnew_witness_witness_right_right - 0041
exists x1 - 0042
exists x2 - 0043
exists x - 0044
split - 0045
specialize factor_permutation_swap_factorization (N) - 0046
specialize factor_permutation_swap_factorization (b) - 0047
specialize factor_permutation_swap_factorization (c) - 0048
specialize factor_permutation_swap_factorization (x1) - 0049
specialize factor_permutation_swap_factorization (x2) - 0050
specialize factor_permutation_swap_factorization (l) - 0051
specialize factor_permutation_swap_factorization (i) - 0052
specialize factor_permutation_swap_factorization (p) - 0053
specialize factor_permutation_swap_factorization (x) - 0054
apply factor_permutation_swap_factorization - 0055
exact hf - 0056
exact hi - 0057
exact hswap - 0058
exact hswap