LU000Z · theorem body

lucas_prime_shift_high_column

Alpha v34 checked-use · independently kernel and Lean verified; not Stable

For every unrestricted upper offset and column index, shifting a Pascal row by a prime adds exactly the original coefficient and its prime-shifted predecessor modulo that prime.

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

∀ p. ∀ a. ∀ j. ∀ C. ∀ A. ∀ B. Prime(p)Choose(p + a,p + j,C)Choose(a,p + j,A)Choose(a,j,B)ModEq(p,C,A + B)

Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.

Definitions used by this theorem

In the theorem statement

In local proof propositions

Exact expanded first-order statement
forall p a j C A B. ((~(p = 1) /\ forall frm_prime_left_lucas_convolution_prime frm_prime_right_lucas_convolution_prime. p = frm_prime_left_lucas_convolution_prime * frm_prime_right_lucas_convolution_prime -> frm_prime_left_lucas_convolution_prime = 1 \/ frm_prime_right_lucas_convolution_prime = 1)) -> (((exists bcf_lt_gap_lucas_convolution_high_target_out_of_range. bcf_lt_gap_lucas_convolution_high_target_out_of_range + S (p + a) = p + j) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_target_in_range. bcf_le_gap_lucas_convolution_high_target_in_range + (p + j) = p + a) /\ (exists bcf_row_code_code_lucas_convolution_high_target bcf_row_code_scale_lucas_convolution_high_target bcf_row_scale_code_lucas_convolution_high_target bcf_row_scale_scale_lucas_convolution_high_target bcf_row_code_lucas_convolution_high_target bcf_row_scale_lucas_convolution_high_target. ((forall bcf_row_index_lucas_convolution_high_target_table. (exists bcf_lt_gap_lucas_convolution_high_target_table_row_bound. bcf_lt_gap_lucas_convolution_high_target_table_row_bound + S (bcf_row_index_lucas_convolution_high_target_table) = S (p + a)) -> exists bcf_row_code_lucas_convolution_high_target_table bcf_row_scale_lucas_convolution_high_target_table. ((((exists bcf_height_lucas_convolution_high_target_table_decoded_row_code. bcf_height_lucas_convolution_high_target_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_target_table) = S ((S (bcf_row_index_lucas_convolution_high_target_table)) * bcf_row_code_scale_lucas_convolution_high_target)) /\ exists bcf_quotient_lucas_convolution_high_target_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_target = bcf_quotient_lucas_convolution_high_target_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_target_table)) * bcf_row_code_scale_lucas_convolution_high_target) + (bcf_row_code_lucas_convolution_high_target_table))) /\ ((((exists bcf_height_lucas_convolution_high_target_table_decoded_row_scale. bcf_height_lucas_convolution_high_target_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_target_table) = S ((S (bcf_row_index_lucas_convolution_high_target_table)) * bcf_row_scale_scale_lucas_convolution_high_target)) /\ exists bcf_quotient_lucas_convolution_high_target_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_target = bcf_quotient_lucas_convolution_high_target_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_target_table)) * bcf_row_scale_scale_lucas_convolution_high_target) + (bcf_row_scale_lucas_convolution_high_target_table))) /\ ((bcf_row_index_lucas_convolution_high_target_table = 0 /\ (forall bcf_index_lucas_convolution_high_target_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_target_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_target_table_zero_row_bound + S (bcf_index_lucas_convolution_high_target_table_zero_row) = S (p + a)) -> exists bcf_value_lucas_convolution_high_target_table_zero_row. ((((exists bcf_height_lucas_convolution_high_target_table_zero_row_entry. bcf_height_lucas_convolution_high_target_table_zero_row_entry + S (bcf_value_lucas_convolution_high_target_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_target_table_zero_row)) * bcf_row_scale_lucas_convolution_high_target_table)) /\ exists bcf_quotient_lucas_convolution_high_target_table_zero_row_entry. bcf_row_code_lucas_convolution_high_target_table = bcf_quotient_lucas_convolution_high_target_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_target_table_zero_row)) * bcf_row_scale_lucas_convolution_high_target_table) + (bcf_value_lucas_convolution_high_target_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_target_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_target_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_target_table_zero_row. bcf_index_lucas_convolution_high_target_table_zero_row = S bcf_predecessor_lucas_convolution_high_target_table_zero_row /\ bcf_value_lucas_convolution_high_target_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_target_table bcf_previous_code_lucas_convolution_high_target_table bcf_previous_scale_lucas_convolution_high_target_table. bcf_row_index_lucas_convolution_high_target_table = S bcf_predecessor_lucas_convolution_high_target_table /\ ((((exists bcf_height_lucas_convolution_high_target_table_decoded_previous_code. bcf_height_lucas_convolution_high_target_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_target_table) = S ((S (bcf_predecessor_lucas_convolution_high_target_table)) * bcf_row_code_scale_lucas_convolution_high_target)) /\ exists bcf_quotient_lucas_convolution_high_target_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_target = bcf_quotient_lucas_convolution_high_target_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_target_table)) * bcf_row_code_scale_lucas_convolution_high_target) + (bcf_previous_code_lucas_convolution_high_target_table))) /\ ((((exists bcf_height_lucas_convolution_high_target_table_decoded_previous_scale. bcf_height_lucas_convolution_high_target_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_target_table) = S ((S (bcf_predecessor_lucas_convolution_high_target_table)) * bcf_row_scale_scale_lucas_convolution_high_target)) /\ exists bcf_quotient_lucas_convolution_high_target_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_target = bcf_quotient_lucas_convolution_high_target_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_target_table)) * bcf_row_scale_scale_lucas_convolution_high_target) + (bcf_previous_scale_lucas_convolution_high_target_table))) /\ (forall bcf_index_lucas_convolution_high_target_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_target_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_target_table_row_step_bound + S (bcf_index_lucas_convolution_high_target_table_row_step) = S (p + a)) -> exists bcf_value_lucas_convolution_high_target_table_row_step. ((((exists bcf_height_lucas_convolution_high_target_table_row_step_entry. bcf_height_lucas_convolution_high_target_table_row_step_entry + S (bcf_value_lucas_convolution_high_target_table_row_step) = S ((S (bcf_index_lucas_convolution_high_target_table_row_step)) * bcf_row_scale_lucas_convolution_high_target_table)) /\ exists bcf_quotient_lucas_convolution_high_target_table_row_step_entry. bcf_row_code_lucas_convolution_high_target_table = bcf_quotient_lucas_convolution_high_target_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_target_table_row_step)) * bcf_row_scale_lucas_convolution_high_target_table) + (bcf_value_lucas_convolution_high_target_table_row_step))) /\ ((bcf_index_lucas_convolution_high_target_table_row_step = 0 /\ bcf_value_lucas_convolution_high_target_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_target_table_row_step bcf_left_lucas_convolution_high_target_table_row_step bcf_right_lucas_convolution_high_target_table_row_step. bcf_index_lucas_convolution_high_target_table_row_step = S bcf_predecessor_lucas_convolution_high_target_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_target_table_row_step_previous_left. bcf_height_lucas_convolution_high_target_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_target_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_target_table_row_step)) * bcf_previous_scale_lucas_convolution_high_target_table)) /\ exists bcf_quotient_lucas_convolution_high_target_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_target_table = bcf_quotient_lucas_convolution_high_target_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_target_table_row_step)) * bcf_previous_scale_lucas_convolution_high_target_table) + (bcf_left_lucas_convolution_high_target_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_target_table_row_step_previous_right. bcf_height_lucas_convolution_high_target_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_target_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_target_table_row_step))) * bcf_previous_scale_lucas_convolution_high_target_table)) /\ exists bcf_quotient_lucas_convolution_high_target_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_target_table = bcf_quotient_lucas_convolution_high_target_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_target_table_row_step))) * bcf_previous_scale_lucas_convolution_high_target_table) + (bcf_right_lucas_convolution_high_target_table_row_step))) /\ bcf_value_lucas_convolution_high_target_table_row_step = bcf_left_lucas_convolution_high_target_table_row_step + bcf_right_lucas_convolution_high_target_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_target_decoded_row_code. bcf_height_lucas_convolution_high_target_decoded_row_code + S (bcf_row_code_lucas_convolution_high_target) = S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_target)) /\ exists bcf_quotient_lucas_convolution_high_target_decoded_row_code. bcf_row_code_code_lucas_convolution_high_target = bcf_quotient_lucas_convolution_high_target_decoded_row_code * S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_target) + (bcf_row_code_lucas_convolution_high_target))) /\ ((((exists bcf_height_lucas_convolution_high_target_decoded_row_scale. bcf_height_lucas_convolution_high_target_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_target) = S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_target)) /\ exists bcf_quotient_lucas_convolution_high_target_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_target = bcf_quotient_lucas_convolution_high_target_decoded_row_scale * S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_target) + (bcf_row_scale_lucas_convolution_high_target))) /\ (((exists bcf_height_lucas_convolution_high_target_decoded_value. bcf_height_lucas_convolution_high_target_decoded_value + S (C) = S ((S (p + j)) * bcf_row_scale_lucas_convolution_high_target)) /\ exists bcf_quotient_lucas_convolution_high_target_decoded_value. bcf_row_code_lucas_convolution_high_target = bcf_quotient_lucas_convolution_high_target_decoded_value * S ((S (p + j)) * bcf_row_scale_lucas_convolution_high_target) + (C))))))))) -> (((exists bcf_lt_gap_lucas_convolution_high_upper_tail_out_of_range. bcf_lt_gap_lucas_convolution_high_upper_tail_out_of_range + S (a) = p + j) /\ A = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_upper_tail_in_range. bcf_le_gap_lucas_convolution_high_upper_tail_in_range + (p + j) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_upper_tail bcf_row_code_scale_lucas_convolution_high_upper_tail bcf_row_scale_code_lucas_convolution_high_upper_tail bcf_row_scale_scale_lucas_convolution_high_upper_tail bcf_row_code_lucas_convolution_high_upper_tail bcf_row_scale_lucas_convolution_high_upper_tail. ((forall bcf_row_index_lucas_convolution_high_upper_tail_table. (exists bcf_lt_gap_lucas_convolution_high_upper_tail_table_row_bound. bcf_lt_gap_lucas_convolution_high_upper_tail_table_row_bound + S (bcf_row_index_lucas_convolution_high_upper_tail_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_upper_tail_table bcf_row_scale_lucas_convolution_high_upper_tail_table. ((((exists bcf_height_lucas_convolution_high_upper_tail_table_decoded_row_code. bcf_height_lucas_convolution_high_upper_tail_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_upper_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_upper_tail_table)) * bcf_row_code_scale_lucas_convolution_high_upper_tail)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_upper_tail = bcf_quotient_lucas_convolution_high_upper_tail_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_upper_tail_table)) * bcf_row_code_scale_lucas_convolution_high_upper_tail) + (bcf_row_code_lucas_convolution_high_upper_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_upper_tail_table_decoded_row_scale. bcf_height_lucas_convolution_high_upper_tail_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_upper_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_upper_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_upper_tail)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_upper_tail = bcf_quotient_lucas_convolution_high_upper_tail_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_upper_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_upper_tail) + (bcf_row_scale_lucas_convolution_high_upper_tail_table))) /\ ((bcf_row_index_lucas_convolution_high_upper_tail_table = 0 /\ (forall bcf_index_lucas_convolution_high_upper_tail_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_upper_tail_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_upper_tail_table_zero_row_bound + S (bcf_index_lucas_convolution_high_upper_tail_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_upper_tail_table_zero_row. ((((exists bcf_height_lucas_convolution_high_upper_tail_table_zero_row_entry. bcf_height_lucas_convolution_high_upper_tail_table_zero_row_entry + S (bcf_value_lucas_convolution_high_upper_tail_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_upper_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_upper_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_table_zero_row_entry. bcf_row_code_lucas_convolution_high_upper_tail_table = bcf_quotient_lucas_convolution_high_upper_tail_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_upper_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_upper_tail_table) + (bcf_value_lucas_convolution_high_upper_tail_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_upper_tail_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_upper_tail_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_upper_tail_table_zero_row. bcf_index_lucas_convolution_high_upper_tail_table_zero_row = S bcf_predecessor_lucas_convolution_high_upper_tail_table_zero_row /\ bcf_value_lucas_convolution_high_upper_tail_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_upper_tail_table bcf_previous_code_lucas_convolution_high_upper_tail_table bcf_previous_scale_lucas_convolution_high_upper_tail_table. bcf_row_index_lucas_convolution_high_upper_tail_table = S bcf_predecessor_lucas_convolution_high_upper_tail_table /\ ((((exists bcf_height_lucas_convolution_high_upper_tail_table_decoded_previous_code. bcf_height_lucas_convolution_high_upper_tail_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_upper_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_upper_tail_table)) * bcf_row_code_scale_lucas_convolution_high_upper_tail)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_upper_tail = bcf_quotient_lucas_convolution_high_upper_tail_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_upper_tail_table)) * bcf_row_code_scale_lucas_convolution_high_upper_tail) + (bcf_previous_code_lucas_convolution_high_upper_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_upper_tail_table_decoded_previous_scale. bcf_height_lucas_convolution_high_upper_tail_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_upper_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_upper_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_upper_tail)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_upper_tail = bcf_quotient_lucas_convolution_high_upper_tail_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_upper_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_upper_tail) + (bcf_previous_scale_lucas_convolution_high_upper_tail_table))) /\ (forall bcf_index_lucas_convolution_high_upper_tail_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_upper_tail_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_upper_tail_table_row_step_bound + S (bcf_index_lucas_convolution_high_upper_tail_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_upper_tail_table_row_step. ((((exists bcf_height_lucas_convolution_high_upper_tail_table_row_step_entry. bcf_height_lucas_convolution_high_upper_tail_table_row_step_entry + S (bcf_value_lucas_convolution_high_upper_tail_table_row_step) = S ((S (bcf_index_lucas_convolution_high_upper_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_upper_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_table_row_step_entry. bcf_row_code_lucas_convolution_high_upper_tail_table = bcf_quotient_lucas_convolution_high_upper_tail_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_upper_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_upper_tail_table) + (bcf_value_lucas_convolution_high_upper_tail_table_row_step))) /\ ((bcf_index_lucas_convolution_high_upper_tail_table_row_step = 0 /\ bcf_value_lucas_convolution_high_upper_tail_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_upper_tail_table_row_step bcf_left_lucas_convolution_high_upper_tail_table_row_step bcf_right_lucas_convolution_high_upper_tail_table_row_step. bcf_index_lucas_convolution_high_upper_tail_table_row_step = S bcf_predecessor_lucas_convolution_high_upper_tail_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_upper_tail_table_row_step_previous_left. bcf_height_lucas_convolution_high_upper_tail_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_upper_tail_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_upper_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_upper_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_upper_tail_table = bcf_quotient_lucas_convolution_high_upper_tail_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_upper_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_upper_tail_table) + (bcf_left_lucas_convolution_high_upper_tail_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_upper_tail_table_row_step_previous_right. bcf_height_lucas_convolution_high_upper_tail_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_upper_tail_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_upper_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_upper_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_upper_tail_table = bcf_quotient_lucas_convolution_high_upper_tail_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_upper_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_upper_tail_table) + (bcf_right_lucas_convolution_high_upper_tail_table_row_step))) /\ bcf_value_lucas_convolution_high_upper_tail_table_row_step = bcf_left_lucas_convolution_high_upper_tail_table_row_step + bcf_right_lucas_convolution_high_upper_tail_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_upper_tail_decoded_row_code. bcf_height_lucas_convolution_high_upper_tail_decoded_row_code + S (bcf_row_code_lucas_convolution_high_upper_tail) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_upper_tail)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_decoded_row_code. bcf_row_code_code_lucas_convolution_high_upper_tail = bcf_quotient_lucas_convolution_high_upper_tail_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_upper_tail) + (bcf_row_code_lucas_convolution_high_upper_tail))) /\ ((((exists bcf_height_lucas_convolution_high_upper_tail_decoded_row_scale. bcf_height_lucas_convolution_high_upper_tail_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_upper_tail) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_upper_tail)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_upper_tail = bcf_quotient_lucas_convolution_high_upper_tail_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_upper_tail) + (bcf_row_scale_lucas_convolution_high_upper_tail))) /\ (((exists bcf_height_lucas_convolution_high_upper_tail_decoded_value. bcf_height_lucas_convolution_high_upper_tail_decoded_value + S (A) = S ((S (p + j)) * bcf_row_scale_lucas_convolution_high_upper_tail)) /\ exists bcf_quotient_lucas_convolution_high_upper_tail_decoded_value. bcf_row_code_lucas_convolution_high_upper_tail = bcf_quotient_lucas_convolution_high_upper_tail_decoded_value * S ((S (p + j)) * bcf_row_scale_lucas_convolution_high_upper_tail) + (A))))))))) -> (((exists bcf_lt_gap_lucas_convolution_high_lower_tail_out_of_range. bcf_lt_gap_lucas_convolution_high_lower_tail_out_of_range + S (a) = j) /\ B = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_lower_tail_in_range. bcf_le_gap_lucas_convolution_high_lower_tail_in_range + (j) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_lower_tail bcf_row_code_scale_lucas_convolution_high_lower_tail bcf_row_scale_code_lucas_convolution_high_lower_tail bcf_row_scale_scale_lucas_convolution_high_lower_tail bcf_row_code_lucas_convolution_high_lower_tail bcf_row_scale_lucas_convolution_high_lower_tail. ((forall bcf_row_index_lucas_convolution_high_lower_tail_table. (exists bcf_lt_gap_lucas_convolution_high_lower_tail_table_row_bound. bcf_lt_gap_lucas_convolution_high_lower_tail_table_row_bound + S (bcf_row_index_lucas_convolution_high_lower_tail_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_lower_tail_table bcf_row_scale_lucas_convolution_high_lower_tail_table. ((((exists bcf_height_lucas_convolution_high_lower_tail_table_decoded_row_code. bcf_height_lucas_convolution_high_lower_tail_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_lower_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_lower_tail_table)) * bcf_row_code_scale_lucas_convolution_high_lower_tail)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_lower_tail = bcf_quotient_lucas_convolution_high_lower_tail_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_lower_tail_table)) * bcf_row_code_scale_lucas_convolution_high_lower_tail) + (bcf_row_code_lucas_convolution_high_lower_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_lower_tail_table_decoded_row_scale. bcf_height_lucas_convolution_high_lower_tail_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_lower_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_lower_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_lower_tail)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_lower_tail = bcf_quotient_lucas_convolution_high_lower_tail_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_lower_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_lower_tail) + (bcf_row_scale_lucas_convolution_high_lower_tail_table))) /\ ((bcf_row_index_lucas_convolution_high_lower_tail_table = 0 /\ (forall bcf_index_lucas_convolution_high_lower_tail_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_lower_tail_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_lower_tail_table_zero_row_bound + S (bcf_index_lucas_convolution_high_lower_tail_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_lower_tail_table_zero_row. ((((exists bcf_height_lucas_convolution_high_lower_tail_table_zero_row_entry. bcf_height_lucas_convolution_high_lower_tail_table_zero_row_entry + S (bcf_value_lucas_convolution_high_lower_tail_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_lower_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_lower_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_table_zero_row_entry. bcf_row_code_lucas_convolution_high_lower_tail_table = bcf_quotient_lucas_convolution_high_lower_tail_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_lower_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_lower_tail_table) + (bcf_value_lucas_convolution_high_lower_tail_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_lower_tail_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_lower_tail_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_lower_tail_table_zero_row. bcf_index_lucas_convolution_high_lower_tail_table_zero_row = S bcf_predecessor_lucas_convolution_high_lower_tail_table_zero_row /\ bcf_value_lucas_convolution_high_lower_tail_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_lower_tail_table bcf_previous_code_lucas_convolution_high_lower_tail_table bcf_previous_scale_lucas_convolution_high_lower_tail_table. bcf_row_index_lucas_convolution_high_lower_tail_table = S bcf_predecessor_lucas_convolution_high_lower_tail_table /\ ((((exists bcf_height_lucas_convolution_high_lower_tail_table_decoded_previous_code. bcf_height_lucas_convolution_high_lower_tail_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_lower_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_lower_tail_table)) * bcf_row_code_scale_lucas_convolution_high_lower_tail)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_lower_tail = bcf_quotient_lucas_convolution_high_lower_tail_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_lower_tail_table)) * bcf_row_code_scale_lucas_convolution_high_lower_tail) + (bcf_previous_code_lucas_convolution_high_lower_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_lower_tail_table_decoded_previous_scale. bcf_height_lucas_convolution_high_lower_tail_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_lower_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_lower_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_lower_tail)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_lower_tail = bcf_quotient_lucas_convolution_high_lower_tail_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_lower_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_lower_tail) + (bcf_previous_scale_lucas_convolution_high_lower_tail_table))) /\ (forall bcf_index_lucas_convolution_high_lower_tail_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_lower_tail_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_lower_tail_table_row_step_bound + S (bcf_index_lucas_convolution_high_lower_tail_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_lower_tail_table_row_step. ((((exists bcf_height_lucas_convolution_high_lower_tail_table_row_step_entry. bcf_height_lucas_convolution_high_lower_tail_table_row_step_entry + S (bcf_value_lucas_convolution_high_lower_tail_table_row_step) = S ((S (bcf_index_lucas_convolution_high_lower_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_lower_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_table_row_step_entry. bcf_row_code_lucas_convolution_high_lower_tail_table = bcf_quotient_lucas_convolution_high_lower_tail_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_lower_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_lower_tail_table) + (bcf_value_lucas_convolution_high_lower_tail_table_row_step))) /\ ((bcf_index_lucas_convolution_high_lower_tail_table_row_step = 0 /\ bcf_value_lucas_convolution_high_lower_tail_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_lower_tail_table_row_step bcf_left_lucas_convolution_high_lower_tail_table_row_step bcf_right_lucas_convolution_high_lower_tail_table_row_step. bcf_index_lucas_convolution_high_lower_tail_table_row_step = S bcf_predecessor_lucas_convolution_high_lower_tail_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_lower_tail_table_row_step_previous_left. bcf_height_lucas_convolution_high_lower_tail_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_lower_tail_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_lower_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_lower_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_lower_tail_table = bcf_quotient_lucas_convolution_high_lower_tail_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_lower_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_lower_tail_table) + (bcf_left_lucas_convolution_high_lower_tail_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_lower_tail_table_row_step_previous_right. bcf_height_lucas_convolution_high_lower_tail_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_lower_tail_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_lower_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_lower_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_lower_tail_table = bcf_quotient_lucas_convolution_high_lower_tail_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_lower_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_lower_tail_table) + (bcf_right_lucas_convolution_high_lower_tail_table_row_step))) /\ bcf_value_lucas_convolution_high_lower_tail_table_row_step = bcf_left_lucas_convolution_high_lower_tail_table_row_step + bcf_right_lucas_convolution_high_lower_tail_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_lower_tail_decoded_row_code. bcf_height_lucas_convolution_high_lower_tail_decoded_row_code + S (bcf_row_code_lucas_convolution_high_lower_tail) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_lower_tail)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_decoded_row_code. bcf_row_code_code_lucas_convolution_high_lower_tail = bcf_quotient_lucas_convolution_high_lower_tail_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_lower_tail) + (bcf_row_code_lucas_convolution_high_lower_tail))) /\ ((((exists bcf_height_lucas_convolution_high_lower_tail_decoded_row_scale. bcf_height_lucas_convolution_high_lower_tail_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_lower_tail) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_lower_tail)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_lower_tail = bcf_quotient_lucas_convolution_high_lower_tail_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_lower_tail) + (bcf_row_scale_lucas_convolution_high_lower_tail))) /\ (((exists bcf_height_lucas_convolution_high_lower_tail_decoded_value. bcf_height_lucas_convolution_high_lower_tail_decoded_value + S (B) = S ((S (j)) * bcf_row_scale_lucas_convolution_high_lower_tail)) /\ exists bcf_quotient_lucas_convolution_high_lower_tail_decoded_value. bcf_row_code_lucas_convolution_high_lower_tail = bcf_quotient_lucas_convolution_high_lower_tail_decoded_value * S ((S (j)) * bcf_row_scale_lucas_convolution_high_lower_tail) + (B))))))))) -> (exists lcv_left_high_result lcv_right_high_result. (C) + (p) * lcv_left_high_result = (A + B) + (p) * lcv_right_high_result)

Proof neighborhood

Direct theorem prerequisites

eq_decidable · Stable closed prime_nonzero · Stable closed nonzero_is_succ · Stable closed LU000X lucas_prime_plus_index_nonzero LU000Q lucas_choose_zero_upper_positive_is_zero LU000P lucas_choose_zero_index_is_one choose_self_of_eq · Alpha closed LU000Y lucas_add_positive_index_strict choose_out_of_range_zero · Alpha closed mod_eq_refl · Stable closed zero_add · Stable closed choose_exists · Alpha closed choose_zero · Alpha closed choose_upper_eq_transport · Alpha closed LU000O lucas_choose_lower_eq_transport le_refl · Stable closed LU000W lucas_prime_shift_below_base choose_succ_succ · Alpha closed LU000U lucas_pascal_congruence_step add_assoc · Stable closed add_shuffle_middle · Alpha closed

Direct theorem dependents

Definition-aware tactic body

Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.

Read the argument

Proof checkpoints

389 script commands · 78 reading checkpoints · 55 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (7)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–1

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro p
02Induction on aL2–10

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L2
    induction a
  2. L3
    intro j
  3. L4
    intro C
  4. L5
    intro A
  5. L6
    intro B
  6. L7
    intro hprime
  7. L8
    intro hchoose
  8. L9
    intro hupper_tail
  9. L10
    intro hlower_tail
03Establish hindex_nonzeroL11–17

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas prime plus index nonzero.

  1. L11
    have hindex_nonzero : ~(p + j = 0)
  2. L12
    specialize lucas_prime_plus_index_nonzero p
  3. L13
    specialize lucas_prime_plus_index_nonzero j
  4. L14
    intro hzero
  5. L15
    apply lucas_prime_plus_index_nonzero
  6. L16
    exact hprime
  7. L17
    exact hzero
04Establish hAzeroL18–23

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose zero upper positive is zero.

  1. L18
    have hAzero : A = 0
  2. L19
    specialize lucas_choose_zero_upper_positive_is_zero (p + j)
  3. L20
    specialize lucas_choose_zero_upper_positive_is_zero A
  4. L21
    apply lucas_choose_zero_upper_positive_is_zero
  5. L22
    exact hindex_nonzero
  6. L23
    exact hupper_tail
05Establish hcaseL24–27

