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) → InjectivePrefix(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)) → InjectivePrefix(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
26 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_inj_old fp_j_swap_inj_old fp_value_swap_inj_old. (exists fp_gap_swap_inj_old_i. fp_gap_swap_inj_old_i + S fp_i_swap_inj_old = sn) -> (exists fp_gap_swap_inj_old_j. fp_gap_swap_inj_old_j + S fp_j_swap_inj_old = sn) -> (((exists ff_h_swap_inj_old_left. ff_h_swap_inj_old_left + S (fp_value_swap_inj_old) = S ((S (fp_i_swap_inj_old)) * c)) /\ exists ff_q_swap_inj_old_left. b = ff_q_swap_inj_old_left * S ((S (fp_i_swap_inj_old)) * c) + (fp_value_swap_inj_old))) -> (((exists ff_h_swap_inj_old_right. ff_h_swap_inj_old_right + S (fp_value_swap_inj_old) = S ((S (fp_j_swap_inj_old)) * c)) /\ exists ff_q_swap_inj_old_right. b = ff_q_swap_inj_old_right * S ((S (fp_j_swap_inj_old)) * c) + (fp_value_swap_inj_old))) -> fp_i_swap_inj_old = fp_j_swap_inj_old) -> (((exists ff_h_swap_inj_old_i. ff_h_swap_inj_old_i + S (x) = S ((S (i)) * c)) /\ exists ff_q_swap_inj_old_i. b = ff_q_swap_inj_old_i * S ((S (i)) * c) + (x))) -> (((exists ff_h_swap_inj_old_n. ff_h_swap_inj_old_n + S (y) = S ((S (n)) * c)) /\ exists ff_q_swap_inj_old_n. b = ff_q_swap_inj_old_n * S ((S (n)) * c) + (y))) -> (((exists ff_h_swap_inj_new_i. ff_h_swap_inj_new_i + S (y) = S ((S (i)) * d)) /\ exists ff_q_swap_inj_new_i. z = ff_q_swap_inj_new_i * S ((S (i)) * d) + (y))) -> (((exists ff_h_swap_inj_new_n. ff_h_swap_inj_new_n + S (x) = S ((S (n)) * d)) /\ exists ff_q_swap_inj_new_n. z = ff_q_swap_inj_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_inj_old_j. ff_h_swap_inj_old_j + S (a) = S ((S (j)) * c)) /\ exists ff_q_swap_inj_old_j. b = ff_q_swap_inj_old_j * S ((S (j)) * c) + (a))) -> (((exists ff_h_swap_inj_new_j. ff_h_swap_inj_new_j + S (a) = S ((S (j)) * d)) /\ exists ff_q_swap_inj_new_j. z = ff_q_swap_inj_new_j * S ((S (j)) * d) + (a)))) -> (forall fp_i_swap_inj_new fp_j_swap_inj_new fp_value_swap_inj_new. (exists fp_gap_swap_inj_new_i. fp_gap_swap_inj_new_i + S fp_i_swap_inj_new = sn) -> (exists fp_gap_swap_inj_new_j. fp_gap_swap_inj_new_j + S fp_j_swap_inj_new = sn) -> (((exists ff_h_swap_inj_new_left. ff_h_swap_inj_new_left + S (fp_value_swap_inj_new) = S ((S (fp_i_swap_inj_new)) * d)) /\ exists ff_q_swap_inj_new_left. z = ff_q_swap_inj_new_left * S ((S (fp_i_swap_inj_new)) * d) + (fp_value_swap_inj_new))) -> (((exists ff_h_swap_inj_new_right. ff_h_swap_inj_new_right + S (fp_value_swap_inj_new) = S ((S (fp_j_swap_inj_new)) * d)) /\ exists ff_q_swap_inj_new_right. z = ff_q_swap_inj_new_right * S ((S (fp_j_swap_inj_new)) * d) + (fp_value_swap_inj_new))) -> fp_i_swap_inj_new = fp_j_swap_inj_new)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–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 hreflect_jL28–29
Establish this local claim before using it. It is not an additional assumption.
- L28
have hreflect_j : ∀ b. ∀ c. ∀ z. ∀ d. ∀ n. ∀ i. ∀ x. ∀ 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)) → ∀ m. ∀ k. Lt(m,S n) → BetaAt(z,d,m,k) → m = i ∧ k = y ∨ (m = n ∧ k = x ∨ ¬m = i ∧ (¬m = n ∧ BetaAt(b,c,m,k)))Definitions: BetaAt(z,d,i,y)BetaAt(z,d,n,x)Lt(m,S n)BetaAt(b,c,m,k)BetaAt(z,d,m,k)Original native command in the exact edition - L29
exact beta_prefix_swap_last_reflect
07Establish hreflect_kL30–39
Establish this local claim before using it. It is not an additional assumption.
- L30
have hreflect_k : ∀ b. ∀ c. ∀ z. ∀ d. ∀ n. ∀ i. ∀ x. ∀ 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)) → ∀ m. ∀ k. Lt(m,S n) → BetaAt(z,d,m,k) → m = i ∧ k = y ∨ (m = n ∧ k = x ∨ ¬m = i ∧ (¬m = n ∧ BetaAt(b,c,m,k)))Definitions: BetaAt(z,d,i,y)BetaAt(z,d,n,x)Lt(m,S n)BetaAt(b,c,m,k)BetaAt(z,d,m,k)Original native command in the exact edition - L31
exact beta_prefix_swap_last_reflect - L32
rewrite hsn - L33
rewrite hsn - L34
intro j - L35
intro k - L36
intro a - L37
intro hj - L38
intro hk - L39
intro hnew_j
08Fix variables and assumptionsL40–40
Work with arbitrary variables or the premises of the current implication.
- L40
intro hnew_k
09Use earlier factsL41–48
10Establish hreflect_entries_jL49–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hreflect j.
- L49
have hreflect_entries_j : ∀ j. ∀ a. Lt(j,S n) → BetaAt(z,d,j,a) → j = i ∧ a = y ∨ (j = n ∧ a = x ∨ ¬j = i ∧ (¬j = n ∧ BetaAt(b,c,j,a)))Definitions: Lt(j,S n)BetaAt(z,d,j,a)BetaAt(b,c,j,a)Original native command in the exact edition - L50
apply hreflect_j - L51
exact hnew_i - L52
exact hnew_n - L53
exact hpreserve - L54
specialize hreflect_entries_j j - L55
specialize hreflect_entries_j a
11Establish hclass_jL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hreflect entries j.
- L56
have hclass_j : j = i ∧ a = y ∨ (j = n ∧ a = x ∨ ¬j = i ∧ (¬j = n ∧ BetaAt(b,c,j,a)))Definitions: BetaAt(b,c,j,a)Original native command in the exact edition - L57
apply hreflect_entries_j - L58
exact hj - L59
exact hnew_j - L60
specialize hreflect_k b - L61
specialize hreflect_k c - L62
specialize hreflect_k z - L63
specialize hreflect_k d - L64
specialize hreflect_k n - L65
specialize hreflect_k i
12Use earlier factsL66–67
13Establish hreflect_entries_kL68–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hreflect k.
- L68
have hreflect_entries_k : ∀ j. ∀ a. Lt(j,S n) → BetaAt(z,d,j,a) → j = i ∧ a = y ∨ (j = n ∧ a = x ∨ ¬j = i ∧ (¬j = n ∧ BetaAt(b,c,j,a)))Definitions: Lt(j,S n)BetaAt(z,d,j,a)BetaAt(b,c,j,a)Original native command in the exact edition - L69
apply hreflect_k - L70
exact hnew_i - L71
exact hnew_n - L72
exact hpreserve - L73
specialize hreflect_entries_k k - L74
specialize hreflect_entries_k a
14Establish hclass_kL75–78
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hreflect entries k.
- L75
have hclass_k : k = i ∧ a = y ∨ (k = n ∧ a = x ∨ ¬k = i ∧ (¬k = n ∧ BetaAt(b,c,k,a)))Definitions: BetaAt(b,c,k,a)Original native command in the exact edition - L76
apply hreflect_entries_k - L77
exact hk - L78
exact hnew_k
15Separate the logical casesL79–82
16Calculate and transport equalitiesL83–83
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L83
trans i
17Use earlier factsL84–84
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L84
exact hclass_j_left_left
18Calculate and transport equalitiesL85–85
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L85
symm
19Use earlier factsL86–86
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
exact hclass_k_left_left
20Separate the logical casesL87–88
21Establish hxyL89–93
22Establish hinL94–103
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hinjective.
23Use earlier factsL104–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
exact hold_n
24Calculate and transport equalitiesL105–105
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L105
trans i
25Use earlier factsL106–106
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L106
exact hclass_j_left_left
26Calculate and transport equalitiesL107–107
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L107
trans n
27Use earlier factsL108–108
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L108
exact hin
28Calculate and transport equalitiesL109–109
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L109
symm
29Use earlier factsL110–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L110
exact hclass_k_right_left_left
30Separate the logical casesL111–112
31Establish hnkL113–122
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hinjective.
32Use earlier factsL123–123
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L123
exact hclass_k_right_right_right_right
33Separate the logical casesL124–124
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L124
exfalso
34Use earlier factsL125–125
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L125
apply hclass_k_right_right_right_left
35Calculate and transport equalitiesL126–126
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L126
symm
36Use earlier factsL127–127
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L127
exact hnk
37Separate the logical casesL128–131
38Establish hxy2L132–136
39Establish hin2L137–146
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hinjective.
40Use earlier factsL147–147
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L147
exact hold_i
41Calculate and transport equalitiesL148–148
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L148
trans n
42Use earlier factsL149–149
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L149
exact hclass_j_right_left_left
43Calculate and transport equalitiesL150–150
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L150
trans i
44Use earlier factsL151–151
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L151
exact hin2
45Calculate and transport equalitiesL152–152
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L152
symm
46Use earlier factsL153–153
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L153
exact hclass_k_left_left
47Separate the logical casesL154–155
48Calculate and transport equalitiesL156–156
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L156
trans n
49Use earlier factsL157–157
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L157
exact hclass_j_right_left_left
50Calculate and transport equalitiesL158–158
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L158
symm
51Use earlier factsL159–159
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L159
exact hclass_k_right_left_left
52Separate the logical casesL160–161
53Establish hikL162–171
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hinjective.
54Use earlier factsL172–172
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L172
exact hclass_k_right_right_right_right
55Separate the logical casesL173–173
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L173
exfalso
56Use earlier factsL174–174
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L174
apply hclass_k_right_right_left
57Calculate and transport equalitiesL175–175
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L175
symm
58Use earlier factsL176–176
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L176
exact hik
59Separate the logical casesL177–180
60Establish hjnL181–190
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hinjective.
61Use earlier factsL191–191
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L191
exact hold_n
62Separate the logical casesL192–192
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L192
exfalso
63Use earlier factsL193–194
64Separate the logical casesL195–196
65Establish hjiL197–206
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hinjective.
66Use earlier factsL207–207
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L207
exact hold_i
67Separate the logical casesL208–208
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L208
exfalso
68Use earlier factsL209–210
69Separate the logical casesL211–212
70Use earlier factsL213–220
Original defined command ledger · 220 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 hinjective - 0013
intro hold_i - 0014
intro hold_n - 0015
intro hnew_i - 0016
intro hnew_n - 0017
intro hpreserve - 0018
rewrite hsn at hinjective - 0019
rewrite hsn at hinjective - 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 hreflect_j : ∀ b. ∀ c. ∀ z. ∀ d. ∀ n. ∀ i. ∀ x. ∀ 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)) → ∀ m. ∀ k. Lt(m,S n) → BetaAt(z,d,m,k) → m = i ∧ k = y ∨ (m = n ∧ k = x ∨ ¬m = i ∧ (¬m = n ∧ BetaAt(b,c,m,k)))Exact native replay line
have hreflect_j : forall b c z d n i x y. (((exists ff_h_reflect_new_i. ff_h_reflect_new_i + S (y) = S ((S (i)) * d)) /\ exists ff_q_reflect_new_i. z = ff_q_reflect_new_i * S ((S (i)) * d) + (y))) -> (((exists ff_h_reflect_new_n. ff_h_reflect_new_n + S (x) = S ((S (n)) * d)) /\ exists ff_q_reflect_new_n. z = ff_q_reflect_new_n * S ((S (n)) * d) + (x))) -> (forall k v. (exists h. h + S k = S n) -> ~(k = i) -> ~(k = n) -> (((exists ff_h_reflect_old_k. ff_h_reflect_old_k + S (v) = S ((S (k)) * c)) /\ exists ff_q_reflect_old_k. b = ff_q_reflect_old_k * S ((S (k)) * c) + (v))) -> (((exists ff_h_reflect_new_k. ff_h_reflect_new_k + S (v) = S ((S (k)) * d)) /\ exists ff_q_reflect_new_k. z = ff_q_reflect_new_k * S ((S (k)) * d) + (v)))) -> forall j a. (exists h. h + S j = S n) -> (((exists ff_h_reflect_new_j. ff_h_reflect_new_j + S (a) = S ((S (j)) * d)) /\ exists ff_q_reflect_new_j. z = ff_q_reflect_new_j * S ((S (j)) * d) + (a))) -> ((j = i /\ a = y) \/ ((j = n /\ a = x) \/ (~(j = i) /\ (~(j = n) /\ (((exists ff_h_reflect_old_j. ff_h_reflect_old_j + S (a) = S ((S (j)) * c)) /\ exists ff_q_reflect_old_j. b = ff_q_reflect_old_j * S ((S (j)) * c) + (a))))))) - 0029
exact beta_prefix_swap_last_reflect - 0030
have hreflect_k : ∀ b. ∀ c. ∀ z. ∀ d. ∀ n. ∀ i. ∀ x. ∀ 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)) → ∀ m. ∀ k. Lt(m,S n) → BetaAt(z,d,m,k) → m = i ∧ k = y ∨ (m = n ∧ k = x ∨ ¬m = i ∧ (¬m = n ∧ BetaAt(b,c,m,k)))Exact native replay line
have hreflect_k : forall b c z d n i x y. (((exists ff_h_reflect_new_i. ff_h_reflect_new_i + S (y) = S ((S (i)) * d)) /\ exists ff_q_reflect_new_i. z = ff_q_reflect_new_i * S ((S (i)) * d) + (y))) -> (((exists ff_h_reflect_new_n. ff_h_reflect_new_n + S (x) = S ((S (n)) * d)) /\ exists ff_q_reflect_new_n. z = ff_q_reflect_new_n * S ((S (n)) * d) + (x))) -> (forall k v. (exists h. h + S k = S n) -> ~(k = i) -> ~(k = n) -> (((exists ff_h_reflect_old_k. ff_h_reflect_old_k + S (v) = S ((S (k)) * c)) /\ exists ff_q_reflect_old_k. b = ff_q_reflect_old_k * S ((S (k)) * c) + (v))) -> (((exists ff_h_reflect_new_k. ff_h_reflect_new_k + S (v) = S ((S (k)) * d)) /\ exists ff_q_reflect_new_k. z = ff_q_reflect_new_k * S ((S (k)) * d) + (v)))) -> forall j a. (exists h. h + S j = S n) -> (((exists ff_h_reflect_new_j. ff_h_reflect_new_j + S (a) = S ((S (j)) * d)) /\ exists ff_q_reflect_new_j. z = ff_q_reflect_new_j * S ((S (j)) * d) + (a))) -> ((j = i /\ a = y) \/ ((j = n /\ a = x) \/ (~(j = i) /\ (~(j = n) /\ (((exists ff_h_reflect_old_j. ff_h_reflect_old_j + S (a) = S ((S (j)) * c)) /\ exists ff_q_reflect_old_j. b = ff_q_reflect_old_j * S ((S (j)) * c) + (a))))))) - 0031
exact beta_prefix_swap_last_reflect - 0032
rewrite hsn - 0033
rewrite hsn - 0034
intro j - 0035
intro k - 0036
intro a - 0037
intro hj - 0038
intro hk - 0039
intro hnew_j - 0040
intro hnew_k - 0041
specialize hreflect_j b - 0042
specialize hreflect_j c - 0043
specialize hreflect_j z - 0044
specialize hreflect_j d - 0045
specialize hreflect_j n - 0046
specialize hreflect_j i - 0047
specialize hreflect_j x - 0048
specialize hreflect_j y - 0049
have hreflect_entries_j : ∀ j. ∀ a. Lt(j,S n) → BetaAt(z,d,j,a) → j = i ∧ a = y ∨ (j = n ∧ a = x ∨ ¬j = i ∧ (¬j = n ∧ BetaAt(b,c,j,a)))Exact native replay line
have hreflect_entries_j : forall j a. (exists h. h + S j = S n) -> (((exists ff_h_reflect_new_j. ff_h_reflect_new_j + S (a) = S ((S (j)) * d)) /\ exists ff_q_reflect_new_j. z = ff_q_reflect_new_j * S ((S (j)) * d) + (a))) -> ((j = i /\ a = y) \/ ((j = n /\ a = x) \/ (~(j = i) /\ (~(j = n) /\ (((exists ff_h_reflect_old_j. ff_h_reflect_old_j + S (a) = S ((S (j)) * c)) /\ exists ff_q_reflect_old_j. b = ff_q_reflect_old_j * S ((S (j)) * c) + (a))))))) - 0050
apply hreflect_j - 0051
exact hnew_i - 0052
exact hnew_n - 0053
exact hpreserve - 0054
specialize hreflect_entries_j j - 0055
specialize hreflect_entries_j a - 0056
have hclass_j : j = i ∧ a = y ∨ (j = n ∧ a = x ∨ ¬j = i ∧ (¬j = n ∧ BetaAt(b,c,j,a)))Exact native replay line
have hclass_j : ((j = i /\ a = y) \/ ((j = n /\ a = x) \/ (~(j = i) /\ (~(j = n) /\ ((exists h. h + S a = S ((S j) * c)) /\ exists q. b = q * S ((S j) * c) + a))))) - 0057
apply hreflect_entries_j - 0058
exact hj - 0059
exact hnew_j - 0060
specialize hreflect_k b - 0061
specialize hreflect_k c - 0062
specialize hreflect_k z - 0063
specialize hreflect_k d - 0064
specialize hreflect_k n - 0065
specialize hreflect_k i - 0066
specialize hreflect_k x - 0067
specialize hreflect_k y - 0068
have hreflect_entries_k : ∀ j. ∀ a. Lt(j,S n) → BetaAt(z,d,j,a) → j = i ∧ a = y ∨ (j = n ∧ a = x ∨ ¬j = i ∧ (¬j = n ∧ BetaAt(b,c,j,a)))Exact native replay line
have hreflect_entries_k : forall j a. (exists h. h + S j = S n) -> (((exists ff_h_reflect_new_j. ff_h_reflect_new_j + S (a) = S ((S (j)) * d)) /\ exists ff_q_reflect_new_j. z = ff_q_reflect_new_j * S ((S (j)) * d) + (a))) -> ((j = i /\ a = y) \/ ((j = n /\ a = x) \/ (~(j = i) /\ (~(j = n) /\ (((exists ff_h_reflect_old_j. ff_h_reflect_old_j + S (a) = S ((S (j)) * c)) /\ exists ff_q_reflect_old_j. b = ff_q_reflect_old_j * S ((S (j)) * c) + (a))))))) - 0069
apply hreflect_k - 0070
exact hnew_i - 0071
exact hnew_n - 0072
exact hpreserve - 0073
specialize hreflect_entries_k k - 0074
specialize hreflect_entries_k a - 0075
have hclass_k : k = i ∧ a = y ∨ (k = n ∧ a = x ∨ ¬k = i ∧ (¬k = n ∧ BetaAt(b,c,k,a)))Exact native replay line
have hclass_k : ((k = i /\ a = y) \/ ((k = n /\ a = x) \/ (~(k = i) /\ (~(k = n) /\ ((exists h. h + S a = S ((S k) * c)) /\ exists q. b = q * S ((S k) * c) + a))))) - 0076
apply hreflect_entries_k - 0077
exact hk - 0078
exact hnew_k - 0079
cases hclass_j - 0080
cases hclass_j_left - 0081
cases hclass_k - 0082
cases hclass_k_left - 0083
trans i - 0084
exact hclass_j_left_left - 0085
symm - 0086
exact hclass_k_left_left - 0087
cases hclass_k_right - 0088
cases hclass_k_right_left - 0089
have hxy : x = y - 0090
trans a - 0091
symm - 0092
exact hclass_k_right_left_right - 0093
exact hclass_j_left_right - 0094
have hin : i = n - 0095
specialize hinjective i - 0096
specialize hinjective n - 0097
specialize hinjective x - 0098
apply hinjective - 0099
exact hisn - 0100
exact hnsn - 0101
exact hold_i - 0102
rewrite hxy - 0103
rewrite hxy - 0104
exact hold_n - 0105
trans i - 0106
exact hclass_j_left_left - 0107
trans n - 0108
exact hin - 0109
symm - 0110
exact hclass_k_right_left_left - 0111
cases hclass_k_right_right - 0112
cases hclass_k_right_right_right - 0113
have hnk : n = k - 0114
specialize hinjective n - 0115
specialize hinjective k - 0116
specialize hinjective y - 0117
apply hinjective - 0118
exact hnsn - 0119
exact hk - 0120
exact hold_n - 0121
rewrite <- hclass_j_left_right - 0122
rewrite <- hclass_j_left_right - 0123
exact hclass_k_right_right_right_right - 0124
exfalso - 0125
apply hclass_k_right_right_right_left - 0126
symm - 0127
exact hnk - 0128
cases hclass_j_right - 0129
cases hclass_j_right_left - 0130
cases hclass_k - 0131
cases hclass_k_left - 0132
have hxy2 : x = y - 0133
trans a - 0134
symm - 0135
exact hclass_j_right_left_right - 0136
exact hclass_k_left_right - 0137
have hin2 : n = i - 0138
specialize hinjective n - 0139
specialize hinjective i - 0140
specialize hinjective y - 0141
apply hinjective - 0142
exact hnsn - 0143
exact hisn - 0144
exact hold_n - 0145
rewrite <- hxy2 - 0146
rewrite <- hxy2 - 0147
exact hold_i - 0148
trans n - 0149
exact hclass_j_right_left_left - 0150
trans i - 0151
exact hin2 - 0152
symm - 0153
exact hclass_k_left_left - 0154
cases hclass_k_right - 0155
cases hclass_k_right_left - 0156
trans n - 0157
exact hclass_j_right_left_left - 0158
symm - 0159
exact hclass_k_right_left_left - 0160
cases hclass_k_right_right - 0161
cases hclass_k_right_right_right - 0162
have hik : i = k - 0163
specialize hinjective i - 0164
specialize hinjective k - 0165
specialize hinjective x - 0166
apply hinjective - 0167
exact hisn - 0168
exact hk - 0169
exact hold_i - 0170
rewrite <- hclass_j_right_left_right - 0171
rewrite <- hclass_j_right_left_right - 0172
exact hclass_k_right_right_right_right - 0173
exfalso - 0174
apply hclass_k_right_right_left - 0175
symm - 0176
exact hik - 0177
cases hclass_j_right_right - 0178
cases hclass_j_right_right_right - 0179
cases hclass_k - 0180
cases hclass_k_left - 0181
have hjn : j = n - 0182
specialize hinjective j - 0183
specialize hinjective n - 0184
specialize hinjective y - 0185
apply hinjective - 0186
exact hj - 0187
exact hnsn - 0188
rewrite <- hclass_k_left_right - 0189
rewrite <- hclass_k_left_right - 0190
exact hclass_j_right_right_right_right - 0191
exact hold_n - 0192
exfalso - 0193
apply hclass_j_right_right_right_left - 0194
exact hjn - 0195
cases hclass_k_right - 0196
cases hclass_k_right_left - 0197
have hji : j = i - 0198
specialize hinjective j - 0199
specialize hinjective i - 0200
specialize hinjective x - 0201
apply hinjective - 0202
exact hj - 0203
exact hisn - 0204
rewrite <- hclass_k_right_left_right - 0205
rewrite <- hclass_k_right_left_right - 0206
exact hclass_j_right_right_right_right - 0207
exact hold_i - 0208
exfalso - 0209
apply hclass_j_right_right_left - 0210
exact hji - 0211
cases hclass_k_right_right - 0212
cases hclass_k_right_right_right - 0213
specialize hinjective j - 0214
specialize hinjective k - 0215
specialize hinjective a - 0216
apply hinjective - 0217
exact hj - 0218
exact hk - 0219
exact hclass_j_right_right_right_right - 0220
exact hclass_k_right_right_right_right