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. ∀ d. ∀ e. ∀ f. ∀ g. ∀ l. (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(d,e,x,z) ∧ (BetaAt(f,g,x,n) ∧ (n = 0 ∧ z = y + y ∨ n = 1 ∧ z = S (y + y))))) → (∃ x. ∃ y. ∃ z. BetaAt(b,c,l,x) ∧ (BetaAt(d,e,l,y) ∧ (z = 0 ∧ y = x + x ∨ z = 1 ∧ y = S (x + x)))) → ∃ x. ∃ y. ∀ z. Lt(z,S l) → ∃ n. ∃ m. ∃ k. BetaAt(b,c,z,n) ∧ (BetaAt(d,e,z,m) ∧ (BetaAt(x,y,z,k) ∧ (k = 0 ∧ m = n + n ∨ k = 1 ∧ m = S (n + n))))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
10 occurrences
In local proof propositions
4 occurrences
Exact expanded native-PA statement
forall b c d e f g l. (forall b5cc_index_b5ccpe_before. (exists bcf_lt_gap_b5ccpe_before_bound. bcf_lt_gap_b5ccpe_before_bound + S (b5cc_index_b5ccpe_before) = l) -> exists b5cc_left_b5ccpe_before b5cc_right_b5ccpe_before b5cc_bit_b5ccpe_before. (((exists fs_h_b5cc_b5ccpe_before_left. fs_h_b5cc_b5ccpe_before_left + S (b5cc_left_b5ccpe_before) = S ((S (b5cc_index_b5ccpe_before)) * c)) /\ exists fs_q_b5cc_b5ccpe_before_left. b = fs_q_b5cc_b5ccpe_before_left * S ((S (b5cc_index_b5ccpe_before)) * c) + (b5cc_left_b5ccpe_before))) /\ ((((exists fs_h_b5cc_b5ccpe_before_right. fs_h_b5cc_b5ccpe_before_right + S (b5cc_right_b5ccpe_before) = S ((S (b5cc_index_b5ccpe_before)) * e)) /\ exists fs_q_b5cc_b5ccpe_before_right. d = fs_q_b5cc_b5ccpe_before_right * S ((S (b5cc_index_b5ccpe_before)) * e) + (b5cc_right_b5ccpe_before))) /\ ((((exists fs_h_b5cc_b5ccpe_before_bit. fs_h_b5cc_b5ccpe_before_bit + S (b5cc_bit_b5ccpe_before) = S ((S (b5cc_index_b5ccpe_before)) * g)) /\ exists fs_q_b5cc_b5ccpe_before_bit. f = fs_q_b5cc_b5ccpe_before_bit * S ((S (b5cc_index_b5ccpe_before)) * g) + (b5cc_bit_b5ccpe_before))) /\ (((b5cc_bit_b5ccpe_before = 0 /\ b5cc_right_b5ccpe_before = b5cc_left_b5ccpe_before + b5cc_left_b5ccpe_before) \/ (b5cc_bit_b5ccpe_before = 1 /\ b5cc_right_b5ccpe_before = S (b5cc_left_b5ccpe_before + b5cc_left_b5ccpe_before))))))) -> (exists q Q bit. (((exists fs_h_b5ccpe_last_left. fs_h_b5ccpe_last_left + S (q) = S ((S (l)) * c)) /\ exists fs_q_b5ccpe_last_left. b = fs_q_b5ccpe_last_left * S ((S (l)) * c) + (q))) /\ ((((exists fs_h_b5ccpe_last_right. fs_h_b5ccpe_last_right + S (Q) = S ((S (l)) * e)) /\ exists fs_q_b5ccpe_last_right. d = fs_q_b5ccpe_last_right * S ((S (l)) * e) + (Q))) /\ (((bit = 0 /\ Q = q + q) \/ (bit = 1 /\ Q = S (q + q)))))) -> exists z h. (forall b5cc_index_b5ccpe_after. (exists bcf_lt_gap_b5ccpe_after_bound. bcf_lt_gap_b5ccpe_after_bound + S (b5cc_index_b5ccpe_after) = S l) -> exists b5cc_left_b5ccpe_after b5cc_right_b5ccpe_after b5cc_bit_b5ccpe_after. (((exists fs_h_b5cc_b5ccpe_after_left. fs_h_b5cc_b5ccpe_after_left + S (b5cc_left_b5ccpe_after) = S ((S (b5cc_index_b5ccpe_after)) * c)) /\ exists fs_q_b5cc_b5ccpe_after_left. b = fs_q_b5cc_b5ccpe_after_left * S ((S (b5cc_index_b5ccpe_after)) * c) + (b5cc_left_b5ccpe_after))) /\ ((((exists fs_h_b5cc_b5ccpe_after_right. fs_h_b5cc_b5ccpe_after_right + S (b5cc_right_b5ccpe_after) = S ((S (b5cc_index_b5ccpe_after)) * e)) /\ exists fs_q_b5cc_b5ccpe_after_right. d = fs_q_b5cc_b5ccpe_after_right * S ((S (b5cc_index_b5ccpe_after)) * e) + (b5cc_right_b5ccpe_after))) /\ ((((exists fs_h_b5cc_b5ccpe_after_bit. fs_h_b5cc_b5ccpe_after_bit + S (b5cc_bit_b5ccpe_after) = S ((S (b5cc_index_b5ccpe_after)) * h)) /\ exists fs_q_b5cc_b5ccpe_after_bit. z = fs_q_b5cc_b5ccpe_after_bit * S ((S (b5cc_index_b5ccpe_after)) * h) + (b5cc_bit_b5ccpe_after))) /\ (((b5cc_bit_b5ccpe_after = 0 /\ b5cc_right_b5ccpe_after = b5cc_left_b5ccpe_after + b5cc_left_b5ccpe_after) \/ (b5cc_bit_b5ccpe_after = 1 /\ b5cc_right_b5ccpe_after = S (b5cc_left_b5ccpe_after + b5cc_left_b5ccpe_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 (2)
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–14
03Use earlier factsL15–18
04Separate the logical casesL19–21
05Construct an explicit witnessL22–23
06Fix variables and assumptionsL24–25
07Use earlier factsL26–27
08Establish hsplitL28–30
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 casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hsplit
10Calculate and transport equalitiesL32–37
11Construct an explicit witnessL38–40
12Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
13Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hlast_witness_witness_witness_left
14Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
15Use earlier factsL44–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
exact hlast_witness_witness_witness_right_left
16Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
split
17Use earlier factsL46–47
18Establish holdL48–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.
- L48
have hold : ∃ q. ∃ Q. ∃ bit. BetaAt(b,c,i,q) ∧ (BetaAt(d,e,i,Q) ∧ (BetaAt(f,g,i,bit) ∧ (bit = 0 ∧ Q = q + q ∨ bit = 1 ∧ Q = S (q + q))))Definitions: BetaAt(b,c,i,q)BetaAt(d,e,i,Q)BetaAt(f,g,i,bit)Original native command in the exact edition - L49
specialize hprefix i - L50
apply hprefix - L51
exact hsplit_right
19Separate the logical casesL52–57
20Construct an explicit witnessL58–60
21Separate the logical casesL61–61
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L61
split
22Use earlier factsL62–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L62
exact hold_witness_witness_witness_left
23Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
split
24Use earlier factsL64–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
exact hold_witness_witness_witness_right_left
25Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
26Use earlier factsL66–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 71 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro f - 0006
intro g - 0007
intro l - 0008
intro hprefix - 0009
intro hlast - 0010
cases hlast - 0011
cases hlast_witness - 0012
cases hlast_witness_witness - 0013
cases hlast_witness_witness_witness - 0014
cases hlast_witness_witness_witness_right - 0015
specialize beta_prefix_extend l - 0016
specialize beta_prefix_extend f - 0017
specialize beta_prefix_extend g - 0018
specialize beta_prefix_extend x2 - 0019
cases beta_prefix_extend - 0020
cases beta_prefix_extend_witness - 0021
cases beta_prefix_extend_witness_witness - 0022
exists x3 - 0023
exists x4 - 0024
intro i - 0025
intro hi - 0026
specialize finite_lt_succ_eq_or_lt l - 0027
specialize finite_lt_succ_eq_or_lt i - 0028
have hsplit : i = l ∨ Lt(i,l)Exact native replay line
have hsplit : i = l \/ exists k. k + S i = l - 0029
apply finite_lt_succ_eq_or_lt - 0030
exact hi - 0031
cases hsplit - 0032
rewrite hsplit_left - 0033
rewrite hsplit_left - 0034
rewrite hsplit_left - 0035
rewrite hsplit_left - 0036
rewrite hsplit_left - 0037
rewrite hsplit_left - 0038
exists x - 0039
exists x1 - 0040
exists x2 - 0041
split - 0042
exact hlast_witness_witness_witness_left - 0043
split - 0044
exact hlast_witness_witness_witness_right_left - 0045
split - 0046
exact beta_prefix_extend_witness_witness_left - 0047
exact hlast_witness_witness_witness_right_right - 0048
have hold : ∃ q. ∃ Q. ∃ bit. BetaAt(b,c,i,q) ∧ (BetaAt(d,e,i,Q) ∧ (BetaAt(f,g,i,bit) ∧ (bit = 0 ∧ Q = q + q ∨ bit = 1 ∧ Q = S (q + q))))Exact native replay line
have hold : exists q Q bit. (((exists fs_h_b5ccpe_old_left. fs_h_b5ccpe_old_left + S (q) = S ((S (i)) * c)) /\ exists fs_q_b5ccpe_old_left. b = fs_q_b5ccpe_old_left * S ((S (i)) * c) + (q))) /\ ((((exists fs_h_b5ccpe_old_right. fs_h_b5ccpe_old_right + S (Q) = S ((S (i)) * e)) /\ exists fs_q_b5ccpe_old_right. d = fs_q_b5ccpe_old_right * S ((S (i)) * e) + (Q))) /\ ((((exists fs_h_b5ccpe_old_bit. fs_h_b5ccpe_old_bit + S (bit) = S ((S (i)) * g)) /\ exists fs_q_b5ccpe_old_bit. f = fs_q_b5ccpe_old_bit * S ((S (i)) * g) + (bit))) /\ (((bit = 0 /\ Q = q + q) \/ (bit = 1 /\ Q = S (q + q)))))) - 0049
specialize hprefix i - 0050
apply hprefix - 0051
exact hsplit_right - 0052
cases hold - 0053
cases hold_witness - 0054
cases hold_witness_witness - 0055
cases hold_witness_witness_witness - 0056
cases hold_witness_witness_witness_right - 0057
cases hold_witness_witness_witness_right_right - 0058
exists x5 - 0059
exists x6 - 0060
exists x7 - 0061
split - 0062
exact hold_witness_witness_witness_left - 0063
split - 0064
exact hold_witness_witness_witness_right_left - 0065
split - 0066
specialize beta_prefix_extend_witness_witness_right i - 0067
specialize beta_prefix_extend_witness_witness_right x7 - 0068
apply beta_prefix_extend_witness_witness_right - 0069
exact hsplit_right - 0070
exact hold_witness_witness_witness_right_right_left - 0071
exact hold_witness_witness_witness_right_right_right