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
∀ bb. ∀ bc. ∀ sb. ∀ sc. ∀ w. ∀ r. (∀ x. Lt(x,r) → ∃ y. ∃ z. BetaAt(bb,bc,x,y) ∧ (BetaAt(sb,sc,x,z) ∧ (x = 0 ∧ (∀ n. Lt(n,w) → ∃ m. BetaAt(y,z,n,m) ∧ (n = 0 ∧ m = 1 ∨ (∃ k. n = S k ∧ m = 0))) ∨ (∃ n. ∃ m. ∃ k. x = S n ∧ (BetaAt(bb,bc,n,m) ∧ (BetaAt(sb,sc,n,k) ∧ (∀ i. Lt(i,w) → ∃ j. BetaAt(y,z,i,j) ∧ (i = 0 ∧ j = 1 ∨ (∃ u. ∃ v. ∃ x0. i = S u ∧ (BetaAt(m,k,u,v) ∧ (BetaAt(m,k,S u,x0) ∧ j = v + x0))))))))))) → ∀ x. Lt(x,r) → ∀ y. ∀ z. BetaAt(bb,bc,x,y) → BetaAt(sb,sc,x,z) → (Lt(x,w) → ∀ n. BetaAt(y,z,x,n) → n = 1) ∧ (∀ n. ∀ m. Lt(x,n) → Lt(n,w) → BetaAt(y,z,n,m) → m = 0)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
19 occurrences
In local proof propositions
59 occurrences
Exact expanded native-PA statement
forall bb bc sb sc w r. (forall bcf_row_index_bptdb_table. (exists bcf_lt_gap_bptdb_table_row_bound. bcf_lt_gap_bptdb_table_row_bound + S (bcf_row_index_bptdb_table) = r) -> exists bcf_row_code_bptdb_table bcf_row_scale_bptdb_table. ((((exists bcf_height_bptdb_table_decoded_row_code. bcf_height_bptdb_table_decoded_row_code + S (bcf_row_code_bptdb_table) = S ((S (bcf_row_index_bptdb_table)) * bc)) /\ exists bcf_quotient_bptdb_table_decoded_row_code. bb = bcf_quotient_bptdb_table_decoded_row_code * S ((S (bcf_row_index_bptdb_table)) * bc) + (bcf_row_code_bptdb_table))) /\ ((((exists bcf_height_bptdb_table_decoded_row_scale. bcf_height_bptdb_table_decoded_row_scale + S (bcf_row_scale_bptdb_table) = S ((S (bcf_row_index_bptdb_table)) * sc)) /\ exists bcf_quotient_bptdb_table_decoded_row_scale. sb = bcf_quotient_bptdb_table_decoded_row_scale * S ((S (bcf_row_index_bptdb_table)) * sc) + (bcf_row_scale_bptdb_table))) /\ ((bcf_row_index_bptdb_table = 0 /\ (forall bcf_index_bptdb_table_zero_row. (exists bcf_lt_gap_bptdb_table_zero_row_bound. bcf_lt_gap_bptdb_table_zero_row_bound + S (bcf_index_bptdb_table_zero_row) = w) -> exists bcf_value_bptdb_table_zero_row. ((((exists bcf_height_bptdb_table_zero_row_entry. bcf_height_bptdb_table_zero_row_entry + S (bcf_value_bptdb_table_zero_row) = S ((S (bcf_index_bptdb_table_zero_row)) * bcf_row_scale_bptdb_table)) /\ exists bcf_quotient_bptdb_table_zero_row_entry. bcf_row_code_bptdb_table = bcf_quotient_bptdb_table_zero_row_entry * S ((S (bcf_index_bptdb_table_zero_row)) * bcf_row_scale_bptdb_table) + (bcf_value_bptdb_table_zero_row))) /\ ((bcf_index_bptdb_table_zero_row = 0 /\ bcf_value_bptdb_table_zero_row = 1) \/ exists bcf_predecessor_bptdb_table_zero_row. bcf_index_bptdb_table_zero_row = S bcf_predecessor_bptdb_table_zero_row /\ bcf_value_bptdb_table_zero_row = 0)))) \/ exists bcf_predecessor_bptdb_table bcf_previous_code_bptdb_table bcf_previous_scale_bptdb_table. bcf_row_index_bptdb_table = S bcf_predecessor_bptdb_table /\ ((((exists bcf_height_bptdb_table_decoded_previous_code. bcf_height_bptdb_table_decoded_previous_code + S (bcf_previous_code_bptdb_table) = S ((S (bcf_predecessor_bptdb_table)) * bc)) /\ exists bcf_quotient_bptdb_table_decoded_previous_code. bb = bcf_quotient_bptdb_table_decoded_previous_code * S ((S (bcf_predecessor_bptdb_table)) * bc) + (bcf_previous_code_bptdb_table))) /\ ((((exists bcf_height_bptdb_table_decoded_previous_scale. bcf_height_bptdb_table_decoded_previous_scale + S (bcf_previous_scale_bptdb_table) = S ((S (bcf_predecessor_bptdb_table)) * sc)) /\ exists bcf_quotient_bptdb_table_decoded_previous_scale. sb = bcf_quotient_bptdb_table_decoded_previous_scale * S ((S (bcf_predecessor_bptdb_table)) * sc) + (bcf_previous_scale_bptdb_table))) /\ (forall bcf_index_bptdb_table_row_step. (exists bcf_lt_gap_bptdb_table_row_step_bound. bcf_lt_gap_bptdb_table_row_step_bound + S (bcf_index_bptdb_table_row_step) = w) -> exists bcf_value_bptdb_table_row_step. ((((exists bcf_height_bptdb_table_row_step_entry. bcf_height_bptdb_table_row_step_entry + S (bcf_value_bptdb_table_row_step) = S ((S (bcf_index_bptdb_table_row_step)) * bcf_row_scale_bptdb_table)) /\ exists bcf_quotient_bptdb_table_row_step_entry. bcf_row_code_bptdb_table = bcf_quotient_bptdb_table_row_step_entry * S ((S (bcf_index_bptdb_table_row_step)) * bcf_row_scale_bptdb_table) + (bcf_value_bptdb_table_row_step))) /\ ((bcf_index_bptdb_table_row_step = 0 /\ bcf_value_bptdb_table_row_step = 1) \/ exists bcf_predecessor_bptdb_table_row_step bcf_left_bptdb_table_row_step bcf_right_bptdb_table_row_step. bcf_index_bptdb_table_row_step = S bcf_predecessor_bptdb_table_row_step /\ ((((exists bcf_height_bptdb_table_row_step_previous_left. bcf_height_bptdb_table_row_step_previous_left + S (bcf_left_bptdb_table_row_step) = S ((S (bcf_predecessor_bptdb_table_row_step)) * bcf_previous_scale_bptdb_table)) /\ exists bcf_quotient_bptdb_table_row_step_previous_left. bcf_previous_code_bptdb_table = bcf_quotient_bptdb_table_row_step_previous_left * S ((S (bcf_predecessor_bptdb_table_row_step)) * bcf_previous_scale_bptdb_table) + (bcf_left_bptdb_table_row_step))) /\ ((((exists bcf_height_bptdb_table_row_step_previous_right. bcf_height_bptdb_table_row_step_previous_right + S (bcf_right_bptdb_table_row_step) = S ((S (S (bcf_predecessor_bptdb_table_row_step))) * bcf_previous_scale_bptdb_table)) /\ exists bcf_quotient_bptdb_table_row_step_previous_right. bcf_previous_code_bptdb_table = bcf_quotient_bptdb_table_row_step_previous_right * S ((S (S (bcf_predecessor_bptdb_table_row_step))) * bcf_previous_scale_bptdb_table) + (bcf_right_bptdb_table_row_step))) /\ bcf_value_bptdb_table_row_step = bcf_left_bptdb_table_row_step + bcf_right_bptdb_table_row_step))))))))))) -> forall i. (exists bcf_lt_gap_bptdb_row_bound. bcf_lt_gap_bptdb_row_bound + S (i) = r) -> forall b c. (((exists bcf_height_bptdb_row_code_at. bcf_height_bptdb_row_code_at + S (b) = S ((S (i)) * bc)) /\ exists bcf_quotient_bptdb_row_code_at. bb = bcf_quotient_bptdb_row_code_at * S ((S (i)) * bc) + (b))) -> (((exists bcf_height_bptdb_row_scale_at. bcf_height_bptdb_row_scale_at + S (c) = S ((S (i)) * sc)) /\ exists bcf_quotient_bptdb_row_scale_at. sb = bcf_quotient_bptdb_row_scale_at * S ((S (i)) * sc) + (c))) -> ((((exists bcf_lt_gap_bptdb_boundary_diagonal_bound. bcf_lt_gap_bptdb_boundary_diagonal_bound + S (i) = w) -> forall bcf_diagonal_value_bptdb_boundary. (((exists bcf_height_bptdb_boundary_diagonal_at. bcf_height_bptdb_boundary_diagonal_at + S (bcf_diagonal_value_bptdb_boundary) = S ((S (i)) * c)) /\ exists bcf_quotient_bptdb_boundary_diagonal_at. b = bcf_quotient_bptdb_boundary_diagonal_at * S ((S (i)) * c) + (bcf_diagonal_value_bptdb_boundary))) -> bcf_diagonal_value_bptdb_boundary = 1) /\ forall bcf_above_index_bptdb_boundary bcf_above_value_bptdb_boundary. (exists bcf_lt_gap_bptdb_boundary_above_order. bcf_lt_gap_bptdb_boundary_above_order + S (i) = bcf_above_index_bptdb_boundary) -> (exists bcf_lt_gap_bptdb_boundary_above_bound. bcf_lt_gap_bptdb_boundary_above_bound + S (bcf_above_index_bptdb_boundary) = w) -> (((exists bcf_height_bptdb_boundary_above_at. bcf_height_bptdb_boundary_above_at + S (bcf_above_value_bptdb_boundary) = S ((S (bcf_above_index_bptdb_boundary)) * c)) /\ exists bcf_quotient_bptdb_boundary_above_at. b = bcf_quotient_bptdb_boundary_above_at * S ((S (bcf_above_index_bptdb_boundary)) * c) + (bcf_above_value_bptdb_boundary))) -> bcf_above_value_bptdb_boundary = 0))Proof neighborhood
Direct theorem prerequisites
BT000L add_eq_zero_right BT000C succ_ne_zero BT000D succ_injective BT0017 le_of_succ_le_succ BT0019 lt_to_le BT000E le_refl BT0042 beta_at_uniqueDirect 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 (7)
01Fix variables and assumptionsL1–8
02Induction on iL9–14
03Establish hrowL15–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply htable.
- L15
have hrow : ∃ bcf_row_code_bptdb_base_row. ∃ bcf_row_scale_bptdb_base_row. BetaAt(bb,bc,0,bcf_row_code_bptdb_base_row) ∧ (BetaAt(sb,sc,0,bcf_row_scale_bptdb_base_row) ∧ (0 = 0 ∧ (∀ x. Lt(x,w) → ∃ y. BetaAt(bcf_row_code_bptdb_base_row,bcf_row_scale_bptdb_base_row,x,y) ∧ (x = 0 ∧ y = 1 ∨ (∃ z. x = S z ∧ y = 0))) ∨ (∃ x. ∃ y. ∃ z. 0 = S x ∧ (BetaAt(bb,bc,x,y) ∧ (BetaAt(sb,sc,x,z) ∧ (∀ n. Lt(n,w) → ∃ m. BetaAt(bcf_row_code_bptdb_base_row,bcf_row_scale_bptdb_base_row,n,m) ∧ (n = 0 ∧ m = 1 ∨ (∃ k. ∃ i. ∃ j. n = S k ∧ (BetaAt(y,z,k,i) ∧ (BetaAt(y,z,S k,j) ∧ m = i + j))))))))))Definitions: BetaAt(bb,bc,0,bcf_row_code_bptdb_base_row)BetaAt(sb,sc,0,bcf_row_scale_bptdb_base_row)Lt(x,w)BetaAt(bcf_row_code_bptdb_base_row,bcf_row_scale_bptdb_base_row,x,y)BetaAt(bb,bc,x,y)BetaAt(sb,sc,x,z)Lt(n,w)BetaAt(bcf_row_code_bptdb_base_row,bcf_row_scale_bptdb_base_row,n,m)BetaAt(y,z,k,i)BetaAt(y,z,S k,j)Original native command in the exact edition - L16
specialize htable 0 - L17
apply htable - L18
exact hir
04Separate the logical casesL19–22
05Establish hcodeL23–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
06Establish hscaleL32–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
07Separate the logical casesL41–43
08Fix variables and assumptionsL44–46
09Establish hsemanticL47–51
Establish this local claim before using it. It is not an additional assumption.
- L47
have hsemantic : BetaAt(x,x1,0,z)Definitions: BetaAt(x,x1,0,z)Original native command in the exact edition - L48
rewrite <- hcode - L49
rewrite <- hscale - L50
rewrite <- hscale - L51
exact htarget
10Establish hcellL52–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow witness witness right right left right.
- L52
have hcell : ∃ bcf_cell_value_bptdb_base_diagonal_cell. BetaAt(x,x1,0,bcf_cell_value_bptdb_base_diagonal_cell) ∧ (0 = 0 ∧ bcf_cell_value_bptdb_base_diagonal_cell = 1 ∨ (∃ y. 0 = S y ∧ bcf_cell_value_bptdb_base_diagonal_cell = 0))Definitions: BetaAt(x,x1,0,bcf_cell_value_bptdb_base_diagonal_cell)Original native command in the exact edition - L53
specialize hrow_witness_witness_right_right_left_right 0 - L54
apply hrow_witness_witness_right_right_left_right - L55
exact hiw
11Separate the logical casesL56–57
12Establish hvalueL58–66
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
13Separate the logical casesL67–68
14Calculate and transport equalitiesL69–69
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L69
trans x2
15Use earlier factsL70–71
16Separate the logical casesL72–74
17Establish hbadL75–84
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ ne zero.
18Fix variables and assumptionsL85–85
Work with arbitrary variables or the premises of the current implication.
- L85
intro htarget
19Establish hsemanticL86–90
Establish this local claim before using it. It is not an additional assumption.
- L86
have hsemantic : BetaAt(x,x1,j,z)Definitions: BetaAt(x,x1,j,z)Original native command in the exact edition - L87
rewrite <- hcode - L88
rewrite <- hscale - L89
rewrite <- hscale - L90
exact htarget
20Establish hcellL91–94
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow witness witness right right left right.
- L91
have hcell : ∃ bcf_cell_value_bptdb_base_above_cell. BetaAt(x,x1,j,bcf_cell_value_bptdb_base_above_cell) ∧ (j = 0 ∧ bcf_cell_value_bptdb_base_above_cell = 1 ∨ (∃ y. j = S y ∧ bcf_cell_value_bptdb_base_above_cell = 0))Definitions: BetaAt(x,x1,j,bcf_cell_value_bptdb_base_above_cell)Original native command in the exact edition - L92
specialize hrow_witness_witness_right_right_left_right j - L93
apply hrow_witness_witness_right_right_left_right - L94
exact hjw
21Separate the logical casesL95–96
22Establish hvalueL97–105
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
23Separate the logical casesL106–108
24Establish hbadL109–115
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
25Separate the logical casesL116–116
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L116
exfalso
26Use earlier factsL117–119
27Separate the logical casesL120–121
28Calculate and transport equalitiesL122–122
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L122
trans x2
29Use earlier factsL123–124
30Separate the logical casesL125–129
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
31Establish hbadL130–139
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ ne zero.
32Fix variables and assumptionsL140–140
Work with arbitrary variables or the premises of the current implication.
- L140
intro hsb
33Establish hrowL141–144
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply htable.
- L141
have hrow : ∃ bcf_row_code_bptdb_step_row. ∃ bcf_row_scale_bptdb_step_row. BetaAt(bb,bc,S i,bcf_row_code_bptdb_step_row) ∧ (BetaAt(sb,sc,S i,bcf_row_scale_bptdb_step_row) ∧ (S i = 0 ∧ (∀ x. Lt(x,w) → ∃ y. BetaAt(bcf_row_code_bptdb_step_row,bcf_row_scale_bptdb_step_row,x,y) ∧ (x = 0 ∧ y = 1 ∨ (∃ z. x = S z ∧ y = 0))) ∨ (∃ x. ∃ y. ∃ z. S i = S x ∧ (BetaAt(bb,bc,x,y) ∧ (BetaAt(sb,sc,x,z) ∧ (∀ n. Lt(n,w) → ∃ m. BetaAt(bcf_row_code_bptdb_step_row,bcf_row_scale_bptdb_step_row,n,m) ∧ (n = 0 ∧ m = 1 ∨ (∃ k. ∃ j. ∃ u. n = S k ∧ (BetaAt(y,z,k,j) ∧ (BetaAt(y,z,S k,u) ∧ m = j + u))))))))))Definitions: BetaAt(bb,bc,S i,bcf_row_code_bptdb_step_row)BetaAt(sb,sc,S i,bcf_row_scale_bptdb_step_row)Lt(x,w)BetaAt(bcf_row_code_bptdb_step_row,bcf_row_scale_bptdb_step_row,x,y)BetaAt(bb,bc,x,y)BetaAt(sb,sc,x,z)Lt(n,w)BetaAt(bcf_row_code_bptdb_step_row,bcf_row_scale_bptdb_step_row,n,m)BetaAt(y,z,k,j)BetaAt(y,z,S k,u)Original native command in the exact edition - L142
specialize htable (S i) - L143
apply htable - L144
exact hir
34Separate the logical casesL145–148
35Establish hcodeL149–157
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
36Establish hscaleL158–166
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
37Separate the logical casesL167–169
38Use earlier factsL170–172
39Separate the logical casesL173–178
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L173
cases hrow_witness_witness_right_right_right - L174
cases hrow_witness_witness_right_right_right_witness - L175
cases hrow_witness_witness_right_right_right_witness_witness - L176
cases hrow_witness_witness_right_right_right_witness_witness_witness - L177
cases hrow_witness_witness_right_right_right_witness_witness_witness_right - L178
cases hrow_witness_witness_right_right_right_witness_witness_witness_right_right
40Establish hpredecessorL179–183
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ injective.
41Establish hprevious_row_boundL184–188
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt to le.
42Establish hprevious_codeL189–192
Establish this local claim before using it. It is not an additional assumption.
- L189
have hprevious_code : BetaAt(bb,bc,i,x3)Definitions: BetaAt(bb,bc,i,x3)Original native command in the exact edition - L190
rewrite hpredecessor - L191
rewrite hpredecessor - L192
exact hrow_witness_witness_right_right_right_witness_witness_witness_right_left
43Establish hprevious_scaleL193–196
Establish this local claim before using it. It is not an additional assumption.
- L193
have hprevious_scale : BetaAt(sb,sc,i,x4)Definitions: BetaAt(sb,sc,i,x4)Original native command in the exact edition - L194
rewrite hpredecessor - L195
rewrite hpredecessor - L196
exact hrow_witness_witness_right_right_right_witness_witness_witness_right_right_left
44Establish hprevious_familyL197–199
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L197
have hprevious_family : ∀ bcf_row_code_bptdb_previous_family. ∀ bcf_row_scale_bptdb_previous_family. BetaAt(bb,bc,i,bcf_row_code_bptdb_previous_family) → BetaAt(sb,sc,i,bcf_row_scale_bptdb_previous_family) → (Lt(i,w) → ∀ x. BetaAt(bcf_row_code_bptdb_previous_family,bcf_row_scale_bptdb_previous_family,i,x) → x = 1) ∧ (∀ x. ∀ y. Lt(i,x) → Lt(x,w) → BetaAt(bcf_row_code_bptdb_previous_family,bcf_row_scale_bptdb_previous_family,x,y) → y = 0)Definitions: BetaAt(bb,bc,i,bcf_row_code_bptdb_previous_family)BetaAt(sb,sc,i,bcf_row_scale_bptdb_previous_family)Lt(i,w)BetaAt(bcf_row_code_bptdb_previous_family,bcf_row_scale_bptdb_previous_family,i,x)Lt(i,x)Lt(x,w)BetaAt(bcf_row_code_bptdb_previous_family,bcf_row_scale_bptdb_previous_family,x,y)Original native command in the exact edition - L198
apply IH - L199
exact hprevious_row_bound
45Establish hprevious_boundaryL200–205
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprevious family.
- L200
have hprevious_boundary : (Lt(i,w) → ∀ x. BetaAt(x3,x4,i,x) → x = 1) ∧ (∀ x. ∀ y. Lt(i,x) → Lt(x,w) → BetaAt(x3,x4,x,y) → y = 0)Definitions: Lt(i,w)BetaAt(x3,x4,i,x)Lt(i,x)Lt(x,w)BetaAt(x3,x4,x,y)Original native command in the exact edition - L201
specialize hprevious_family x3 - L202
specialize hprevious_family x4 - L203
apply hprevious_family - L204
exact hprevious_code - L205
exact hprevious_scale
46Separate the logical casesL206–207
47Fix variables and assumptionsL208–210
48Establish hsemanticL211–215
Establish this local claim before using it. It is not an additional assumption.
- L211
have hsemantic : BetaAt(x,x1,S i,z)Definitions: BetaAt(x,x1,S i,z)Original native command in the exact edition - L212
rewrite <- hcode - L213
rewrite <- hscale - L214
rewrite <- hscale - L215
exact htarget
49Establish hcellL216–219
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow witness witness right right right witness witness witness right right right.
- L216
have hcell : ∃ bcf_cell_value_bptdb_step_diagonal_cell. BetaAt(x,x1,S i,bcf_cell_value_bptdb_step_diagonal_cell) ∧ (S i = 0 ∧ bcf_cell_value_bptdb_step_diagonal_cell = 1 ∨ (∃ y. ∃ z. ∃ n. S i = S y ∧ (BetaAt(x3,x4,y,z) ∧ (BetaAt(x3,x4,S y,n) ∧ bcf_cell_value_bptdb_step_diagonal_cell = z + n))))Definitions: BetaAt(x,x1,S i,bcf_cell_value_bptdb_step_diagonal_cell)BetaAt(x3,x4,y,z)BetaAt(x3,x4,S y,n)Original native command in the exact edition - L217
specialize hrow_witness_witness_right_right_right_witness_witness_witness_right_right_right (S i) - L218
apply hrow_witness_witness_right_right_right_witness_witness_witness_right_right_right - L219
exact hiw
50Separate the logical casesL220–221
51Establish hvalueL222–230
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
52Separate the logical casesL231–233
53Use earlier factsL234–236
54Separate the logical casesL237–242
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L237
cases hcell_witness_right_right - L238
cases hcell_witness_right_right_witness - L239
cases hcell_witness_right_right_witness_witness - L240
cases hcell_witness_right_right_witness_witness_witness - L241
cases hcell_witness_right_right_witness_witness_witness_right - L242
cases hcell_witness_right_right_witness_witness_witness_right_right
55Establish hcell_predecessorL243–247
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ injective.
56Establish hleft_atL248–251
Establish this local claim before using it. It is not an additional assumption.
- L248
have hleft_at : BetaAt(x3,x4,i,x7)Definitions: BetaAt(x3,x4,i,x7)Original native command in the exact edition - L249
rewrite hcell_predecessor - L250
rewrite hcell_predecessor - L251
exact hcell_witness_right_right_witness_witness_witness_right_left
57Establish hright_atL252–255
Establish this local claim before using it. It is not an additional assumption.
- L252
have hright_at : BetaAt(x3,x4,S i,x8)Definitions: BetaAt(x3,x4,S i,x8)Original native command in the exact edition - L253
rewrite hcell_predecessor - L254
rewrite hcell_predecessor - L255
exact hcell_witness_right_right_witness_witness_witness_right_right_left
58Establish hprevious_diagonal_boundL256–260
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt to le.
59Establish hdiagonal_familyL261–263
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprevious boundary left.
- L261
have hdiagonal_family : ∀ z. BetaAt(x3,x4,i,z) → z = 1Definitions: BetaAt(x3,x4,i,z)Original native command in the exact edition - L262
apply hprevious_boundary_left - L263
exact hprevious_diagonal_bound
60Establish hleft_oneL264–267
61Establish hstrict_successorL268–270
Establish this local claim before using it. It is not an additional assumption.
- L268
have hstrict_successor : Lt(i,S i)Definitions: Lt(i,S i)Original native command in the exact edition - L269
specialize le_refl (S i) - L270
exact le_refl
62Establish hright_zeroL271–280
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprevious boundary right.
- L271
have hright_zero : x8 = 0 - L272
specialize hprevious_boundary_right (S i) - L273
specialize hprevious_boundary_right x8 - L274
apply hprevious_boundary_right - L275
exact hstrict_successor - L276
exact hiw - L277
exact hright_at - L278
trans x5 - L279
exact hvalue - L280
rewrite hcell_witness_right_right_witness_witness_witness_right_right_right
63Calculate and transport equalitiesL281–281
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L281
simp [hleft_one, hright_zero]
64Fix variables and assumptionsL282–286
65Establish hsemanticL287–291
Establish this local claim before using it. It is not an additional assumption.
- L287
have hsemantic : BetaAt(x,x1,j,z)Definitions: BetaAt(x,x1,j,z)Original native command in the exact edition - L288
rewrite <- hcode - L289
rewrite <- hscale - L290
rewrite <- hscale - L291
exact htarget
66Establish hcellL292–295
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow witness witness right right right witness witness witness right right right.
- L292
have hcell : ∃ bcf_cell_value_bptdb_step_above_cell. BetaAt(x,x1,j,bcf_cell_value_bptdb_step_above_cell) ∧ (j = 0 ∧ bcf_cell_value_bptdb_step_above_cell = 1 ∨ (∃ y. ∃ z. ∃ n. j = S y ∧ (BetaAt(x3,x4,y,z) ∧ (BetaAt(x3,x4,S y,n) ∧ bcf_cell_value_bptdb_step_above_cell = z + n))))Definitions: BetaAt(x,x1,j,bcf_cell_value_bptdb_step_above_cell)BetaAt(x3,x4,y,z)BetaAt(x3,x4,S y,n)Original native command in the exact edition - L293
specialize hrow_witness_witness_right_right_right_witness_witness_witness_right_right_right j - L294
apply hrow_witness_witness_right_right_right_witness_witness_witness_right_right_right - L295
exact hjw
67Separate the logical casesL296–297
68Establish hvalueL298–306
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
69Separate the logical casesL307–309
70Establish hbadL310–316
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
71Separate the logical casesL317–317
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L317
exfalso
72Use earlier factsL318–320
73Separate the logical casesL321–326
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L321
cases hcell_witness_right_right - L322
cases hcell_witness_right_right_witness - L323
cases hcell_witness_right_right_witness_witness - L324
cases hcell_witness_right_right_witness_witness_witness - L325
cases hcell_witness_right_right_witness_witness_witness_right - L326
cases hcell_witness_right_right_witness_witness_witness_right_right
74Establish hshifted_orderL327–329
Establish this local claim before using it. It is not an additional assumption.
- L327
have hshifted_order : Lt(S i,S x6)Definitions: Lt(S i,S x6)Original native command in the exact edition - L328
rewrite <- hcell_witness_right_right_witness_witness_witness_left - L329
exact hij
75Establish hprevious_left_orderL330–334
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
76Establish hprevious_right_orderL335–339
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt to le.
- L335
have hprevious_right_order : Lt(i,S x6)Definitions: Lt(i,S x6)Original native command in the exact edition - L336
specialize lt_to_le (S i) - L337
specialize lt_to_le (S x6) - L338
apply lt_to_le - L339
exact hshifted_order
77Establish hprevious_right_boundL340–342
Establish this local claim before using it. It is not an additional assumption.
- L340
have hprevious_right_bound : Lt(S x6,w)Definitions: Lt(S x6,w)Original native command in the exact edition - L341
rewrite <- hcell_witness_right_right_witness_witness_witness_left - L342
exact hjw
78Establish hprevious_left_boundL343–347
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt to le.
79Establish hleft_atL348–349
Establish this local claim before using it. It is not an additional assumption.
- L348
have hleft_at : BetaAt(x3,x4,x6,x7)Definitions: BetaAt(x3,x4,x6,x7)Original native command in the exact edition - L349
exact hcell_witness_right_right_witness_witness_witness_right_left
80Establish hright_atL350–351
Establish this local claim before using it. It is not an additional assumption.
- L350
have hright_at : BetaAt(x3,x4,S x6,x8)Definitions: BetaAt(x3,x4,S x6,x8)Original native command in the exact edition - L351
exact hcell_witness_right_right_witness_witness_witness_right_right_left
81Establish hleft_zeroL352–358
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprevious boundary right.
82Establish hright_zeroL359–368
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprevious boundary right.
- L359
have hright_zero : x8 = 0 - L360
specialize hprevious_boundary_right (S x6) - L361
specialize hprevious_boundary_right x8 - L362
apply hprevious_boundary_right - L363
exact hprevious_right_order - L364
exact hprevious_right_bound - L365
exact hright_at - L366
trans x5 - L367
exact hvalue - L368
rewrite hcell_witness_right_right_witness_witness_witness_right_right_right
83Calculate and transport equalitiesL369–369
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L369
simp [hleft_zero, hright_zero]
Original defined command ledger · 369 lines
- 0001
intro bb - 0002
intro bc - 0003
intro sb - 0004
intro sc - 0005
intro w - 0006
intro r - 0007
intro htable - 0008
intro i - 0009
induction i - 0010
intro hir - 0011
intro b - 0012
intro c - 0013
intro hbb - 0014
intro hsb - 0015
have hrow : ∃ bcf_row_code_bptdb_base_row. ∃ bcf_row_scale_bptdb_base_row. BetaAt(bb,bc,0,bcf_row_code_bptdb_base_row) ∧ (BetaAt(sb,sc,0,bcf_row_scale_bptdb_base_row) ∧ (0 = 0 ∧ (∀ x. Lt(x,w) → ∃ y. BetaAt(bcf_row_code_bptdb_base_row,bcf_row_scale_bptdb_base_row,x,y) ∧ (x = 0 ∧ y = 1 ∨ (∃ z. x = S z ∧ y = 0))) ∨ (∃ x. ∃ y. ∃ z. 0 = S x ∧ (BetaAt(bb,bc,x,y) ∧ (BetaAt(sb,sc,x,z) ∧ (∀ n. Lt(n,w) → ∃ m. BetaAt(bcf_row_code_bptdb_base_row,bcf_row_scale_bptdb_base_row,n,m) ∧ (n = 0 ∧ m = 1 ∨ (∃ k. ∃ i. ∃ j. n = S k ∧ (BetaAt(y,z,k,i) ∧ (BetaAt(y,z,S k,j) ∧ m = i + j))))))))))Exact native replay line
have hrow : exists bcf_row_code_bptdb_base_row bcf_row_scale_bptdb_base_row. ((((exists bcf_height_bptdb_base_row_decoded_row_code. bcf_height_bptdb_base_row_decoded_row_code + S (bcf_row_code_bptdb_base_row) = S ((S (0)) * bc)) /\ exists bcf_quotient_bptdb_base_row_decoded_row_code. bb = bcf_quotient_bptdb_base_row_decoded_row_code * S ((S (0)) * bc) + (bcf_row_code_bptdb_base_row))) /\ ((((exists bcf_height_bptdb_base_row_decoded_row_scale. bcf_height_bptdb_base_row_decoded_row_scale + S (bcf_row_scale_bptdb_base_row) = S ((S (0)) * sc)) /\ exists bcf_quotient_bptdb_base_row_decoded_row_scale. sb = bcf_quotient_bptdb_base_row_decoded_row_scale * S ((S (0)) * sc) + (bcf_row_scale_bptdb_base_row))) /\ ((0 = 0 /\ (forall bcf_index_bptdb_base_row_zero_row. (exists bcf_lt_gap_bptdb_base_row_zero_row_bound. bcf_lt_gap_bptdb_base_row_zero_row_bound + S (bcf_index_bptdb_base_row_zero_row) = w) -> exists bcf_value_bptdb_base_row_zero_row. ((((exists bcf_height_bptdb_base_row_zero_row_entry. bcf_height_bptdb_base_row_zero_row_entry + S (bcf_value_bptdb_base_row_zero_row) = S ((S (bcf_index_bptdb_base_row_zero_row)) * bcf_row_scale_bptdb_base_row)) /\ exists bcf_quotient_bptdb_base_row_zero_row_entry. bcf_row_code_bptdb_base_row = bcf_quotient_bptdb_base_row_zero_row_entry * S ((S (bcf_index_bptdb_base_row_zero_row)) * bcf_row_scale_bptdb_base_row) + (bcf_value_bptdb_base_row_zero_row))) /\ ((bcf_index_bptdb_base_row_zero_row = 0 /\ bcf_value_bptdb_base_row_zero_row = 1) \/ exists bcf_predecessor_bptdb_base_row_zero_row. bcf_index_bptdb_base_row_zero_row = S bcf_predecessor_bptdb_base_row_zero_row /\ bcf_value_bptdb_base_row_zero_row = 0)))) \/ exists bcf_predecessor_bptdb_base_row bcf_previous_code_bptdb_base_row bcf_previous_scale_bptdb_base_row. 0 = S bcf_predecessor_bptdb_base_row /\ ((((exists bcf_height_bptdb_base_row_decoded_previous_code. bcf_height_bptdb_base_row_decoded_previous_code + S (bcf_previous_code_bptdb_base_row) = S ((S (bcf_predecessor_bptdb_base_row)) * bc)) /\ exists bcf_quotient_bptdb_base_row_decoded_previous_code. bb = bcf_quotient_bptdb_base_row_decoded_previous_code * S ((S (bcf_predecessor_bptdb_base_row)) * bc) + (bcf_previous_code_bptdb_base_row))) /\ ((((exists bcf_height_bptdb_base_row_decoded_previous_scale. bcf_height_bptdb_base_row_decoded_previous_scale + S (bcf_previous_scale_bptdb_base_row) = S ((S (bcf_predecessor_bptdb_base_row)) * sc)) /\ exists bcf_quotient_bptdb_base_row_decoded_previous_scale. sb = bcf_quotient_bptdb_base_row_decoded_previous_scale * S ((S (bcf_predecessor_bptdb_base_row)) * sc) + (bcf_previous_scale_bptdb_base_row))) /\ (forall bcf_index_bptdb_base_row_row_step. (exists bcf_lt_gap_bptdb_base_row_row_step_bound. bcf_lt_gap_bptdb_base_row_row_step_bound + S (bcf_index_bptdb_base_row_row_step) = w) -> exists bcf_value_bptdb_base_row_row_step. ((((exists bcf_height_bptdb_base_row_row_step_entry. bcf_height_bptdb_base_row_row_step_entry + S (bcf_value_bptdb_base_row_row_step) = S ((S (bcf_index_bptdb_base_row_row_step)) * bcf_row_scale_bptdb_base_row)) /\ exists bcf_quotient_bptdb_base_row_row_step_entry. bcf_row_code_bptdb_base_row = bcf_quotient_bptdb_base_row_row_step_entry * S ((S (bcf_index_bptdb_base_row_row_step)) * bcf_row_scale_bptdb_base_row) + (bcf_value_bptdb_base_row_row_step))) /\ ((bcf_index_bptdb_base_row_row_step = 0 /\ bcf_value_bptdb_base_row_row_step = 1) \/ exists bcf_predecessor_bptdb_base_row_row_step bcf_left_bptdb_base_row_row_step bcf_right_bptdb_base_row_row_step. bcf_index_bptdb_base_row_row_step = S bcf_predecessor_bptdb_base_row_row_step /\ ((((exists bcf_height_bptdb_base_row_row_step_previous_left. bcf_height_bptdb_base_row_row_step_previous_left + S (bcf_left_bptdb_base_row_row_step) = S ((S (bcf_predecessor_bptdb_base_row_row_step)) * bcf_previous_scale_bptdb_base_row)) /\ exists bcf_quotient_bptdb_base_row_row_step_previous_left. bcf_previous_code_bptdb_base_row = bcf_quotient_bptdb_base_row_row_step_previous_left * S ((S (bcf_predecessor_bptdb_base_row_row_step)) * bcf_previous_scale_bptdb_base_row) + (bcf_left_bptdb_base_row_row_step))) /\ ((((exists bcf_height_bptdb_base_row_row_step_previous_right. bcf_height_bptdb_base_row_row_step_previous_right + S (bcf_right_bptdb_base_row_row_step) = S ((S (S (bcf_predecessor_bptdb_base_row_row_step))) * bcf_previous_scale_bptdb_base_row)) /\ exists bcf_quotient_bptdb_base_row_row_step_previous_right. bcf_previous_code_bptdb_base_row = bcf_quotient_bptdb_base_row_row_step_previous_right * S ((S (S (bcf_predecessor_bptdb_base_row_row_step))) * bcf_previous_scale_bptdb_base_row) + (bcf_right_bptdb_base_row_row_step))) /\ bcf_value_bptdb_base_row_row_step = bcf_left_bptdb_base_row_row_step + bcf_right_bptdb_base_row_row_step)))))))))) - 0016
specialize htable 0 - 0017
apply htable - 0018
exact hir - 0019
cases hrow - 0020
cases hrow_witness - 0021
cases hrow_witness_witness - 0022
cases hrow_witness_witness_right - 0023
have hcode : b = x - 0024
specialize beta_at_unique bb - 0025
specialize beta_at_unique bc - 0026
specialize beta_at_unique 0 - 0027
specialize beta_at_unique b - 0028
specialize beta_at_unique x - 0029
apply beta_at_unique - 0030
exact hbb - 0031
exact hrow_witness_witness_left - 0032
have hscale : c = x1 - 0033
specialize beta_at_unique sb - 0034
specialize beta_at_unique sc - 0035
specialize beta_at_unique 0 - 0036
specialize beta_at_unique c - 0037
specialize beta_at_unique x1 - 0038
apply beta_at_unique - 0039
exact hsb - 0040
exact hrow_witness_witness_right_left - 0041
cases hrow_witness_witness_right_right - 0042
cases hrow_witness_witness_right_right_left - 0043
split - 0044
intro hiw - 0045
intro z - 0046
intro htarget - 0047
have hsemantic : BetaAt(x,x1,0,z)Exact native replay line
have hsemantic : ((exists bcf_height_bptdb_base_diagonal_semantic. bcf_height_bptdb_base_diagonal_semantic + S (z) = S ((S (0)) * x1)) /\ exists bcf_quotient_bptdb_base_diagonal_semantic. x = bcf_quotient_bptdb_base_diagonal_semantic * S ((S (0)) * x1) + (z)) - 0048
rewrite <- hcode - 0049
rewrite <- hscale - 0050
rewrite <- hscale - 0051
exact htarget - 0052
have hcell : ∃ bcf_cell_value_bptdb_base_diagonal_cell. BetaAt(x,x1,0,bcf_cell_value_bptdb_base_diagonal_cell) ∧ (0 = 0 ∧ bcf_cell_value_bptdb_base_diagonal_cell = 1 ∨ (∃ y. 0 = S y ∧ bcf_cell_value_bptdb_base_diagonal_cell = 0))Exact native replay line
have hcell : exists bcf_cell_value_bptdb_base_diagonal_cell. ((((exists bcf_height_bptdb_base_diagonal_cell_entry. bcf_height_bptdb_base_diagonal_cell_entry + S (bcf_cell_value_bptdb_base_diagonal_cell) = S ((S (0)) * x1)) /\ exists bcf_quotient_bptdb_base_diagonal_cell_entry. x = bcf_quotient_bptdb_base_diagonal_cell_entry * S ((S (0)) * x1) + (bcf_cell_value_bptdb_base_diagonal_cell))) /\ ((0 = 0 /\ bcf_cell_value_bptdb_base_diagonal_cell = 1) \/ exists bcf_cell_predecessor_bptdb_base_diagonal_cell. 0 = S bcf_cell_predecessor_bptdb_base_diagonal_cell /\ bcf_cell_value_bptdb_base_diagonal_cell = 0)) - 0053
specialize hrow_witness_witness_right_right_left_right 0 - 0054
apply hrow_witness_witness_right_right_left_right - 0055
exact hiw - 0056
cases hcell - 0057
cases hcell_witness - 0058
have hvalue : z = x2 - 0059
specialize beta_at_unique x - 0060
specialize beta_at_unique x1 - 0061
specialize beta_at_unique 0 - 0062
specialize beta_at_unique z - 0063
specialize beta_at_unique x2 - 0064
apply beta_at_unique - 0065
exact hsemantic - 0066
exact hcell_witness_left - 0067
cases hcell_witness_right - 0068
cases hcell_witness_right_left - 0069
trans x2 - 0070
exact hvalue - 0071
exact hcell_witness_right_left_right - 0072
cases hcell_witness_right_right - 0073
cases hcell_witness_right_right_witness - 0074
exfalso - 0075
have hbad : S x3 = 0 - 0076
symm - 0077
exact hcell_witness_right_right_witness_left - 0078
specialize succ_ne_zero x3 - 0079
apply succ_ne_zero - 0080
exact hbad - 0081
intro j - 0082
intro z - 0083
intro hij - 0084
intro hjw - 0085
intro htarget - 0086
have hsemantic : BetaAt(x,x1,j,z)Exact native replay line
have hsemantic : ((exists bcf_height_bptdb_base_above_semantic. bcf_height_bptdb_base_above_semantic + S (z) = S ((S (j)) * x1)) /\ exists bcf_quotient_bptdb_base_above_semantic. x = bcf_quotient_bptdb_base_above_semantic * S ((S (j)) * x1) + (z)) - 0087
rewrite <- hcode - 0088
rewrite <- hscale - 0089
rewrite <- hscale - 0090
exact htarget - 0091
have hcell : ∃ bcf_cell_value_bptdb_base_above_cell. BetaAt(x,x1,j,bcf_cell_value_bptdb_base_above_cell) ∧ (j = 0 ∧ bcf_cell_value_bptdb_base_above_cell = 1 ∨ (∃ y. j = S y ∧ bcf_cell_value_bptdb_base_above_cell = 0))Exact native replay line
have hcell : exists bcf_cell_value_bptdb_base_above_cell. ((((exists bcf_height_bptdb_base_above_cell_entry. bcf_height_bptdb_base_above_cell_entry + S (bcf_cell_value_bptdb_base_above_cell) = S ((S (j)) * x1)) /\ exists bcf_quotient_bptdb_base_above_cell_entry. x = bcf_quotient_bptdb_base_above_cell_entry * S ((S (j)) * x1) + (bcf_cell_value_bptdb_base_above_cell))) /\ ((j = 0 /\ bcf_cell_value_bptdb_base_above_cell = 1) \/ exists bcf_cell_predecessor_bptdb_base_above_cell. j = S bcf_cell_predecessor_bptdb_base_above_cell /\ bcf_cell_value_bptdb_base_above_cell = 0)) - 0092
specialize hrow_witness_witness_right_right_left_right j - 0093
apply hrow_witness_witness_right_right_left_right - 0094
exact hjw - 0095
cases hcell - 0096
cases hcell_witness - 0097
have hvalue : z = x2 - 0098
specialize beta_at_unique x - 0099
specialize beta_at_unique x1 - 0100
specialize beta_at_unique j - 0101
specialize beta_at_unique z - 0102
specialize beta_at_unique x2 - 0103
apply beta_at_unique - 0104
exact hsemantic - 0105
exact hcell_witness_left - 0106
cases hcell_witness_right - 0107
cases hcell_witness_right_left - 0108
cases hij - 0109
have hbad : S 0 = 0 - 0110
specialize add_eq_zero_right x3 - 0111
specialize add_eq_zero_right (S 0) - 0112
apply add_eq_zero_right - 0113
trans j - 0114
exact hij_witness - 0115
exact hcell_witness_right_left_left - 0116
exfalso - 0117
specialize succ_ne_zero 0 - 0118
apply succ_ne_zero - 0119
exact hbad - 0120
cases hcell_witness_right_right - 0121
cases hcell_witness_right_right_witness - 0122
trans x2 - 0123
exact hvalue - 0124
exact hcell_witness_right_right_witness_right - 0125
cases hrow_witness_witness_right_right_right - 0126
cases hrow_witness_witness_right_right_right_witness - 0127
cases hrow_witness_witness_right_right_right_witness_witness - 0128
cases hrow_witness_witness_right_right_right_witness_witness_witness - 0129
exfalso - 0130
have hbad : S x2 = 0 - 0131
symm - 0132
exact hrow_witness_witness_right_right_right_witness_witness_witness_left - 0133
specialize succ_ne_zero x2 - 0134
apply succ_ne_zero - 0135
exact hbad - 0136
intro hir - 0137
intro b - 0138
intro c - 0139
intro hbb - 0140
intro hsb - 0141
have hrow : ∃ bcf_row_code_bptdb_step_row. ∃ bcf_row_scale_bptdb_step_row. BetaAt(bb,bc,S i,bcf_row_code_bptdb_step_row) ∧ (BetaAt(sb,sc,S i,bcf_row_scale_bptdb_step_row) ∧ (S i = 0 ∧ (∀ x. Lt(x,w) → ∃ y. BetaAt(bcf_row_code_bptdb_step_row,bcf_row_scale_bptdb_step_row,x,y) ∧ (x = 0 ∧ y = 1 ∨ (∃ z. x = S z ∧ y = 0))) ∨ (∃ x. ∃ y. ∃ z. S i = S x ∧ (BetaAt(bb,bc,x,y) ∧ (BetaAt(sb,sc,x,z) ∧ (∀ n. Lt(n,w) → ∃ m. BetaAt(bcf_row_code_bptdb_step_row,bcf_row_scale_bptdb_step_row,n,m) ∧ (n = 0 ∧ m = 1 ∨ (∃ k. ∃ j. ∃ u. n = S k ∧ (BetaAt(y,z,k,j) ∧ (BetaAt(y,z,S k,u) ∧ m = j + u))))))))))Exact native replay line
have hrow : exists bcf_row_code_bptdb_step_row bcf_row_scale_bptdb_step_row. ((((exists bcf_height_bptdb_step_row_decoded_row_code. bcf_height_bptdb_step_row_decoded_row_code + S (bcf_row_code_bptdb_step_row) = S ((S (S i)) * bc)) /\ exists bcf_quotient_bptdb_step_row_decoded_row_code. bb = bcf_quotient_bptdb_step_row_decoded_row_code * S ((S (S i)) * bc) + (bcf_row_code_bptdb_step_row))) /\ ((((exists bcf_height_bptdb_step_row_decoded_row_scale. bcf_height_bptdb_step_row_decoded_row_scale + S (bcf_row_scale_bptdb_step_row) = S ((S (S i)) * sc)) /\ exists bcf_quotient_bptdb_step_row_decoded_row_scale. sb = bcf_quotient_bptdb_step_row_decoded_row_scale * S ((S (S i)) * sc) + (bcf_row_scale_bptdb_step_row))) /\ ((S i = 0 /\ (forall bcf_index_bptdb_step_row_zero_row. (exists bcf_lt_gap_bptdb_step_row_zero_row_bound. bcf_lt_gap_bptdb_step_row_zero_row_bound + S (bcf_index_bptdb_step_row_zero_row) = w) -> exists bcf_value_bptdb_step_row_zero_row. ((((exists bcf_height_bptdb_step_row_zero_row_entry. bcf_height_bptdb_step_row_zero_row_entry + S (bcf_value_bptdb_step_row_zero_row) = S ((S (bcf_index_bptdb_step_row_zero_row)) * bcf_row_scale_bptdb_step_row)) /\ exists bcf_quotient_bptdb_step_row_zero_row_entry. bcf_row_code_bptdb_step_row = bcf_quotient_bptdb_step_row_zero_row_entry * S ((S (bcf_index_bptdb_step_row_zero_row)) * bcf_row_scale_bptdb_step_row) + (bcf_value_bptdb_step_row_zero_row))) /\ ((bcf_index_bptdb_step_row_zero_row = 0 /\ bcf_value_bptdb_step_row_zero_row = 1) \/ exists bcf_predecessor_bptdb_step_row_zero_row. bcf_index_bptdb_step_row_zero_row = S bcf_predecessor_bptdb_step_row_zero_row /\ bcf_value_bptdb_step_row_zero_row = 0)))) \/ exists bcf_predecessor_bptdb_step_row bcf_previous_code_bptdb_step_row bcf_previous_scale_bptdb_step_row. S i = S bcf_predecessor_bptdb_step_row /\ ((((exists bcf_height_bptdb_step_row_decoded_previous_code. bcf_height_bptdb_step_row_decoded_previous_code + S (bcf_previous_code_bptdb_step_row) = S ((S (bcf_predecessor_bptdb_step_row)) * bc)) /\ exists bcf_quotient_bptdb_step_row_decoded_previous_code. bb = bcf_quotient_bptdb_step_row_decoded_previous_code * S ((S (bcf_predecessor_bptdb_step_row)) * bc) + (bcf_previous_code_bptdb_step_row))) /\ ((((exists bcf_height_bptdb_step_row_decoded_previous_scale. bcf_height_bptdb_step_row_decoded_previous_scale + S (bcf_previous_scale_bptdb_step_row) = S ((S (bcf_predecessor_bptdb_step_row)) * sc)) /\ exists bcf_quotient_bptdb_step_row_decoded_previous_scale. sb = bcf_quotient_bptdb_step_row_decoded_previous_scale * S ((S (bcf_predecessor_bptdb_step_row)) * sc) + (bcf_previous_scale_bptdb_step_row))) /\ (forall bcf_index_bptdb_step_row_row_step. (exists bcf_lt_gap_bptdb_step_row_row_step_bound. bcf_lt_gap_bptdb_step_row_row_step_bound + S (bcf_index_bptdb_step_row_row_step) = w) -> exists bcf_value_bptdb_step_row_row_step. ((((exists bcf_height_bptdb_step_row_row_step_entry. bcf_height_bptdb_step_row_row_step_entry + S (bcf_value_bptdb_step_row_row_step) = S ((S (bcf_index_bptdb_step_row_row_step)) * bcf_row_scale_bptdb_step_row)) /\ exists bcf_quotient_bptdb_step_row_row_step_entry. bcf_row_code_bptdb_step_row = bcf_quotient_bptdb_step_row_row_step_entry * S ((S (bcf_index_bptdb_step_row_row_step)) * bcf_row_scale_bptdb_step_row) + (bcf_value_bptdb_step_row_row_step))) /\ ((bcf_index_bptdb_step_row_row_step = 0 /\ bcf_value_bptdb_step_row_row_step = 1) \/ exists bcf_predecessor_bptdb_step_row_row_step bcf_left_bptdb_step_row_row_step bcf_right_bptdb_step_row_row_step. bcf_index_bptdb_step_row_row_step = S bcf_predecessor_bptdb_step_row_row_step /\ ((((exists bcf_height_bptdb_step_row_row_step_previous_left. bcf_height_bptdb_step_row_row_step_previous_left + S (bcf_left_bptdb_step_row_row_step) = S ((S (bcf_predecessor_bptdb_step_row_row_step)) * bcf_previous_scale_bptdb_step_row)) /\ exists bcf_quotient_bptdb_step_row_row_step_previous_left. bcf_previous_code_bptdb_step_row = bcf_quotient_bptdb_step_row_row_step_previous_left * S ((S (bcf_predecessor_bptdb_step_row_row_step)) * bcf_previous_scale_bptdb_step_row) + (bcf_left_bptdb_step_row_row_step))) /\ ((((exists bcf_height_bptdb_step_row_row_step_previous_right. bcf_height_bptdb_step_row_row_step_previous_right + S (bcf_right_bptdb_step_row_row_step) = S ((S (S (bcf_predecessor_bptdb_step_row_row_step))) * bcf_previous_scale_bptdb_step_row)) /\ exists bcf_quotient_bptdb_step_row_row_step_previous_right. bcf_previous_code_bptdb_step_row = bcf_quotient_bptdb_step_row_row_step_previous_right * S ((S (S (bcf_predecessor_bptdb_step_row_row_step))) * bcf_previous_scale_bptdb_step_row) + (bcf_right_bptdb_step_row_row_step))) /\ bcf_value_bptdb_step_row_row_step = bcf_left_bptdb_step_row_row_step + bcf_right_bptdb_step_row_row_step)))))))))) - 0142
specialize htable (S i) - 0143
apply htable - 0144
exact hir - 0145
cases hrow - 0146
cases hrow_witness - 0147
cases hrow_witness_witness - 0148
cases hrow_witness_witness_right - 0149
have hcode : b = x - 0150
specialize beta_at_unique bb - 0151
specialize beta_at_unique bc - 0152
specialize beta_at_unique (S i) - 0153
specialize beta_at_unique b - 0154
specialize beta_at_unique x - 0155
apply beta_at_unique - 0156
exact hbb - 0157
exact hrow_witness_witness_left - 0158
have hscale : c = x1 - 0159
specialize beta_at_unique sb - 0160
specialize beta_at_unique sc - 0161
specialize beta_at_unique (S i) - 0162
specialize beta_at_unique c - 0163
specialize beta_at_unique x1 - 0164
apply beta_at_unique - 0165
exact hsb - 0166
exact hrow_witness_witness_right_left - 0167
cases hrow_witness_witness_right_right - 0168
cases hrow_witness_witness_right_right_left - 0169
exfalso - 0170
specialize succ_ne_zero i - 0171
apply succ_ne_zero - 0172
exact hrow_witness_witness_right_right_left_left - 0173
cases hrow_witness_witness_right_right_right - 0174
cases hrow_witness_witness_right_right_right_witness - 0175
cases hrow_witness_witness_right_right_right_witness_witness - 0176
cases hrow_witness_witness_right_right_right_witness_witness_witness - 0177
cases hrow_witness_witness_right_right_right_witness_witness_witness_right - 0178
cases hrow_witness_witness_right_right_right_witness_witness_witness_right_right - 0179
have hpredecessor : i = x2 - 0180
specialize succ_injective i - 0181
specialize succ_injective x2 - 0182
apply succ_injective - 0183
exact hrow_witness_witness_right_right_right_witness_witness_witness_left - 0184
have hprevious_row_bound : Lt(i,r)Exact native replay line
have hprevious_row_bound : exists bcf_lt_gap_bptdb_previous_row_bound. bcf_lt_gap_bptdb_previous_row_bound + S (i) = r - 0185
specialize lt_to_le (S i) - 0186
specialize lt_to_le r - 0187
apply lt_to_le - 0188
exact hir - 0189
have hprevious_code : BetaAt(bb,bc,i,x3)Exact native replay line
have hprevious_code : ((exists bcf_height_bptdb_previous_code_at. bcf_height_bptdb_previous_code_at + S (x3) = S ((S (i)) * bc)) /\ exists bcf_quotient_bptdb_previous_code_at. bb = bcf_quotient_bptdb_previous_code_at * S ((S (i)) * bc) + (x3)) - 0190
rewrite hpredecessor - 0191
rewrite hpredecessor - 0192
exact hrow_witness_witness_right_right_right_witness_witness_witness_right_left - 0193
have hprevious_scale : BetaAt(sb,sc,i,x4)Exact native replay line
have hprevious_scale : ((exists bcf_height_bptdb_previous_scale_at. bcf_height_bptdb_previous_scale_at + S (x4) = S ((S (i)) * sc)) /\ exists bcf_quotient_bptdb_previous_scale_at. sb = bcf_quotient_bptdb_previous_scale_at * S ((S (i)) * sc) + (x4)) - 0194
rewrite hpredecessor - 0195
rewrite hpredecessor - 0196
exact hrow_witness_witness_right_right_right_witness_witness_witness_right_right_left - 0197
have hprevious_family : ∀ bcf_row_code_bptdb_previous_family. ∀ bcf_row_scale_bptdb_previous_family. BetaAt(bb,bc,i,bcf_row_code_bptdb_previous_family) → BetaAt(sb,sc,i,bcf_row_scale_bptdb_previous_family) → (Lt(i,w) → ∀ x. BetaAt(bcf_row_code_bptdb_previous_family,bcf_row_scale_bptdb_previous_family,i,x) → x = 1) ∧ (∀ x. ∀ y. Lt(i,x) → Lt(x,w) → BetaAt(bcf_row_code_bptdb_previous_family,bcf_row_scale_bptdb_previous_family,x,y) → y = 0)Exact native replay line
have hprevious_family : forall bcf_row_code_bptdb_previous_family bcf_row_scale_bptdb_previous_family. (((exists bcf_height_bptdb_previous_family_code_at. bcf_height_bptdb_previous_family_code_at + S (bcf_row_code_bptdb_previous_family) = S ((S (i)) * bc)) /\ exists bcf_quotient_bptdb_previous_family_code_at. bb = bcf_quotient_bptdb_previous_family_code_at * S ((S (i)) * bc) + (bcf_row_code_bptdb_previous_family))) -> (((exists bcf_height_bptdb_previous_family_scale_at. bcf_height_bptdb_previous_family_scale_at + S (bcf_row_scale_bptdb_previous_family) = S ((S (i)) * sc)) /\ exists bcf_quotient_bptdb_previous_family_scale_at. sb = bcf_quotient_bptdb_previous_family_scale_at * S ((S (i)) * sc) + (bcf_row_scale_bptdb_previous_family))) -> ((((exists bcf_lt_gap_bptdb_previous_family_boundary_diagonal_bound. bcf_lt_gap_bptdb_previous_family_boundary_diagonal_bound + S (i) = w) -> forall bcf_diagonal_value_bptdb_previous_family_boundary. (((exists bcf_height_bptdb_previous_family_boundary_diagonal_at. bcf_height_bptdb_previous_family_boundary_diagonal_at + S (bcf_diagonal_value_bptdb_previous_family_boundary) = S ((S (i)) * bcf_row_scale_bptdb_previous_family)) /\ exists bcf_quotient_bptdb_previous_family_boundary_diagonal_at. bcf_row_code_bptdb_previous_family = bcf_quotient_bptdb_previous_family_boundary_diagonal_at * S ((S (i)) * bcf_row_scale_bptdb_previous_family) + (bcf_diagonal_value_bptdb_previous_family_boundary))) -> bcf_diagonal_value_bptdb_previous_family_boundary = 1) /\ forall bcf_above_index_bptdb_previous_family_boundary bcf_above_value_bptdb_previous_family_boundary. (exists bcf_lt_gap_bptdb_previous_family_boundary_above_order. bcf_lt_gap_bptdb_previous_family_boundary_above_order + S (i) = bcf_above_index_bptdb_previous_family_boundary) -> (exists bcf_lt_gap_bptdb_previous_family_boundary_above_bound. bcf_lt_gap_bptdb_previous_family_boundary_above_bound + S (bcf_above_index_bptdb_previous_family_boundary) = w) -> (((exists bcf_height_bptdb_previous_family_boundary_above_at. bcf_height_bptdb_previous_family_boundary_above_at + S (bcf_above_value_bptdb_previous_family_boundary) = S ((S (bcf_above_index_bptdb_previous_family_boundary)) * bcf_row_scale_bptdb_previous_family)) /\ exists bcf_quotient_bptdb_previous_family_boundary_above_at. bcf_row_code_bptdb_previous_family = bcf_quotient_bptdb_previous_family_boundary_above_at * S ((S (bcf_above_index_bptdb_previous_family_boundary)) * bcf_row_scale_bptdb_previous_family) + (bcf_above_value_bptdb_previous_family_boundary))) -> bcf_above_value_bptdb_previous_family_boundary = 0)) - 0198
apply IH - 0199
exact hprevious_row_bound - 0200
have hprevious_boundary : (Lt(i,w) → ∀ x. BetaAt(x3,x4,i,x) → x = 1) ∧ (∀ x. ∀ y. Lt(i,x) → Lt(x,w) → BetaAt(x3,x4,x,y) → y = 0)Exact native replay line
have hprevious_boundary : (((exists bcf_lt_gap_bptdb_previous_boundary_diagonal_bound. bcf_lt_gap_bptdb_previous_boundary_diagonal_bound + S (i) = w) -> forall bcf_diagonal_value_bptdb_previous_boundary. (((exists bcf_height_bptdb_previous_boundary_diagonal_at. bcf_height_bptdb_previous_boundary_diagonal_at + S (bcf_diagonal_value_bptdb_previous_boundary) = S ((S (i)) * x4)) /\ exists bcf_quotient_bptdb_previous_boundary_diagonal_at. x3 = bcf_quotient_bptdb_previous_boundary_diagonal_at * S ((S (i)) * x4) + (bcf_diagonal_value_bptdb_previous_boundary))) -> bcf_diagonal_value_bptdb_previous_boundary = 1) /\ forall bcf_above_index_bptdb_previous_boundary bcf_above_value_bptdb_previous_boundary. (exists bcf_lt_gap_bptdb_previous_boundary_above_order. bcf_lt_gap_bptdb_previous_boundary_above_order + S (i) = bcf_above_index_bptdb_previous_boundary) -> (exists bcf_lt_gap_bptdb_previous_boundary_above_bound. bcf_lt_gap_bptdb_previous_boundary_above_bound + S (bcf_above_index_bptdb_previous_boundary) = w) -> (((exists bcf_height_bptdb_previous_boundary_above_at. bcf_height_bptdb_previous_boundary_above_at + S (bcf_above_value_bptdb_previous_boundary) = S ((S (bcf_above_index_bptdb_previous_boundary)) * x4)) /\ exists bcf_quotient_bptdb_previous_boundary_above_at. x3 = bcf_quotient_bptdb_previous_boundary_above_at * S ((S (bcf_above_index_bptdb_previous_boundary)) * x4) + (bcf_above_value_bptdb_previous_boundary))) -> bcf_above_value_bptdb_previous_boundary = 0) - 0201
specialize hprevious_family x3 - 0202
specialize hprevious_family x4 - 0203
apply hprevious_family - 0204
exact hprevious_code - 0205
exact hprevious_scale - 0206
cases hprevious_boundary - 0207
split - 0208
intro hiw - 0209
intro z - 0210
intro htarget - 0211
have hsemantic : BetaAt(x,x1,S i,z)Exact native replay line
have hsemantic : ((exists bcf_height_bptdb_step_diagonal_semantic. bcf_height_bptdb_step_diagonal_semantic + S (z) = S ((S (S i)) * x1)) /\ exists bcf_quotient_bptdb_step_diagonal_semantic. x = bcf_quotient_bptdb_step_diagonal_semantic * S ((S (S i)) * x1) + (z)) - 0212
rewrite <- hcode - 0213
rewrite <- hscale - 0214
rewrite <- hscale - 0215
exact htarget - 0216
have hcell : ∃ bcf_cell_value_bptdb_step_diagonal_cell. BetaAt(x,x1,S i,bcf_cell_value_bptdb_step_diagonal_cell) ∧ (S i = 0 ∧ bcf_cell_value_bptdb_step_diagonal_cell = 1 ∨ (∃ y. ∃ z. ∃ n. S i = S y ∧ (BetaAt(x3,x4,y,z) ∧ (BetaAt(x3,x4,S y,n) ∧ bcf_cell_value_bptdb_step_diagonal_cell = z + n))))Exact native replay line
have hcell : exists bcf_cell_value_bptdb_step_diagonal_cell. ((((exists bcf_height_bptdb_step_diagonal_cell_entry. bcf_height_bptdb_step_diagonal_cell_entry + S (bcf_cell_value_bptdb_step_diagonal_cell) = S ((S (S i)) * x1)) /\ exists bcf_quotient_bptdb_step_diagonal_cell_entry. x = bcf_quotient_bptdb_step_diagonal_cell_entry * S ((S (S i)) * x1) + (bcf_cell_value_bptdb_step_diagonal_cell))) /\ ((S i = 0 /\ bcf_cell_value_bptdb_step_diagonal_cell = 1) \/ exists bcf_cell_predecessor_bptdb_step_diagonal_cell bcf_cell_left_bptdb_step_diagonal_cell bcf_cell_right_bptdb_step_diagonal_cell. S i = S bcf_cell_predecessor_bptdb_step_diagonal_cell /\ ((((exists bcf_height_bptdb_step_diagonal_cell_previous_left. bcf_height_bptdb_step_diagonal_cell_previous_left + S (bcf_cell_left_bptdb_step_diagonal_cell) = S ((S (bcf_cell_predecessor_bptdb_step_diagonal_cell)) * x4)) /\ exists bcf_quotient_bptdb_step_diagonal_cell_previous_left. x3 = bcf_quotient_bptdb_step_diagonal_cell_previous_left * S ((S (bcf_cell_predecessor_bptdb_step_diagonal_cell)) * x4) + (bcf_cell_left_bptdb_step_diagonal_cell))) /\ ((((exists bcf_height_bptdb_step_diagonal_cell_previous_right. bcf_height_bptdb_step_diagonal_cell_previous_right + S (bcf_cell_right_bptdb_step_diagonal_cell) = S ((S (S (bcf_cell_predecessor_bptdb_step_diagonal_cell))) * x4)) /\ exists bcf_quotient_bptdb_step_diagonal_cell_previous_right. x3 = bcf_quotient_bptdb_step_diagonal_cell_previous_right * S ((S (S (bcf_cell_predecessor_bptdb_step_diagonal_cell))) * x4) + (bcf_cell_right_bptdb_step_diagonal_cell))) /\ bcf_cell_value_bptdb_step_diagonal_cell = bcf_cell_left_bptdb_step_diagonal_cell + bcf_cell_right_bptdb_step_diagonal_cell)))) - 0217
specialize hrow_witness_witness_right_right_right_witness_witness_witness_right_right_right (S i) - 0218
apply hrow_witness_witness_right_right_right_witness_witness_witness_right_right_right - 0219
exact hiw - 0220
cases hcell - 0221
cases hcell_witness - 0222
have hvalue : z = x5 - 0223
specialize beta_at_unique x - 0224
specialize beta_at_unique x1 - 0225
specialize beta_at_unique (S i) - 0226
specialize beta_at_unique z - 0227
specialize beta_at_unique x5 - 0228
apply beta_at_unique - 0229
exact hsemantic - 0230
exact hcell_witness_left - 0231
cases hcell_witness_right - 0232
cases hcell_witness_right_left - 0233
exfalso - 0234
specialize succ_ne_zero i - 0235
apply succ_ne_zero - 0236
exact hcell_witness_right_left_left - 0237
cases hcell_witness_right_right - 0238
cases hcell_witness_right_right_witness - 0239
cases hcell_witness_right_right_witness_witness - 0240
cases hcell_witness_right_right_witness_witness_witness - 0241
cases hcell_witness_right_right_witness_witness_witness_right - 0242
cases hcell_witness_right_right_witness_witness_witness_right_right - 0243
have hcell_predecessor : i = x6 - 0244
specialize succ_injective i - 0245
specialize succ_injective x6 - 0246
apply succ_injective - 0247
exact hcell_witness_right_right_witness_witness_witness_left - 0248
have hleft_at : BetaAt(x3,x4,i,x7)Exact native replay line
have hleft_at : ((exists bcf_height_bptdb_step_previous_left. bcf_height_bptdb_step_previous_left + S (x7) = S ((S (i)) * x4)) /\ exists bcf_quotient_bptdb_step_previous_left. x3 = bcf_quotient_bptdb_step_previous_left * S ((S (i)) * x4) + (x7)) - 0249
rewrite hcell_predecessor - 0250
rewrite hcell_predecessor - 0251
exact hcell_witness_right_right_witness_witness_witness_right_left - 0252
have hright_at : BetaAt(x3,x4,S i,x8)Exact native replay line
have hright_at : ((exists bcf_height_bptdb_step_previous_right. bcf_height_bptdb_step_previous_right + S (x8) = S ((S (S i)) * x4)) /\ exists bcf_quotient_bptdb_step_previous_right. x3 = bcf_quotient_bptdb_step_previous_right * S ((S (S i)) * x4) + (x8)) - 0253
rewrite hcell_predecessor - 0254
rewrite hcell_predecessor - 0255
exact hcell_witness_right_right_witness_witness_witness_right_right_left - 0256
have hprevious_diagonal_bound : Lt(i,w)Exact native replay line
have hprevious_diagonal_bound : exists bcf_lt_gap_bptdb_previous_diagonal_bound. bcf_lt_gap_bptdb_previous_diagonal_bound + S (i) = w - 0257
specialize lt_to_le (S i) - 0258
specialize lt_to_le w - 0259
apply lt_to_le - 0260
exact hiw - 0261
have hdiagonal_family : ∀ z. BetaAt(x3,x4,i,z) → z = 1Exact native replay line
have hdiagonal_family : forall z. (((exists bcf_height_bptdb_previous_diagonal_family. bcf_height_bptdb_previous_diagonal_family + S (z) = S ((S (i)) * x4)) /\ exists bcf_quotient_bptdb_previous_diagonal_family. x3 = bcf_quotient_bptdb_previous_diagonal_family * S ((S (i)) * x4) + (z))) -> z = 1 - 0262
apply hprevious_boundary_left - 0263
exact hprevious_diagonal_bound - 0264
have hleft_one : x7 = 1 - 0265
specialize hdiagonal_family x7 - 0266
apply hdiagonal_family - 0267
exact hleft_at - 0268
have hstrict_successor : Lt(i,S i)Exact native replay line
have hstrict_successor : exists bcf_lt_gap_bptdb_strict_successor. bcf_lt_gap_bptdb_strict_successor + S (i) = S i - 0269
specialize le_refl (S i) - 0270
exact le_refl - 0271
have hright_zero : x8 = 0 - 0272
specialize hprevious_boundary_right (S i) - 0273
specialize hprevious_boundary_right x8 - 0274
apply hprevious_boundary_right - 0275
exact hstrict_successor - 0276
exact hiw - 0277
exact hright_at - 0278
trans x5 - 0279
exact hvalue - 0280
rewrite hcell_witness_right_right_witness_witness_witness_right_right_right - 0281
simp [hleft_one, hright_zero] - 0282
intro j - 0283
intro z - 0284
intro hij - 0285
intro hjw - 0286
intro htarget - 0287
have hsemantic : BetaAt(x,x1,j,z)Exact native replay line
have hsemantic : ((exists bcf_height_bptdb_step_above_semantic. bcf_height_bptdb_step_above_semantic + S (z) = S ((S (j)) * x1)) /\ exists bcf_quotient_bptdb_step_above_semantic. x = bcf_quotient_bptdb_step_above_semantic * S ((S (j)) * x1) + (z)) - 0288
rewrite <- hcode - 0289
rewrite <- hscale - 0290
rewrite <- hscale - 0291
exact htarget - 0292
have hcell : ∃ bcf_cell_value_bptdb_step_above_cell. BetaAt(x,x1,j,bcf_cell_value_bptdb_step_above_cell) ∧ (j = 0 ∧ bcf_cell_value_bptdb_step_above_cell = 1 ∨ (∃ y. ∃ z. ∃ n. j = S y ∧ (BetaAt(x3,x4,y,z) ∧ (BetaAt(x3,x4,S y,n) ∧ bcf_cell_value_bptdb_step_above_cell = z + n))))Exact native replay line
have hcell : exists bcf_cell_value_bptdb_step_above_cell. ((((exists bcf_height_bptdb_step_above_cell_entry. bcf_height_bptdb_step_above_cell_entry + S (bcf_cell_value_bptdb_step_above_cell) = S ((S (j)) * x1)) /\ exists bcf_quotient_bptdb_step_above_cell_entry. x = bcf_quotient_bptdb_step_above_cell_entry * S ((S (j)) * x1) + (bcf_cell_value_bptdb_step_above_cell))) /\ ((j = 0 /\ bcf_cell_value_bptdb_step_above_cell = 1) \/ exists bcf_cell_predecessor_bptdb_step_above_cell bcf_cell_left_bptdb_step_above_cell bcf_cell_right_bptdb_step_above_cell. j = S bcf_cell_predecessor_bptdb_step_above_cell /\ ((((exists bcf_height_bptdb_step_above_cell_previous_left. bcf_height_bptdb_step_above_cell_previous_left + S (bcf_cell_left_bptdb_step_above_cell) = S ((S (bcf_cell_predecessor_bptdb_step_above_cell)) * x4)) /\ exists bcf_quotient_bptdb_step_above_cell_previous_left. x3 = bcf_quotient_bptdb_step_above_cell_previous_left * S ((S (bcf_cell_predecessor_bptdb_step_above_cell)) * x4) + (bcf_cell_left_bptdb_step_above_cell))) /\ ((((exists bcf_height_bptdb_step_above_cell_previous_right. bcf_height_bptdb_step_above_cell_previous_right + S (bcf_cell_right_bptdb_step_above_cell) = S ((S (S (bcf_cell_predecessor_bptdb_step_above_cell))) * x4)) /\ exists bcf_quotient_bptdb_step_above_cell_previous_right. x3 = bcf_quotient_bptdb_step_above_cell_previous_right * S ((S (S (bcf_cell_predecessor_bptdb_step_above_cell))) * x4) + (bcf_cell_right_bptdb_step_above_cell))) /\ bcf_cell_value_bptdb_step_above_cell = bcf_cell_left_bptdb_step_above_cell + bcf_cell_right_bptdb_step_above_cell)))) - 0293
specialize hrow_witness_witness_right_right_right_witness_witness_witness_right_right_right j - 0294
apply hrow_witness_witness_right_right_right_witness_witness_witness_right_right_right - 0295
exact hjw - 0296
cases hcell - 0297
cases hcell_witness - 0298
have hvalue : z = x5 - 0299
specialize beta_at_unique x - 0300
specialize beta_at_unique x1 - 0301
specialize beta_at_unique j - 0302
specialize beta_at_unique z - 0303
specialize beta_at_unique x5 - 0304
apply beta_at_unique - 0305
exact hsemantic - 0306
exact hcell_witness_left - 0307
cases hcell_witness_right - 0308
cases hcell_witness_right_left - 0309
cases hij - 0310
have hbad : S (S i) = 0 - 0311
specialize add_eq_zero_right x6 - 0312
specialize add_eq_zero_right (S (S i)) - 0313
apply add_eq_zero_right - 0314
trans j - 0315
exact hij_witness - 0316
exact hcell_witness_right_left_left - 0317
exfalso - 0318
specialize succ_ne_zero (S i) - 0319
apply succ_ne_zero - 0320
exact hbad - 0321
cases hcell_witness_right_right - 0322
cases hcell_witness_right_right_witness - 0323
cases hcell_witness_right_right_witness_witness - 0324
cases hcell_witness_right_right_witness_witness_witness - 0325
cases hcell_witness_right_right_witness_witness_witness_right - 0326
cases hcell_witness_right_right_witness_witness_witness_right_right - 0327
have hshifted_order : Lt(S i,S x6)Exact native replay line
have hshifted_order : exists bcf_lt_gap_bptdb_shifted_above_order. bcf_lt_gap_bptdb_shifted_above_order + S (S i) = S x6 - 0328
rewrite <- hcell_witness_right_right_witness_witness_witness_left - 0329
exact hij - 0330
have hprevious_left_order : Lt(i,x6)Exact native replay line
have hprevious_left_order : exists bcf_lt_gap_bptdb_previous_left_order. bcf_lt_gap_bptdb_previous_left_order + S (i) = x6 - 0331
specialize le_of_succ_le_succ (S i) - 0332
specialize le_of_succ_le_succ x6 - 0333
apply le_of_succ_le_succ - 0334
exact hshifted_order - 0335
have hprevious_right_order : Lt(i,S x6)Exact native replay line
have hprevious_right_order : exists bcf_lt_gap_bptdb_previous_right_order. bcf_lt_gap_bptdb_previous_right_order + S (i) = S x6 - 0336
specialize lt_to_le (S i) - 0337
specialize lt_to_le (S x6) - 0338
apply lt_to_le - 0339
exact hshifted_order - 0340
have hprevious_right_bound : Lt(S x6,w)Exact native replay line
have hprevious_right_bound : exists bcf_lt_gap_bptdb_previous_right_bound. bcf_lt_gap_bptdb_previous_right_bound + S (S x6) = w - 0341
rewrite <- hcell_witness_right_right_witness_witness_witness_left - 0342
exact hjw - 0343
have hprevious_left_bound : Lt(x6,w)Exact native replay line
have hprevious_left_bound : exists bcf_lt_gap_bptdb_previous_left_bound. bcf_lt_gap_bptdb_previous_left_bound + S (x6) = w - 0344
specialize lt_to_le (S x6) - 0345
specialize lt_to_le w - 0346
apply lt_to_le - 0347
exact hprevious_right_bound - 0348
have hleft_at : BetaAt(x3,x4,x6,x7)Exact native replay line
have hleft_at : ((exists bcf_height_bptdb_above_previous_left. bcf_height_bptdb_above_previous_left + S (x7) = S ((S (x6)) * x4)) /\ exists bcf_quotient_bptdb_above_previous_left. x3 = bcf_quotient_bptdb_above_previous_left * S ((S (x6)) * x4) + (x7)) - 0349
exact hcell_witness_right_right_witness_witness_witness_right_left - 0350
have hright_at : BetaAt(x3,x4,S x6,x8)Exact native replay line
have hright_at : ((exists bcf_height_bptdb_above_previous_right. bcf_height_bptdb_above_previous_right + S (x8) = S ((S (S x6)) * x4)) /\ exists bcf_quotient_bptdb_above_previous_right. x3 = bcf_quotient_bptdb_above_previous_right * S ((S (S x6)) * x4) + (x8)) - 0351
exact hcell_witness_right_right_witness_witness_witness_right_right_left - 0352
have hleft_zero : x7 = 0 - 0353
specialize hprevious_boundary_right x6 - 0354
specialize hprevious_boundary_right x7 - 0355
apply hprevious_boundary_right - 0356
exact hprevious_left_order - 0357
exact hprevious_left_bound - 0358
exact hleft_at - 0359
have hright_zero : x8 = 0 - 0360
specialize hprevious_boundary_right (S x6) - 0361
specialize hprevious_boundary_right x8 - 0362
apply hprevious_boundary_right - 0363
exact hprevious_right_order - 0364
exact hprevious_right_bound - 0365
exact hright_at - 0366
trans x5 - 0367
exact hvalue - 0368
rewrite hcell_witness_right_right_witness_witness_witness_right_right_right - 0369
simp [hleft_zero, hright_zero]