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
BT0001 add_succ_left BT00T8 choose_exists BT00TL choose_symmetry BT00TJ choose_succ_succ BT00TR choose_upper_eq_transportDirect dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro n - 0002
intro d - 0003
intro hsuccessor - 0004
have hupper : S n + S n = S (S (n + n)) - 0005
trans S (n + S n) - 0006
specialize add_succ_left n - 0007
specialize add_succ_left (S n) - 0008
apply add_succ_left - 0009
congr - 0010
apply PA4 - 0011
have 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)))))))) - 0012
specialize choose_upper_eq_transport (S n + S n) - 0013
specialize choose_upper_eq_transport (S (S (n + n))) - 0014
specialize choose_upper_eq_transport (S n) - 0015
specialize choose_upper_eq_transport d - 0016
apply choose_upper_eq_transport - 0017
exact hupper - 0018
exact hsuccessor - 0019
have 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))))))))) - 0020
specialize choose_exists (S (n + n)) - 0021
specialize choose_exists n - 0022
exact choose_exists - 0023
cases hmiddle_exists - 0024
have 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))))))))) - 0025
specialize choose_exists (S (n + n)) - 0026
specialize choose_exists (S n) - 0027
exact choose_exists - 0028
cases hmirror_exists - 0029
have hsym : x = x1 - 0030
specialize choose_symmetry (S (n + n)) - 0031
specialize choose_symmetry n - 0032
specialize choose_symmetry (S n) - 0033
specialize choose_symmetry x - 0034
specialize choose_symmetry x1 - 0035
apply choose_symmetry - 0036
apply PA4 - 0037
exact hmiddle_exists_witness - 0038
exact hmirror_exists_witness - 0039
have hsum : d = x + x1 - 0040
specialize choose_succ_succ (S (n + n)) - 0041
specialize choose_succ_succ n - 0042
specialize choose_succ_succ x - 0043
specialize choose_succ_succ x1 - 0044
specialize choose_succ_succ d - 0045
apply choose_succ_succ - 0046
exact hmiddle_exists_witness - 0047
exact hmirror_exists_witness - 0048
exact hnormalized - 0049
exists x - 0050
split - 0051
exact hmiddle_exists_witness - 0052
trans x + x1 - 0053
exact hsum - 0054
rewrite <- hsym - 0055
refl