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. ∀ q. ∀ r. ∀ d. ∀ e. ∀ C. ∀ A. ∀ B. Prime(p) → Lt(d,p) → Lt(e,p) → Choose(p · q + d,p · r + e,C) → Choose(q,r,A) → Choose(d,e,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 q r d e C A B. ((~(p = 1) /\ forall frm_prime_left_lucas_block_digit_prime frm_prime_right_lucas_block_digit_prime. p = frm_prime_left_lucas_block_digit_prime * frm_prime_right_lucas_block_digit_prime -> frm_prime_left_lucas_block_digit_prime = 1 \/ frm_prime_right_lucas_block_digit_prime = 1)) -> (exists lbd_gap_canonical_upper_bound. lbd_gap_canonical_upper_bound + S (d) = (p)) -> (exists lbd_gap_canonical_lower_bound. lbd_gap_canonical_lower_bound + S (e) = (p)) -> (((exists bcf_lt_gap_lucas_block_digit_canonical_whole_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_whole_out_of_range + S (p * q + d) = p * r + e) /\ C = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_whole_in_range. bcf_le_gap_lucas_block_digit_canonical_whole_in_range + (p * r + e) = p * q + d) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_whole bcf_row_code_scale_lucas_block_digit_canonical_whole bcf_row_scale_code_lucas_block_digit_canonical_whole bcf_row_scale_scale_lucas_block_digit_canonical_whole bcf_row_code_lucas_block_digit_canonical_whole bcf_row_scale_lucas_block_digit_canonical_whole. ((forall bcf_row_index_lucas_block_digit_canonical_whole_table. (exists bcf_lt_gap_lucas_block_digit_canonical_whole_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_whole_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_whole_table) = S (p * q + d)) -> exists bcf_row_code_lucas_block_digit_canonical_whole_table bcf_row_scale_lucas_block_digit_canonical_whole_table. ((((exists bcf_height_lucas_block_digit_canonical_whole_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_whole_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_whole_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_whole_table)) * bcf_row_code_scale_lucas_block_digit_canonical_whole)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_whole = bcf_quotient_lucas_block_digit_canonical_whole_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_whole_table)) * bcf_row_code_scale_lucas_block_digit_canonical_whole) + (bcf_row_code_lucas_block_digit_canonical_whole_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_whole_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_whole_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_whole_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_whole_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_whole)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_whole = bcf_quotient_lucas_block_digit_canonical_whole_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_whole_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_whole) + (bcf_row_scale_lucas_block_digit_canonical_whole_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_whole_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_whole_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_whole_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_whole_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_whole_table_zero_row) = S (p * q + d)) -> exists bcf_value_lucas_block_digit_canonical_whole_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_whole_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_whole_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_whole_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_whole_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_whole_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_whole_table = bcf_quotient_lucas_block_digit_canonical_whole_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_whole_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_whole_table) + (bcf_value_lucas_block_digit_canonical_whole_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_whole_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_whole_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_whole_table_zero_row. bcf_index_lucas_block_digit_canonical_whole_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_whole_table_zero_row /\ bcf_value_lucas_block_digit_canonical_whole_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_whole_table bcf_previous_code_lucas_block_digit_canonical_whole_table bcf_previous_scale_lucas_block_digit_canonical_whole_table. bcf_row_index_lucas_block_digit_canonical_whole_table = S bcf_predecessor_lucas_block_digit_canonical_whole_table /\ ((((exists bcf_height_lucas_block_digit_canonical_whole_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_whole_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_whole_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_whole_table)) * bcf_row_code_scale_lucas_block_digit_canonical_whole)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_whole = bcf_quotient_lucas_block_digit_canonical_whole_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_whole_table)) * bcf_row_code_scale_lucas_block_digit_canonical_whole) + (bcf_previous_code_lucas_block_digit_canonical_whole_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_whole_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_whole_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_whole_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_whole_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_whole)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_whole = bcf_quotient_lucas_block_digit_canonical_whole_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_whole_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_whole) + (bcf_previous_scale_lucas_block_digit_canonical_whole_table))) /\ (forall bcf_index_lucas_block_digit_canonical_whole_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_whole_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_whole_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_whole_table_row_step) = S (p * q + d)) -> exists bcf_value_lucas_block_digit_canonical_whole_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_whole_table_row_step_entry. bcf_height_lucas_block_digit_canonical_whole_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_whole_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_whole_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_whole_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_whole_table = bcf_quotient_lucas_block_digit_canonical_whole_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_whole_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_whole_table) + (bcf_value_lucas_block_digit_canonical_whole_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_whole_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_whole_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_whole_table_row_step bcf_left_lucas_block_digit_canonical_whole_table_row_step bcf_right_lucas_block_digit_canonical_whole_table_row_step. bcf_index_lucas_block_digit_canonical_whole_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_whole_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_whole_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_whole_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_whole_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_whole_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_whole_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_whole_table = bcf_quotient_lucas_block_digit_canonical_whole_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_whole_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_whole_table) + (bcf_left_lucas_block_digit_canonical_whole_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_whole_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_whole_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_whole_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_whole_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_whole_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_whole_table = bcf_quotient_lucas_block_digit_canonical_whole_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_whole_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_whole_table) + (bcf_right_lucas_block_digit_canonical_whole_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_whole_table_row_step = bcf_left_lucas_block_digit_canonical_whole_table_row_step + bcf_right_lucas_block_digit_canonical_whole_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_whole_decoded_row_code. bcf_height_lucas_block_digit_canonical_whole_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_whole) = S ((S (p * q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_whole)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_whole = bcf_quotient_lucas_block_digit_canonical_whole_decoded_row_code * S ((S (p * q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_whole) + (bcf_row_code_lucas_block_digit_canonical_whole))) /\ ((((exists bcf_height_lucas_block_digit_canonical_whole_decoded_row_scale. bcf_height_lucas_block_digit_canonical_whole_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_whole) = S ((S (p * q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_whole)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_whole = bcf_quotient_lucas_block_digit_canonical_whole_decoded_row_scale * S ((S (p * q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_whole) + (bcf_row_scale_lucas_block_digit_canonical_whole))) /\ (((exists bcf_height_lucas_block_digit_canonical_whole_decoded_value. bcf_height_lucas_block_digit_canonical_whole_decoded_value + S (C) = S ((S (p * r + e)) * bcf_row_scale_lucas_block_digit_canonical_whole)) /\ exists bcf_quotient_lucas_block_digit_canonical_whole_decoded_value. bcf_row_code_lucas_block_digit_canonical_whole = bcf_quotient_lucas_block_digit_canonical_whole_decoded_value * S ((S (p * r + e)) * bcf_row_scale_lucas_block_digit_canonical_whole) + (C))))))))) -> (((exists bcf_lt_gap_lucas_block_digit_canonical_quotient_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_quotient_out_of_range + S (q) = r) /\ A = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_quotient_in_range. bcf_le_gap_lucas_block_digit_canonical_quotient_in_range + (r) = q) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_quotient bcf_row_code_scale_lucas_block_digit_canonical_quotient bcf_row_scale_code_lucas_block_digit_canonical_quotient bcf_row_scale_scale_lucas_block_digit_canonical_quotient bcf_row_code_lucas_block_digit_canonical_quotient bcf_row_scale_lucas_block_digit_canonical_quotient. ((forall bcf_row_index_lucas_block_digit_canonical_quotient_table. (exists bcf_lt_gap_lucas_block_digit_canonical_quotient_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_quotient_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_quotient_table) = S (q)) -> exists bcf_row_code_lucas_block_digit_canonical_quotient_table bcf_row_scale_lucas_block_digit_canonical_quotient_table. ((((exists bcf_height_lucas_block_digit_canonical_quotient_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_quotient_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_quotient = bcf_quotient_lucas_block_digit_canonical_quotient_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_quotient) + (bcf_row_code_lucas_block_digit_canonical_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_quotient_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_quotient_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_quotient = bcf_quotient_lucas_block_digit_canonical_quotient_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_quotient) + (bcf_row_scale_lucas_block_digit_canonical_quotient_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_quotient_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_quotient_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_quotient_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_quotient_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_quotient_table_zero_row) = S (q)) -> exists bcf_value_lucas_block_digit_canonical_quotient_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_quotient_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_quotient_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_quotient_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_quotient_table = bcf_quotient_lucas_block_digit_canonical_quotient_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_quotient_table) + (bcf_value_lucas_block_digit_canonical_quotient_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_quotient_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_quotient_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_quotient_table_zero_row. bcf_index_lucas_block_digit_canonical_quotient_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_quotient_table_zero_row /\ bcf_value_lucas_block_digit_canonical_quotient_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_quotient_table bcf_previous_code_lucas_block_digit_canonical_quotient_table bcf_previous_scale_lucas_block_digit_canonical_quotient_table. bcf_row_index_lucas_block_digit_canonical_quotient_table = S bcf_predecessor_lucas_block_digit_canonical_quotient_table /\ ((((exists bcf_height_lucas_block_digit_canonical_quotient_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_quotient_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_quotient = bcf_quotient_lucas_block_digit_canonical_quotient_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_quotient) + (bcf_previous_code_lucas_block_digit_canonical_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_quotient_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_quotient_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_quotient = bcf_quotient_lucas_block_digit_canonical_quotient_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_quotient) + (bcf_previous_scale_lucas_block_digit_canonical_quotient_table))) /\ (forall bcf_index_lucas_block_digit_canonical_quotient_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_quotient_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_quotient_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_quotient_table_row_step) = S (q)) -> exists bcf_value_lucas_block_digit_canonical_quotient_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_quotient_table_row_step_entry. bcf_height_lucas_block_digit_canonical_quotient_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_quotient_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_quotient_table = bcf_quotient_lucas_block_digit_canonical_quotient_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_quotient_table) + (bcf_value_lucas_block_digit_canonical_quotient_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_quotient_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_quotient_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_quotient_table_row_step bcf_left_lucas_block_digit_canonical_quotient_table_row_step bcf_right_lucas_block_digit_canonical_quotient_table_row_step. bcf_index_lucas_block_digit_canonical_quotient_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_quotient_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_quotient_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_quotient_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_quotient_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_quotient_table = bcf_quotient_lucas_block_digit_canonical_quotient_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_quotient_table) + (bcf_left_lucas_block_digit_canonical_quotient_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_quotient_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_quotient_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_quotient_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_quotient_table = bcf_quotient_lucas_block_digit_canonical_quotient_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_quotient_table) + (bcf_right_lucas_block_digit_canonical_quotient_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_quotient_table_row_step = bcf_left_lucas_block_digit_canonical_quotient_table_row_step + bcf_right_lucas_block_digit_canonical_quotient_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_quotient_decoded_row_code. bcf_height_lucas_block_digit_canonical_quotient_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_quotient) = S ((S (q)) * bcf_row_code_scale_lucas_block_digit_canonical_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_quotient = bcf_quotient_lucas_block_digit_canonical_quotient_decoded_row_code * S ((S (q)) * bcf_row_code_scale_lucas_block_digit_canonical_quotient) + (bcf_row_code_lucas_block_digit_canonical_quotient))) /\ ((((exists bcf_height_lucas_block_digit_canonical_quotient_decoded_row_scale. bcf_height_lucas_block_digit_canonical_quotient_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_quotient) = S ((S (q)) * bcf_row_scale_scale_lucas_block_digit_canonical_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_quotient = bcf_quotient_lucas_block_digit_canonical_quotient_decoded_row_scale * S ((S (q)) * bcf_row_scale_scale_lucas_block_digit_canonical_quotient) + (bcf_row_scale_lucas_block_digit_canonical_quotient))) /\ (((exists bcf_height_lucas_block_digit_canonical_quotient_decoded_value. bcf_height_lucas_block_digit_canonical_quotient_decoded_value + S (A) = S ((S (r)) * bcf_row_scale_lucas_block_digit_canonical_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_quotient_decoded_value. bcf_row_code_lucas_block_digit_canonical_quotient = bcf_quotient_lucas_block_digit_canonical_quotient_decoded_value * S ((S (r)) * bcf_row_scale_lucas_block_digit_canonical_quotient) + (A))))))))) -> (((exists bcf_lt_gap_lucas_block_digit_canonical_digit_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_digit_out_of_range + S (d) = e) /\ B = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_digit_in_range. bcf_le_gap_lucas_block_digit_canonical_digit_in_range + (e) = d) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_digit bcf_row_code_scale_lucas_block_digit_canonical_digit bcf_row_scale_code_lucas_block_digit_canonical_digit bcf_row_scale_scale_lucas_block_digit_canonical_digit bcf_row_code_lucas_block_digit_canonical_digit bcf_row_scale_lucas_block_digit_canonical_digit. ((forall bcf_row_index_lucas_block_digit_canonical_digit_table. (exists bcf_lt_gap_lucas_block_digit_canonical_digit_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_digit_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_digit_table) = S (d)) -> exists bcf_row_code_lucas_block_digit_canonical_digit_table bcf_row_scale_lucas_block_digit_canonical_digit_table. ((((exists bcf_height_lucas_block_digit_canonical_digit_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_digit_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_digit_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_digit_table)) * bcf_row_code_scale_lucas_block_digit_canonical_digit)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_digit = bcf_quotient_lucas_block_digit_canonical_digit_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_digit_table)) * bcf_row_code_scale_lucas_block_digit_canonical_digit) + (bcf_row_code_lucas_block_digit_canonical_digit_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_digit_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_digit_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_digit_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_digit_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_digit)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_digit = bcf_quotient_lucas_block_digit_canonical_digit_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_digit_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_digit) + (bcf_row_scale_lucas_block_digit_canonical_digit_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_digit_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_digit_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_digit_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_digit_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_digit_table_zero_row) = S (d)) -> exists bcf_value_lucas_block_digit_canonical_digit_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_digit_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_digit_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_digit_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_digit_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_digit_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_digit_table = bcf_quotient_lucas_block_digit_canonical_digit_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_digit_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_digit_table) + (bcf_value_lucas_block_digit_canonical_digit_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_digit_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_digit_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_digit_table_zero_row. bcf_index_lucas_block_digit_canonical_digit_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_digit_table_zero_row /\ bcf_value_lucas_block_digit_canonical_digit_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_digit_table bcf_previous_code_lucas_block_digit_canonical_digit_table bcf_previous_scale_lucas_block_digit_canonical_digit_table. bcf_row_index_lucas_block_digit_canonical_digit_table = S bcf_predecessor_lucas_block_digit_canonical_digit_table /\ ((((exists bcf_height_lucas_block_digit_canonical_digit_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_digit_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_digit_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_digit_table)) * bcf_row_code_scale_lucas_block_digit_canonical_digit)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_digit = bcf_quotient_lucas_block_digit_canonical_digit_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_digit_table)) * bcf_row_code_scale_lucas_block_digit_canonical_digit) + (bcf_previous_code_lucas_block_digit_canonical_digit_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_digit_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_digit_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_digit_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_digit_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_digit)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_digit = bcf_quotient_lucas_block_digit_canonical_digit_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_digit_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_digit) + (bcf_previous_scale_lucas_block_digit_canonical_digit_table))) /\ (forall bcf_index_lucas_block_digit_canonical_digit_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_digit_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_digit_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_digit_table_row_step) = S (d)) -> exists bcf_value_lucas_block_digit_canonical_digit_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_digit_table_row_step_entry. bcf_height_lucas_block_digit_canonical_digit_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_digit_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_digit_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_digit_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_digit_table = bcf_quotient_lucas_block_digit_canonical_digit_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_digit_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_digit_table) + (bcf_value_lucas_block_digit_canonical_digit_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_digit_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_digit_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_digit_table_row_step bcf_left_lucas_block_digit_canonical_digit_table_row_step bcf_right_lucas_block_digit_canonical_digit_table_row_step. bcf_index_lucas_block_digit_canonical_digit_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_digit_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_digit_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_digit_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_digit_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_digit_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_digit_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_digit_table = bcf_quotient_lucas_block_digit_canonical_digit_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_digit_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_digit_table) + (bcf_left_lucas_block_digit_canonical_digit_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_digit_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_digit_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_digit_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_digit_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_digit_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_digit_table = bcf_quotient_lucas_block_digit_canonical_digit_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_digit_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_digit_table) + (bcf_right_lucas_block_digit_canonical_digit_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_digit_table_row_step = bcf_left_lucas_block_digit_canonical_digit_table_row_step + bcf_right_lucas_block_digit_canonical_digit_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_digit_decoded_row_code. bcf_height_lucas_block_digit_canonical_digit_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_digit) = S ((S (d)) * bcf_row_code_scale_lucas_block_digit_canonical_digit)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_digit = bcf_quotient_lucas_block_digit_canonical_digit_decoded_row_code * S ((S (d)) * bcf_row_code_scale_lucas_block_digit_canonical_digit) + (bcf_row_code_lucas_block_digit_canonical_digit))) /\ ((((exists bcf_height_lucas_block_digit_canonical_digit_decoded_row_scale. bcf_height_lucas_block_digit_canonical_digit_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_digit) = S ((S (d)) * bcf_row_scale_scale_lucas_block_digit_canonical_digit)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_digit = bcf_quotient_lucas_block_digit_canonical_digit_decoded_row_scale * S ((S (d)) * bcf_row_scale_scale_lucas_block_digit_canonical_digit) + (bcf_row_scale_lucas_block_digit_canonical_digit))) /\ (((exists bcf_height_lucas_block_digit_canonical_digit_decoded_value. bcf_height_lucas_block_digit_canonical_digit_decoded_value + S (B) = S ((S (e)) * bcf_row_scale_lucas_block_digit_canonical_digit)) /\ exists bcf_quotient_lucas_block_digit_canonical_digit_decoded_value. bcf_row_code_lucas_block_digit_canonical_digit = bcf_quotient_lucas_block_digit_canonical_digit_decoded_value * S ((S (e)) * bcf_row_scale_lucas_block_digit_canonical_digit) + (B))))))))) -> (exists lbd_left_canonical_result lbd_right_canonical_result. (C) + (p) * lbd_left_canonical_result = (A * B) + (p) * lbd_right_canonical_result)Proof neighborhood
Direct theorem prerequisites
LU000O lucas_choose_lower_eq_transport LU0010 lucas_prime_block_zero_reassociation LU0014 lucas_low_digit_product_congruence LU000L lucas_zero_upper_quotient_high_column_vanishes LU000Q lucas_choose_zero_upper_positive_is_zero mul_zero_left · Stable closed mod_eq_refl · Stable closed nonzero_is_succ · Stable closed choose_upper_eq_transport · Alpha closed LU0011 lucas_prime_block_successor_reassociation choose_exists · Alpha closed LU000Z lucas_prime_shift_high_column choose_succ_succ · Alpha closed add_comm · Stable closed mod_eq_add · Stable closed add_mul · Stable closed mod_eq_trans · Stable closedDirect 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
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (7)
01Fix variables and assumptionsL1–1
Work with arbitrary variables or the premises of the current implication.
- L1
intro p
02Induction on qL2–11
03Fix variables and assumptionsL12–14
04Establish hcaseL15–18
05Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hcase
06Establish hindexL20–22
07Establish hnormalizedL23–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.
- L23
have hnormalized : Choose(p · 0 + d,e,C)Definitions: Choose(p · 0 + d,e,C)Original native command in the exact edition - L24
specialize lucas_choose_lower_eq_transport (p * 0 + d) - L25
specialize lucas_choose_lower_eq_transport (p * r + e) - L26
specialize lucas_choose_lower_eq_transport e - L27
specialize lucas_choose_lower_eq_transport C - L28
apply lucas_choose_lower_eq_transport - L29
exact hindex - L30
exact hwhole
08Establish hquotient_zeroL31–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.
- L31
have hquotient_zero : Choose(0,0,A)Definitions: Choose(0,0,A)Original native command in the exact edition - L32
specialize lucas_choose_lower_eq_transport 0 - L33
specialize lucas_choose_lower_eq_transport r - L34
specialize lucas_choose_lower_eq_transport 0 - L35
specialize lucas_choose_lower_eq_transport A - L36
apply lucas_choose_lower_eq_transport - L37
exact hcase_left - L38
exact hquotient - L39
specialize lucas_low_digit_product_congruence p - L40
specialize lucas_low_digit_product_congruence 0
09Use earlier factsL41–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
specialize lucas_low_digit_product_congruence d - L42
specialize lucas_low_digit_product_congruence e - L43
specialize lucas_low_digit_product_congruence C - L44
specialize lucas_low_digit_product_congruence A - L45
specialize lucas_low_digit_product_congruence B - L46
apply lucas_low_digit_product_congruence - L47
exact hprime - L48
exact hdigit - L49
exact he_digit - L50
exact hnormalized
10Use earlier factsL51–52
11Establish hwhole_zeroL53–62
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas zero upper quotient high column vanishes.
- L53
have hwhole_zero : C = 0 - L54
specialize lucas_zero_upper_quotient_high_column_vanishes p - L55
specialize lucas_zero_upper_quotient_high_column_vanishes r - L56
specialize lucas_zero_upper_quotient_high_column_vanishes d - L57
specialize lucas_zero_upper_quotient_high_column_vanishes e - L58
specialize lucas_zero_upper_quotient_high_column_vanishes C - L59
apply lucas_zero_upper_quotient_high_column_vanishes - L60
exact hdigit - L61
exact hcase_right - L62
exact hwhole
12Establish hquotient_zeroL63–72
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.
- L63
have hquotient_zero : A = 0 - L64
specialize lucas_choose_zero_upper_positive_is_zero r - L65
specialize lucas_choose_zero_upper_positive_is_zero A - L66
apply lucas_choose_zero_upper_positive_is_zero - L67
exact hcase_right - L68
exact hquotient - L69
rewrite hwhole_zero - L70
rewrite hquotient_zero - L71
specialize mul_zero_left B - L72
rewrite mul_zero_left
13Use earlier factsL73–73
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L73
apply mod_eq_refl
14Fix variables and assumptionsL74–83
15Fix variables and assumptionsL84–85
16Establish hcaseL86–89
17Separate the logical casesL90–90
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L90
cases hcase
18Establish hindexL91–93
19Establish hnormalizedL94–101
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.
- L94
have hnormalized : Choose(p · S q + d,e,C)Definitions: Choose(p · S q + d,e,C)Original native command in the exact edition - L95
specialize lucas_choose_lower_eq_transport (p * S q + d) - L96
specialize lucas_choose_lower_eq_transport (p * r + e) - L97
specialize lucas_choose_lower_eq_transport e - L98
specialize lucas_choose_lower_eq_transport C - L99
apply lucas_choose_lower_eq_transport - L100
exact hindex - L101
exact hwhole
20Establish hquotient_zeroL102–111
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.
- L102
have hquotient_zero : Choose(S q,0,A)Definitions: Choose(S q,0,A)Original native command in the exact edition - L103
specialize lucas_choose_lower_eq_transport (S q) - L104
specialize lucas_choose_lower_eq_transport r - L105
specialize lucas_choose_lower_eq_transport 0 - L106
specialize lucas_choose_lower_eq_transport A - L107
apply lucas_choose_lower_eq_transport - L108
exact hcase_left - L109
exact hquotient - L110
specialize lucas_low_digit_product_congruence p - L111
specialize lucas_low_digit_product_congruence (S q)
21Use earlier factsL112–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L112
specialize lucas_low_digit_product_congruence d - L113
specialize lucas_low_digit_product_congruence e - L114
specialize lucas_low_digit_product_congruence C - L115
specialize lucas_low_digit_product_congruence A - L116
specialize lucas_low_digit_product_congruence B - L117
apply lucas_low_digit_product_congruence - L118
exact hprime - L119
exact hdigit - L120
exact he_digit - L121
exact hnormalized
22Use earlier factsL122–123
23Establish hsuccessorL124–127
24Separate the logical casesL128–128
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L128
cases hsuccessor
25Establish hupper_normalL129–136
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose upper eq transport.
- L129
have hupper_normal : Choose(p + (p · q + d),p · r + e,C)Definitions: Choose(p + (p · q + d),p · r + e,C)Original native command in the exact edition - L130
specialize choose_upper_eq_transport (p * S q + d) - L131
specialize choose_upper_eq_transport (p + (p * q + d)) - L132
specialize choose_upper_eq_transport (p * r + e) - L133
specialize choose_upper_eq_transport C - L134
apply choose_upper_eq_transport - L135
apply lucas_prime_block_successor_reassociation - L136
exact hwhole
26Establish hindexL137–139
27Establish hnormalL140–147
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.
- L140
have hnormal : Choose(p + (p · q + d),p + (p · x + e),C)Definitions: Choose(p + (p · q + d),p + (p · x + e),C)Original native command in the exact edition - L141
specialize lucas_choose_lower_eq_transport (p + (p * q + d)) - L142
specialize lucas_choose_lower_eq_transport (p * r + e) - L143
specialize lucas_choose_lower_eq_transport (p + (p * x + e)) - L144
specialize lucas_choose_lower_eq_transport C - L145
apply lucas_choose_lower_eq_transport - L146
exact hindex - L147
exact hupper_normal
28Establish hleftL148–149
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.
- L148
have hleft : ∃ A. Choose(p · q + d,p + (p · x + e),A)Definitions: Choose(p · q + d,p + (p · x + e),A)Original native command in the exact edition - L149
apply choose_exists
29Separate the logical casesL150–150
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L150
cases hleft
30Establish hrightL151–152
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.
- L151
have hright : ∃ A. Choose(p · q + d,p · x + e,A)Definitions: Choose(p · q + d,p · x + e,A)Original native command in the exact edition - L152
apply choose_exists
31Separate the logical casesL153–153
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L153
cases hright
32Establish hleft_quotientL154–155
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.
- L154
have hleft_quotient : ∃ A. Choose(q,S x,A)Definitions: Choose(q,S x,A)Original native command in the exact edition - L155
apply choose_exists
33Separate the logical casesL156–156
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L156
cases hleft_quotient
34Establish hright_quotientL157–158
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose exists.
- L157
have hright_quotient : ∃ A. Choose(q,x,A)Definitions: Choose(q,x,A)Original native command in the exact edition - L158
apply choose_exists
35Separate the logical casesL159–159
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L159
cases hright_quotient
36Establish hshiftL160–169
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas prime shift high column.
- L160
have hshift : ModEq(p,C,x1 + x2)Definitions: ModEq(p,C,x1 + x2)Original native command in the exact edition - L161
specialize lucas_prime_shift_high_column p - L162
specialize lucas_prime_shift_high_column (p * q + d) - L163
specialize lucas_prime_shift_high_column (p * x + e) - L164
specialize lucas_prime_shift_high_column C - L165
specialize lucas_prime_shift_high_column x1 - L166
specialize lucas_prime_shift_high_column x2 - L167
apply lucas_prime_shift_high_column - L168
exact hprime - L169
exact hnormal
37Use earlier factsL170–171
38Establish hleft_normalL172–180
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.
- L172
have hleft_normal : Choose(p · q + d,p · S x + e,x1)Definitions: Choose(p · q + d,p · S x + e,x1)Original native command in the exact edition - L173
specialize lucas_choose_lower_eq_transport (p * q + d) - L174
specialize lucas_choose_lower_eq_transport (p + (p * x + e)) - L175
specialize lucas_choose_lower_eq_transport (p * S x + e) - L176
specialize lucas_choose_lower_eq_transport x1 - L177
apply lucas_choose_lower_eq_transport - L178
symm - L179
apply lucas_prime_block_successor_reassociation - L180
exact hleft_witness
39Establish hleft_modL181–190
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
40Use earlier factsL191–194
41Establish hright_modL195–204
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
42Use earlier factsL205–208
43Establish hsum_modL209–217
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq add.
- L209
have hsum_mod : ModEq(p,x1 + x2,x3 · B + x4 · B)Definitions: ModEq(p,x1 + x2,x3 · B + x4 · B)Original native command in the exact edition - L210
specialize mod_eq_add p - L211
specialize mod_eq_add x1 - L212
specialize mod_eq_add (x3 * B) - L213
specialize mod_eq_add x2 - L214
specialize mod_eq_add (x4 * B) - L215
apply mod_eq_add - L216
exact hleft_mod - L217
exact hright_mod
44Establish hquotient_normalL218–225
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas choose lower eq transport.
- L218
have hquotient_normal : Choose(S q,S x,A)Definitions: Choose(S q,S x,A)Original native command in the exact edition - L219
specialize lucas_choose_lower_eq_transport (S q) - L220
specialize lucas_choose_lower_eq_transport r - L221
specialize lucas_choose_lower_eq_transport (S x) - L222
specialize lucas_choose_lower_eq_transport A - L223
apply lucas_choose_lower_eq_transport - L224
exact hsuccessor_witness - L225
exact hquotient
45Establish hpascalL226–235
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose succ succ.
- L226
have hpascal : A = x4 + x3 - L227
specialize choose_succ_succ q - L228
specialize choose_succ_succ x - L229
specialize choose_succ_succ x4 - L230
specialize choose_succ_succ x3 - L231
specialize choose_succ_succ A - L232
apply choose_succ_succ - L233
exact hright_quotient_witness - L234
exact hleft_quotient_witness - L235
exact hquotient_normal
46Establish hsumL236–240
47Establish hfactorizedL241–250
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add mul.
Original defined command ledger · 255 lines
- 0001
intro p - 0002
induction q - 0003
intro r - 0004
intro d - 0005
intro e - 0006
intro C - 0007
intro A - 0008
intro B - 0009
intro hprime - 0010
intro hdigit - 0011
intro he_digit - 0012
intro hwhole - 0013
intro hquotient - 0014
intro hfactor - 0015
have hcase : r = 0 \/ ~(r = 0) - 0016
specialize eq_decidable r - 0017
specialize eq_decidable 0 - 0018
exact eq_decidable - 0019
cases hcase - 0020
have hindex : p * r + e = e - 0021
rewrite hcase_left - 0022
apply lucas_prime_block_zero_reassociation - 0023
have hnormalized : Choose(p · 0 + d,e,C)Exact native replay line
have hnormalized : ((exists bcf_lt_gap_lucas_block_digit_canonical_base_low_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_base_low_out_of_range + S (p * 0 + d) = e) /\ C = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_base_low_in_range. bcf_le_gap_lucas_block_digit_canonical_base_low_in_range + (e) = p * 0 + d) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_base_low bcf_row_code_scale_lucas_block_digit_canonical_base_low bcf_row_scale_code_lucas_block_digit_canonical_base_low bcf_row_scale_scale_lucas_block_digit_canonical_base_low bcf_row_code_lucas_block_digit_canonical_base_low bcf_row_scale_lucas_block_digit_canonical_base_low. ((forall bcf_row_index_lucas_block_digit_canonical_base_low_table. (exists bcf_lt_gap_lucas_block_digit_canonical_base_low_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_base_low_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_base_low_table) = S (p * 0 + d)) -> exists bcf_row_code_lucas_block_digit_canonical_base_low_table bcf_row_scale_lucas_block_digit_canonical_base_low_table. ((((exists bcf_height_lucas_block_digit_canonical_base_low_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_base_low_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_base_low_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_base_low_table)) * bcf_row_code_scale_lucas_block_digit_canonical_base_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_base_low = bcf_quotient_lucas_block_digit_canonical_base_low_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_base_low_table)) * bcf_row_code_scale_lucas_block_digit_canonical_base_low) + (bcf_row_code_lucas_block_digit_canonical_base_low_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_low_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_base_low_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_base_low_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_base_low_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_base_low = bcf_quotient_lucas_block_digit_canonical_base_low_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_base_low_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_low) + (bcf_row_scale_lucas_block_digit_canonical_base_low_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_base_low_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_base_low_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_base_low_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_base_low_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_base_low_table_zero_row) = S (p * 0 + d)) -> exists bcf_value_lucas_block_digit_canonical_base_low_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_base_low_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_base_low_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_base_low_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_base_low_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_base_low_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_base_low_table = bcf_quotient_lucas_block_digit_canonical_base_low_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_base_low_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_base_low_table) + (bcf_value_lucas_block_digit_canonical_base_low_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_base_low_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_base_low_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_base_low_table_zero_row. bcf_index_lucas_block_digit_canonical_base_low_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_base_low_table_zero_row /\ bcf_value_lucas_block_digit_canonical_base_low_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_base_low_table bcf_previous_code_lucas_block_digit_canonical_base_low_table bcf_previous_scale_lucas_block_digit_canonical_base_low_table. bcf_row_index_lucas_block_digit_canonical_base_low_table = S bcf_predecessor_lucas_block_digit_canonical_base_low_table /\ ((((exists bcf_height_lucas_block_digit_canonical_base_low_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_base_low_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_base_low_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_base_low_table)) * bcf_row_code_scale_lucas_block_digit_canonical_base_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_base_low = bcf_quotient_lucas_block_digit_canonical_base_low_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_base_low_table)) * bcf_row_code_scale_lucas_block_digit_canonical_base_low) + (bcf_previous_code_lucas_block_digit_canonical_base_low_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_low_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_base_low_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_base_low_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_base_low_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_base_low = bcf_quotient_lucas_block_digit_canonical_base_low_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_base_low_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_low) + (bcf_previous_scale_lucas_block_digit_canonical_base_low_table))) /\ (forall bcf_index_lucas_block_digit_canonical_base_low_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_base_low_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_base_low_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_base_low_table_row_step) = S (p * 0 + d)) -> exists bcf_value_lucas_block_digit_canonical_base_low_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_base_low_table_row_step_entry. bcf_height_lucas_block_digit_canonical_base_low_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_base_low_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_base_low_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_base_low_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_base_low_table = bcf_quotient_lucas_block_digit_canonical_base_low_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_base_low_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_base_low_table) + (bcf_value_lucas_block_digit_canonical_base_low_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_base_low_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_base_low_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_base_low_table_row_step bcf_left_lucas_block_digit_canonical_base_low_table_row_step bcf_right_lucas_block_digit_canonical_base_low_table_row_step. bcf_index_lucas_block_digit_canonical_base_low_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_base_low_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_base_low_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_base_low_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_base_low_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_base_low_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_base_low_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_base_low_table = bcf_quotient_lucas_block_digit_canonical_base_low_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_base_low_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_base_low_table) + (bcf_left_lucas_block_digit_canonical_base_low_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_low_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_base_low_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_base_low_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_base_low_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_base_low_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_base_low_table = bcf_quotient_lucas_block_digit_canonical_base_low_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_base_low_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_base_low_table) + (bcf_right_lucas_block_digit_canonical_base_low_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_base_low_table_row_step = bcf_left_lucas_block_digit_canonical_base_low_table_row_step + bcf_right_lucas_block_digit_canonical_base_low_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_low_decoded_row_code. bcf_height_lucas_block_digit_canonical_base_low_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_base_low) = S ((S (p * 0 + d)) * bcf_row_code_scale_lucas_block_digit_canonical_base_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_base_low = bcf_quotient_lucas_block_digit_canonical_base_low_decoded_row_code * S ((S (p * 0 + d)) * bcf_row_code_scale_lucas_block_digit_canonical_base_low) + (bcf_row_code_lucas_block_digit_canonical_base_low))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_low_decoded_row_scale. bcf_height_lucas_block_digit_canonical_base_low_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_base_low) = S ((S (p * 0 + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_base_low = bcf_quotient_lucas_block_digit_canonical_base_low_decoded_row_scale * S ((S (p * 0 + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_low) + (bcf_row_scale_lucas_block_digit_canonical_base_low))) /\ (((exists bcf_height_lucas_block_digit_canonical_base_low_decoded_value. bcf_height_lucas_block_digit_canonical_base_low_decoded_value + S (C) = S ((S (e)) * bcf_row_scale_lucas_block_digit_canonical_base_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_low_decoded_value. bcf_row_code_lucas_block_digit_canonical_base_low = bcf_quotient_lucas_block_digit_canonical_base_low_decoded_value * S ((S (e)) * bcf_row_scale_lucas_block_digit_canonical_base_low) + (C)))))))) - 0024
specialize lucas_choose_lower_eq_transport (p * 0 + d) - 0025
specialize lucas_choose_lower_eq_transport (p * r + e) - 0026
specialize lucas_choose_lower_eq_transport e - 0027
specialize lucas_choose_lower_eq_transport C - 0028
apply lucas_choose_lower_eq_transport - 0029
exact hindex - 0030
exact hwhole - 0031
have hquotient_zero : Choose(0,0,A)Exact native replay line
have hquotient_zero : ((exists bcf_lt_gap_lucas_block_digit_canonical_base_quotient_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_base_quotient_out_of_range + S (0) = 0) /\ A = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_base_quotient_in_range. bcf_le_gap_lucas_block_digit_canonical_base_quotient_in_range + (0) = 0) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_base_quotient bcf_row_code_scale_lucas_block_digit_canonical_base_quotient bcf_row_scale_code_lucas_block_digit_canonical_base_quotient bcf_row_scale_scale_lucas_block_digit_canonical_base_quotient bcf_row_code_lucas_block_digit_canonical_base_quotient bcf_row_scale_lucas_block_digit_canonical_base_quotient. ((forall bcf_row_index_lucas_block_digit_canonical_base_quotient_table. (exists bcf_lt_gap_lucas_block_digit_canonical_base_quotient_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_base_quotient_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_base_quotient_table) = S (0)) -> exists bcf_row_code_lucas_block_digit_canonical_base_quotient_table bcf_row_scale_lucas_block_digit_canonical_base_quotient_table. ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_base_quotient_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_base_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_base_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_base_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_base_quotient = bcf_quotient_lucas_block_digit_canonical_base_quotient_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_base_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_base_quotient) + (bcf_row_code_lucas_block_digit_canonical_base_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_base_quotient_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_base_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_base_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_base_quotient = bcf_quotient_lucas_block_digit_canonical_base_quotient_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_base_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_quotient) + (bcf_row_scale_lucas_block_digit_canonical_base_quotient_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_base_quotient_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_base_quotient_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_base_quotient_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_base_quotient_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_base_quotient_table_zero_row) = S (0)) -> exists bcf_value_lucas_block_digit_canonical_base_quotient_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_base_quotient_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_base_quotient_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_base_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_base_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_base_quotient_table = bcf_quotient_lucas_block_digit_canonical_base_quotient_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_base_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_base_quotient_table) + (bcf_value_lucas_block_digit_canonical_base_quotient_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_base_quotient_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_base_quotient_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_base_quotient_table_zero_row. bcf_index_lucas_block_digit_canonical_base_quotient_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_base_quotient_table_zero_row /\ bcf_value_lucas_block_digit_canonical_base_quotient_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_base_quotient_table bcf_previous_code_lucas_block_digit_canonical_base_quotient_table bcf_previous_scale_lucas_block_digit_canonical_base_quotient_table. bcf_row_index_lucas_block_digit_canonical_base_quotient_table = S bcf_predecessor_lucas_block_digit_canonical_base_quotient_table /\ ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_base_quotient_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_base_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_base_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_base_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_base_quotient = bcf_quotient_lucas_block_digit_canonical_base_quotient_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_base_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_base_quotient) + (bcf_previous_code_lucas_block_digit_canonical_base_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_base_quotient_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_base_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_base_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_base_quotient = bcf_quotient_lucas_block_digit_canonical_base_quotient_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_base_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_quotient) + (bcf_previous_scale_lucas_block_digit_canonical_base_quotient_table))) /\ (forall bcf_index_lucas_block_digit_canonical_base_quotient_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_base_quotient_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_base_quotient_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_base_quotient_table_row_step) = S (0)) -> exists bcf_value_lucas_block_digit_canonical_base_quotient_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_table_row_step_entry. bcf_height_lucas_block_digit_canonical_base_quotient_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_base_quotient_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_base_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_base_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_base_quotient_table = bcf_quotient_lucas_block_digit_canonical_base_quotient_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_base_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_base_quotient_table) + (bcf_value_lucas_block_digit_canonical_base_quotient_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_base_quotient_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_base_quotient_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_base_quotient_table_row_step bcf_left_lucas_block_digit_canonical_base_quotient_table_row_step bcf_right_lucas_block_digit_canonical_base_quotient_table_row_step. bcf_index_lucas_block_digit_canonical_base_quotient_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_base_quotient_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_base_quotient_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_base_quotient_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_base_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_base_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_base_quotient_table = bcf_quotient_lucas_block_digit_canonical_base_quotient_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_base_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_base_quotient_table) + (bcf_left_lucas_block_digit_canonical_base_quotient_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_base_quotient_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_base_quotient_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_base_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_base_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_base_quotient_table = bcf_quotient_lucas_block_digit_canonical_base_quotient_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_base_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_base_quotient_table) + (bcf_right_lucas_block_digit_canonical_base_quotient_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_base_quotient_table_row_step = bcf_left_lucas_block_digit_canonical_base_quotient_table_row_step + bcf_right_lucas_block_digit_canonical_base_quotient_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_decoded_row_code. bcf_height_lucas_block_digit_canonical_base_quotient_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_base_quotient) = S ((S (0)) * bcf_row_code_scale_lucas_block_digit_canonical_base_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_base_quotient = bcf_quotient_lucas_block_digit_canonical_base_quotient_decoded_row_code * S ((S (0)) * bcf_row_code_scale_lucas_block_digit_canonical_base_quotient) + (bcf_row_code_lucas_block_digit_canonical_base_quotient))) /\ ((((exists bcf_height_lucas_block_digit_canonical_base_quotient_decoded_row_scale. bcf_height_lucas_block_digit_canonical_base_quotient_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_base_quotient) = S ((S (0)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_base_quotient = bcf_quotient_lucas_block_digit_canonical_base_quotient_decoded_row_scale * S ((S (0)) * bcf_row_scale_scale_lucas_block_digit_canonical_base_quotient) + (bcf_row_scale_lucas_block_digit_canonical_base_quotient))) /\ (((exists bcf_height_lucas_block_digit_canonical_base_quotient_decoded_value. bcf_height_lucas_block_digit_canonical_base_quotient_decoded_value + S (A) = S ((S (0)) * bcf_row_scale_lucas_block_digit_canonical_base_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_base_quotient_decoded_value. bcf_row_code_lucas_block_digit_canonical_base_quotient = bcf_quotient_lucas_block_digit_canonical_base_quotient_decoded_value * S ((S (0)) * bcf_row_scale_lucas_block_digit_canonical_base_quotient) + (A)))))))) - 0032
specialize lucas_choose_lower_eq_transport 0 - 0033
specialize lucas_choose_lower_eq_transport r - 0034
specialize lucas_choose_lower_eq_transport 0 - 0035
specialize lucas_choose_lower_eq_transport A - 0036
apply lucas_choose_lower_eq_transport - 0037
exact hcase_left - 0038
exact hquotient - 0039
specialize lucas_low_digit_product_congruence p - 0040
specialize lucas_low_digit_product_congruence 0 - 0041
specialize lucas_low_digit_product_congruence d - 0042
specialize lucas_low_digit_product_congruence e - 0043
specialize lucas_low_digit_product_congruence C - 0044
specialize lucas_low_digit_product_congruence A - 0045
specialize lucas_low_digit_product_congruence B - 0046
apply lucas_low_digit_product_congruence - 0047
exact hprime - 0048
exact hdigit - 0049
exact he_digit - 0050
exact hnormalized - 0051
exact hquotient_zero - 0052
exact hfactor - 0053
have hwhole_zero : C = 0 - 0054
specialize lucas_zero_upper_quotient_high_column_vanishes p - 0055
specialize lucas_zero_upper_quotient_high_column_vanishes r - 0056
specialize lucas_zero_upper_quotient_high_column_vanishes d - 0057
specialize lucas_zero_upper_quotient_high_column_vanishes e - 0058
specialize lucas_zero_upper_quotient_high_column_vanishes C - 0059
apply lucas_zero_upper_quotient_high_column_vanishes - 0060
exact hdigit - 0061
exact hcase_right - 0062
exact hwhole - 0063
have hquotient_zero : A = 0 - 0064
specialize lucas_choose_zero_upper_positive_is_zero r - 0065
specialize lucas_choose_zero_upper_positive_is_zero A - 0066
apply lucas_choose_zero_upper_positive_is_zero - 0067
exact hcase_right - 0068
exact hquotient - 0069
rewrite hwhole_zero - 0070
rewrite hquotient_zero - 0071
specialize mul_zero_left B - 0072
rewrite mul_zero_left - 0073
apply mod_eq_refl - 0074
intro r - 0075
intro d - 0076
intro e - 0077
intro C - 0078
intro A - 0079
intro B - 0080
intro hprime - 0081
intro hdigit - 0082
intro he_digit - 0083
intro hwhole - 0084
intro hquotient - 0085
intro hfactor - 0086
have hcase : r = 0 \/ ~(r = 0) - 0087
specialize eq_decidable r - 0088
specialize eq_decidable 0 - 0089
exact eq_decidable - 0090
cases hcase - 0091
have hindex : p * r + e = e - 0092
rewrite hcase_left - 0093
apply lucas_prime_block_zero_reassociation - 0094
have hnormalized : Choose(p · S q + d,e,C)Exact native replay line
have hnormalized : ((exists bcf_lt_gap_lucas_block_digit_canonical_successor_low_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_successor_low_out_of_range + S (p * S q + d) = e) /\ C = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_successor_low_in_range. bcf_le_gap_lucas_block_digit_canonical_successor_low_in_range + (e) = p * S q + d) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_successor_low bcf_row_code_scale_lucas_block_digit_canonical_successor_low bcf_row_scale_code_lucas_block_digit_canonical_successor_low bcf_row_scale_scale_lucas_block_digit_canonical_successor_low bcf_row_code_lucas_block_digit_canonical_successor_low bcf_row_scale_lucas_block_digit_canonical_successor_low. ((forall bcf_row_index_lucas_block_digit_canonical_successor_low_table. (exists bcf_lt_gap_lucas_block_digit_canonical_successor_low_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_successor_low_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_successor_low_table) = S (p * S q + d)) -> exists bcf_row_code_lucas_block_digit_canonical_successor_low_table bcf_row_scale_lucas_block_digit_canonical_successor_low_table. ((((exists bcf_height_lucas_block_digit_canonical_successor_low_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_successor_low_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_successor_low_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_successor_low_table)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_successor_low = bcf_quotient_lucas_block_digit_canonical_successor_low_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_successor_low_table)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_low) + (bcf_row_code_lucas_block_digit_canonical_successor_low_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_low_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_successor_low_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_successor_low_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_successor_low_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_successor_low = bcf_quotient_lucas_block_digit_canonical_successor_low_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_successor_low_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_low) + (bcf_row_scale_lucas_block_digit_canonical_successor_low_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_successor_low_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_successor_low_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_successor_low_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_successor_low_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_successor_low_table_zero_row) = S (p * S q + d)) -> exists bcf_value_lucas_block_digit_canonical_successor_low_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_successor_low_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_successor_low_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_successor_low_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_successor_low_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_successor_low_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_successor_low_table = bcf_quotient_lucas_block_digit_canonical_successor_low_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_successor_low_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_successor_low_table) + (bcf_value_lucas_block_digit_canonical_successor_low_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_successor_low_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_successor_low_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_successor_low_table_zero_row. bcf_index_lucas_block_digit_canonical_successor_low_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_successor_low_table_zero_row /\ bcf_value_lucas_block_digit_canonical_successor_low_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_successor_low_table bcf_previous_code_lucas_block_digit_canonical_successor_low_table bcf_previous_scale_lucas_block_digit_canonical_successor_low_table. bcf_row_index_lucas_block_digit_canonical_successor_low_table = S bcf_predecessor_lucas_block_digit_canonical_successor_low_table /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_low_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_successor_low_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_successor_low_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_low_table)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_successor_low = bcf_quotient_lucas_block_digit_canonical_successor_low_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_low_table)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_low) + (bcf_previous_code_lucas_block_digit_canonical_successor_low_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_low_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_successor_low_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_successor_low_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_low_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_successor_low = bcf_quotient_lucas_block_digit_canonical_successor_low_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_low_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_low) + (bcf_previous_scale_lucas_block_digit_canonical_successor_low_table))) /\ (forall bcf_index_lucas_block_digit_canonical_successor_low_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_successor_low_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_successor_low_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_successor_low_table_row_step) = S (p * S q + d)) -> exists bcf_value_lucas_block_digit_canonical_successor_low_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_successor_low_table_row_step_entry. bcf_height_lucas_block_digit_canonical_successor_low_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_successor_low_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_successor_low_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_successor_low_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_successor_low_table = bcf_quotient_lucas_block_digit_canonical_successor_low_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_successor_low_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_successor_low_table) + (bcf_value_lucas_block_digit_canonical_successor_low_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_successor_low_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_successor_low_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_successor_low_table_row_step bcf_left_lucas_block_digit_canonical_successor_low_table_row_step bcf_right_lucas_block_digit_canonical_successor_low_table_row_step. bcf_index_lucas_block_digit_canonical_successor_low_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_successor_low_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_low_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_successor_low_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_successor_low_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_low_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_successor_low_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_successor_low_table = bcf_quotient_lucas_block_digit_canonical_successor_low_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_low_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_successor_low_table) + (bcf_left_lucas_block_digit_canonical_successor_low_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_low_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_successor_low_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_successor_low_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_successor_low_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_successor_low_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_successor_low_table = bcf_quotient_lucas_block_digit_canonical_successor_low_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_successor_low_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_successor_low_table) + (bcf_right_lucas_block_digit_canonical_successor_low_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_successor_low_table_row_step = bcf_left_lucas_block_digit_canonical_successor_low_table_row_step + bcf_right_lucas_block_digit_canonical_successor_low_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_low_decoded_row_code. bcf_height_lucas_block_digit_canonical_successor_low_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_successor_low) = S ((S (p * S q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_successor_low = bcf_quotient_lucas_block_digit_canonical_successor_low_decoded_row_code * S ((S (p * S q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_low) + (bcf_row_code_lucas_block_digit_canonical_successor_low))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_low_decoded_row_scale. bcf_height_lucas_block_digit_canonical_successor_low_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_successor_low) = S ((S (p * S q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_successor_low = bcf_quotient_lucas_block_digit_canonical_successor_low_decoded_row_scale * S ((S (p * S q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_low) + (bcf_row_scale_lucas_block_digit_canonical_successor_low))) /\ (((exists bcf_height_lucas_block_digit_canonical_successor_low_decoded_value. bcf_height_lucas_block_digit_canonical_successor_low_decoded_value + S (C) = S ((S (e)) * bcf_row_scale_lucas_block_digit_canonical_successor_low)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_low_decoded_value. bcf_row_code_lucas_block_digit_canonical_successor_low = bcf_quotient_lucas_block_digit_canonical_successor_low_decoded_value * S ((S (e)) * bcf_row_scale_lucas_block_digit_canonical_successor_low) + (C)))))))) - 0095
specialize lucas_choose_lower_eq_transport (p * S q + d) - 0096
specialize lucas_choose_lower_eq_transport (p * r + e) - 0097
specialize lucas_choose_lower_eq_transport e - 0098
specialize lucas_choose_lower_eq_transport C - 0099
apply lucas_choose_lower_eq_transport - 0100
exact hindex - 0101
exact hwhole - 0102
have hquotient_zero : Choose(S q,0,A)Exact native replay line
have hquotient_zero : ((exists bcf_lt_gap_lucas_block_digit_canonical_successor_zero_quotient_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_successor_zero_quotient_out_of_range + S (S q) = 0) /\ A = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_successor_zero_quotient_in_range. bcf_le_gap_lucas_block_digit_canonical_successor_zero_quotient_in_range + (0) = S q) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_successor_zero_quotient bcf_row_code_scale_lucas_block_digit_canonical_successor_zero_quotient bcf_row_scale_code_lucas_block_digit_canonical_successor_zero_quotient bcf_row_scale_scale_lucas_block_digit_canonical_successor_zero_quotient bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient. ((forall bcf_row_index_lucas_block_digit_canonical_successor_zero_quotient_table. (exists bcf_lt_gap_lucas_block_digit_canonical_successor_zero_quotient_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_successor_zero_quotient_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_successor_zero_quotient_table) = S (S q)) -> exists bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient_table bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient_table. ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_successor_zero_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_zero_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_successor_zero_quotient = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_successor_zero_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_zero_quotient) + (bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_successor_zero_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_zero_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_successor_zero_quotient = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_successor_zero_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_zero_quotient) + (bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_successor_zero_quotient_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row) = S (S q)) -> exists bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient_table = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient_table) + (bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row. bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row /\ bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table bcf_previous_code_lucas_block_digit_canonical_successor_zero_quotient_table bcf_previous_scale_lucas_block_digit_canonical_successor_zero_quotient_table. bcf_row_index_lucas_block_digit_canonical_successor_zero_quotient_table = S bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_successor_zero_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_zero_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_successor_zero_quotient = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_zero_quotient) + (bcf_previous_code_lucas_block_digit_canonical_successor_zero_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_successor_zero_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_zero_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_successor_zero_quotient = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_zero_quotient) + (bcf_previous_scale_lucas_block_digit_canonical_successor_zero_quotient_table))) /\ (forall bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_row_step) = S (S q)) -> exists bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_entry. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient_table = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient_table) + (bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table_row_step bcf_left_lucas_block_digit_canonical_successor_zero_quotient_table_row_step bcf_right_lucas_block_digit_canonical_successor_zero_quotient_table_row_step. bcf_index_lucas_block_digit_canonical_successor_zero_quotient_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_successor_zero_quotient_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_successor_zero_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_successor_zero_quotient_table = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_successor_zero_quotient_table) + (bcf_left_lucas_block_digit_canonical_successor_zero_quotient_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_successor_zero_quotient_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_successor_zero_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_successor_zero_quotient_table = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_successor_zero_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_successor_zero_quotient_table) + (bcf_right_lucas_block_digit_canonical_successor_zero_quotient_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_successor_zero_quotient_table_row_step = bcf_left_lucas_block_digit_canonical_successor_zero_quotient_table_row_step + bcf_right_lucas_block_digit_canonical_successor_zero_quotient_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_decoded_row_code. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient) = S ((S (S q)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_zero_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_successor_zero_quotient = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_decoded_row_code * S ((S (S q)) * bcf_row_code_scale_lucas_block_digit_canonical_successor_zero_quotient) + (bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient))) /\ ((((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_decoded_row_scale. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient) = S ((S (S q)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_zero_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_successor_zero_quotient = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_decoded_row_scale * S ((S (S q)) * bcf_row_scale_scale_lucas_block_digit_canonical_successor_zero_quotient) + (bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient))) /\ (((exists bcf_height_lucas_block_digit_canonical_successor_zero_quotient_decoded_value. bcf_height_lucas_block_digit_canonical_successor_zero_quotient_decoded_value + S (A) = S ((S (0)) * bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_decoded_value. bcf_row_code_lucas_block_digit_canonical_successor_zero_quotient = bcf_quotient_lucas_block_digit_canonical_successor_zero_quotient_decoded_value * S ((S (0)) * bcf_row_scale_lucas_block_digit_canonical_successor_zero_quotient) + (A)))))))) - 0103
specialize lucas_choose_lower_eq_transport (S q) - 0104
specialize lucas_choose_lower_eq_transport r - 0105
specialize lucas_choose_lower_eq_transport 0 - 0106
specialize lucas_choose_lower_eq_transport A - 0107
apply lucas_choose_lower_eq_transport - 0108
exact hcase_left - 0109
exact hquotient - 0110
specialize lucas_low_digit_product_congruence p - 0111
specialize lucas_low_digit_product_congruence (S q) - 0112
specialize lucas_low_digit_product_congruence d - 0113
specialize lucas_low_digit_product_congruence e - 0114
specialize lucas_low_digit_product_congruence C - 0115
specialize lucas_low_digit_product_congruence A - 0116
specialize lucas_low_digit_product_congruence B - 0117
apply lucas_low_digit_product_congruence - 0118
exact hprime - 0119
exact hdigit - 0120
exact he_digit - 0121
exact hnormalized - 0122
exact hquotient_zero - 0123
exact hfactor - 0124
have hsuccessor : exists t. r = S t - 0125
specialize nonzero_is_succ r - 0126
apply nonzero_is_succ - 0127
exact hcase_right - 0128
cases hsuccessor - 0129
have hupper_normal : Choose(p + (p · q + d),p · r + e,C)Exact native replay line
have hupper_normal : ((exists bcf_lt_gap_lucas_block_digit_canonical_high_upper_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_high_upper_out_of_range + S (p + (p * q + d)) = p * r + e) /\ C = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_high_upper_in_range. bcf_le_gap_lucas_block_digit_canonical_high_upper_in_range + (p * r + e) = p + (p * q + d)) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_high_upper bcf_row_code_scale_lucas_block_digit_canonical_high_upper bcf_row_scale_code_lucas_block_digit_canonical_high_upper bcf_row_scale_scale_lucas_block_digit_canonical_high_upper bcf_row_code_lucas_block_digit_canonical_high_upper bcf_row_scale_lucas_block_digit_canonical_high_upper. ((forall bcf_row_index_lucas_block_digit_canonical_high_upper_table. (exists bcf_lt_gap_lucas_block_digit_canonical_high_upper_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_upper_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_high_upper_table) = S (p + (p * q + d))) -> exists bcf_row_code_lucas_block_digit_canonical_high_upper_table bcf_row_scale_lucas_block_digit_canonical_high_upper_table. ((((exists bcf_height_lucas_block_digit_canonical_high_upper_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_upper_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_upper_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_upper_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_upper)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_upper = bcf_quotient_lucas_block_digit_canonical_high_upper_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_high_upper_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_upper) + (bcf_row_code_lucas_block_digit_canonical_high_upper_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_upper_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_upper_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_upper_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_upper_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_upper)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_upper = bcf_quotient_lucas_block_digit_canonical_high_upper_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_high_upper_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_upper) + (bcf_row_scale_lucas_block_digit_canonical_high_upper_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_high_upper_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_high_upper_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_high_upper_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_upper_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_high_upper_table_zero_row) = S (p + (p * q + d))) -> exists bcf_value_lucas_block_digit_canonical_high_upper_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_high_upper_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_high_upper_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_high_upper_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_high_upper_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_upper_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_high_upper_table = bcf_quotient_lucas_block_digit_canonical_high_upper_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_upper_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_upper_table) + (bcf_value_lucas_block_digit_canonical_high_upper_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_high_upper_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_high_upper_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_upper_table_zero_row. bcf_index_lucas_block_digit_canonical_high_upper_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_high_upper_table_zero_row /\ bcf_value_lucas_block_digit_canonical_high_upper_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_upper_table bcf_previous_code_lucas_block_digit_canonical_high_upper_table bcf_previous_scale_lucas_block_digit_canonical_high_upper_table. bcf_row_index_lucas_block_digit_canonical_high_upper_table = S bcf_predecessor_lucas_block_digit_canonical_high_upper_table /\ ((((exists bcf_height_lucas_block_digit_canonical_high_upper_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_high_upper_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_high_upper_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_upper_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_upper)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_high_upper = bcf_quotient_lucas_block_digit_canonical_high_upper_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_upper_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_upper) + (bcf_previous_code_lucas_block_digit_canonical_high_upper_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_upper_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_high_upper_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_high_upper_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_upper_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_upper)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_upper = bcf_quotient_lucas_block_digit_canonical_high_upper_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_upper_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_upper) + (bcf_previous_scale_lucas_block_digit_canonical_high_upper_table))) /\ (forall bcf_index_lucas_block_digit_canonical_high_upper_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_high_upper_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_high_upper_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_high_upper_table_row_step) = S (p + (p * q + d))) -> exists bcf_value_lucas_block_digit_canonical_high_upper_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_high_upper_table_row_step_entry. bcf_height_lucas_block_digit_canonical_high_upper_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_high_upper_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_high_upper_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_upper_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_high_upper_table = bcf_quotient_lucas_block_digit_canonical_high_upper_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_upper_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_upper_table) + (bcf_value_lucas_block_digit_canonical_high_upper_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_high_upper_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_high_upper_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_upper_table_row_step bcf_left_lucas_block_digit_canonical_high_upper_table_row_step bcf_right_lucas_block_digit_canonical_high_upper_table_row_step. bcf_index_lucas_block_digit_canonical_high_upper_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_high_upper_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_high_upper_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_high_upper_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_high_upper_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_upper_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_upper_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_high_upper_table = bcf_quotient_lucas_block_digit_canonical_high_upper_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_upper_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_upper_table) + (bcf_left_lucas_block_digit_canonical_high_upper_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_upper_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_high_upper_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_high_upper_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_upper_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_upper_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_high_upper_table = bcf_quotient_lucas_block_digit_canonical_high_upper_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_upper_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_upper_table) + (bcf_right_lucas_block_digit_canonical_high_upper_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_high_upper_table_row_step = bcf_left_lucas_block_digit_canonical_high_upper_table_row_step + bcf_right_lucas_block_digit_canonical_high_upper_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_upper_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_upper_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_upper) = S ((S (p + (p * q + d))) * bcf_row_code_scale_lucas_block_digit_canonical_high_upper)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_upper = bcf_quotient_lucas_block_digit_canonical_high_upper_decoded_row_code * S ((S (p + (p * q + d))) * bcf_row_code_scale_lucas_block_digit_canonical_high_upper) + (bcf_row_code_lucas_block_digit_canonical_high_upper))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_upper_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_upper_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_upper) = S ((S (p + (p * q + d))) * bcf_row_scale_scale_lucas_block_digit_canonical_high_upper)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_upper = bcf_quotient_lucas_block_digit_canonical_high_upper_decoded_row_scale * S ((S (p + (p * q + d))) * bcf_row_scale_scale_lucas_block_digit_canonical_high_upper) + (bcf_row_scale_lucas_block_digit_canonical_high_upper))) /\ (((exists bcf_height_lucas_block_digit_canonical_high_upper_decoded_value. bcf_height_lucas_block_digit_canonical_high_upper_decoded_value + S (C) = S ((S (p * r + e)) * bcf_row_scale_lucas_block_digit_canonical_high_upper)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_upper_decoded_value. bcf_row_code_lucas_block_digit_canonical_high_upper = bcf_quotient_lucas_block_digit_canonical_high_upper_decoded_value * S ((S (p * r + e)) * bcf_row_scale_lucas_block_digit_canonical_high_upper) + (C)))))))) - 0130
specialize choose_upper_eq_transport (p * S q + d) - 0131
specialize choose_upper_eq_transport (p + (p * q + d)) - 0132
specialize choose_upper_eq_transport (p * r + e) - 0133
specialize choose_upper_eq_transport C - 0134
apply choose_upper_eq_transport - 0135
apply lucas_prime_block_successor_reassociation - 0136
exact hwhole - 0137
have hindex : p * r + e = p + (p * x + e) - 0138
rewrite hsuccessor_witness - 0139
apply lucas_prime_block_successor_reassociation - 0140
have hnormal : Choose(p + (p · q + d),p + (p · x + e),C)Exact native replay line
have hnormal : ((exists bcf_lt_gap_lucas_block_digit_canonical_high_normal_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_high_normal_out_of_range + S (p + (p * q + d)) = p + (p * x + e)) /\ C = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_high_normal_in_range. bcf_le_gap_lucas_block_digit_canonical_high_normal_in_range + (p + (p * x + e)) = p + (p * q + d)) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_high_normal bcf_row_code_scale_lucas_block_digit_canonical_high_normal bcf_row_scale_code_lucas_block_digit_canonical_high_normal bcf_row_scale_scale_lucas_block_digit_canonical_high_normal bcf_row_code_lucas_block_digit_canonical_high_normal bcf_row_scale_lucas_block_digit_canonical_high_normal. ((forall bcf_row_index_lucas_block_digit_canonical_high_normal_table. (exists bcf_lt_gap_lucas_block_digit_canonical_high_normal_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_normal_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_high_normal_table) = S (p + (p * q + d))) -> exists bcf_row_code_lucas_block_digit_canonical_high_normal_table bcf_row_scale_lucas_block_digit_canonical_high_normal_table. ((((exists bcf_height_lucas_block_digit_canonical_high_normal_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_normal_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_normal_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_normal = bcf_quotient_lucas_block_digit_canonical_high_normal_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_high_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_normal) + (bcf_row_code_lucas_block_digit_canonical_high_normal_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_normal_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_normal_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_normal_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_normal = bcf_quotient_lucas_block_digit_canonical_high_normal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_high_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_normal) + (bcf_row_scale_lucas_block_digit_canonical_high_normal_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_high_normal_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_high_normal_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_high_normal_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_normal_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_high_normal_table_zero_row) = S (p + (p * q + d))) -> exists bcf_value_lucas_block_digit_canonical_high_normal_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_high_normal_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_high_normal_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_high_normal_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_high_normal_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_high_normal_table = bcf_quotient_lucas_block_digit_canonical_high_normal_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_normal_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_normal_table) + (bcf_value_lucas_block_digit_canonical_high_normal_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_high_normal_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_high_normal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_normal_table_zero_row. bcf_index_lucas_block_digit_canonical_high_normal_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_high_normal_table_zero_row /\ bcf_value_lucas_block_digit_canonical_high_normal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_normal_table bcf_previous_code_lucas_block_digit_canonical_high_normal_table bcf_previous_scale_lucas_block_digit_canonical_high_normal_table. bcf_row_index_lucas_block_digit_canonical_high_normal_table = S bcf_predecessor_lucas_block_digit_canonical_high_normal_table /\ ((((exists bcf_height_lucas_block_digit_canonical_high_normal_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_high_normal_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_high_normal_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_high_normal = bcf_quotient_lucas_block_digit_canonical_high_normal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_normal) + (bcf_previous_code_lucas_block_digit_canonical_high_normal_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_normal_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_high_normal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_high_normal_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_normal = bcf_quotient_lucas_block_digit_canonical_high_normal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_normal) + (bcf_previous_scale_lucas_block_digit_canonical_high_normal_table))) /\ (forall bcf_index_lucas_block_digit_canonical_high_normal_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_high_normal_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_high_normal_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_high_normal_table_row_step) = S (p + (p * q + d))) -> exists bcf_value_lucas_block_digit_canonical_high_normal_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_high_normal_table_row_step_entry. bcf_height_lucas_block_digit_canonical_high_normal_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_high_normal_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_high_normal_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_high_normal_table = bcf_quotient_lucas_block_digit_canonical_high_normal_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_normal_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_normal_table) + (bcf_value_lucas_block_digit_canonical_high_normal_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_high_normal_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_high_normal_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_normal_table_row_step bcf_left_lucas_block_digit_canonical_high_normal_table_row_step bcf_right_lucas_block_digit_canonical_high_normal_table_row_step. bcf_index_lucas_block_digit_canonical_high_normal_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_high_normal_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_high_normal_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_high_normal_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_high_normal_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_normal_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_high_normal_table = bcf_quotient_lucas_block_digit_canonical_high_normal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_normal_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_normal_table) + (bcf_left_lucas_block_digit_canonical_high_normal_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_normal_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_high_normal_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_high_normal_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_normal_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_high_normal_table = bcf_quotient_lucas_block_digit_canonical_high_normal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_normal_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_normal_table) + (bcf_right_lucas_block_digit_canonical_high_normal_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_high_normal_table_row_step = bcf_left_lucas_block_digit_canonical_high_normal_table_row_step + bcf_right_lucas_block_digit_canonical_high_normal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_normal_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_normal_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_normal) = S ((S (p + (p * q + d))) * bcf_row_code_scale_lucas_block_digit_canonical_high_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_normal = bcf_quotient_lucas_block_digit_canonical_high_normal_decoded_row_code * S ((S (p + (p * q + d))) * bcf_row_code_scale_lucas_block_digit_canonical_high_normal) + (bcf_row_code_lucas_block_digit_canonical_high_normal))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_normal_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_normal_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_normal) = S ((S (p + (p * q + d))) * bcf_row_scale_scale_lucas_block_digit_canonical_high_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_normal = bcf_quotient_lucas_block_digit_canonical_high_normal_decoded_row_scale * S ((S (p + (p * q + d))) * bcf_row_scale_scale_lucas_block_digit_canonical_high_normal) + (bcf_row_scale_lucas_block_digit_canonical_high_normal))) /\ (((exists bcf_height_lucas_block_digit_canonical_high_normal_decoded_value. bcf_height_lucas_block_digit_canonical_high_normal_decoded_value + S (C) = S ((S (p + (p * x + e))) * bcf_row_scale_lucas_block_digit_canonical_high_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_normal_decoded_value. bcf_row_code_lucas_block_digit_canonical_high_normal = bcf_quotient_lucas_block_digit_canonical_high_normal_decoded_value * S ((S (p + (p * x + e))) * bcf_row_scale_lucas_block_digit_canonical_high_normal) + (C)))))))) - 0141
specialize lucas_choose_lower_eq_transport (p + (p * q + d)) - 0142
specialize lucas_choose_lower_eq_transport (p * r + e) - 0143
specialize lucas_choose_lower_eq_transport (p + (p * x + e)) - 0144
specialize lucas_choose_lower_eq_transport C - 0145
apply lucas_choose_lower_eq_transport - 0146
exact hindex - 0147
exact hupper_normal - 0148
have hleft : ∃ A. Choose(p · q + d,p + (p · x + e),A)Exact native replay line
have hleft : exists A. ((exists bcf_lt_gap_lucas_block_digit_canonical_high_left_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_high_left_out_of_range + S (p * q + d) = p + (p * x + e)) /\ A = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_high_left_in_range. bcf_le_gap_lucas_block_digit_canonical_high_left_in_range + (p + (p * x + e)) = p * q + d) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_high_left bcf_row_code_scale_lucas_block_digit_canonical_high_left bcf_row_scale_code_lucas_block_digit_canonical_high_left bcf_row_scale_scale_lucas_block_digit_canonical_high_left bcf_row_code_lucas_block_digit_canonical_high_left bcf_row_scale_lucas_block_digit_canonical_high_left. ((forall bcf_row_index_lucas_block_digit_canonical_high_left_table. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_high_left_table) = S (p * q + d)) -> exists bcf_row_code_lucas_block_digit_canonical_high_left_table bcf_row_scale_lucas_block_digit_canonical_high_left_table. ((((exists bcf_height_lucas_block_digit_canonical_high_left_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_left_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_left_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_left = bcf_quotient_lucas_block_digit_canonical_high_left_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left) + (bcf_row_code_lucas_block_digit_canonical_high_left_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_left_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_left_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left = bcf_quotient_lucas_block_digit_canonical_high_left_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left) + (bcf_row_scale_lucas_block_digit_canonical_high_left_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_high_left_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_high_left_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_high_left_table_zero_row) = S (p * q + d)) -> exists bcf_value_lucas_block_digit_canonical_high_left_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_high_left_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_high_left_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_high_left_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_high_left_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_left_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_high_left_table = bcf_quotient_lucas_block_digit_canonical_high_left_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_left_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_left_table) + (bcf_value_lucas_block_digit_canonical_high_left_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_high_left_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_high_left_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_table_zero_row. bcf_index_lucas_block_digit_canonical_high_left_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_high_left_table_zero_row /\ bcf_value_lucas_block_digit_canonical_high_left_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_table bcf_previous_code_lucas_block_digit_canonical_high_left_table bcf_previous_scale_lucas_block_digit_canonical_high_left_table. bcf_row_index_lucas_block_digit_canonical_high_left_table = S bcf_predecessor_lucas_block_digit_canonical_high_left_table /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_high_left_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_high_left_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_high_left = bcf_quotient_lucas_block_digit_canonical_high_left_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left) + (bcf_previous_code_lucas_block_digit_canonical_high_left_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_high_left_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_high_left_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left = bcf_quotient_lucas_block_digit_canonical_high_left_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left) + (bcf_previous_scale_lucas_block_digit_canonical_high_left_table))) /\ (forall bcf_index_lucas_block_digit_canonical_high_left_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_high_left_table_row_step) = S (p * q + d)) -> exists bcf_value_lucas_block_digit_canonical_high_left_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_high_left_table_row_step_entry. bcf_height_lucas_block_digit_canonical_high_left_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_high_left_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_high_left_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_left_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_high_left_table = bcf_quotient_lucas_block_digit_canonical_high_left_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_left_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_left_table) + (bcf_value_lucas_block_digit_canonical_high_left_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_high_left_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_high_left_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_table_row_step bcf_left_lucas_block_digit_canonical_high_left_table_row_step bcf_right_lucas_block_digit_canonical_high_left_table_row_step. bcf_index_lucas_block_digit_canonical_high_left_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_high_left_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_high_left_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_high_left_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_left_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_high_left_table = bcf_quotient_lucas_block_digit_canonical_high_left_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_left_table) + (bcf_left_lucas_block_digit_canonical_high_left_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_high_left_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_high_left_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_left_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_left_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_high_left_table = bcf_quotient_lucas_block_digit_canonical_high_left_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_left_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_left_table) + (bcf_right_lucas_block_digit_canonical_high_left_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_high_left_table_row_step = bcf_left_lucas_block_digit_canonical_high_left_table_row_step + bcf_right_lucas_block_digit_canonical_high_left_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_left_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_left) = S ((S (p * q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_left = bcf_quotient_lucas_block_digit_canonical_high_left_decoded_row_code * S ((S (p * q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left) + (bcf_row_code_lucas_block_digit_canonical_high_left))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_left_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_left) = S ((S (p * q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left = bcf_quotient_lucas_block_digit_canonical_high_left_decoded_row_scale * S ((S (p * q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left) + (bcf_row_scale_lucas_block_digit_canonical_high_left))) /\ (((exists bcf_height_lucas_block_digit_canonical_high_left_decoded_value. bcf_height_lucas_block_digit_canonical_high_left_decoded_value + S (A) = S ((S (p + (p * x + e))) * bcf_row_scale_lucas_block_digit_canonical_high_left)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_decoded_value. bcf_row_code_lucas_block_digit_canonical_high_left = bcf_quotient_lucas_block_digit_canonical_high_left_decoded_value * S ((S (p + (p * x + e))) * bcf_row_scale_lucas_block_digit_canonical_high_left) + (A)))))))) - 0149
apply choose_exists - 0150
cases hleft - 0151
have hright : ∃ A. Choose(p · q + d,p · x + e,A)Exact native replay line
have hright : exists A. ((exists bcf_lt_gap_lucas_block_digit_canonical_high_right_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_high_right_out_of_range + S (p * q + d) = p * x + e) /\ A = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_high_right_in_range. bcf_le_gap_lucas_block_digit_canonical_high_right_in_range + (p * x + e) = p * q + d) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_high_right bcf_row_code_scale_lucas_block_digit_canonical_high_right bcf_row_scale_code_lucas_block_digit_canonical_high_right bcf_row_scale_scale_lucas_block_digit_canonical_high_right bcf_row_code_lucas_block_digit_canonical_high_right bcf_row_scale_lucas_block_digit_canonical_high_right. ((forall bcf_row_index_lucas_block_digit_canonical_high_right_table. (exists bcf_lt_gap_lucas_block_digit_canonical_high_right_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_right_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_high_right_table) = S (p * q + d)) -> exists bcf_row_code_lucas_block_digit_canonical_high_right_table bcf_row_scale_lucas_block_digit_canonical_high_right_table. ((((exists bcf_height_lucas_block_digit_canonical_high_right_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_right_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_right_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_right_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_right = bcf_quotient_lucas_block_digit_canonical_high_right_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_high_right_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right) + (bcf_row_code_lucas_block_digit_canonical_high_right_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_right_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_right_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_right_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_right = bcf_quotient_lucas_block_digit_canonical_high_right_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_high_right_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right) + (bcf_row_scale_lucas_block_digit_canonical_high_right_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_high_right_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_high_right_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_high_right_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_right_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_high_right_table_zero_row) = S (p * q + d)) -> exists bcf_value_lucas_block_digit_canonical_high_right_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_high_right_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_high_right_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_high_right_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_high_right_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_right_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_high_right_table = bcf_quotient_lucas_block_digit_canonical_high_right_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_right_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_right_table) + (bcf_value_lucas_block_digit_canonical_high_right_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_high_right_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_high_right_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_right_table_zero_row. bcf_index_lucas_block_digit_canonical_high_right_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_high_right_table_zero_row /\ bcf_value_lucas_block_digit_canonical_high_right_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_right_table bcf_previous_code_lucas_block_digit_canonical_high_right_table bcf_previous_scale_lucas_block_digit_canonical_high_right_table. bcf_row_index_lucas_block_digit_canonical_high_right_table = S bcf_predecessor_lucas_block_digit_canonical_high_right_table /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_high_right_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_high_right_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_high_right = bcf_quotient_lucas_block_digit_canonical_high_right_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right) + (bcf_previous_code_lucas_block_digit_canonical_high_right_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_high_right_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_high_right_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_right = bcf_quotient_lucas_block_digit_canonical_high_right_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right) + (bcf_previous_scale_lucas_block_digit_canonical_high_right_table))) /\ (forall bcf_index_lucas_block_digit_canonical_high_right_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_high_right_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_high_right_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_high_right_table_row_step) = S (p * q + d)) -> exists bcf_value_lucas_block_digit_canonical_high_right_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_high_right_table_row_step_entry. bcf_height_lucas_block_digit_canonical_high_right_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_high_right_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_high_right_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_right_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_high_right_table = bcf_quotient_lucas_block_digit_canonical_high_right_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_right_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_right_table) + (bcf_value_lucas_block_digit_canonical_high_right_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_high_right_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_high_right_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_right_table_row_step bcf_left_lucas_block_digit_canonical_high_right_table_row_step bcf_right_lucas_block_digit_canonical_high_right_table_row_step. bcf_index_lucas_block_digit_canonical_high_right_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_high_right_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_high_right_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_high_right_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_right_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_high_right_table = bcf_quotient_lucas_block_digit_canonical_high_right_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_right_table) + (bcf_left_lucas_block_digit_canonical_high_right_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_high_right_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_high_right_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_right_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_right_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_high_right_table = bcf_quotient_lucas_block_digit_canonical_high_right_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_right_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_right_table) + (bcf_right_lucas_block_digit_canonical_high_right_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_high_right_table_row_step = bcf_left_lucas_block_digit_canonical_high_right_table_row_step + bcf_right_lucas_block_digit_canonical_high_right_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_right_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_right) = S ((S (p * q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_right = bcf_quotient_lucas_block_digit_canonical_high_right_decoded_row_code * S ((S (p * q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right) + (bcf_row_code_lucas_block_digit_canonical_high_right))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_right_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_right) = S ((S (p * q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_right = bcf_quotient_lucas_block_digit_canonical_high_right_decoded_row_scale * S ((S (p * q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right) + (bcf_row_scale_lucas_block_digit_canonical_high_right))) /\ (((exists bcf_height_lucas_block_digit_canonical_high_right_decoded_value. bcf_height_lucas_block_digit_canonical_high_right_decoded_value + S (A) = S ((S (p * x + e)) * bcf_row_scale_lucas_block_digit_canonical_high_right)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_decoded_value. bcf_row_code_lucas_block_digit_canonical_high_right = bcf_quotient_lucas_block_digit_canonical_high_right_decoded_value * S ((S (p * x + e)) * bcf_row_scale_lucas_block_digit_canonical_high_right) + (A)))))))) - 0152
apply choose_exists - 0153
cases hright - 0154
have hleft_quotient : ∃ A. Choose(q,S x,A)Exact native replay line
have hleft_quotient : exists A. ((exists bcf_lt_gap_lucas_block_digit_canonical_high_left_quotient_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_high_left_quotient_out_of_range + S (q) = S x) /\ A = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_high_left_quotient_in_range. bcf_le_gap_lucas_block_digit_canonical_high_left_quotient_in_range + (S x) = q) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_high_left_quotient bcf_row_code_scale_lucas_block_digit_canonical_high_left_quotient bcf_row_scale_code_lucas_block_digit_canonical_high_left_quotient bcf_row_scale_scale_lucas_block_digit_canonical_high_left_quotient bcf_row_code_lucas_block_digit_canonical_high_left_quotient bcf_row_scale_lucas_block_digit_canonical_high_left_quotient. ((forall bcf_row_index_lucas_block_digit_canonical_high_left_quotient_table. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_quotient_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_quotient_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_high_left_quotient_table) = S (q)) -> exists bcf_row_code_lucas_block_digit_canonical_high_left_quotient_table bcf_row_scale_lucas_block_digit_canonical_high_left_quotient_table. ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_left_quotient_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_left_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_left_quotient = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_quotient) + (bcf_row_code_lucas_block_digit_canonical_high_left_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_left_quotient_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_left_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left_quotient = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_quotient) + (bcf_row_scale_lucas_block_digit_canonical_high_left_quotient_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_high_left_quotient_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_high_left_quotient_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_quotient_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_quotient_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_high_left_quotient_table_zero_row) = S (q)) -> exists bcf_value_lucas_block_digit_canonical_high_left_quotient_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_high_left_quotient_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_high_left_quotient_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_high_left_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_left_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_high_left_quotient_table = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_left_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_left_quotient_table) + (bcf_value_lucas_block_digit_canonical_high_left_quotient_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_high_left_quotient_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_high_left_quotient_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table_zero_row. bcf_index_lucas_block_digit_canonical_high_left_quotient_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table_zero_row /\ bcf_value_lucas_block_digit_canonical_high_left_quotient_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table bcf_previous_code_lucas_block_digit_canonical_high_left_quotient_table bcf_previous_scale_lucas_block_digit_canonical_high_left_quotient_table. bcf_row_index_lucas_block_digit_canonical_high_left_quotient_table = S bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_high_left_quotient_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_high_left_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_high_left_quotient = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_quotient) + (bcf_previous_code_lucas_block_digit_canonical_high_left_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_high_left_quotient_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_high_left_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left_quotient = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_quotient) + (bcf_previous_scale_lucas_block_digit_canonical_high_left_quotient_table))) /\ (forall bcf_index_lucas_block_digit_canonical_high_left_quotient_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_quotient_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_quotient_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_high_left_quotient_table_row_step) = S (q)) -> exists bcf_value_lucas_block_digit_canonical_high_left_quotient_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_table_row_step_entry. bcf_height_lucas_block_digit_canonical_high_left_quotient_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_high_left_quotient_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_high_left_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_left_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_high_left_quotient_table = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_left_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_left_quotient_table) + (bcf_value_lucas_block_digit_canonical_high_left_quotient_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_high_left_quotient_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_high_left_quotient_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table_row_step bcf_left_lucas_block_digit_canonical_high_left_quotient_table_row_step bcf_right_lucas_block_digit_canonical_high_left_quotient_table_row_step. bcf_index_lucas_block_digit_canonical_high_left_quotient_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_high_left_quotient_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_high_left_quotient_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_left_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_high_left_quotient_table = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_left_quotient_table) + (bcf_left_lucas_block_digit_canonical_high_left_quotient_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_high_left_quotient_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_high_left_quotient_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_left_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_high_left_quotient_table = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_left_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_left_quotient_table) + (bcf_right_lucas_block_digit_canonical_high_left_quotient_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_high_left_quotient_table_row_step = bcf_left_lucas_block_digit_canonical_high_left_quotient_table_row_step + bcf_right_lucas_block_digit_canonical_high_left_quotient_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_left_quotient_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_left_quotient) = S ((S (q)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_left_quotient = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_decoded_row_code * S ((S (q)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_quotient) + (bcf_row_code_lucas_block_digit_canonical_high_left_quotient))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_left_quotient_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_left_quotient) = S ((S (q)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left_quotient = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_decoded_row_scale * S ((S (q)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_quotient) + (bcf_row_scale_lucas_block_digit_canonical_high_left_quotient))) /\ (((exists bcf_height_lucas_block_digit_canonical_high_left_quotient_decoded_value. bcf_height_lucas_block_digit_canonical_high_left_quotient_decoded_value + S (A) = S ((S (S x)) * bcf_row_scale_lucas_block_digit_canonical_high_left_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_quotient_decoded_value. bcf_row_code_lucas_block_digit_canonical_high_left_quotient = bcf_quotient_lucas_block_digit_canonical_high_left_quotient_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_block_digit_canonical_high_left_quotient) + (A)))))))) - 0155
apply choose_exists - 0156
cases hleft_quotient - 0157
have hright_quotient : ∃ A. Choose(q,x,A)Exact native replay line
have hright_quotient : exists A. ((exists bcf_lt_gap_lucas_block_digit_canonical_high_right_quotient_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_high_right_quotient_out_of_range + S (q) = x) /\ A = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_high_right_quotient_in_range. bcf_le_gap_lucas_block_digit_canonical_high_right_quotient_in_range + (x) = q) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_high_right_quotient bcf_row_code_scale_lucas_block_digit_canonical_high_right_quotient bcf_row_scale_code_lucas_block_digit_canonical_high_right_quotient bcf_row_scale_scale_lucas_block_digit_canonical_high_right_quotient bcf_row_code_lucas_block_digit_canonical_high_right_quotient bcf_row_scale_lucas_block_digit_canonical_high_right_quotient. ((forall bcf_row_index_lucas_block_digit_canonical_high_right_quotient_table. (exists bcf_lt_gap_lucas_block_digit_canonical_high_right_quotient_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_right_quotient_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_high_right_quotient_table) = S (q)) -> exists bcf_row_code_lucas_block_digit_canonical_high_right_quotient_table bcf_row_scale_lucas_block_digit_canonical_high_right_quotient_table. ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_right_quotient_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_right_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_right_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_right_quotient = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_high_right_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right_quotient) + (bcf_row_code_lucas_block_digit_canonical_high_right_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_right_quotient_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_right_quotient_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_right_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_right_quotient = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_high_right_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right_quotient) + (bcf_row_scale_lucas_block_digit_canonical_high_right_quotient_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_high_right_quotient_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_high_right_quotient_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_high_right_quotient_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_right_quotient_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_high_right_quotient_table_zero_row) = S (q)) -> exists bcf_value_lucas_block_digit_canonical_high_right_quotient_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_high_right_quotient_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_high_right_quotient_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_high_right_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_right_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_high_right_quotient_table = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_right_quotient_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_right_quotient_table) + (bcf_value_lucas_block_digit_canonical_high_right_quotient_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_high_right_quotient_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_high_right_quotient_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table_zero_row. bcf_index_lucas_block_digit_canonical_high_right_quotient_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table_zero_row /\ bcf_value_lucas_block_digit_canonical_high_right_quotient_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table bcf_previous_code_lucas_block_digit_canonical_high_right_quotient_table bcf_previous_scale_lucas_block_digit_canonical_high_right_quotient_table. bcf_row_index_lucas_block_digit_canonical_high_right_quotient_table = S bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_high_right_quotient_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_high_right_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_high_right_quotient = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right_quotient) + (bcf_previous_code_lucas_block_digit_canonical_high_right_quotient_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_high_right_quotient_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_high_right_quotient_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_right_quotient = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right_quotient) + (bcf_previous_scale_lucas_block_digit_canonical_high_right_quotient_table))) /\ (forall bcf_index_lucas_block_digit_canonical_high_right_quotient_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_high_right_quotient_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_high_right_quotient_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_high_right_quotient_table_row_step) = S (q)) -> exists bcf_value_lucas_block_digit_canonical_high_right_quotient_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_table_row_step_entry. bcf_height_lucas_block_digit_canonical_high_right_quotient_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_high_right_quotient_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_high_right_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_right_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_high_right_quotient_table = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_right_quotient_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_right_quotient_table) + (bcf_value_lucas_block_digit_canonical_high_right_quotient_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_high_right_quotient_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_high_right_quotient_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table_row_step bcf_left_lucas_block_digit_canonical_high_right_quotient_table_row_step bcf_right_lucas_block_digit_canonical_high_right_quotient_table_row_step. bcf_index_lucas_block_digit_canonical_high_right_quotient_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_high_right_quotient_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_high_right_quotient_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_right_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_high_right_quotient_table = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_right_quotient_table) + (bcf_left_lucas_block_digit_canonical_high_right_quotient_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_high_right_quotient_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_high_right_quotient_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_right_quotient_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_high_right_quotient_table = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_right_quotient_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_right_quotient_table) + (bcf_right_lucas_block_digit_canonical_high_right_quotient_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_high_right_quotient_table_row_step = bcf_left_lucas_block_digit_canonical_high_right_quotient_table_row_step + bcf_right_lucas_block_digit_canonical_high_right_quotient_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_right_quotient_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_right_quotient) = S ((S (q)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_right_quotient = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_decoded_row_code * S ((S (q)) * bcf_row_code_scale_lucas_block_digit_canonical_high_right_quotient) + (bcf_row_code_lucas_block_digit_canonical_high_right_quotient))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_right_quotient_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_right_quotient) = S ((S (q)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_right_quotient = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_decoded_row_scale * S ((S (q)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_right_quotient) + (bcf_row_scale_lucas_block_digit_canonical_high_right_quotient))) /\ (((exists bcf_height_lucas_block_digit_canonical_high_right_quotient_decoded_value. bcf_height_lucas_block_digit_canonical_high_right_quotient_decoded_value + S (A) = S ((S (x)) * bcf_row_scale_lucas_block_digit_canonical_high_right_quotient)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_right_quotient_decoded_value. bcf_row_code_lucas_block_digit_canonical_high_right_quotient = bcf_quotient_lucas_block_digit_canonical_high_right_quotient_decoded_value * S ((S (x)) * bcf_row_scale_lucas_block_digit_canonical_high_right_quotient) + (A)))))))) - 0158
apply choose_exists - 0159
cases hright_quotient - 0160
have hshift : ModEq(p,C,x1 + x2)Exact native replay line
have hshift : exists lbd_left_canonical_high_shift lbd_right_canonical_high_shift. (C) + (p) * lbd_left_canonical_high_shift = (x1 + x2) + (p) * lbd_right_canonical_high_shift - 0161
specialize lucas_prime_shift_high_column p - 0162
specialize lucas_prime_shift_high_column (p * q + d) - 0163
specialize lucas_prime_shift_high_column (p * x + e) - 0164
specialize lucas_prime_shift_high_column C - 0165
specialize lucas_prime_shift_high_column x1 - 0166
specialize lucas_prime_shift_high_column x2 - 0167
apply lucas_prime_shift_high_column - 0168
exact hprime - 0169
exact hnormal - 0170
exact hleft_witness - 0171
exact hright_witness - 0172
have hleft_normal : Choose(p · q + d,p · S x + e,x1)Exact native replay line
have hleft_normal : ((exists bcf_lt_gap_lucas_block_digit_canonical_high_left_normal_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_high_left_normal_out_of_range + S (p * q + d) = p * S x + e) /\ x1 = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_high_left_normal_in_range. bcf_le_gap_lucas_block_digit_canonical_high_left_normal_in_range + (p * S x + e) = p * q + d) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_high_left_normal bcf_row_code_scale_lucas_block_digit_canonical_high_left_normal bcf_row_scale_code_lucas_block_digit_canonical_high_left_normal bcf_row_scale_scale_lucas_block_digit_canonical_high_left_normal bcf_row_code_lucas_block_digit_canonical_high_left_normal bcf_row_scale_lucas_block_digit_canonical_high_left_normal. ((forall bcf_row_index_lucas_block_digit_canonical_high_left_normal_table. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_normal_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_normal_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_high_left_normal_table) = S (p * q + d)) -> exists bcf_row_code_lucas_block_digit_canonical_high_left_normal_table bcf_row_scale_lucas_block_digit_canonical_high_left_normal_table. ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_left_normal_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_left_normal_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_left_normal = bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_normal) + (bcf_row_code_lucas_block_digit_canonical_high_left_normal_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_left_normal_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_left_normal_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left_normal = bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_high_left_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_normal) + (bcf_row_scale_lucas_block_digit_canonical_high_left_normal_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_high_left_normal_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_high_left_normal_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_normal_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_normal_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_high_left_normal_table_zero_row) = S (p * q + d)) -> exists bcf_value_lucas_block_digit_canonical_high_left_normal_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_high_left_normal_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_high_left_normal_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_high_left_normal_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_left_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_high_left_normal_table = bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_left_normal_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_left_normal_table) + (bcf_value_lucas_block_digit_canonical_high_left_normal_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_high_left_normal_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_high_left_normal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table_zero_row. bcf_index_lucas_block_digit_canonical_high_left_normal_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table_zero_row /\ bcf_value_lucas_block_digit_canonical_high_left_normal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table bcf_previous_code_lucas_block_digit_canonical_high_left_normal_table bcf_previous_scale_lucas_block_digit_canonical_high_left_normal_table. bcf_row_index_lucas_block_digit_canonical_high_left_normal_table = S bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_high_left_normal_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_high_left_normal_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_high_left_normal = bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_normal) + (bcf_previous_code_lucas_block_digit_canonical_high_left_normal_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_high_left_normal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_high_left_normal_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left_normal = bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_normal) + (bcf_previous_scale_lucas_block_digit_canonical_high_left_normal_table))) /\ (forall bcf_index_lucas_block_digit_canonical_high_left_normal_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_high_left_normal_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_high_left_normal_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_high_left_normal_table_row_step) = S (p * q + d)) -> exists bcf_value_lucas_block_digit_canonical_high_left_normal_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_table_row_step_entry. bcf_height_lucas_block_digit_canonical_high_left_normal_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_high_left_normal_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_high_left_normal_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_left_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_high_left_normal_table = bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_left_normal_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_left_normal_table) + (bcf_value_lucas_block_digit_canonical_high_left_normal_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_high_left_normal_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_high_left_normal_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table_row_step bcf_left_lucas_block_digit_canonical_high_left_normal_table_row_step bcf_right_lucas_block_digit_canonical_high_left_normal_table_row_step. bcf_index_lucas_block_digit_canonical_high_left_normal_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_high_left_normal_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_high_left_normal_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_left_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_high_left_normal_table = bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_left_normal_table) + (bcf_left_lucas_block_digit_canonical_high_left_normal_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_high_left_normal_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_high_left_normal_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_left_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_high_left_normal_table = bcf_quotient_lucas_block_digit_canonical_high_left_normal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_left_normal_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_left_normal_table) + (bcf_right_lucas_block_digit_canonical_high_left_normal_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_high_left_normal_table_row_step = bcf_left_lucas_block_digit_canonical_high_left_normal_table_row_step + bcf_right_lucas_block_digit_canonical_high_left_normal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_left_normal_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_left_normal) = S ((S (p * q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_left_normal = bcf_quotient_lucas_block_digit_canonical_high_left_normal_decoded_row_code * S ((S (p * q + d)) * bcf_row_code_scale_lucas_block_digit_canonical_high_left_normal) + (bcf_row_code_lucas_block_digit_canonical_high_left_normal))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_left_normal_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_left_normal_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_left_normal) = S ((S (p * q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_left_normal = bcf_quotient_lucas_block_digit_canonical_high_left_normal_decoded_row_scale * S ((S (p * q + d)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_left_normal) + (bcf_row_scale_lucas_block_digit_canonical_high_left_normal))) /\ (((exists bcf_height_lucas_block_digit_canonical_high_left_normal_decoded_value. bcf_height_lucas_block_digit_canonical_high_left_normal_decoded_value + S (x1) = S ((S (p * S x + e)) * bcf_row_scale_lucas_block_digit_canonical_high_left_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_left_normal_decoded_value. bcf_row_code_lucas_block_digit_canonical_high_left_normal = bcf_quotient_lucas_block_digit_canonical_high_left_normal_decoded_value * S ((S (p * S x + e)) * bcf_row_scale_lucas_block_digit_canonical_high_left_normal) + (x1)))))))) - 0173
specialize lucas_choose_lower_eq_transport (p * q + d) - 0174
specialize lucas_choose_lower_eq_transport (p + (p * x + e)) - 0175
specialize lucas_choose_lower_eq_transport (p * S x + e) - 0176
specialize lucas_choose_lower_eq_transport x1 - 0177
apply lucas_choose_lower_eq_transport - 0178
symm - 0179
apply lucas_prime_block_successor_reassociation - 0180
exact hleft_witness - 0181
have hleft_mod : ModEq(p,x1,x3 · B)Exact native replay line
have hleft_mod : exists lbd_left_canonical_high_left_mod lbd_right_canonical_high_left_mod. (x1) + (p) * lbd_left_canonical_high_left_mod = (x3 * B) + (p) * lbd_right_canonical_high_left_mod - 0182
specialize IH (S x) - 0183
specialize IH d - 0184
specialize IH e - 0185
specialize IH x1 - 0186
specialize IH x3 - 0187
specialize IH B - 0188
apply IH - 0189
exact hprime - 0190
exact hdigit - 0191
exact he_digit - 0192
exact hleft_normal - 0193
exact hleft_quotient_witness - 0194
exact hfactor - 0195
have hright_mod : ModEq(p,x2,x4 · B)Exact native replay line
have hright_mod : exists lbd_left_canonical_high_right_mod lbd_right_canonical_high_right_mod. (x2) + (p) * lbd_left_canonical_high_right_mod = (x4 * B) + (p) * lbd_right_canonical_high_right_mod - 0196
specialize IH x - 0197
specialize IH d - 0198
specialize IH e - 0199
specialize IH x2 - 0200
specialize IH x4 - 0201
specialize IH B - 0202
apply IH - 0203
exact hprime - 0204
exact hdigit - 0205
exact he_digit - 0206
exact hright_witness - 0207
exact hright_quotient_witness - 0208
exact hfactor - 0209
have hsum_mod : ModEq(p,x1 + x2,x3 · B + x4 · B)Exact native replay line
have hsum_mod : exists lbd_left_canonical_high_sum_mod lbd_right_canonical_high_sum_mod. (x1 + x2) + (p) * lbd_left_canonical_high_sum_mod = (x3 * B + x4 * B) + (p) * lbd_right_canonical_high_sum_mod - 0210
specialize mod_eq_add p - 0211
specialize mod_eq_add x1 - 0212
specialize mod_eq_add (x3 * B) - 0213
specialize mod_eq_add x2 - 0214
specialize mod_eq_add (x4 * B) - 0215
apply mod_eq_add - 0216
exact hleft_mod - 0217
exact hright_mod - 0218
have hquotient_normal : Choose(S q,S x,A)Exact native replay line
have hquotient_normal : ((exists bcf_lt_gap_lucas_block_digit_canonical_high_quotient_normal_out_of_range. bcf_lt_gap_lucas_block_digit_canonical_high_quotient_normal_out_of_range + S (S q) = S x) /\ A = 0) \/ ((exists bcf_le_gap_lucas_block_digit_canonical_high_quotient_normal_in_range. bcf_le_gap_lucas_block_digit_canonical_high_quotient_normal_in_range + (S x) = S q) /\ (exists bcf_row_code_code_lucas_block_digit_canonical_high_quotient_normal bcf_row_code_scale_lucas_block_digit_canonical_high_quotient_normal bcf_row_scale_code_lucas_block_digit_canonical_high_quotient_normal bcf_row_scale_scale_lucas_block_digit_canonical_high_quotient_normal bcf_row_code_lucas_block_digit_canonical_high_quotient_normal bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal. ((forall bcf_row_index_lucas_block_digit_canonical_high_quotient_normal_table. (exists bcf_lt_gap_lucas_block_digit_canonical_high_quotient_normal_table_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_quotient_normal_table_row_bound + S (bcf_row_index_lucas_block_digit_canonical_high_quotient_normal_table) = S (S q)) -> exists bcf_row_code_lucas_block_digit_canonical_high_quotient_normal_table bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal_table. ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_quotient_normal_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_quotient_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_quotient_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_quotient_normal = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_decoded_row_code * S ((S (bcf_row_index_lucas_block_digit_canonical_high_quotient_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_quotient_normal) + (bcf_row_code_lucas_block_digit_canonical_high_quotient_normal_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal_table) = S ((S (bcf_row_index_lucas_block_digit_canonical_high_quotient_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_quotient_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_quotient_normal = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_decoded_row_scale * S ((S (bcf_row_index_lucas_block_digit_canonical_high_quotient_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_quotient_normal) + (bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal_table))) /\ ((bcf_row_index_lucas_block_digit_canonical_high_quotient_normal_table = 0 /\ (forall bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_zero_row. (exists bcf_lt_gap_lucas_block_digit_canonical_high_quotient_normal_table_zero_row_bound. bcf_lt_gap_lucas_block_digit_canonical_high_quotient_normal_table_zero_row_bound + S (bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_zero_row) = S (S q)) -> exists bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_zero_row. ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_zero_row_entry. bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_zero_row_entry + S (bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_zero_row) = S ((S (bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_zero_row_entry. bcf_row_code_lucas_block_digit_canonical_high_quotient_normal_table = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_zero_row_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_zero_row)) * bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal_table) + (bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_zero_row))) /\ ((bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_zero_row = 0 /\ bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_zero_row = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table_zero_row. bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_zero_row = S bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table_zero_row /\ bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table bcf_previous_code_lucas_block_digit_canonical_high_quotient_normal_table bcf_previous_scale_lucas_block_digit_canonical_high_quotient_normal_table. bcf_row_index_lucas_block_digit_canonical_high_quotient_normal_table = S bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table /\ ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_decoded_previous_code. bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_decoded_previous_code + S (bcf_previous_code_lucas_block_digit_canonical_high_quotient_normal_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_quotient_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_decoded_previous_code. bcf_row_code_code_lucas_block_digit_canonical_high_quotient_normal = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table)) * bcf_row_code_scale_lucas_block_digit_canonical_high_quotient_normal) + (bcf_previous_code_lucas_block_digit_canonical_high_quotient_normal_table))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_decoded_previous_scale. bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_decoded_previous_scale + S (bcf_previous_scale_lucas_block_digit_canonical_high_quotient_normal_table) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_quotient_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_decoded_previous_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_quotient_normal = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_quotient_normal) + (bcf_previous_scale_lucas_block_digit_canonical_high_quotient_normal_table))) /\ (forall bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_row_step. (exists bcf_lt_gap_lucas_block_digit_canonical_high_quotient_normal_table_row_step_bound. bcf_lt_gap_lucas_block_digit_canonical_high_quotient_normal_table_row_step_bound + S (bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_row_step) = S (S q)) -> exists bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_row_step. ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_row_step_entry. bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_row_step_entry + S (bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_row_step) = S ((S (bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_row_step_entry. bcf_row_code_lucas_block_digit_canonical_high_quotient_normal_table = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_row_step_entry * S ((S (bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_row_step)) * bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal_table) + (bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_row_step))) /\ ((bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_row_step = 0 /\ bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_row_step = 1) \/ exists bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table_row_step bcf_left_lucas_block_digit_canonical_high_quotient_normal_table_row_step bcf_right_lucas_block_digit_canonical_high_quotient_normal_table_row_step. bcf_index_lucas_block_digit_canonical_high_quotient_normal_table_row_step = S bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table_row_step /\ ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_row_step_previous_left. bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_row_step_previous_left + S (bcf_left_lucas_block_digit_canonical_high_quotient_normal_table_row_step) = S ((S (bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_quotient_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_row_step_previous_left. bcf_previous_code_lucas_block_digit_canonical_high_quotient_normal_table = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table_row_step)) * bcf_previous_scale_lucas_block_digit_canonical_high_quotient_normal_table) + (bcf_left_lucas_block_digit_canonical_high_quotient_normal_table_row_step))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_row_step_previous_right. bcf_height_lucas_block_digit_canonical_high_quotient_normal_table_row_step_previous_right + S (bcf_right_lucas_block_digit_canonical_high_quotient_normal_table_row_step) = S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_quotient_normal_table)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_row_step_previous_right. bcf_previous_code_lucas_block_digit_canonical_high_quotient_normal_table = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_block_digit_canonical_high_quotient_normal_table_row_step))) * bcf_previous_scale_lucas_block_digit_canonical_high_quotient_normal_table) + (bcf_right_lucas_block_digit_canonical_high_quotient_normal_table_row_step))) /\ bcf_value_lucas_block_digit_canonical_high_quotient_normal_table_row_step = bcf_left_lucas_block_digit_canonical_high_quotient_normal_table_row_step + bcf_right_lucas_block_digit_canonical_high_quotient_normal_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_decoded_row_code. bcf_height_lucas_block_digit_canonical_high_quotient_normal_decoded_row_code + S (bcf_row_code_lucas_block_digit_canonical_high_quotient_normal) = S ((S (S q)) * bcf_row_code_scale_lucas_block_digit_canonical_high_quotient_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_decoded_row_code. bcf_row_code_code_lucas_block_digit_canonical_high_quotient_normal = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_decoded_row_code * S ((S (S q)) * bcf_row_code_scale_lucas_block_digit_canonical_high_quotient_normal) + (bcf_row_code_lucas_block_digit_canonical_high_quotient_normal))) /\ ((((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_decoded_row_scale. bcf_height_lucas_block_digit_canonical_high_quotient_normal_decoded_row_scale + S (bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal) = S ((S (S q)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_quotient_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_decoded_row_scale. bcf_row_scale_code_lucas_block_digit_canonical_high_quotient_normal = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_decoded_row_scale * S ((S (S q)) * bcf_row_scale_scale_lucas_block_digit_canonical_high_quotient_normal) + (bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal))) /\ (((exists bcf_height_lucas_block_digit_canonical_high_quotient_normal_decoded_value. bcf_height_lucas_block_digit_canonical_high_quotient_normal_decoded_value + S (A) = S ((S (S x)) * bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal)) /\ exists bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_decoded_value. bcf_row_code_lucas_block_digit_canonical_high_quotient_normal = bcf_quotient_lucas_block_digit_canonical_high_quotient_normal_decoded_value * S ((S (S x)) * bcf_row_scale_lucas_block_digit_canonical_high_quotient_normal) + (A)))))))) - 0219
specialize lucas_choose_lower_eq_transport (S q) - 0220
specialize lucas_choose_lower_eq_transport r - 0221
specialize lucas_choose_lower_eq_transport (S x) - 0222
specialize lucas_choose_lower_eq_transport A - 0223
apply lucas_choose_lower_eq_transport - 0224
exact hsuccessor_witness - 0225
exact hquotient - 0226
have hpascal : A = x4 + x3 - 0227
specialize choose_succ_succ q - 0228
specialize choose_succ_succ x - 0229
specialize choose_succ_succ x4 - 0230
specialize choose_succ_succ x3 - 0231
specialize choose_succ_succ A - 0232
apply choose_succ_succ - 0233
exact hright_quotient_witness - 0234
exact hleft_quotient_witness - 0235
exact hquotient_normal - 0236
have hsum : x3 + x4 = A - 0237
trans x4 + x3 - 0238
apply add_comm - 0239
symm - 0240
exact hpascal - 0241
have hfactorized : x3 * B + x4 * B = A * B - 0242
trans (x3 + x4) * B - 0243
symm - 0244
apply add_mul - 0245
congr - 0246
exact hsum - 0247
refl - 0248
rewrite hfactorized at hsum_mod - 0249
specialize mod_eq_trans p - 0250
specialize mod_eq_trans C - 0251
specialize mod_eq_trans (x1 + x2) - 0252
specialize mod_eq_trans (A * B) - 0253
apply mod_eq_trans - 0254
exact hshift - 0255
exact hsum_mod