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. ∀ 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. ∀ y. Lt(x,S S l) → BetaAt(z,d,x,y) → x = S l ∧ y = e ∨ (x = l ∧ y = a ∨ Lt(x,l) ∧ BetaAt(b,c,x,y))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
9 occurrences
In local proof propositions
4 occurrences
Exact expanded native-PA statement
forall b c z d l a e. (((((exists wpo_beta_height_reflect_trace_first. wpo_beta_height_reflect_trace_first + S (a) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_reflect_trace_first. z = wpo_beta_quotient_reflect_trace_first * S ((S (l)) * d) + (a))) /\ ((((exists wpo_beta_height_reflect_trace_second. wpo_beta_height_reflect_trace_second + S (e) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_reflect_trace_second. z = wpo_beta_quotient_reflect_trace_second * S ((S (S (l))) * d) + (e))) /\ (forall wpo_old_index_reflect_trace wpo_old_value_reflect_trace. (exists wpo_gap_reflect_trace_old_bound. wpo_gap_reflect_trace_old_bound + S (wpo_old_index_reflect_trace) = l) -> (((exists wpo_beta_height_reflect_trace_old_entry. wpo_beta_height_reflect_trace_old_entry + S (wpo_old_value_reflect_trace) = S ((S (wpo_old_index_reflect_trace)) * c)) /\ exists wpo_beta_quotient_reflect_trace_old_entry. b = wpo_beta_quotient_reflect_trace_old_entry * S ((S (wpo_old_index_reflect_trace)) * c) + (wpo_old_value_reflect_trace))) -> (((exists wpo_beta_height_reflect_trace_new_entry. wpo_beta_height_reflect_trace_new_entry + S (wpo_old_value_reflect_trace) = S ((S (wpo_old_index_reflect_trace)) * d)) /\ exists wpo_beta_quotient_reflect_trace_new_entry. z = wpo_beta_quotient_reflect_trace_new_entry * S ((S (wpo_old_index_reflect_trace)) * d) + (wpo_old_value_reflect_trace))))))) -> forall i v. (exists wpo_gap_reflect_new_bound. wpo_gap_reflect_new_bound + S (i) = S (S l)) -> (((exists wpo_beta_height_reflect_new_entry. wpo_beta_height_reflect_new_entry + S (v) = S ((S (i)) * d)) /\ exists wpo_beta_quotient_reflect_new_entry. z = wpo_beta_quotient_reflect_new_entry * S ((S (i)) * d) + (v))) -> (((i = S (l) /\ v = e) \/ ((i = l /\ v = a) \/ ((exists wpo_gap_reflect_result_old_bound. wpo_gap_reflect_result_old_bound + S (i) = l) /\ (((exists wpo_beta_height_reflect_result_old_entry. wpo_beta_height_reflect_result_old_entry + S (v) = S ((S (i)) * c)) /\ exists wpo_beta_quotient_reflect_result_old_entry. b = wpo_beta_quotient_reflect_result_old_entry * S ((S (i)) * c) + (v)))))))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–8
02Separate the logical casesL9–10
03Fix variables and assumptionsL11–14
04Establish htopL15–19
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 casesL20–22
06Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact htop_left
07Establish hiveL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Use earlier factsL34–35
09Establish hmiddleL36–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
10Separate the logical casesL41–44
11Use earlier factsL45–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact hmiddle_left
12Establish hivaL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
13Use earlier factsL56–57
14Establish holdL58–62
Establish this local claim before using it. It is not an additional assumption.
- L58
have hold : ∃ w. BetaAt(b,c,i,w)Definitions: BetaAt(b,c,i,w)Original native command in the exact edition - L59
specialize beta_at_exists b - L60
specialize beta_at_exists c - L61
specialize beta_at_exists i - L62
exact beta_at_exists
15Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
cases hold
16Establish hnew_oldL64–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply htrace right right.
- L64
have hnew_old : BetaAt(z,d,i,x)Definitions: BetaAt(z,d,i,x)Original native command in the exact edition - L65
specialize htrace_right_right i - L66
specialize htrace_right_right x - L67
apply htrace_right_right - L68
exact hmiddle_right - L69
exact hold_witness
17Establish hivxL70–78
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
18Separate the logical casesL79–81
19Use earlier factsL82–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
exact hmiddle_right
20Calculate and transport equalitiesL83–84
21Use earlier factsL85–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L85
exact hold_witness
Original defined command ledger · 85 lines
- 0001
intro b - 0002
intro c - 0003
intro z - 0004
intro d - 0005
intro l - 0006
intro a - 0007
intro e - 0008
intro htrace - 0009
cases htrace - 0010
cases htrace_right - 0011
intro i - 0012
intro v - 0013
intro hi - 0014
intro hentry - 0015
have htop : i = S l ∨ Lt(i,S l)Exact native replay line
have htop : i = S l \/ exists h. h + S i = S l - 0016
specialize finite_lt_succ_eq_or_lt (S l) - 0017
specialize finite_lt_succ_eq_or_lt i - 0018
apply finite_lt_succ_eq_or_lt - 0019
exact hi - 0020
cases htop - 0021
left - 0022
split - 0023
exact htop_left - 0024
have hive : v = e - 0025
specialize beta_at_unique z - 0026
specialize beta_at_unique d - 0027
specialize beta_at_unique (S l) - 0028
specialize beta_at_unique v - 0029
specialize beta_at_unique e - 0030
apply beta_at_unique - 0031
rewrite htop_left at hentry - 0032
rewrite htop_left at hentry - 0033
exact hentry - 0034
exact htrace_right_left - 0035
exact hive - 0036
have hmiddle : i = l ∨ Lt(i,l)Exact native replay line
have hmiddle : i = l \/ exists h. h + S i = l - 0037
specialize finite_lt_succ_eq_or_lt l - 0038
specialize finite_lt_succ_eq_or_lt i - 0039
apply finite_lt_succ_eq_or_lt - 0040
exact htop_right - 0041
cases hmiddle - 0042
right - 0043
left - 0044
split - 0045
exact hmiddle_left - 0046
have hiva : v = a - 0047
specialize beta_at_unique z - 0048
specialize beta_at_unique d - 0049
specialize beta_at_unique l - 0050
specialize beta_at_unique v - 0051
specialize beta_at_unique a - 0052
apply beta_at_unique - 0053
rewrite hmiddle_left at hentry - 0054
rewrite hmiddle_left at hentry - 0055
exact hentry - 0056
exact htrace_left - 0057
exact hiva - 0058
have hold : ∃ w. BetaAt(b,c,i,w)Exact native replay line
have hold : exists w. (((exists wpo_beta_height_reflect_old_exists_entry. wpo_beta_height_reflect_old_exists_entry + S (w) = S ((S (i)) * c)) /\ exists wpo_beta_quotient_reflect_old_exists_entry. b = wpo_beta_quotient_reflect_old_exists_entry * S ((S (i)) * c) + (w))) - 0059
specialize beta_at_exists b - 0060
specialize beta_at_exists c - 0061
specialize beta_at_exists i - 0062
exact beta_at_exists - 0063
cases hold - 0064
have hnew_old : BetaAt(z,d,i,x)Exact native replay line
have hnew_old : ((exists h. h + S x = S ((S i) * d)) /\ exists q. z = q * S ((S i) * d) + x) - 0065
specialize htrace_right_right i - 0066
specialize htrace_right_right x - 0067
apply htrace_right_right - 0068
exact hmiddle_right - 0069
exact hold_witness - 0070
have hivx : v = x - 0071
specialize beta_at_unique z - 0072
specialize beta_at_unique d - 0073
specialize beta_at_unique i - 0074
specialize beta_at_unique v - 0075
specialize beta_at_unique x - 0076
apply beta_at_unique - 0077
exact hentry - 0078
exact hnew_old - 0079
right - 0080
right - 0081
split - 0082
exact hmiddle_right - 0083
rewrite <- hivx at hold_witness - 0084
rewrite <- hivx at hold_witness - 0085
exact hold_witness