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 d e l i p q. ((~(N = 0) /\ ((exists ff_u_fsat_swap_factor_old_product ff_v_fsat_swap_factor_old_product. ((((exists ff_h_fsat_swap_factor_old_product_start. ff_h_fsat_swap_factor_old_product_start + S (1) = S ((S (0)) * ff_v_fsat_swap_factor_old_product)) /\ exists ff_q_fsat_swap_factor_old_product_start. ff_u_fsat_swap_factor_old_product = ff_q_fsat_swap_factor_old_product_start * S ((S (0)) * ff_v_fsat_swap_factor_old_product) + (1))) /\ ((((exists ff_h_fsat_swap_factor_old_product_terminal. ff_h_fsat_swap_factor_old_product_terminal + S (N) = S ((S (S l)) * ff_v_fsat_swap_factor_old_product)) /\ exists ff_q_fsat_swap_factor_old_product_terminal. ff_u_fsat_swap_factor_old_product = ff_q_fsat_swap_factor_old_product_terminal * S ((S (S l)) * ff_v_fsat_swap_factor_old_product) + (N))) /\ forall ff_i_fsat_swap_factor_old_product. (exists ff_lt_fsat_swap_factor_old_product_bound. ff_lt_fsat_swap_factor_old_product_bound + S ff_i_fsat_swap_factor_old_product = S l) -> exists ff_p_fsat_swap_factor_old_product ff_r_fsat_swap_factor_old_product ff_s_fsat_swap_factor_old_product. ((((exists ff_h_fsat_swap_factor_old_product_factor. ff_h_fsat_swap_factor_old_product_factor + S (ff_p_fsat_swap_factor_old_product) = S ((S (ff_i_fsat_swap_factor_old_product)) * c)) /\ exists ff_q_fsat_swap_factor_old_product_factor. b = ff_q_fsat_swap_factor_old_product_factor * S ((S (ff_i_fsat_swap_factor_old_product)) * c) + (ff_p_fsat_swap_factor_old_product))) /\ ((((exists ff_h_fsat_swap_factor_old_product_partial. ff_h_fsat_swap_factor_old_product_partial + S (ff_r_fsat_swap_factor_old_product) = S ((S (ff_i_fsat_swap_factor_old_product)) * ff_v_fsat_swap_factor_old_product)) /\ exists ff_q_fsat_swap_factor_old_product_partial. ff_u_fsat_swap_factor_old_product = ff_q_fsat_swap_factor_old_product_partial * S ((S (ff_i_fsat_swap_factor_old_product)) * ff_v_fsat_swap_factor_old_product) + (ff_r_fsat_swap_factor_old_product))) /\ ((((exists ff_h_fsat_swap_factor_old_product_successor. ff_h_fsat_swap_factor_old_product_successor + S (ff_s_fsat_swap_factor_old_product) = S ((S (S ff_i_fsat_swap_factor_old_product)) * ff_v_fsat_swap_factor_old_product)) /\ exists ff_q_fsat_swap_factor_old_product_successor. ff_u_fsat_swap_factor_old_product = ff_q_fsat_swap_factor_old_product_successor * S ((S (S ff_i_fsat_swap_factor_old_product)) * ff_v_fsat_swap_factor_old_product) + (ff_s_fsat_swap_factor_old_product))) /\ ff_s_fsat_swap_factor_old_product = ff_r_fsat_swap_factor_old_product * ff_p_fsat_swap_factor_old_product)))))) /\ (forall ftsf_index_fsat_swap_factor_old_primes. (exists ftsf_gap_fsat_swap_factor_old_primes_bound. ftsf_gap_fsat_swap_factor_old_primes_bound + S ftsf_index_fsat_swap_factor_old_primes = (S l)) -> exists ftsf_factor_fsat_swap_factor_old_primes. ((((exists ff_h_ftsf_fsat_swap_factor_old_primes_entry. ff_h_ftsf_fsat_swap_factor_old_primes_entry + S (ftsf_factor_fsat_swap_factor_old_primes) = S ((S (ftsf_index_fsat_swap_factor_old_primes)) * c)) /\ exists ff_q_ftsf_fsat_swap_factor_old_primes_entry. b = ff_q_ftsf_fsat_swap_factor_old_primes_entry * S ((S (ftsf_index_fsat_swap_factor_old_primes)) * c) + (ftsf_factor_fsat_swap_factor_old_primes))) /\ ((~(ftsf_factor_fsat_swap_factor_old_primes = 1) /\ forall frm_prime_left_ftsf_fsat_swap_factor_old_primes_prime frm_prime_right_ftsf_fsat_swap_factor_old_primes_prime. ftsf_factor_fsat_swap_factor_old_primes = frm_prime_left_ftsf_fsat_swap_factor_old_primes_prime * frm_prime_right_ftsf_fsat_swap_factor_old_primes_prime -> frm_prime_left_ftsf_fsat_swap_factor_old_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_swap_factor_old_primes_prime = 1))))))) -> (exists pfp_gap_swap_factor_index. pfp_gap_swap_factor_index + S (i) = (l)) -> (((((exists ff_h_pfp_swapoldi. ff_h_pfp_swapoldi + S (p) = S ((S (i)) * c)) /\ exists ff_q_pfp_swapoldi. b = ff_q_pfp_swapoldi * S ((S (i)) * c) + (p))) /\ (((((exists ff_h_pfp_swapoldlast. ff_h_pfp_swapoldlast + S (q) = S ((S (l)) * c)) /\ exists ff_q_pfp_swapoldlast. b = ff_q_pfp_swapoldlast * S ((S (l)) * c) + (q))) /\ (((((exists ff_h_pfp_swapnewi. ff_h_pfp_swapnewi + S (q) = S ((S (i)) * e)) /\ exists ff_q_pfp_swapnewi. d = ff_q_pfp_swapnewi * S ((S (i)) * e) + (q))) /\ (((((exists ff_h_pfp_swapnewlast. ff_h_pfp_swapnewlast + S (p) = S ((S (l)) * e)) /\ exists ff_q_pfp_swapnewlast. d = ff_q_pfp_swapnewlast * S ((S (l)) * e) + (p))) /\ (forall pfp_j_swap pfp_a_swap. (exists pfp_gap_swapbound. pfp_gap_swapbound + S (pfp_j_swap) = (S (l))) -> ~(pfp_j_swap = i) -> ~(pfp_j_swap = l) -> (((exists ff_h_pfp_swapold. ff_h_pfp_swapold + S (pfp_a_swap) = S ((S (pfp_j_swap)) * c)) /\ exists ff_q_pfp_swapold. b = ff_q_pfp_swapold * S ((S (pfp_j_swap)) * c) + (pfp_a_swap))) -> (((exists ff_h_pfp_swapnew. ff_h_pfp_swapnew + S (pfp_a_swap) = S ((S (pfp_j_swap)) * e)) /\ exists ff_q_pfp_swapnew. d = ff_q_pfp_swapnew * S ((S (pfp_j_swap)) * e) + (pfp_a_swap)))))))))))) -> ((~(N = 0) /\ ((exists ff_u_fsat_swap_factor_new_product ff_v_fsat_swap_factor_new_product. ((((exists ff_h_fsat_swap_factor_new_product_start. ff_h_fsat_swap_factor_new_product_start + S (1) = S ((S (0)) * ff_v_fsat_swap_factor_new_product)) /\ exists ff_q_fsat_swap_factor_new_product_start. ff_u_fsat_swap_factor_new_product = ff_q_fsat_swap_factor_new_product_start * S ((S (0)) * ff_v_fsat_swap_factor_new_product) + (1))) /\ ((((exists ff_h_fsat_swap_factor_new_product_terminal. ff_h_fsat_swap_factor_new_product_terminal + S (N) = S ((S (S l)) * ff_v_fsat_swap_factor_new_product)) /\ exists ff_q_fsat_swap_factor_new_product_terminal. ff_u_fsat_swap_factor_new_product = ff_q_fsat_swap_factor_new_product_terminal * S ((S (S l)) * ff_v_fsat_swap_factor_new_product) + (N))) /\ forall ff_i_fsat_swap_factor_new_product. (exists ff_lt_fsat_swap_factor_new_product_bound. ff_lt_fsat_swap_factor_new_product_bound + S ff_i_fsat_swap_factor_new_product = S l) -> exists ff_p_fsat_swap_factor_new_product ff_r_fsat_swap_factor_new_product ff_s_fsat_swap_factor_new_product. ((((exists ff_h_fsat_swap_factor_new_product_factor. ff_h_fsat_swap_factor_new_product_factor + S (ff_p_fsat_swap_factor_new_product) = S ((S (ff_i_fsat_swap_factor_new_product)) * e)) /\ exists ff_q_fsat_swap_factor_new_product_factor. d = ff_q_fsat_swap_factor_new_product_factor * S ((S (ff_i_fsat_swap_factor_new_product)) * e) + (ff_p_fsat_swap_factor_new_product))) /\ ((((exists ff_h_fsat_swap_factor_new_product_partial. ff_h_fsat_swap_factor_new_product_partial + S (ff_r_fsat_swap_factor_new_product) = S ((S (ff_i_fsat_swap_factor_new_product)) * ff_v_fsat_swap_factor_new_product)) /\ exists ff_q_fsat_swap_factor_new_product_partial. ff_u_fsat_swap_factor_new_product = ff_q_fsat_swap_factor_new_product_partial * S ((S (ff_i_fsat_swap_factor_new_product)) * ff_v_fsat_swap_factor_new_product) + (ff_r_fsat_swap_factor_new_product))) /\ ((((exists ff_h_fsat_swap_factor_new_product_successor. ff_h_fsat_swap_factor_new_product_successor + S (ff_s_fsat_swap_factor_new_product) = S ((S (S ff_i_fsat_swap_factor_new_product)) * ff_v_fsat_swap_factor_new_product)) /\ exists ff_q_fsat_swap_factor_new_product_successor. ff_u_fsat_swap_factor_new_product = ff_q_fsat_swap_factor_new_product_successor * S ((S (S ff_i_fsat_swap_factor_new_product)) * ff_v_fsat_swap_factor_new_product) + (ff_s_fsat_swap_factor_new_product))) /\ ff_s_fsat_swap_factor_new_product = ff_r_fsat_swap_factor_new_product * ff_p_fsat_swap_factor_new_product)))))) /\ (forall ftsf_index_fsat_swap_factor_new_primes. (exists ftsf_gap_fsat_swap_factor_new_primes_bound. ftsf_gap_fsat_swap_factor_new_primes_bound + S ftsf_index_fsat_swap_factor_new_primes = (S l)) -> exists ftsf_factor_fsat_swap_factor_new_primes. ((((exists ff_h_ftsf_fsat_swap_factor_new_primes_entry. ff_h_ftsf_fsat_swap_factor_new_primes_entry + S (ftsf_factor_fsat_swap_factor_new_primes) = S ((S (ftsf_index_fsat_swap_factor_new_primes)) * e)) /\ exists ff_q_ftsf_fsat_swap_factor_new_primes_entry. d = ff_q_ftsf_fsat_swap_factor_new_primes_entry * S ((S (ftsf_index_fsat_swap_factor_new_primes)) * e) + (ftsf_factor_fsat_swap_factor_new_primes))) /\ ((~(ftsf_factor_fsat_swap_factor_new_primes = 1) /\ forall frm_prime_left_ftsf_fsat_swap_factor_new_primes_prime frm_prime_right_ftsf_fsat_swap_factor_new_primes_prime. ftsf_factor_fsat_swap_factor_new_primes = frm_prime_left_ftsf_fsat_swap_factor_new_primes_prime * frm_prime_right_ftsf_fsat_swap_factor_new_primes_prime -> frm_prime_left_ftsf_fsat_swap_factor_new_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_swap_factor_new_primes_prime = 1)))))))Constructive proof overview
Generated structural guide
The swapped prime list has an actual product trace with the identical nonzero product, not merely a proposed rearrangement equality.
The unchanged tactic script uses 3 declared prerequisites and contains 65 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
AF0008 factor_permutation_product_exists beta_product_swap_last_invariant Stable theorem; checked-use authorized AF0014 factor_permutation_swap_all_primeDirect 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–10
02Fix variables and assumptionsL11–12
03Separate the logical casesL13–14
04Establish hproductL15–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation product exists.
05Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hproduct
06Establish hsameL21–21
Establish this local claim before using it. It is not an additional assumption.
- L21
have hsame : N = x
07Separate the logical casesL22–25
08Use earlier factsL26–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
specialize beta_product_swap_last_invariant (b) - L27
specialize beta_product_swap_last_invariant (c) - L28
specialize beta_product_swap_last_invariant (d) - L29
specialize beta_product_swap_last_invariant (e) - L30
specialize beta_product_swap_last_invariant (l) - L31
specialize beta_product_swap_last_invariant (i) - L32
specialize beta_product_swap_last_invariant (p) - L33
specialize beta_product_swap_last_invariant (q) - L34
specialize beta_product_swap_last_invariant (N) - L35
specialize beta_product_swap_last_invariant (x)
09Use earlier factsL36–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
10Establish hxL45–47
11Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
12Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hf_left
13Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
split
14Calculate and transport equalitiesL51–52
15Use earlier factsL53–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
exact hproduct_witness - L54
specialize factor_permutation_swap_all_prime (b) - L55
specialize factor_permutation_swap_all_prime (c) - L56
specialize factor_permutation_swap_all_prime (d) - L57
specialize factor_permutation_swap_all_prime (e) - L58
specialize factor_permutation_swap_all_prime (l) - L59
specialize factor_permutation_swap_all_prime (i) - L60
specialize factor_permutation_swap_all_prime (p) - L61
specialize factor_permutation_swap_all_prime (q) - L62
apply factor_permutation_swap_all_prime
Original exact command ledger · 65 lines
- 0001
intro N - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro l - 0007
intro i - 0008
intro p - 0009
intro q - 0010
intro hf - 0011
intro hi - 0012
intro hs - 0013
cases hf - 0014
cases hf_right - 0015
have hproduct : exists Q. (exists ff_u_fsat_swap_product ff_v_fsat_swap_product. ((((exists ff_h_fsat_swap_product_start. ff_h_fsat_swap_product_start + S (1) = S ((S (0)) * ff_v_fsat_swap_product)) /\ exists ff_q_fsat_swap_product_start. ff_u_fsat_swap_product = ff_q_fsat_swap_product_start * S ((S (0)) * ff_v_fsat_swap_product) + (1))) /\ ((((exists ff_h_fsat_swap_product_terminal. ff_h_fsat_swap_product_terminal + S (Q) = S ((S (S l)) * ff_v_fsat_swap_product)) /\ exists ff_q_fsat_swap_product_terminal. ff_u_fsat_swap_product = ff_q_fsat_swap_product_terminal * S ((S (S l)) * ff_v_fsat_swap_product) + (Q))) /\ forall ff_i_fsat_swap_product. (exists ff_lt_fsat_swap_product_bound. ff_lt_fsat_swap_product_bound + S ff_i_fsat_swap_product = S l) -> exists ff_p_fsat_swap_product ff_r_fsat_swap_product ff_s_fsat_swap_product. ((((exists ff_h_fsat_swap_product_factor. ff_h_fsat_swap_product_factor + S (ff_p_fsat_swap_product) = S ((S (ff_i_fsat_swap_product)) * e)) /\ exists ff_q_fsat_swap_product_factor. d = ff_q_fsat_swap_product_factor * S ((S (ff_i_fsat_swap_product)) * e) + (ff_p_fsat_swap_product))) /\ ((((exists ff_h_fsat_swap_product_partial. ff_h_fsat_swap_product_partial + S (ff_r_fsat_swap_product) = S ((S (ff_i_fsat_swap_product)) * ff_v_fsat_swap_product)) /\ exists ff_q_fsat_swap_product_partial. ff_u_fsat_swap_product = ff_q_fsat_swap_product_partial * S ((S (ff_i_fsat_swap_product)) * ff_v_fsat_swap_product) + (ff_r_fsat_swap_product))) /\ ((((exists ff_h_fsat_swap_product_successor. ff_h_fsat_swap_product_successor + S (ff_s_fsat_swap_product) = S ((S (S ff_i_fsat_swap_product)) * ff_v_fsat_swap_product)) /\ exists ff_q_fsat_swap_product_successor. ff_u_fsat_swap_product = ff_q_fsat_swap_product_successor * S ((S (S ff_i_fsat_swap_product)) * ff_v_fsat_swap_product) + (ff_s_fsat_swap_product))) /\ ff_s_fsat_swap_product = ff_r_fsat_swap_product * ff_p_fsat_swap_product)))))) - 0016
specialize factor_permutation_product_exists (d) - 0017
specialize factor_permutation_product_exists (e) - 0018
specialize factor_permutation_product_exists (S l) - 0019
apply factor_permutation_product_exists - 0020
cases hproduct - 0021
have hsame : N = x - 0022
cases hs - 0023
cases hs_right - 0024
cases hs_right_right - 0025
cases hs_right_right_right - 0026
specialize beta_product_swap_last_invariant (b) - 0027
specialize beta_product_swap_last_invariant (c) - 0028
specialize beta_product_swap_last_invariant (d) - 0029
specialize beta_product_swap_last_invariant (e) - 0030
specialize beta_product_swap_last_invariant (l) - 0031
specialize beta_product_swap_last_invariant (i) - 0032
specialize beta_product_swap_last_invariant (p) - 0033
specialize beta_product_swap_last_invariant (q) - 0034
specialize beta_product_swap_last_invariant (N) - 0035
specialize beta_product_swap_last_invariant (x) - 0036
apply beta_product_swap_last_invariant - 0037
exact hi - 0038
exact hs_left - 0039
exact hs_right_left - 0040
exact hs_right_right_left - 0041
exact hs_right_right_right_left - 0042
exact hs_right_right_right_right - 0043
exact hf_right_left - 0044
exact hproduct_witness - 0045
have hx : x = N - 0046
symm - 0047
exact hsame - 0048
split - 0049
exact hf_left - 0050
split - 0051
rewrite hx at hproduct_witness - 0052
rewrite hx at hproduct_witness - 0053
exact hproduct_witness - 0054
specialize factor_permutation_swap_all_prime (b) - 0055
specialize factor_permutation_swap_all_prime (c) - 0056
specialize factor_permutation_swap_all_prime (d) - 0057
specialize factor_permutation_swap_all_prime (e) - 0058
specialize factor_permutation_swap_all_prime (l) - 0059
specialize factor_permutation_swap_all_prime (i) - 0060
specialize factor_permutation_swap_all_prime (p) - 0061
specialize factor_permutation_swap_all_prime (q) - 0062
apply factor_permutation_swap_all_prime - 0063
exact hi - 0064
exact hf_right_right - 0065
exact hs