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. ∀ n. ∀ sn. ∀ i. ∀ x. ∀ y. sn = S n → Lt(i,n) → BoundedPrefix(b,c,sn) → BetaAt(b,c,i,x) → BetaAt(b,c,n,y) → BetaAt(z,d,i,y) → BetaAt(z,d,n,x) → (∀ m. ∀ k. Lt(m,S n) → ¬m = i → ¬m = n → BetaAt(b,c,m,k) → BetaAt(z,d,m,k)) → BoundedPrefix(z,d,sn)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
10 occurrences
In local proof propositions
14 occurrences
Exact expanded native-PA statement
forall b c z d n sn i x y. sn = S n -> (exists h. h + S i = n) -> (forall fp_i_swap_bound_old. (exists fp_gap_swap_bound_old_index. fp_gap_swap_bound_old_index + S fp_i_swap_bound_old = sn) -> exists fp_value_swap_bound_old. ((((exists ff_h_swap_bound_old_entry. ff_h_swap_bound_old_entry + S (fp_value_swap_bound_old) = S ((S (fp_i_swap_bound_old)) * c)) /\ exists ff_q_swap_bound_old_entry. b = ff_q_swap_bound_old_entry * S ((S (fp_i_swap_bound_old)) * c) + (fp_value_swap_bound_old))) /\ (exists fp_gap_swap_bound_old_value. fp_gap_swap_bound_old_value + S fp_value_swap_bound_old = sn))) -> (((exists ff_h_swap_bound_old_i. ff_h_swap_bound_old_i + S (x) = S ((S (i)) * c)) /\ exists ff_q_swap_bound_old_i. b = ff_q_swap_bound_old_i * S ((S (i)) * c) + (x))) -> (((exists ff_h_swap_bound_old_n. ff_h_swap_bound_old_n + S (y) = S ((S (n)) * c)) /\ exists ff_q_swap_bound_old_n. b = ff_q_swap_bound_old_n * S ((S (n)) * c) + (y))) -> (((exists ff_h_swap_bound_new_i. ff_h_swap_bound_new_i + S (y) = S ((S (i)) * d)) /\ exists ff_q_swap_bound_new_i. z = ff_q_swap_bound_new_i * S ((S (i)) * d) + (y))) -> (((exists ff_h_swap_bound_new_n. ff_h_swap_bound_new_n + S (x) = S ((S (n)) * d)) /\ exists ff_q_swap_bound_new_n. z = ff_q_swap_bound_new_n * S ((S (n)) * d) + (x))) -> (forall j a. (exists h. h + S j = S n) -> ~(j = i) -> ~(j = n) -> (((exists ff_h_swap_bound_old_j. ff_h_swap_bound_old_j + S (a) = S ((S (j)) * c)) /\ exists ff_q_swap_bound_old_j. b = ff_q_swap_bound_old_j * S ((S (j)) * c) + (a))) -> (((exists ff_h_swap_bound_new_j. ff_h_swap_bound_new_j + S (a) = S ((S (j)) * d)) /\ exists ff_q_swap_bound_new_j. z = ff_q_swap_bound_new_j * S ((S (j)) * d) + (a)))) -> (forall fp_i_swap_bound_new. (exists fp_gap_swap_bound_new_index. fp_gap_swap_bound_new_index + S fp_i_swap_bound_new = sn) -> exists fp_value_swap_bound_new. ((((exists ff_h_swap_bound_new_entry. ff_h_swap_bound_new_entry + S (fp_value_swap_bound_new) = S ((S (fp_i_swap_bound_new)) * d)) /\ exists ff_q_swap_bound_new_entry. z = ff_q_swap_bound_new_entry * S ((S (fp_i_swap_bound_new)) * d) + (fp_value_swap_bound_new))) /\ (exists fp_gap_swap_bound_new_value. fp_gap_swap_bound_new_value + S fp_value_swap_bound_new = sn)))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 (4)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–17
03Calculate and transport equalitiesL18–19
04Establish hisnL20–24
05Establish hnsnL25–27
Establish this local claim before using it. It is not an additional assumption.
06Establish hentry_bound_iL28–29
Establish this local claim before using it. It is not an additional assumption.
- L28
have hentry_bound_i : ∀ b. ∀ c. ∀ l. ∀ i. ∀ x. BoundedPrefix(b,c,l) → Lt(i,l) → BetaAt(b,c,i,x) → Lt(x,l)Definitions: BoundedPrefix(b,c,l)Lt(i,l)BetaAt(b,c,i,x)Lt(x,l)Original native command in the exact edition - L29
exact finite_bounded_entry_lt
07Establish hentry_bound_nL30–31
Establish this local claim before using it. It is not an additional assumption.
- L30
have hentry_bound_n : ∀ b. ∀ c. ∀ l. ∀ i. ∀ x. BoundedPrefix(b,c,l) → Lt(i,l) → BetaAt(b,c,i,x) → Lt(x,l)Definitions: BoundedPrefix(b,c,l)Lt(i,l)BetaAt(b,c,i,x)Lt(x,l)Original native command in the exact edition - L31
exact finite_bounded_entry_lt
08Establish hxbL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hentry bound i.
09Establish hybL42–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hentry bound n.
10Establish heq_iL52–53
11Establish heq_nL54–61
12Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
cases heq_i
13Construct an explicit witnessL63–63
Supply the displayed value, then prove that it has the required property.
- L63
exists y
14Separate the logical casesL64–64
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L64
split
15Calculate and transport equalitiesL65–66
16Use earlier factsL67–70
17Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
cases heq_n
18Construct an explicit witnessL72–72
Supply the displayed value, then prove that it has the required property.
- L72
exists x
19Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
20Calculate and transport equalitiesL74–75
21Use earlier factsL76–78
22Establish holdL79–81
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hbounded.
- L79
have hold : ∃ a. BetaAt(b,c,j,a) ∧ Lt(a,S n)Definitions: BetaAt(b,c,j,a)Lt(a,S n)Original native command in the exact edition - L80
apply hbounded - L81
exact hj
23Separate the logical casesL82–83
24Construct an explicit witnessL84–84
Supply the displayed value, then prove that it has the required property.
- L84
exists x1
25Separate the logical casesL85–85
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L85
split
Original defined command ledger · 93 lines
- 0001
intro b - 0002
intro c - 0003
intro z - 0004
intro d - 0005
intro n - 0006
intro sn - 0007
intro i - 0008
intro x - 0009
intro y - 0010
intro hsn - 0011
intro hi - 0012
intro hbounded - 0013
intro hold_i - 0014
intro hold_n - 0015
intro hnew_i - 0016
intro hnew_n - 0017
intro hpreserve - 0018
rewrite hsn at hbounded - 0019
rewrite hsn at hbounded - 0020
have hisn : Lt(i,S n)Exact native replay line
have hisn : exists h. h + S i = S n - 0021
specialize le_succ (S i) - 0022
specialize le_succ n - 0023
apply le_succ - 0024
exact hi - 0025
have hnsn : Lt(n,S n)Exact native replay line
have hnsn : exists h. h + S n = S n - 0026
specialize le_refl (S n) - 0027
exact le_refl - 0028
have hentry_bound_i : ∀ b. ∀ c. ∀ l. ∀ i. ∀ x. BoundedPrefix(b,c,l) → Lt(i,l) → BetaAt(b,c,i,x) → Lt(x,l)Exact native replay line
have hentry_bound_i : forall b c l i x. (forall fp_i_entry_bound. (exists fp_gap_entry_bound_index. fp_gap_entry_bound_index + S fp_i_entry_bound = l) -> exists fp_value_entry_bound. ((((exists ff_h_entry_bound_entry. ff_h_entry_bound_entry + S (fp_value_entry_bound) = S ((S (fp_i_entry_bound)) * c)) /\ exists ff_q_entry_bound_entry. b = ff_q_entry_bound_entry * S ((S (fp_i_entry_bound)) * c) + (fp_value_entry_bound))) /\ (exists fp_gap_entry_bound_value. fp_gap_entry_bound_value + S fp_value_entry_bound = l))) -> (exists h. h + S i = l) -> (((exists ff_h_entry_bound_at. ff_h_entry_bound_at + S (x) = S ((S (i)) * c)) /\ exists ff_q_entry_bound_at. b = ff_q_entry_bound_at * S ((S (i)) * c) + (x))) -> exists h. h + S x = l - 0029
exact finite_bounded_entry_lt - 0030
have hentry_bound_n : ∀ b. ∀ c. ∀ l. ∀ i. ∀ x. BoundedPrefix(b,c,l) → Lt(i,l) → BetaAt(b,c,i,x) → Lt(x,l)Exact native replay line
have hentry_bound_n : forall b c l i x. (forall fp_i_entry_bound. (exists fp_gap_entry_bound_index. fp_gap_entry_bound_index + S fp_i_entry_bound = l) -> exists fp_value_entry_bound. ((((exists ff_h_entry_bound_entry. ff_h_entry_bound_entry + S (fp_value_entry_bound) = S ((S (fp_i_entry_bound)) * c)) /\ exists ff_q_entry_bound_entry. b = ff_q_entry_bound_entry * S ((S (fp_i_entry_bound)) * c) + (fp_value_entry_bound))) /\ (exists fp_gap_entry_bound_value. fp_gap_entry_bound_value + S fp_value_entry_bound = l))) -> (exists h. h + S i = l) -> (((exists ff_h_entry_bound_at. ff_h_entry_bound_at + S (x) = S ((S (i)) * c)) /\ exists ff_q_entry_bound_at. b = ff_q_entry_bound_at * S ((S (i)) * c) + (x))) -> exists h. h + S x = l - 0031
exact finite_bounded_entry_lt - 0032
have hxb : Lt(x,S n)Exact native replay line
have hxb : exists h. h + S x = S n - 0033
specialize hentry_bound_i b - 0034
specialize hentry_bound_i c - 0035
specialize hentry_bound_i (S n) - 0036
specialize hentry_bound_i i - 0037
specialize hentry_bound_i x - 0038
apply hentry_bound_i - 0039
exact hbounded - 0040
exact hisn - 0041
exact hold_i - 0042
have hyb : Lt(y,S n)Exact native replay line
have hyb : exists h. h + S y = S n - 0043
specialize hentry_bound_n b - 0044
specialize hentry_bound_n c - 0045
specialize hentry_bound_n (S n) - 0046
specialize hentry_bound_n n - 0047
specialize hentry_bound_n y - 0048
apply hentry_bound_n - 0049
exact hbounded - 0050
exact hnsn - 0051
exact hold_n - 0052
have heq_i : forall u v. u = v \/ ~(u = v) - 0053
exact eq_decidable - 0054
have heq_n : forall u v. u = v \/ ~(u = v) - 0055
exact eq_decidable - 0056
rewrite hsn - 0057
rewrite hsn - 0058
intro j - 0059
intro hj - 0060
specialize heq_i j - 0061
specialize heq_i i - 0062
cases heq_i - 0063
exists y - 0064
split - 0065
rewrite heq_i_left - 0066
rewrite heq_i_left - 0067
exact hnew_i - 0068
exact hyb - 0069
specialize heq_n j - 0070
specialize heq_n n - 0071
cases heq_n - 0072
exists x - 0073
split - 0074
rewrite heq_n_left - 0075
rewrite heq_n_left - 0076
exact hnew_n - 0077
exact hxb - 0078
specialize hbounded j - 0079
have hold : ∃ a. BetaAt(b,c,j,a) ∧ Lt(a,S n)Exact native replay line
have hold : exists a. (((exists h. h + S a = S ((S j) * c)) /\ exists q. b = q * S ((S j) * c) + a) /\ exists h. h + S a = S n) - 0080
apply hbounded - 0081
exact hj - 0082
cases hold - 0083
cases hold_witness - 0084
exists x1 - 0085
split - 0086
specialize hpreserve j - 0087
specialize hpreserve x1 - 0088
apply hpreserve - 0089
exact hj - 0090
exact heq_i_right - 0091
exact heq_n_right - 0092
exact hold_witness_left - 0093
exact hold_witness_right