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
∀ pb. ∀ pc. ∀ b. ∀ c. ∀ w. (∀ x. Lt(x,w) → ∃ y. BetaAt(b,c,x,y) ∧ (x = 0 ∧ y = 1 ∨ (∃ z. ∃ n. ∃ m. x = S z ∧ (BetaAt(pb,pc,z,n) ∧ (BetaAt(pb,pc,S z,m) ∧ y = n + m))))) → ∃ x. ∃ y. ∀ z. Lt(z,S w) → ∃ n. BetaAt(x,y,z,n) ∧ (z = 0 ∧ n = 1 ∨ (∃ m. ∃ k. ∃ i. z = S m ∧ (BetaAt(pb,pc,m,k) ∧ (BetaAt(pb,pc,S m,i) ∧ n = k + i))))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
8 occurrences
In local proof propositions
10 occurrences
Exact expanded native-PA statement
forall pb pc b c w. (forall bcf_index_bpsre_before. (exists bcf_lt_gap_bpsre_before_bound. bcf_lt_gap_bpsre_before_bound + S (bcf_index_bpsre_before) = w) -> exists bcf_value_bpsre_before. ((((exists bcf_height_bpsre_before_entry. bcf_height_bpsre_before_entry + S (bcf_value_bpsre_before) = S ((S (bcf_index_bpsre_before)) * c)) /\ exists bcf_quotient_bpsre_before_entry. b = bcf_quotient_bpsre_before_entry * S ((S (bcf_index_bpsre_before)) * c) + (bcf_value_bpsre_before))) /\ ((bcf_index_bpsre_before = 0 /\ bcf_value_bpsre_before = 1) \/ exists bcf_predecessor_bpsre_before bcf_left_bpsre_before bcf_right_bpsre_before. bcf_index_bpsre_before = S bcf_predecessor_bpsre_before /\ ((((exists bcf_height_bpsre_before_previous_left. bcf_height_bpsre_before_previous_left + S (bcf_left_bpsre_before) = S ((S (bcf_predecessor_bpsre_before)) * pc)) /\ exists bcf_quotient_bpsre_before_previous_left. pb = bcf_quotient_bpsre_before_previous_left * S ((S (bcf_predecessor_bpsre_before)) * pc) + (bcf_left_bpsre_before))) /\ ((((exists bcf_height_bpsre_before_previous_right. bcf_height_bpsre_before_previous_right + S (bcf_right_bpsre_before) = S ((S (S (bcf_predecessor_bpsre_before))) * pc)) /\ exists bcf_quotient_bpsre_before_previous_right. pb = bcf_quotient_bpsre_before_previous_right * S ((S (S (bcf_predecessor_bpsre_before))) * pc) + (bcf_right_bpsre_before))) /\ bcf_value_bpsre_before = bcf_left_bpsre_before + bcf_right_bpsre_before))))) -> exists d e. (forall bcf_index_bpsre_after. (exists bcf_lt_gap_bpsre_after_bound. bcf_lt_gap_bpsre_after_bound + S (bcf_index_bpsre_after) = S (w)) -> exists bcf_value_bpsre_after. ((((exists bcf_height_bpsre_after_entry. bcf_height_bpsre_after_entry + S (bcf_value_bpsre_after) = S ((S (bcf_index_bpsre_after)) * e)) /\ exists bcf_quotient_bpsre_after_entry. d = bcf_quotient_bpsre_after_entry * S ((S (bcf_index_bpsre_after)) * e) + (bcf_value_bpsre_after))) /\ ((bcf_index_bpsre_after = 0 /\ bcf_value_bpsre_after = 1) \/ exists bcf_predecessor_bpsre_after bcf_left_bpsre_after bcf_right_bpsre_after. bcf_index_bpsre_after = S bcf_predecessor_bpsre_after /\ ((((exists bcf_height_bpsre_after_previous_left. bcf_height_bpsre_after_previous_left + S (bcf_left_bpsre_after) = S ((S (bcf_predecessor_bpsre_after)) * pc)) /\ exists bcf_quotient_bpsre_after_previous_left. pb = bcf_quotient_bpsre_after_previous_left * S ((S (bcf_predecessor_bpsre_after)) * pc) + (bcf_left_bpsre_after))) /\ ((((exists bcf_height_bpsre_after_previous_right. bcf_height_bpsre_after_previous_right + S (bcf_right_bpsre_after) = S ((S (S (bcf_predecessor_bpsre_after))) * pc)) /\ exists bcf_quotient_bpsre_after_previous_right. pb = bcf_quotient_bpsre_after_previous_right * S ((S (S (bcf_predecessor_bpsre_after))) * pc) + (bcf_right_bpsre_after))) /\ bcf_value_bpsre_after = bcf_left_bpsre_after + bcf_right_bpsre_after)))))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 (4)
01Fix variables and assumptionsL1–6
02Use earlier factsL7–7
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L7
specialize zero_or_succ w
03Separate the logical casesL8–8
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L8
cases zero_or_succ
04Use earlier factsL9–12
05Separate the logical casesL13–15
06Construct an explicit witnessL16–17
07Fix variables and assumptionsL18–19
08Establish hsplitL20–24
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 casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
cases hsplit
10Construct an explicit witnessL26–26
Supply the displayed value, then prove that it has the required property.
- L26
exists 1
11Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
split
12Calculate and transport equalitiesL28–29
13Use earlier factsL30–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
exact beta_prefix_extend_witness_witness_left
14Separate the logical casesL31–32
15Calculate and transport equalitiesL33–33
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L33
trans w
16Use earlier factsL34–35
17Calculate and transport equalitiesL36–36
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L36
refl
18Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
specialize hrow i
19Establish holdL38–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow.
- L38
have hold : ∃ value. BetaAt(b,c,i,value) ∧ (i = 0 ∧ value = 1 ∨ (∃ x. ∃ y. ∃ z. i = S x ∧ (BetaAt(pb,pc,x,y) ∧ (BetaAt(pb,pc,S x,z) ∧ value = y + z))))Definitions: BetaAt(b,c,i,value)BetaAt(pb,pc,x,y)BetaAt(pb,pc,S x,z)Original native command in the exact edition - L39
apply hrow - L40
exact hsplit_right
20Separate the logical casesL41–42
21Construct an explicit witnessL43–43
Supply the displayed value, then prove that it has the required property.
- L43
exists x2
22Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
23Use earlier factsL45–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
24Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
cases zero_or_succ_right
25Establish hleftL52–56
Establish this local claim before using it. It is not an additional assumption.
- L52
have hleft : ∃ u. BetaAt(pb,pc,x,u)Definitions: BetaAt(pb,pc,x,u)Original native command in the exact edition - L53
specialize beta_at_exists pb - L54
specialize beta_at_exists pc - L55
specialize beta_at_exists x - L56
exact beta_at_exists
26Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
cases hleft
27Establish hrightL58–62
Establish this local claim before using it. It is not an additional assumption.
- L58
have hright : ∃ v. BetaAt(pb,pc,S x,v)Definitions: BetaAt(pb,pc,S x,v)Original native command in the exact edition - L59
specialize beta_at_exists pb - L60
specialize beta_at_exists pc - L61
specialize beta_at_exists (S x) - L62
exact beta_at_exists
28Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
cases hright
29Use earlier factsL64–67
30Separate the logical casesL68–70
31Construct an explicit witnessL71–72
32Fix variables and assumptionsL73–74
33Establish hsplitL75–79
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
34Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
cases hsplit
35Construct an explicit witnessL81–81
Supply the displayed value, then prove that it has the required property.
- L81
exists x1 + x2
36Separate the logical casesL82–82
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L82
split
37Calculate and transport equalitiesL83–84
38Use earlier factsL85–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L85
exact beta_prefix_extend_witness_witness_left
39Separate the logical casesL86–86
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L86
right
40Construct an explicit witnessL87–89
41Separate the logical casesL90–90
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L90
split
42Calculate and transport equalitiesL91–91
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L91
trans w
43Use earlier factsL92–93
44Separate the logical casesL94–94
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L94
split
45Use earlier factsL95–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L95
exact hleft_witness
46Separate the logical casesL96–96
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L96
split
47Use earlier factsL97–97
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L97
exact hright_witness
48Calculate and transport equalitiesL98–98
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L98
refl
49Use earlier factsL99–99
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L99
specialize hrow i
50Establish holdL100–102
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow.
- L100
have hold : ∃ value. BetaAt(b,c,i,value) ∧ (i = 0 ∧ value = 1 ∨ (∃ x. ∃ y. ∃ z. i = S x ∧ (BetaAt(pb,pc,x,y) ∧ (BetaAt(pb,pc,S x,z) ∧ value = y + z))))Definitions: BetaAt(b,c,i,value)BetaAt(pb,pc,x,y)BetaAt(pb,pc,S x,z)Original native command in the exact edition - L101
apply hrow - L102
exact hsplit_right
51Separate the logical casesL103–104
52Construct an explicit witnessL105–105
Supply the displayed value, then prove that it has the required property.
- L105
exists x5
53Separate the logical casesL106–106
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L106
split
54Use earlier factsL107–112
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 112 lines
- 0001
intro pb - 0002
intro pc - 0003
intro b - 0004
intro c - 0005
intro w - 0006
intro hrow - 0007
specialize zero_or_succ w - 0008
cases zero_or_succ - 0009
specialize beta_prefix_extend w - 0010
specialize beta_prefix_extend b - 0011
specialize beta_prefix_extend c - 0012
specialize beta_prefix_extend 1 - 0013
cases beta_prefix_extend - 0014
cases beta_prefix_extend_witness - 0015
cases beta_prefix_extend_witness_witness - 0016
exists x - 0017
exists x1 - 0018
intro i - 0019
intro hi - 0020
have hsplit : i = w ∨ Lt(i,w)Exact native replay line
have hsplit : i = w \/ exists gap. gap + S i = w - 0021
specialize finite_lt_succ_eq_or_lt w - 0022
specialize finite_lt_succ_eq_or_lt i - 0023
apply finite_lt_succ_eq_or_lt - 0024
exact hi - 0025
cases hsplit - 0026
exists 1 - 0027
split - 0028
rewrite hsplit_left - 0029
rewrite hsplit_left - 0030
exact beta_prefix_extend_witness_witness_left - 0031
left - 0032
split - 0033
trans w - 0034
exact hsplit_left - 0035
exact zero_or_succ_left - 0036
refl - 0037
specialize hrow i - 0038
have hold : ∃ value. BetaAt(b,c,i,value) ∧ (i = 0 ∧ value = 1 ∨ (∃ x. ∃ y. ∃ z. i = S x ∧ (BetaAt(pb,pc,x,y) ∧ (BetaAt(pb,pc,S x,z) ∧ value = y + z))))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 p u v. i = S p /\ (((exists h. h + S u = S ((S p) * pc)) /\ exists q. pb = q * S ((S p) * pc) + u) /\ (((exists h. h + S v = S ((S (S p)) * pc)) /\ exists q. pb = q * S ((S (S p)) * pc) + v) /\ value = u + v)))) - 0039
apply hrow - 0040
exact hsplit_right - 0041
cases hold - 0042
cases hold_witness - 0043
exists x2 - 0044
split - 0045
specialize beta_prefix_extend_witness_witness_right i - 0046
specialize beta_prefix_extend_witness_witness_right x2 - 0047
apply beta_prefix_extend_witness_witness_right - 0048
exact hsplit_right - 0049
exact hold_witness_left - 0050
exact hold_witness_right - 0051
cases zero_or_succ_right - 0052
have hleft : ∃ u. BetaAt(pb,pc,x,u)Exact native replay line
have hleft : exists u. ((exists h. h + S u = S ((S x) * pc)) /\ exists q. pb = q * S ((S x) * pc) + u) - 0053
specialize beta_at_exists pb - 0054
specialize beta_at_exists pc - 0055
specialize beta_at_exists x - 0056
exact beta_at_exists - 0057
cases hleft - 0058
have hright : ∃ v. BetaAt(pb,pc,S x,v)Exact native replay line
have hright : exists v. ((exists h. h + S v = S ((S (S x)) * pc)) /\ exists q. pb = q * S ((S (S x)) * pc) + v) - 0059
specialize beta_at_exists pb - 0060
specialize beta_at_exists pc - 0061
specialize beta_at_exists (S x) - 0062
exact beta_at_exists - 0063
cases hright - 0064
specialize beta_prefix_extend w - 0065
specialize beta_prefix_extend b - 0066
specialize beta_prefix_extend c - 0067
specialize beta_prefix_extend (x1 + x2) - 0068
cases beta_prefix_extend - 0069
cases beta_prefix_extend_witness - 0070
cases beta_prefix_extend_witness_witness - 0071
exists x3 - 0072
exists x4 - 0073
intro i - 0074
intro hi - 0075
have hsplit : i = w ∨ Lt(i,w)Exact native replay line
have hsplit : i = w \/ exists gap. gap + S i = w - 0076
specialize finite_lt_succ_eq_or_lt w - 0077
specialize finite_lt_succ_eq_or_lt i - 0078
apply finite_lt_succ_eq_or_lt - 0079
exact hi - 0080
cases hsplit - 0081
exists x1 + x2 - 0082
split - 0083
rewrite hsplit_left - 0084
rewrite hsplit_left - 0085
exact beta_prefix_extend_witness_witness_left - 0086
right - 0087
exists x - 0088
exists x1 - 0089
exists x2 - 0090
split - 0091
trans w - 0092
exact hsplit_left - 0093
exact zero_or_succ_right_witness - 0094
split - 0095
exact hleft_witness - 0096
split - 0097
exact hright_witness - 0098
refl - 0099
specialize hrow i - 0100
have hold : ∃ value. BetaAt(b,c,i,value) ∧ (i = 0 ∧ value = 1 ∨ (∃ x. ∃ y. ∃ z. i = S x ∧ (BetaAt(pb,pc,x,y) ∧ (BetaAt(pb,pc,S x,z) ∧ value = y + z))))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 p u v. i = S p /\ (((exists h. h + S u = S ((S p) * pc)) /\ exists q. pb = q * S ((S p) * pc) + u) /\ (((exists h. h + S v = S ((S (S p)) * pc)) /\ exists q. pb = q * S ((S (S p)) * pc) + v) /\ value = u + v)))) - 0101
apply hrow - 0102
exact hsplit_right - 0103
cases hold - 0104
cases hold_witness - 0105
exists x5 - 0106
split - 0107
specialize beta_prefix_extend_witness_witness_right i - 0108
specialize beta_prefix_extend_witness_witness_right x5 - 0109
apply beta_prefix_extend_witness_witness_right - 0110
exact hsplit_right - 0111
exact hold_witness_left - 0112
exact hold_witness_right