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 p r b c l. ((~(n = 0) /\ ((exists ff_u_fsat_cancel_full_product ff_v_fsat_cancel_full_product. ((((exists ff_h_fsat_cancel_full_product_start. ff_h_fsat_cancel_full_product_start + S (1) = S ((S (0)) * ff_v_fsat_cancel_full_product)) /\ exists ff_q_fsat_cancel_full_product_start. ff_u_fsat_cancel_full_product = ff_q_fsat_cancel_full_product_start * S ((S (0)) * ff_v_fsat_cancel_full_product) + (1))) /\ ((((exists ff_h_fsat_cancel_full_product_terminal. ff_h_fsat_cancel_full_product_terminal + S (n) = S ((S (S l)) * ff_v_fsat_cancel_full_product)) /\ exists ff_q_fsat_cancel_full_product_terminal. ff_u_fsat_cancel_full_product = ff_q_fsat_cancel_full_product_terminal * S ((S (S l)) * ff_v_fsat_cancel_full_product) + (n))) /\ forall ff_i_fsat_cancel_full_product. (exists ff_lt_fsat_cancel_full_product_bound. ff_lt_fsat_cancel_full_product_bound + S ff_i_fsat_cancel_full_product = S l) -> exists ff_p_fsat_cancel_full_product ff_r_fsat_cancel_full_product ff_s_fsat_cancel_full_product. ((((exists ff_h_fsat_cancel_full_product_factor. ff_h_fsat_cancel_full_product_factor + S (ff_p_fsat_cancel_full_product) = S ((S (ff_i_fsat_cancel_full_product)) * c)) /\ exists ff_q_fsat_cancel_full_product_factor. b = ff_q_fsat_cancel_full_product_factor * S ((S (ff_i_fsat_cancel_full_product)) * c) + (ff_p_fsat_cancel_full_product))) /\ ((((exists ff_h_fsat_cancel_full_product_partial. ff_h_fsat_cancel_full_product_partial + S (ff_r_fsat_cancel_full_product) = S ((S (ff_i_fsat_cancel_full_product)) * ff_v_fsat_cancel_full_product)) /\ exists ff_q_fsat_cancel_full_product_partial. ff_u_fsat_cancel_full_product = ff_q_fsat_cancel_full_product_partial * S ((S (ff_i_fsat_cancel_full_product)) * ff_v_fsat_cancel_full_product) + (ff_r_fsat_cancel_full_product))) /\ ((((exists ff_h_fsat_cancel_full_product_successor. ff_h_fsat_cancel_full_product_successor + S (ff_s_fsat_cancel_full_product) = S ((S (S ff_i_fsat_cancel_full_product)) * ff_v_fsat_cancel_full_product)) /\ exists ff_q_fsat_cancel_full_product_successor. ff_u_fsat_cancel_full_product = ff_q_fsat_cancel_full_product_successor * S ((S (S ff_i_fsat_cancel_full_product)) * ff_v_fsat_cancel_full_product) + (ff_s_fsat_cancel_full_product))) /\ ff_s_fsat_cancel_full_product = ff_r_fsat_cancel_full_product * ff_p_fsat_cancel_full_product)))))) /\ (forall ftsf_index_fsat_cancel_full_primes. (exists ftsf_gap_fsat_cancel_full_primes_bound. ftsf_gap_fsat_cancel_full_primes_bound + S ftsf_index_fsat_cancel_full_primes = (S l)) -> exists ftsf_factor_fsat_cancel_full_primes. ((((exists ff_h_ftsf_fsat_cancel_full_primes_entry. ff_h_ftsf_fsat_cancel_full_primes_entry + S (ftsf_factor_fsat_cancel_full_primes) = S ((S (ftsf_index_fsat_cancel_full_primes)) * c)) /\ exists ff_q_ftsf_fsat_cancel_full_primes_entry. b = ff_q_ftsf_fsat_cancel_full_primes_entry * S ((S (ftsf_index_fsat_cancel_full_primes)) * c) + (ftsf_factor_fsat_cancel_full_primes))) /\ ((~(ftsf_factor_fsat_cancel_full_primes = 1) /\ forall frm_prime_left_ftsf_fsat_cancel_full_primes_prime frm_prime_right_ftsf_fsat_cancel_full_primes_prime. ftsf_factor_fsat_cancel_full_primes = frm_prime_left_ftsf_fsat_cancel_full_primes_prime * frm_prime_right_ftsf_fsat_cancel_full_primes_prime -> frm_prime_left_ftsf_fsat_cancel_full_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_cancel_full_primes_prime = 1))))))) -> (((exists ff_h_pfp_cancel_last. ff_h_pfp_cancel_last + S (p) = S ((S (l)) * c)) /\ exists ff_q_pfp_cancel_last. b = ff_q_pfp_cancel_last * S ((S (l)) * c) + (p))) -> n = r * p -> ((~(r = 0) /\ ((exists ff_u_fsat_cancel_prefix_product ff_v_fsat_cancel_prefix_product. ((((exists ff_h_fsat_cancel_prefix_product_start. ff_h_fsat_cancel_prefix_product_start + S (1) = S ((S (0)) * ff_v_fsat_cancel_prefix_product)) /\ exists ff_q_fsat_cancel_prefix_product_start. ff_u_fsat_cancel_prefix_product = ff_q_fsat_cancel_prefix_product_start * S ((S (0)) * ff_v_fsat_cancel_prefix_product) + (1))) /\ ((((exists ff_h_fsat_cancel_prefix_product_terminal. ff_h_fsat_cancel_prefix_product_terminal + S (r) = S ((S (l)) * ff_v_fsat_cancel_prefix_product)) /\ exists ff_q_fsat_cancel_prefix_product_terminal. ff_u_fsat_cancel_prefix_product = ff_q_fsat_cancel_prefix_product_terminal * S ((S (l)) * ff_v_fsat_cancel_prefix_product) + (r))) /\ forall ff_i_fsat_cancel_prefix_product. (exists ff_lt_fsat_cancel_prefix_product_bound. ff_lt_fsat_cancel_prefix_product_bound + S ff_i_fsat_cancel_prefix_product = l) -> exists ff_p_fsat_cancel_prefix_product ff_r_fsat_cancel_prefix_product ff_s_fsat_cancel_prefix_product. ((((exists ff_h_fsat_cancel_prefix_product_factor. ff_h_fsat_cancel_prefix_product_factor + S (ff_p_fsat_cancel_prefix_product) = S ((S (ff_i_fsat_cancel_prefix_product)) * c)) /\ exists ff_q_fsat_cancel_prefix_product_factor. b = ff_q_fsat_cancel_prefix_product_factor * S ((S (ff_i_fsat_cancel_prefix_product)) * c) + (ff_p_fsat_cancel_prefix_product))) /\ ((((exists ff_h_fsat_cancel_prefix_product_partial. ff_h_fsat_cancel_prefix_product_partial + S (ff_r_fsat_cancel_prefix_product) = S ((S (ff_i_fsat_cancel_prefix_product)) * ff_v_fsat_cancel_prefix_product)) /\ exists ff_q_fsat_cancel_prefix_product_partial. ff_u_fsat_cancel_prefix_product = ff_q_fsat_cancel_prefix_product_partial * S ((S (ff_i_fsat_cancel_prefix_product)) * ff_v_fsat_cancel_prefix_product) + (ff_r_fsat_cancel_prefix_product))) /\ ((((exists ff_h_fsat_cancel_prefix_product_successor. ff_h_fsat_cancel_prefix_product_successor + S (ff_s_fsat_cancel_prefix_product) = S ((S (S ff_i_fsat_cancel_prefix_product)) * ff_v_fsat_cancel_prefix_product)) /\ exists ff_q_fsat_cancel_prefix_product_successor. ff_u_fsat_cancel_prefix_product = ff_q_fsat_cancel_prefix_product_successor * S ((S (S ff_i_fsat_cancel_prefix_product)) * ff_v_fsat_cancel_prefix_product) + (ff_s_fsat_cancel_prefix_product))) /\ ff_s_fsat_cancel_prefix_product = ff_r_fsat_cancel_prefix_product * ff_p_fsat_cancel_prefix_product)))))) /\ (forall ftsf_index_fsat_cancel_prefix_primes. (exists ftsf_gap_fsat_cancel_prefix_primes_bound. ftsf_gap_fsat_cancel_prefix_primes_bound + S ftsf_index_fsat_cancel_prefix_primes = (l)) -> exists ftsf_factor_fsat_cancel_prefix_primes. ((((exists ff_h_ftsf_fsat_cancel_prefix_primes_entry. ff_h_ftsf_fsat_cancel_prefix_primes_entry + S (ftsf_factor_fsat_cancel_prefix_primes) = S ((S (ftsf_index_fsat_cancel_prefix_primes)) * c)) /\ exists ff_q_ftsf_fsat_cancel_prefix_primes_entry. b = ff_q_ftsf_fsat_cancel_prefix_primes_entry * S ((S (ftsf_index_fsat_cancel_prefix_primes)) * c) + (ftsf_factor_fsat_cancel_prefix_primes))) /\ ((~(ftsf_factor_fsat_cancel_prefix_primes = 1) /\ forall frm_prime_left_ftsf_fsat_cancel_prefix_primes_prime frm_prime_right_ftsf_fsat_cancel_prefix_primes_prime. ftsf_factor_fsat_cancel_prefix_primes = frm_prime_left_ftsf_fsat_cancel_prefix_primes_prime * frm_prime_right_ftsf_fsat_cancel_prefix_primes_prime -> frm_prime_left_ftsf_fsat_cancel_prefix_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_cancel_prefix_primes_prime = 1)))))))Constructive proof overview
Generated structural guide
Cancel an actual final prime factor, retaining the nonzero predecessor product and all actual prime prefix entries.
The unchanged tactic script uses 8 declared prerequisites and contains 73 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 beta_at_unique Stable theorem; checked-use authorized AF0007 factor_permutation_all_prime_entry prime_nonzero Stable theorem; checked-use authorized mul_right_cancel_nonzero Stable theorem; checked-use authorized all_prime_succ_elim_prefix Stable theorem; checked-use authorized le_refl Stable theorem; checked-use authorized mul_zero_left 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 (1)
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–11
03Establish hdL12–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
04Separate the logical casesL19–22
05Establish hfactorL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L23
have hfactor : x = p - L24
specialize beta_at_unique (b) - L25
specialize beta_at_unique (c) - L26
specialize beta_at_unique (l) - L27
specialize beta_at_unique (x) - L28
specialize beta_at_unique (p) - L29
apply beta_at_unique - L30
exact hd_witness_witness_left - L31
exact hlast - L32
rewrite hfactor at hd_witness_witness_right_right
06Establish hpzeroL33–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime nonzero.
- L33
have hpzero : ~(p = 0) - L34
intro hzero - L35
specialize prime_nonzero (p) - L36
apply prime_nonzero - L37
specialize factor_permutation_all_prime_entry (b) - L38
specialize factor_permutation_all_prime_entry (c) - L39
specialize factor_permutation_all_prime_entry (S l) - L40
specialize factor_permutation_all_prime_entry (l) - L41
specialize factor_permutation_all_prime_entry (p) - L42
apply factor_permutation_all_prime_entry
07Use earlier factsL43–47
08Establish hquotientL48–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul right cancel nonzero.
09Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
split
10Fix variables and assumptionsL59–59
Work with arbitrary variables or the premises of the current implication.
- L59
intro hrzero
11Use earlier factsL60–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
apply hf_left
12Calculate and transport equalitiesL61–61
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L61
trans r * p
13Use earlier factsL62–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L62
exact heq
14Calculate and transport equalitiesL63–63
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L63
rewrite hrzero
15Use earlier factsL64–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
apply mul_zero_left
16Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
17Calculate and transport equalitiesL66–67
18Use earlier factsL68–73
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 73 lines
- 0001
intro n - 0002
intro p - 0003
intro r - 0004
intro b - 0005
intro c - 0006
intro l - 0007
intro hf - 0008
intro hlast - 0009
intro heq - 0010
cases hf - 0011
cases hf_right - 0012
have hd : exists q R. ((((exists ff_h_pfp_cancel_decoded. ff_h_pfp_cancel_decoded + S (q) = S ((S (l)) * c)) /\ exists ff_q_pfp_cancel_decoded. b = ff_q_pfp_cancel_decoded * S ((S (l)) * c) + (q))) /\ (((exists ff_u_fsat_cancel_product ff_v_fsat_cancel_product. ((((exists ff_h_fsat_cancel_product_start. ff_h_fsat_cancel_product_start + S (1) = S ((S (0)) * ff_v_fsat_cancel_product)) /\ exists ff_q_fsat_cancel_product_start. ff_u_fsat_cancel_product = ff_q_fsat_cancel_product_start * S ((S (0)) * ff_v_fsat_cancel_product) + (1))) /\ ((((exists ff_h_fsat_cancel_product_terminal. ff_h_fsat_cancel_product_terminal + S (R) = S ((S (l)) * ff_v_fsat_cancel_product)) /\ exists ff_q_fsat_cancel_product_terminal. ff_u_fsat_cancel_product = ff_q_fsat_cancel_product_terminal * S ((S (l)) * ff_v_fsat_cancel_product) + (R))) /\ forall ff_i_fsat_cancel_product. (exists ff_lt_fsat_cancel_product_bound. ff_lt_fsat_cancel_product_bound + S ff_i_fsat_cancel_product = l) -> exists ff_p_fsat_cancel_product ff_r_fsat_cancel_product ff_s_fsat_cancel_product. ((((exists ff_h_fsat_cancel_product_factor. ff_h_fsat_cancel_product_factor + S (ff_p_fsat_cancel_product) = S ((S (ff_i_fsat_cancel_product)) * c)) /\ exists ff_q_fsat_cancel_product_factor. b = ff_q_fsat_cancel_product_factor * S ((S (ff_i_fsat_cancel_product)) * c) + (ff_p_fsat_cancel_product))) /\ ((((exists ff_h_fsat_cancel_product_partial. ff_h_fsat_cancel_product_partial + S (ff_r_fsat_cancel_product) = S ((S (ff_i_fsat_cancel_product)) * ff_v_fsat_cancel_product)) /\ exists ff_q_fsat_cancel_product_partial. ff_u_fsat_cancel_product = ff_q_fsat_cancel_product_partial * S ((S (ff_i_fsat_cancel_product)) * ff_v_fsat_cancel_product) + (ff_r_fsat_cancel_product))) /\ ((((exists ff_h_fsat_cancel_product_successor. ff_h_fsat_cancel_product_successor + S (ff_s_fsat_cancel_product) = S ((S (S ff_i_fsat_cancel_product)) * ff_v_fsat_cancel_product)) /\ exists ff_q_fsat_cancel_product_successor. ff_u_fsat_cancel_product = ff_q_fsat_cancel_product_successor * S ((S (S ff_i_fsat_cancel_product)) * ff_v_fsat_cancel_product) + (ff_s_fsat_cancel_product))) /\ ff_s_fsat_cancel_product = ff_r_fsat_cancel_product * ff_p_fsat_cancel_product)))))) /\ (n = R * q)))) - 0013
specialize beta_product_succ_decompose (b) - 0014
specialize beta_product_succ_decompose (c) - 0015
specialize beta_product_succ_decompose (l) - 0016
specialize beta_product_succ_decompose (n) - 0017
apply beta_product_succ_decompose - 0018
exact hf_right_left - 0019
cases hd - 0020
cases hd_witness - 0021
cases hd_witness_witness - 0022
cases hd_witness_witness_right - 0023
have hfactor : x = p - 0024
specialize beta_at_unique (b) - 0025
specialize beta_at_unique (c) - 0026
specialize beta_at_unique (l) - 0027
specialize beta_at_unique (x) - 0028
specialize beta_at_unique (p) - 0029
apply beta_at_unique - 0030
exact hd_witness_witness_left - 0031
exact hlast - 0032
rewrite hfactor at hd_witness_witness_right_right - 0033
have hpzero : ~(p = 0) - 0034
intro hzero - 0035
specialize prime_nonzero (p) - 0036
apply prime_nonzero - 0037
specialize factor_permutation_all_prime_entry (b) - 0038
specialize factor_permutation_all_prime_entry (c) - 0039
specialize factor_permutation_all_prime_entry (S l) - 0040
specialize factor_permutation_all_prime_entry (l) - 0041
specialize factor_permutation_all_prime_entry (p) - 0042
apply factor_permutation_all_prime_entry - 0043
exact hf_right_right - 0044
specialize le_refl (S l) - 0045
apply le_refl - 0046
exact hlast - 0047
exact hzero - 0048
have hquotient : x1 = r - 0049
specialize mul_right_cancel_nonzero (x1) - 0050
specialize mul_right_cancel_nonzero (r) - 0051
specialize mul_right_cancel_nonzero (p) - 0052
apply mul_right_cancel_nonzero - 0053
exact hpzero - 0054
trans n - 0055
symm - 0056
exact hd_witness_witness_right_right - 0057
exact heq - 0058
split - 0059
intro hrzero - 0060
apply hf_left - 0061
trans r * p - 0062
exact heq - 0063
rewrite hrzero - 0064
apply mul_zero_left - 0065
split - 0066
rewrite hquotient at hd_witness_witness_right_left - 0067
rewrite hquotient at hd_witness_witness_right_left - 0068
exact hd_witness_witness_right_left - 0069
specialize all_prime_succ_elim_prefix (b) - 0070
specialize all_prime_succ_elim_prefix (c) - 0071
specialize all_prime_succ_elim_prefix (l) - 0072
apply all_prime_succ_elim_prefix - 0073
exact hf_right_right