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. ∀ w. (∀ x. Lt(x,w) → ∃ y. BetaAt(b,c,x,y) ∧ (x = 0 ∧ y = 1 ∨ (∃ z. x = S z ∧ y = 0))) → ∃ x. ∃ y. ∀ z. Lt(z,S w) → ∃ n. BetaAt(x,y,z,n) ∧ (z = 0 ∧ n = 1 ∨ (∃ m. z = S m ∧ n = 0))Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.
Definitions used by this theorem
In the theorem statement
4 occurrences
In local proof propositions
4 occurrences
Exact expanded native-PA statement
forall b c w. (forall bcf_index_bpzre_before. (exists bcf_lt_gap_bpzre_before_bound. bcf_lt_gap_bpzre_before_bound + S (bcf_index_bpzre_before) = w) -> exists bcf_value_bpzre_before. ((((exists bcf_height_bpzre_before_entry. bcf_height_bpzre_before_entry + S (bcf_value_bpzre_before) = S ((S (bcf_index_bpzre_before)) * c)) /\ exists bcf_quotient_bpzre_before_entry. b = bcf_quotient_bpzre_before_entry * S ((S (bcf_index_bpzre_before)) * c) + (bcf_value_bpzre_before))) /\ ((bcf_index_bpzre_before = 0 /\ bcf_value_bpzre_before = 1) \/ exists bcf_predecessor_bpzre_before. bcf_index_bpzre_before = S bcf_predecessor_bpzre_before /\ bcf_value_bpzre_before = 0))) -> exists d e. (forall bcf_index_bpzre_after. (exists bcf_lt_gap_bpzre_after_bound. bcf_lt_gap_bpzre_after_bound + S (bcf_index_bpzre_after) = S (w)) -> exists bcf_value_bpzre_after. ((((exists bcf_height_bpzre_after_entry. bcf_height_bpzre_after_entry + S (bcf_value_bpzre_after) = S ((S (bcf_index_bpzre_after)) * e)) /\ exists bcf_quotient_bpzre_after_entry. d = bcf_quotient_bpzre_after_entry * S ((S (bcf_index_bpzre_after)) * e) + (bcf_value_bpzre_after))) /\ ((bcf_index_bpzre_after = 0 /\ bcf_value_bpzre_after = 1) \/ exists bcf_predecessor_bpzre_after. bcf_index_bpzre_after = S bcf_predecessor_bpzre_after /\ bcf_value_bpzre_after = 0)))Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.
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–4
02Use earlier factsL5–5
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L5
specialize zero_or_succ w
03Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
cases zero_or_succ
04Use earlier factsL7–10
05Separate the logical casesL11–13
06Construct an explicit witnessL14–15
07Fix variables and assumptionsL16–17
08Establish hsplitL18–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
09Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hsplit
10Construct an explicit witnessL24–24
Supply the displayed value, then prove that it has the required property.
- L24
exists 1
11Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
split
12Calculate and transport equalitiesL26–27
13Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact beta_prefix_extend_witness_witness_left
14Separate the logical casesL29–30
15Calculate and transport equalitiesL31–31
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L31
trans w
16Use earlier factsL32–33
17Calculate and transport equalitiesL34–34
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L34
refl
18Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
specialize hrow i
19Establish holdL36–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow.
- L36
have hold : ∃ value. BetaAt(b,c,i,value) ∧ (i = 0 ∧ value = 1 ∨ (∃ x. i = S x ∧ value = 0))Definitions: BetaAt(b,c,i,value)Original native command in the exact edition - L37
apply hrow - L38
exact hsplit_right
20Separate the logical casesL39–40
21Construct an explicit witnessL41–41
Supply the displayed value, then prove that it has the required property.
- L41
exists x2
22Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
23Use earlier factsL43–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
24Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
cases zero_or_succ_right
25Use earlier factsL50–53
26Separate the logical casesL54–56
27Construct an explicit witnessL57–58
28Fix variables and assumptionsL59–60
29Establish hsplitL61–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
30Separate the logical casesL66–66
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L66
cases hsplit
31Construct an explicit witnessL67–67
Supply the displayed value, then prove that it has the required property.
- L67
exists 0
32Separate the logical casesL68–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L68
split
33Calculate and transport equalitiesL69–70
34Use earlier factsL71–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
exact beta_prefix_extend_witness_witness_left
35Separate the logical casesL72–72
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L72
right
36Construct an explicit witnessL73–73
Supply the displayed value, then prove that it has the required property.
- L73
exists x
37Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
split
38Calculate and transport equalitiesL75–75
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L75
trans w
39Use earlier factsL76–77
40Calculate and transport equalitiesL78–78
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L78
refl
41Use earlier factsL79–79
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
specialize hrow i
42Establish holdL80–82
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow.
- L80
have hold : ∃ value. BetaAt(b,c,i,value) ∧ (i = 0 ∧ value = 1 ∨ (∃ x. i = S x ∧ value = 0))Definitions: BetaAt(b,c,i,value)Original native command in the exact edition - L81
apply hrow - L82
exact hsplit_right
43Separate the logical casesL83–84
44Construct an explicit witnessL85–85
Supply the displayed value, then prove that it has the required property.
- L85
exists x3
45Separate the logical casesL86–86
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L86
split
46Use earlier factsL87–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 92 lines
- 0001
intro b - 0002
intro c - 0003
intro w - 0004
intro hrow - 0005
specialize zero_or_succ w - 0006
cases zero_or_succ - 0007
specialize beta_prefix_extend w - 0008
specialize beta_prefix_extend b - 0009
specialize beta_prefix_extend c - 0010
specialize beta_prefix_extend 1 - 0011
cases beta_prefix_extend - 0012
cases beta_prefix_extend_witness - 0013
cases beta_prefix_extend_witness_witness - 0014
exists x - 0015
exists x1 - 0016
intro i - 0017
intro hi - 0018
have hsplit : i = w ∨ Lt(i,w)Exact native replay line
have hsplit : i = w \/ exists gap. gap + S i = w - 0019
specialize finite_lt_succ_eq_or_lt w - 0020
specialize finite_lt_succ_eq_or_lt i - 0021
apply finite_lt_succ_eq_or_lt - 0022
exact hi - 0023
cases hsplit - 0024
exists 1 - 0025
split - 0026
rewrite hsplit_left - 0027
rewrite hsplit_left - 0028
exact beta_prefix_extend_witness_witness_left - 0029
left - 0030
split - 0031
trans w - 0032
exact hsplit_left - 0033
exact zero_or_succ_left - 0034
refl - 0035
specialize hrow i - 0036
have hold : ∃ value. BetaAt(b,c,i,value) ∧ (i = 0 ∧ value = 1 ∨ (∃ x. i = S x ∧ value = 0))Exact native replay line
have hold : exists value. (((exists height. height + S value = S ((S i) * c)) /\ exists quotient. b = quotient * S ((S i) * c) + value) /\ ((i = 0 /\ value = 1) \/ exists predecessor. i = S predecessor /\ value = 0)) - 0037
apply hrow - 0038
exact hsplit_right - 0039
cases hold - 0040
cases hold_witness - 0041
exists x2 - 0042
split - 0043
specialize beta_prefix_extend_witness_witness_right i - 0044
specialize beta_prefix_extend_witness_witness_right x2 - 0045
apply beta_prefix_extend_witness_witness_right - 0046
exact hsplit_right - 0047
exact hold_witness_left - 0048
exact hold_witness_right - 0049
cases zero_or_succ_right - 0050
specialize beta_prefix_extend w - 0051
specialize beta_prefix_extend b - 0052
specialize beta_prefix_extend c - 0053
specialize beta_prefix_extend 0 - 0054
cases beta_prefix_extend - 0055
cases beta_prefix_extend_witness - 0056
cases beta_prefix_extend_witness_witness - 0057
exists x1 - 0058
exists x2 - 0059
intro i - 0060
intro hi - 0061
have hsplit : i = w ∨ Lt(i,w)Exact native replay line
have hsplit : i = w \/ exists gap. gap + S i = w - 0062
specialize finite_lt_succ_eq_or_lt w - 0063
specialize finite_lt_succ_eq_or_lt i - 0064
apply finite_lt_succ_eq_or_lt - 0065
exact hi - 0066
cases hsplit - 0067
exists 0 - 0068
split - 0069
rewrite hsplit_left - 0070
rewrite hsplit_left - 0071
exact beta_prefix_extend_witness_witness_left - 0072
right - 0073
exists x - 0074
split - 0075
trans w - 0076
exact hsplit_left - 0077
exact zero_or_succ_right_witness - 0078
refl - 0079
specialize hrow i - 0080
have hold : ∃ value. BetaAt(b,c,i,value) ∧ (i = 0 ∧ value = 1 ∨ (∃ x. i = S x ∧ value = 0))Exact native replay line
have hold : exists value. (((exists height. height + S value = S ((S i) * c)) /\ exists quotient. b = quotient * S ((S i) * c) + value) /\ ((i = 0 /\ value = 1) \/ exists predecessor. i = S predecessor /\ value = 0)) - 0081
apply hrow - 0082
exact hsplit_right - 0083
cases hold - 0084
cases hold_witness - 0085
exists x3 - 0086
split - 0087
specialize beta_prefix_extend_witness_witness_right i - 0088
specialize beta_prefix_extend_witness_witness_right x3 - 0089
apply beta_prefix_extend_witness_witness_right - 0090
exact hsplit_right - 0091
exact hold_witness_left - 0092
exact hold_witness_right