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. ∀ n. ∀ i. ∀ x. ∀ y. Lt(i,n) → BetaAt(b,c,i,x) → BetaAt(b,c,n,y) → ∃ z. ∃ m. BetaAt(z,m,i,y) ∧ (BetaAt(z,m,n,x) ∧ (∀ k. ∀ j. Lt(k,S n) → ¬k = i → ¬k = n → BetaAt(b,c,k,j) → BetaAt(z,m,k,j)))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
8 occurrences
In local proof propositions
12 occurrences
Exact expanded native-PA statement
forall b c n i x y. (exists h. h + S i = n) -> (((exists ff_h_swap_old_i. ff_h_swap_old_i + S (x) = S ((S (i)) * c)) /\ exists ff_q_swap_old_i. b = ff_q_swap_old_i * S ((S (i)) * c) + (x))) -> (((exists ff_h_swap_old_n. ff_h_swap_old_n + S (y) = S ((S (n)) * c)) /\ exists ff_q_swap_old_n. b = ff_q_swap_old_n * S ((S (n)) * c) + (y))) -> exists z d. ((((exists ff_h_swap_new_i. ff_h_swap_new_i + S (y) = S ((S (i)) * d)) /\ exists ff_q_swap_new_i. z = ff_q_swap_new_i * S ((S (i)) * d) + (y))) /\ ((((exists ff_h_swap_new_n. ff_h_swap_new_n + S (x) = S ((S (n)) * d)) /\ exists ff_q_swap_new_n. z = ff_q_swap_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_old_j. ff_h_swap_old_j + S (a) = S ((S (j)) * c)) /\ exists ff_q_swap_old_j. b = ff_q_swap_old_j * S ((S (j)) * c) + (a))) -> (((exists ff_h_swap_new_j. ff_h_swap_new_j + S (a) = S ((S (j)) * d)) /\ exists ff_q_swap_new_j. z = ff_q_swap_new_j * S ((S (j)) * d) + (a)))))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–9
02Establish hisnL10–14
03Establish hnsnL15–17
Establish this local claim before using it. It is not an additional assumption.
04Establish hinL18–23
05Establish hniL24–28
06Establish hfirstL29–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix replace exists.
- L29
have hfirst : ∃ z. ∃ d. BetaAt(z,d,i,y) ∧ (∀ x. ∀ m. Lt(x,S n) → ¬x = i → BetaAt(b,c,x,m) → BetaAt(z,d,x,m))Definitions: BetaAt(z,d,i,y)Lt(x,S n)BetaAt(b,c,x,m)BetaAt(z,d,x,m)Original native command in the exact edition - L30
specialize beta_prefix_replace_exists b - L31
specialize beta_prefix_replace_exists c - L32
specialize beta_prefix_replace_exists i - L33
specialize beta_prefix_replace_exists y - L34
specialize beta_prefix_replace_exists (S n) - L35
apply beta_prefix_replace_exists - L36
exact hisn
07Separate the logical casesL37–39
08Establish hfirst_nL40–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hfirst witness witness right.
- L40
have hfirst_n : BetaAt(x1,x2,n,y)Definitions: BetaAt(x1,x2,n,y)Original native command in the exact edition - L41
specialize hfirst_witness_witness_right n - L42
specialize hfirst_witness_witness_right y - L43
apply hfirst_witness_witness_right - L44
exact hnsn - L45
exact hni - L46
exact hyn
09Establish hsecondL47–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix replace exists.
- L47
have hsecond : ∃ z. ∃ d. BetaAt(z,d,n,x) ∧ (∀ y. ∀ m. Lt(y,S n) → ¬y = n → BetaAt(x1,x2,y,m) → BetaAt(z,d,y,m))Definitions: BetaAt(z,d,n,x)Lt(y,S n)BetaAt(x1,x2,y,m)BetaAt(z,d,y,m)Original native command in the exact edition - L48
specialize beta_prefix_replace_exists x1 - L49
specialize beta_prefix_replace_exists x2 - L50
specialize beta_prefix_replace_exists n - L51
specialize beta_prefix_replace_exists x - L52
specialize beta_prefix_replace_exists (S n) - L53
apply beta_prefix_replace_exists - L54
exact hnsn
10Separate the logical casesL55–57
11Construct an explicit witnessL58–59
12Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
split
13Use earlier factsL61–66
14Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
15Use earlier factsL68–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hsecond_witness_witness_left
16Fix variables and assumptionsL69–74
17Establish hmiddleL75–84
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hfirst witness witness right.
- L75
have hmiddle : BetaAt(x1,x2,j,a)Definitions: BetaAt(x1,x2,j,a)Original native command in the exact edition - L76
specialize hfirst_witness_witness_right j - L77
specialize hfirst_witness_witness_right a - L78
apply hfirst_witness_witness_right - L79
exact hj - L80
exact hji - L81
exact hold - L82
specialize hsecond_witness_witness_right j - L83
specialize hsecond_witness_witness_right a - L84
apply hsecond_witness_witness_right
Original defined command ledger · 87 lines
- 0001
intro b - 0002
intro c - 0003
intro n - 0004
intro i - 0005
intro x - 0006
intro y - 0007
intro hi - 0008
intro hxi - 0009
intro hyn - 0010
have hisn : Lt(i,S n)Exact native replay line
have hisn : exists h. h + S i = S n - 0011
specialize le_succ (S i) - 0012
specialize le_succ n - 0013
apply le_succ - 0014
exact hi - 0015
have hnsn : Lt(n,S n)Exact native replay line
have hnsn : exists h. h + S n = S n - 0016
specialize le_refl (S n) - 0017
exact le_refl - 0018
have hin : ~(i = n) - 0019
intro hin_eq - 0020
specialize lt_irrefl_expanded n - 0021
apply lt_irrefl_expanded - 0022
rewrite hin_eq at hi - 0023
exact hi - 0024
have hni : ~(n = i) - 0025
intro hni_eq - 0026
apply hin - 0027
symm - 0028
exact hni_eq - 0029
have hfirst : ∃ z. ∃ d. BetaAt(z,d,i,y) ∧ (∀ x. ∀ m. Lt(x,S n) → ¬x = i → BetaAt(b,c,x,m) → BetaAt(z,d,x,m))Exact native replay line
have hfirst : exists z d. (((exists h. h + S y = S ((S i) * d)) /\ exists q. z = q * S ((S i) * d) + y) /\ forall j a. (exists h. h + S j = S n) -> ~(j = i) -> ((exists h. h + S a = S ((S j) * c)) /\ exists q. b = q * S ((S j) * c) + a) -> ((exists h. h + S a = S ((S j) * d)) /\ exists q. z = q * S ((S j) * d) + a)) - 0030
specialize beta_prefix_replace_exists b - 0031
specialize beta_prefix_replace_exists c - 0032
specialize beta_prefix_replace_exists i - 0033
specialize beta_prefix_replace_exists y - 0034
specialize beta_prefix_replace_exists (S n) - 0035
apply beta_prefix_replace_exists - 0036
exact hisn - 0037
cases hfirst - 0038
cases hfirst_witness - 0039
cases hfirst_witness_witness - 0040
have hfirst_n : BetaAt(x1,x2,n,y)Exact native replay line
have hfirst_n : ((exists h. h + S y = S ((S n) * x2)) /\ exists q. x1 = q * S ((S n) * x2) + y) - 0041
specialize hfirst_witness_witness_right n - 0042
specialize hfirst_witness_witness_right y - 0043
apply hfirst_witness_witness_right - 0044
exact hnsn - 0045
exact hni - 0046
exact hyn - 0047
have hsecond : ∃ z. ∃ d. BetaAt(z,d,n,x) ∧ (∀ y. ∀ m. Lt(y,S n) → ¬y = n → BetaAt(x1,x2,y,m) → BetaAt(z,d,y,m))Exact native replay line
have hsecond : exists z d. (((exists h. h + S x = S ((S n) * d)) /\ exists q. z = q * S ((S n) * d) + x) /\ forall j a. (exists h. h + S j = S n) -> ~(j = n) -> ((exists h. h + S a = S ((S j) * x2)) /\ exists q. x1 = q * S ((S j) * x2) + a) -> ((exists h. h + S a = S ((S j) * d)) /\ exists q. z = q * S ((S j) * d) + a)) - 0048
specialize beta_prefix_replace_exists x1 - 0049
specialize beta_prefix_replace_exists x2 - 0050
specialize beta_prefix_replace_exists n - 0051
specialize beta_prefix_replace_exists x - 0052
specialize beta_prefix_replace_exists (S n) - 0053
apply beta_prefix_replace_exists - 0054
exact hnsn - 0055
cases hsecond - 0056
cases hsecond_witness - 0057
cases hsecond_witness_witness - 0058
exists x3 - 0059
exists x4 - 0060
split - 0061
specialize hsecond_witness_witness_right i - 0062
specialize hsecond_witness_witness_right y - 0063
apply hsecond_witness_witness_right - 0064
exact hisn - 0065
exact hin - 0066
exact hfirst_witness_witness_left - 0067
split - 0068
exact hsecond_witness_witness_left - 0069
intro j - 0070
intro a - 0071
intro hj - 0072
intro hji - 0073
intro hjn - 0074
intro hold - 0075
have hmiddle : BetaAt(x1,x2,j,a)Exact native replay line
have hmiddle : ((exists h. h + S a = S ((S j) * x2)) /\ exists q. x1 = q * S ((S j) * x2) + a) - 0076
specialize hfirst_witness_witness_right j - 0077
specialize hfirst_witness_witness_right a - 0078
apply hfirst_witness_witness_right - 0079
exact hj - 0080
exact hji - 0081
exact hold - 0082
specialize hsecond_witness_witness_right j - 0083
specialize hsecond_witness_witness_right a - 0084
apply hsecond_witness_witness_right - 0085
exact hj - 0086
exact hjn - 0087
exact hmiddle