Establish this local claim before using it. It is not an additional assumption.

  1. L24
    have hcase : j = 0 \/ ~(j = 0)
  2. L25
    specialize eq_decidable j
  3. L26
    specialize eq_decidable 0
  4. L27
    exact eq_decidable
06Separate the logical casesL28–28

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L28
    cases hcase
07Establish hConeL29–36

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose self of eq.

  1. L29
    have hCone : C = 1
  2. L30
    specialize choose_self_of_eq (p + 0)
  3. L31
    specialize choose_self_of_eq (p + j)
  4. L32
    specialize choose_self_of_eq C
  5. L33
    apply choose_self_of_eq
  6. L34
    rewrite hcase_left
  7. L35
    refl
  8. L36
    exact hchoose
08Establish hBoneL37–46

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose zero index is one.

  1. L37
    have hBone : B = 1
  2. L38
    specialize lucas_choose_zero_index_is_one 0
  3. L39
    specialize lucas_choose_zero_index_is_one j
  4. L40
    specialize lucas_choose_zero_index_is_one B
  5. L41
    apply lucas_choose_zero_index_is_one
  6. L42
    exact hcase_left
  7. L43
    exact hlower_tail
  8. L44
    rewrite hCone
  9. L45
    rewrite hAzero
  10. L46
    rewrite hBone
09Establish honeL47–52

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply zero add.

  1. L47
    have hone : 0 + 1 = 1
  2. L48
    apply zero_add
  3. L49
    rewrite hone
  4. L50
    specialize mod_eq_refl p
  5. L51
    specialize mod_eq_refl 1
  6. L52
    exact mod_eq_refl
10Establish hBzeroL53–58

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose zero upper positive is zero.

  1. L53
    have hBzero : B = 0
  2. L54
    specialize lucas_choose_zero_upper_positive_is_zero j
  3. L55
    specialize lucas_choose_zero_upper_positive_is_zero B
  4. L56
    apply lucas_choose_zero_upper_positive_is_zero
  5. L57
    exact hcase_right
  6. L58
    exact hlower_tail
11Establish hboundL59–59

Establish this local claim before using it. It is not an additional assumption.

  1. L59
    have hbound : Lt(p + 0,p + j)Definitions: Lt(p + 0,p + j)Original native command in the exact edition
12Establish hnormalizedL60–66

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply PA3.

  1. L60
    have hnormalized : p + 0 = p
  2. L61
    apply PA3
  3. L62
    rewrite hnormalized
  4. L63
    specialize lucas_add_positive_index_strict p
  5. L64
    specialize lucas_add_positive_index_strict j
  6. L65
    apply lucas_add_positive_index_strict
  7. L66
    exact hcase_right
13Establish hCzeroL67–76

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose out of range zero.

  1. L67
    have hCzero : C = 0
  2. L68
    specialize choose_out_of_range_zero (p + 0)
  3. L69
    specialize choose_out_of_range_zero (p + j)
  4. L70
    specialize choose_out_of_range_zero C
  5. L71
    apply choose_out_of_range_zero
  6. L72
    exact hbound
  7. L73
    exact hchoose
  8. L74
    rewrite hCzero
  9. L75
    rewrite hAzero
  10. L76
    rewrite hBzero
14Establish hzero_sumL77–86

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply PA3.

  1. L77
    have hzero_sum : 0 + 0 = 0
  2. L78
    apply PA3
  3. L79
    rewrite hzero_sum
  4. L80
    specialize mod_eq_refl p
  5. L81
    specialize mod_eq_refl 0
  6. L82
    exact mod_eq_refl
  7. L83
    intro j
  8. L84
    intro C
  9. L85
    intro A
  10. L86
    intro B
15Fix variables and assumptionsL87–90

Work with arbitrary variables or the premises of the current implication.

  1. L87
    intro hprime
  2. L88
    intro hchoose
  3. L89
    intro hupper_tail
  4. L90
    intro hlower_tail
16Establish hcaseL91–94

Establish this local claim before using it. It is not an additional assumption.

  1. L91
    have hcase : j = 0 \/ ~(j = 0)
  2. L92
    specialize eq_decidable j
  3. L93
    specialize eq_decidable 0
  4. L94
    exact eq_decidable
17Separate the logical casesL95–95

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L95
    cases hcase
18Establish hprime_positiveL96–101

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime nonzero.

  1. L96
    have hprime_positive : ~(p = 0)
  2. L97
    specialize prime_nonzero p
  3. L98
    intro hzero
  4. L99
    apply prime_nonzero
  5. L100
    exact hprime
  6. L101
    exact hzero
19Establish hpredecessorL102–105

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply nonzero is succ.

  1. L102
    have hpredecessor : exists k. p = S k
  2. L103
    specialize nonzero_is_succ p
  3. L104
    apply nonzero_is_succ
  4. L105
    exact hprime_positive
20Separate the logical casesL106–106

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L106
    cases hpredecessor
21Establish hsmallL107–110

Establish this local claim before using it. It is not an additional assumption.

  1. L107
    have hsmall : Lt(x,p)Definitions: Lt(x,p)Original native command in the exact edition
  2. L108
    rewrite hpredecessor_witness
  3. L109
    specialize le_refl (S x)
  4. L110
    exact le_refl
22Establish hleftL111–112

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L111
    have hleft : ∃ C. Choose(p + a,x,C)Definitions: Choose(p + a,x,C)Original native command in the exact edition
  2. L112
    apply choose_exists
23Separate the logical casesL113–113

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L113
    cases hleft
24Establish hrightL114–115

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L114
    have hright : ∃ C. Choose(p + a,p,C)Definitions: Choose(p + a,p,C)Original native command in the exact edition
  2. L115
    apply choose_exists
25Separate the logical casesL116–116

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L116
    cases hright
26Establish hleft_tailL117–118

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L117
    have hleft_tail : ∃ C. Choose(a,x,C)Definitions: Choose(a,x,C)Original native command in the exact edition
  2. L118
    apply choose_exists
27Separate the logical casesL119–119

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L119
    cases hleft_tail
28Establish hright_tailL120–121

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L120
    have hright_tail : ∃ C. Choose(a,p,C)Definitions: Choose(a,p,C)Original native command in the exact edition
  2. L121
    apply choose_exists
29Separate the logical casesL122–122

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L122
    cases hright_tail
30Establish hunit_tailL123–124

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L123
    have hunit_tail : ∃ C. Choose(a,0,C)Definitions: Choose(a,0,C)Original native command in the exact edition
  2. L124
    apply choose_exists
31Separate the logical casesL125–125

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L125
    cases hunit_tail
32Establish hleft_modL126–135

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas prime shift below base.

  1. L126
    have hleft_mod : ModEq(p,x1,x3)Definitions: ModEq(p,x1,x3)Original native command in the exact edition
  2. L127
    specialize lucas_prime_shift_below_base p
  3. L128
    specialize lucas_prime_shift_below_base a
  4. L129
    specialize lucas_prime_shift_below_base x
  5. L130
    specialize lucas_prime_shift_below_base x1
  6. L131
    specialize lucas_prime_shift_below_base x3
  7. L132
    apply lucas_prime_shift_below_base
  8. L133
    exact hprime
  9. L134
    exact hsmall
  10. L135
    exact hleft_witness
33Use earlier factsL136–136

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L136
    exact hleft_tail_witness
34Establish hright_modL137–143

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.

  1. L137
    have hright_mod : ModEq(p,x2,x4 + x5)Definitions: ModEq(p,x2,x4 + x5)Original native command in the exact edition
  2. L138
    specialize IH 0
  3. L139
    specialize IH x2
  4. L140
    specialize IH x4
  5. L141
    specialize IH x5
  6. L142
    apply IH
  7. L143
    exact hprime
35Establish hright_zeroL144–153

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L144
    have hright_zero : Choose(p + a,p + 0,x2)Definitions: Choose(p + a,p + 0,x2)Original native command in the exact edition
  2. L145
    specialize lucas_choose_lower_eq_transport (p + a)
  3. L146
    specialize lucas_choose_lower_eq_transport p
  4. L147
    specialize lucas_choose_lower_eq_transport (p + 0)
  5. L148
    specialize lucas_choose_lower_eq_transport x2
  6. L149
    apply lucas_choose_lower_eq_transport
  7. L150
    symm
  8. L151
    apply PA3
  9. L152
    exact hright_witness
  10. L153
    exact hright_zero
36Establish hright_tail_zeroL154–163

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L154
    have hright_tail_zero : Choose(a,p + 0,x4)Definitions: Choose(a,p + 0,x4)Original native command in the exact edition
  2. L155
    specialize lucas_choose_lower_eq_transport a
  3. L156
    specialize lucas_choose_lower_eq_transport p
  4. L157
    specialize lucas_choose_lower_eq_transport (p + 0)
  5. L158
    specialize lucas_choose_lower_eq_transport x4
  6. L159
    apply lucas_choose_lower_eq_transport
  7. L160
    symm
  8. L161
    apply PA3
  9. L162
    exact hright_tail_witness
  10. L163
    exact hright_tail_zero
37Use earlier factsL164–164

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L164
    exact hunit_tail_witness
38Establish hindexL165–169

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply PA3.

  1. L165
    have hindex : p + j = S x
  2. L166
    rewrite hcase_left
  3. L167
    trans p
  4. L168
    apply PA3
  5. L169
    exact hpredecessor_witness
39Establish hCindexL170–177

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L170
    have hCindex : Choose(p + S a,S x,C)Definitions: Choose(p + S a,S x,C)Original native command in the exact edition
  2. L171
    specialize lucas_choose_lower_eq_transport (p + S a)
  3. L172
    specialize lucas_choose_lower_eq_transport (p + j)
  4. L173
    specialize lucas_choose_lower_eq_transport (S x)
  5. L174
    specialize lucas_choose_lower_eq_transport C
  6. L175
    apply lucas_choose_lower_eq_transport
  7. L176
    exact hindex
  8. L177
    exact hchoose
40Establish hCnormalL178–185

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose upper eq transport.

  1. L178
    have hCnormal : Choose(S (p + a),S x,C)Definitions: Choose(S (p + a),S x,C)Original native command in the exact edition
  2. L179
    specialize choose_upper_eq_transport (p + S a)
  3. L180
    specialize choose_upper_eq_transport (S (p + a))
  4. L181
    specialize choose_upper_eq_transport (S x)
  5. L182
    specialize choose_upper_eq_transport C
  6. L183
    apply choose_upper_eq_transport
  7. L184
    apply PA4
  8. L185
    exact hCindex
41Establish hright_normalL186–193

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L186
    have hright_normal : Choose(p + a,S x,x2)Definitions: Choose(p + a,S x,x2)Original native command in the exact edition
  2. L187
    specialize lucas_choose_lower_eq_transport (p + a)
  3. L188
    specialize lucas_choose_lower_eq_transport p
  4. L189
    specialize lucas_choose_lower_eq_transport (S x)
  5. L190
    specialize lucas_choose_lower_eq_transport x2
  6. L191
    apply lucas_choose_lower_eq_transport
  7. L192
    exact hpredecessor_witness
  8. L193
    exact hright_witness
42Establish hsum_modL194–203

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas pascal congruence step.

  1. L194
    have hsum_mod : ModEq(p,C,x3 + (x4 + x5))Definitions: ModEq(p,C,x3 + (x4 + x5))Original native command in the exact edition
  2. L195
    specialize lucas_pascal_congruence_step p
  3. L196
    specialize lucas_pascal_congruence_step (p + a)
  4. L197
    specialize lucas_pascal_congruence_step x
  5. L198
    specialize lucas_pascal_congruence_step x1
  6. L199
    specialize lucas_pascal_congruence_step x2
  7. L200
    specialize lucas_pascal_congruence_step C
  8. L201
    specialize lucas_pascal_congruence_step x3
  9. L202
    specialize lucas_pascal_congruence_step (x4 + x5)
  10. L203
    apply lucas_pascal_congruence_step
43Use earlier factsL204–208

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L204
    exact hleft_witness
  2. L205
    exact hright_normal
  3. L206
    exact hCnormal
  4. L207
    exact hleft_mod
  5. L208
    exact hright_mod
44Establish hAnormalL209–216

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L209
    have hAnormal : Choose(S a,S x,A)Definitions: Choose(S a,S x,A)Original native command in the exact edition
  2. L210
    specialize lucas_choose_lower_eq_transport (S a)
  3. L211
    specialize lucas_choose_lower_eq_transport (p + j)
  4. L212
    specialize lucas_choose_lower_eq_transport (S x)
  5. L213
    specialize lucas_choose_lower_eq_transport A
  6. L214
    apply lucas_choose_lower_eq_transport
  7. L215
    exact hindex
  8. L216
    exact hupper_tail
45Establish hright_tail_normalL217–224

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L217
    have hright_tail_normal : Choose(a,S x,x4)Definitions: Choose(a,S x,x4)Original native command in the exact edition
  2. L218
    specialize lucas_choose_lower_eq_transport a
  3. L219
    specialize lucas_choose_lower_eq_transport p
  4. L220
    specialize lucas_choose_lower_eq_transport (S x)
  5. L221
    specialize lucas_choose_lower_eq_transport x4
  6. L222
    apply lucas_choose_lower_eq_transport
  7. L223
    exact hpredecessor_witness
  8. L224
    exact hright_tail_witness
46Establish hAvalueL225–234

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose succ succ.

  1. L225
    have hAvalue : A = x3 + x4
  2. L226
    specialize choose_succ_succ a
  3. L227
    specialize choose_succ_succ x
  4. L228
    specialize choose_succ_succ x3
  5. L229
    specialize choose_succ_succ x4
  6. L230
    specialize choose_succ_succ A
  7. L231
    apply choose_succ_succ
  8. L232
    exact hleft_tail_witness
  9. L233
    exact hright_tail_normal
  10. L234
    exact hAnormal
47Establish hBvalueL235–241

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose zero index is one.

  1. L235
    have hBvalue : B = 1
  2. L236
    specialize lucas_choose_zero_index_is_one (S a)
  3. L237
    specialize lucas_choose_zero_index_is_one j
  4. L238
    specialize lucas_choose_zero_index_is_one B
  5. L239
    apply lucas_choose_zero_index_is_one
  6. L240
    exact hcase_left
  7. L241
    exact hlower_tail
48Establish hunit_valueL242–249

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose zero.

  1. L242
    have hunit_value : x5 = 1
  2. L243
    specialize choose_zero a
  3. L244
    specialize choose_zero x5
  4. L245
    apply choose_zero
  5. L246
    exact hunit_tail_witness
  6. L247
    rewrite hAvalue
  7. L248
    rewrite hBvalue
  8. L249
    rewrite hunit_value at hsum_mod
49Establish hshuffleL250–254

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add assoc.

  1. L250
    have hshuffle : x3 + (x4 + 1) = (x3 + x4) + 1
  2. L251
    symm
  3. L252
    apply add_assoc
  4. L253
    rewrite hshuffle at hsum_mod
  5. L254
    exact hsum_mod
50Establish hsuccessorL255–258

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply nonzero is succ.

  1. L255
    have hsuccessor : exists k. j = S k
  2. L256
    specialize nonzero_is_succ j
  3. L257
    apply nonzero_is_succ
  4. L258
    exact hcase_right
51Separate the logical casesL259–259

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L259
    cases hsuccessor
52Establish hleftL260–261

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L260
    have hleft : ∃ C. Choose(p + a,p + x,C)Definitions: Choose(p + a,p + x,C)Original native command in the exact edition
  2. L261
    apply choose_exists
53Separate the logical casesL262–262

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L262
    cases hleft
54Establish hrightL263–264

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L263
    have hright : ∃ C. Choose(p + a,p + S x,C)Definitions: Choose(p + a,p + S x,C)Original native command in the exact edition
  2. L264
    apply choose_exists
55Separate the logical casesL265–265

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L265
    cases hright
56Establish hupper_leftL266–267

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L266
    have hupper_left : ∃ C. Choose(a,p + x,C)Definitions: Choose(a,p + x,C)Original native command in the exact edition
  2. L267
    apply choose_exists
57Separate the logical casesL268–268

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L268
    cases hupper_left
58Establish hupper_rightL269–270

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L269
    have hupper_right : ∃ C. Choose(a,p + S x,C)Definitions: Choose(a,p + S x,C)Original native command in the exact edition
  2. L270
    apply choose_exists
59Separate the logical casesL271–271

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L271
    cases hupper_right
60Establish hlower_leftL272–273

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L272
    have hlower_left : ∃ C. Choose(a,x,C)Definitions: Choose(a,x,C)Original native command in the exact edition
  2. L273
    apply choose_exists
61Separate the logical casesL274–274

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L274
    cases hlower_left
62Establish hlower_rightL275–276

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.

  1. L275
    have hlower_right : ∃ C. Choose(a,S x,C)Definitions: Choose(a,S x,C)Original native command in the exact edition
  2. L276
    apply choose_exists
63Separate the logical casesL277–277

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L277
    cases hlower_right
64Establish hleft_modL278–287

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.

  1. L278
    have hleft_mod : ModEq(p,x1,x3 + x5)Definitions: ModEq(p,x1,x3 + x5)Original native command in the exact edition
  2. L279
    specialize IH x
  3. L280
    specialize IH x1
  4. L281
    specialize IH x3
  5. L282
    specialize IH x5
  6. L283
    apply IH
  7. L284
    exact hprime
  8. L285
    exact hleft_witness
  9. L286
    exact hupper_left_witness
  10. L287
    exact hlower_left_witness
65Establish hright_modL288–297

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.

  1. L288
    have hright_mod : ModEq(p,x2,x4 + x6)Definitions: ModEq(p,x2,x4 + x6)Original native command in the exact edition
  2. L289
    specialize IH (S x)
  3. L290
    specialize IH x2
  4. L291
    specialize IH x4
  5. L292
    specialize IH x6
  6. L293
    apply IH
  7. L294
    exact hprime
  8. L295
    exact hright_witness
  9. L296
    exact hupper_right_witness
  10. L297
    exact hlower_right_witness
66Establish hindexL298–300

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply PA4.

  1. L298
    have hindex : p + j = S (p + x)
  2. L299
    rewrite hsuccessor_witness
  3. L300
    apply PA4
67Establish hCindexL301–308

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L301
    have hCindex : Choose(p + S a,S (p + x),C)Definitions: Choose(p + S a,S (p + x),C)Original native command in the exact edition
  2. L302
    specialize lucas_choose_lower_eq_transport (p + S a)
  3. L303
    specialize lucas_choose_lower_eq_transport (p + j)
  4. L304
    specialize lucas_choose_lower_eq_transport (S (p + x))
  5. L305
    specialize lucas_choose_lower_eq_transport C
  6. L306
    apply lucas_choose_lower_eq_transport
  7. L307
    exact hindex
  8. L308
    exact hchoose
68Establish hCnormalL309–316

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose upper eq transport.

  1. L309
    have hCnormal : Choose(S (p + a),S (p + x),C)Definitions: Choose(S (p + a),S (p + x),C)Original native command in the exact edition
  2. L310
    specialize choose_upper_eq_transport (p + S a)
  3. L311
    specialize choose_upper_eq_transport (S (p + a))
  4. L312
    specialize choose_upper_eq_transport (S (p + x))
  5. L313
    specialize choose_upper_eq_transport C
  6. L314
    apply choose_upper_eq_transport
  7. L315
    apply PA4
  8. L316
    exact hCindex
69Establish hright_normalL317–324

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L317
    have hright_normal : Choose(p + a,S (p + x),x2)Definitions: Choose(p + a,S (p + x),x2)Original native command in the exact edition
  2. L318
    specialize lucas_choose_lower_eq_transport (p + a)
  3. L319
    specialize lucas_choose_lower_eq_transport (p + S x)
  4. L320
    specialize lucas_choose_lower_eq_transport (S (p + x))
  5. L321
    specialize lucas_choose_lower_eq_transport x2
  6. L322
    apply lucas_choose_lower_eq_transport
  7. L323
    apply PA4
  8. L324
    exact hright_witness
70Establish hsum_modL325–334

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas pascal congruence step.

  1. L325
    have hsum_mod : ModEq(p,C,x3 + x5 + (x4 + x6))Definitions: ModEq(p,C,x3 + x5 + (x4 + x6))Original native command in the exact edition
  2. L326
    specialize lucas_pascal_congruence_step p
  3. L327
    specialize lucas_pascal_congruence_step (p + a)
  4. L328
    specialize lucas_pascal_congruence_step (p + x)
  5. L329
    specialize lucas_pascal_congruence_step x1
  6. L330
    specialize lucas_pascal_congruence_step x2
  7. L331
    specialize lucas_pascal_congruence_step C
  8. L332
    specialize lucas_pascal_congruence_step (x3 + x5)
  9. L333
    specialize lucas_pascal_congruence_step (x4 + x6)
  10. L334
    apply lucas_pascal_congruence_step
71Use earlier factsL335–339

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L335
    exact hleft_witness
  2. L336
    exact hright_normal
  3. L337
    exact hCnormal
  4. L338
    exact hleft_mod
  5. L339
    exact hright_mod
72Establish hAnormalL340–347

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L340
    have hAnormal : Choose(S a,S (p + x),A)Definitions: Choose(S a,S (p + x),A)Original native command in the exact edition
  2. L341
    specialize lucas_choose_lower_eq_transport (S a)
  3. L342
    specialize lucas_choose_lower_eq_transport (p + j)
  4. L343
    specialize lucas_choose_lower_eq_transport (S (p + x))
  5. L344
    specialize lucas_choose_lower_eq_transport A
  6. L345
    apply lucas_choose_lower_eq_transport
  7. L346
    exact hindex
  8. L347
    exact hupper_tail
73Establish hupper_right_normalL348–355

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L348
    have hupper_right_normal : Choose(a,S (p + x),x4)Definitions: ChooseOriginal native command in the exact edition
  2. L349
    specialize lucas_choose_lower_eq_transport a
  3. L350
    specialize lucas_choose_lower_eq_transport (p + S x)
  4. L351
    specialize lucas_choose_lower_eq_transport (S (p + x))
  5. L352
    specialize lucas_choose_lower_eq_transport x4
  6. L353
    apply lucas_choose_lower_eq_transport
  7. L354
    apply PA4
  8. L355
    exact hupper_right_witness
74Establish hAvalueL356–365

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose succ succ.

  1. L356
    have hAvalue : A = x3 + x4
  2. L357
    specialize choose_succ_succ a
  3. L358
    specialize choose_succ_succ (p + x)
  4. L359
    specialize choose_succ_succ x3
  5. L360
    specialize choose_succ_succ x4
  6. L361
    specialize choose_succ_succ A
  7. L362
    apply choose_succ_succ
  8. L363
    exact hupper_left_witness
  9. L364
    exact hupper_right_normal
  10. L365
    exact hAnormal
75Establish hBnormalL366–373

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.

  1. L366
    have hBnormal : Choose(S a,S x,B)Definitions: ChooseOriginal native command in the exact edition
  2. L367
    specialize lucas_choose_lower_eq_transport (S a)
  3. L368
    specialize lucas_choose_lower_eq_transport j
  4. L369
    specialize lucas_choose_lower_eq_transport (S x)
  5. L370
    specialize lucas_choose_lower_eq_transport B
  6. L371
    apply lucas_choose_lower_eq_transport
  7. L372
    exact hsuccessor_witness
  8. L373
    exact hlower_tail
76Establish hBvalueL374–383

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose succ succ.

  1. L374
    have hBvalue : B = x5 + x6
  2. L375
    specialize choose_succ_succ a
  3. L376
    specialize choose_succ_succ x
  4. L377
    specialize choose_succ_succ x5
  5. L378
    specialize choose_succ_succ x6
  6. L379
    specialize choose_succ_succ B
  7. L380
    apply choose_succ_succ
  8. L381
    exact hlower_left_witness
  9. L382
    exact hlower_right_witness
  10. L383
    exact hBnormal
77Calculate and transport equalitiesL384–385

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L384
    rewrite hAvalue
  2. L385
    rewrite hBvalue
78Establish hshuffleL386–389

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add shuffle middle.

  1. L386
    have hshuffle : (x3 + x5) + (x4 + x6) = (x3 + x4) + (x5 + x6)
  2. L387
    apply add_shuffle_middle
  3. L388
    rewrite hshuffle at hsum_mod
  4. L389
    exact hsum_mod

Library-wide reading audit

