BT00TU

central_binom_succ_recurrence

Alpha body-checked ยท checked-use disabled

Successive central binomials satisfy the weighted recurrence.

Exact expanded PA statement

forall n c d. (((exists bcf_lt_gap_bcbsr_predecessor_out_of_range. bcf_lt_gap_bcbsr_predecessor_out_of_range + S (n + n) = n) /\ c = 0) \/ ((exists bcf_le_gap_bcbsr_predecessor_in_range. bcf_le_gap_bcbsr_predecessor_in_range + (n) = n + n) /\ (exists bcf_row_code_code_bcbsr_predecessor bcf_row_code_scale_bcbsr_predecessor bcf_row_scale_code_bcbsr_predecessor bcf_row_scale_scale_bcbsr_predecessor bcf_row_code_bcbsr_predecessor bcf_row_scale_bcbsr_predecessor. ((forall bcf_row_index_bcbsr_predecessor_table. (exists bcf_lt_gap_bcbsr_predecessor_table_row_bound. bcf_lt_gap_bcbsr_predecessor_table_row_bound + S (bcf_row_index_bcbsr_predecessor_table) = S (n + n)) -> exists bcf_row_code_bcbsr_predecessor_table bcf_row_scale_bcbsr_predecessor_table. ((((exists bcf_height_bcbsr_predecessor_table_decoded_row_code. bcf_height_bcbsr_predecessor_table_decoded_row_code + S (bcf_row_code_bcbsr_predecessor_table) = S ((S (bcf_row_index_bcbsr_predecessor_table)) * bcf_row_code_scale_bcbsr_predecessor)) /\ exists bcf_quotient_bcbsr_predecessor_table_decoded_row_code. bcf_row_code_code_bcbsr_predecessor = bcf_quotient_bcbsr_predecessor_table_decoded_row_code * S ((S (bcf_row_index_bcbsr_predecessor_table)) * bcf_row_code_scale_bcbsr_predecessor) + (bcf_row_code_bcbsr_predecessor_table))) /\ ((((exists bcf_height_bcbsr_predecessor_table_decoded_row_scale. bcf_height_bcbsr_predecessor_table_decoded_row_scale + S (bcf_row_scale_bcbsr_predecessor_table) = S ((S (bcf_row_index_bcbsr_predecessor_table)) * bcf_row_scale_scale_bcbsr_predecessor)) /\ exists bcf_quotient_bcbsr_predecessor_table_decoded_row_scale. bcf_row_scale_code_bcbsr_predecessor = bcf_quotient_bcbsr_predecessor_table_decoded_row_scale * S ((S (bcf_row_index_bcbsr_predecessor_table)) * bcf_row_scale_scale_bcbsr_predecessor) + (bcf_row_scale_bcbsr_predecessor_table))) /\ ((bcf_row_index_bcbsr_predecessor_table = 0 /\ (forall bcf_index_bcbsr_predecessor_table_zero_row. (exists bcf_lt_gap_bcbsr_predecessor_table_zero_row_bound. bcf_lt_gap_bcbsr_predecessor_table_zero_row_bound + S (bcf_index_bcbsr_predecessor_table_zero_row) = S (n + n)) -> exists bcf_value_bcbsr_predecessor_table_zero_row. ((((exists bcf_height_bcbsr_predecessor_table_zero_row_entry. bcf_height_bcbsr_predecessor_table_zero_row_entry + S (bcf_value_bcbsr_predecessor_table_zero_row) = S ((S (bcf_index_bcbsr_predecessor_table_zero_row)) * bcf_row_scale_bcbsr_predecessor_table)) /\ exists bcf_quotient_bcbsr_predecessor_table_zero_row_entry. bcf_row_code_bcbsr_predecessor_table = bcf_quotient_bcbsr_predecessor_table_zero_row_entry * S ((S (bcf_index_bcbsr_predecessor_table_zero_row)) * bcf_row_scale_bcbsr_predecessor_table) + (bcf_value_bcbsr_predecessor_table_zero_row))) /\ ((bcf_index_bcbsr_predecessor_table_zero_row = 0 /\ bcf_value_bcbsr_predecessor_table_zero_row = 1) \/ exists bcf_predecessor_bcbsr_predecessor_table_zero_row. bcf_index_bcbsr_predecessor_table_zero_row = S bcf_predecessor_bcbsr_predecessor_table_zero_row /\ bcf_value_bcbsr_predecessor_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsr_predecessor_table bcf_previous_code_bcbsr_predecessor_table bcf_previous_scale_bcbsr_predecessor_table. bcf_row_index_bcbsr_predecessor_table = S bcf_predecessor_bcbsr_predecessor_table /\ ((((exists bcf_height_bcbsr_predecessor_table_decoded_previous_code. bcf_height_bcbsr_predecessor_table_decoded_previous_code + S (bcf_previous_code_bcbsr_predecessor_table) = S ((S (bcf_predecessor_bcbsr_predecessor_table)) * bcf_row_code_scale_bcbsr_predecessor)) /\ exists bcf_quotient_bcbsr_predecessor_table_decoded_previous_code. bcf_row_code_code_bcbsr_predecessor = bcf_quotient_bcbsr_predecessor_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsr_predecessor_table)) * bcf_row_code_scale_bcbsr_predecessor) + (bcf_previous_code_bcbsr_predecessor_table))) /\ ((((exists bcf_height_bcbsr_predecessor_table_decoded_previous_scale. bcf_height_bcbsr_predecessor_table_decoded_previous_scale + S (bcf_previous_scale_bcbsr_predecessor_table) = S ((S (bcf_predecessor_bcbsr_predecessor_table)) * bcf_row_scale_scale_bcbsr_predecessor)) /\ exists bcf_quotient_bcbsr_predecessor_table_decoded_previous_scale. bcf_row_scale_code_bcbsr_predecessor = bcf_quotient_bcbsr_predecessor_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsr_predecessor_table)) * bcf_row_scale_scale_bcbsr_predecessor) + (bcf_previous_scale_bcbsr_predecessor_table))) /\ (forall bcf_index_bcbsr_predecessor_table_row_step. (exists bcf_lt_gap_bcbsr_predecessor_table_row_step_bound. bcf_lt_gap_bcbsr_predecessor_table_row_step_bound + S (bcf_index_bcbsr_predecessor_table_row_step) = S (n + n)) -> exists bcf_value_bcbsr_predecessor_table_row_step. ((((exists bcf_height_bcbsr_predecessor_table_row_step_entry. bcf_height_bcbsr_predecessor_table_row_step_entry + S (bcf_value_bcbsr_predecessor_table_row_step) = S ((S (bcf_index_bcbsr_predecessor_table_row_step)) * bcf_row_scale_bcbsr_predecessor_table)) /\ exists bcf_quotient_bcbsr_predecessor_table_row_step_entry. bcf_row_code_bcbsr_predecessor_table = bcf_quotient_bcbsr_predecessor_table_row_step_entry * S ((S (bcf_index_bcbsr_predecessor_table_row_step)) * bcf_row_scale_bcbsr_predecessor_table) + (bcf_value_bcbsr_predecessor_table_row_step))) /\ ((bcf_index_bcbsr_predecessor_table_row_step = 0 /\ bcf_value_bcbsr_predecessor_table_row_step = 1) \/ exists bcf_predecessor_bcbsr_predecessor_table_row_step bcf_left_bcbsr_predecessor_table_row_step bcf_right_bcbsr_predecessor_table_row_step. bcf_index_bcbsr_predecessor_table_row_step = S bcf_predecessor_bcbsr_predecessor_table_row_step /\ ((((exists bcf_height_bcbsr_predecessor_table_row_step_previous_left. bcf_height_bcbsr_predecessor_table_row_step_previous_left + S (bcf_left_bcbsr_predecessor_table_row_step) = S ((S (bcf_predecessor_bcbsr_predecessor_table_row_step)) * bcf_previous_scale_bcbsr_predecessor_table)) /\ exists bcf_quotient_bcbsr_predecessor_table_row_step_previous_left. bcf_previous_code_bcbsr_predecessor_table = bcf_quotient_bcbsr_predecessor_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsr_predecessor_table_row_step)) * bcf_previous_scale_bcbsr_predecessor_table) + (bcf_left_bcbsr_predecessor_table_row_step))) /\ ((((exists bcf_height_bcbsr_predecessor_table_row_step_previous_right. bcf_height_bcbsr_predecessor_table_row_step_previous_right + S (bcf_right_bcbsr_predecessor_table_row_step) = S ((S (S (bcf_predecessor_bcbsr_predecessor_table_row_step))) * bcf_previous_scale_bcbsr_predecessor_table)) /\ exists bcf_quotient_bcbsr_predecessor_table_row_step_previous_right. bcf_previous_code_bcbsr_predecessor_table = bcf_quotient_bcbsr_predecessor_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsr_predecessor_table_row_step))) * bcf_previous_scale_bcbsr_predecessor_table) + (bcf_right_bcbsr_predecessor_table_row_step))) /\ bcf_value_bcbsr_predecessor_table_row_step = bcf_left_bcbsr_predecessor_table_row_step + bcf_right_bcbsr_predecessor_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsr_predecessor_decoded_row_code. bcf_height_bcbsr_predecessor_decoded_row_code + S (bcf_row_code_bcbsr_predecessor) = S ((S (n + n)) * bcf_row_code_scale_bcbsr_predecessor)) /\ exists bcf_quotient_bcbsr_predecessor_decoded_row_code. bcf_row_code_code_bcbsr_predecessor = bcf_quotient_bcbsr_predecessor_decoded_row_code * S ((S (n + n)) * bcf_row_code_scale_bcbsr_predecessor) + (bcf_row_code_bcbsr_predecessor))) /\ ((((exists bcf_height_bcbsr_predecessor_decoded_row_scale. bcf_height_bcbsr_predecessor_decoded_row_scale + S (bcf_row_scale_bcbsr_predecessor) = S ((S (n + n)) * bcf_row_scale_scale_bcbsr_predecessor)) /\ exists bcf_quotient_bcbsr_predecessor_decoded_row_scale. bcf_row_scale_code_bcbsr_predecessor = bcf_quotient_bcbsr_predecessor_decoded_row_scale * S ((S (n + n)) * bcf_row_scale_scale_bcbsr_predecessor) + (bcf_row_scale_bcbsr_predecessor))) /\ (((exists bcf_height_bcbsr_predecessor_decoded_value. bcf_height_bcbsr_predecessor_decoded_value + S (c) = S ((S (n)) * bcf_row_scale_bcbsr_predecessor)) /\ exists bcf_quotient_bcbsr_predecessor_decoded_value. bcf_row_code_bcbsr_predecessor = bcf_quotient_bcbsr_predecessor_decoded_value * S ((S (n)) * bcf_row_scale_bcbsr_predecessor) + (c))))))))) -> (((exists bcf_lt_gap_bcbsr_successor_out_of_range. bcf_lt_gap_bcbsr_successor_out_of_range + S (S n + S n) = S n) /\ d = 0) \/ ((exists bcf_le_gap_bcbsr_successor_in_range. bcf_le_gap_bcbsr_successor_in_range + (S n) = S n + S n) /\ (exists bcf_row_code_code_bcbsr_successor bcf_row_code_scale_bcbsr_successor bcf_row_scale_code_bcbsr_successor bcf_row_scale_scale_bcbsr_successor bcf_row_code_bcbsr_successor bcf_row_scale_bcbsr_successor. ((forall bcf_row_index_bcbsr_successor_table. (exists bcf_lt_gap_bcbsr_successor_table_row_bound. bcf_lt_gap_bcbsr_successor_table_row_bound + S (bcf_row_index_bcbsr_successor_table) = S (S n + S n)) -> exists bcf_row_code_bcbsr_successor_table bcf_row_scale_bcbsr_successor_table. ((((exists bcf_height_bcbsr_successor_table_decoded_row_code. bcf_height_bcbsr_successor_table_decoded_row_code + S (bcf_row_code_bcbsr_successor_table) = S ((S (bcf_row_index_bcbsr_successor_table)) * bcf_row_code_scale_bcbsr_successor)) /\ exists bcf_quotient_bcbsr_successor_table_decoded_row_code. bcf_row_code_code_bcbsr_successor = bcf_quotient_bcbsr_successor_table_decoded_row_code * S ((S (bcf_row_index_bcbsr_successor_table)) * bcf_row_code_scale_bcbsr_successor) + (bcf_row_code_bcbsr_successor_table))) /\ ((((exists bcf_height_bcbsr_successor_table_decoded_row_scale. bcf_height_bcbsr_successor_table_decoded_row_scale + S (bcf_row_scale_bcbsr_successor_table) = S ((S (bcf_row_index_bcbsr_successor_table)) * bcf_row_scale_scale_bcbsr_successor)) /\ exists bcf_quotient_bcbsr_successor_table_decoded_row_scale. bcf_row_scale_code_bcbsr_successor = bcf_quotient_bcbsr_successor_table_decoded_row_scale * S ((S (bcf_row_index_bcbsr_successor_table)) * bcf_row_scale_scale_bcbsr_successor) + (bcf_row_scale_bcbsr_successor_table))) /\ ((bcf_row_index_bcbsr_successor_table = 0 /\ (forall bcf_index_bcbsr_successor_table_zero_row. (exists bcf_lt_gap_bcbsr_successor_table_zero_row_bound. bcf_lt_gap_bcbsr_successor_table_zero_row_bound + S (bcf_index_bcbsr_successor_table_zero_row) = S (S n + S n)) -> exists bcf_value_bcbsr_successor_table_zero_row. ((((exists bcf_height_bcbsr_successor_table_zero_row_entry. bcf_height_bcbsr_successor_table_zero_row_entry + S (bcf_value_bcbsr_successor_table_zero_row) = S ((S (bcf_index_bcbsr_successor_table_zero_row)) * bcf_row_scale_bcbsr_successor_table)) /\ exists bcf_quotient_bcbsr_successor_table_zero_row_entry. bcf_row_code_bcbsr_successor_table = bcf_quotient_bcbsr_successor_table_zero_row_entry * S ((S (bcf_index_bcbsr_successor_table_zero_row)) * bcf_row_scale_bcbsr_successor_table) + (bcf_value_bcbsr_successor_table_zero_row))) /\ ((bcf_index_bcbsr_successor_table_zero_row = 0 /\ bcf_value_bcbsr_successor_table_zero_row = 1) \/ exists bcf_predecessor_bcbsr_successor_table_zero_row. bcf_index_bcbsr_successor_table_zero_row = S bcf_predecessor_bcbsr_successor_table_zero_row /\ bcf_value_bcbsr_successor_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsr_successor_table bcf_previous_code_bcbsr_successor_table bcf_previous_scale_bcbsr_successor_table. bcf_row_index_bcbsr_successor_table = S bcf_predecessor_bcbsr_successor_table /\ ((((exists bcf_height_bcbsr_successor_table_decoded_previous_code. bcf_height_bcbsr_successor_table_decoded_previous_code + S (bcf_previous_code_bcbsr_successor_table) = S ((S (bcf_predecessor_bcbsr_successor_table)) * bcf_row_code_scale_bcbsr_successor)) /\ exists bcf_quotient_bcbsr_successor_table_decoded_previous_code. bcf_row_code_code_bcbsr_successor = bcf_quotient_bcbsr_successor_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsr_successor_table)) * bcf_row_code_scale_bcbsr_successor) + (bcf_previous_code_bcbsr_successor_table))) /\ ((((exists bcf_height_bcbsr_successor_table_decoded_previous_scale. bcf_height_bcbsr_successor_table_decoded_previous_scale + S (bcf_previous_scale_bcbsr_successor_table) = S ((S (bcf_predecessor_bcbsr_successor_table)) * bcf_row_scale_scale_bcbsr_successor)) /\ exists bcf_quotient_bcbsr_successor_table_decoded_previous_scale. bcf_row_scale_code_bcbsr_successor = bcf_quotient_bcbsr_successor_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsr_successor_table)) * bcf_row_scale_scale_bcbsr_successor) + (bcf_previous_scale_bcbsr_successor_table))) /\ (forall bcf_index_bcbsr_successor_table_row_step. (exists bcf_lt_gap_bcbsr_successor_table_row_step_bound. bcf_lt_gap_bcbsr_successor_table_row_step_bound + S (bcf_index_bcbsr_successor_table_row_step) = S (S n + S n)) -> exists bcf_value_bcbsr_successor_table_row_step. ((((exists bcf_height_bcbsr_successor_table_row_step_entry. bcf_height_bcbsr_successor_table_row_step_entry + S (bcf_value_bcbsr_successor_table_row_step) = S ((S (bcf_index_bcbsr_successor_table_row_step)) * bcf_row_scale_bcbsr_successor_table)) /\ exists bcf_quotient_bcbsr_successor_table_row_step_entry. bcf_row_code_bcbsr_successor_table = bcf_quotient_bcbsr_successor_table_row_step_entry * S ((S (bcf_index_bcbsr_successor_table_row_step)) * bcf_row_scale_bcbsr_successor_table) + (bcf_value_bcbsr_successor_table_row_step))) /\ ((bcf_index_bcbsr_successor_table_row_step = 0 /\ bcf_value_bcbsr_successor_table_row_step = 1) \/ exists bcf_predecessor_bcbsr_successor_table_row_step bcf_left_bcbsr_successor_table_row_step bcf_right_bcbsr_successor_table_row_step. bcf_index_bcbsr_successor_table_row_step = S bcf_predecessor_bcbsr_successor_table_row_step /\ ((((exists bcf_height_bcbsr_successor_table_row_step_previous_left. bcf_height_bcbsr_successor_table_row_step_previous_left + S (bcf_left_bcbsr_successor_table_row_step) = S ((S (bcf_predecessor_bcbsr_successor_table_row_step)) * bcf_previous_scale_bcbsr_successor_table)) /\ exists bcf_quotient_bcbsr_successor_table_row_step_previous_left. bcf_previous_code_bcbsr_successor_table = bcf_quotient_bcbsr_successor_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsr_successor_table_row_step)) * bcf_previous_scale_bcbsr_successor_table) + (bcf_left_bcbsr_successor_table_row_step))) /\ ((((exists bcf_height_bcbsr_successor_table_row_step_previous_right. bcf_height_bcbsr_successor_table_row_step_previous_right + S (bcf_right_bcbsr_successor_table_row_step) = S ((S (S (bcf_predecessor_bcbsr_successor_table_row_step))) * bcf_previous_scale_bcbsr_successor_table)) /\ exists bcf_quotient_bcbsr_successor_table_row_step_previous_right. bcf_previous_code_bcbsr_successor_table = bcf_quotient_bcbsr_successor_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsr_successor_table_row_step))) * bcf_previous_scale_bcbsr_successor_table) + (bcf_right_bcbsr_successor_table_row_step))) /\ bcf_value_bcbsr_successor_table_row_step = bcf_left_bcbsr_successor_table_row_step + bcf_right_bcbsr_successor_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsr_successor_decoded_row_code. bcf_height_bcbsr_successor_decoded_row_code + S (bcf_row_code_bcbsr_successor) = S ((S (S n + S n)) * bcf_row_code_scale_bcbsr_successor)) /\ exists bcf_quotient_bcbsr_successor_decoded_row_code. bcf_row_code_code_bcbsr_successor = bcf_quotient_bcbsr_successor_decoded_row_code * S ((S (S n + S n)) * bcf_row_code_scale_bcbsr_successor) + (bcf_row_code_bcbsr_successor))) /\ ((((exists bcf_height_bcbsr_successor_decoded_row_scale. bcf_height_bcbsr_successor_decoded_row_scale + S (bcf_row_scale_bcbsr_successor) = S ((S (S n + S n)) * bcf_row_scale_scale_bcbsr_successor)) /\ exists bcf_quotient_bcbsr_successor_decoded_row_scale. bcf_row_scale_code_bcbsr_successor = bcf_quotient_bcbsr_successor_decoded_row_scale * S ((S (S n + S n)) * bcf_row_scale_scale_bcbsr_successor) + (bcf_row_scale_bcbsr_successor))) /\ (((exists bcf_height_bcbsr_successor_decoded_value. bcf_height_bcbsr_successor_decoded_value + S (d) = S ((S (S n)) * bcf_row_scale_bcbsr_successor)) /\ exists bcf_quotient_bcbsr_successor_decoded_value. bcf_row_code_bcbsr_successor = bcf_quotient_bcbsr_successor_decoded_value * S ((S (S n)) * bcf_row_scale_bcbsr_successor) + (d))))))))) -> S n * d = (2 * S (n + n)) * c

