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.
Statement with defined notation
∀ b. ∀ c. ∀ n. ∀ sn. sn = S n → SurjectivePrefix(b,c,n) → BetaAt(b,c,n,n) → SurjectivePrefix(b,c,sn)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
3 occurrences
In local proof propositions
2 occurrences
Exact expanded native-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)))))Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
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
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hsurj.
- L26
have hpre : ContainsPrefix(b,c,n,y)Definitions: ContainsPrefix(b,c,n,y)Original native command in the exact edition - L27
apply hsurj - L28
exact hsplit_right
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 defined 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 ∨ Lt(y,n)Exact native replay line
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 : ContainsPrefix(b,c,n,y)Exact native replay line
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