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. ∀ l. ∀ a. ∀ e. ∃ z. ∃ d. 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)))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
5 occurrences
In local proof propositions
9 occurrences
Exact expanded native-PA statement
forall b c l a e. exists z d. (((((exists wpo_beta_height_append_result_first. wpo_beta_height_append_result_first + S (a) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_append_result_first. z = wpo_beta_quotient_append_result_first * S ((S (l)) * d) + (a))) /\ ((((exists wpo_beta_height_append_result_second. wpo_beta_height_append_result_second + S (e) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_append_result_second. z = wpo_beta_quotient_append_result_second * S ((S (S (l))) * d) + (e))) /\ (forall wpo_old_index_append_result wpo_old_value_append_result. (exists wpo_gap_append_result_old_bound. wpo_gap_append_result_old_bound + S (wpo_old_index_append_result) = l) -> (((exists wpo_beta_height_append_result_old_entry. wpo_beta_height_append_result_old_entry + S (wpo_old_value_append_result) = S ((S (wpo_old_index_append_result)) * c)) /\ exists wpo_beta_quotient_append_result_old_entry. b = wpo_beta_quotient_append_result_old_entry * S ((S (wpo_old_index_append_result)) * c) + (wpo_old_value_append_result))) -> (((exists wpo_beta_height_append_result_new_entry. wpo_beta_height_append_result_new_entry + S (wpo_old_value_append_result) = S ((S (wpo_old_index_append_result)) * d)) /\ exists wpo_beta_quotient_append_result_new_entry. z = wpo_beta_quotient_append_result_new_entry * S ((S (wpo_old_index_append_result)) * d) + (wpo_old_value_append_result)))))))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–5
02Establish hfirst_extendL6–7
Establish this local claim before using it. It is not an additional assumption.
- L6
have hfirst_extend : ∀ k. ∀ q. ∀ s. ∀ v. ∃ r. ∃ t. BetaAt(r,t,k,v) ∧ (∀ x. ∀ y. Lt(x,k) → BetaAt(q,s,x,y) → BetaAt(r,t,x,y))Definitions: BetaAt(r,t,k,v)Lt(x,k)BetaAt(q,s,x,y)BetaAt(r,t,x,y)Original native command in the exact edition - L7
exact beta_prefix_extend
03Establish hsecond_extendL8–13
Establish this local claim before using it. It is not an additional assumption.
- L8
have hsecond_extend : ∀ k. ∀ q. ∀ s. ∀ v. ∃ r. ∃ t. BetaAt(r,t,k,v) ∧ (∀ x. ∀ y. Lt(x,k) → BetaAt(q,s,x,y) → BetaAt(r,t,x,y))Definitions: BetaAt(r,t,k,v)Lt(x,k)BetaAt(q,s,x,y)BetaAt(r,t,x,y)Original native command in the exact edition - L9
exact beta_prefix_extend - L10
specialize hfirst_extend l - L11
specialize hfirst_extend b - L12
specialize hfirst_extend c - L13
specialize hfirst_extend a
04Separate the logical casesL14–16
05Use earlier factsL17–20
06Separate the logical casesL21–23
07Construct an explicit witnessL24–25
08Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
split
09Use earlier factsL27–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
10Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
11Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact hsecond_extend_witness_witness_left
12Fix variables and assumptionsL35–38
13Establish hmiddleL39–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hfirst extend witness witness right.
- L39
have hmiddle : BetaAt(x,x1,i,v)Definitions: BetaAt(x,x1,i,v)Original native command in the exact edition - L40
specialize hfirst_extend_witness_witness_right i - L41
specialize hfirst_extend_witness_witness_right v - L42
apply hfirst_extend_witness_witness_right - L43
exact hi - L44
exact hold - L45
specialize hsecond_extend_witness_witness_right i - L46
specialize hsecond_extend_witness_witness_right v - L47
apply hsecond_extend_witness_witness_right - L48
specialize le_succ (S i)
Original defined command ledger · 52 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro a - 0005
intro e - 0006
have hfirst_extend : ∀ k. ∀ q. ∀ s. ∀ v. ∃ r. ∃ t. BetaAt(r,t,k,v) ∧ (∀ x. ∀ y. Lt(x,k) → BetaAt(q,s,x,y) → BetaAt(r,t,x,y))Exact native replay line
have hfirst_extend : forall k q s v. exists r t. (((exists h. h + S v = S ((S k) * t)) /\ exists u. r = u * S ((S k) * t) + v) /\ forall i w. (exists h. h + S i = k) -> ((exists h. h + S w = S ((S i) * s)) /\ exists u. q = u * S ((S i) * s) + w) -> ((exists h. h + S w = S ((S i) * t)) /\ exists u. r = u * S ((S i) * t) + w)) - 0007
exact beta_prefix_extend - 0008
have hsecond_extend : ∀ k. ∀ q. ∀ s. ∀ v. ∃ r. ∃ t. BetaAt(r,t,k,v) ∧ (∀ x. ∀ y. Lt(x,k) → BetaAt(q,s,x,y) → BetaAt(r,t,x,y))Exact native replay line
have hsecond_extend : forall k q s v. exists r t. (((exists h. h + S v = S ((S k) * t)) /\ exists u. r = u * S ((S k) * t) + v) /\ forall i w. (exists h. h + S i = k) -> ((exists h. h + S w = S ((S i) * s)) /\ exists u. q = u * S ((S i) * s) + w) -> ((exists h. h + S w = S ((S i) * t)) /\ exists u. r = u * S ((S i) * t) + w)) - 0009
exact beta_prefix_extend - 0010
specialize hfirst_extend l - 0011
specialize hfirst_extend b - 0012
specialize hfirst_extend c - 0013
specialize hfirst_extend a - 0014
cases hfirst_extend - 0015
cases hfirst_extend_witness - 0016
cases hfirst_extend_witness_witness - 0017
specialize hsecond_extend (S l) - 0018
specialize hsecond_extend x - 0019
specialize hsecond_extend x1 - 0020
specialize hsecond_extend e - 0021
cases hsecond_extend - 0022
cases hsecond_extend_witness - 0023
cases hsecond_extend_witness_witness - 0024
exists x2 - 0025
exists x3 - 0026
split - 0027
specialize hsecond_extend_witness_witness_right l - 0028
specialize hsecond_extend_witness_witness_right a - 0029
apply hsecond_extend_witness_witness_right - 0030
specialize le_refl (S l) - 0031
exact le_refl - 0032
exact hfirst_extend_witness_witness_left - 0033
split - 0034
exact hsecond_extend_witness_witness_left - 0035
intro i - 0036
intro v - 0037
intro hi - 0038
intro hold - 0039
have hmiddle : BetaAt(x,x1,i,v)Exact native replay line
have hmiddle : ((exists wpo_beta_height_append_old_middle. wpo_beta_height_append_old_middle + S (v) = S ((S (i)) * x1)) /\ exists wpo_beta_quotient_append_old_middle. x = wpo_beta_quotient_append_old_middle * S ((S (i)) * x1) + (v)) - 0040
specialize hfirst_extend_witness_witness_right i - 0041
specialize hfirst_extend_witness_witness_right v - 0042
apply hfirst_extend_witness_witness_right - 0043
exact hi - 0044
exact hold - 0045
specialize hsecond_extend_witness_witness_right i - 0046
specialize hsecond_extend_witness_witness_right v - 0047
apply hsecond_extend_witness_witness_right - 0048
specialize le_succ (S i) - 0049
specialize le_succ l - 0050
apply le_succ - 0051
exact hi - 0052
exact hmiddle