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 PA statement
forall b c n sn. sn = S n -> (forall fp_value_surj_n. (exists fp_gap_surj_n_value. fp_gap_surj_n_value + S fp_value_surj_n = n) -> exists fp_i_surj_n. ((exists fp_gap_surj_n_index. fp_gap_surj_n_index + S fp_i_surj_n = n) /\ (((exists ff_h_surj_n_entry. ff_h_surj_n_entry + S (fp_value_surj_n) = S ((S (fp_i_surj_n)) * c)) /\ exists ff_q_surj_n_entry. b = ff_q_surj_n_entry * S ((S (fp_i_surj_n)) * c) + (fp_value_surj_n))))) -> (((exists ff_h_last_n. ff_h_last_n + S (n) = S ((S (n)) * c)) /\ exists ff_q_last_n. b = ff_q_last_n * S ((S (n)) * c) + (n))) -> (forall fp_value_surj_succ. (exists fp_gap_surj_succ_value. fp_gap_surj_succ_value + S fp_value_surj_succ = sn) -> exists fp_i_surj_succ. ((exists fp_gap_surj_succ_index. fp_gap_surj_succ_index + S fp_i_surj_succ = sn) /\ (((exists ff_h_surj_succ_entry. ff_h_surj_succ_entry + S (fp_value_surj_succ) = S ((S (fp_i_surj_succ)) * c)) /\ exists ff_q_surj_succ_entry. b = ff_q_surj_succ_entry * S ((S (fp_i_surj_succ)) * c) + (fp_value_surj_succ)))))Structural proof guide
Generated structural guide
A surjective prefix plus its new top value is surjective at successor length.
Use the direct prerequisites finite_lt_succ_eq_or_lt, le_refl, le_succ as previously established PA formulas.
The proof proceeds by case analysis (3), intermediate claims (2), equality transport (4).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Stable checked-use theorem is independently kernel-checked when replayed.
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 (3)
01Fix variables and assumptionsL1–7
02Calculate and transport equalitiesL8–9
03Fix variables and assumptionsL10–11
04Establish hsplitL12–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
05Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
cases hsplit
06Construct an explicit witnessL18–18
Supply the displayed value, then prove that it has the required property.
- L18
exists n
07Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
split
08Use earlier factsL20–21
09Calculate and transport equalitiesL22–23
10Use earlier factsL24–25
11Establish hpreL26–28
12Separate the logical casesL29–30
13Construct an explicit witnessL31–31
Supply the displayed value, then prove that it has the required property.
- L31
exists x
14Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
split
Original exact command ledger · 37 lines
- 0001
intro b - 0002
intro c - 0003
intro n - 0004
intro sn - 0005
intro hsn - 0006
intro hsurj - 0007
intro hlast - 0008
rewrite hsn - 0009
rewrite hsn - 0010
intro y - 0011
intro hy - 0012
have hsplit : y = n \/ exists h. h + S y = n - 0013
specialize finite_lt_succ_eq_or_lt n - 0014
specialize finite_lt_succ_eq_or_lt y - 0015
apply finite_lt_succ_eq_or_lt - 0016
exact hy - 0017
cases hsplit - 0018
exists n - 0019
split - 0020
specialize le_refl (S n) - 0021
exact le_refl - 0022
rewrite hsplit_left - 0023
rewrite hsplit_left - 0024
exact hlast - 0025
specialize hsurj y - 0026
have hpre : exists i. ((exists h. h + S i = n) /\ ((exists h. h + S y = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + y)) - 0027
apply hsurj - 0028
exact hsplit_right - 0029
cases hpre - 0030
cases hpre_witness - 0031
exists x - 0032
split - 0033
specialize le_succ (S x) - 0034
specialize le_succ n - 0035
apply le_succ - 0036
exact hpre_witness_left - 0037
exact hpre_witness_right