Structural proof guide

Successive central binomials satisfy the weighted recurrence.

Direct prerequisites: mul_add, mul_assoc, two_mul_eq_add_self, central_binom_succ_double_middle, choose_weighted_vertical. The authored body proceeds by case analysis (2), intermediate claims (2), equality transport (3).

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 c
  3. 0003intro d
  4. 0004intro hpredecessor
  5. 0005intro hsuccessor
  6. 0006have hmiddle : exists m. ((((exists bcf_lt_gap_bcbsr_middle_out_of_range. bcf_lt_gap_bcbsr_middle_out_of_range + S (S (n + n)) = n) /\ m = 0) \/ ((exists bcf_le_gap_bcbsr_middle_in_range. bcf_le_gap_bcbsr_middle_in_range + (n) = S (n + n)) /\ (exists bcf_row_code_code_bcbsr_middle bcf_row_code_scale_bcbsr_middle bcf_row_scale_code_bcbsr_middle bcf_row_scale_scale_bcbsr_middle bcf_row_code_bcbsr_middle bcf_row_scale_bcbsr_middle. ((forall bcf_row_index_bcbsr_middle_table. (exists bcf_lt_gap_bcbsr_middle_table_row_bound. bcf_lt_gap_bcbsr_middle_table_row_bound + S (bcf_row_index_bcbsr_middle_table) = S (S (n + n))) -> exists bcf_row_code_bcbsr_middle_table bcf_row_scale_bcbsr_middle_table. ((((exists bcf_height_bcbsr_middle_table_decoded_row_code. bcf_height_bcbsr_middle_table_decoded_row_code + S (bcf_row_code_bcbsr_middle_table) = S ((S (bcf_row_index_bcbsr_middle_table)) * bcf_row_code_scale_bcbsr_middle)) /\ exists bcf_quotient_bcbsr_middle_table_decoded_row_code. bcf_row_code_code_bcbsr_middle = bcf_quotient_bcbsr_middle_table_decoded_row_code * S ((S (bcf_row_index_bcbsr_middle_table)) * bcf_row_code_scale_bcbsr_middle) + (bcf_row_code_bcbsr_middle_table))) /\ ((((exists bcf_height_bcbsr_middle_table_decoded_row_scale. bcf_height_bcbsr_middle_table_decoded_row_scale + S (bcf_row_scale_bcbsr_middle_table) = S ((S (bcf_row_index_bcbsr_middle_table)) * bcf_row_scale_scale_bcbsr_middle)) /\ exists bcf_quotient_bcbsr_middle_table_decoded_row_scale. bcf_row_scale_code_bcbsr_middle = bcf_quotient_bcbsr_middle_table_decoded_row_scale * S ((S (bcf_row_index_bcbsr_middle_table)) * bcf_row_scale_scale_bcbsr_middle) + (bcf_row_scale_bcbsr_middle_table))) /\ ((bcf_row_index_bcbsr_middle_table = 0 /\ (forall bcf_index_bcbsr_middle_table_zero_row. (exists bcf_lt_gap_bcbsr_middle_table_zero_row_bound. bcf_lt_gap_bcbsr_middle_table_zero_row_bound + S (bcf_index_bcbsr_middle_table_zero_row) = S (S (n + n))) -> exists bcf_value_bcbsr_middle_table_zero_row. ((((exists bcf_height_bcbsr_middle_table_zero_row_entry. bcf_height_bcbsr_middle_table_zero_row_entry + S (bcf_value_bcbsr_middle_table_zero_row) = S ((S (bcf_index_bcbsr_middle_table_zero_row)) * bcf_row_scale_bcbsr_middle_table)) /\ exists bcf_quotient_bcbsr_middle_table_zero_row_entry. bcf_row_code_bcbsr_middle_table = bcf_quotient_bcbsr_middle_table_zero_row_entry * S ((S (bcf_index_bcbsr_middle_table_zero_row)) * bcf_row_scale_bcbsr_middle_table) + (bcf_value_bcbsr_middle_table_zero_row))) /\ ((bcf_index_bcbsr_middle_table_zero_row = 0 /\ bcf_value_bcbsr_middle_table_zero_row = 1) \/ exists bcf_predecessor_bcbsr_middle_table_zero_row. bcf_index_bcbsr_middle_table_zero_row = S bcf_predecessor_bcbsr_middle_table_zero_row /\ bcf_value_bcbsr_middle_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsr_middle_table bcf_previous_code_bcbsr_middle_table bcf_previous_scale_bcbsr_middle_table. bcf_row_index_bcbsr_middle_table = S bcf_predecessor_bcbsr_middle_table /\ ((((exists bcf_height_bcbsr_middle_table_decoded_previous_code. bcf_height_bcbsr_middle_table_decoded_previous_code + S (bcf_previous_code_bcbsr_middle_table) = S ((S (bcf_predecessor_bcbsr_middle_table)) * bcf_row_code_scale_bcbsr_middle)) /\ exists bcf_quotient_bcbsr_middle_table_decoded_previous_code. bcf_row_code_code_bcbsr_middle = bcf_quotient_bcbsr_middle_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsr_middle_table)) * bcf_row_code_scale_bcbsr_middle) + (bcf_previous_code_bcbsr_middle_table))) /\ ((((exists bcf_height_bcbsr_middle_table_decoded_previous_scale. bcf_height_bcbsr_middle_table_decoded_previous_scale + S (bcf_previous_scale_bcbsr_middle_table) = S ((S (bcf_predecessor_bcbsr_middle_table)) * bcf_row_scale_scale_bcbsr_middle)) /\ exists bcf_quotient_bcbsr_middle_table_decoded_previous_scale. bcf_row_scale_code_bcbsr_middle = bcf_quotient_bcbsr_middle_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsr_middle_table)) * bcf_row_scale_scale_bcbsr_middle) + (bcf_previous_scale_bcbsr_middle_table))) /\ (forall bcf_index_bcbsr_middle_table_row_step. (exists bcf_lt_gap_bcbsr_middle_table_row_step_bound. bcf_lt_gap_bcbsr_middle_table_row_step_bound + S (bcf_index_bcbsr_middle_table_row_step) = S (S (n + n))) -> exists bcf_value_bcbsr_middle_table_row_step. ((((exists bcf_height_bcbsr_middle_table_row_step_entry. bcf_height_bcbsr_middle_table_row_step_entry + S (bcf_value_bcbsr_middle_table_row_step) = S ((S (bcf_index_bcbsr_middle_table_row_step)) * bcf_row_scale_bcbsr_middle_table)) /\ exists bcf_quotient_bcbsr_middle_table_row_step_entry. bcf_row_code_bcbsr_middle_table = bcf_quotient_bcbsr_middle_table_row_step_entry * S ((S (bcf_index_bcbsr_middle_table_row_step)) * bcf_row_scale_bcbsr_middle_table) + (bcf_value_bcbsr_middle_table_row_step))) /\ ((bcf_index_bcbsr_middle_table_row_step = 0 /\ bcf_value_bcbsr_middle_table_row_step = 1) \/ exists bcf_predecessor_bcbsr_middle_table_row_step bcf_left_bcbsr_middle_table_row_step bcf_right_bcbsr_middle_table_row_step. bcf_index_bcbsr_middle_table_row_step = S bcf_predecessor_bcbsr_middle_table_row_step /\ ((((exists bcf_height_bcbsr_middle_table_row_step_previous_left. bcf_height_bcbsr_middle_table_row_step_previous_left + S (bcf_left_bcbsr_middle_table_row_step) = S ((S (bcf_predecessor_bcbsr_middle_table_row_step)) * bcf_previous_scale_bcbsr_middle_table)) /\ exists bcf_quotient_bcbsr_middle_table_row_step_previous_left. bcf_previous_code_bcbsr_middle_table = bcf_quotient_bcbsr_middle_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsr_middle_table_row_step)) * bcf_previous_scale_bcbsr_middle_table) + (bcf_left_bcbsr_middle_table_row_step))) /\ ((((exists bcf_height_bcbsr_middle_table_row_step_previous_right. bcf_height_bcbsr_middle_table_row_step_previous_right + S (bcf_right_bcbsr_middle_table_row_step) = S ((S (S (bcf_predecessor_bcbsr_middle_table_row_step))) * bcf_previous_scale_bcbsr_middle_table)) /\ exists bcf_quotient_bcbsr_middle_table_row_step_previous_right. bcf_previous_code_bcbsr_middle_table = bcf_quotient_bcbsr_middle_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsr_middle_table_row_step))) * bcf_previous_scale_bcbsr_middle_table) + (bcf_right_bcbsr_middle_table_row_step))) /\ bcf_value_bcbsr_middle_table_row_step = bcf_left_bcbsr_middle_table_row_step + bcf_right_bcbsr_middle_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsr_middle_decoded_row_code. bcf_height_bcbsr_middle_decoded_row_code + S (bcf_row_code_bcbsr_middle) = S ((S (S (n + n))) * bcf_row_code_scale_bcbsr_middle)) /\ exists bcf_quotient_bcbsr_middle_decoded_row_code. bcf_row_code_code_bcbsr_middle = bcf_quotient_bcbsr_middle_decoded_row_code * S ((S (S (n + n))) * bcf_row_code_scale_bcbsr_middle) + (bcf_row_code_bcbsr_middle))) /\ ((((exists bcf_height_bcbsr_middle_decoded_row_scale. bcf_height_bcbsr_middle_decoded_row_scale + S (bcf_row_scale_bcbsr_middle) = S ((S (S (n + n))) * bcf_row_scale_scale_bcbsr_middle)) /\ exists bcf_quotient_bcbsr_middle_decoded_row_scale. bcf_row_scale_code_bcbsr_middle = bcf_quotient_bcbsr_middle_decoded_row_scale * S ((S (S (n + n))) * bcf_row_scale_scale_bcbsr_middle) + (bcf_row_scale_bcbsr_middle))) /\ (((exists bcf_height_bcbsr_middle_decoded_value. bcf_height_bcbsr_middle_decoded_value + S (m) = S ((S (n)) * bcf_row_scale_bcbsr_middle)) /\ exists bcf_quotient_bcbsr_middle_decoded_value. bcf_row_code_bcbsr_middle = bcf_quotient_bcbsr_middle_decoded_value * S ((S (n)) * bcf_row_scale_bcbsr_middle) + (m))))))))) /\ d = m + m)
  7. 0007specialize central_binom_succ_double_middle n
  8. 0008specialize central_binom_succ_double_middle d
  9. 0009apply central_binom_succ_double_middle
  10. 0010exact hsuccessor
  11. 0011cases hmiddle
  12. 0012cases hmiddle_witness
  13. 0013have hweighted : S n * x = S (n + n) * c
  14. 0014specialize choose_weighted_vertical (n + n)
  15. 0015specialize choose_weighted_vertical n
  16. 0016specialize choose_weighted_vertical n
  17. 0017specialize choose_weighted_vertical c
  18. 0018specialize choose_weighted_vertical x
  19. 0019apply choose_weighted_vertical
  20. 0020refl
  21. 0021exact hpredecessor
  22. 0022exact hmiddle_witness_left
  23. 0023rewrite hmiddle_witness_right
  24. 0024trans S n * x + S n * x
  25. 0025apply mul_add
  26. 0026rewrite hweighted
  27. 0027rewrite hweighted
  28. 0028trans 2 * (S (n + n) * c)
  29. 0029specialize two_mul_eq_add_self (S (n + n) * c)
  30. 0030symm
  31. 0031exact two_mul_eq_add_self
  32. 0032specialize mul_assoc 2
  33. 0033specialize mul_assoc (S (n + n))
  34. 0034specialize mul_assoc c
  35. 0035symm
  36. 0036exact mul_assoc