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. ∀ z. ∀ d. ∀ l. ∀ n. ∀ a. ∀ e. BetaAt(z,d,l,a) ∧ (BetaAt(z,d,S l,e) ∧ (∀ x. ∀ y. Lt(x,l) → BetaAt(b,c,x,y) → BetaAt(z,d,x,y))) → (∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,n)) → Lt(a,n) → Lt(e,n) → ∀ x. Lt(x,S S l) → ∃ y. BetaAt(z,d,x,y) ∧ Lt(y,n)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
13 occurrences
In local proof propositions
4 occurrences
Exact expanded native-PA statement
forall b c z d l n a e. (((((exists wpo_beta_height_wpoi_append_bounded_trace_first. wpo_beta_height_wpoi_append_bounded_trace_first + S (a) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_wpoi_append_bounded_trace_first. z = wpo_beta_quotient_wpoi_append_bounded_trace_first * S ((S (l)) * d) + (a))) /\ ((((exists wpo_beta_height_wpoi_append_bounded_trace_second. wpo_beta_height_wpoi_append_bounded_trace_second + S (e) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_wpoi_append_bounded_trace_second. z = wpo_beta_quotient_wpoi_append_bounded_trace_second * S ((S (S (l))) * d) + (e))) /\ (forall wpo_old_index_wpoi_append_bounded_trace wpo_old_value_wpoi_append_bounded_trace. (exists wpo_gap_wpoi_append_bounded_trace_old_bound. wpo_gap_wpoi_append_bounded_trace_old_bound + S (wpo_old_index_wpoi_append_bounded_trace) = l) -> (((exists wpo_beta_height_wpoi_append_bounded_trace_old_entry. wpo_beta_height_wpoi_append_bounded_trace_old_entry + S (wpo_old_value_wpoi_append_bounded_trace) = S ((S (wpo_old_index_wpoi_append_bounded_trace)) * c)) /\ exists wpo_beta_quotient_wpoi_append_bounded_trace_old_entry. b = wpo_beta_quotient_wpoi_append_bounded_trace_old_entry * S ((S (wpo_old_index_wpoi_append_bounded_trace)) * c) + (wpo_old_value_wpoi_append_bounded_trace))) -> (((exists wpo_beta_height_wpoi_append_bounded_trace_new_entry. wpo_beta_height_wpoi_append_bounded_trace_new_entry + S (wpo_old_value_wpoi_append_bounded_trace) = S ((S (wpo_old_index_wpoi_append_bounded_trace)) * d)) /\ exists wpo_beta_quotient_wpoi_append_bounded_trace_new_entry. z = wpo_beta_quotient_wpoi_append_bounded_trace_new_entry * S ((S (wpo_old_index_wpoi_append_bounded_trace)) * d) + (wpo_old_value_wpoi_append_bounded_trace))))))) -> (forall fom_index_wpoi_append_bounded_before. (exists fom_gap_wpoi_append_bounded_before_index_bound. fom_gap_wpoi_append_bounded_before_index_bound + S (fom_index_wpoi_append_bounded_before) = l) -> exists fom_value_wpoi_append_bounded_before. ((((exists fom_beta_height_wpoi_append_bounded_before_entry. fom_beta_height_wpoi_append_bounded_before_entry + S (fom_value_wpoi_append_bounded_before) = S ((S (fom_index_wpoi_append_bounded_before)) * c)) /\ exists fom_beta_quotient_wpoi_append_bounded_before_entry. b = fom_beta_quotient_wpoi_append_bounded_before_entry * S ((S (fom_index_wpoi_append_bounded_before)) * c) + (fom_value_wpoi_append_bounded_before))) /\ (exists fom_gap_wpoi_append_bounded_before_value_bound. fom_gap_wpoi_append_bounded_before_value_bound + S (fom_value_wpoi_append_bounded_before) = n))) -> (exists wpo_gap_wpoi_append_first_bound. wpo_gap_wpoi_append_first_bound + S (a) = n) -> (exists wpo_gap_wpoi_append_second_bound. wpo_gap_wpoi_append_second_bound + S (e) = n) -> (forall fom_index_wpoi_append_bounded_after. (exists fom_gap_wpoi_append_bounded_after_index_bound. fom_gap_wpoi_append_bounded_after_index_bound + S (fom_index_wpoi_append_bounded_after) = S (S l)) -> exists fom_value_wpoi_append_bounded_after. ((((exists fom_beta_height_wpoi_append_bounded_after_entry. fom_beta_height_wpoi_append_bounded_after_entry + S (fom_value_wpoi_append_bounded_after) = S ((S (fom_index_wpoi_append_bounded_after)) * d)) /\ exists fom_beta_quotient_wpoi_append_bounded_after_entry. z = fom_beta_quotient_wpoi_append_bounded_after_entry * S ((S (fom_index_wpoi_append_bounded_after)) * d) + (fom_value_wpoi_append_bounded_after))) /\ (exists fom_gap_wpoi_append_bounded_after_value_bound. fom_gap_wpoi_append_bounded_after_value_bound + S (fom_value_wpoi_append_bounded_after) = n)))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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Separate the logical casesL13–14
04Fix variables and assumptionsL15–16
05Establish htopL17–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
06Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
cases htop
07Construct an explicit witnessL23–23
Supply the displayed value, then prove that it has the required property.
- L23
exists e
08Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
split
09Calculate and transport equalitiesL25–26
10Use earlier factsL27–28
11Establish hmiddleL29–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
12Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hmiddle
13Construct an explicit witnessL35–35
Supply the displayed value, then prove that it has the required property.
- L35
exists a
14Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
split
15Calculate and transport equalitiesL37–38
16Use earlier factsL39–40
17Establish hold_entryL41–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hold bounded.
- L41
have hold_entry : ∃ w. BetaAt(b,c,q,w) ∧ Lt(w,n)Definitions: BetaAt(b,c,q,w)Lt(w,n)Original native command in the exact edition - L42
specialize hold_bounded q - L43
apply hold_bounded - L44
exact hmiddle_right
18Separate the logical casesL45–46
19Construct an explicit witnessL47–47
Supply the displayed value, then prove that it has the required property.
- L47
exists x
20Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
Original defined command ledger · 54 lines
- 0001
intro b - 0002
intro c - 0003
intro z - 0004
intro d - 0005
intro l - 0006
intro n - 0007
intro a - 0008
intro e - 0009
intro htrace - 0010
intro hold_bounded - 0011
intro hfirst_bounded - 0012
intro hsecond_bounded - 0013
cases htrace - 0014
cases htrace_right - 0015
intro q - 0016
intro hq - 0017
have htop : q = S l ∨ Lt(q,S l)Exact native replay line
have htop : q = S l \/ exists h. h + S q = S l - 0018
specialize finite_lt_succ_eq_or_lt (S l) - 0019
specialize finite_lt_succ_eq_or_lt q - 0020
apply finite_lt_succ_eq_or_lt - 0021
exact hq - 0022
cases htop - 0023
exists e - 0024
split - 0025
rewrite htop_left - 0026
rewrite htop_left - 0027
exact htrace_right_left - 0028
exact hsecond_bounded - 0029
have hmiddle : q = l ∨ Lt(q,l)Exact native replay line
have hmiddle : q = l \/ exists h. h + S q = l - 0030
specialize finite_lt_succ_eq_or_lt l - 0031
specialize finite_lt_succ_eq_or_lt q - 0032
apply finite_lt_succ_eq_or_lt - 0033
exact htop_right - 0034
cases hmiddle - 0035
exists a - 0036
split - 0037
rewrite hmiddle_left - 0038
rewrite hmiddle_left - 0039
exact htrace_left - 0040
exact hfirst_bounded - 0041
have hold_entry : ∃ w. BetaAt(b,c,q,w) ∧ Lt(w,n)Exact native replay line
have hold_entry : exists w. ((((exists wpo_beta_height_wpoi_append_bounded_old_entry. wpo_beta_height_wpoi_append_bounded_old_entry + S (w) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_wpoi_append_bounded_old_entry. b = wpo_beta_quotient_wpoi_append_bounded_old_entry * S ((S (q)) * c) + (w))) /\ (exists wpo_gap_wpoi_append_bounded_old_value_bound. wpo_gap_wpoi_append_bounded_old_value_bound + S (w) = n)) - 0042
specialize hold_bounded q - 0043
apply hold_bounded - 0044
exact hmiddle_right - 0045
cases hold_entry - 0046
cases hold_entry_witness - 0047
exists x - 0048
split - 0049
specialize htrace_right_right q - 0050
specialize htrace_right_right x - 0051
apply htrace_right_right - 0052
exact hmiddle_right - 0053
exact hold_entry_witness_left - 0054
exact hold_entry_witness_right