Original defined command ledger · 389 lines
  1. 0001intro p
  2. 0002induction a
  3. 0003intro j
  4. 0004intro C
  5. 0005intro A
  6. 0006intro B
  7. 0007intro hprime
  8. 0008intro hchoose
  9. 0009intro hupper_tail
  10. 0010intro hlower_tail
  11. 0011have hindex_nonzero : ~(p + j = 0)
  12. 0012specialize lucas_prime_plus_index_nonzero p
  13. 0013specialize lucas_prime_plus_index_nonzero j
  14. 0014intro hzero
  15. 0015apply lucas_prime_plus_index_nonzero
  16. 0016exact hprime
  17. 0017exact hzero
  18. 0018have hAzero : A = 0
  19. 0019specialize lucas_choose_zero_upper_positive_is_zero (p + j)
  20. 0020specialize lucas_choose_zero_upper_positive_is_zero A
  21. 0021apply lucas_choose_zero_upper_positive_is_zero
  22. 0022exact hindex_nonzero
  23. 0023exact hupper_tail
  24. 0024have hcase : j = 0 \/ ~(j = 0)
  25. 0025specialize eq_decidable j
  26. 0026specialize eq_decidable 0
  27. 0027exact eq_decidable
  28. 0028cases hcase
  29. 0029have hCone : C = 1
  30. 0030specialize choose_self_of_eq (p + 0)
  31. 0031specialize choose_self_of_eq (p + j)
  32. 0032specialize choose_self_of_eq C
  33. 0033apply choose_self_of_eq
  34. 0034rewrite hcase_left
  35. 0035refl
  36. 0036exact hchoose
  37. 0037have hBone : B = 1
  38. 0038specialize lucas_choose_zero_index_is_one 0
  39. 0039specialize lucas_choose_zero_index_is_one j
  40. 0040specialize lucas_choose_zero_index_is_one B
  41. 0041apply lucas_choose_zero_index_is_one
  42. 0042exact hcase_left
  43. 0043exact hlower_tail
  44. 0044rewrite hCone
  45. 0045rewrite hAzero
  46. 0046rewrite hBone
  47. 0047have hone : 0 + 1 = 1
  48. 0048apply zero_add
  49. 0049rewrite hone
  50. 0050specialize mod_eq_refl p
  51. 0051specialize mod_eq_refl 1
  52. 0052exact mod_eq_refl
  53. 0053have hBzero : B = 0
  54. 0054specialize lucas_choose_zero_upper_positive_is_zero j
  55. 0055specialize lucas_choose_zero_upper_positive_is_zero B
  56. 0056apply lucas_choose_zero_upper_positive_is_zero
  57. 0057exact hcase_right
  58. 0058exact hlower_tail
  59. 0059have hbound : Lt(p + 0,p + j)
    Exact native replay linehave hbound : exists lcv_gap_high_base_bound. lcv_gap_high_base_bound + S (p + 0) = (p + j)
  60. 0060have hnormalized : p + 0 = p
  61. 0061apply PA3
  62. 0062rewrite hnormalized
  63. 0063specialize lucas_add_positive_index_strict p
  64. 0064specialize lucas_add_positive_index_strict j
  65. 0065apply lucas_add_positive_index_strict
  66. 0066exact hcase_right
  67. 0067have hCzero : C = 0
  68. 0068specialize choose_out_of_range_zero (p + 0)
  69. 0069specialize choose_out_of_range_zero (p + j)
  70. 0070specialize choose_out_of_range_zero C
  71. 0071apply choose_out_of_range_zero
  72. 0072exact hbound
  73. 0073exact hchoose
  74. 0074rewrite hCzero
  75. 0075rewrite hAzero
  76. 0076rewrite hBzero
  77. 0077have hzero_sum : 0 + 0 = 0
  78. 0078apply PA3
  79. 0079rewrite hzero_sum
  80. 0080specialize mod_eq_refl p
  81. 0081specialize mod_eq_refl 0
  82. 0082exact mod_eq_refl
  83. 0083intro j
  84. 0084intro C
  85. 0085intro A
  86. 0086intro B
  87. 0087intro hprime
  88. 0088intro hchoose
  89. 0089intro hupper_tail
  90. 0090intro hlower_tail
  91. 0091have hcase : j = 0 \/ ~(j = 0)
  92. 0092specialize eq_decidable j
  93. 0093specialize eq_decidable 0
  94. 0094exact eq_decidable
  95. 0095cases hcase
  96. 0096have hprime_positive : ~(p = 0)
  97. 0097specialize prime_nonzero p
  98. 0098intro hzero
  99. 0099apply prime_nonzero
  100. 0100exact hprime
  101. 0101exact hzero
  102. 0102have hpredecessor : exists k. p = S k
  103. 0103specialize nonzero_is_succ p
  104. 0104apply nonzero_is_succ
  105. 0105exact hprime_positive
  106. 0106cases hpredecessor
  107. 0107have hsmall : Lt(x,p)
    Exact native replay linehave hsmall : exists lcv_gap_high_predecessor_bound. lcv_gap_high_predecessor_bound + S (x) = (p)
  108. 0108rewrite hpredecessor_witness
  109. 0109specialize le_refl (S x)
  110. 0110exact le_refl
  111. 0111have hleft : ∃ C. Choose(p + a,x,C)
    Exact native replay linehave hleft : exists C. ((exists bcf_lt_gap_lucas_convolution_high_zero_left_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_left_out_of_range + S (p + a) = x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_left_in_range. bcf_le_gap_lucas_convolution_high_zero_left_in_range + (x) = p + a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_left bcf_row_code_scale_lucas_convolution_high_zero_left bcf_row_scale_code_lucas_convolution_high_zero_left bcf_row_scale_scale_lucas_convolution_high_zero_left bcf_row_code_lucas_convolution_high_zero_left bcf_row_scale_lucas_convolution_high_zero_left. ((forall bcf_row_index_lucas_convolution_high_zero_left_table. (exists bcf_lt_gap_lucas_convolution_high_zero_left_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_left_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_left_table) = S (p + a)) -> exists bcf_row_code_lucas_convolution_high_zero_left_table bcf_row_scale_lucas_convolution_high_zero_left_table. ((((exists bcf_height_lucas_convolution_high_zero_left_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_left_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_left_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_left_table)) * bcf_row_code_scale_lucas_convolution_high_zero_left)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_left = bcf_quotient_lucas_convolution_high_zero_left_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_left_table)) * bcf_row_code_scale_lucas_convolution_high_zero_left) + (bcf_row_code_lucas_convolution_high_zero_left_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_left_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_left_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_left_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_left)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_left = bcf_quotient_lucas_convolution_high_zero_left_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_left_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_left) + (bcf_row_scale_lucas_convolution_high_zero_left_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_left_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_left_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_left_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_left_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_left_table_zero_row) = S (p + a)) -> exists bcf_value_lucas_convolution_high_zero_left_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_left_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_left_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_left_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_left_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_left_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_left_table = bcf_quotient_lucas_convolution_high_zero_left_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_left_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_left_table) + (bcf_value_lucas_convolution_high_zero_left_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_left_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_left_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_left_table_zero_row. bcf_index_lucas_convolution_high_zero_left_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_left_table_zero_row /\ bcf_value_lucas_convolution_high_zero_left_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_left_table bcf_previous_code_lucas_convolution_high_zero_left_table bcf_previous_scale_lucas_convolution_high_zero_left_table. bcf_row_index_lucas_convolution_high_zero_left_table = S bcf_predecessor_lucas_convolution_high_zero_left_table /\ ((((exists bcf_height_lucas_convolution_high_zero_left_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_left_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_left_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_left_table)) * bcf_row_code_scale_lucas_convolution_high_zero_left)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_left = bcf_quotient_lucas_convolution_high_zero_left_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_left_table)) * bcf_row_code_scale_lucas_convolution_high_zero_left) + (bcf_previous_code_lucas_convolution_high_zero_left_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_left_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_left_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_left_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_left)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_left = bcf_quotient_lucas_convolution_high_zero_left_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_left_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_left) + (bcf_previous_scale_lucas_convolution_high_zero_left_table))) /\ (forall bcf_index_lucas_convolution_high_zero_left_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_left_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_left_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_left_table_row_step) = S (p + a)) -> exists bcf_value_lucas_convolution_high_zero_left_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_left_table_row_step_entry. bcf_height_lucas_convolution_high_zero_left_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_left_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_left_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_left_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_left_table = bcf_quotient_lucas_convolution_high_zero_left_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_left_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_left_table) + (bcf_value_lucas_convolution_high_zero_left_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_left_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_left_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_left_table_row_step bcf_left_lucas_convolution_high_zero_left_table_row_step bcf_right_lucas_convolution_high_zero_left_table_row_step. bcf_index_lucas_convolution_high_zero_left_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_left_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_left_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_left_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_left_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_left_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_left_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_left_table = bcf_quotient_lucas_convolution_high_zero_left_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_left_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_left_table) + (bcf_left_lucas_convolution_high_zero_left_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_left_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_left_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_left_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_left_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_left_table = bcf_quotient_lucas_convolution_high_zero_left_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_left_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_left_table) + (bcf_right_lucas_convolution_high_zero_left_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_left_table_row_step = bcf_left_lucas_convolution_high_zero_left_table_row_step + bcf_right_lucas_convolution_high_zero_left_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_decoded_row_code. bcf_height_lucas_convolution_high_zero_left_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_left) = S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_zero_left)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_left = bcf_quotient_lucas_convolution_high_zero_left_decoded_row_code * S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_zero_left) + (bcf_row_code_lucas_convolution_high_zero_left))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_decoded_row_scale. bcf_height_lucas_convolution_high_zero_left_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_left) = S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_zero_left)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_left = bcf_quotient_lucas_convolution_high_zero_left_decoded_row_scale * S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_zero_left) + (bcf_row_scale_lucas_convolution_high_zero_left))) /\ (((exists bcf_height_lucas_convolution_high_zero_left_decoded_value. bcf_height_lucas_convolution_high_zero_left_decoded_value + S (C) = S ((S (x)) * bcf_row_scale_lucas_convolution_high_zero_left)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_decoded_value. bcf_row_code_lucas_convolution_high_zero_left = bcf_quotient_lucas_convolution_high_zero_left_decoded_value * S ((S (x)) * bcf_row_scale_lucas_convolution_high_zero_left) + (C))))))))
  112. 0112apply choose_exists
  113. 0113cases hleft
  114. 0114have hright : ∃ C. Choose(p + a,p,C)
    Exact native replay linehave hright : exists C. ((exists bcf_lt_gap_lucas_convolution_high_zero_right_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_right_out_of_range + S (p + a) = p) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_right_in_range. bcf_le_gap_lucas_convolution_high_zero_right_in_range + (p) = p + a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_right bcf_row_code_scale_lucas_convolution_high_zero_right bcf_row_scale_code_lucas_convolution_high_zero_right bcf_row_scale_scale_lucas_convolution_high_zero_right bcf_row_code_lucas_convolution_high_zero_right bcf_row_scale_lucas_convolution_high_zero_right. ((forall bcf_row_index_lucas_convolution_high_zero_right_table. (exists bcf_lt_gap_lucas_convolution_high_zero_right_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_right_table) = S (p + a)) -> exists bcf_row_code_lucas_convolution_high_zero_right_table bcf_row_scale_lucas_convolution_high_zero_right_table. ((((exists bcf_height_lucas_convolution_high_zero_right_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right = bcf_quotient_lucas_convolution_high_zero_right_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_right_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right) + (bcf_row_code_lucas_convolution_high_zero_right_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right = bcf_quotient_lucas_convolution_high_zero_right_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_right_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right) + (bcf_row_scale_lucas_convolution_high_zero_right_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_right_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_right_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_right_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_right_table_zero_row) = S (p + a)) -> exists bcf_value_lucas_convolution_high_zero_right_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_right_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_right_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_right_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_right_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_right_table = bcf_quotient_lucas_convolution_high_zero_right_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_table) + (bcf_value_lucas_convolution_high_zero_right_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_right_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_right_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_table_zero_row. bcf_index_lucas_convolution_high_zero_right_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_right_table_zero_row /\ bcf_value_lucas_convolution_high_zero_right_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_table bcf_previous_code_lucas_convolution_high_zero_right_table bcf_previous_scale_lucas_convolution_high_zero_right_table. bcf_row_index_lucas_convolution_high_zero_right_table = S bcf_predecessor_lucas_convolution_high_zero_right_table /\ ((((exists bcf_height_lucas_convolution_high_zero_right_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_right_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_right_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_right = bcf_quotient_lucas_convolution_high_zero_right_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right) + (bcf_previous_code_lucas_convolution_high_zero_right_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_right_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_right_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_right = bcf_quotient_lucas_convolution_high_zero_right_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right) + (bcf_previous_scale_lucas_convolution_high_zero_right_table))) /\ (forall bcf_index_lucas_convolution_high_zero_right_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_right_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_right_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_right_table_row_step) = S (p + a)) -> exists bcf_value_lucas_convolution_high_zero_right_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_right_table_row_step_entry. bcf_height_lucas_convolution_high_zero_right_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_right_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_right_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_right_table = bcf_quotient_lucas_convolution_high_zero_right_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_table) + (bcf_value_lucas_convolution_high_zero_right_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_right_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_right_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_table_row_step bcf_left_lucas_convolution_high_zero_right_table_row_step bcf_right_lucas_convolution_high_zero_right_table_row_step. bcf_index_lucas_convolution_high_zero_right_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_right_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_right_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_right_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_right_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_right_table = bcf_quotient_lucas_convolution_high_zero_right_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_table) + (bcf_left_lucas_convolution_high_zero_right_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_right_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_right_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_right_table = bcf_quotient_lucas_convolution_high_zero_right_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_table) + (bcf_right_lucas_convolution_high_zero_right_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_right_table_row_step = bcf_left_lucas_convolution_high_zero_right_table_row_step + bcf_right_lucas_convolution_high_zero_right_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right) = S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_zero_right)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right = bcf_quotient_lucas_convolution_high_zero_right_decoded_row_code * S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_zero_right) + (bcf_row_code_lucas_convolution_high_zero_right))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right) = S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right = bcf_quotient_lucas_convolution_high_zero_right_decoded_row_scale * S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right) + (bcf_row_scale_lucas_convolution_high_zero_right))) /\ (((exists bcf_height_lucas_convolution_high_zero_right_decoded_value. bcf_height_lucas_convolution_high_zero_right_decoded_value + S (C) = S ((S (p)) * bcf_row_scale_lucas_convolution_high_zero_right)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_decoded_value. bcf_row_code_lucas_convolution_high_zero_right = bcf_quotient_lucas_convolution_high_zero_right_decoded_value * S ((S (p)) * bcf_row_scale_lucas_convolution_high_zero_right) + (C))))))))
  115. 0115apply choose_exists
  116. 0116cases hright
  117. 0117have hleft_tail : ∃ C. Choose(a,x,C)
    Exact native replay linehave hleft_tail : exists C. ((exists bcf_lt_gap_lucas_convolution_high_zero_left_tail_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_left_tail_out_of_range + S (a) = x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_left_tail_in_range. bcf_le_gap_lucas_convolution_high_zero_left_tail_in_range + (x) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_left_tail bcf_row_code_scale_lucas_convolution_high_zero_left_tail bcf_row_scale_code_lucas_convolution_high_zero_left_tail bcf_row_scale_scale_lucas_convolution_high_zero_left_tail bcf_row_code_lucas_convolution_high_zero_left_tail bcf_row_scale_lucas_convolution_high_zero_left_tail. ((forall bcf_row_index_lucas_convolution_high_zero_left_tail_table. (exists bcf_lt_gap_lucas_convolution_high_zero_left_tail_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_left_tail_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_left_tail_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_zero_left_tail_table bcf_row_scale_lucas_convolution_high_zero_left_tail_table. ((((exists bcf_height_lucas_convolution_high_zero_left_tail_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_left_tail_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_left_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_left_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_left_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_left_tail = bcf_quotient_lucas_convolution_high_zero_left_tail_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_left_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_left_tail) + (bcf_row_code_lucas_convolution_high_zero_left_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_tail_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_left_tail_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_left_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_left_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_left_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_left_tail = bcf_quotient_lucas_convolution_high_zero_left_tail_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_left_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_left_tail) + (bcf_row_scale_lucas_convolution_high_zero_left_tail_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_left_tail_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_left_tail_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_left_tail_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_left_tail_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_left_tail_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_left_tail_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_left_tail_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_left_tail_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_left_tail_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_left_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_left_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_left_tail_table = bcf_quotient_lucas_convolution_high_zero_left_tail_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_left_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_left_tail_table) + (bcf_value_lucas_convolution_high_zero_left_tail_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_left_tail_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_left_tail_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_left_tail_table_zero_row. bcf_index_lucas_convolution_high_zero_left_tail_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_left_tail_table_zero_row /\ bcf_value_lucas_convolution_high_zero_left_tail_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_left_tail_table bcf_previous_code_lucas_convolution_high_zero_left_tail_table bcf_previous_scale_lucas_convolution_high_zero_left_tail_table. bcf_row_index_lucas_convolution_high_zero_left_tail_table = S bcf_predecessor_lucas_convolution_high_zero_left_tail_table /\ ((((exists bcf_height_lucas_convolution_high_zero_left_tail_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_left_tail_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_left_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_left_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_left_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_left_tail = bcf_quotient_lucas_convolution_high_zero_left_tail_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_left_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_left_tail) + (bcf_previous_code_lucas_convolution_high_zero_left_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_tail_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_left_tail_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_left_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_left_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_left_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_left_tail = bcf_quotient_lucas_convolution_high_zero_left_tail_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_left_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_left_tail) + (bcf_previous_scale_lucas_convolution_high_zero_left_tail_table))) /\ (forall bcf_index_lucas_convolution_high_zero_left_tail_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_left_tail_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_left_tail_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_left_tail_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_left_tail_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_left_tail_table_row_step_entry. bcf_height_lucas_convolution_high_zero_left_tail_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_left_tail_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_left_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_left_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_left_tail_table = bcf_quotient_lucas_convolution_high_zero_left_tail_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_left_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_left_tail_table) + (bcf_value_lucas_convolution_high_zero_left_tail_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_left_tail_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_left_tail_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_left_tail_table_row_step bcf_left_lucas_convolution_high_zero_left_tail_table_row_step bcf_right_lucas_convolution_high_zero_left_tail_table_row_step. bcf_index_lucas_convolution_high_zero_left_tail_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_left_tail_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_left_tail_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_left_tail_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_left_tail_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_left_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_left_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_left_tail_table = bcf_quotient_lucas_convolution_high_zero_left_tail_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_left_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_left_tail_table) + (bcf_left_lucas_convolution_high_zero_left_tail_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_tail_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_left_tail_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_left_tail_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_left_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_left_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_left_tail_table = bcf_quotient_lucas_convolution_high_zero_left_tail_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_left_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_left_tail_table) + (bcf_right_lucas_convolution_high_zero_left_tail_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_left_tail_table_row_step = bcf_left_lucas_convolution_high_zero_left_tail_table_row_step + bcf_right_lucas_convolution_high_zero_left_tail_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_tail_decoded_row_code. bcf_height_lucas_convolution_high_zero_left_tail_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_left_tail) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_left_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_left_tail = bcf_quotient_lucas_convolution_high_zero_left_tail_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_left_tail) + (bcf_row_code_lucas_convolution_high_zero_left_tail))) /\ ((((exists bcf_height_lucas_convolution_high_zero_left_tail_decoded_row_scale. bcf_height_lucas_convolution_high_zero_left_tail_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_left_tail) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_left_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_left_tail = bcf_quotient_lucas_convolution_high_zero_left_tail_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_left_tail) + (bcf_row_scale_lucas_convolution_high_zero_left_tail))) /\ (((exists bcf_height_lucas_convolution_high_zero_left_tail_decoded_value. bcf_height_lucas_convolution_high_zero_left_tail_decoded_value + S (C) = S ((S (x)) * bcf_row_scale_lucas_convolution_high_zero_left_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_left_tail_decoded_value. bcf_row_code_lucas_convolution_high_zero_left_tail = bcf_quotient_lucas_convolution_high_zero_left_tail_decoded_value * S ((S (x)) * bcf_row_scale_lucas_convolution_high_zero_left_tail) + (C))))))))
  118. 0118apply choose_exists
  119. 0119cases hleft_tail
  120. 0120have hright_tail : ∃ C. Choose(a,p,C)
    Exact native replay linehave hright_tail : exists C. ((exists bcf_lt_gap_lucas_convolution_high_zero_right_tail_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_right_tail_out_of_range + S (a) = p) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_right_tail_in_range. bcf_le_gap_lucas_convolution_high_zero_right_tail_in_range + (p) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_right_tail bcf_row_code_scale_lucas_convolution_high_zero_right_tail bcf_row_scale_code_lucas_convolution_high_zero_right_tail bcf_row_scale_scale_lucas_convolution_high_zero_right_tail bcf_row_code_lucas_convolution_high_zero_right_tail bcf_row_scale_lucas_convolution_high_zero_right_tail. ((forall bcf_row_index_lucas_convolution_high_zero_right_tail_table. (exists bcf_lt_gap_lucas_convolution_high_zero_right_tail_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_tail_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_right_tail_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_zero_right_tail_table bcf_row_scale_lucas_convolution_high_zero_right_tail_table. ((((exists bcf_height_lucas_convolution_high_zero_right_tail_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_tail_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right_tail = bcf_quotient_lucas_convolution_high_zero_right_tail_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_right_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail) + (bcf_row_code_lucas_convolution_high_zero_right_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_tail_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_tail = bcf_quotient_lucas_convolution_high_zero_right_tail_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_right_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail) + (bcf_row_scale_lucas_convolution_high_zero_right_tail_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_right_tail_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_right_tail_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_right_tail_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_tail_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_right_tail_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_right_tail_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_right_tail_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_right_tail_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_right_tail_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_right_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_right_tail_table = bcf_quotient_lucas_convolution_high_zero_right_tail_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_table) + (bcf_value_lucas_convolution_high_zero_right_tail_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_right_tail_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_right_tail_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_tail_table_zero_row. bcf_index_lucas_convolution_high_zero_right_tail_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_right_tail_table_zero_row /\ bcf_value_lucas_convolution_high_zero_right_tail_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_tail_table bcf_previous_code_lucas_convolution_high_zero_right_tail_table bcf_previous_scale_lucas_convolution_high_zero_right_tail_table. bcf_row_index_lucas_convolution_high_zero_right_tail_table = S bcf_predecessor_lucas_convolution_high_zero_right_tail_table /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_right_tail_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_right_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_right_tail = bcf_quotient_lucas_convolution_high_zero_right_tail_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail) + (bcf_previous_code_lucas_convolution_high_zero_right_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_right_tail_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_right_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_tail = bcf_quotient_lucas_convolution_high_zero_right_tail_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail) + (bcf_previous_scale_lucas_convolution_high_zero_right_tail_table))) /\ (forall bcf_index_lucas_convolution_high_zero_right_tail_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_right_tail_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_right_tail_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_right_tail_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_right_tail_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_right_tail_table_row_step_entry. bcf_height_lucas_convolution_high_zero_right_tail_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_right_tail_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_right_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_right_tail_table = bcf_quotient_lucas_convolution_high_zero_right_tail_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_table) + (bcf_value_lucas_convolution_high_zero_right_tail_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_right_tail_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_right_tail_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_tail_table_row_step bcf_left_lucas_convolution_high_zero_right_tail_table_row_step bcf_right_lucas_convolution_high_zero_right_tail_table_row_step. bcf_index_lucas_convolution_high_zero_right_tail_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_right_tail_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_right_tail_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_right_tail_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_right_tail_table = bcf_quotient_lucas_convolution_high_zero_right_tail_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_tail_table) + (bcf_left_lucas_convolution_high_zero_right_tail_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_right_tail_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_right_tail_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_right_tail_table = bcf_quotient_lucas_convolution_high_zero_right_tail_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_tail_table) + (bcf_right_lucas_convolution_high_zero_right_tail_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_right_tail_table_row_step = bcf_left_lucas_convolution_high_zero_right_tail_table_row_step + bcf_right_lucas_convolution_high_zero_right_tail_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_tail_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_tail) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right_tail = bcf_quotient_lucas_convolution_high_zero_right_tail_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail) + (bcf_row_code_lucas_convolution_high_zero_right_tail))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_tail_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_tail) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_tail = bcf_quotient_lucas_convolution_high_zero_right_tail_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail) + (bcf_row_scale_lucas_convolution_high_zero_right_tail))) /\ (((exists bcf_height_lucas_convolution_high_zero_right_tail_decoded_value. bcf_height_lucas_convolution_high_zero_right_tail_decoded_value + S (C) = S ((S (p)) * bcf_row_scale_lucas_convolution_high_zero_right_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_decoded_value. bcf_row_code_lucas_convolution_high_zero_right_tail = bcf_quotient_lucas_convolution_high_zero_right_tail_decoded_value * S ((S (p)) * bcf_row_scale_lucas_convolution_high_zero_right_tail) + (C))))))))
  121. 0121apply choose_exists
  122. 0122cases hright_tail
  123. 0123have hunit_tail : ∃ C. Choose(a,0,C)
    Exact native replay linehave hunit_tail : exists C. ((exists bcf_lt_gap_lucas_convolution_high_zero_unit_tail_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_unit_tail_out_of_range + S (a) = 0) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_unit_tail_in_range. bcf_le_gap_lucas_convolution_high_zero_unit_tail_in_range + (0) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_unit_tail bcf_row_code_scale_lucas_convolution_high_zero_unit_tail bcf_row_scale_code_lucas_convolution_high_zero_unit_tail bcf_row_scale_scale_lucas_convolution_high_zero_unit_tail bcf_row_code_lucas_convolution_high_zero_unit_tail bcf_row_scale_lucas_convolution_high_zero_unit_tail. ((forall bcf_row_index_lucas_convolution_high_zero_unit_tail_table. (exists bcf_lt_gap_lucas_convolution_high_zero_unit_tail_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_unit_tail_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_unit_tail_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_zero_unit_tail_table bcf_row_scale_lucas_convolution_high_zero_unit_tail_table. ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_unit_tail_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_unit_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_unit_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_unit_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_unit_tail = bcf_quotient_lucas_convolution_high_zero_unit_tail_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_unit_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_unit_tail) + (bcf_row_code_lucas_convolution_high_zero_unit_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_unit_tail_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_unit_tail_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_unit_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_unit_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_unit_tail = bcf_quotient_lucas_convolution_high_zero_unit_tail_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_unit_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_unit_tail) + (bcf_row_scale_lucas_convolution_high_zero_unit_tail_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_unit_tail_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_unit_tail_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_unit_tail_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_unit_tail_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_unit_tail_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_unit_tail_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_unit_tail_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_unit_tail_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_unit_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_unit_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_unit_tail_table = bcf_quotient_lucas_convolution_high_zero_unit_tail_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_unit_tail_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_unit_tail_table) + (bcf_value_lucas_convolution_high_zero_unit_tail_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_unit_tail_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_unit_tail_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_unit_tail_table_zero_row. bcf_index_lucas_convolution_high_zero_unit_tail_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_unit_tail_table_zero_row /\ bcf_value_lucas_convolution_high_zero_unit_tail_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_unit_tail_table bcf_previous_code_lucas_convolution_high_zero_unit_tail_table bcf_previous_scale_lucas_convolution_high_zero_unit_tail_table. bcf_row_index_lucas_convolution_high_zero_unit_tail_table = S bcf_predecessor_lucas_convolution_high_zero_unit_tail_table /\ ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_unit_tail_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_unit_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_unit_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_unit_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_unit_tail = bcf_quotient_lucas_convolution_high_zero_unit_tail_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_unit_tail_table)) * bcf_row_code_scale_lucas_convolution_high_zero_unit_tail) + (bcf_previous_code_lucas_convolution_high_zero_unit_tail_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_unit_tail_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_unit_tail_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_unit_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_unit_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_unit_tail = bcf_quotient_lucas_convolution_high_zero_unit_tail_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_unit_tail_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_unit_tail) + (bcf_previous_scale_lucas_convolution_high_zero_unit_tail_table))) /\ (forall bcf_index_lucas_convolution_high_zero_unit_tail_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_unit_tail_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_unit_tail_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_unit_tail_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_unit_tail_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_table_row_step_entry. bcf_height_lucas_convolution_high_zero_unit_tail_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_unit_tail_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_unit_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_unit_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_unit_tail_table = bcf_quotient_lucas_convolution_high_zero_unit_tail_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_unit_tail_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_unit_tail_table) + (bcf_value_lucas_convolution_high_zero_unit_tail_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_unit_tail_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_unit_tail_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_unit_tail_table_row_step bcf_left_lucas_convolution_high_zero_unit_tail_table_row_step bcf_right_lucas_convolution_high_zero_unit_tail_table_row_step. bcf_index_lucas_convolution_high_zero_unit_tail_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_unit_tail_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_unit_tail_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_unit_tail_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_unit_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_unit_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_unit_tail_table = bcf_quotient_lucas_convolution_high_zero_unit_tail_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_unit_tail_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_unit_tail_table) + (bcf_left_lucas_convolution_high_zero_unit_tail_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_unit_tail_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_unit_tail_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_unit_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_unit_tail_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_unit_tail_table = bcf_quotient_lucas_convolution_high_zero_unit_tail_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_unit_tail_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_unit_tail_table) + (bcf_right_lucas_convolution_high_zero_unit_tail_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_unit_tail_table_row_step = bcf_left_lucas_convolution_high_zero_unit_tail_table_row_step + bcf_right_lucas_convolution_high_zero_unit_tail_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_decoded_row_code. bcf_height_lucas_convolution_high_zero_unit_tail_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_unit_tail) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_unit_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_unit_tail = bcf_quotient_lucas_convolution_high_zero_unit_tail_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_unit_tail) + (bcf_row_code_lucas_convolution_high_zero_unit_tail))) /\ ((((exists bcf_height_lucas_convolution_high_zero_unit_tail_decoded_row_scale. bcf_height_lucas_convolution_high_zero_unit_tail_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_unit_tail) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_unit_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_unit_tail = bcf_quotient_lucas_convolution_high_zero_unit_tail_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_unit_tail) + (bcf_row_scale_lucas_convolution_high_zero_unit_tail))) /\ (((exists bcf_height_lucas_convolution_high_zero_unit_tail_decoded_value. bcf_height_lucas_convolution_high_zero_unit_tail_decoded_value + S (C) = S ((S (0)) * bcf_row_scale_lucas_convolution_high_zero_unit_tail)) /\ exists bcf_quotient_lucas_convolution_high_zero_unit_tail_decoded_value. bcf_row_code_lucas_convolution_high_zero_unit_tail = bcf_quotient_lucas_convolution_high_zero_unit_tail_decoded_value * S ((S (0)) * bcf_row_scale_lucas_convolution_high_zero_unit_tail) + (C))))))))
  124. 0124apply choose_exists
  125. 0125cases hunit_tail
  126. 0126have hleft_mod : ModEq(p,x1,x3)
    Exact native replay linehave hleft_mod : exists lcv_left_high_zero_left_mod lcv_right_high_zero_left_mod. (x1) + (p) * lcv_left_high_zero_left_mod = (x3) + (p) * lcv_right_high_zero_left_mod
  127. 0127specialize lucas_prime_shift_below_base p
  128. 0128specialize lucas_prime_shift_below_base a
  129. 0129specialize lucas_prime_shift_below_base x
  130. 0130specialize lucas_prime_shift_below_base x1
  131. 0131specialize lucas_prime_shift_below_base x3
  132. 0132apply lucas_prime_shift_below_base
  133. 0133exact hprime
  134. 0134exact hsmall
  135. 0135exact hleft_witness
  136. 0136exact hleft_tail_witness
  137. 0137have hright_mod : ModEq(p,x2,x4 + x5)
    Exact native replay linehave hright_mod : exists lcv_left_high_zero_right_mod lcv_right_high_zero_right_mod. (x2) + (p) * lcv_left_high_zero_right_mod = (x4 + x5) + (p) * lcv_right_high_zero_right_mod
  138. 0138specialize IH 0
  139. 0139specialize IH x2
  140. 0140specialize IH x4
  141. 0141specialize IH x5
  142. 0142apply IH
  143. 0143exact hprime
  144. 0144have hright_zero : Choose(p + a,p + 0,x2)
    Exact native replay linehave hright_zero : ((exists bcf_lt_gap_lucas_convolution_high_zero_right_index_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_right_index_out_of_range + S (p + a) = p + 0) /\ x2 = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_right_index_in_range. bcf_le_gap_lucas_convolution_high_zero_right_index_in_range + (p + 0) = p + a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_right_index bcf_row_code_scale_lucas_convolution_high_zero_right_index bcf_row_scale_code_lucas_convolution_high_zero_right_index bcf_row_scale_scale_lucas_convolution_high_zero_right_index bcf_row_code_lucas_convolution_high_zero_right_index bcf_row_scale_lucas_convolution_high_zero_right_index. ((forall bcf_row_index_lucas_convolution_high_zero_right_index_table. (exists bcf_lt_gap_lucas_convolution_high_zero_right_index_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_index_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_right_index_table) = S (p + a)) -> exists bcf_row_code_lucas_convolution_high_zero_right_index_table bcf_row_scale_lucas_convolution_high_zero_right_index_table. ((((exists bcf_height_lucas_convolution_high_zero_right_index_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_index_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_index_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_index_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right_index = bcf_quotient_lucas_convolution_high_zero_right_index_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_right_index_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_index) + (bcf_row_code_lucas_convolution_high_zero_right_index_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_index_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_index_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_index_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_index_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_index = bcf_quotient_lucas_convolution_high_zero_right_index_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_right_index_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_index) + (bcf_row_scale_lucas_convolution_high_zero_right_index_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_right_index_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_right_index_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_right_index_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_index_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_right_index_table_zero_row) = S (p + a)) -> exists bcf_value_lucas_convolution_high_zero_right_index_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_right_index_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_right_index_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_right_index_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_right_index_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_index_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_right_index_table = bcf_quotient_lucas_convolution_high_zero_right_index_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_index_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_index_table) + (bcf_value_lucas_convolution_high_zero_right_index_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_right_index_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_right_index_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_index_table_zero_row. bcf_index_lucas_convolution_high_zero_right_index_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_right_index_table_zero_row /\ bcf_value_lucas_convolution_high_zero_right_index_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_index_table bcf_previous_code_lucas_convolution_high_zero_right_index_table bcf_previous_scale_lucas_convolution_high_zero_right_index_table. bcf_row_index_lucas_convolution_high_zero_right_index_table = S bcf_predecessor_lucas_convolution_high_zero_right_index_table /\ ((((exists bcf_height_lucas_convolution_high_zero_right_index_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_right_index_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_right_index_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_index_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_right_index = bcf_quotient_lucas_convolution_high_zero_right_index_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_index_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_index) + (bcf_previous_code_lucas_convolution_high_zero_right_index_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_index_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_right_index_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_right_index_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_index_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_index = bcf_quotient_lucas_convolution_high_zero_right_index_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_index_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_index) + (bcf_previous_scale_lucas_convolution_high_zero_right_index_table))) /\ (forall bcf_index_lucas_convolution_high_zero_right_index_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_right_index_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_right_index_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_right_index_table_row_step) = S (p + a)) -> exists bcf_value_lucas_convolution_high_zero_right_index_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_right_index_table_row_step_entry. bcf_height_lucas_convolution_high_zero_right_index_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_right_index_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_right_index_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_index_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_right_index_table = bcf_quotient_lucas_convolution_high_zero_right_index_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_index_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_index_table) + (bcf_value_lucas_convolution_high_zero_right_index_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_right_index_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_right_index_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_index_table_row_step bcf_left_lucas_convolution_high_zero_right_index_table_row_step bcf_right_lucas_convolution_high_zero_right_index_table_row_step. bcf_index_lucas_convolution_high_zero_right_index_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_right_index_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_right_index_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_right_index_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_right_index_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_index_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_index_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_right_index_table = bcf_quotient_lucas_convolution_high_zero_right_index_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_index_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_index_table) + (bcf_left_lucas_convolution_high_zero_right_index_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_index_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_right_index_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_right_index_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_index_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_index_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_right_index_table = bcf_quotient_lucas_convolution_high_zero_right_index_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_index_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_index_table) + (bcf_right_lucas_convolution_high_zero_right_index_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_right_index_table_row_step = bcf_left_lucas_convolution_high_zero_right_index_table_row_step + bcf_right_lucas_convolution_high_zero_right_index_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_index_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_index_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_index) = S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_zero_right_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right_index = bcf_quotient_lucas_convolution_high_zero_right_index_decoded_row_code * S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_zero_right_index) + (bcf_row_code_lucas_convolution_high_zero_right_index))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_index_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_index_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_index) = S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_index = bcf_quotient_lucas_convolution_high_zero_right_index_decoded_row_scale * S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_index) + (bcf_row_scale_lucas_convolution_high_zero_right_index))) /\ (((exists bcf_height_lucas_convolution_high_zero_right_index_decoded_value. bcf_height_lucas_convolution_high_zero_right_index_decoded_value + S (x2) = S ((S (p + 0)) * bcf_row_scale_lucas_convolution_high_zero_right_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_index_decoded_value. bcf_row_code_lucas_convolution_high_zero_right_index = bcf_quotient_lucas_convolution_high_zero_right_index_decoded_value * S ((S (p + 0)) * bcf_row_scale_lucas_convolution_high_zero_right_index) + (x2))))))))
  145. 0145specialize lucas_choose_lower_eq_transport (p + a)
  146. 0146specialize lucas_choose_lower_eq_transport p
  147. 0147specialize lucas_choose_lower_eq_transport (p + 0)
  148. 0148specialize lucas_choose_lower_eq_transport x2
  149. 0149apply lucas_choose_lower_eq_transport
  150. 0150symm
  151. 0151apply PA3
  152. 0152exact hright_witness
  153. 0153exact hright_zero
  154. 0154have hright_tail_zero : Choose(a,p + 0,x4)
    Exact native replay linehave hright_tail_zero : ((exists bcf_lt_gap_lucas_convolution_high_zero_right_tail_index_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_right_tail_index_out_of_range + S (a) = p + 0) /\ x4 = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_right_tail_index_in_range. bcf_le_gap_lucas_convolution_high_zero_right_tail_index_in_range + (p + 0) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_right_tail_index bcf_row_code_scale_lucas_convolution_high_zero_right_tail_index bcf_row_scale_code_lucas_convolution_high_zero_right_tail_index bcf_row_scale_scale_lucas_convolution_high_zero_right_tail_index bcf_row_code_lucas_convolution_high_zero_right_tail_index bcf_row_scale_lucas_convolution_high_zero_right_tail_index. ((forall bcf_row_index_lucas_convolution_high_zero_right_tail_index_table. (exists bcf_lt_gap_lucas_convolution_high_zero_right_tail_index_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_tail_index_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_right_tail_index_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_zero_right_tail_index_table bcf_row_scale_lucas_convolution_high_zero_right_tail_index_table. ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_tail_index_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_tail_index_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_tail_index_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right_tail_index = bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_right_tail_index_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail_index) + (bcf_row_code_lucas_convolution_high_zero_right_tail_index_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_tail_index_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_tail_index_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_tail_index_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_tail_index = bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_right_tail_index_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail_index) + (bcf_row_scale_lucas_convolution_high_zero_right_tail_index_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_right_tail_index_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_right_tail_index_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_right_tail_index_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_tail_index_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_right_tail_index_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_right_tail_index_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_right_tail_index_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_right_tail_index_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_right_tail_index_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_index_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_right_tail_index_table = bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_tail_index_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_index_table) + (bcf_value_lucas_convolution_high_zero_right_tail_index_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_right_tail_index_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_right_tail_index_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table_zero_row. bcf_index_lucas_convolution_high_zero_right_tail_index_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table_zero_row /\ bcf_value_lucas_convolution_high_zero_right_tail_index_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table bcf_previous_code_lucas_convolution_high_zero_right_tail_index_table bcf_previous_scale_lucas_convolution_high_zero_right_tail_index_table. bcf_row_index_lucas_convolution_high_zero_right_tail_index_table = S bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_right_tail_index_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_right_tail_index_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_right_tail_index = bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail_index) + (bcf_previous_code_lucas_convolution_high_zero_right_tail_index_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_right_tail_index_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_right_tail_index_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_tail_index = bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail_index) + (bcf_previous_scale_lucas_convolution_high_zero_right_tail_index_table))) /\ (forall bcf_index_lucas_convolution_high_zero_right_tail_index_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_right_tail_index_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_right_tail_index_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_right_tail_index_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_right_tail_index_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_table_row_step_entry. bcf_height_lucas_convolution_high_zero_right_tail_index_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_right_tail_index_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_right_tail_index_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_index_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_right_tail_index_table = bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_tail_index_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_index_table) + (bcf_value_lucas_convolution_high_zero_right_tail_index_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_right_tail_index_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_right_tail_index_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table_row_step bcf_left_lucas_convolution_high_zero_right_tail_index_table_row_step bcf_right_lucas_convolution_high_zero_right_tail_index_table_row_step. bcf_index_lucas_convolution_high_zero_right_tail_index_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_right_tail_index_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_right_tail_index_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_tail_index_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_right_tail_index_table = bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_tail_index_table) + (bcf_left_lucas_convolution_high_zero_right_tail_index_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_right_tail_index_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_right_tail_index_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_tail_index_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_right_tail_index_table = bcf_quotient_lucas_convolution_high_zero_right_tail_index_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_tail_index_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_tail_index_table) + (bcf_right_lucas_convolution_high_zero_right_tail_index_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_right_tail_index_table_row_step = bcf_left_lucas_convolution_high_zero_right_tail_index_table_row_step + bcf_right_lucas_convolution_high_zero_right_tail_index_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_tail_index_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_tail_index) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right_tail_index = bcf_quotient_lucas_convolution_high_zero_right_tail_index_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_right_tail_index) + (bcf_row_code_lucas_convolution_high_zero_right_tail_index))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_tail_index_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_tail_index_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_tail_index) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_tail_index = bcf_quotient_lucas_convolution_high_zero_right_tail_index_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_tail_index) + (bcf_row_scale_lucas_convolution_high_zero_right_tail_index))) /\ (((exists bcf_height_lucas_convolution_high_zero_right_tail_index_decoded_value. bcf_height_lucas_convolution_high_zero_right_tail_index_decoded_value + S (x4) = S ((S (p + 0)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_index)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_tail_index_decoded_value. bcf_row_code_lucas_convolution_high_zero_right_tail_index = bcf_quotient_lucas_convolution_high_zero_right_tail_index_decoded_value * S ((S (p + 0)) * bcf_row_scale_lucas_convolution_high_zero_right_tail_index) + (x4))))))))
  155. 0155specialize lucas_choose_lower_eq_transport a
  156. 0156specialize lucas_choose_lower_eq_transport p
  157. 0157specialize lucas_choose_lower_eq_transport (p + 0)
  158. 0158specialize lucas_choose_lower_eq_transport x4
  159. 0159apply lucas_choose_lower_eq_transport
  160. 0160symm
  161. 0161apply PA3
  162. 0162exact hright_tail_witness
  163. 0163exact hright_tail_zero
  164. 0164exact hunit_tail_witness
  165. 0165have hindex : p + j = S x
  166. 0166rewrite hcase_left
  167. 0167trans p
  168. 0168apply PA3
  169. 0169exact hpredecessor_witness
  170. 0170have hCindex : Choose(p + S a,S x,C)
    Exact native replay linehave hCindex : ((exists bcf_lt_gap_lucas_convolution_high_zero_Cindex_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_Cindex_out_of_range + S (p + S a) = S x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_Cindex_in_range. bcf_le_gap_lucas_convolution_high_zero_Cindex_in_range + (S x) = p + S a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_Cindex bcf_row_code_scale_lucas_convolution_high_zero_Cindex bcf_row_scale_code_lucas_convolution_high_zero_Cindex bcf_row_scale_scale_lucas_convolution_high_zero_Cindex bcf_row_code_lucas_convolution_high_zero_Cindex bcf_row_scale_lucas_convolution_high_zero_Cindex. ((forall bcf_row_index_lucas_convolution_high_zero_Cindex_table. (exists bcf_lt_gap_lucas_convolution_high_zero_Cindex_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_Cindex_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_Cindex_table) = S (p + S a)) -> exists bcf_row_code_lucas_convolution_high_zero_Cindex_table bcf_row_scale_lucas_convolution_high_zero_Cindex_table. ((((exists bcf_height_lucas_convolution_high_zero_Cindex_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_Cindex_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_Cindex_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_Cindex_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_Cindex = bcf_quotient_lucas_convolution_high_zero_Cindex_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_Cindex_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Cindex) + (bcf_row_code_lucas_convolution_high_zero_Cindex_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cindex_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_Cindex_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_Cindex_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_Cindex_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_Cindex = bcf_quotient_lucas_convolution_high_zero_Cindex_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_Cindex_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cindex) + (bcf_row_scale_lucas_convolution_high_zero_Cindex_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_Cindex_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_Cindex_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_Cindex_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_Cindex_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_Cindex_table_zero_row) = S (p + S a)) -> exists bcf_value_lucas_convolution_high_zero_Cindex_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_Cindex_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_Cindex_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_Cindex_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_Cindex_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_Cindex_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_Cindex_table = bcf_quotient_lucas_convolution_high_zero_Cindex_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_Cindex_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_Cindex_table) + (bcf_value_lucas_convolution_high_zero_Cindex_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_Cindex_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_Cindex_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_Cindex_table_zero_row. bcf_index_lucas_convolution_high_zero_Cindex_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_Cindex_table_zero_row /\ bcf_value_lucas_convolution_high_zero_Cindex_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_Cindex_table bcf_previous_code_lucas_convolution_high_zero_Cindex_table bcf_previous_scale_lucas_convolution_high_zero_Cindex_table. bcf_row_index_lucas_convolution_high_zero_Cindex_table = S bcf_predecessor_lucas_convolution_high_zero_Cindex_table /\ ((((exists bcf_height_lucas_convolution_high_zero_Cindex_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_Cindex_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_Cindex_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Cindex_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_Cindex = bcf_quotient_lucas_convolution_high_zero_Cindex_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_Cindex_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Cindex) + (bcf_previous_code_lucas_convolution_high_zero_Cindex_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cindex_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_Cindex_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_Cindex_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Cindex_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_Cindex = bcf_quotient_lucas_convolution_high_zero_Cindex_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_Cindex_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cindex) + (bcf_previous_scale_lucas_convolution_high_zero_Cindex_table))) /\ (forall bcf_index_lucas_convolution_high_zero_Cindex_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_Cindex_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_Cindex_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_Cindex_table_row_step) = S (p + S a)) -> exists bcf_value_lucas_convolution_high_zero_Cindex_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_Cindex_table_row_step_entry. bcf_height_lucas_convolution_high_zero_Cindex_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_Cindex_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_Cindex_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_Cindex_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_Cindex_table = bcf_quotient_lucas_convolution_high_zero_Cindex_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_Cindex_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_Cindex_table) + (bcf_value_lucas_convolution_high_zero_Cindex_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_Cindex_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_Cindex_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_Cindex_table_row_step bcf_left_lucas_convolution_high_zero_Cindex_table_row_step bcf_right_lucas_convolution_high_zero_Cindex_table_row_step. bcf_index_lucas_convolution_high_zero_Cindex_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_Cindex_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_Cindex_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_Cindex_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_Cindex_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Cindex_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_Cindex_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_Cindex_table = bcf_quotient_lucas_convolution_high_zero_Cindex_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_Cindex_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_Cindex_table) + (bcf_left_lucas_convolution_high_zero_Cindex_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cindex_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_Cindex_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_Cindex_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_Cindex_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_Cindex_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_Cindex_table = bcf_quotient_lucas_convolution_high_zero_Cindex_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_Cindex_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_Cindex_table) + (bcf_right_lucas_convolution_high_zero_Cindex_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_Cindex_table_row_step = bcf_left_lucas_convolution_high_zero_Cindex_table_row_step + bcf_right_lucas_convolution_high_zero_Cindex_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cindex_decoded_row_code. bcf_height_lucas_convolution_high_zero_Cindex_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_Cindex) = S ((S (p + S a)) * bcf_row_code_scale_lucas_convolution_high_zero_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_Cindex = bcf_quotient_lucas_convolution_high_zero_Cindex_decoded_row_code * S ((S (p + S a)) * bcf_row_code_scale_lucas_convolution_high_zero_Cindex) + (bcf_row_code_lucas_convolution_high_zero_Cindex))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cindex_decoded_row_scale. bcf_height_lucas_convolution_high_zero_Cindex_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_Cindex) = S ((S (p + S a)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_Cindex = bcf_quotient_lucas_convolution_high_zero_Cindex_decoded_row_scale * S ((S (p + S a)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cindex) + (bcf_row_scale_lucas_convolution_high_zero_Cindex))) /\ (((exists bcf_height_lucas_convolution_high_zero_Cindex_decoded_value. bcf_height_lucas_convolution_high_zero_Cindex_decoded_value + S (C) = S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cindex_decoded_value. bcf_row_code_lucas_convolution_high_zero_Cindex = bcf_quotient_lucas_convolution_high_zero_Cindex_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_Cindex) + (C))))))))
  171. 0171specialize lucas_choose_lower_eq_transport (p + S a)
  172. 0172specialize lucas_choose_lower_eq_transport (p + j)
  173. 0173specialize lucas_choose_lower_eq_transport (S x)
  174. 0174specialize lucas_choose_lower_eq_transport C
  175. 0175apply lucas_choose_lower_eq_transport
  176. 0176exact hindex
  177. 0177exact hchoose
  178. 0178have hCnormal : Choose(S (p + a),S x,C)
    Exact native replay linehave hCnormal : ((exists bcf_lt_gap_lucas_convolution_high_zero_Cnormal_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_Cnormal_out_of_range + S (S (p + a)) = S x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_Cnormal_in_range. bcf_le_gap_lucas_convolution_high_zero_Cnormal_in_range + (S x) = S (p + a)) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_Cnormal bcf_row_code_scale_lucas_convolution_high_zero_Cnormal bcf_row_scale_code_lucas_convolution_high_zero_Cnormal bcf_row_scale_scale_lucas_convolution_high_zero_Cnormal bcf_row_code_lucas_convolution_high_zero_Cnormal bcf_row_scale_lucas_convolution_high_zero_Cnormal. ((forall bcf_row_index_lucas_convolution_high_zero_Cnormal_table. (exists bcf_lt_gap_lucas_convolution_high_zero_Cnormal_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_Cnormal_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_Cnormal_table) = S (S (p + a))) -> exists bcf_row_code_lucas_convolution_high_zero_Cnormal_table bcf_row_scale_lucas_convolution_high_zero_Cnormal_table. ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_Cnormal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_Cnormal_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_Cnormal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_Cnormal = bcf_quotient_lucas_convolution_high_zero_Cnormal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_Cnormal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Cnormal) + (bcf_row_code_lucas_convolution_high_zero_Cnormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_Cnormal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_Cnormal_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_Cnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_Cnormal = bcf_quotient_lucas_convolution_high_zero_Cnormal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_Cnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cnormal) + (bcf_row_scale_lucas_convolution_high_zero_Cnormal_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_Cnormal_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_Cnormal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_Cnormal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_Cnormal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_Cnormal_table_zero_row) = S (S (p + a))) -> exists bcf_value_lucas_convolution_high_zero_Cnormal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_Cnormal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_Cnormal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_Cnormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_Cnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_Cnormal_table = bcf_quotient_lucas_convolution_high_zero_Cnormal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_Cnormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_Cnormal_table) + (bcf_value_lucas_convolution_high_zero_Cnormal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_Cnormal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_Cnormal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_Cnormal_table_zero_row. bcf_index_lucas_convolution_high_zero_Cnormal_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_Cnormal_table_zero_row /\ bcf_value_lucas_convolution_high_zero_Cnormal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_Cnormal_table bcf_previous_code_lucas_convolution_high_zero_Cnormal_table bcf_previous_scale_lucas_convolution_high_zero_Cnormal_table. bcf_row_index_lucas_convolution_high_zero_Cnormal_table = S bcf_predecessor_lucas_convolution_high_zero_Cnormal_table /\ ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_Cnormal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_Cnormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Cnormal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_Cnormal = bcf_quotient_lucas_convolution_high_zero_Cnormal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_Cnormal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Cnormal) + (bcf_previous_code_lucas_convolution_high_zero_Cnormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_Cnormal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_Cnormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Cnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_Cnormal = bcf_quotient_lucas_convolution_high_zero_Cnormal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_Cnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Cnormal) + (bcf_previous_scale_lucas_convolution_high_zero_Cnormal_table))) /\ (forall bcf_index_lucas_convolution_high_zero_Cnormal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_Cnormal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_Cnormal_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_Cnormal_table_row_step) = S (S (p + a))) -> exists bcf_value_lucas_convolution_high_zero_Cnormal_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_table_row_step_entry. bcf_height_lucas_convolution_high_zero_Cnormal_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_Cnormal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_Cnormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_Cnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_Cnormal_table = bcf_quotient_lucas_convolution_high_zero_Cnormal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_Cnormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_Cnormal_table) + (bcf_value_lucas_convolution_high_zero_Cnormal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_Cnormal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_Cnormal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_Cnormal_table_row_step bcf_left_lucas_convolution_high_zero_Cnormal_table_row_step bcf_right_lucas_convolution_high_zero_Cnormal_table_row_step. bcf_index_lucas_convolution_high_zero_Cnormal_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_Cnormal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_Cnormal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_Cnormal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Cnormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_Cnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_Cnormal_table = bcf_quotient_lucas_convolution_high_zero_Cnormal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_Cnormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_Cnormal_table) + (bcf_left_lucas_convolution_high_zero_Cnormal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_Cnormal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_Cnormal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_Cnormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_Cnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_Cnormal_table = bcf_quotient_lucas_convolution_high_zero_Cnormal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_Cnormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_Cnormal_table) + (bcf_right_lucas_convolution_high_zero_Cnormal_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_Cnormal_table_row_step = bcf_left_lucas_convolution_high_zero_Cnormal_table_row_step + bcf_right_lucas_convolution_high_zero_Cnormal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_decoded_row_code. bcf_height_lucas_convolution_high_zero_Cnormal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_Cnormal) = S ((S (S (p + a))) * bcf_row_code_scale_lucas_convolution_high_zero_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_Cnormal = bcf_quotient_lucas_convolution_high_zero_Cnormal_decoded_row_code * S ((S (S (p + a))) * bcf_row_code_scale_lucas_convolution_high_zero_Cnormal) + (bcf_row_code_lucas_convolution_high_zero_Cnormal))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Cnormal_decoded_row_scale. bcf_height_lucas_convolution_high_zero_Cnormal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_Cnormal) = S ((S (S (p + a))) * bcf_row_scale_scale_lucas_convolution_high_zero_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_Cnormal = bcf_quotient_lucas_convolution_high_zero_Cnormal_decoded_row_scale * S ((S (S (p + a))) * bcf_row_scale_scale_lucas_convolution_high_zero_Cnormal) + (bcf_row_scale_lucas_convolution_high_zero_Cnormal))) /\ (((exists bcf_height_lucas_convolution_high_zero_Cnormal_decoded_value. bcf_height_lucas_convolution_high_zero_Cnormal_decoded_value + S (C) = S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Cnormal_decoded_value. bcf_row_code_lucas_convolution_high_zero_Cnormal = bcf_quotient_lucas_convolution_high_zero_Cnormal_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_Cnormal) + (C))))))))
  179. 0179specialize choose_upper_eq_transport (p + S a)
  180. 0180specialize choose_upper_eq_transport (S (p + a))
  181. 0181specialize choose_upper_eq_transport (S x)
  182. 0182specialize choose_upper_eq_transport C
  183. 0183apply choose_upper_eq_transport
  184. 0184apply PA4
  185. 0185exact hCindex
  186. 0186have hright_normal : Choose(p + a,S x,x2)
    Exact native replay linehave hright_normal : ((exists bcf_lt_gap_lucas_convolution_high_zero_right_normal_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_right_normal_out_of_range + S (p + a) = S x) /\ x2 = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_right_normal_in_range. bcf_le_gap_lucas_convolution_high_zero_right_normal_in_range + (S x) = p + a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_right_normal bcf_row_code_scale_lucas_convolution_high_zero_right_normal bcf_row_scale_code_lucas_convolution_high_zero_right_normal bcf_row_scale_scale_lucas_convolution_high_zero_right_normal bcf_row_code_lucas_convolution_high_zero_right_normal bcf_row_scale_lucas_convolution_high_zero_right_normal. ((forall bcf_row_index_lucas_convolution_high_zero_right_normal_table. (exists bcf_lt_gap_lucas_convolution_high_zero_right_normal_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_normal_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_right_normal_table) = S (p + a)) -> exists bcf_row_code_lucas_convolution_high_zero_right_normal_table bcf_row_scale_lucas_convolution_high_zero_right_normal_table. ((((exists bcf_height_lucas_convolution_high_zero_right_normal_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_normal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_normal_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right_normal = bcf_quotient_lucas_convolution_high_zero_right_normal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_normal) + (bcf_row_code_lucas_convolution_high_zero_right_normal_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_normal_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_normal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_normal_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_normal = bcf_quotient_lucas_convolution_high_zero_right_normal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_normal) + (bcf_row_scale_lucas_convolution_high_zero_right_normal_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_right_normal_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_right_normal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_right_normal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_right_normal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_right_normal_table_zero_row) = S (p + a)) -> exists bcf_value_lucas_convolution_high_zero_right_normal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_right_normal_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_right_normal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_right_normal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_right_normal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_right_normal_table = bcf_quotient_lucas_convolution_high_zero_right_normal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_normal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_right_normal_table) + (bcf_value_lucas_convolution_high_zero_right_normal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_right_normal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_right_normal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_normal_table_zero_row. bcf_index_lucas_convolution_high_zero_right_normal_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_right_normal_table_zero_row /\ bcf_value_lucas_convolution_high_zero_right_normal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_normal_table bcf_previous_code_lucas_convolution_high_zero_right_normal_table bcf_previous_scale_lucas_convolution_high_zero_right_normal_table. bcf_row_index_lucas_convolution_high_zero_right_normal_table = S bcf_predecessor_lucas_convolution_high_zero_right_normal_table /\ ((((exists bcf_height_lucas_convolution_high_zero_right_normal_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_right_normal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_right_normal_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_right_normal = bcf_quotient_lucas_convolution_high_zero_right_normal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_right_normal) + (bcf_previous_code_lucas_convolution_high_zero_right_normal_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_normal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_right_normal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_right_normal_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_normal = bcf_quotient_lucas_convolution_high_zero_right_normal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_normal) + (bcf_previous_scale_lucas_convolution_high_zero_right_normal_table))) /\ (forall bcf_index_lucas_convolution_high_zero_right_normal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_right_normal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_right_normal_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_right_normal_table_row_step) = S (p + a)) -> exists bcf_value_lucas_convolution_high_zero_right_normal_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_right_normal_table_row_step_entry. bcf_height_lucas_convolution_high_zero_right_normal_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_right_normal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_right_normal_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_right_normal_table = bcf_quotient_lucas_convolution_high_zero_right_normal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_right_normal_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_right_normal_table) + (bcf_value_lucas_convolution_high_zero_right_normal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_right_normal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_right_normal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_right_normal_table_row_step bcf_left_lucas_convolution_high_zero_right_normal_table_row_step bcf_right_lucas_convolution_high_zero_right_normal_table_row_step. bcf_index_lucas_convolution_high_zero_right_normal_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_right_normal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_right_normal_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_right_normal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_right_normal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_right_normal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_right_normal_table = bcf_quotient_lucas_convolution_high_zero_right_normal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_right_normal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_right_normal_table) + (bcf_left_lucas_convolution_high_zero_right_normal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_normal_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_right_normal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_right_normal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_normal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_right_normal_table = bcf_quotient_lucas_convolution_high_zero_right_normal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_right_normal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_right_normal_table) + (bcf_right_lucas_convolution_high_zero_right_normal_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_right_normal_table_row_step = bcf_left_lucas_convolution_high_zero_right_normal_table_row_step + bcf_right_lucas_convolution_high_zero_right_normal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_normal_decoded_row_code. bcf_height_lucas_convolution_high_zero_right_normal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_right_normal) = S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_zero_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_right_normal = bcf_quotient_lucas_convolution_high_zero_right_normal_decoded_row_code * S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_zero_right_normal) + (bcf_row_code_lucas_convolution_high_zero_right_normal))) /\ ((((exists bcf_height_lucas_convolution_high_zero_right_normal_decoded_row_scale. bcf_height_lucas_convolution_high_zero_right_normal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_right_normal) = S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_right_normal = bcf_quotient_lucas_convolution_high_zero_right_normal_decoded_row_scale * S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_zero_right_normal) + (bcf_row_scale_lucas_convolution_high_zero_right_normal))) /\ (((exists bcf_height_lucas_convolution_high_zero_right_normal_decoded_value. bcf_height_lucas_convolution_high_zero_right_normal_decoded_value + S (x2) = S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_right_normal_decoded_value. bcf_row_code_lucas_convolution_high_zero_right_normal = bcf_quotient_lucas_convolution_high_zero_right_normal_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_right_normal) + (x2))))))))
  187. 0187specialize lucas_choose_lower_eq_transport (p + a)
  188. 0188specialize lucas_choose_lower_eq_transport p
  189. 0189specialize lucas_choose_lower_eq_transport (S x)
  190. 0190specialize lucas_choose_lower_eq_transport x2
  191. 0191apply lucas_choose_lower_eq_transport
  192. 0192exact hpredecessor_witness
  193. 0193exact hright_witness
  194. 0194have hsum_mod : ModEq(p,C,x3 + (x4 + x5))
    Exact native replay linehave hsum_mod : exists lcv_left_high_zero_sum_mod lcv_right_high_zero_sum_mod. (C) + (p) * lcv_left_high_zero_sum_mod = (x3 + (x4 + x5)) + (p) * lcv_right_high_zero_sum_mod
  195. 0195specialize lucas_pascal_congruence_step p
  196. 0196specialize lucas_pascal_congruence_step (p + a)
  197. 0197specialize lucas_pascal_congruence_step x
  198. 0198specialize lucas_pascal_congruence_step x1
  199. 0199specialize lucas_pascal_congruence_step x2
  200. 0200specialize lucas_pascal_congruence_step C
  201. 0201specialize lucas_pascal_congruence_step x3
  202. 0202specialize lucas_pascal_congruence_step (x4 + x5)
  203. 0203apply lucas_pascal_congruence_step
  204. 0204exact hleft_witness
  205. 0205exact hright_normal
  206. 0206exact hCnormal
  207. 0207exact hleft_mod
  208. 0208exact hright_mod
  209. 0209have hAnormal : Choose(S a,S x,A)
    Exact native replay linehave hAnormal : ((exists bcf_lt_gap_lucas_convolution_high_zero_Anormal_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_Anormal_out_of_range + S (S a) = S x) /\ A = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_Anormal_in_range. bcf_le_gap_lucas_convolution_high_zero_Anormal_in_range + (S x) = S a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_Anormal bcf_row_code_scale_lucas_convolution_high_zero_Anormal bcf_row_scale_code_lucas_convolution_high_zero_Anormal bcf_row_scale_scale_lucas_convolution_high_zero_Anormal bcf_row_code_lucas_convolution_high_zero_Anormal bcf_row_scale_lucas_convolution_high_zero_Anormal. ((forall bcf_row_index_lucas_convolution_high_zero_Anormal_table. (exists bcf_lt_gap_lucas_convolution_high_zero_Anormal_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_Anormal_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_Anormal_table) = S (S a)) -> exists bcf_row_code_lucas_convolution_high_zero_Anormal_table bcf_row_scale_lucas_convolution_high_zero_Anormal_table. ((((exists bcf_height_lucas_convolution_high_zero_Anormal_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_Anormal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_Anormal_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_Anormal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_Anormal = bcf_quotient_lucas_convolution_high_zero_Anormal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_Anormal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Anormal) + (bcf_row_code_lucas_convolution_high_zero_Anormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Anormal_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_Anormal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_Anormal_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_Anormal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_Anormal = bcf_quotient_lucas_convolution_high_zero_Anormal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_Anormal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Anormal) + (bcf_row_scale_lucas_convolution_high_zero_Anormal_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_Anormal_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_Anormal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_Anormal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_Anormal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_Anormal_table_zero_row) = S (S a)) -> exists bcf_value_lucas_convolution_high_zero_Anormal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_Anormal_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_Anormal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_Anormal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_Anormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_Anormal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_Anormal_table = bcf_quotient_lucas_convolution_high_zero_Anormal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_Anormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_Anormal_table) + (bcf_value_lucas_convolution_high_zero_Anormal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_Anormal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_Anormal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_Anormal_table_zero_row. bcf_index_lucas_convolution_high_zero_Anormal_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_Anormal_table_zero_row /\ bcf_value_lucas_convolution_high_zero_Anormal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_Anormal_table bcf_previous_code_lucas_convolution_high_zero_Anormal_table bcf_previous_scale_lucas_convolution_high_zero_Anormal_table. bcf_row_index_lucas_convolution_high_zero_Anormal_table = S bcf_predecessor_lucas_convolution_high_zero_Anormal_table /\ ((((exists bcf_height_lucas_convolution_high_zero_Anormal_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_Anormal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_Anormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Anormal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_Anormal = bcf_quotient_lucas_convolution_high_zero_Anormal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_Anormal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_Anormal) + (bcf_previous_code_lucas_convolution_high_zero_Anormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Anormal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_Anormal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_Anormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Anormal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_Anormal = bcf_quotient_lucas_convolution_high_zero_Anormal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_Anormal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_Anormal) + (bcf_previous_scale_lucas_convolution_high_zero_Anormal_table))) /\ (forall bcf_index_lucas_convolution_high_zero_Anormal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_Anormal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_Anormal_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_Anormal_table_row_step) = S (S a)) -> exists bcf_value_lucas_convolution_high_zero_Anormal_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_Anormal_table_row_step_entry. bcf_height_lucas_convolution_high_zero_Anormal_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_Anormal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_Anormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_Anormal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_Anormal_table = bcf_quotient_lucas_convolution_high_zero_Anormal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_Anormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_Anormal_table) + (bcf_value_lucas_convolution_high_zero_Anormal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_Anormal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_Anormal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_Anormal_table_row_step bcf_left_lucas_convolution_high_zero_Anormal_table_row_step bcf_right_lucas_convolution_high_zero_Anormal_table_row_step. bcf_index_lucas_convolution_high_zero_Anormal_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_Anormal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_Anormal_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_Anormal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_Anormal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_Anormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_Anormal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_Anormal_table = bcf_quotient_lucas_convolution_high_zero_Anormal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_Anormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_Anormal_table) + (bcf_left_lucas_convolution_high_zero_Anormal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Anormal_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_Anormal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_Anormal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_Anormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_Anormal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_Anormal_table = bcf_quotient_lucas_convolution_high_zero_Anormal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_Anormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_Anormal_table) + (bcf_right_lucas_convolution_high_zero_Anormal_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_Anormal_table_row_step = bcf_left_lucas_convolution_high_zero_Anormal_table_row_step + bcf_right_lucas_convolution_high_zero_Anormal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Anormal_decoded_row_code. bcf_height_lucas_convolution_high_zero_Anormal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_Anormal) = S ((S (S a)) * bcf_row_code_scale_lucas_convolution_high_zero_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_Anormal = bcf_quotient_lucas_convolution_high_zero_Anormal_decoded_row_code * S ((S (S a)) * bcf_row_code_scale_lucas_convolution_high_zero_Anormal) + (bcf_row_code_lucas_convolution_high_zero_Anormal))) /\ ((((exists bcf_height_lucas_convolution_high_zero_Anormal_decoded_row_scale. bcf_height_lucas_convolution_high_zero_Anormal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_Anormal) = S ((S (S a)) * bcf_row_scale_scale_lucas_convolution_high_zero_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_Anormal = bcf_quotient_lucas_convolution_high_zero_Anormal_decoded_row_scale * S ((S (S a)) * bcf_row_scale_scale_lucas_convolution_high_zero_Anormal) + (bcf_row_scale_lucas_convolution_high_zero_Anormal))) /\ (((exists bcf_height_lucas_convolution_high_zero_Anormal_decoded_value. bcf_height_lucas_convolution_high_zero_Anormal_decoded_value + S (A) = S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_zero_Anormal_decoded_value. bcf_row_code_lucas_convolution_high_zero_Anormal = bcf_quotient_lucas_convolution_high_zero_Anormal_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_Anormal) + (A))))))))
  210. 0210specialize lucas_choose_lower_eq_transport (S a)
  211. 0211specialize lucas_choose_lower_eq_transport (p + j)
  212. 0212specialize lucas_choose_lower_eq_transport (S x)
  213. 0213specialize lucas_choose_lower_eq_transport A
  214. 0214apply lucas_choose_lower_eq_transport
  215. 0215exact hindex
  216. 0216exact hupper_tail
  217. 0217have hright_tail_normal : Choose(a,S x,x4)
    Exact native replay linehave hright_tail_normal : ((exists bcf_lt_gap_lucas_convolution_high_zero_tail_normal_out_of_range. bcf_lt_gap_lucas_convolution_high_zero_tail_normal_out_of_range + S (a) = S x) /\ x4 = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_zero_tail_normal_in_range. bcf_le_gap_lucas_convolution_high_zero_tail_normal_in_range + (S x) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_zero_tail_normal bcf_row_code_scale_lucas_convolution_high_zero_tail_normal bcf_row_scale_code_lucas_convolution_high_zero_tail_normal bcf_row_scale_scale_lucas_convolution_high_zero_tail_normal bcf_row_code_lucas_convolution_high_zero_tail_normal bcf_row_scale_lucas_convolution_high_zero_tail_normal. ((forall bcf_row_index_lucas_convolution_high_zero_tail_normal_table. (exists bcf_lt_gap_lucas_convolution_high_zero_tail_normal_table_row_bound. bcf_lt_gap_lucas_convolution_high_zero_tail_normal_table_row_bound + S (bcf_row_index_lucas_convolution_high_zero_tail_normal_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_zero_tail_normal_table bcf_row_scale_lucas_convolution_high_zero_tail_normal_table. ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_table_decoded_row_code. bcf_height_lucas_convolution_high_zero_tail_normal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_tail_normal_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_tail_normal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_tail_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_tail_normal = bcf_quotient_lucas_convolution_high_zero_tail_normal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_zero_tail_normal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_tail_normal) + (bcf_row_code_lucas_convolution_high_zero_tail_normal_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_table_decoded_row_scale. bcf_height_lucas_convolution_high_zero_tail_normal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_tail_normal_table) = S ((S (bcf_row_index_lucas_convolution_high_zero_tail_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_tail_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_tail_normal = bcf_quotient_lucas_convolution_high_zero_tail_normal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_zero_tail_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_tail_normal) + (bcf_row_scale_lucas_convolution_high_zero_tail_normal_table))) /\ ((bcf_row_index_lucas_convolution_high_zero_tail_normal_table = 0 /\ (forall bcf_index_lucas_convolution_high_zero_tail_normal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_zero_tail_normal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_zero_tail_normal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_zero_tail_normal_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_tail_normal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_table_zero_row_entry. bcf_height_lucas_convolution_high_zero_tail_normal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_zero_tail_normal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_zero_tail_normal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_tail_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_zero_tail_normal_table = bcf_quotient_lucas_convolution_high_zero_tail_normal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_zero_tail_normal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_zero_tail_normal_table) + (bcf_value_lucas_convolution_high_zero_tail_normal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_zero_tail_normal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_zero_tail_normal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_tail_normal_table_zero_row. bcf_index_lucas_convolution_high_zero_tail_normal_table_zero_row = S bcf_predecessor_lucas_convolution_high_zero_tail_normal_table_zero_row /\ bcf_value_lucas_convolution_high_zero_tail_normal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_zero_tail_normal_table bcf_previous_code_lucas_convolution_high_zero_tail_normal_table bcf_previous_scale_lucas_convolution_high_zero_tail_normal_table. bcf_row_index_lucas_convolution_high_zero_tail_normal_table = S bcf_predecessor_lucas_convolution_high_zero_tail_normal_table /\ ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_table_decoded_previous_code. bcf_height_lucas_convolution_high_zero_tail_normal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_zero_tail_normal_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_tail_normal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_tail_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_zero_tail_normal = bcf_quotient_lucas_convolution_high_zero_tail_normal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_zero_tail_normal_table)) * bcf_row_code_scale_lucas_convolution_high_zero_tail_normal) + (bcf_previous_code_lucas_convolution_high_zero_tail_normal_table))) /\ ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_zero_tail_normal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_zero_tail_normal_table) = S ((S (bcf_predecessor_lucas_convolution_high_zero_tail_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_tail_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_zero_tail_normal = bcf_quotient_lucas_convolution_high_zero_tail_normal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_zero_tail_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_zero_tail_normal) + (bcf_previous_scale_lucas_convolution_high_zero_tail_normal_table))) /\ (forall bcf_index_lucas_convolution_high_zero_tail_normal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_zero_tail_normal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_zero_tail_normal_table_row_step_bound + S (bcf_index_lucas_convolution_high_zero_tail_normal_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_zero_tail_normal_table_row_step. ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_table_row_step_entry. bcf_height_lucas_convolution_high_zero_tail_normal_table_row_step_entry + S (bcf_value_lucas_convolution_high_zero_tail_normal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_zero_tail_normal_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_tail_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_table_row_step_entry. bcf_row_code_lucas_convolution_high_zero_tail_normal_table = bcf_quotient_lucas_convolution_high_zero_tail_normal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_zero_tail_normal_table_row_step)) * bcf_row_scale_lucas_convolution_high_zero_tail_normal_table) + (bcf_value_lucas_convolution_high_zero_tail_normal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_zero_tail_normal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_zero_tail_normal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_zero_tail_normal_table_row_step bcf_left_lucas_convolution_high_zero_tail_normal_table_row_step bcf_right_lucas_convolution_high_zero_tail_normal_table_row_step. bcf_index_lucas_convolution_high_zero_tail_normal_table_row_step = S bcf_predecessor_lucas_convolution_high_zero_tail_normal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_table_row_step_previous_left. bcf_height_lucas_convolution_high_zero_tail_normal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_zero_tail_normal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_zero_tail_normal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_tail_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_zero_tail_normal_table = bcf_quotient_lucas_convolution_high_zero_tail_normal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_zero_tail_normal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_zero_tail_normal_table) + (bcf_left_lucas_convolution_high_zero_tail_normal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_table_row_step_previous_right. bcf_height_lucas_convolution_high_zero_tail_normal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_zero_tail_normal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_zero_tail_normal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_tail_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_zero_tail_normal_table = bcf_quotient_lucas_convolution_high_zero_tail_normal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_zero_tail_normal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_zero_tail_normal_table) + (bcf_right_lucas_convolution_high_zero_tail_normal_table_row_step))) /\ bcf_value_lucas_convolution_high_zero_tail_normal_table_row_step = bcf_left_lucas_convolution_high_zero_tail_normal_table_row_step + bcf_right_lucas_convolution_high_zero_tail_normal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_decoded_row_code. bcf_height_lucas_convolution_high_zero_tail_normal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_zero_tail_normal) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_tail_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_zero_tail_normal = bcf_quotient_lucas_convolution_high_zero_tail_normal_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_zero_tail_normal) + (bcf_row_code_lucas_convolution_high_zero_tail_normal))) /\ ((((exists bcf_height_lucas_convolution_high_zero_tail_normal_decoded_row_scale. bcf_height_lucas_convolution_high_zero_tail_normal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_zero_tail_normal) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_tail_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_zero_tail_normal = bcf_quotient_lucas_convolution_high_zero_tail_normal_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_zero_tail_normal) + (bcf_row_scale_lucas_convolution_high_zero_tail_normal))) /\ (((exists bcf_height_lucas_convolution_high_zero_tail_normal_decoded_value. bcf_height_lucas_convolution_high_zero_tail_normal_decoded_value + S (x4) = S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_tail_normal)) /\ exists bcf_quotient_lucas_convolution_high_zero_tail_normal_decoded_value. bcf_row_code_lucas_convolution_high_zero_tail_normal = bcf_quotient_lucas_convolution_high_zero_tail_normal_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_convolution_high_zero_tail_normal) + (x4))))))))
  218. 0218specialize lucas_choose_lower_eq_transport a
  219. 0219specialize lucas_choose_lower_eq_transport p
  220. 0220specialize lucas_choose_lower_eq_transport (S x)
  221. 0221specialize lucas_choose_lower_eq_transport x4
  222. 0222apply lucas_choose_lower_eq_transport
  223. 0223exact hpredecessor_witness
  224. 0224exact hright_tail_witness
  225. 0225have hAvalue : A = x3 + x4
  226. 0226specialize choose_succ_succ a
  227. 0227specialize choose_succ_succ x
  228. 0228specialize choose_succ_succ x3
  229. 0229specialize choose_succ_succ x4
  230. 0230specialize choose_succ_succ A
  231. 0231apply choose_succ_succ
  232. 0232exact hleft_tail_witness
  233. 0233exact hright_tail_normal
  234. 0234exact hAnormal
  235. 0235have hBvalue : B = 1
  236. 0236specialize lucas_choose_zero_index_is_one (S a)
  237. 0237specialize lucas_choose_zero_index_is_one j
  238. 0238specialize lucas_choose_zero_index_is_one B
  239. 0239apply lucas_choose_zero_index_is_one
  240. 0240exact hcase_left
  241. 0241exact hlower_tail
  242. 0242have hunit_value : x5 = 1
  243. 0243specialize choose_zero a
  244. 0244specialize choose_zero x5
  245. 0245apply choose_zero
  246. 0246exact hunit_tail_witness
  247. 0247rewrite hAvalue
  248. 0248rewrite hBvalue
  249. 0249rewrite hunit_value at hsum_mod
  250. 0250have hshuffle : x3 + (x4 + 1) = (x3 + x4) + 1
  251. 0251symm
  252. 0252apply add_assoc
  253. 0253rewrite hshuffle at hsum_mod
  254. 0254exact hsum_mod
  255. 0255have hsuccessor : exists k. j = S k
  256. 0256specialize nonzero_is_succ j
  257. 0257apply nonzero_is_succ
  258. 0258exact hcase_right
  259. 0259cases hsuccessor
  260. 0260have hleft : ∃ C. Choose(p + a,p + x,C)
    Exact native replay linehave hleft : exists C. ((exists bcf_lt_gap_lucas_convolution_high_step_left_out_of_range. bcf_lt_gap_lucas_convolution_high_step_left_out_of_range + S (p + a) = p + x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_left_in_range. bcf_le_gap_lucas_convolution_high_step_left_in_range + (p + x) = p + a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_left bcf_row_code_scale_lucas_convolution_high_step_left bcf_row_scale_code_lucas_convolution_high_step_left bcf_row_scale_scale_lucas_convolution_high_step_left bcf_row_code_lucas_convolution_high_step_left bcf_row_scale_lucas_convolution_high_step_left. ((forall bcf_row_index_lucas_convolution_high_step_left_table. (exists bcf_lt_gap_lucas_convolution_high_step_left_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_left_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_left_table) = S (p + a)) -> exists bcf_row_code_lucas_convolution_high_step_left_table bcf_row_scale_lucas_convolution_high_step_left_table. ((((exists bcf_height_lucas_convolution_high_step_left_table_decoded_row_code. bcf_height_lucas_convolution_high_step_left_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_left_table) = S ((S (bcf_row_index_lucas_convolution_high_step_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_left)) /\ exists bcf_quotient_lucas_convolution_high_step_left_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_left = bcf_quotient_lucas_convolution_high_step_left_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_left) + (bcf_row_code_lucas_convolution_high_step_left_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_left_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_left_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_left_table) = S ((S (bcf_row_index_lucas_convolution_high_step_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_left)) /\ exists bcf_quotient_lucas_convolution_high_step_left_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_left = bcf_quotient_lucas_convolution_high_step_left_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_left) + (bcf_row_scale_lucas_convolution_high_step_left_table))) /\ ((bcf_row_index_lucas_convolution_high_step_left_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_left_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_left_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_left_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_left_table_zero_row) = S (p + a)) -> exists bcf_value_lucas_convolution_high_step_left_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_left_table_zero_row_entry. bcf_height_lucas_convolution_high_step_left_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_left_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_left_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_left_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_left_table = bcf_quotient_lucas_convolution_high_step_left_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_left_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_left_table) + (bcf_value_lucas_convolution_high_step_left_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_left_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_left_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_left_table_zero_row. bcf_index_lucas_convolution_high_step_left_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_left_table_zero_row /\ bcf_value_lucas_convolution_high_step_left_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_left_table bcf_previous_code_lucas_convolution_high_step_left_table bcf_previous_scale_lucas_convolution_high_step_left_table. bcf_row_index_lucas_convolution_high_step_left_table = S bcf_predecessor_lucas_convolution_high_step_left_table /\ ((((exists bcf_height_lucas_convolution_high_step_left_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_left_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_left_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_left)) /\ exists bcf_quotient_lucas_convolution_high_step_left_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_left = bcf_quotient_lucas_convolution_high_step_left_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_left) + (bcf_previous_code_lucas_convolution_high_step_left_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_left_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_left_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_left_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_left)) /\ exists bcf_quotient_lucas_convolution_high_step_left_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_left = bcf_quotient_lucas_convolution_high_step_left_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_left) + (bcf_previous_scale_lucas_convolution_high_step_left_table))) /\ (forall bcf_index_lucas_convolution_high_step_left_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_left_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_left_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_left_table_row_step) = S (p + a)) -> exists bcf_value_lucas_convolution_high_step_left_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_left_table_row_step_entry. bcf_height_lucas_convolution_high_step_left_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_left_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_left_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_left_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_left_table = bcf_quotient_lucas_convolution_high_step_left_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_left_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_left_table) + (bcf_value_lucas_convolution_high_step_left_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_left_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_left_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_left_table_row_step bcf_left_lucas_convolution_high_step_left_table_row_step bcf_right_lucas_convolution_high_step_left_table_row_step. bcf_index_lucas_convolution_high_step_left_table_row_step = S bcf_predecessor_lucas_convolution_high_step_left_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_left_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_left_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_left_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_left_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_left_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_left_table = bcf_quotient_lucas_convolution_high_step_left_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_left_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_left_table) + (bcf_left_lucas_convolution_high_step_left_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_left_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_left_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_left_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_left_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_left_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_left_table = bcf_quotient_lucas_convolution_high_step_left_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_left_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_left_table) + (bcf_right_lucas_convolution_high_step_left_table_row_step))) /\ bcf_value_lucas_convolution_high_step_left_table_row_step = bcf_left_lucas_convolution_high_step_left_table_row_step + bcf_right_lucas_convolution_high_step_left_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_left_decoded_row_code. bcf_height_lucas_convolution_high_step_left_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_left) = S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_step_left)) /\ exists bcf_quotient_lucas_convolution_high_step_left_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_left = bcf_quotient_lucas_convolution_high_step_left_decoded_row_code * S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_step_left) + (bcf_row_code_lucas_convolution_high_step_left))) /\ ((((exists bcf_height_lucas_convolution_high_step_left_decoded_row_scale. bcf_height_lucas_convolution_high_step_left_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_left) = S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_step_left)) /\ exists bcf_quotient_lucas_convolution_high_step_left_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_left = bcf_quotient_lucas_convolution_high_step_left_decoded_row_scale * S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_step_left) + (bcf_row_scale_lucas_convolution_high_step_left))) /\ (((exists bcf_height_lucas_convolution_high_step_left_decoded_value. bcf_height_lucas_convolution_high_step_left_decoded_value + S (C) = S ((S (p + x)) * bcf_row_scale_lucas_convolution_high_step_left)) /\ exists bcf_quotient_lucas_convolution_high_step_left_decoded_value. bcf_row_code_lucas_convolution_high_step_left = bcf_quotient_lucas_convolution_high_step_left_decoded_value * S ((S (p + x)) * bcf_row_scale_lucas_convolution_high_step_left) + (C))))))))
  261. 0261apply choose_exists
  262. 0262cases hleft
  263. 0263have hright : ∃ C. Choose(p + a,p + S x,C)
    Exact native replay linehave hright : exists C. ((exists bcf_lt_gap_lucas_convolution_high_step_right_out_of_range. bcf_lt_gap_lucas_convolution_high_step_right_out_of_range + S (p + a) = p + S x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_right_in_range. bcf_le_gap_lucas_convolution_high_step_right_in_range + (p + S x) = p + a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_right bcf_row_code_scale_lucas_convolution_high_step_right bcf_row_scale_code_lucas_convolution_high_step_right bcf_row_scale_scale_lucas_convolution_high_step_right bcf_row_code_lucas_convolution_high_step_right bcf_row_scale_lucas_convolution_high_step_right. ((forall bcf_row_index_lucas_convolution_high_step_right_table. (exists bcf_lt_gap_lucas_convolution_high_step_right_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_right_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_right_table) = S (p + a)) -> exists bcf_row_code_lucas_convolution_high_step_right_table bcf_row_scale_lucas_convolution_high_step_right_table. ((((exists bcf_height_lucas_convolution_high_step_right_table_decoded_row_code. bcf_height_lucas_convolution_high_step_right_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_right_table) = S ((S (bcf_row_index_lucas_convolution_high_step_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_right)) /\ exists bcf_quotient_lucas_convolution_high_step_right_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_right = bcf_quotient_lucas_convolution_high_step_right_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_right) + (bcf_row_code_lucas_convolution_high_step_right_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_right_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_right_table) = S ((S (bcf_row_index_lucas_convolution_high_step_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_right)) /\ exists bcf_quotient_lucas_convolution_high_step_right_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_right = bcf_quotient_lucas_convolution_high_step_right_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_right) + (bcf_row_scale_lucas_convolution_high_step_right_table))) /\ ((bcf_row_index_lucas_convolution_high_step_right_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_right_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_right_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_right_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_right_table_zero_row) = S (p + a)) -> exists bcf_value_lucas_convolution_high_step_right_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_right_table_zero_row_entry. bcf_height_lucas_convolution_high_step_right_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_right_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_right_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_right_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_right_table = bcf_quotient_lucas_convolution_high_step_right_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_right_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_right_table) + (bcf_value_lucas_convolution_high_step_right_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_right_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_right_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_right_table_zero_row. bcf_index_lucas_convolution_high_step_right_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_right_table_zero_row /\ bcf_value_lucas_convolution_high_step_right_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_right_table bcf_previous_code_lucas_convolution_high_step_right_table bcf_previous_scale_lucas_convolution_high_step_right_table. bcf_row_index_lucas_convolution_high_step_right_table = S bcf_predecessor_lucas_convolution_high_step_right_table /\ ((((exists bcf_height_lucas_convolution_high_step_right_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_right_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_right_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_right)) /\ exists bcf_quotient_lucas_convolution_high_step_right_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_right = bcf_quotient_lucas_convolution_high_step_right_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_right) + (bcf_previous_code_lucas_convolution_high_step_right_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_right_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_right_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_right)) /\ exists bcf_quotient_lucas_convolution_high_step_right_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_right = bcf_quotient_lucas_convolution_high_step_right_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_right) + (bcf_previous_scale_lucas_convolution_high_step_right_table))) /\ (forall bcf_index_lucas_convolution_high_step_right_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_right_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_right_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_right_table_row_step) = S (p + a)) -> exists bcf_value_lucas_convolution_high_step_right_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_right_table_row_step_entry. bcf_height_lucas_convolution_high_step_right_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_right_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_right_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_right_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_right_table = bcf_quotient_lucas_convolution_high_step_right_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_right_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_right_table) + (bcf_value_lucas_convolution_high_step_right_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_right_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_right_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_right_table_row_step bcf_left_lucas_convolution_high_step_right_table_row_step bcf_right_lucas_convolution_high_step_right_table_row_step. bcf_index_lucas_convolution_high_step_right_table_row_step = S bcf_predecessor_lucas_convolution_high_step_right_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_right_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_right_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_right_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_right_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_right_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_right_table = bcf_quotient_lucas_convolution_high_step_right_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_right_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_right_table) + (bcf_left_lucas_convolution_high_step_right_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_right_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_right_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_right_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_right_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_right_table = bcf_quotient_lucas_convolution_high_step_right_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_right_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_right_table) + (bcf_right_lucas_convolution_high_step_right_table_row_step))) /\ bcf_value_lucas_convolution_high_step_right_table_row_step = bcf_left_lucas_convolution_high_step_right_table_row_step + bcf_right_lucas_convolution_high_step_right_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_decoded_row_code. bcf_height_lucas_convolution_high_step_right_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_right) = S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_step_right)) /\ exists bcf_quotient_lucas_convolution_high_step_right_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_right = bcf_quotient_lucas_convolution_high_step_right_decoded_row_code * S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_step_right) + (bcf_row_code_lucas_convolution_high_step_right))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_decoded_row_scale. bcf_height_lucas_convolution_high_step_right_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_right) = S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_step_right)) /\ exists bcf_quotient_lucas_convolution_high_step_right_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_right = bcf_quotient_lucas_convolution_high_step_right_decoded_row_scale * S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_step_right) + (bcf_row_scale_lucas_convolution_high_step_right))) /\ (((exists bcf_height_lucas_convolution_high_step_right_decoded_value. bcf_height_lucas_convolution_high_step_right_decoded_value + S (C) = S ((S (p + S x)) * bcf_row_scale_lucas_convolution_high_step_right)) /\ exists bcf_quotient_lucas_convolution_high_step_right_decoded_value. bcf_row_code_lucas_convolution_high_step_right = bcf_quotient_lucas_convolution_high_step_right_decoded_value * S ((S (p + S x)) * bcf_row_scale_lucas_convolution_high_step_right) + (C))))))))
  264. 0264apply choose_exists
  265. 0265cases hright
  266. 0266have hupper_left : ∃ C. Choose(a,p + x,C)
    Exact native replay linehave hupper_left : exists C. ((exists bcf_lt_gap_lucas_convolution_high_step_upper_left_out_of_range. bcf_lt_gap_lucas_convolution_high_step_upper_left_out_of_range + S (a) = p + x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_upper_left_in_range. bcf_le_gap_lucas_convolution_high_step_upper_left_in_range + (p + x) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_upper_left bcf_row_code_scale_lucas_convolution_high_step_upper_left bcf_row_scale_code_lucas_convolution_high_step_upper_left bcf_row_scale_scale_lucas_convolution_high_step_upper_left bcf_row_code_lucas_convolution_high_step_upper_left bcf_row_scale_lucas_convolution_high_step_upper_left. ((forall bcf_row_index_lucas_convolution_high_step_upper_left_table. (exists bcf_lt_gap_lucas_convolution_high_step_upper_left_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_upper_left_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_upper_left_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_step_upper_left_table bcf_row_scale_lucas_convolution_high_step_upper_left_table. ((((exists bcf_height_lucas_convolution_high_step_upper_left_table_decoded_row_code. bcf_height_lucas_convolution_high_step_upper_left_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_upper_left_table) = S ((S (bcf_row_index_lucas_convolution_high_step_upper_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_left)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_upper_left = bcf_quotient_lucas_convolution_high_step_upper_left_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_upper_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_left) + (bcf_row_code_lucas_convolution_high_step_upper_left_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_left_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_upper_left_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_upper_left_table) = S ((S (bcf_row_index_lucas_convolution_high_step_upper_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_left)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_left = bcf_quotient_lucas_convolution_high_step_upper_left_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_upper_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_left) + (bcf_row_scale_lucas_convolution_high_step_upper_left_table))) /\ ((bcf_row_index_lucas_convolution_high_step_upper_left_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_upper_left_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_upper_left_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_upper_left_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_upper_left_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_step_upper_left_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_upper_left_table_zero_row_entry. bcf_height_lucas_convolution_high_step_upper_left_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_upper_left_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_upper_left_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_upper_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_upper_left_table = bcf_quotient_lucas_convolution_high_step_upper_left_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_upper_left_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_upper_left_table) + (bcf_value_lucas_convolution_high_step_upper_left_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_upper_left_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_upper_left_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_left_table_zero_row. bcf_index_lucas_convolution_high_step_upper_left_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_upper_left_table_zero_row /\ bcf_value_lucas_convolution_high_step_upper_left_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_left_table bcf_previous_code_lucas_convolution_high_step_upper_left_table bcf_previous_scale_lucas_convolution_high_step_upper_left_table. bcf_row_index_lucas_convolution_high_step_upper_left_table = S bcf_predecessor_lucas_convolution_high_step_upper_left_table /\ ((((exists bcf_height_lucas_convolution_high_step_upper_left_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_upper_left_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_upper_left_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_left)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_upper_left = bcf_quotient_lucas_convolution_high_step_upper_left_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_left) + (bcf_previous_code_lucas_convolution_high_step_upper_left_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_left_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_upper_left_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_upper_left_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_left)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_left = bcf_quotient_lucas_convolution_high_step_upper_left_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_left) + (bcf_previous_scale_lucas_convolution_high_step_upper_left_table))) /\ (forall bcf_index_lucas_convolution_high_step_upper_left_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_upper_left_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_upper_left_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_upper_left_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_step_upper_left_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_upper_left_table_row_step_entry. bcf_height_lucas_convolution_high_step_upper_left_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_upper_left_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_upper_left_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_upper_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_upper_left_table = bcf_quotient_lucas_convolution_high_step_upper_left_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_upper_left_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_upper_left_table) + (bcf_value_lucas_convolution_high_step_upper_left_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_upper_left_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_upper_left_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_left_table_row_step bcf_left_lucas_convolution_high_step_upper_left_table_row_step bcf_right_lucas_convolution_high_step_upper_left_table_row_step. bcf_index_lucas_convolution_high_step_upper_left_table_row_step = S bcf_predecessor_lucas_convolution_high_step_upper_left_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_upper_left_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_upper_left_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_upper_left_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_left_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_upper_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_upper_left_table = bcf_quotient_lucas_convolution_high_step_upper_left_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_left_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_upper_left_table) + (bcf_left_lucas_convolution_high_step_upper_left_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_left_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_upper_left_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_upper_left_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_upper_left_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_upper_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_upper_left_table = bcf_quotient_lucas_convolution_high_step_upper_left_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_upper_left_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_upper_left_table) + (bcf_right_lucas_convolution_high_step_upper_left_table_row_step))) /\ bcf_value_lucas_convolution_high_step_upper_left_table_row_step = bcf_left_lucas_convolution_high_step_upper_left_table_row_step + bcf_right_lucas_convolution_high_step_upper_left_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_left_decoded_row_code. bcf_height_lucas_convolution_high_step_upper_left_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_upper_left) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_upper_left)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_upper_left = bcf_quotient_lucas_convolution_high_step_upper_left_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_upper_left) + (bcf_row_code_lucas_convolution_high_step_upper_left))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_left_decoded_row_scale. bcf_height_lucas_convolution_high_step_upper_left_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_upper_left) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_left)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_left = bcf_quotient_lucas_convolution_high_step_upper_left_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_left) + (bcf_row_scale_lucas_convolution_high_step_upper_left))) /\ (((exists bcf_height_lucas_convolution_high_step_upper_left_decoded_value. bcf_height_lucas_convolution_high_step_upper_left_decoded_value + S (C) = S ((S (p + x)) * bcf_row_scale_lucas_convolution_high_step_upper_left)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_left_decoded_value. bcf_row_code_lucas_convolution_high_step_upper_left = bcf_quotient_lucas_convolution_high_step_upper_left_decoded_value * S ((S (p + x)) * bcf_row_scale_lucas_convolution_high_step_upper_left) + (C))))))))
  267. 0267apply choose_exists
  268. 0268cases hupper_left
  269. 0269have hupper_right : ∃ C. Choose(a,p + S x,C)
    Exact native replay linehave hupper_right : exists C. ((exists bcf_lt_gap_lucas_convolution_high_step_upper_right_out_of_range. bcf_lt_gap_lucas_convolution_high_step_upper_right_out_of_range + S (a) = p + S x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_upper_right_in_range. bcf_le_gap_lucas_convolution_high_step_upper_right_in_range + (p + S x) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_upper_right bcf_row_code_scale_lucas_convolution_high_step_upper_right bcf_row_scale_code_lucas_convolution_high_step_upper_right bcf_row_scale_scale_lucas_convolution_high_step_upper_right bcf_row_code_lucas_convolution_high_step_upper_right bcf_row_scale_lucas_convolution_high_step_upper_right. ((forall bcf_row_index_lucas_convolution_high_step_upper_right_table. (exists bcf_lt_gap_lucas_convolution_high_step_upper_right_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_upper_right_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_upper_right_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_step_upper_right_table bcf_row_scale_lucas_convolution_high_step_upper_right_table. ((((exists bcf_height_lucas_convolution_high_step_upper_right_table_decoded_row_code. bcf_height_lucas_convolution_high_step_upper_right_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_upper_right_table) = S ((S (bcf_row_index_lucas_convolution_high_step_upper_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_upper_right = bcf_quotient_lucas_convolution_high_step_upper_right_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_upper_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right) + (bcf_row_code_lucas_convolution_high_step_upper_right_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_upper_right_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_upper_right_table) = S ((S (bcf_row_index_lucas_convolution_high_step_upper_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_right = bcf_quotient_lucas_convolution_high_step_upper_right_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_upper_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right) + (bcf_row_scale_lucas_convolution_high_step_upper_right_table))) /\ ((bcf_row_index_lucas_convolution_high_step_upper_right_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_upper_right_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_upper_right_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_upper_right_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_upper_right_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_step_upper_right_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_upper_right_table_zero_row_entry. bcf_height_lucas_convolution_high_step_upper_right_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_upper_right_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_upper_right_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_upper_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_upper_right_table = bcf_quotient_lucas_convolution_high_step_upper_right_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_upper_right_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_upper_right_table) + (bcf_value_lucas_convolution_high_step_upper_right_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_upper_right_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_upper_right_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_right_table_zero_row. bcf_index_lucas_convolution_high_step_upper_right_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_upper_right_table_zero_row /\ bcf_value_lucas_convolution_high_step_upper_right_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_right_table bcf_previous_code_lucas_convolution_high_step_upper_right_table bcf_previous_scale_lucas_convolution_high_step_upper_right_table. bcf_row_index_lucas_convolution_high_step_upper_right_table = S bcf_predecessor_lucas_convolution_high_step_upper_right_table /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_upper_right_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_upper_right_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_upper_right = bcf_quotient_lucas_convolution_high_step_upper_right_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right) + (bcf_previous_code_lucas_convolution_high_step_upper_right_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_upper_right_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_upper_right_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_right = bcf_quotient_lucas_convolution_high_step_upper_right_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right) + (bcf_previous_scale_lucas_convolution_high_step_upper_right_table))) /\ (forall bcf_index_lucas_convolution_high_step_upper_right_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_upper_right_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_upper_right_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_upper_right_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_step_upper_right_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_upper_right_table_row_step_entry. bcf_height_lucas_convolution_high_step_upper_right_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_upper_right_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_upper_right_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_upper_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_upper_right_table = bcf_quotient_lucas_convolution_high_step_upper_right_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_upper_right_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_upper_right_table) + (bcf_value_lucas_convolution_high_step_upper_right_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_upper_right_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_upper_right_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_right_table_row_step bcf_left_lucas_convolution_high_step_upper_right_table_row_step bcf_right_lucas_convolution_high_step_upper_right_table_row_step. bcf_index_lucas_convolution_high_step_upper_right_table_row_step = S bcf_predecessor_lucas_convolution_high_step_upper_right_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_upper_right_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_upper_right_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_upper_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_upper_right_table = bcf_quotient_lucas_convolution_high_step_upper_right_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_upper_right_table) + (bcf_left_lucas_convolution_high_step_upper_right_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_upper_right_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_upper_right_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_upper_right_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_upper_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_upper_right_table = bcf_quotient_lucas_convolution_high_step_upper_right_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_upper_right_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_upper_right_table) + (bcf_right_lucas_convolution_high_step_upper_right_table_row_step))) /\ bcf_value_lucas_convolution_high_step_upper_right_table_row_step = bcf_left_lucas_convolution_high_step_upper_right_table_row_step + bcf_right_lucas_convolution_high_step_upper_right_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_decoded_row_code. bcf_height_lucas_convolution_high_step_upper_right_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_upper_right) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_upper_right = bcf_quotient_lucas_convolution_high_step_upper_right_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right) + (bcf_row_code_lucas_convolution_high_step_upper_right))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_decoded_row_scale. bcf_height_lucas_convolution_high_step_upper_right_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_upper_right) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_right = bcf_quotient_lucas_convolution_high_step_upper_right_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right) + (bcf_row_scale_lucas_convolution_high_step_upper_right))) /\ (((exists bcf_height_lucas_convolution_high_step_upper_right_decoded_value. bcf_height_lucas_convolution_high_step_upper_right_decoded_value + S (C) = S ((S (p + S x)) * bcf_row_scale_lucas_convolution_high_step_upper_right)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_decoded_value. bcf_row_code_lucas_convolution_high_step_upper_right = bcf_quotient_lucas_convolution_high_step_upper_right_decoded_value * S ((S (p + S x)) * bcf_row_scale_lucas_convolution_high_step_upper_right) + (C))))))))
  270. 0270apply choose_exists
  271. 0271cases hupper_right
  272. 0272have hlower_left : ∃ C. Choose(a,x,C)
    Exact native replay linehave hlower_left : exists C. ((exists bcf_lt_gap_lucas_convolution_high_step_lower_left_out_of_range. bcf_lt_gap_lucas_convolution_high_step_lower_left_out_of_range + S (a) = x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_lower_left_in_range. bcf_le_gap_lucas_convolution_high_step_lower_left_in_range + (x) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_lower_left bcf_row_code_scale_lucas_convolution_high_step_lower_left bcf_row_scale_code_lucas_convolution_high_step_lower_left bcf_row_scale_scale_lucas_convolution_high_step_lower_left bcf_row_code_lucas_convolution_high_step_lower_left bcf_row_scale_lucas_convolution_high_step_lower_left. ((forall bcf_row_index_lucas_convolution_high_step_lower_left_table. (exists bcf_lt_gap_lucas_convolution_high_step_lower_left_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_lower_left_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_lower_left_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_step_lower_left_table bcf_row_scale_lucas_convolution_high_step_lower_left_table. ((((exists bcf_height_lucas_convolution_high_step_lower_left_table_decoded_row_code. bcf_height_lucas_convolution_high_step_lower_left_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_lower_left_table) = S ((S (bcf_row_index_lucas_convolution_high_step_lower_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_lower_left)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_lower_left = bcf_quotient_lucas_convolution_high_step_lower_left_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_lower_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_lower_left) + (bcf_row_code_lucas_convolution_high_step_lower_left_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_left_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_lower_left_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_lower_left_table) = S ((S (bcf_row_index_lucas_convolution_high_step_lower_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_left)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_lower_left = bcf_quotient_lucas_convolution_high_step_lower_left_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_lower_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_left) + (bcf_row_scale_lucas_convolution_high_step_lower_left_table))) /\ ((bcf_row_index_lucas_convolution_high_step_lower_left_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_lower_left_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_lower_left_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_lower_left_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_lower_left_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_step_lower_left_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_lower_left_table_zero_row_entry. bcf_height_lucas_convolution_high_step_lower_left_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_lower_left_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_lower_left_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_lower_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_lower_left_table = bcf_quotient_lucas_convolution_high_step_lower_left_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_lower_left_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_lower_left_table) + (bcf_value_lucas_convolution_high_step_lower_left_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_lower_left_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_lower_left_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_lower_left_table_zero_row. bcf_index_lucas_convolution_high_step_lower_left_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_lower_left_table_zero_row /\ bcf_value_lucas_convolution_high_step_lower_left_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_lower_left_table bcf_previous_code_lucas_convolution_high_step_lower_left_table bcf_previous_scale_lucas_convolution_high_step_lower_left_table. bcf_row_index_lucas_convolution_high_step_lower_left_table = S bcf_predecessor_lucas_convolution_high_step_lower_left_table /\ ((((exists bcf_height_lucas_convolution_high_step_lower_left_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_lower_left_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_lower_left_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_lower_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_lower_left)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_lower_left = bcf_quotient_lucas_convolution_high_step_lower_left_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_lower_left_table)) * bcf_row_code_scale_lucas_convolution_high_step_lower_left) + (bcf_previous_code_lucas_convolution_high_step_lower_left_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_left_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_lower_left_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_lower_left_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_lower_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_left)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_lower_left = bcf_quotient_lucas_convolution_high_step_lower_left_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_lower_left_table)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_left) + (bcf_previous_scale_lucas_convolution_high_step_lower_left_table))) /\ (forall bcf_index_lucas_convolution_high_step_lower_left_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_lower_left_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_lower_left_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_lower_left_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_step_lower_left_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_lower_left_table_row_step_entry. bcf_height_lucas_convolution_high_step_lower_left_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_lower_left_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_lower_left_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_lower_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_lower_left_table = bcf_quotient_lucas_convolution_high_step_lower_left_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_lower_left_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_lower_left_table) + (bcf_value_lucas_convolution_high_step_lower_left_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_lower_left_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_lower_left_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_lower_left_table_row_step bcf_left_lucas_convolution_high_step_lower_left_table_row_step bcf_right_lucas_convolution_high_step_lower_left_table_row_step. bcf_index_lucas_convolution_high_step_lower_left_table_row_step = S bcf_predecessor_lucas_convolution_high_step_lower_left_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_lower_left_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_lower_left_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_lower_left_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_lower_left_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_lower_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_lower_left_table = bcf_quotient_lucas_convolution_high_step_lower_left_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_lower_left_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_lower_left_table) + (bcf_left_lucas_convolution_high_step_lower_left_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_left_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_lower_left_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_lower_left_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_lower_left_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_lower_left_table)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_lower_left_table = bcf_quotient_lucas_convolution_high_step_lower_left_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_lower_left_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_lower_left_table) + (bcf_right_lucas_convolution_high_step_lower_left_table_row_step))) /\ bcf_value_lucas_convolution_high_step_lower_left_table_row_step = bcf_left_lucas_convolution_high_step_lower_left_table_row_step + bcf_right_lucas_convolution_high_step_lower_left_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_left_decoded_row_code. bcf_height_lucas_convolution_high_step_lower_left_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_lower_left) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_lower_left)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_lower_left = bcf_quotient_lucas_convolution_high_step_lower_left_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_lower_left) + (bcf_row_code_lucas_convolution_high_step_lower_left))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_left_decoded_row_scale. bcf_height_lucas_convolution_high_step_lower_left_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_lower_left) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_left)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_lower_left = bcf_quotient_lucas_convolution_high_step_lower_left_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_left) + (bcf_row_scale_lucas_convolution_high_step_lower_left))) /\ (((exists bcf_height_lucas_convolution_high_step_lower_left_decoded_value. bcf_height_lucas_convolution_high_step_lower_left_decoded_value + S (C) = S ((S (x)) * bcf_row_scale_lucas_convolution_high_step_lower_left)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_left_decoded_value. bcf_row_code_lucas_convolution_high_step_lower_left = bcf_quotient_lucas_convolution_high_step_lower_left_decoded_value * S ((S (x)) * bcf_row_scale_lucas_convolution_high_step_lower_left) + (C))))))))
  273. 0273apply choose_exists
  274. 0274cases hlower_left
  275. 0275have hlower_right : ∃ C. Choose(a,S x,C)
    Exact native replay linehave hlower_right : exists C. ((exists bcf_lt_gap_lucas_convolution_high_step_lower_right_out_of_range. bcf_lt_gap_lucas_convolution_high_step_lower_right_out_of_range + S (a) = S x) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_lower_right_in_range. bcf_le_gap_lucas_convolution_high_step_lower_right_in_range + (S x) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_lower_right bcf_row_code_scale_lucas_convolution_high_step_lower_right bcf_row_scale_code_lucas_convolution_high_step_lower_right bcf_row_scale_scale_lucas_convolution_high_step_lower_right bcf_row_code_lucas_convolution_high_step_lower_right bcf_row_scale_lucas_convolution_high_step_lower_right. ((forall bcf_row_index_lucas_convolution_high_step_lower_right_table. (exists bcf_lt_gap_lucas_convolution_high_step_lower_right_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_lower_right_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_lower_right_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_step_lower_right_table bcf_row_scale_lucas_convolution_high_step_lower_right_table. ((((exists bcf_height_lucas_convolution_high_step_lower_right_table_decoded_row_code. bcf_height_lucas_convolution_high_step_lower_right_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_lower_right_table) = S ((S (bcf_row_index_lucas_convolution_high_step_lower_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_lower_right)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_lower_right = bcf_quotient_lucas_convolution_high_step_lower_right_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_lower_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_lower_right) + (bcf_row_code_lucas_convolution_high_step_lower_right_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_right_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_lower_right_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_lower_right_table) = S ((S (bcf_row_index_lucas_convolution_high_step_lower_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_right)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_lower_right = bcf_quotient_lucas_convolution_high_step_lower_right_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_lower_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_right) + (bcf_row_scale_lucas_convolution_high_step_lower_right_table))) /\ ((bcf_row_index_lucas_convolution_high_step_lower_right_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_lower_right_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_lower_right_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_lower_right_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_lower_right_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_step_lower_right_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_lower_right_table_zero_row_entry. bcf_height_lucas_convolution_high_step_lower_right_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_lower_right_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_lower_right_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_lower_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_lower_right_table = bcf_quotient_lucas_convolution_high_step_lower_right_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_lower_right_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_lower_right_table) + (bcf_value_lucas_convolution_high_step_lower_right_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_lower_right_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_lower_right_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_lower_right_table_zero_row. bcf_index_lucas_convolution_high_step_lower_right_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_lower_right_table_zero_row /\ bcf_value_lucas_convolution_high_step_lower_right_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_lower_right_table bcf_previous_code_lucas_convolution_high_step_lower_right_table bcf_previous_scale_lucas_convolution_high_step_lower_right_table. bcf_row_index_lucas_convolution_high_step_lower_right_table = S bcf_predecessor_lucas_convolution_high_step_lower_right_table /\ ((((exists bcf_height_lucas_convolution_high_step_lower_right_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_lower_right_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_lower_right_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_lower_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_lower_right)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_lower_right = bcf_quotient_lucas_convolution_high_step_lower_right_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_lower_right_table)) * bcf_row_code_scale_lucas_convolution_high_step_lower_right) + (bcf_previous_code_lucas_convolution_high_step_lower_right_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_right_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_lower_right_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_lower_right_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_lower_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_right)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_lower_right = bcf_quotient_lucas_convolution_high_step_lower_right_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_lower_right_table)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_right) + (bcf_previous_scale_lucas_convolution_high_step_lower_right_table))) /\ (forall bcf_index_lucas_convolution_high_step_lower_right_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_lower_right_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_lower_right_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_lower_right_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_step_lower_right_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_lower_right_table_row_step_entry. bcf_height_lucas_convolution_high_step_lower_right_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_lower_right_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_lower_right_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_lower_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_lower_right_table = bcf_quotient_lucas_convolution_high_step_lower_right_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_lower_right_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_lower_right_table) + (bcf_value_lucas_convolution_high_step_lower_right_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_lower_right_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_lower_right_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_lower_right_table_row_step bcf_left_lucas_convolution_high_step_lower_right_table_row_step bcf_right_lucas_convolution_high_step_lower_right_table_row_step. bcf_index_lucas_convolution_high_step_lower_right_table_row_step = S bcf_predecessor_lucas_convolution_high_step_lower_right_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_lower_right_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_lower_right_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_lower_right_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_lower_right_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_lower_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_lower_right_table = bcf_quotient_lucas_convolution_high_step_lower_right_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_lower_right_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_lower_right_table) + (bcf_left_lucas_convolution_high_step_lower_right_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_right_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_lower_right_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_lower_right_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_lower_right_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_lower_right_table)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_lower_right_table = bcf_quotient_lucas_convolution_high_step_lower_right_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_lower_right_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_lower_right_table) + (bcf_right_lucas_convolution_high_step_lower_right_table_row_step))) /\ bcf_value_lucas_convolution_high_step_lower_right_table_row_step = bcf_left_lucas_convolution_high_step_lower_right_table_row_step + bcf_right_lucas_convolution_high_step_lower_right_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_right_decoded_row_code. bcf_height_lucas_convolution_high_step_lower_right_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_lower_right) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_lower_right)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_lower_right = bcf_quotient_lucas_convolution_high_step_lower_right_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_lower_right) + (bcf_row_code_lucas_convolution_high_step_lower_right))) /\ ((((exists bcf_height_lucas_convolution_high_step_lower_right_decoded_row_scale. bcf_height_lucas_convolution_high_step_lower_right_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_lower_right) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_right)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_lower_right = bcf_quotient_lucas_convolution_high_step_lower_right_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_lower_right) + (bcf_row_scale_lucas_convolution_high_step_lower_right))) /\ (((exists bcf_height_lucas_convolution_high_step_lower_right_decoded_value. bcf_height_lucas_convolution_high_step_lower_right_decoded_value + S (C) = S ((S (S x)) * bcf_row_scale_lucas_convolution_high_step_lower_right)) /\ exists bcf_quotient_lucas_convolution_high_step_lower_right_decoded_value. bcf_row_code_lucas_convolution_high_step_lower_right = bcf_quotient_lucas_convolution_high_step_lower_right_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_convolution_high_step_lower_right) + (C))))))))
  276. 0276apply choose_exists
  277. 0277cases hlower_right
  278. 0278have hleft_mod : ModEq(p,x1,x3 + x5)
    Exact native replay linehave hleft_mod : exists lcv_left_high_step_left_mod lcv_right_high_step_left_mod. (x1) + (p) * lcv_left_high_step_left_mod = (x3 + x5) + (p) * lcv_right_high_step_left_mod
  279. 0279specialize IH x
  280. 0280specialize IH x1
  281. 0281specialize IH x3
  282. 0282specialize IH x5
  283. 0283apply IH
  284. 0284exact hprime
  285. 0285exact hleft_witness
  286. 0286exact hupper_left_witness
  287. 0287exact hlower_left_witness
  288. 0288have hright_mod : ModEq(p,x2,x4 + x6)
    Exact native replay linehave hright_mod : exists lcv_left_high_step_right_mod lcv_right_high_step_right_mod. (x2) + (p) * lcv_left_high_step_right_mod = (x4 + x6) + (p) * lcv_right_high_step_right_mod
  289. 0289specialize IH (S x)
  290. 0290specialize IH x2
  291. 0291specialize IH x4
  292. 0292specialize IH x6
  293. 0293apply IH
  294. 0294exact hprime
  295. 0295exact hright_witness
  296. 0296exact hupper_right_witness
  297. 0297exact hlower_right_witness
  298. 0298have hindex : p + j = S (p + x)
  299. 0299rewrite hsuccessor_witness
  300. 0300apply PA4
  301. 0301have hCindex : Choose(p + S a,S (p + x),C)
    Exact native replay linehave hCindex : ((exists bcf_lt_gap_lucas_convolution_high_step_Cindex_out_of_range. bcf_lt_gap_lucas_convolution_high_step_Cindex_out_of_range + S (p + S a) = S (p + x)) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_Cindex_in_range. bcf_le_gap_lucas_convolution_high_step_Cindex_in_range + (S (p + x)) = p + S a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_Cindex bcf_row_code_scale_lucas_convolution_high_step_Cindex bcf_row_scale_code_lucas_convolution_high_step_Cindex bcf_row_scale_scale_lucas_convolution_high_step_Cindex bcf_row_code_lucas_convolution_high_step_Cindex bcf_row_scale_lucas_convolution_high_step_Cindex. ((forall bcf_row_index_lucas_convolution_high_step_Cindex_table. (exists bcf_lt_gap_lucas_convolution_high_step_Cindex_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_Cindex_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_Cindex_table) = S (p + S a)) -> exists bcf_row_code_lucas_convolution_high_step_Cindex_table bcf_row_scale_lucas_convolution_high_step_Cindex_table. ((((exists bcf_height_lucas_convolution_high_step_Cindex_table_decoded_row_code. bcf_height_lucas_convolution_high_step_Cindex_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_Cindex_table) = S ((S (bcf_row_index_lucas_convolution_high_step_Cindex_table)) * bcf_row_code_scale_lucas_convolution_high_step_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_Cindex = bcf_quotient_lucas_convolution_high_step_Cindex_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_Cindex_table)) * bcf_row_code_scale_lucas_convolution_high_step_Cindex) + (bcf_row_code_lucas_convolution_high_step_Cindex_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cindex_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_Cindex_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_Cindex_table) = S ((S (bcf_row_index_lucas_convolution_high_step_Cindex_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_Cindex = bcf_quotient_lucas_convolution_high_step_Cindex_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_Cindex_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Cindex) + (bcf_row_scale_lucas_convolution_high_step_Cindex_table))) /\ ((bcf_row_index_lucas_convolution_high_step_Cindex_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_Cindex_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_Cindex_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_Cindex_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_Cindex_table_zero_row) = S (p + S a)) -> exists bcf_value_lucas_convolution_high_step_Cindex_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_Cindex_table_zero_row_entry. bcf_height_lucas_convolution_high_step_Cindex_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_Cindex_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_Cindex_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_Cindex_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_Cindex_table = bcf_quotient_lucas_convolution_high_step_Cindex_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_Cindex_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_Cindex_table) + (bcf_value_lucas_convolution_high_step_Cindex_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_Cindex_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_Cindex_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_Cindex_table_zero_row. bcf_index_lucas_convolution_high_step_Cindex_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_Cindex_table_zero_row /\ bcf_value_lucas_convolution_high_step_Cindex_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_Cindex_table bcf_previous_code_lucas_convolution_high_step_Cindex_table bcf_previous_scale_lucas_convolution_high_step_Cindex_table. bcf_row_index_lucas_convolution_high_step_Cindex_table = S bcf_predecessor_lucas_convolution_high_step_Cindex_table /\ ((((exists bcf_height_lucas_convolution_high_step_Cindex_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_Cindex_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_Cindex_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_Cindex_table)) * bcf_row_code_scale_lucas_convolution_high_step_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_Cindex = bcf_quotient_lucas_convolution_high_step_Cindex_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_Cindex_table)) * bcf_row_code_scale_lucas_convolution_high_step_Cindex) + (bcf_previous_code_lucas_convolution_high_step_Cindex_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cindex_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_Cindex_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_Cindex_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_Cindex_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_Cindex = bcf_quotient_lucas_convolution_high_step_Cindex_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_Cindex_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Cindex) + (bcf_previous_scale_lucas_convolution_high_step_Cindex_table))) /\ (forall bcf_index_lucas_convolution_high_step_Cindex_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_Cindex_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_Cindex_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_Cindex_table_row_step) = S (p + S a)) -> exists bcf_value_lucas_convolution_high_step_Cindex_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_Cindex_table_row_step_entry. bcf_height_lucas_convolution_high_step_Cindex_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_Cindex_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_Cindex_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_Cindex_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_Cindex_table = bcf_quotient_lucas_convolution_high_step_Cindex_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_Cindex_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_Cindex_table) + (bcf_value_lucas_convolution_high_step_Cindex_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_Cindex_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_Cindex_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_Cindex_table_row_step bcf_left_lucas_convolution_high_step_Cindex_table_row_step bcf_right_lucas_convolution_high_step_Cindex_table_row_step. bcf_index_lucas_convolution_high_step_Cindex_table_row_step = S bcf_predecessor_lucas_convolution_high_step_Cindex_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_Cindex_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_Cindex_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_Cindex_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_Cindex_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_Cindex_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_Cindex_table = bcf_quotient_lucas_convolution_high_step_Cindex_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_Cindex_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_Cindex_table) + (bcf_left_lucas_convolution_high_step_Cindex_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cindex_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_Cindex_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_Cindex_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_Cindex_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_Cindex_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_Cindex_table = bcf_quotient_lucas_convolution_high_step_Cindex_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_Cindex_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_Cindex_table) + (bcf_right_lucas_convolution_high_step_Cindex_table_row_step))) /\ bcf_value_lucas_convolution_high_step_Cindex_table_row_step = bcf_left_lucas_convolution_high_step_Cindex_table_row_step + bcf_right_lucas_convolution_high_step_Cindex_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cindex_decoded_row_code. bcf_height_lucas_convolution_high_step_Cindex_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_Cindex) = S ((S (p + S a)) * bcf_row_code_scale_lucas_convolution_high_step_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_Cindex = bcf_quotient_lucas_convolution_high_step_Cindex_decoded_row_code * S ((S (p + S a)) * bcf_row_code_scale_lucas_convolution_high_step_Cindex) + (bcf_row_code_lucas_convolution_high_step_Cindex))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cindex_decoded_row_scale. bcf_height_lucas_convolution_high_step_Cindex_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_Cindex) = S ((S (p + S a)) * bcf_row_scale_scale_lucas_convolution_high_step_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_Cindex = bcf_quotient_lucas_convolution_high_step_Cindex_decoded_row_scale * S ((S (p + S a)) * bcf_row_scale_scale_lucas_convolution_high_step_Cindex) + (bcf_row_scale_lucas_convolution_high_step_Cindex))) /\ (((exists bcf_height_lucas_convolution_high_step_Cindex_decoded_value. bcf_height_lucas_convolution_high_step_Cindex_decoded_value + S (C) = S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_Cindex)) /\ exists bcf_quotient_lucas_convolution_high_step_Cindex_decoded_value. bcf_row_code_lucas_convolution_high_step_Cindex = bcf_quotient_lucas_convolution_high_step_Cindex_decoded_value * S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_Cindex) + (C))))))))
  302. 0302specialize lucas_choose_lower_eq_transport (p + S a)
  303. 0303specialize lucas_choose_lower_eq_transport (p + j)
  304. 0304specialize lucas_choose_lower_eq_transport (S (p + x))
  305. 0305specialize lucas_choose_lower_eq_transport C
  306. 0306apply lucas_choose_lower_eq_transport
  307. 0307exact hindex
  308. 0308exact hchoose
  309. 0309have hCnormal : Choose(S (p + a),S (p + x),C)
    Exact native replay linehave hCnormal : ((exists bcf_lt_gap_lucas_convolution_high_step_Cnormal_out_of_range. bcf_lt_gap_lucas_convolution_high_step_Cnormal_out_of_range + S (S (p + a)) = S (p + x)) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_Cnormal_in_range. bcf_le_gap_lucas_convolution_high_step_Cnormal_in_range + (S (p + x)) = S (p + a)) /\ (exists bcf_row_code_code_lucas_convolution_high_step_Cnormal bcf_row_code_scale_lucas_convolution_high_step_Cnormal bcf_row_scale_code_lucas_convolution_high_step_Cnormal bcf_row_scale_scale_lucas_convolution_high_step_Cnormal bcf_row_code_lucas_convolution_high_step_Cnormal bcf_row_scale_lucas_convolution_high_step_Cnormal. ((forall bcf_row_index_lucas_convolution_high_step_Cnormal_table. (exists bcf_lt_gap_lucas_convolution_high_step_Cnormal_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_Cnormal_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_Cnormal_table) = S (S (p + a))) -> exists bcf_row_code_lucas_convolution_high_step_Cnormal_table bcf_row_scale_lucas_convolution_high_step_Cnormal_table. ((((exists bcf_height_lucas_convolution_high_step_Cnormal_table_decoded_row_code. bcf_height_lucas_convolution_high_step_Cnormal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_Cnormal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_Cnormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_Cnormal = bcf_quotient_lucas_convolution_high_step_Cnormal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_Cnormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Cnormal) + (bcf_row_code_lucas_convolution_high_step_Cnormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cnormal_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_Cnormal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_Cnormal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_Cnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_Cnormal = bcf_quotient_lucas_convolution_high_step_Cnormal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_Cnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Cnormal) + (bcf_row_scale_lucas_convolution_high_step_Cnormal_table))) /\ ((bcf_row_index_lucas_convolution_high_step_Cnormal_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_Cnormal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_Cnormal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_Cnormal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_Cnormal_table_zero_row) = S (S (p + a))) -> exists bcf_value_lucas_convolution_high_step_Cnormal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_Cnormal_table_zero_row_entry. bcf_height_lucas_convolution_high_step_Cnormal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_Cnormal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_Cnormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_Cnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_Cnormal_table = bcf_quotient_lucas_convolution_high_step_Cnormal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_Cnormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_Cnormal_table) + (bcf_value_lucas_convolution_high_step_Cnormal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_Cnormal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_Cnormal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_Cnormal_table_zero_row. bcf_index_lucas_convolution_high_step_Cnormal_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_Cnormal_table_zero_row /\ bcf_value_lucas_convolution_high_step_Cnormal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_Cnormal_table bcf_previous_code_lucas_convolution_high_step_Cnormal_table bcf_previous_scale_lucas_convolution_high_step_Cnormal_table. bcf_row_index_lucas_convolution_high_step_Cnormal_table = S bcf_predecessor_lucas_convolution_high_step_Cnormal_table /\ ((((exists bcf_height_lucas_convolution_high_step_Cnormal_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_Cnormal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_Cnormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_Cnormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_Cnormal = bcf_quotient_lucas_convolution_high_step_Cnormal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_Cnormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Cnormal) + (bcf_previous_code_lucas_convolution_high_step_Cnormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cnormal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_Cnormal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_Cnormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_Cnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_Cnormal = bcf_quotient_lucas_convolution_high_step_Cnormal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_Cnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Cnormal) + (bcf_previous_scale_lucas_convolution_high_step_Cnormal_table))) /\ (forall bcf_index_lucas_convolution_high_step_Cnormal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_Cnormal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_Cnormal_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_Cnormal_table_row_step) = S (S (p + a))) -> exists bcf_value_lucas_convolution_high_step_Cnormal_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_Cnormal_table_row_step_entry. bcf_height_lucas_convolution_high_step_Cnormal_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_Cnormal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_Cnormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_Cnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_Cnormal_table = bcf_quotient_lucas_convolution_high_step_Cnormal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_Cnormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_Cnormal_table) + (bcf_value_lucas_convolution_high_step_Cnormal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_Cnormal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_Cnormal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_Cnormal_table_row_step bcf_left_lucas_convolution_high_step_Cnormal_table_row_step bcf_right_lucas_convolution_high_step_Cnormal_table_row_step. bcf_index_lucas_convolution_high_step_Cnormal_table_row_step = S bcf_predecessor_lucas_convolution_high_step_Cnormal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_Cnormal_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_Cnormal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_Cnormal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_Cnormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_Cnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_Cnormal_table = bcf_quotient_lucas_convolution_high_step_Cnormal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_Cnormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_Cnormal_table) + (bcf_left_lucas_convolution_high_step_Cnormal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cnormal_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_Cnormal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_Cnormal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_Cnormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_Cnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_Cnormal_table = bcf_quotient_lucas_convolution_high_step_Cnormal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_Cnormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_Cnormal_table) + (bcf_right_lucas_convolution_high_step_Cnormal_table_row_step))) /\ bcf_value_lucas_convolution_high_step_Cnormal_table_row_step = bcf_left_lucas_convolution_high_step_Cnormal_table_row_step + bcf_right_lucas_convolution_high_step_Cnormal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cnormal_decoded_row_code. bcf_height_lucas_convolution_high_step_Cnormal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_Cnormal) = S ((S (S (p + a))) * bcf_row_code_scale_lucas_convolution_high_step_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_Cnormal = bcf_quotient_lucas_convolution_high_step_Cnormal_decoded_row_code * S ((S (S (p + a))) * bcf_row_code_scale_lucas_convolution_high_step_Cnormal) + (bcf_row_code_lucas_convolution_high_step_Cnormal))) /\ ((((exists bcf_height_lucas_convolution_high_step_Cnormal_decoded_row_scale. bcf_height_lucas_convolution_high_step_Cnormal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_Cnormal) = S ((S (S (p + a))) * bcf_row_scale_scale_lucas_convolution_high_step_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_Cnormal = bcf_quotient_lucas_convolution_high_step_Cnormal_decoded_row_scale * S ((S (S (p + a))) * bcf_row_scale_scale_lucas_convolution_high_step_Cnormal) + (bcf_row_scale_lucas_convolution_high_step_Cnormal))) /\ (((exists bcf_height_lucas_convolution_high_step_Cnormal_decoded_value. bcf_height_lucas_convolution_high_step_Cnormal_decoded_value + S (C) = S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_Cnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Cnormal_decoded_value. bcf_row_code_lucas_convolution_high_step_Cnormal = bcf_quotient_lucas_convolution_high_step_Cnormal_decoded_value * S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_Cnormal) + (C))))))))
  310. 0310specialize choose_upper_eq_transport (p + S a)
  311. 0311specialize choose_upper_eq_transport (S (p + a))
  312. 0312specialize choose_upper_eq_transport (S (p + x))
  313. 0313specialize choose_upper_eq_transport C
  314. 0314apply choose_upper_eq_transport
  315. 0315apply PA4
  316. 0316exact hCindex
  317. 0317have hright_normal : Choose(p + a,S (p + x),x2)
    Exact native replay linehave hright_normal : ((exists bcf_lt_gap_lucas_convolution_high_step_right_normal_out_of_range. bcf_lt_gap_lucas_convolution_high_step_right_normal_out_of_range + S (p + a) = S (p + x)) /\ x2 = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_right_normal_in_range. bcf_le_gap_lucas_convolution_high_step_right_normal_in_range + (S (p + x)) = p + a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_right_normal bcf_row_code_scale_lucas_convolution_high_step_right_normal bcf_row_scale_code_lucas_convolution_high_step_right_normal bcf_row_scale_scale_lucas_convolution_high_step_right_normal bcf_row_code_lucas_convolution_high_step_right_normal bcf_row_scale_lucas_convolution_high_step_right_normal. ((forall bcf_row_index_lucas_convolution_high_step_right_normal_table. (exists bcf_lt_gap_lucas_convolution_high_step_right_normal_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_right_normal_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_right_normal_table) = S (p + a)) -> exists bcf_row_code_lucas_convolution_high_step_right_normal_table bcf_row_scale_lucas_convolution_high_step_right_normal_table. ((((exists bcf_height_lucas_convolution_high_step_right_normal_table_decoded_row_code. bcf_height_lucas_convolution_high_step_right_normal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_right_normal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_step_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_right_normal = bcf_quotient_lucas_convolution_high_step_right_normal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_step_right_normal) + (bcf_row_code_lucas_convolution_high_step_right_normal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_normal_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_right_normal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_right_normal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_right_normal = bcf_quotient_lucas_convolution_high_step_right_normal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_right_normal) + (bcf_row_scale_lucas_convolution_high_step_right_normal_table))) /\ ((bcf_row_index_lucas_convolution_high_step_right_normal_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_right_normal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_right_normal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_right_normal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_right_normal_table_zero_row) = S (p + a)) -> exists bcf_value_lucas_convolution_high_step_right_normal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_right_normal_table_zero_row_entry. bcf_height_lucas_convolution_high_step_right_normal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_right_normal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_right_normal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_right_normal_table = bcf_quotient_lucas_convolution_high_step_right_normal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_right_normal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_right_normal_table) + (bcf_value_lucas_convolution_high_step_right_normal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_right_normal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_right_normal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_right_normal_table_zero_row. bcf_index_lucas_convolution_high_step_right_normal_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_right_normal_table_zero_row /\ bcf_value_lucas_convolution_high_step_right_normal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_right_normal_table bcf_previous_code_lucas_convolution_high_step_right_normal_table bcf_previous_scale_lucas_convolution_high_step_right_normal_table. bcf_row_index_lucas_convolution_high_step_right_normal_table = S bcf_predecessor_lucas_convolution_high_step_right_normal_table /\ ((((exists bcf_height_lucas_convolution_high_step_right_normal_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_right_normal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_right_normal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_step_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_right_normal = bcf_quotient_lucas_convolution_high_step_right_normal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_step_right_normal) + (bcf_previous_code_lucas_convolution_high_step_right_normal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_normal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_right_normal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_right_normal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_right_normal = bcf_quotient_lucas_convolution_high_step_right_normal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_right_normal) + (bcf_previous_scale_lucas_convolution_high_step_right_normal_table))) /\ (forall bcf_index_lucas_convolution_high_step_right_normal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_right_normal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_right_normal_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_right_normal_table_row_step) = S (p + a)) -> exists bcf_value_lucas_convolution_high_step_right_normal_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_right_normal_table_row_step_entry. bcf_height_lucas_convolution_high_step_right_normal_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_right_normal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_right_normal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_right_normal_table = bcf_quotient_lucas_convolution_high_step_right_normal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_right_normal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_right_normal_table) + (bcf_value_lucas_convolution_high_step_right_normal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_right_normal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_right_normal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_right_normal_table_row_step bcf_left_lucas_convolution_high_step_right_normal_table_row_step bcf_right_lucas_convolution_high_step_right_normal_table_row_step. bcf_index_lucas_convolution_high_step_right_normal_table_row_step = S bcf_predecessor_lucas_convolution_high_step_right_normal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_right_normal_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_right_normal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_right_normal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_right_normal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_right_normal_table = bcf_quotient_lucas_convolution_high_step_right_normal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_right_normal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_right_normal_table) + (bcf_left_lucas_convolution_high_step_right_normal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_normal_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_right_normal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_right_normal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_right_normal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_right_normal_table = bcf_quotient_lucas_convolution_high_step_right_normal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_right_normal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_right_normal_table) + (bcf_right_lucas_convolution_high_step_right_normal_table_row_step))) /\ bcf_value_lucas_convolution_high_step_right_normal_table_row_step = bcf_left_lucas_convolution_high_step_right_normal_table_row_step + bcf_right_lucas_convolution_high_step_right_normal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_normal_decoded_row_code. bcf_height_lucas_convolution_high_step_right_normal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_right_normal) = S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_step_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_right_normal = bcf_quotient_lucas_convolution_high_step_right_normal_decoded_row_code * S ((S (p + a)) * bcf_row_code_scale_lucas_convolution_high_step_right_normal) + (bcf_row_code_lucas_convolution_high_step_right_normal))) /\ ((((exists bcf_height_lucas_convolution_high_step_right_normal_decoded_row_scale. bcf_height_lucas_convolution_high_step_right_normal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_right_normal) = S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_step_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_right_normal = bcf_quotient_lucas_convolution_high_step_right_normal_decoded_row_scale * S ((S (p + a)) * bcf_row_scale_scale_lucas_convolution_high_step_right_normal) + (bcf_row_scale_lucas_convolution_high_step_right_normal))) /\ (((exists bcf_height_lucas_convolution_high_step_right_normal_decoded_value. bcf_height_lucas_convolution_high_step_right_normal_decoded_value + S (x2) = S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_right_normal_decoded_value. bcf_row_code_lucas_convolution_high_step_right_normal = bcf_quotient_lucas_convolution_high_step_right_normal_decoded_value * S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_right_normal) + (x2))))))))
  318. 0318specialize lucas_choose_lower_eq_transport (p + a)
  319. 0319specialize lucas_choose_lower_eq_transport (p + S x)
  320. 0320specialize lucas_choose_lower_eq_transport (S (p + x))
  321. 0321specialize lucas_choose_lower_eq_transport x2
  322. 0322apply lucas_choose_lower_eq_transport
  323. 0323apply PA4
  324. 0324exact hright_witness
  325. 0325have hsum_mod : ModEq(p,C,x3 + x5 + (x4 + x6))
    Exact native replay linehave hsum_mod : exists lcv_left_high_step_sum_mod lcv_right_high_step_sum_mod. (C) + (p) * lcv_left_high_step_sum_mod = ((x3 + x5) + (x4 + x6)) + (p) * lcv_right_high_step_sum_mod
  326. 0326specialize lucas_pascal_congruence_step p
  327. 0327specialize lucas_pascal_congruence_step (p + a)
  328. 0328specialize lucas_pascal_congruence_step (p + x)
  329. 0329specialize lucas_pascal_congruence_step x1
  330. 0330specialize lucas_pascal_congruence_step x2
  331. 0331specialize lucas_pascal_congruence_step C
  332. 0332specialize lucas_pascal_congruence_step (x3 + x5)
  333. 0333specialize lucas_pascal_congruence_step (x4 + x6)
  334. 0334apply lucas_pascal_congruence_step
  335. 0335exact hleft_witness
  336. 0336exact hright_normal
  337. 0337exact hCnormal
  338. 0338exact hleft_mod
  339. 0339exact hright_mod
  340. 0340have hAnormal : Choose(S a,S (p + x),A)
    Exact native replay linehave hAnormal : ((exists bcf_lt_gap_lucas_convolution_high_step_Anormal_out_of_range. bcf_lt_gap_lucas_convolution_high_step_Anormal_out_of_range + S (S a) = S (p + x)) /\ A = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_Anormal_in_range. bcf_le_gap_lucas_convolution_high_step_Anormal_in_range + (S (p + x)) = S a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_Anormal bcf_row_code_scale_lucas_convolution_high_step_Anormal bcf_row_scale_code_lucas_convolution_high_step_Anormal bcf_row_scale_scale_lucas_convolution_high_step_Anormal bcf_row_code_lucas_convolution_high_step_Anormal bcf_row_scale_lucas_convolution_high_step_Anormal. ((forall bcf_row_index_lucas_convolution_high_step_Anormal_table. (exists bcf_lt_gap_lucas_convolution_high_step_Anormal_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_Anormal_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_Anormal_table) = S (S a)) -> exists bcf_row_code_lucas_convolution_high_step_Anormal_table bcf_row_scale_lucas_convolution_high_step_Anormal_table. ((((exists bcf_height_lucas_convolution_high_step_Anormal_table_decoded_row_code. bcf_height_lucas_convolution_high_step_Anormal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_Anormal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_Anormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_Anormal = bcf_quotient_lucas_convolution_high_step_Anormal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_Anormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Anormal) + (bcf_row_code_lucas_convolution_high_step_Anormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_Anormal_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_Anormal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_Anormal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_Anormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_Anormal = bcf_quotient_lucas_convolution_high_step_Anormal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_Anormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Anormal) + (bcf_row_scale_lucas_convolution_high_step_Anormal_table))) /\ ((bcf_row_index_lucas_convolution_high_step_Anormal_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_Anormal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_Anormal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_Anormal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_Anormal_table_zero_row) = S (S a)) -> exists bcf_value_lucas_convolution_high_step_Anormal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_Anormal_table_zero_row_entry. bcf_height_lucas_convolution_high_step_Anormal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_Anormal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_Anormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_Anormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_Anormal_table = bcf_quotient_lucas_convolution_high_step_Anormal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_Anormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_Anormal_table) + (bcf_value_lucas_convolution_high_step_Anormal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_Anormal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_Anormal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_Anormal_table_zero_row. bcf_index_lucas_convolution_high_step_Anormal_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_Anormal_table_zero_row /\ bcf_value_lucas_convolution_high_step_Anormal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_Anormal_table bcf_previous_code_lucas_convolution_high_step_Anormal_table bcf_previous_scale_lucas_convolution_high_step_Anormal_table. bcf_row_index_lucas_convolution_high_step_Anormal_table = S bcf_predecessor_lucas_convolution_high_step_Anormal_table /\ ((((exists bcf_height_lucas_convolution_high_step_Anormal_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_Anormal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_Anormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_Anormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_Anormal = bcf_quotient_lucas_convolution_high_step_Anormal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_Anormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Anormal) + (bcf_previous_code_lucas_convolution_high_step_Anormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_Anormal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_Anormal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_Anormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_Anormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_Anormal = bcf_quotient_lucas_convolution_high_step_Anormal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_Anormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Anormal) + (bcf_previous_scale_lucas_convolution_high_step_Anormal_table))) /\ (forall bcf_index_lucas_convolution_high_step_Anormal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_Anormal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_Anormal_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_Anormal_table_row_step) = S (S a)) -> exists bcf_value_lucas_convolution_high_step_Anormal_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_Anormal_table_row_step_entry. bcf_height_lucas_convolution_high_step_Anormal_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_Anormal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_Anormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_Anormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_Anormal_table = bcf_quotient_lucas_convolution_high_step_Anormal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_Anormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_Anormal_table) + (bcf_value_lucas_convolution_high_step_Anormal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_Anormal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_Anormal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_Anormal_table_row_step bcf_left_lucas_convolution_high_step_Anormal_table_row_step bcf_right_lucas_convolution_high_step_Anormal_table_row_step. bcf_index_lucas_convolution_high_step_Anormal_table_row_step = S bcf_predecessor_lucas_convolution_high_step_Anormal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_Anormal_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_Anormal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_Anormal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_Anormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_Anormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_Anormal_table = bcf_quotient_lucas_convolution_high_step_Anormal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_Anormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_Anormal_table) + (bcf_left_lucas_convolution_high_step_Anormal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_Anormal_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_Anormal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_Anormal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_Anormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_Anormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_Anormal_table = bcf_quotient_lucas_convolution_high_step_Anormal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_Anormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_Anormal_table) + (bcf_right_lucas_convolution_high_step_Anormal_table_row_step))) /\ bcf_value_lucas_convolution_high_step_Anormal_table_row_step = bcf_left_lucas_convolution_high_step_Anormal_table_row_step + bcf_right_lucas_convolution_high_step_Anormal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_Anormal_decoded_row_code. bcf_height_lucas_convolution_high_step_Anormal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_Anormal) = S ((S (S a)) * bcf_row_code_scale_lucas_convolution_high_step_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_Anormal = bcf_quotient_lucas_convolution_high_step_Anormal_decoded_row_code * S ((S (S a)) * bcf_row_code_scale_lucas_convolution_high_step_Anormal) + (bcf_row_code_lucas_convolution_high_step_Anormal))) /\ ((((exists bcf_height_lucas_convolution_high_step_Anormal_decoded_row_scale. bcf_height_lucas_convolution_high_step_Anormal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_Anormal) = S ((S (S a)) * bcf_row_scale_scale_lucas_convolution_high_step_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_Anormal = bcf_quotient_lucas_convolution_high_step_Anormal_decoded_row_scale * S ((S (S a)) * bcf_row_scale_scale_lucas_convolution_high_step_Anormal) + (bcf_row_scale_lucas_convolution_high_step_Anormal))) /\ (((exists bcf_height_lucas_convolution_high_step_Anormal_decoded_value. bcf_height_lucas_convolution_high_step_Anormal_decoded_value + S (A) = S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_Anormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Anormal_decoded_value. bcf_row_code_lucas_convolution_high_step_Anormal = bcf_quotient_lucas_convolution_high_step_Anormal_decoded_value * S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_Anormal) + (A))))))))
  341. 0341specialize lucas_choose_lower_eq_transport (S a)
  342. 0342specialize lucas_choose_lower_eq_transport (p + j)
  343. 0343specialize lucas_choose_lower_eq_transport (S (p + x))
  344. 0344specialize lucas_choose_lower_eq_transport A
  345. 0345apply lucas_choose_lower_eq_transport
  346. 0346exact hindex
  347. 0347exact hupper_tail
  348. 0348have hupper_right_normal : ((exists bcf_lt_gap_lucas_convolution_high_step_upper_right_normal_out_of_range. bcf_lt_gap_lucas_convolution_high_step_upper_right_normal_out_of_range + S (a) = S (p + x)) /\ x4 = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_upper_right_normal_in_range. bcf_le_gap_lucas_convolution_high_step_upper_right_normal_in_range + (S (p + x)) = a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_upper_right_normal bcf_row_code_scale_lucas_convolution_high_step_upper_right_normal bcf_row_scale_code_lucas_convolution_high_step_upper_right_normal bcf_row_scale_scale_lucas_convolution_high_step_upper_right_normal bcf_row_code_lucas_convolution_high_step_upper_right_normal bcf_row_scale_lucas_convolution_high_step_upper_right_normal. ((forall bcf_row_index_lucas_convolution_high_step_upper_right_normal_table. (exists bcf_lt_gap_lucas_convolution_high_step_upper_right_normal_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_upper_right_normal_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_upper_right_normal_table) = S (a)) -> exists bcf_row_code_lucas_convolution_high_step_upper_right_normal_table bcf_row_scale_lucas_convolution_high_step_upper_right_normal_table. ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_table_decoded_row_code. bcf_height_lucas_convolution_high_step_upper_right_normal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_upper_right_normal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_upper_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_upper_right_normal = bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_upper_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right_normal) + (bcf_row_code_lucas_convolution_high_step_upper_right_normal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_upper_right_normal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_upper_right_normal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_upper_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_right_normal = bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_upper_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right_normal) + (bcf_row_scale_lucas_convolution_high_step_upper_right_normal_table))) /\ ((bcf_row_index_lucas_convolution_high_step_upper_right_normal_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_upper_right_normal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_upper_right_normal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_upper_right_normal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_upper_right_normal_table_zero_row) = S (a)) -> exists bcf_value_lucas_convolution_high_step_upper_right_normal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_table_zero_row_entry. bcf_height_lucas_convolution_high_step_upper_right_normal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_upper_right_normal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_upper_right_normal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_upper_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_upper_right_normal_table = bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_upper_right_normal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_upper_right_normal_table) + (bcf_value_lucas_convolution_high_step_upper_right_normal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_upper_right_normal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_upper_right_normal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table_zero_row. bcf_index_lucas_convolution_high_step_upper_right_normal_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table_zero_row /\ bcf_value_lucas_convolution_high_step_upper_right_normal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table bcf_previous_code_lucas_convolution_high_step_upper_right_normal_table bcf_previous_scale_lucas_convolution_high_step_upper_right_normal_table. bcf_row_index_lucas_convolution_high_step_upper_right_normal_table = S bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_upper_right_normal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_upper_right_normal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_upper_right_normal = bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right_normal) + (bcf_previous_code_lucas_convolution_high_step_upper_right_normal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_upper_right_normal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_upper_right_normal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_right_normal = bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right_normal) + (bcf_previous_scale_lucas_convolution_high_step_upper_right_normal_table))) /\ (forall bcf_index_lucas_convolution_high_step_upper_right_normal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_upper_right_normal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_upper_right_normal_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_upper_right_normal_table_row_step) = S (a)) -> exists bcf_value_lucas_convolution_high_step_upper_right_normal_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_table_row_step_entry. bcf_height_lucas_convolution_high_step_upper_right_normal_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_upper_right_normal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_upper_right_normal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_upper_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_upper_right_normal_table = bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_upper_right_normal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_upper_right_normal_table) + (bcf_value_lucas_convolution_high_step_upper_right_normal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_upper_right_normal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_upper_right_normal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table_row_step bcf_left_lucas_convolution_high_step_upper_right_normal_table_row_step bcf_right_lucas_convolution_high_step_upper_right_normal_table_row_step. bcf_index_lucas_convolution_high_step_upper_right_normal_table_row_step = S bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_upper_right_normal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_upper_right_normal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_upper_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_upper_right_normal_table = bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_upper_right_normal_table) + (bcf_left_lucas_convolution_high_step_upper_right_normal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_upper_right_normal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_upper_right_normal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_upper_right_normal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_upper_right_normal_table = bcf_quotient_lucas_convolution_high_step_upper_right_normal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_upper_right_normal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_upper_right_normal_table) + (bcf_right_lucas_convolution_high_step_upper_right_normal_table_row_step))) /\ bcf_value_lucas_convolution_high_step_upper_right_normal_table_row_step = bcf_left_lucas_convolution_high_step_upper_right_normal_table_row_step + bcf_right_lucas_convolution_high_step_upper_right_normal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_decoded_row_code. bcf_height_lucas_convolution_high_step_upper_right_normal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_upper_right_normal) = S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_upper_right_normal = bcf_quotient_lucas_convolution_high_step_upper_right_normal_decoded_row_code * S ((S (a)) * bcf_row_code_scale_lucas_convolution_high_step_upper_right_normal) + (bcf_row_code_lucas_convolution_high_step_upper_right_normal))) /\ ((((exists bcf_height_lucas_convolution_high_step_upper_right_normal_decoded_row_scale. bcf_height_lucas_convolution_high_step_upper_right_normal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_upper_right_normal) = S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_upper_right_normal = bcf_quotient_lucas_convolution_high_step_upper_right_normal_decoded_row_scale * S ((S (a)) * bcf_row_scale_scale_lucas_convolution_high_step_upper_right_normal) + (bcf_row_scale_lucas_convolution_high_step_upper_right_normal))) /\ (((exists bcf_height_lucas_convolution_high_step_upper_right_normal_decoded_value. bcf_height_lucas_convolution_high_step_upper_right_normal_decoded_value + S (x4) = S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_upper_right_normal)) /\ exists bcf_quotient_lucas_convolution_high_step_upper_right_normal_decoded_value. bcf_row_code_lucas_convolution_high_step_upper_right_normal = bcf_quotient_lucas_convolution_high_step_upper_right_normal_decoded_value * S ((S (S (p + x))) * bcf_row_scale_lucas_convolution_high_step_upper_right_normal) + (x4))))))))
  349. 0349specialize lucas_choose_lower_eq_transport a
  350. 0350specialize lucas_choose_lower_eq_transport (p + S x)
  351. 0351specialize lucas_choose_lower_eq_transport (S (p + x))
  352. 0352specialize lucas_choose_lower_eq_transport x4
  353. 0353apply lucas_choose_lower_eq_transport
  354. 0354apply PA4
  355. 0355exact hupper_right_witness
  356. 0356have hAvalue : A = x3 + x4
  357. 0357specialize choose_succ_succ a
  358. 0358specialize choose_succ_succ (p + x)
  359. 0359specialize choose_succ_succ x3
  360. 0360specialize choose_succ_succ x4
  361. 0361specialize choose_succ_succ A
  362. 0362apply choose_succ_succ
  363. 0363exact hupper_left_witness
  364. 0364exact hupper_right_normal
  365. 0365exact hAnormal
  366. 0366have hBnormal : ((exists bcf_lt_gap_lucas_convolution_high_step_Bnormal_out_of_range. bcf_lt_gap_lucas_convolution_high_step_Bnormal_out_of_range + S (S a) = S x) /\ B = 0) \/ ((exists bcf_le_gap_lucas_convolution_high_step_Bnormal_in_range. bcf_le_gap_lucas_convolution_high_step_Bnormal_in_range + (S x) = S a) /\ (exists bcf_row_code_code_lucas_convolution_high_step_Bnormal bcf_row_code_scale_lucas_convolution_high_step_Bnormal bcf_row_scale_code_lucas_convolution_high_step_Bnormal bcf_row_scale_scale_lucas_convolution_high_step_Bnormal bcf_row_code_lucas_convolution_high_step_Bnormal bcf_row_scale_lucas_convolution_high_step_Bnormal. ((forall bcf_row_index_lucas_convolution_high_step_Bnormal_table. (exists bcf_lt_gap_lucas_convolution_high_step_Bnormal_table_row_bound. bcf_lt_gap_lucas_convolution_high_step_Bnormal_table_row_bound + S (bcf_row_index_lucas_convolution_high_step_Bnormal_table) = S (S a)) -> exists bcf_row_code_lucas_convolution_high_step_Bnormal_table bcf_row_scale_lucas_convolution_high_step_Bnormal_table. ((((exists bcf_height_lucas_convolution_high_step_Bnormal_table_decoded_row_code. bcf_height_lucas_convolution_high_step_Bnormal_table_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_Bnormal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_Bnormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Bnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_table_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_Bnormal = bcf_quotient_lucas_convolution_high_step_Bnormal_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_high_step_Bnormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Bnormal) + (bcf_row_code_lucas_convolution_high_step_Bnormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_Bnormal_table_decoded_row_scale. bcf_height_lucas_convolution_high_step_Bnormal_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_Bnormal_table) = S ((S (bcf_row_index_lucas_convolution_high_step_Bnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Bnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_Bnormal = bcf_quotient_lucas_convolution_high_step_Bnormal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_high_step_Bnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Bnormal) + (bcf_row_scale_lucas_convolution_high_step_Bnormal_table))) /\ ((bcf_row_index_lucas_convolution_high_step_Bnormal_table = 0 /\ (forall bcf_index_lucas_convolution_high_step_Bnormal_table_zero_row. (exists bcf_lt_gap_lucas_convolution_high_step_Bnormal_table_zero_row_bound. bcf_lt_gap_lucas_convolution_high_step_Bnormal_table_zero_row_bound + S (bcf_index_lucas_convolution_high_step_Bnormal_table_zero_row) = S (S a)) -> exists bcf_value_lucas_convolution_high_step_Bnormal_table_zero_row. ((((exists bcf_height_lucas_convolution_high_step_Bnormal_table_zero_row_entry. bcf_height_lucas_convolution_high_step_Bnormal_table_zero_row_entry + S (bcf_value_lucas_convolution_high_step_Bnormal_table_zero_row) = S ((S (bcf_index_lucas_convolution_high_step_Bnormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_Bnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_table_zero_row_entry. bcf_row_code_lucas_convolution_high_step_Bnormal_table = bcf_quotient_lucas_convolution_high_step_Bnormal_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_high_step_Bnormal_table_zero_row)) * bcf_row_scale_lucas_convolution_high_step_Bnormal_table) + (bcf_value_lucas_convolution_high_step_Bnormal_table_zero_row))) /\ ((bcf_index_lucas_convolution_high_step_Bnormal_table_zero_row = 0 /\ bcf_value_lucas_convolution_high_step_Bnormal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_Bnormal_table_zero_row. bcf_index_lucas_convolution_high_step_Bnormal_table_zero_row = S bcf_predecessor_lucas_convolution_high_step_Bnormal_table_zero_row /\ bcf_value_lucas_convolution_high_step_Bnormal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_high_step_Bnormal_table bcf_previous_code_lucas_convolution_high_step_Bnormal_table bcf_previous_scale_lucas_convolution_high_step_Bnormal_table. bcf_row_index_lucas_convolution_high_step_Bnormal_table = S bcf_predecessor_lucas_convolution_high_step_Bnormal_table /\ ((((exists bcf_height_lucas_convolution_high_step_Bnormal_table_decoded_previous_code. bcf_height_lucas_convolution_high_step_Bnormal_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_high_step_Bnormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_Bnormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Bnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_high_step_Bnormal = bcf_quotient_lucas_convolution_high_step_Bnormal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_high_step_Bnormal_table)) * bcf_row_code_scale_lucas_convolution_high_step_Bnormal) + (bcf_previous_code_lucas_convolution_high_step_Bnormal_table))) /\ ((((exists bcf_height_lucas_convolution_high_step_Bnormal_table_decoded_previous_scale. bcf_height_lucas_convolution_high_step_Bnormal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_high_step_Bnormal_table) = S ((S (bcf_predecessor_lucas_convolution_high_step_Bnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Bnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_high_step_Bnormal = bcf_quotient_lucas_convolution_high_step_Bnormal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_high_step_Bnormal_table)) * bcf_row_scale_scale_lucas_convolution_high_step_Bnormal) + (bcf_previous_scale_lucas_convolution_high_step_Bnormal_table))) /\ (forall bcf_index_lucas_convolution_high_step_Bnormal_table_row_step. (exists bcf_lt_gap_lucas_convolution_high_step_Bnormal_table_row_step_bound. bcf_lt_gap_lucas_convolution_high_step_Bnormal_table_row_step_bound + S (bcf_index_lucas_convolution_high_step_Bnormal_table_row_step) = S (S a)) -> exists bcf_value_lucas_convolution_high_step_Bnormal_table_row_step. ((((exists bcf_height_lucas_convolution_high_step_Bnormal_table_row_step_entry. bcf_height_lucas_convolution_high_step_Bnormal_table_row_step_entry + S (bcf_value_lucas_convolution_high_step_Bnormal_table_row_step) = S ((S (bcf_index_lucas_convolution_high_step_Bnormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_Bnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_table_row_step_entry. bcf_row_code_lucas_convolution_high_step_Bnormal_table = bcf_quotient_lucas_convolution_high_step_Bnormal_table_row_step_entry * S ((S (bcf_index_lucas_convolution_high_step_Bnormal_table_row_step)) * bcf_row_scale_lucas_convolution_high_step_Bnormal_table) + (bcf_value_lucas_convolution_high_step_Bnormal_table_row_step))) /\ ((bcf_index_lucas_convolution_high_step_Bnormal_table_row_step = 0 /\ bcf_value_lucas_convolution_high_step_Bnormal_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_high_step_Bnormal_table_row_step bcf_left_lucas_convolution_high_step_Bnormal_table_row_step bcf_right_lucas_convolution_high_step_Bnormal_table_row_step. bcf_index_lucas_convolution_high_step_Bnormal_table_row_step = S bcf_predecessor_lucas_convolution_high_step_Bnormal_table_row_step /\ ((((exists bcf_height_lucas_convolution_high_step_Bnormal_table_row_step_previous_left. bcf_height_lucas_convolution_high_step_Bnormal_table_row_step_previous_left + S (bcf_left_lucas_convolution_high_step_Bnormal_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_high_step_Bnormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_Bnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_table_row_step_previous_left. bcf_previous_code_lucas_convolution_high_step_Bnormal_table = bcf_quotient_lucas_convolution_high_step_Bnormal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_high_step_Bnormal_table_row_step)) * bcf_previous_scale_lucas_convolution_high_step_Bnormal_table) + (bcf_left_lucas_convolution_high_step_Bnormal_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_high_step_Bnormal_table_row_step_previous_right. bcf_height_lucas_convolution_high_step_Bnormal_table_row_step_previous_right + S (bcf_right_lucas_convolution_high_step_Bnormal_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_high_step_Bnormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_Bnormal_table)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_table_row_step_previous_right. bcf_previous_code_lucas_convolution_high_step_Bnormal_table = bcf_quotient_lucas_convolution_high_step_Bnormal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_high_step_Bnormal_table_row_step))) * bcf_previous_scale_lucas_convolution_high_step_Bnormal_table) + (bcf_right_lucas_convolution_high_step_Bnormal_table_row_step))) /\ bcf_value_lucas_convolution_high_step_Bnormal_table_row_step = bcf_left_lucas_convolution_high_step_Bnormal_table_row_step + bcf_right_lucas_convolution_high_step_Bnormal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_high_step_Bnormal_decoded_row_code. bcf_height_lucas_convolution_high_step_Bnormal_decoded_row_code + S (bcf_row_code_lucas_convolution_high_step_Bnormal) = S ((S (S a)) * bcf_row_code_scale_lucas_convolution_high_step_Bnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_decoded_row_code. bcf_row_code_code_lucas_convolution_high_step_Bnormal = bcf_quotient_lucas_convolution_high_step_Bnormal_decoded_row_code * S ((S (S a)) * bcf_row_code_scale_lucas_convolution_high_step_Bnormal) + (bcf_row_code_lucas_convolution_high_step_Bnormal))) /\ ((((exists bcf_height_lucas_convolution_high_step_Bnormal_decoded_row_scale. bcf_height_lucas_convolution_high_step_Bnormal_decoded_row_scale + S (bcf_row_scale_lucas_convolution_high_step_Bnormal) = S ((S (S a)) * bcf_row_scale_scale_lucas_convolution_high_step_Bnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_decoded_row_scale. bcf_row_scale_code_lucas_convolution_high_step_Bnormal = bcf_quotient_lucas_convolution_high_step_Bnormal_decoded_row_scale * S ((S (S a)) * bcf_row_scale_scale_lucas_convolution_high_step_Bnormal) + (bcf_row_scale_lucas_convolution_high_step_Bnormal))) /\ (((exists bcf_height_lucas_convolution_high_step_Bnormal_decoded_value. bcf_height_lucas_convolution_high_step_Bnormal_decoded_value + S (B) = S ((S (S x)) * bcf_row_scale_lucas_convolution_high_step_Bnormal)) /\ exists bcf_quotient_lucas_convolution_high_step_Bnormal_decoded_value. bcf_row_code_lucas_convolution_high_step_Bnormal = bcf_quotient_lucas_convolution_high_step_Bnormal_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_convolution_high_step_Bnormal) + (B))))))))
  367. 0367specialize lucas_choose_lower_eq_transport (S a)
  368. 0368specialize lucas_choose_lower_eq_transport j
  369. 0369specialize lucas_choose_lower_eq_transport (S x)
  370. 0370specialize lucas_choose_lower_eq_transport B
  371. 0371apply lucas_choose_lower_eq_transport
  372. 0372exact hsuccessor_witness
  373. 0373exact hlower_tail
  374. 0374have hBvalue : B = x5 + x6
  375. 0375specialize choose_succ_succ a
  376. 0376specialize choose_succ_succ x
  377. 0377specialize choose_succ_succ x5
  378. 0378specialize choose_succ_succ x6
  379. 0379specialize choose_succ_succ B
  380. 0380apply choose_succ_succ
  381. 0381exact hlower_left_witness
  382. 0382exact hlower_right_witness
  383. 0383exact hBnormal
  384. 0384rewrite hAvalue
  385. 0385rewrite hBvalue
  386. 0386have hshuffle : (x3 + x5) + (x4 + x6) = (x3 + x4) + (x5 + x6)
  387. 0387apply add_shuffle_middle
  388. 0388rewrite hshuffle at hsum_mod
  389. 0389exact hsum_mod