BT00TS

central_binom_succ_double_middle

Alpha body-checked ยท checked-use disabled

A successor central binomial is twice its odd-row middle value.

Exact expanded PA statement

forall n d. (((exists bcf_lt_gap_bcbsdm_successor_out_of_range. bcf_lt_gap_bcbsdm_successor_out_of_range + S (S n + S n) = S n) /\ d = 0) \/ ((exists bcf_le_gap_bcbsdm_successor_in_range. bcf_le_gap_bcbsdm_successor_in_range + (S n) = S n + S n) /\ (exists bcf_row_code_code_bcbsdm_successor bcf_row_code_scale_bcbsdm_successor bcf_row_scale_code_bcbsdm_successor bcf_row_scale_scale_bcbsdm_successor bcf_row_code_bcbsdm_successor bcf_row_scale_bcbsdm_successor. ((forall bcf_row_index_bcbsdm_successor_table. (exists bcf_lt_gap_bcbsdm_successor_table_row_bound. bcf_lt_gap_bcbsdm_successor_table_row_bound + S (bcf_row_index_bcbsdm_successor_table) = S (S n + S n)) -> exists bcf_row_code_bcbsdm_successor_table bcf_row_scale_bcbsdm_successor_table. ((((exists bcf_height_bcbsdm_successor_table_decoded_row_code. bcf_height_bcbsdm_successor_table_decoded_row_code + S (bcf_row_code_bcbsdm_successor_table) = S ((S (bcf_row_index_bcbsdm_successor_table)) * bcf_row_code_scale_bcbsdm_successor)) /\ exists bcf_quotient_bcbsdm_successor_table_decoded_row_code. bcf_row_code_code_bcbsdm_successor = bcf_quotient_bcbsdm_successor_table_decoded_row_code * S ((S (bcf_row_index_bcbsdm_successor_table)) * bcf_row_code_scale_bcbsdm_successor) + (bcf_row_code_bcbsdm_successor_table))) /\ ((((exists bcf_height_bcbsdm_successor_table_decoded_row_scale. bcf_height_bcbsdm_successor_table_decoded_row_scale + S (bcf_row_scale_bcbsdm_successor_table) = S ((S (bcf_row_index_bcbsdm_successor_table)) * bcf_row_scale_scale_bcbsdm_successor)) /\ exists bcf_quotient_bcbsdm_successor_table_decoded_row_scale. bcf_row_scale_code_bcbsdm_successor = bcf_quotient_bcbsdm_successor_table_decoded_row_scale * S ((S (bcf_row_index_bcbsdm_successor_table)) * bcf_row_scale_scale_bcbsdm_successor) + (bcf_row_scale_bcbsdm_successor_table))) /\ ((bcf_row_index_bcbsdm_successor_table = 0 /\ (forall bcf_index_bcbsdm_successor_table_zero_row. (exists bcf_lt_gap_bcbsdm_successor_table_zero_row_bound. bcf_lt_gap_bcbsdm_successor_table_zero_row_bound + S (bcf_index_bcbsdm_successor_table_zero_row) = S (S n + S n)) -> exists bcf_value_bcbsdm_successor_table_zero_row. ((((exists bcf_height_bcbsdm_successor_table_zero_row_entry. bcf_height_bcbsdm_successor_table_zero_row_entry + S (bcf_value_bcbsdm_successor_table_zero_row) = S ((S (bcf_index_bcbsdm_successor_table_zero_row)) * bcf_row_scale_bcbsdm_successor_table)) /\ exists bcf_quotient_bcbsdm_successor_table_zero_row_entry. bcf_row_code_bcbsdm_successor_table = bcf_quotient_bcbsdm_successor_table_zero_row_entry * S ((S (bcf_index_bcbsdm_successor_table_zero_row)) * bcf_row_scale_bcbsdm_successor_table) + (bcf_value_bcbsdm_successor_table_zero_row))) /\ ((bcf_index_bcbsdm_successor_table_zero_row = 0 /\ bcf_value_bcbsdm_successor_table_zero_row = 1) \/ exists bcf_predecessor_bcbsdm_successor_table_zero_row. bcf_index_bcbsdm_successor_table_zero_row = S bcf_predecessor_bcbsdm_successor_table_zero_row /\ bcf_value_bcbsdm_successor_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsdm_successor_table bcf_previous_code_bcbsdm_successor_table bcf_previous_scale_bcbsdm_successor_table. bcf_row_index_bcbsdm_successor_table = S bcf_predecessor_bcbsdm_successor_table /\ ((((exists bcf_height_bcbsdm_successor_table_decoded_previous_code. bcf_height_bcbsdm_successor_table_decoded_previous_code + S (bcf_previous_code_bcbsdm_successor_table) = S ((S (bcf_predecessor_bcbsdm_successor_table)) * bcf_row_code_scale_bcbsdm_successor)) /\ exists bcf_quotient_bcbsdm_successor_table_decoded_previous_code. bcf_row_code_code_bcbsdm_successor = bcf_quotient_bcbsdm_successor_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsdm_successor_table)) * bcf_row_code_scale_bcbsdm_successor) + (bcf_previous_code_bcbsdm_successor_table))) /\ ((((exists bcf_height_bcbsdm_successor_table_decoded_previous_scale. bcf_height_bcbsdm_successor_table_decoded_previous_scale + S (bcf_previous_scale_bcbsdm_successor_table) = S ((S (bcf_predecessor_bcbsdm_successor_table)) * bcf_row_scale_scale_bcbsdm_successor)) /\ exists bcf_quotient_bcbsdm_successor_table_decoded_previous_scale. bcf_row_scale_code_bcbsdm_successor = bcf_quotient_bcbsdm_successor_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsdm_successor_table)) * bcf_row_scale_scale_bcbsdm_successor) + (bcf_previous_scale_bcbsdm_successor_table))) /\ (forall bcf_index_bcbsdm_successor_table_row_step. (exists bcf_lt_gap_bcbsdm_successor_table_row_step_bound. bcf_lt_gap_bcbsdm_successor_table_row_step_bound + S (bcf_index_bcbsdm_successor_table_row_step) = S (S n + S n)) -> exists bcf_value_bcbsdm_successor_table_row_step. ((((exists bcf_height_bcbsdm_successor_table_row_step_entry. bcf_height_bcbsdm_successor_table_row_step_entry + S (bcf_value_bcbsdm_successor_table_row_step) = S ((S (bcf_index_bcbsdm_successor_table_row_step)) * bcf_row_scale_bcbsdm_successor_table)) /\ exists bcf_quotient_bcbsdm_successor_table_row_step_entry. bcf_row_code_bcbsdm_successor_table = bcf_quotient_bcbsdm_successor_table_row_step_entry * S ((S (bcf_index_bcbsdm_successor_table_row_step)) * bcf_row_scale_bcbsdm_successor_table) + (bcf_value_bcbsdm_successor_table_row_step))) /\ ((bcf_index_bcbsdm_successor_table_row_step = 0 /\ bcf_value_bcbsdm_successor_table_row_step = 1) \/ exists bcf_predecessor_bcbsdm_successor_table_row_step bcf_left_bcbsdm_successor_table_row_step bcf_right_bcbsdm_successor_table_row_step. bcf_index_bcbsdm_successor_table_row_step = S bcf_predecessor_bcbsdm_successor_table_row_step /\ ((((exists bcf_height_bcbsdm_successor_table_row_step_previous_left. bcf_height_bcbsdm_successor_table_row_step_previous_left + S (bcf_left_bcbsdm_successor_table_row_step) = S ((S (bcf_predecessor_bcbsdm_successor_table_row_step)) * bcf_previous_scale_bcbsdm_successor_table)) /\ exists bcf_quotient_bcbsdm_successor_table_row_step_previous_left. bcf_previous_code_bcbsdm_successor_table = bcf_quotient_bcbsdm_successor_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsdm_successor_table_row_step)) * bcf_previous_scale_bcbsdm_successor_table) + (bcf_left_bcbsdm_successor_table_row_step))) /\ ((((exists bcf_height_bcbsdm_successor_table_row_step_previous_right. bcf_height_bcbsdm_successor_table_row_step_previous_right + S (bcf_right_bcbsdm_successor_table_row_step) = S ((S (S (bcf_predecessor_bcbsdm_successor_table_row_step))) * bcf_previous_scale_bcbsdm_successor_table)) /\ exists bcf_quotient_bcbsdm_successor_table_row_step_previous_right. bcf_previous_code_bcbsdm_successor_table = bcf_quotient_bcbsdm_successor_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsdm_successor_table_row_step))) * bcf_previous_scale_bcbsdm_successor_table) + (bcf_right_bcbsdm_successor_table_row_step))) /\ bcf_value_bcbsdm_successor_table_row_step = bcf_left_bcbsdm_successor_table_row_step + bcf_right_bcbsdm_successor_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsdm_successor_decoded_row_code. bcf_height_bcbsdm_successor_decoded_row_code + S (bcf_row_code_bcbsdm_successor) = S ((S (S n + S n)) * bcf_row_code_scale_bcbsdm_successor)) /\ exists bcf_quotient_bcbsdm_successor_decoded_row_code. bcf_row_code_code_bcbsdm_successor = bcf_quotient_bcbsdm_successor_decoded_row_code * S ((S (S n + S n)) * bcf_row_code_scale_bcbsdm_successor) + (bcf_row_code_bcbsdm_successor))) /\ ((((exists bcf_height_bcbsdm_successor_decoded_row_scale. bcf_height_bcbsdm_successor_decoded_row_scale + S (bcf_row_scale_bcbsdm_successor) = S ((S (S n + S n)) * bcf_row_scale_scale_bcbsdm_successor)) /\ exists bcf_quotient_bcbsdm_successor_decoded_row_scale. bcf_row_scale_code_bcbsdm_successor = bcf_quotient_bcbsdm_successor_decoded_row_scale * S ((S (S n + S n)) * bcf_row_scale_scale_bcbsdm_successor) + (bcf_row_scale_bcbsdm_successor))) /\ (((exists bcf_height_bcbsdm_successor_decoded_value. bcf_height_bcbsdm_successor_decoded_value + S (d) = S ((S (S n)) * bcf_row_scale_bcbsdm_successor)) /\ exists bcf_quotient_bcbsdm_successor_decoded_value. bcf_row_code_bcbsdm_successor = bcf_quotient_bcbsdm_successor_decoded_value * S ((S (S n)) * bcf_row_scale_bcbsdm_successor) + (d))))))))) -> exists m. ((((exists bcf_lt_gap_bcbsdm_middle_out_of_range. bcf_lt_gap_bcbsdm_middle_out_of_range + S (S (n + n)) = n) /\ m = 0) \/ ((exists bcf_le_gap_bcbsdm_middle_in_range. bcf_le_gap_bcbsdm_middle_in_range + (n) = S (n + n)) /\ (exists bcf_row_code_code_bcbsdm_middle bcf_row_code_scale_bcbsdm_middle bcf_row_scale_code_bcbsdm_middle bcf_row_scale_scale_bcbsdm_middle bcf_row_code_bcbsdm_middle bcf_row_scale_bcbsdm_middle. ((forall bcf_row_index_bcbsdm_middle_table. (exists bcf_lt_gap_bcbsdm_middle_table_row_bound. bcf_lt_gap_bcbsdm_middle_table_row_bound + S (bcf_row_index_bcbsdm_middle_table) = S (S (n + n))) -> exists bcf_row_code_bcbsdm_middle_table bcf_row_scale_bcbsdm_middle_table. ((((exists bcf_height_bcbsdm_middle_table_decoded_row_code. bcf_height_bcbsdm_middle_table_decoded_row_code + S (bcf_row_code_bcbsdm_middle_table) = S ((S (bcf_row_index_bcbsdm_middle_table)) * bcf_row_code_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_table_decoded_row_code. bcf_row_code_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_table_decoded_row_code * S ((S (bcf_row_index_bcbsdm_middle_table)) * bcf_row_code_scale_bcbsdm_middle) + (bcf_row_code_bcbsdm_middle_table))) /\ ((((exists bcf_height_bcbsdm_middle_table_decoded_row_scale. bcf_height_bcbsdm_middle_table_decoded_row_scale + S (bcf_row_scale_bcbsdm_middle_table) = S ((S (bcf_row_index_bcbsdm_middle_table)) * bcf_row_scale_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_table_decoded_row_scale. bcf_row_scale_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_table_decoded_row_scale * S ((S (bcf_row_index_bcbsdm_middle_table)) * bcf_row_scale_scale_bcbsdm_middle) + (bcf_row_scale_bcbsdm_middle_table))) /\ ((bcf_row_index_bcbsdm_middle_table = 0 /\ (forall bcf_index_bcbsdm_middle_table_zero_row. (exists bcf_lt_gap_bcbsdm_middle_table_zero_row_bound. bcf_lt_gap_bcbsdm_middle_table_zero_row_bound + S (bcf_index_bcbsdm_middle_table_zero_row) = S (S (n + n))) -> exists bcf_value_bcbsdm_middle_table_zero_row. ((((exists bcf_height_bcbsdm_middle_table_zero_row_entry. bcf_height_bcbsdm_middle_table_zero_row_entry + S (bcf_value_bcbsdm_middle_table_zero_row) = S ((S (bcf_index_bcbsdm_middle_table_zero_row)) * bcf_row_scale_bcbsdm_middle_table)) /\ exists bcf_quotient_bcbsdm_middle_table_zero_row_entry. bcf_row_code_bcbsdm_middle_table = bcf_quotient_bcbsdm_middle_table_zero_row_entry * S ((S (bcf_index_bcbsdm_middle_table_zero_row)) * bcf_row_scale_bcbsdm_middle_table) + (bcf_value_bcbsdm_middle_table_zero_row))) /\ ((bcf_index_bcbsdm_middle_table_zero_row = 0 /\ bcf_value_bcbsdm_middle_table_zero_row = 1) \/ exists bcf_predecessor_bcbsdm_middle_table_zero_row. bcf_index_bcbsdm_middle_table_zero_row = S bcf_predecessor_bcbsdm_middle_table_zero_row /\ bcf_value_bcbsdm_middle_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsdm_middle_table bcf_previous_code_bcbsdm_middle_table bcf_previous_scale_bcbsdm_middle_table. bcf_row_index_bcbsdm_middle_table = S bcf_predecessor_bcbsdm_middle_table /\ ((((exists bcf_height_bcbsdm_middle_table_decoded_previous_code. bcf_height_bcbsdm_middle_table_decoded_previous_code + S (bcf_previous_code_bcbsdm_middle_table) = S ((S (bcf_predecessor_bcbsdm_middle_table)) * bcf_row_code_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_table_decoded_previous_code. bcf_row_code_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsdm_middle_table)) * bcf_row_code_scale_bcbsdm_middle) + (bcf_previous_code_bcbsdm_middle_table))) /\ ((((exists bcf_height_bcbsdm_middle_table_decoded_previous_scale. bcf_height_bcbsdm_middle_table_decoded_previous_scale + S (bcf_previous_scale_bcbsdm_middle_table) = S ((S (bcf_predecessor_bcbsdm_middle_table)) * bcf_row_scale_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_table_decoded_previous_scale. bcf_row_scale_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsdm_middle_table)) * bcf_row_scale_scale_bcbsdm_middle) + (bcf_previous_scale_bcbsdm_middle_table))) /\ (forall bcf_index_bcbsdm_middle_table_row_step. (exists bcf_lt_gap_bcbsdm_middle_table_row_step_bound. bcf_lt_gap_bcbsdm_middle_table_row_step_bound + S (bcf_index_bcbsdm_middle_table_row_step) = S (S (n + n))) -> exists bcf_value_bcbsdm_middle_table_row_step. ((((exists bcf_height_bcbsdm_middle_table_row_step_entry. bcf_height_bcbsdm_middle_table_row_step_entry + S (bcf_value_bcbsdm_middle_table_row_step) = S ((S (bcf_index_bcbsdm_middle_table_row_step)) * bcf_row_scale_bcbsdm_middle_table)) /\ exists bcf_quotient_bcbsdm_middle_table_row_step_entry. bcf_row_code_bcbsdm_middle_table = bcf_quotient_bcbsdm_middle_table_row_step_entry * S ((S (bcf_index_bcbsdm_middle_table_row_step)) * bcf_row_scale_bcbsdm_middle_table) + (bcf_value_bcbsdm_middle_table_row_step))) /\ ((bcf_index_bcbsdm_middle_table_row_step = 0 /\ bcf_value_bcbsdm_middle_table_row_step = 1) \/ exists bcf_predecessor_bcbsdm_middle_table_row_step bcf_left_bcbsdm_middle_table_row_step bcf_right_bcbsdm_middle_table_row_step. bcf_index_bcbsdm_middle_table_row_step = S bcf_predecessor_bcbsdm_middle_table_row_step /\ ((((exists bcf_height_bcbsdm_middle_table_row_step_previous_left. bcf_height_bcbsdm_middle_table_row_step_previous_left + S (bcf_left_bcbsdm_middle_table_row_step) = S ((S (bcf_predecessor_bcbsdm_middle_table_row_step)) * bcf_previous_scale_bcbsdm_middle_table)) /\ exists bcf_quotient_bcbsdm_middle_table_row_step_previous_left. bcf_previous_code_bcbsdm_middle_table = bcf_quotient_bcbsdm_middle_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsdm_middle_table_row_step)) * bcf_previous_scale_bcbsdm_middle_table) + (bcf_left_bcbsdm_middle_table_row_step))) /\ ((((exists bcf_height_bcbsdm_middle_table_row_step_previous_right. bcf_height_bcbsdm_middle_table_row_step_previous_right + S (bcf_right_bcbsdm_middle_table_row_step) = S ((S (S (bcf_predecessor_bcbsdm_middle_table_row_step))) * bcf_previous_scale_bcbsdm_middle_table)) /\ exists bcf_quotient_bcbsdm_middle_table_row_step_previous_right. bcf_previous_code_bcbsdm_middle_table = bcf_quotient_bcbsdm_middle_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsdm_middle_table_row_step))) * bcf_previous_scale_bcbsdm_middle_table) + (bcf_right_bcbsdm_middle_table_row_step))) /\ bcf_value_bcbsdm_middle_table_row_step = bcf_left_bcbsdm_middle_table_row_step + bcf_right_bcbsdm_middle_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsdm_middle_decoded_row_code. bcf_height_bcbsdm_middle_decoded_row_code + S (bcf_row_code_bcbsdm_middle) = S ((S (S (n + n))) * bcf_row_code_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_decoded_row_code. bcf_row_code_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_decoded_row_code * S ((S (S (n + n))) * bcf_row_code_scale_bcbsdm_middle) + (bcf_row_code_bcbsdm_middle))) /\ ((((exists bcf_height_bcbsdm_middle_decoded_row_scale. bcf_height_bcbsdm_middle_decoded_row_scale + S (bcf_row_scale_bcbsdm_middle) = S ((S (S (n + n))) * bcf_row_scale_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_decoded_row_scale. bcf_row_scale_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_decoded_row_scale * S ((S (S (n + n))) * bcf_row_scale_scale_bcbsdm_middle) + (bcf_row_scale_bcbsdm_middle))) /\ (((exists bcf_height_bcbsdm_middle_decoded_value. bcf_height_bcbsdm_middle_decoded_value + S (m) = S ((S (n)) * bcf_row_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_decoded_value. bcf_row_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_decoded_value * S ((S (n)) * bcf_row_scale_bcbsdm_middle) + (m))))))))) /\ d = m + m)

Structural proof guide

A successor central binomial is twice its odd-row middle value.

Direct prerequisites: add_succ_left, choose_exists, choose_symmetry, choose_succ_succ, choose_upper_eq_transport. The authored body proceeds by case analysis (2), intermediate claims (6), equality transport (1).

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.

  1. 0001intro n
  2. 0002intro d
  3. 0003intro hsuccessor
  4. 0004have hupper : S n + S n = S (S (n + n))
  5. 0005trans S (n + S n)
  6. 0006specialize add_succ_left n
  7. 0007specialize add_succ_left (S n)
  8. 0008apply add_succ_left
  9. 0009congr
  10. 0010apply PA4
  11. 0011have hnormalized : ((exists bcf_lt_gap_bcbsdm_normalized_out_of_range. bcf_lt_gap_bcbsdm_normalized_out_of_range + S (S (S (n + n))) = S n) /\ d = 0) \/ ((exists bcf_le_gap_bcbsdm_normalized_in_range. bcf_le_gap_bcbsdm_normalized_in_range + (S n) = S (S (n + n))) /\ (exists bcf_row_code_code_bcbsdm_normalized bcf_row_code_scale_bcbsdm_normalized bcf_row_scale_code_bcbsdm_normalized bcf_row_scale_scale_bcbsdm_normalized bcf_row_code_bcbsdm_normalized bcf_row_scale_bcbsdm_normalized. ((forall bcf_row_index_bcbsdm_normalized_table. (exists bcf_lt_gap_bcbsdm_normalized_table_row_bound. bcf_lt_gap_bcbsdm_normalized_table_row_bound + S (bcf_row_index_bcbsdm_normalized_table) = S (S (S (n + n)))) -> exists bcf_row_code_bcbsdm_normalized_table bcf_row_scale_bcbsdm_normalized_table. ((((exists bcf_height_bcbsdm_normalized_table_decoded_row_code. bcf_height_bcbsdm_normalized_table_decoded_row_code + S (bcf_row_code_bcbsdm_normalized_table) = S ((S (bcf_row_index_bcbsdm_normalized_table)) * bcf_row_code_scale_bcbsdm_normalized)) /\ exists bcf_quotient_bcbsdm_normalized_table_decoded_row_code. bcf_row_code_code_bcbsdm_normalized = bcf_quotient_bcbsdm_normalized_table_decoded_row_code * S ((S (bcf_row_index_bcbsdm_normalized_table)) * bcf_row_code_scale_bcbsdm_normalized) + (bcf_row_code_bcbsdm_normalized_table))) /\ ((((exists bcf_height_bcbsdm_normalized_table_decoded_row_scale. bcf_height_bcbsdm_normalized_table_decoded_row_scale + S (bcf_row_scale_bcbsdm_normalized_table) = S ((S (bcf_row_index_bcbsdm_normalized_table)) * bcf_row_scale_scale_bcbsdm_normalized)) /\ exists bcf_quotient_bcbsdm_normalized_table_decoded_row_scale. bcf_row_scale_code_bcbsdm_normalized = bcf_quotient_bcbsdm_normalized_table_decoded_row_scale * S ((S (bcf_row_index_bcbsdm_normalized_table)) * bcf_row_scale_scale_bcbsdm_normalized) + (bcf_row_scale_bcbsdm_normalized_table))) /\ ((bcf_row_index_bcbsdm_normalized_table = 0 /\ (forall bcf_index_bcbsdm_normalized_table_zero_row. (exists bcf_lt_gap_bcbsdm_normalized_table_zero_row_bound. bcf_lt_gap_bcbsdm_normalized_table_zero_row_bound + S (bcf_index_bcbsdm_normalized_table_zero_row) = S (S (S (n + n)))) -> exists bcf_value_bcbsdm_normalized_table_zero_row. ((((exists bcf_height_bcbsdm_normalized_table_zero_row_entry. bcf_height_bcbsdm_normalized_table_zero_row_entry + S (bcf_value_bcbsdm_normalized_table_zero_row) = S ((S (bcf_index_bcbsdm_normalized_table_zero_row)) * bcf_row_scale_bcbsdm_normalized_table)) /\ exists bcf_quotient_bcbsdm_normalized_table_zero_row_entry. bcf_row_code_bcbsdm_normalized_table = bcf_quotient_bcbsdm_normalized_table_zero_row_entry * S ((S (bcf_index_bcbsdm_normalized_table_zero_row)) * bcf_row_scale_bcbsdm_normalized_table) + (bcf_value_bcbsdm_normalized_table_zero_row))) /\ ((bcf_index_bcbsdm_normalized_table_zero_row = 0 /\ bcf_value_bcbsdm_normalized_table_zero_row = 1) \/ exists bcf_predecessor_bcbsdm_normalized_table_zero_row. bcf_index_bcbsdm_normalized_table_zero_row = S bcf_predecessor_bcbsdm_normalized_table_zero_row /\ bcf_value_bcbsdm_normalized_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsdm_normalized_table bcf_previous_code_bcbsdm_normalized_table bcf_previous_scale_bcbsdm_normalized_table. bcf_row_index_bcbsdm_normalized_table = S bcf_predecessor_bcbsdm_normalized_table /\ ((((exists bcf_height_bcbsdm_normalized_table_decoded_previous_code. bcf_height_bcbsdm_normalized_table_decoded_previous_code + S (bcf_previous_code_bcbsdm_normalized_table) = S ((S (bcf_predecessor_bcbsdm_normalized_table)) * bcf_row_code_scale_bcbsdm_normalized)) /\ exists bcf_quotient_bcbsdm_normalized_table_decoded_previous_code. bcf_row_code_code_bcbsdm_normalized = bcf_quotient_bcbsdm_normalized_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsdm_normalized_table)) * bcf_row_code_scale_bcbsdm_normalized) + (bcf_previous_code_bcbsdm_normalized_table))) /\ ((((exists bcf_height_bcbsdm_normalized_table_decoded_previous_scale. bcf_height_bcbsdm_normalized_table_decoded_previous_scale + S (bcf_previous_scale_bcbsdm_normalized_table) = S ((S (bcf_predecessor_bcbsdm_normalized_table)) * bcf_row_scale_scale_bcbsdm_normalized)) /\ exists bcf_quotient_bcbsdm_normalized_table_decoded_previous_scale. bcf_row_scale_code_bcbsdm_normalized = bcf_quotient_bcbsdm_normalized_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsdm_normalized_table)) * bcf_row_scale_scale_bcbsdm_normalized) + (bcf_previous_scale_bcbsdm_normalized_table))) /\ (forall bcf_index_bcbsdm_normalized_table_row_step. (exists bcf_lt_gap_bcbsdm_normalized_table_row_step_bound. bcf_lt_gap_bcbsdm_normalized_table_row_step_bound + S (bcf_index_bcbsdm_normalized_table_row_step) = S (S (S (n + n)))) -> exists bcf_value_bcbsdm_normalized_table_row_step. ((((exists bcf_height_bcbsdm_normalized_table_row_step_entry. bcf_height_bcbsdm_normalized_table_row_step_entry + S (bcf_value_bcbsdm_normalized_table_row_step) = S ((S (bcf_index_bcbsdm_normalized_table_row_step)) * bcf_row_scale_bcbsdm_normalized_table)) /\ exists bcf_quotient_bcbsdm_normalized_table_row_step_entry. bcf_row_code_bcbsdm_normalized_table = bcf_quotient_bcbsdm_normalized_table_row_step_entry * S ((S (bcf_index_bcbsdm_normalized_table_row_step)) * bcf_row_scale_bcbsdm_normalized_table) + (bcf_value_bcbsdm_normalized_table_row_step))) /\ ((bcf_index_bcbsdm_normalized_table_row_step = 0 /\ bcf_value_bcbsdm_normalized_table_row_step = 1) \/ exists bcf_predecessor_bcbsdm_normalized_table_row_step bcf_left_bcbsdm_normalized_table_row_step bcf_right_bcbsdm_normalized_table_row_step. bcf_index_bcbsdm_normalized_table_row_step = S bcf_predecessor_bcbsdm_normalized_table_row_step /\ ((((exists bcf_height_bcbsdm_normalized_table_row_step_previous_left. bcf_height_bcbsdm_normalized_table_row_step_previous_left + S (bcf_left_bcbsdm_normalized_table_row_step) = S ((S (bcf_predecessor_bcbsdm_normalized_table_row_step)) * bcf_previous_scale_bcbsdm_normalized_table)) /\ exists bcf_quotient_bcbsdm_normalized_table_row_step_previous_left. bcf_previous_code_bcbsdm_normalized_table = bcf_quotient_bcbsdm_normalized_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsdm_normalized_table_row_step)) * bcf_previous_scale_bcbsdm_normalized_table) + (bcf_left_bcbsdm_normalized_table_row_step))) /\ ((((exists bcf_height_bcbsdm_normalized_table_row_step_previous_right. bcf_height_bcbsdm_normalized_table_row_step_previous_right + S (bcf_right_bcbsdm_normalized_table_row_step) = S ((S (S (bcf_predecessor_bcbsdm_normalized_table_row_step))) * bcf_previous_scale_bcbsdm_normalized_table)) /\ exists bcf_quotient_bcbsdm_normalized_table_row_step_previous_right. bcf_previous_code_bcbsdm_normalized_table = bcf_quotient_bcbsdm_normalized_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsdm_normalized_table_row_step))) * bcf_previous_scale_bcbsdm_normalized_table) + (bcf_right_bcbsdm_normalized_table_row_step))) /\ bcf_value_bcbsdm_normalized_table_row_step = bcf_left_bcbsdm_normalized_table_row_step + bcf_right_bcbsdm_normalized_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsdm_normalized_decoded_row_code. bcf_height_bcbsdm_normalized_decoded_row_code + S (bcf_row_code_bcbsdm_normalized) = S ((S (S (S (n + n)))) * bcf_row_code_scale_bcbsdm_normalized)) /\ exists bcf_quotient_bcbsdm_normalized_decoded_row_code. bcf_row_code_code_bcbsdm_normalized = bcf_quotient_bcbsdm_normalized_decoded_row_code * S ((S (S (S (n + n)))) * bcf_row_code_scale_bcbsdm_normalized) + (bcf_row_code_bcbsdm_normalized))) /\ ((((exists bcf_height_bcbsdm_normalized_decoded_row_scale. bcf_height_bcbsdm_normalized_decoded_row_scale + S (bcf_row_scale_bcbsdm_normalized) = S ((S (S (S (n + n)))) * bcf_row_scale_scale_bcbsdm_normalized)) /\ exists bcf_quotient_bcbsdm_normalized_decoded_row_scale. bcf_row_scale_code_bcbsdm_normalized = bcf_quotient_bcbsdm_normalized_decoded_row_scale * S ((S (S (S (n + n)))) * bcf_row_scale_scale_bcbsdm_normalized) + (bcf_row_scale_bcbsdm_normalized))) /\ (((exists bcf_height_bcbsdm_normalized_decoded_value. bcf_height_bcbsdm_normalized_decoded_value + S (d) = S ((S (S n)) * bcf_row_scale_bcbsdm_normalized)) /\ exists bcf_quotient_bcbsdm_normalized_decoded_value. bcf_row_code_bcbsdm_normalized = bcf_quotient_bcbsdm_normalized_decoded_value * S ((S (S n)) * bcf_row_scale_bcbsdm_normalized) + (d))))))))
  12. 0012specialize choose_upper_eq_transport (S n + S n)
  13. 0013specialize choose_upper_eq_transport (S (S (n + n)))
  14. 0014specialize choose_upper_eq_transport (S n)
  15. 0015specialize choose_upper_eq_transport d
  16. 0016apply choose_upper_eq_transport
  17. 0017exact hupper
  18. 0018exact hsuccessor
  19. 0019have hmiddle_exists : exists m. (((exists bcf_lt_gap_bcbsdm_middle_out_of_range. bcf_lt_gap_bcbsdm_middle_out_of_range + S (S (n + n)) = n) /\ m = 0) \/ ((exists bcf_le_gap_bcbsdm_middle_in_range. bcf_le_gap_bcbsdm_middle_in_range + (n) = S (n + n)) /\ (exists bcf_row_code_code_bcbsdm_middle bcf_row_code_scale_bcbsdm_middle bcf_row_scale_code_bcbsdm_middle bcf_row_scale_scale_bcbsdm_middle bcf_row_code_bcbsdm_middle bcf_row_scale_bcbsdm_middle. ((forall bcf_row_index_bcbsdm_middle_table. (exists bcf_lt_gap_bcbsdm_middle_table_row_bound. bcf_lt_gap_bcbsdm_middle_table_row_bound + S (bcf_row_index_bcbsdm_middle_table) = S (S (n + n))) -> exists bcf_row_code_bcbsdm_middle_table bcf_row_scale_bcbsdm_middle_table. ((((exists bcf_height_bcbsdm_middle_table_decoded_row_code. bcf_height_bcbsdm_middle_table_decoded_row_code + S (bcf_row_code_bcbsdm_middle_table) = S ((S (bcf_row_index_bcbsdm_middle_table)) * bcf_row_code_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_table_decoded_row_code. bcf_row_code_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_table_decoded_row_code * S ((S (bcf_row_index_bcbsdm_middle_table)) * bcf_row_code_scale_bcbsdm_middle) + (bcf_row_code_bcbsdm_middle_table))) /\ ((((exists bcf_height_bcbsdm_middle_table_decoded_row_scale. bcf_height_bcbsdm_middle_table_decoded_row_scale + S (bcf_row_scale_bcbsdm_middle_table) = S ((S (bcf_row_index_bcbsdm_middle_table)) * bcf_row_scale_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_table_decoded_row_scale. bcf_row_scale_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_table_decoded_row_scale * S ((S (bcf_row_index_bcbsdm_middle_table)) * bcf_row_scale_scale_bcbsdm_middle) + (bcf_row_scale_bcbsdm_middle_table))) /\ ((bcf_row_index_bcbsdm_middle_table = 0 /\ (forall bcf_index_bcbsdm_middle_table_zero_row. (exists bcf_lt_gap_bcbsdm_middle_table_zero_row_bound. bcf_lt_gap_bcbsdm_middle_table_zero_row_bound + S (bcf_index_bcbsdm_middle_table_zero_row) = S (S (n + n))) -> exists bcf_value_bcbsdm_middle_table_zero_row. ((((exists bcf_height_bcbsdm_middle_table_zero_row_entry. bcf_height_bcbsdm_middle_table_zero_row_entry + S (bcf_value_bcbsdm_middle_table_zero_row) = S ((S (bcf_index_bcbsdm_middle_table_zero_row)) * bcf_row_scale_bcbsdm_middle_table)) /\ exists bcf_quotient_bcbsdm_middle_table_zero_row_entry. bcf_row_code_bcbsdm_middle_table = bcf_quotient_bcbsdm_middle_table_zero_row_entry * S ((S (bcf_index_bcbsdm_middle_table_zero_row)) * bcf_row_scale_bcbsdm_middle_table) + (bcf_value_bcbsdm_middle_table_zero_row))) /\ ((bcf_index_bcbsdm_middle_table_zero_row = 0 /\ bcf_value_bcbsdm_middle_table_zero_row = 1) \/ exists bcf_predecessor_bcbsdm_middle_table_zero_row. bcf_index_bcbsdm_middle_table_zero_row = S bcf_predecessor_bcbsdm_middle_table_zero_row /\ bcf_value_bcbsdm_middle_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsdm_middle_table bcf_previous_code_bcbsdm_middle_table bcf_previous_scale_bcbsdm_middle_table. bcf_row_index_bcbsdm_middle_table = S bcf_predecessor_bcbsdm_middle_table /\ ((((exists bcf_height_bcbsdm_middle_table_decoded_previous_code. bcf_height_bcbsdm_middle_table_decoded_previous_code + S (bcf_previous_code_bcbsdm_middle_table) = S ((S (bcf_predecessor_bcbsdm_middle_table)) * bcf_row_code_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_table_decoded_previous_code. bcf_row_code_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsdm_middle_table)) * bcf_row_code_scale_bcbsdm_middle) + (bcf_previous_code_bcbsdm_middle_table))) /\ ((((exists bcf_height_bcbsdm_middle_table_decoded_previous_scale. bcf_height_bcbsdm_middle_table_decoded_previous_scale + S (bcf_previous_scale_bcbsdm_middle_table) = S ((S (bcf_predecessor_bcbsdm_middle_table)) * bcf_row_scale_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_table_decoded_previous_scale. bcf_row_scale_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsdm_middle_table)) * bcf_row_scale_scale_bcbsdm_middle) + (bcf_previous_scale_bcbsdm_middle_table))) /\ (forall bcf_index_bcbsdm_middle_table_row_step. (exists bcf_lt_gap_bcbsdm_middle_table_row_step_bound. bcf_lt_gap_bcbsdm_middle_table_row_step_bound + S (bcf_index_bcbsdm_middle_table_row_step) = S (S (n + n))) -> exists bcf_value_bcbsdm_middle_table_row_step. ((((exists bcf_height_bcbsdm_middle_table_row_step_entry. bcf_height_bcbsdm_middle_table_row_step_entry + S (bcf_value_bcbsdm_middle_table_row_step) = S ((S (bcf_index_bcbsdm_middle_table_row_step)) * bcf_row_scale_bcbsdm_middle_table)) /\ exists bcf_quotient_bcbsdm_middle_table_row_step_entry. bcf_row_code_bcbsdm_middle_table = bcf_quotient_bcbsdm_middle_table_row_step_entry * S ((S (bcf_index_bcbsdm_middle_table_row_step)) * bcf_row_scale_bcbsdm_middle_table) + (bcf_value_bcbsdm_middle_table_row_step))) /\ ((bcf_index_bcbsdm_middle_table_row_step = 0 /\ bcf_value_bcbsdm_middle_table_row_step = 1) \/ exists bcf_predecessor_bcbsdm_middle_table_row_step bcf_left_bcbsdm_middle_table_row_step bcf_right_bcbsdm_middle_table_row_step. bcf_index_bcbsdm_middle_table_row_step = S bcf_predecessor_bcbsdm_middle_table_row_step /\ ((((exists bcf_height_bcbsdm_middle_table_row_step_previous_left. bcf_height_bcbsdm_middle_table_row_step_previous_left + S (bcf_left_bcbsdm_middle_table_row_step) = S ((S (bcf_predecessor_bcbsdm_middle_table_row_step)) * bcf_previous_scale_bcbsdm_middle_table)) /\ exists bcf_quotient_bcbsdm_middle_table_row_step_previous_left. bcf_previous_code_bcbsdm_middle_table = bcf_quotient_bcbsdm_middle_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsdm_middle_table_row_step)) * bcf_previous_scale_bcbsdm_middle_table) + (bcf_left_bcbsdm_middle_table_row_step))) /\ ((((exists bcf_height_bcbsdm_middle_table_row_step_previous_right. bcf_height_bcbsdm_middle_table_row_step_previous_right + S (bcf_right_bcbsdm_middle_table_row_step) = S ((S (S (bcf_predecessor_bcbsdm_middle_table_row_step))) * bcf_previous_scale_bcbsdm_middle_table)) /\ exists bcf_quotient_bcbsdm_middle_table_row_step_previous_right. bcf_previous_code_bcbsdm_middle_table = bcf_quotient_bcbsdm_middle_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsdm_middle_table_row_step))) * bcf_previous_scale_bcbsdm_middle_table) + (bcf_right_bcbsdm_middle_table_row_step))) /\ bcf_value_bcbsdm_middle_table_row_step = bcf_left_bcbsdm_middle_table_row_step + bcf_right_bcbsdm_middle_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsdm_middle_decoded_row_code. bcf_height_bcbsdm_middle_decoded_row_code + S (bcf_row_code_bcbsdm_middle) = S ((S (S (n + n))) * bcf_row_code_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_decoded_row_code. bcf_row_code_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_decoded_row_code * S ((S (S (n + n))) * bcf_row_code_scale_bcbsdm_middle) + (bcf_row_code_bcbsdm_middle))) /\ ((((exists bcf_height_bcbsdm_middle_decoded_row_scale. bcf_height_bcbsdm_middle_decoded_row_scale + S (bcf_row_scale_bcbsdm_middle) = S ((S (S (n + n))) * bcf_row_scale_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_decoded_row_scale. bcf_row_scale_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_decoded_row_scale * S ((S (S (n + n))) * bcf_row_scale_scale_bcbsdm_middle) + (bcf_row_scale_bcbsdm_middle))) /\ (((exists bcf_height_bcbsdm_middle_decoded_value. bcf_height_bcbsdm_middle_decoded_value + S (m) = S ((S (n)) * bcf_row_scale_bcbsdm_middle)) /\ exists bcf_quotient_bcbsdm_middle_decoded_value. bcf_row_code_bcbsdm_middle = bcf_quotient_bcbsdm_middle_decoded_value * S ((S (n)) * bcf_row_scale_bcbsdm_middle) + (m)))))))))
  20. 0020specialize choose_exists (S (n + n))
  21. 0021specialize choose_exists n
  22. 0022exact choose_exists
  23. 0023cases hmiddle_exists
  24. 0024have hmirror_exists : exists r. (((exists bcf_lt_gap_bcbsdm_mirror_out_of_range. bcf_lt_gap_bcbsdm_mirror_out_of_range + S (S (n + n)) = S n) /\ r = 0) \/ ((exists bcf_le_gap_bcbsdm_mirror_in_range. bcf_le_gap_bcbsdm_mirror_in_range + (S n) = S (n + n)) /\ (exists bcf_row_code_code_bcbsdm_mirror bcf_row_code_scale_bcbsdm_mirror bcf_row_scale_code_bcbsdm_mirror bcf_row_scale_scale_bcbsdm_mirror bcf_row_code_bcbsdm_mirror bcf_row_scale_bcbsdm_mirror. ((forall bcf_row_index_bcbsdm_mirror_table. (exists bcf_lt_gap_bcbsdm_mirror_table_row_bound. bcf_lt_gap_bcbsdm_mirror_table_row_bound + S (bcf_row_index_bcbsdm_mirror_table) = S (S (n + n))) -> exists bcf_row_code_bcbsdm_mirror_table bcf_row_scale_bcbsdm_mirror_table. ((((exists bcf_height_bcbsdm_mirror_table_decoded_row_code. bcf_height_bcbsdm_mirror_table_decoded_row_code + S (bcf_row_code_bcbsdm_mirror_table) = S ((S (bcf_row_index_bcbsdm_mirror_table)) * bcf_row_code_scale_bcbsdm_mirror)) /\ exists bcf_quotient_bcbsdm_mirror_table_decoded_row_code. bcf_row_code_code_bcbsdm_mirror = bcf_quotient_bcbsdm_mirror_table_decoded_row_code * S ((S (bcf_row_index_bcbsdm_mirror_table)) * bcf_row_code_scale_bcbsdm_mirror) + (bcf_row_code_bcbsdm_mirror_table))) /\ ((((exists bcf_height_bcbsdm_mirror_table_decoded_row_scale. bcf_height_bcbsdm_mirror_table_decoded_row_scale + S (bcf_row_scale_bcbsdm_mirror_table) = S ((S (bcf_row_index_bcbsdm_mirror_table)) * bcf_row_scale_scale_bcbsdm_mirror)) /\ exists bcf_quotient_bcbsdm_mirror_table_decoded_row_scale. bcf_row_scale_code_bcbsdm_mirror = bcf_quotient_bcbsdm_mirror_table_decoded_row_scale * S ((S (bcf_row_index_bcbsdm_mirror_table)) * bcf_row_scale_scale_bcbsdm_mirror) + (bcf_row_scale_bcbsdm_mirror_table))) /\ ((bcf_row_index_bcbsdm_mirror_table = 0 /\ (forall bcf_index_bcbsdm_mirror_table_zero_row. (exists bcf_lt_gap_bcbsdm_mirror_table_zero_row_bound. bcf_lt_gap_bcbsdm_mirror_table_zero_row_bound + S (bcf_index_bcbsdm_mirror_table_zero_row) = S (S (n + n))) -> exists bcf_value_bcbsdm_mirror_table_zero_row. ((((exists bcf_height_bcbsdm_mirror_table_zero_row_entry. bcf_height_bcbsdm_mirror_table_zero_row_entry + S (bcf_value_bcbsdm_mirror_table_zero_row) = S ((S (bcf_index_bcbsdm_mirror_table_zero_row)) * bcf_row_scale_bcbsdm_mirror_table)) /\ exists bcf_quotient_bcbsdm_mirror_table_zero_row_entry. bcf_row_code_bcbsdm_mirror_table = bcf_quotient_bcbsdm_mirror_table_zero_row_entry * S ((S (bcf_index_bcbsdm_mirror_table_zero_row)) * bcf_row_scale_bcbsdm_mirror_table) + (bcf_value_bcbsdm_mirror_table_zero_row))) /\ ((bcf_index_bcbsdm_mirror_table_zero_row = 0 /\ bcf_value_bcbsdm_mirror_table_zero_row = 1) \/ exists bcf_predecessor_bcbsdm_mirror_table_zero_row. bcf_index_bcbsdm_mirror_table_zero_row = S bcf_predecessor_bcbsdm_mirror_table_zero_row /\ bcf_value_bcbsdm_mirror_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsdm_mirror_table bcf_previous_code_bcbsdm_mirror_table bcf_previous_scale_bcbsdm_mirror_table. bcf_row_index_bcbsdm_mirror_table = S bcf_predecessor_bcbsdm_mirror_table /\ ((((exists bcf_height_bcbsdm_mirror_table_decoded_previous_code. bcf_height_bcbsdm_mirror_table_decoded_previous_code + S (bcf_previous_code_bcbsdm_mirror_table) = S ((S (bcf_predecessor_bcbsdm_mirror_table)) * bcf_row_code_scale_bcbsdm_mirror)) /\ exists bcf_quotient_bcbsdm_mirror_table_decoded_previous_code. bcf_row_code_code_bcbsdm_mirror = bcf_quotient_bcbsdm_mirror_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsdm_mirror_table)) * bcf_row_code_scale_bcbsdm_mirror) + (bcf_previous_code_bcbsdm_mirror_table))) /\ ((((exists bcf_height_bcbsdm_mirror_table_decoded_previous_scale. bcf_height_bcbsdm_mirror_table_decoded_previous_scale + S (bcf_previous_scale_bcbsdm_mirror_table) = S ((S (bcf_predecessor_bcbsdm_mirror_table)) * bcf_row_scale_scale_bcbsdm_mirror)) /\ exists bcf_quotient_bcbsdm_mirror_table_decoded_previous_scale. bcf_row_scale_code_bcbsdm_mirror = bcf_quotient_bcbsdm_mirror_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsdm_mirror_table)) * bcf_row_scale_scale_bcbsdm_mirror) + (bcf_previous_scale_bcbsdm_mirror_table))) /\ (forall bcf_index_bcbsdm_mirror_table_row_step. (exists bcf_lt_gap_bcbsdm_mirror_table_row_step_bound. bcf_lt_gap_bcbsdm_mirror_table_row_step_bound + S (bcf_index_bcbsdm_mirror_table_row_step) = S (S (n + n))) -> exists bcf_value_bcbsdm_mirror_table_row_step. ((((exists bcf_height_bcbsdm_mirror_table_row_step_entry. bcf_height_bcbsdm_mirror_table_row_step_entry + S (bcf_value_bcbsdm_mirror_table_row_step) = S ((S (bcf_index_bcbsdm_mirror_table_row_step)) * bcf_row_scale_bcbsdm_mirror_table)) /\ exists bcf_quotient_bcbsdm_mirror_table_row_step_entry. bcf_row_code_bcbsdm_mirror_table = bcf_quotient_bcbsdm_mirror_table_row_step_entry * S ((S (bcf_index_bcbsdm_mirror_table_row_step)) * bcf_row_scale_bcbsdm_mirror_table) + (bcf_value_bcbsdm_mirror_table_row_step))) /\ ((bcf_index_bcbsdm_mirror_table_row_step = 0 /\ bcf_value_bcbsdm_mirror_table_row_step = 1) \/ exists bcf_predecessor_bcbsdm_mirror_table_row_step bcf_left_bcbsdm_mirror_table_row_step bcf_right_bcbsdm_mirror_table_row_step. bcf_index_bcbsdm_mirror_table_row_step = S bcf_predecessor_bcbsdm_mirror_table_row_step /\ ((((exists bcf_height_bcbsdm_mirror_table_row_step_previous_left. bcf_height_bcbsdm_mirror_table_row_step_previous_left + S (bcf_left_bcbsdm_mirror_table_row_step) = S ((S (bcf_predecessor_bcbsdm_mirror_table_row_step)) * bcf_previous_scale_bcbsdm_mirror_table)) /\ exists bcf_quotient_bcbsdm_mirror_table_row_step_previous_left. bcf_previous_code_bcbsdm_mirror_table = bcf_quotient_bcbsdm_mirror_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsdm_mirror_table_row_step)) * bcf_previous_scale_bcbsdm_mirror_table) + (bcf_left_bcbsdm_mirror_table_row_step))) /\ ((((exists bcf_height_bcbsdm_mirror_table_row_step_previous_right. bcf_height_bcbsdm_mirror_table_row_step_previous_right + S (bcf_right_bcbsdm_mirror_table_row_step) = S ((S (S (bcf_predecessor_bcbsdm_mirror_table_row_step))) * bcf_previous_scale_bcbsdm_mirror_table)) /\ exists bcf_quotient_bcbsdm_mirror_table_row_step_previous_right. bcf_previous_code_bcbsdm_mirror_table = bcf_quotient_bcbsdm_mirror_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsdm_mirror_table_row_step))) * bcf_previous_scale_bcbsdm_mirror_table) + (bcf_right_bcbsdm_mirror_table_row_step))) /\ bcf_value_bcbsdm_mirror_table_row_step = bcf_left_bcbsdm_mirror_table_row_step + bcf_right_bcbsdm_mirror_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsdm_mirror_decoded_row_code. bcf_height_bcbsdm_mirror_decoded_row_code + S (bcf_row_code_bcbsdm_mirror) = S ((S (S (n + n))) * bcf_row_code_scale_bcbsdm_mirror)) /\ exists bcf_quotient_bcbsdm_mirror_decoded_row_code. bcf_row_code_code_bcbsdm_mirror = bcf_quotient_bcbsdm_mirror_decoded_row_code * S ((S (S (n + n))) * bcf_row_code_scale_bcbsdm_mirror) + (bcf_row_code_bcbsdm_mirror))) /\ ((((exists bcf_height_bcbsdm_mirror_decoded_row_scale. bcf_height_bcbsdm_mirror_decoded_row_scale + S (bcf_row_scale_bcbsdm_mirror) = S ((S (S (n + n))) * bcf_row_scale_scale_bcbsdm_mirror)) /\ exists bcf_quotient_bcbsdm_mirror_decoded_row_scale. bcf_row_scale_code_bcbsdm_mirror = bcf_quotient_bcbsdm_mirror_decoded_row_scale * S ((S (S (n + n))) * bcf_row_scale_scale_bcbsdm_mirror) + (bcf_row_scale_bcbsdm_mirror))) /\ (((exists bcf_height_bcbsdm_mirror_decoded_value. bcf_height_bcbsdm_mirror_decoded_value + S (r) = S ((S (S n)) * bcf_row_scale_bcbsdm_mirror)) /\ exists bcf_quotient_bcbsdm_mirror_decoded_value. bcf_row_code_bcbsdm_mirror = bcf_quotient_bcbsdm_mirror_decoded_value * S ((S (S n)) * bcf_row_scale_bcbsdm_mirror) + (r)))))))))
  25. 0025specialize choose_exists (S (n + n))
  26. 0026specialize choose_exists (S n)
  27. 0027exact choose_exists
  28. 0028cases hmirror_exists
  29. 0029have hsym : x = x1
  30. 0030specialize choose_symmetry (S (n + n))
  31. 0031specialize choose_symmetry n
  32. 0032specialize choose_symmetry (S n)
  33. 0033specialize choose_symmetry x
  34. 0034specialize choose_symmetry x1
  35. 0035apply choose_symmetry
  36. 0036apply PA4
  37. 0037exact hmiddle_exists_witness
  38. 0038exact hmirror_exists_witness
  39. 0039have hsum : d = x + x1
  40. 0040specialize choose_succ_succ (S (n + n))
  41. 0041specialize choose_succ_succ n
  42. 0042specialize choose_succ_succ x
  43. 0043specialize choose_succ_succ x1
  44. 0044specialize choose_succ_succ d
  45. 0045apply choose_succ_succ
  46. 0046exact hmiddle_exists_witness
  47. 0047exact hmirror_exists_witness
  48. 0048exact hnormalized
  49. 0049exists x
  50. 0050split
  51. 0051exact hmiddle_exists_witness
  52. 0052trans x + x1
  53. 0053exact hsum
  54. 0054rewrite <- hsym
  55. 0055refl