BT00VM

central_binom_strong_upper_of_laws

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

Recurrence and totality imply the positive-index strong bound.

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.

Exact expanded PA statement

(forall n c d. (((exists bcf_lt_gap_bcbrdb_predecessor_out_of_range. bcf_lt_gap_bcbrdb_predecessor_out_of_range + S (n + n) = n) /\ c = 0) \/ ((exists bcf_le_gap_bcbrdb_predecessor_in_range. bcf_le_gap_bcbrdb_predecessor_in_range + (n) = n + n) /\ (exists bcf_row_code_code_bcbrdb_predecessor bcf_row_code_scale_bcbrdb_predecessor bcf_row_scale_code_bcbrdb_predecessor bcf_row_scale_scale_bcbrdb_predecessor bcf_row_code_bcbrdb_predecessor bcf_row_scale_bcbrdb_predecessor. ((forall bcf_row_index_bcbrdb_predecessor_table. (exists bcf_lt_gap_bcbrdb_predecessor_table_row_bound. bcf_lt_gap_bcbrdb_predecessor_table_row_bound + S (bcf_row_index_bcbrdb_predecessor_table) = S (n + n)) -> exists bcf_row_code_bcbrdb_predecessor_table bcf_row_scale_bcbrdb_predecessor_table. ((((exists bcf_height_bcbrdb_predecessor_table_decoded_row_code. bcf_height_bcbrdb_predecessor_table_decoded_row_code + S (bcf_row_code_bcbrdb_predecessor_table) = S ((S (bcf_row_index_bcbrdb_predecessor_table)) * bcf_row_code_scale_bcbrdb_predecessor)) /\ exists bcf_quotient_bcbrdb_predecessor_table_decoded_row_code. bcf_row_code_code_bcbrdb_predecessor = bcf_quotient_bcbrdb_predecessor_table_decoded_row_code * S ((S (bcf_row_index_bcbrdb_predecessor_table)) * bcf_row_code_scale_bcbrdb_predecessor) + (bcf_row_code_bcbrdb_predecessor_table))) /\ ((((exists bcf_height_bcbrdb_predecessor_table_decoded_row_scale. bcf_height_bcbrdb_predecessor_table_decoded_row_scale + S (bcf_row_scale_bcbrdb_predecessor_table) = S ((S (bcf_row_index_bcbrdb_predecessor_table)) * bcf_row_scale_scale_bcbrdb_predecessor)) /\ exists bcf_quotient_bcbrdb_predecessor_table_decoded_row_scale. bcf_row_scale_code_bcbrdb_predecessor = bcf_quotient_bcbrdb_predecessor_table_decoded_row_scale * S ((S (bcf_row_index_bcbrdb_predecessor_table)) * bcf_row_scale_scale_bcbrdb_predecessor) + (bcf_row_scale_bcbrdb_predecessor_table))) /\ ((bcf_row_index_bcbrdb_predecessor_table = 0 /\ (forall bcf_index_bcbrdb_predecessor_table_zero_row. (exists bcf_lt_gap_bcbrdb_predecessor_table_zero_row_bound. bcf_lt_gap_bcbrdb_predecessor_table_zero_row_bound + S (bcf_index_bcbrdb_predecessor_table_zero_row) = S (n + n)) -> exists bcf_value_bcbrdb_predecessor_table_zero_row. ((((exists bcf_height_bcbrdb_predecessor_table_zero_row_entry. bcf_height_bcbrdb_predecessor_table_zero_row_entry + S (bcf_value_bcbrdb_predecessor_table_zero_row) = S ((S (bcf_index_bcbrdb_predecessor_table_zero_row)) * bcf_row_scale_bcbrdb_predecessor_table)) /\ exists bcf_quotient_bcbrdb_predecessor_table_zero_row_entry. bcf_row_code_bcbrdb_predecessor_table = bcf_quotient_bcbrdb_predecessor_table_zero_row_entry * S ((S (bcf_index_bcbrdb_predecessor_table_zero_row)) * bcf_row_scale_bcbrdb_predecessor_table) + (bcf_value_bcbrdb_predecessor_table_zero_row))) /\ ((bcf_index_bcbrdb_predecessor_table_zero_row = 0 /\ bcf_value_bcbrdb_predecessor_table_zero_row = 1) \/ exists bcf_predecessor_bcbrdb_predecessor_table_zero_row. bcf_index_bcbrdb_predecessor_table_zero_row = S bcf_predecessor_bcbrdb_predecessor_table_zero_row /\ bcf_value_bcbrdb_predecessor_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbrdb_predecessor_table bcf_previous_code_bcbrdb_predecessor_table bcf_previous_scale_bcbrdb_predecessor_table. bcf_row_index_bcbrdb_predecessor_table = S bcf_predecessor_bcbrdb_predecessor_table /\ ((((exists bcf_height_bcbrdb_predecessor_table_decoded_previous_code. bcf_height_bcbrdb_predecessor_table_decoded_previous_code + S (bcf_previous_code_bcbrdb_predecessor_table) = S ((S (bcf_predecessor_bcbrdb_predecessor_table)) * bcf_row_code_scale_bcbrdb_predecessor)) /\ exists bcf_quotient_bcbrdb_predecessor_table_decoded_previous_code. bcf_row_code_code_bcbrdb_predecessor = bcf_quotient_bcbrdb_predecessor_table_decoded_previous_code * S ((S (bcf_predecessor_bcbrdb_predecessor_table)) * bcf_row_code_scale_bcbrdb_predecessor) + (bcf_previous_code_bcbrdb_predecessor_table))) /\ ((((exists bcf_height_bcbrdb_predecessor_table_decoded_previous_scale. bcf_height_bcbrdb_predecessor_table_decoded_previous_scale + S (bcf_previous_scale_bcbrdb_predecessor_table) = S ((S (bcf_predecessor_bcbrdb_predecessor_table)) * bcf_row_scale_scale_bcbrdb_predecessor)) /\ exists bcf_quotient_bcbrdb_predecessor_table_decoded_previous_scale. bcf_row_scale_code_bcbrdb_predecessor = bcf_quotient_bcbrdb_predecessor_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbrdb_predecessor_table)) * bcf_row_scale_scale_bcbrdb_predecessor) + (bcf_previous_scale_bcbrdb_predecessor_table))) /\ (forall bcf_index_bcbrdb_predecessor_table_row_step. (exists bcf_lt_gap_bcbrdb_predecessor_table_row_step_bound. bcf_lt_gap_bcbrdb_predecessor_table_row_step_bound + S (bcf_index_bcbrdb_predecessor_table_row_step) = S (n + n)) -> exists bcf_value_bcbrdb_predecessor_table_row_step. ((((exists bcf_height_bcbrdb_predecessor_table_row_step_entry. bcf_height_bcbrdb_predecessor_table_row_step_entry + S (bcf_value_bcbrdb_predecessor_table_row_step) = S ((S (bcf_index_bcbrdb_predecessor_table_row_step)) * bcf_row_scale_bcbrdb_predecessor_table)) /\ exists bcf_quotient_bcbrdb_predecessor_table_row_step_entry. bcf_row_code_bcbrdb_predecessor_table = bcf_quotient_bcbrdb_predecessor_table_row_step_entry * S ((S (bcf_index_bcbrdb_predecessor_table_row_step)) * bcf_row_scale_bcbrdb_predecessor_table) + (bcf_value_bcbrdb_predecessor_table_row_step))) /\ ((bcf_index_bcbrdb_predecessor_table_row_step = 0 /\ bcf_value_bcbrdb_predecessor_table_row_step = 1) \/ exists bcf_predecessor_bcbrdb_predecessor_table_row_step bcf_left_bcbrdb_predecessor_table_row_step bcf_right_bcbrdb_predecessor_table_row_step. bcf_index_bcbrdb_predecessor_table_row_step = S bcf_predecessor_bcbrdb_predecessor_table_row_step /\ ((((exists bcf_height_bcbrdb_predecessor_table_row_step_previous_left. bcf_height_bcbrdb_predecessor_table_row_step_previous_left + S (bcf_left_bcbrdb_predecessor_table_row_step) = S ((S (bcf_predecessor_bcbrdb_predecessor_table_row_step)) * bcf_previous_scale_bcbrdb_predecessor_table)) /\ exists bcf_quotient_bcbrdb_predecessor_table_row_step_previous_left. bcf_previous_code_bcbrdb_predecessor_table = bcf_quotient_bcbrdb_predecessor_table_row_step_previous_left * S ((S (bcf_predecessor_bcbrdb_predecessor_table_row_step)) * bcf_previous_scale_bcbrdb_predecessor_table) + (bcf_left_bcbrdb_predecessor_table_row_step))) /\ ((((exists bcf_height_bcbrdb_predecessor_table_row_step_previous_right. bcf_height_bcbrdb_predecessor_table_row_step_previous_right + S (bcf_right_bcbrdb_predecessor_table_row_step) = S ((S (S (bcf_predecessor_bcbrdb_predecessor_table_row_step))) * bcf_previous_scale_bcbrdb_predecessor_table)) /\ exists bcf_quotient_bcbrdb_predecessor_table_row_step_previous_right. bcf_previous_code_bcbrdb_predecessor_table = bcf_quotient_bcbrdb_predecessor_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbrdb_predecessor_table_row_step))) * bcf_previous_scale_bcbrdb_predecessor_table) + (bcf_right_bcbrdb_predecessor_table_row_step))) /\ bcf_value_bcbrdb_predecessor_table_row_step = bcf_left_bcbrdb_predecessor_table_row_step + bcf_right_bcbrdb_predecessor_table_row_step))))))))))) /\ ((((exists bcf_height_bcbrdb_predecessor_decoded_row_code. bcf_height_bcbrdb_predecessor_decoded_row_code + S (bcf_row_code_bcbrdb_predecessor) = S ((S (n + n)) * bcf_row_code_scale_bcbrdb_predecessor)) /\ exists bcf_quotient_bcbrdb_predecessor_decoded_row_code. bcf_row_code_code_bcbrdb_predecessor = bcf_quotient_bcbrdb_predecessor_decoded_row_code * S ((S (n + n)) * bcf_row_code_scale_bcbrdb_predecessor) + (bcf_row_code_bcbrdb_predecessor))) /\ ((((exists bcf_height_bcbrdb_predecessor_decoded_row_scale. bcf_height_bcbrdb_predecessor_decoded_row_scale + S (bcf_row_scale_bcbrdb_predecessor) = S ((S (n + n)) * bcf_row_scale_scale_bcbrdb_predecessor)) /\ exists bcf_quotient_bcbrdb_predecessor_decoded_row_scale. bcf_row_scale_code_bcbrdb_predecessor = bcf_quotient_bcbrdb_predecessor_decoded_row_scale * S ((S (n + n)) * bcf_row_scale_scale_bcbrdb_predecessor) + (bcf_row_scale_bcbrdb_predecessor))) /\ (((exists bcf_height_bcbrdb_predecessor_decoded_value. bcf_height_bcbrdb_predecessor_decoded_value + S (c) = S ((S (n)) * bcf_row_scale_bcbrdb_predecessor)) /\ exists bcf_quotient_bcbrdb_predecessor_decoded_value. bcf_row_code_bcbrdb_predecessor = bcf_quotient_bcbrdb_predecessor_decoded_value * S ((S (n)) * bcf_row_scale_bcbrdb_predecessor) + (c))))))))) -> (((exists bcf_lt_gap_bcbrdb_successor_out_of_range. bcf_lt_gap_bcbrdb_successor_out_of_range + S (S n + S n) = S n) /\ d = 0) \/ ((exists bcf_le_gap_bcbrdb_successor_in_range. bcf_le_gap_bcbrdb_successor_in_range + (S n) = S n + S n) /\ (exists bcf_row_code_code_bcbrdb_successor bcf_row_code_scale_bcbrdb_successor bcf_row_scale_code_bcbrdb_successor bcf_row_scale_scale_bcbrdb_successor bcf_row_code_bcbrdb_successor bcf_row_scale_bcbrdb_successor. ((forall bcf_row_index_bcbrdb_successor_table. (exists bcf_lt_gap_bcbrdb_successor_table_row_bound. bcf_lt_gap_bcbrdb_successor_table_row_bound + S (bcf_row_index_bcbrdb_successor_table) = S (S n + S n)) -> exists bcf_row_code_bcbrdb_successor_table bcf_row_scale_bcbrdb_successor_table. ((((exists bcf_height_bcbrdb_successor_table_decoded_row_code. bcf_height_bcbrdb_successor_table_decoded_row_code + S (bcf_row_code_bcbrdb_successor_table) = S ((S (bcf_row_index_bcbrdb_successor_table)) * bcf_row_code_scale_bcbrdb_successor)) /\ exists bcf_quotient_bcbrdb_successor_table_decoded_row_code. bcf_row_code_code_bcbrdb_successor = bcf_quotient_bcbrdb_successor_table_decoded_row_code * S ((S (bcf_row_index_bcbrdb_successor_table)) * bcf_row_code_scale_bcbrdb_successor) + (bcf_row_code_bcbrdb_successor_table))) /\ ((((exists bcf_height_bcbrdb_successor_table_decoded_row_scale. bcf_height_bcbrdb_successor_table_decoded_row_scale + S (bcf_row_scale_bcbrdb_successor_table) = S ((S (bcf_row_index_bcbrdb_successor_table)) * bcf_row_scale_scale_bcbrdb_successor)) /\ exists bcf_quotient_bcbrdb_successor_table_decoded_row_scale. bcf_row_scale_code_bcbrdb_successor = bcf_quotient_bcbrdb_successor_table_decoded_row_scale * S ((S (bcf_row_index_bcbrdb_successor_table)) * bcf_row_scale_scale_bcbrdb_successor) + (bcf_row_scale_bcbrdb_successor_table))) /\ ((bcf_row_index_bcbrdb_successor_table = 0 /\ (forall bcf_index_bcbrdb_successor_table_zero_row. (exists bcf_lt_gap_bcbrdb_successor_table_zero_row_bound. bcf_lt_gap_bcbrdb_successor_table_zero_row_bound + S (bcf_index_bcbrdb_successor_table_zero_row) = S (S n + S n)) -> exists bcf_value_bcbrdb_successor_table_zero_row. ((((exists bcf_height_bcbrdb_successor_table_zero_row_entry. bcf_height_bcbrdb_successor_table_zero_row_entry + S (bcf_value_bcbrdb_successor_table_zero_row) = S ((S (bcf_index_bcbrdb_successor_table_zero_row)) * bcf_row_scale_bcbrdb_successor_table)) /\ exists bcf_quotient_bcbrdb_successor_table_zero_row_entry. bcf_row_code_bcbrdb_successor_table = bcf_quotient_bcbrdb_successor_table_zero_row_entry * S ((S (bcf_index_bcbrdb_successor_table_zero_row)) * bcf_row_scale_bcbrdb_successor_table) + (bcf_value_bcbrdb_successor_table_zero_row))) /\ ((bcf_index_bcbrdb_successor_table_zero_row = 0 /\ bcf_value_bcbrdb_successor_table_zero_row = 1) \/ exists bcf_predecessor_bcbrdb_successor_table_zero_row. bcf_index_bcbrdb_successor_table_zero_row = S bcf_predecessor_bcbrdb_successor_table_zero_row /\ bcf_value_bcbrdb_successor_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbrdb_successor_table bcf_previous_code_bcbrdb_successor_table bcf_previous_scale_bcbrdb_successor_table. bcf_row_index_bcbrdb_successor_table = S bcf_predecessor_bcbrdb_successor_table /\ ((((exists bcf_height_bcbrdb_successor_table_decoded_previous_code. bcf_height_bcbrdb_successor_table_decoded_previous_code + S (bcf_previous_code_bcbrdb_successor_table) = S ((S (bcf_predecessor_bcbrdb_successor_table)) * bcf_row_code_scale_bcbrdb_successor)) /\ exists bcf_quotient_bcbrdb_successor_table_decoded_previous_code. bcf_row_code_code_bcbrdb_successor = bcf_quotient_bcbrdb_successor_table_decoded_previous_code * S ((S (bcf_predecessor_bcbrdb_successor_table)) * bcf_row_code_scale_bcbrdb_successor) + (bcf_previous_code_bcbrdb_successor_table))) /\ ((((exists bcf_height_bcbrdb_successor_table_decoded_previous_scale. bcf_height_bcbrdb_successor_table_decoded_previous_scale + S (bcf_previous_scale_bcbrdb_successor_table) = S ((S (bcf_predecessor_bcbrdb_successor_table)) * bcf_row_scale_scale_bcbrdb_successor)) /\ exists bcf_quotient_bcbrdb_successor_table_decoded_previous_scale. bcf_row_scale_code_bcbrdb_successor = bcf_quotient_bcbrdb_successor_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbrdb_successor_table)) * bcf_row_scale_scale_bcbrdb_successor) + (bcf_previous_scale_bcbrdb_successor_table))) /\ (forall bcf_index_bcbrdb_successor_table_row_step. (exists bcf_lt_gap_bcbrdb_successor_table_row_step_bound. bcf_lt_gap_bcbrdb_successor_table_row_step_bound + S (bcf_index_bcbrdb_successor_table_row_step) = S (S n + S n)) -> exists bcf_value_bcbrdb_successor_table_row_step. ((((exists bcf_height_bcbrdb_successor_table_row_step_entry. bcf_height_bcbrdb_successor_table_row_step_entry + S (bcf_value_bcbrdb_successor_table_row_step) = S ((S (bcf_index_bcbrdb_successor_table_row_step)) * bcf_row_scale_bcbrdb_successor_table)) /\ exists bcf_quotient_bcbrdb_successor_table_row_step_entry. bcf_row_code_bcbrdb_successor_table = bcf_quotient_bcbrdb_successor_table_row_step_entry * S ((S (bcf_index_bcbrdb_successor_table_row_step)) * bcf_row_scale_bcbrdb_successor_table) + (bcf_value_bcbrdb_successor_table_row_step))) /\ ((bcf_index_bcbrdb_successor_table_row_step = 0 /\ bcf_value_bcbrdb_successor_table_row_step = 1) \/ exists bcf_predecessor_bcbrdb_successor_table_row_step bcf_left_bcbrdb_successor_table_row_step bcf_right_bcbrdb_successor_table_row_step. bcf_index_bcbrdb_successor_table_row_step = S bcf_predecessor_bcbrdb_successor_table_row_step /\ ((((exists bcf_height_bcbrdb_successor_table_row_step_previous_left. bcf_height_bcbrdb_successor_table_row_step_previous_left + S (bcf_left_bcbrdb_successor_table_row_step) = S ((S (bcf_predecessor_bcbrdb_successor_table_row_step)) * bcf_previous_scale_bcbrdb_successor_table)) /\ exists bcf_quotient_bcbrdb_successor_table_row_step_previous_left. bcf_previous_code_bcbrdb_successor_table = bcf_quotient_bcbrdb_successor_table_row_step_previous_left * S ((S (bcf_predecessor_bcbrdb_successor_table_row_step)) * bcf_previous_scale_bcbrdb_successor_table) + (bcf_left_bcbrdb_successor_table_row_step))) /\ ((((exists bcf_height_bcbrdb_successor_table_row_step_previous_right. bcf_height_bcbrdb_successor_table_row_step_previous_right + S (bcf_right_bcbrdb_successor_table_row_step) = S ((S (S (bcf_predecessor_bcbrdb_successor_table_row_step))) * bcf_previous_scale_bcbrdb_successor_table)) /\ exists bcf_quotient_bcbrdb_successor_table_row_step_previous_right. bcf_previous_code_bcbrdb_successor_table = bcf_quotient_bcbrdb_successor_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbrdb_successor_table_row_step))) * bcf_previous_scale_bcbrdb_successor_table) + (bcf_right_bcbrdb_successor_table_row_step))) /\ bcf_value_bcbrdb_successor_table_row_step = bcf_left_bcbrdb_successor_table_row_step + bcf_right_bcbrdb_successor_table_row_step))))))))))) /\ ((((exists bcf_height_bcbrdb_successor_decoded_row_code. bcf_height_bcbrdb_successor_decoded_row_code + S (bcf_row_code_bcbrdb_successor) = S ((S (S n + S n)) * bcf_row_code_scale_bcbrdb_successor)) /\ exists bcf_quotient_bcbrdb_successor_decoded_row_code. bcf_row_code_code_bcbrdb_successor = bcf_quotient_bcbrdb_successor_decoded_row_code * S ((S (S n + S n)) * bcf_row_code_scale_bcbrdb_successor) + (bcf_row_code_bcbrdb_successor))) /\ ((((exists bcf_height_bcbrdb_successor_decoded_row_scale. bcf_height_bcbrdb_successor_decoded_row_scale + S (bcf_row_scale_bcbrdb_successor) = S ((S (S n + S n)) * bcf_row_scale_scale_bcbrdb_successor)) /\ exists bcf_quotient_bcbrdb_successor_decoded_row_scale. bcf_row_scale_code_bcbrdb_successor = bcf_quotient_bcbrdb_successor_decoded_row_scale * S ((S (S n + S n)) * bcf_row_scale_scale_bcbrdb_successor) + (bcf_row_scale_bcbrdb_successor))) /\ (((exists bcf_height_bcbrdb_successor_decoded_value. bcf_height_bcbrdb_successor_decoded_value + S (d) = S ((S (S n)) * bcf_row_scale_bcbrdb_successor)) /\ exists bcf_quotient_bcbrdb_successor_decoded_value. bcf_row_code_bcbrdb_successor = bcf_quotient_bcbrdb_successor_decoded_value * S ((S (S n)) * bcf_row_scale_bcbrdb_successor) + (d))))))))) -> S n * d = (2 * S (n + n)) * c) -> (forall n. exists z. (((exists bcf_lt_gap_bcbsuo_exists_out_of_range. bcf_lt_gap_bcbsuo_exists_out_of_range + S (n + n) = n) /\ z = 0) \/ ((exists bcf_le_gap_bcbsuo_exists_in_range. bcf_le_gap_bcbsuo_exists_in_range + (n) = n + n) /\ (exists bcf_row_code_code_bcbsuo_exists bcf_row_code_scale_bcbsuo_exists bcf_row_scale_code_bcbsuo_exists bcf_row_scale_scale_bcbsuo_exists bcf_row_code_bcbsuo_exists bcf_row_scale_bcbsuo_exists. ((forall bcf_row_index_bcbsuo_exists_table. (exists bcf_lt_gap_bcbsuo_exists_table_row_bound. bcf_lt_gap_bcbsuo_exists_table_row_bound + S (bcf_row_index_bcbsuo_exists_table) = S (n + n)) -> exists bcf_row_code_bcbsuo_exists_table bcf_row_scale_bcbsuo_exists_table. ((((exists bcf_height_bcbsuo_exists_table_decoded_row_code. bcf_height_bcbsuo_exists_table_decoded_row_code + S (bcf_row_code_bcbsuo_exists_table) = S ((S (bcf_row_index_bcbsuo_exists_table)) * bcf_row_code_scale_bcbsuo_exists)) /\ exists bcf_quotient_bcbsuo_exists_table_decoded_row_code. bcf_row_code_code_bcbsuo_exists = bcf_quotient_bcbsuo_exists_table_decoded_row_code * S ((S (bcf_row_index_bcbsuo_exists_table)) * bcf_row_code_scale_bcbsuo_exists) + (bcf_row_code_bcbsuo_exists_table))) /\ ((((exists bcf_height_bcbsuo_exists_table_decoded_row_scale. bcf_height_bcbsuo_exists_table_decoded_row_scale + S (bcf_row_scale_bcbsuo_exists_table) = S ((S (bcf_row_index_bcbsuo_exists_table)) * bcf_row_scale_scale_bcbsuo_exists)) /\ exists bcf_quotient_bcbsuo_exists_table_decoded_row_scale. bcf_row_scale_code_bcbsuo_exists = bcf_quotient_bcbsuo_exists_table_decoded_row_scale * S ((S (bcf_row_index_bcbsuo_exists_table)) * bcf_row_scale_scale_bcbsuo_exists) + (bcf_row_scale_bcbsuo_exists_table))) /\ ((bcf_row_index_bcbsuo_exists_table = 0 /\ (forall bcf_index_bcbsuo_exists_table_zero_row. (exists bcf_lt_gap_bcbsuo_exists_table_zero_row_bound. bcf_lt_gap_bcbsuo_exists_table_zero_row_bound + S (bcf_index_bcbsuo_exists_table_zero_row) = S (n + n)) -> exists bcf_value_bcbsuo_exists_table_zero_row. ((((exists bcf_height_bcbsuo_exists_table_zero_row_entry. bcf_height_bcbsuo_exists_table_zero_row_entry + S (bcf_value_bcbsuo_exists_table_zero_row) = S ((S (bcf_index_bcbsuo_exists_table_zero_row)) * bcf_row_scale_bcbsuo_exists_table)) /\ exists bcf_quotient_bcbsuo_exists_table_zero_row_entry. bcf_row_code_bcbsuo_exists_table = bcf_quotient_bcbsuo_exists_table_zero_row_entry * S ((S (bcf_index_bcbsuo_exists_table_zero_row)) * bcf_row_scale_bcbsuo_exists_table) + (bcf_value_bcbsuo_exists_table_zero_row))) /\ ((bcf_index_bcbsuo_exists_table_zero_row = 0 /\ bcf_value_bcbsuo_exists_table_zero_row = 1) \/ exists bcf_predecessor_bcbsuo_exists_table_zero_row. bcf_index_bcbsuo_exists_table_zero_row = S bcf_predecessor_bcbsuo_exists_table_zero_row /\ bcf_value_bcbsuo_exists_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsuo_exists_table bcf_previous_code_bcbsuo_exists_table bcf_previous_scale_bcbsuo_exists_table. bcf_row_index_bcbsuo_exists_table = S bcf_predecessor_bcbsuo_exists_table /\ ((((exists bcf_height_bcbsuo_exists_table_decoded_previous_code. bcf_height_bcbsuo_exists_table_decoded_previous_code + S (bcf_previous_code_bcbsuo_exists_table) = S ((S (bcf_predecessor_bcbsuo_exists_table)) * bcf_row_code_scale_bcbsuo_exists)) /\ exists bcf_quotient_bcbsuo_exists_table_decoded_previous_code. bcf_row_code_code_bcbsuo_exists = bcf_quotient_bcbsuo_exists_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsuo_exists_table)) * bcf_row_code_scale_bcbsuo_exists) + (bcf_previous_code_bcbsuo_exists_table))) /\ ((((exists bcf_height_bcbsuo_exists_table_decoded_previous_scale. bcf_height_bcbsuo_exists_table_decoded_previous_scale + S (bcf_previous_scale_bcbsuo_exists_table) = S ((S (bcf_predecessor_bcbsuo_exists_table)) * bcf_row_scale_scale_bcbsuo_exists)) /\ exists bcf_quotient_bcbsuo_exists_table_decoded_previous_scale. bcf_row_scale_code_bcbsuo_exists = bcf_quotient_bcbsuo_exists_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsuo_exists_table)) * bcf_row_scale_scale_bcbsuo_exists) + (bcf_previous_scale_bcbsuo_exists_table))) /\ (forall bcf_index_bcbsuo_exists_table_row_step. (exists bcf_lt_gap_bcbsuo_exists_table_row_step_bound. bcf_lt_gap_bcbsuo_exists_table_row_step_bound + S (bcf_index_bcbsuo_exists_table_row_step) = S (n + n)) -> exists bcf_value_bcbsuo_exists_table_row_step. ((((exists bcf_height_bcbsuo_exists_table_row_step_entry. bcf_height_bcbsuo_exists_table_row_step_entry + S (bcf_value_bcbsuo_exists_table_row_step) = S ((S (bcf_index_bcbsuo_exists_table_row_step)) * bcf_row_scale_bcbsuo_exists_table)) /\ exists bcf_quotient_bcbsuo_exists_table_row_step_entry. bcf_row_code_bcbsuo_exists_table = bcf_quotient_bcbsuo_exists_table_row_step_entry * S ((S (bcf_index_bcbsuo_exists_table_row_step)) * bcf_row_scale_bcbsuo_exists_table) + (bcf_value_bcbsuo_exists_table_row_step))) /\ ((bcf_index_bcbsuo_exists_table_row_step = 0 /\ bcf_value_bcbsuo_exists_table_row_step = 1) \/ exists bcf_predecessor_bcbsuo_exists_table_row_step bcf_left_bcbsuo_exists_table_row_step bcf_right_bcbsuo_exists_table_row_step. bcf_index_bcbsuo_exists_table_row_step = S bcf_predecessor_bcbsuo_exists_table_row_step /\ ((((exists bcf_height_bcbsuo_exists_table_row_step_previous_left. bcf_height_bcbsuo_exists_table_row_step_previous_left + S (bcf_left_bcbsuo_exists_table_row_step) = S ((S (bcf_predecessor_bcbsuo_exists_table_row_step)) * bcf_previous_scale_bcbsuo_exists_table)) /\ exists bcf_quotient_bcbsuo_exists_table_row_step_previous_left. bcf_previous_code_bcbsuo_exists_table = bcf_quotient_bcbsuo_exists_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsuo_exists_table_row_step)) * bcf_previous_scale_bcbsuo_exists_table) + (bcf_left_bcbsuo_exists_table_row_step))) /\ ((((exists bcf_height_bcbsuo_exists_table_row_step_previous_right. bcf_height_bcbsuo_exists_table_row_step_previous_right + S (bcf_right_bcbsuo_exists_table_row_step) = S ((S (S (bcf_predecessor_bcbsuo_exists_table_row_step))) * bcf_previous_scale_bcbsuo_exists_table)) /\ exists bcf_quotient_bcbsuo_exists_table_row_step_previous_right. bcf_previous_code_bcbsuo_exists_table = bcf_quotient_bcbsuo_exists_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsuo_exists_table_row_step))) * bcf_previous_scale_bcbsuo_exists_table) + (bcf_right_bcbsuo_exists_table_row_step))) /\ bcf_value_bcbsuo_exists_table_row_step = bcf_left_bcbsuo_exists_table_row_step + bcf_right_bcbsuo_exists_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsuo_exists_decoded_row_code. bcf_height_bcbsuo_exists_decoded_row_code + S (bcf_row_code_bcbsuo_exists) = S ((S (n + n)) * bcf_row_code_scale_bcbsuo_exists)) /\ exists bcf_quotient_bcbsuo_exists_decoded_row_code. bcf_row_code_code_bcbsuo_exists = bcf_quotient_bcbsuo_exists_decoded_row_code * S ((S (n + n)) * bcf_row_code_scale_bcbsuo_exists) + (bcf_row_code_bcbsuo_exists))) /\ ((((exists bcf_height_bcbsuo_exists_decoded_row_scale. bcf_height_bcbsuo_exists_decoded_row_scale + S (bcf_row_scale_bcbsuo_exists) = S ((S (n + n)) * bcf_row_scale_scale_bcbsuo_exists)) /\ exists bcf_quotient_bcbsuo_exists_decoded_row_scale. bcf_row_scale_code_bcbsuo_exists = bcf_quotient_bcbsuo_exists_decoded_row_scale * S ((S (n + n)) * bcf_row_scale_scale_bcbsuo_exists) + (bcf_row_scale_bcbsuo_exists))) /\ (((exists bcf_height_bcbsuo_exists_decoded_value. bcf_height_bcbsuo_exists_decoded_value + S (z) = S ((S (n)) * bcf_row_scale_bcbsuo_exists)) /\ exists bcf_quotient_bcbsuo_exists_decoded_value. bcf_row_code_bcbsuo_exists = bcf_quotient_bcbsuo_exists_decoded_value * S ((S (n)) * bcf_row_scale_bcbsuo_exists) + (z)))))))))) -> (forall n c q. (((exists bcf_lt_gap_bcbsuo_central_out_of_range. bcf_lt_gap_bcbsuo_central_out_of_range + S (S n + S n) = S n) /\ c = 0) \/ ((exists bcf_le_gap_bcbsuo_central_in_range. bcf_le_gap_bcbsuo_central_in_range + (S n) = S n + S n) /\ (exists bcf_row_code_code_bcbsuo_central bcf_row_code_scale_bcbsuo_central bcf_row_scale_code_bcbsuo_central bcf_row_scale_scale_bcbsuo_central bcf_row_code_bcbsuo_central bcf_row_scale_bcbsuo_central. ((forall bcf_row_index_bcbsuo_central_table. (exists bcf_lt_gap_bcbsuo_central_table_row_bound. bcf_lt_gap_bcbsuo_central_table_row_bound + S (bcf_row_index_bcbsuo_central_table) = S (S n + S n)) -> exists bcf_row_code_bcbsuo_central_table bcf_row_scale_bcbsuo_central_table. ((((exists bcf_height_bcbsuo_central_table_decoded_row_code. bcf_height_bcbsuo_central_table_decoded_row_code + S (bcf_row_code_bcbsuo_central_table) = S ((S (bcf_row_index_bcbsuo_central_table)) * bcf_row_code_scale_bcbsuo_central)) /\ exists bcf_quotient_bcbsuo_central_table_decoded_row_code. bcf_row_code_code_bcbsuo_central = bcf_quotient_bcbsuo_central_table_decoded_row_code * S ((S (bcf_row_index_bcbsuo_central_table)) * bcf_row_code_scale_bcbsuo_central) + (bcf_row_code_bcbsuo_central_table))) /\ ((((exists bcf_height_bcbsuo_central_table_decoded_row_scale. bcf_height_bcbsuo_central_table_decoded_row_scale + S (bcf_row_scale_bcbsuo_central_table) = S ((S (bcf_row_index_bcbsuo_central_table)) * bcf_row_scale_scale_bcbsuo_central)) /\ exists bcf_quotient_bcbsuo_central_table_decoded_row_scale. bcf_row_scale_code_bcbsuo_central = bcf_quotient_bcbsuo_central_table_decoded_row_scale * S ((S (bcf_row_index_bcbsuo_central_table)) * bcf_row_scale_scale_bcbsuo_central) + (bcf_row_scale_bcbsuo_central_table))) /\ ((bcf_row_index_bcbsuo_central_table = 0 /\ (forall bcf_index_bcbsuo_central_table_zero_row. (exists bcf_lt_gap_bcbsuo_central_table_zero_row_bound. bcf_lt_gap_bcbsuo_central_table_zero_row_bound + S (bcf_index_bcbsuo_central_table_zero_row) = S (S n + S n)) -> exists bcf_value_bcbsuo_central_table_zero_row. ((((exists bcf_height_bcbsuo_central_table_zero_row_entry. bcf_height_bcbsuo_central_table_zero_row_entry + S (bcf_value_bcbsuo_central_table_zero_row) = S ((S (bcf_index_bcbsuo_central_table_zero_row)) * bcf_row_scale_bcbsuo_central_table)) /\ exists bcf_quotient_bcbsuo_central_table_zero_row_entry. bcf_row_code_bcbsuo_central_table = bcf_quotient_bcbsuo_central_table_zero_row_entry * S ((S (bcf_index_bcbsuo_central_table_zero_row)) * bcf_row_scale_bcbsuo_central_table) + (bcf_value_bcbsuo_central_table_zero_row))) /\ ((bcf_index_bcbsuo_central_table_zero_row = 0 /\ bcf_value_bcbsuo_central_table_zero_row = 1) \/ exists bcf_predecessor_bcbsuo_central_table_zero_row. bcf_index_bcbsuo_central_table_zero_row = S bcf_predecessor_bcbsuo_central_table_zero_row /\ bcf_value_bcbsuo_central_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsuo_central_table bcf_previous_code_bcbsuo_central_table bcf_previous_scale_bcbsuo_central_table. bcf_row_index_bcbsuo_central_table = S bcf_predecessor_bcbsuo_central_table /\ ((((exists bcf_height_bcbsuo_central_table_decoded_previous_code. bcf_height_bcbsuo_central_table_decoded_previous_code + S (bcf_previous_code_bcbsuo_central_table) = S ((S (bcf_predecessor_bcbsuo_central_table)) * bcf_row_code_scale_bcbsuo_central)) /\ exists bcf_quotient_bcbsuo_central_table_decoded_previous_code. bcf_row_code_code_bcbsuo_central = bcf_quotient_bcbsuo_central_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsuo_central_table)) * bcf_row_code_scale_bcbsuo_central) + (bcf_previous_code_bcbsuo_central_table))) /\ ((((exists bcf_height_bcbsuo_central_table_decoded_previous_scale. bcf_height_bcbsuo_central_table_decoded_previous_scale + S (bcf_previous_scale_bcbsuo_central_table) = S ((S (bcf_predecessor_bcbsuo_central_table)) * bcf_row_scale_scale_bcbsuo_central)) /\ exists bcf_quotient_bcbsuo_central_table_decoded_previous_scale. bcf_row_scale_code_bcbsuo_central = bcf_quotient_bcbsuo_central_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsuo_central_table)) * bcf_row_scale_scale_bcbsuo_central) + (bcf_previous_scale_bcbsuo_central_table))) /\ (forall bcf_index_bcbsuo_central_table_row_step. (exists bcf_lt_gap_bcbsuo_central_table_row_step_bound. bcf_lt_gap_bcbsuo_central_table_row_step_bound + S (bcf_index_bcbsuo_central_table_row_step) = S (S n + S n)) -> exists bcf_value_bcbsuo_central_table_row_step. ((((exists bcf_height_bcbsuo_central_table_row_step_entry. bcf_height_bcbsuo_central_table_row_step_entry + S (bcf_value_bcbsuo_central_table_row_step) = S ((S (bcf_index_bcbsuo_central_table_row_step)) * bcf_row_scale_bcbsuo_central_table)) /\ exists bcf_quotient_bcbsuo_central_table_row_step_entry. bcf_row_code_bcbsuo_central_table = bcf_quotient_bcbsuo_central_table_row_step_entry * S ((S (bcf_index_bcbsuo_central_table_row_step)) * bcf_row_scale_bcbsuo_central_table) + (bcf_value_bcbsuo_central_table_row_step))) /\ ((bcf_index_bcbsuo_central_table_row_step = 0 /\ bcf_value_bcbsuo_central_table_row_step = 1) \/ exists bcf_predecessor_bcbsuo_central_table_row_step bcf_left_bcbsuo_central_table_row_step bcf_right_bcbsuo_central_table_row_step. bcf_index_bcbsuo_central_table_row_step = S bcf_predecessor_bcbsuo_central_table_row_step /\ ((((exists bcf_height_bcbsuo_central_table_row_step_previous_left. bcf_height_bcbsuo_central_table_row_step_previous_left + S (bcf_left_bcbsuo_central_table_row_step) = S ((S (bcf_predecessor_bcbsuo_central_table_row_step)) * bcf_previous_scale_bcbsuo_central_table)) /\ exists bcf_quotient_bcbsuo_central_table_row_step_previous_left. bcf_previous_code_bcbsuo_central_table = bcf_quotient_bcbsuo_central_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsuo_central_table_row_step)) * bcf_previous_scale_bcbsuo_central_table) + (bcf_left_bcbsuo_central_table_row_step))) /\ ((((exists bcf_height_bcbsuo_central_table_row_step_previous_right. bcf_height_bcbsuo_central_table_row_step_previous_right + S (bcf_right_bcbsuo_central_table_row_step) = S ((S (S (bcf_predecessor_bcbsuo_central_table_row_step))) * bcf_previous_scale_bcbsuo_central_table)) /\ exists bcf_quotient_bcbsuo_central_table_row_step_previous_right. bcf_previous_code_bcbsuo_central_table = bcf_quotient_bcbsuo_central_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsuo_central_table_row_step))) * bcf_previous_scale_bcbsuo_central_table) + (bcf_right_bcbsuo_central_table_row_step))) /\ bcf_value_bcbsuo_central_table_row_step = bcf_left_bcbsuo_central_table_row_step + bcf_right_bcbsuo_central_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsuo_central_decoded_row_code. bcf_height_bcbsuo_central_decoded_row_code + S (bcf_row_code_bcbsuo_central) = S ((S (S n + S n)) * bcf_row_code_scale_bcbsuo_central)) /\ exists bcf_quotient_bcbsuo_central_decoded_row_code. bcf_row_code_code_bcbsuo_central = bcf_quotient_bcbsuo_central_decoded_row_code * S ((S (S n + S n)) * bcf_row_code_scale_bcbsuo_central) + (bcf_row_code_bcbsuo_central))) /\ ((((exists bcf_height_bcbsuo_central_decoded_row_scale. bcf_height_bcbsuo_central_decoded_row_scale + S (bcf_row_scale_bcbsuo_central) = S ((S (S n + S n)) * bcf_row_scale_scale_bcbsuo_central)) /\ exists bcf_quotient_bcbsuo_central_decoded_row_scale. bcf_row_scale_code_bcbsuo_central = bcf_quotient_bcbsuo_central_decoded_row_scale * S ((S (S n + S n)) * bcf_row_scale_scale_bcbsuo_central) + (bcf_row_scale_bcbsuo_central))) /\ (((exists bcf_height_bcbsuo_central_decoded_value. bcf_height_bcbsuo_central_decoded_value + S (c) = S ((S (S n)) * bcf_row_scale_bcbsuo_central)) /\ exists bcf_quotient_bcbsuo_central_decoded_value. bcf_row_code_bcbsuo_central = bcf_quotient_bcbsuo_central_decoded_value * S ((S (S n)) * bcf_row_scale_bcbsuo_central) + (c))))))))) -> (exists pa_b_bcbsuo_power pa_c_bcbsuo_power. ((forall pa_i_bcbsuo_power_repeat. (exists pa_lt_bcbsuo_power_repeat_bound. pa_lt_bcbsuo_power_repeat_bound + S pa_i_bcbsuo_power_repeat = S n) -> (((exists pa_h_bcbsuo_power_repeat_decoded. pa_h_bcbsuo_power_repeat_decoded + S (4) = S ((S (pa_i_bcbsuo_power_repeat)) * pa_c_bcbsuo_power)) /\ exists pa_q_bcbsuo_power_repeat_decoded. pa_b_bcbsuo_power = pa_q_bcbsuo_power_repeat_decoded * S ((S (pa_i_bcbsuo_power_repeat)) * pa_c_bcbsuo_power) + (4)))) /\ (exists pa_u_bcbsuo_power_product pa_v_bcbsuo_power_product. ((((exists pa_h_bcbsuo_power_product_start. pa_h_bcbsuo_power_product_start + S (1) = S ((S (0)) * pa_v_bcbsuo_power_product)) /\ exists pa_q_bcbsuo_power_product_start. pa_u_bcbsuo_power_product = pa_q_bcbsuo_power_product_start * S ((S (0)) * pa_v_bcbsuo_power_product) + (1))) /\ ((((exists pa_h_bcbsuo_power_product_terminal. pa_h_bcbsuo_power_product_terminal + S (q) = S ((S (S n)) * pa_v_bcbsuo_power_product)) /\ exists pa_q_bcbsuo_power_product_terminal. pa_u_bcbsuo_power_product = pa_q_bcbsuo_power_product_terminal * S ((S (S n)) * pa_v_bcbsuo_power_product) + (q))) /\ forall pa_i_bcbsuo_power_product. (exists pa_lt_bcbsuo_power_product_bound. pa_lt_bcbsuo_power_product_bound + S pa_i_bcbsuo_power_product = S n) -> exists pa_p_bcbsuo_power_product pa_r_bcbsuo_power_product pa_s_bcbsuo_power_product. ((((exists pa_h_bcbsuo_power_product_factor. pa_h_bcbsuo_power_product_factor + S (pa_p_bcbsuo_power_product) = S ((S (pa_i_bcbsuo_power_product)) * pa_c_bcbsuo_power)) /\ exists pa_q_bcbsuo_power_product_factor. pa_b_bcbsuo_power = pa_q_bcbsuo_power_product_factor * S ((S (pa_i_bcbsuo_power_product)) * pa_c_bcbsuo_power) + (pa_p_bcbsuo_power_product))) /\ ((((exists pa_h_bcbsuo_power_product_partial. pa_h_bcbsuo_power_product_partial + S (pa_r_bcbsuo_power_product) = S ((S (pa_i_bcbsuo_power_product)) * pa_v_bcbsuo_power_product)) /\ exists pa_q_bcbsuo_power_product_partial. pa_u_bcbsuo_power_product = pa_q_bcbsuo_power_product_partial * S ((S (pa_i_bcbsuo_power_product)) * pa_v_bcbsuo_power_product) + (pa_r_bcbsuo_power_product))) /\ ((((exists pa_h_bcbsuo_power_product_successor. pa_h_bcbsuo_power_product_successor + S (pa_s_bcbsuo_power_product) = S ((S (S pa_i_bcbsuo_power_product)) * pa_v_bcbsuo_power_product)) /\ exists pa_q_bcbsuo_power_product_successor. pa_u_bcbsuo_power_product = pa_q_bcbsuo_power_product_successor * S ((S (S pa_i_bcbsuo_power_product)) * pa_v_bcbsuo_power_product) + (pa_s_bcbsuo_power_product))) /\ pa_s_bcbsuo_power_product = pa_r_bcbsuo_power_product * pa_p_bcbsuo_power_product)))))))) -> (exists bcf_le_gap_bcbsuo_result. bcf_le_gap_bcbsuo_result + (2 * c) = q))

Structural proof guide

Recurrence and totality imply the positive-index strong bound.

Direct prerequisites: one_mul, le_refl, pow_zero, pow_successor_decompose, central_binom_zero, central_binom_strong_upper_step. The authored body proceeds by structural induction (1), case analysis (6), intermediate claims (12), equality transport (6), closed numeral normalization (3).

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

Dependencies are hypotheses of the historical Alpha-v12 body receipt. The complete historical Alpha-v18 proof bundle independently checks every dependency; current Alpha v25 preserves that checked theorem use without changing Stable membership.

Read the argument

Proof checkpoints

89 script commands · 19 reading checkpoints · 12 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Named ingredients (6)

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

01Fix variables and assumptionsL1–2

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

  1. L1
    intro hrecurrence
  2. L2
    intro hcentral_exists
02Induction on nL3–7

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

  1. L3
    induction n
  2. L4
    intro c
  3. L5
    intro q
  4. L6
    intro hcentral
  5. L7
    intro hpower
03Establish hzero_existsL8–9

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

  1. L8
    have hzero_exists : ∃ a. CentralBinom(0,a)Definitions: CentralBinom
  2. L9
    apply hcentral_exists
04Separate the logical casesL10–10

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

  1. L10
    cases hzero_exists
05Establish hzero_valueL11–13

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

  1. L11
    have hzero_value : x = 1
  2. L12
    apply central_binom_zero
  3. L13
    exact hzero_exists_witness
06Establish hrecurrence_zeroL14–20

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

  1. L14
    have hrecurrence_zero : S 0 * c = (2 * S (0 + 0)) * x
  2. L15
    apply hrecurrence
  3. L16
    exact hzero_exists_witness
  4. L17
    exact hcentral
  5. L18
    rewrite hzero_value at hrecurrence_zero
  6. L19
    specialize one_mul c
  7. L20
    rewrite one_mul at hrecurrence_zero
07Establish hcentral_valueL21–24

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

  1. L21
    have hcentral_value : c = 2
  2. L22
    trans (2 * S (0 + 0)) * 1
  3. L23
    exact hrecurrence_zero
  4. L24
    norm_num
08Establish hpower_stepL25–32

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

  1. L25
    have hpower_step : ∃ r. Pow(4,0,r) ∧ q = r · 4Definitions: Pow
  2. L26
    specialize pow_successor_decompose 4
  3. L27
    specialize pow_successor_decompose 0
  4. L28
    specialize pow_successor_decompose 1
  5. L29
    specialize pow_successor_decompose q
  6. L30
    apply pow_successor_decompose
  7. L31
    refl
  8. L32
    exact hpower
09Separate the logical casesL33–34

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

  1. L33
    cases hpower_step
  2. L34
    cases hpower_step_witness
10Establish hpower_zeroL35–41

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

  1. L35
    have hpower_zero : x1 = 1
  2. L36
    specialize pow_zero 4
  3. L37
    specialize pow_zero 0
  4. L38
    specialize pow_zero x1
  5. L39
    apply pow_zero
  6. L40
    refl
  7. L41
    exact hpower_step_witness_left
11Establish hpower_valueL42–48

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

  1. L42
    have hpower_value : q = 4
  2. L43
    rewrite hpower_zero at hpower_step_witness_right
  3. L44
    trans 1 * 4
  4. L45
    exact hpower_step_witness_right
  5. L46
    norm_num
  6. L47
    rewrite hcentral_value
  7. L48
    rewrite hpower_value
12Establish htwo_twoL49–57

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

  1. L49
    have htwo_two : 2 * 2 = 4
  2. L50
    norm_num
  3. L51
    rewrite htwo_two
  4. L52
    specialize le_refl 4
  5. L53
    exact le_refl
  6. L54
    intro c
  7. L55
    intro q
  8. L56
    intro hcentral
  9. L57
    intro hpower
13Establish hprevious_existsL58–59

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

  1. L58
    have hprevious_exists : ∃ a. CentralBinom(S n,a)Definitions: CentralBinom
  2. L59
    apply hcentral_exists
14Separate the logical casesL60–60

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

  1. L60
    cases hprevious_exists
15Establish hpower_stepL61–68

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

  1. L61
    have hpower_step : ∃ r. Pow(4,S n,r) ∧ q = r · 4Definitions: Pow
  2. L62
    specialize pow_successor_decompose 4
  3. L63
    specialize pow_successor_decompose (S n)
  4. L64
    specialize pow_successor_decompose (S (S n))
  5. L65
    specialize pow_successor_decompose q
  6. L66
    apply pow_successor_decompose
  7. L67
    refl
  8. L68
    exact hpower
16Separate the logical casesL69–70

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

  1. L69
    cases hpower_step
  2. L70
    cases hpower_step_witness
17Establish hprevious_boundL71–76

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

  1. L71
    have hprevious_bound : exists k. k + 2 * x = x1
  2. L72
    specialize IH x
  3. L73
    specialize IH x1
  4. L74
    apply IH
  5. L75
    exact hprevious_exists_witness
  6. L76
    exact hpower_step_witness_left
18Establish hrecurrence_stepL77–86

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

  1. L77
    have hrecurrence_step : S (S n) * c = (2 * S (S n + S n)) * x
  2. L78
    apply hrecurrence
  3. L79
    exact hprevious_exists_witness
  4. L80
    exact hcentral
  5. L81
    specialize central_binom_strong_upper_step (S n)
  6. L82
    specialize central_binom_strong_upper_step x
  7. L83
    specialize central_binom_strong_upper_step c
  8. L84
    specialize central_binom_strong_upper_step x1
  9. L85
    specialize central_binom_strong_upper_step q
  10. L86
    apply central_binom_strong_upper_step
19Use earlier factsL87–89

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

  1. L87
    exact hprevious_bound
  2. L88
    exact hrecurrence_step
  3. L89
    exact hpower_step_witness_right

Library-wide reading audit

Original exact command ledger · 89 lines
  1. 0001intro hrecurrence
  2. 0002intro hcentral_exists
  3. 0003induction n
  4. 0004intro c
  5. 0005intro q
  6. 0006intro hcentral
  7. 0007intro hpower
  8. 0008have hzero_exists : exists a. (((exists bcf_lt_gap_bcbsuo_base_central_out_of_range. bcf_lt_gap_bcbsuo_base_central_out_of_range + S (0 + 0) = 0) /\ a = 0) \/ ((exists bcf_le_gap_bcbsuo_base_central_in_range. bcf_le_gap_bcbsuo_base_central_in_range + (0) = 0 + 0) /\ (exists bcf_row_code_code_bcbsuo_base_central bcf_row_code_scale_bcbsuo_base_central bcf_row_scale_code_bcbsuo_base_central bcf_row_scale_scale_bcbsuo_base_central bcf_row_code_bcbsuo_base_central bcf_row_scale_bcbsuo_base_central. ((forall bcf_row_index_bcbsuo_base_central_table. (exists bcf_lt_gap_bcbsuo_base_central_table_row_bound. bcf_lt_gap_bcbsuo_base_central_table_row_bound + S (bcf_row_index_bcbsuo_base_central_table) = S (0 + 0)) -> exists bcf_row_code_bcbsuo_base_central_table bcf_row_scale_bcbsuo_base_central_table. ((((exists bcf_height_bcbsuo_base_central_table_decoded_row_code. bcf_height_bcbsuo_base_central_table_decoded_row_code + S (bcf_row_code_bcbsuo_base_central_table) = S ((S (bcf_row_index_bcbsuo_base_central_table)) * bcf_row_code_scale_bcbsuo_base_central)) /\ exists bcf_quotient_bcbsuo_base_central_table_decoded_row_code. bcf_row_code_code_bcbsuo_base_central = bcf_quotient_bcbsuo_base_central_table_decoded_row_code * S ((S (bcf_row_index_bcbsuo_base_central_table)) * bcf_row_code_scale_bcbsuo_base_central) + (bcf_row_code_bcbsuo_base_central_table))) /\ ((((exists bcf_height_bcbsuo_base_central_table_decoded_row_scale. bcf_height_bcbsuo_base_central_table_decoded_row_scale + S (bcf_row_scale_bcbsuo_base_central_table) = S ((S (bcf_row_index_bcbsuo_base_central_table)) * bcf_row_scale_scale_bcbsuo_base_central)) /\ exists bcf_quotient_bcbsuo_base_central_table_decoded_row_scale. bcf_row_scale_code_bcbsuo_base_central = bcf_quotient_bcbsuo_base_central_table_decoded_row_scale * S ((S (bcf_row_index_bcbsuo_base_central_table)) * bcf_row_scale_scale_bcbsuo_base_central) + (bcf_row_scale_bcbsuo_base_central_table))) /\ ((bcf_row_index_bcbsuo_base_central_table = 0 /\ (forall bcf_index_bcbsuo_base_central_table_zero_row. (exists bcf_lt_gap_bcbsuo_base_central_table_zero_row_bound. bcf_lt_gap_bcbsuo_base_central_table_zero_row_bound + S (bcf_index_bcbsuo_base_central_table_zero_row) = S (0 + 0)) -> exists bcf_value_bcbsuo_base_central_table_zero_row. ((((exists bcf_height_bcbsuo_base_central_table_zero_row_entry. bcf_height_bcbsuo_base_central_table_zero_row_entry + S (bcf_value_bcbsuo_base_central_table_zero_row) = S ((S (bcf_index_bcbsuo_base_central_table_zero_row)) * bcf_row_scale_bcbsuo_base_central_table)) /\ exists bcf_quotient_bcbsuo_base_central_table_zero_row_entry. bcf_row_code_bcbsuo_base_central_table = bcf_quotient_bcbsuo_base_central_table_zero_row_entry * S ((S (bcf_index_bcbsuo_base_central_table_zero_row)) * bcf_row_scale_bcbsuo_base_central_table) + (bcf_value_bcbsuo_base_central_table_zero_row))) /\ ((bcf_index_bcbsuo_base_central_table_zero_row = 0 /\ bcf_value_bcbsuo_base_central_table_zero_row = 1) \/ exists bcf_predecessor_bcbsuo_base_central_table_zero_row. bcf_index_bcbsuo_base_central_table_zero_row = S bcf_predecessor_bcbsuo_base_central_table_zero_row /\ bcf_value_bcbsuo_base_central_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsuo_base_central_table bcf_previous_code_bcbsuo_base_central_table bcf_previous_scale_bcbsuo_base_central_table. bcf_row_index_bcbsuo_base_central_table = S bcf_predecessor_bcbsuo_base_central_table /\ ((((exists bcf_height_bcbsuo_base_central_table_decoded_previous_code. bcf_height_bcbsuo_base_central_table_decoded_previous_code + S (bcf_previous_code_bcbsuo_base_central_table) = S ((S (bcf_predecessor_bcbsuo_base_central_table)) * bcf_row_code_scale_bcbsuo_base_central)) /\ exists bcf_quotient_bcbsuo_base_central_table_decoded_previous_code. bcf_row_code_code_bcbsuo_base_central = bcf_quotient_bcbsuo_base_central_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsuo_base_central_table)) * bcf_row_code_scale_bcbsuo_base_central) + (bcf_previous_code_bcbsuo_base_central_table))) /\ ((((exists bcf_height_bcbsuo_base_central_table_decoded_previous_scale. bcf_height_bcbsuo_base_central_table_decoded_previous_scale + S (bcf_previous_scale_bcbsuo_base_central_table) = S ((S (bcf_predecessor_bcbsuo_base_central_table)) * bcf_row_scale_scale_bcbsuo_base_central)) /\ exists bcf_quotient_bcbsuo_base_central_table_decoded_previous_scale. bcf_row_scale_code_bcbsuo_base_central = bcf_quotient_bcbsuo_base_central_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsuo_base_central_table)) * bcf_row_scale_scale_bcbsuo_base_central) + (bcf_previous_scale_bcbsuo_base_central_table))) /\ (forall bcf_index_bcbsuo_base_central_table_row_step. (exists bcf_lt_gap_bcbsuo_base_central_table_row_step_bound. bcf_lt_gap_bcbsuo_base_central_table_row_step_bound + S (bcf_index_bcbsuo_base_central_table_row_step) = S (0 + 0)) -> exists bcf_value_bcbsuo_base_central_table_row_step. ((((exists bcf_height_bcbsuo_base_central_table_row_step_entry. bcf_height_bcbsuo_base_central_table_row_step_entry + S (bcf_value_bcbsuo_base_central_table_row_step) = S ((S (bcf_index_bcbsuo_base_central_table_row_step)) * bcf_row_scale_bcbsuo_base_central_table)) /\ exists bcf_quotient_bcbsuo_base_central_table_row_step_entry. bcf_row_code_bcbsuo_base_central_table = bcf_quotient_bcbsuo_base_central_table_row_step_entry * S ((S (bcf_index_bcbsuo_base_central_table_row_step)) * bcf_row_scale_bcbsuo_base_central_table) + (bcf_value_bcbsuo_base_central_table_row_step))) /\ ((bcf_index_bcbsuo_base_central_table_row_step = 0 /\ bcf_value_bcbsuo_base_central_table_row_step = 1) \/ exists bcf_predecessor_bcbsuo_base_central_table_row_step bcf_left_bcbsuo_base_central_table_row_step bcf_right_bcbsuo_base_central_table_row_step. bcf_index_bcbsuo_base_central_table_row_step = S bcf_predecessor_bcbsuo_base_central_table_row_step /\ ((((exists bcf_height_bcbsuo_base_central_table_row_step_previous_left. bcf_height_bcbsuo_base_central_table_row_step_previous_left + S (bcf_left_bcbsuo_base_central_table_row_step) = S ((S (bcf_predecessor_bcbsuo_base_central_table_row_step)) * bcf_previous_scale_bcbsuo_base_central_table)) /\ exists bcf_quotient_bcbsuo_base_central_table_row_step_previous_left. bcf_previous_code_bcbsuo_base_central_table = bcf_quotient_bcbsuo_base_central_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsuo_base_central_table_row_step)) * bcf_previous_scale_bcbsuo_base_central_table) + (bcf_left_bcbsuo_base_central_table_row_step))) /\ ((((exists bcf_height_bcbsuo_base_central_table_row_step_previous_right. bcf_height_bcbsuo_base_central_table_row_step_previous_right + S (bcf_right_bcbsuo_base_central_table_row_step) = S ((S (S (bcf_predecessor_bcbsuo_base_central_table_row_step))) * bcf_previous_scale_bcbsuo_base_central_table)) /\ exists bcf_quotient_bcbsuo_base_central_table_row_step_previous_right. bcf_previous_code_bcbsuo_base_central_table = bcf_quotient_bcbsuo_base_central_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsuo_base_central_table_row_step))) * bcf_previous_scale_bcbsuo_base_central_table) + (bcf_right_bcbsuo_base_central_table_row_step))) /\ bcf_value_bcbsuo_base_central_table_row_step = bcf_left_bcbsuo_base_central_table_row_step + bcf_right_bcbsuo_base_central_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsuo_base_central_decoded_row_code. bcf_height_bcbsuo_base_central_decoded_row_code + S (bcf_row_code_bcbsuo_base_central) = S ((S (0 + 0)) * bcf_row_code_scale_bcbsuo_base_central)) /\ exists bcf_quotient_bcbsuo_base_central_decoded_row_code. bcf_row_code_code_bcbsuo_base_central = bcf_quotient_bcbsuo_base_central_decoded_row_code * S ((S (0 + 0)) * bcf_row_code_scale_bcbsuo_base_central) + (bcf_row_code_bcbsuo_base_central))) /\ ((((exists bcf_height_bcbsuo_base_central_decoded_row_scale. bcf_height_bcbsuo_base_central_decoded_row_scale + S (bcf_row_scale_bcbsuo_base_central) = S ((S (0 + 0)) * bcf_row_scale_scale_bcbsuo_base_central)) /\ exists bcf_quotient_bcbsuo_base_central_decoded_row_scale. bcf_row_scale_code_bcbsuo_base_central = bcf_quotient_bcbsuo_base_central_decoded_row_scale * S ((S (0 + 0)) * bcf_row_scale_scale_bcbsuo_base_central) + (bcf_row_scale_bcbsuo_base_central))) /\ (((exists bcf_height_bcbsuo_base_central_decoded_value. bcf_height_bcbsuo_base_central_decoded_value + S (a) = S ((S (0)) * bcf_row_scale_bcbsuo_base_central)) /\ exists bcf_quotient_bcbsuo_base_central_decoded_value. bcf_row_code_bcbsuo_base_central = bcf_quotient_bcbsuo_base_central_decoded_value * S ((S (0)) * bcf_row_scale_bcbsuo_base_central) + (a)))))))))
  9. 0009apply hcentral_exists
  10. 0010cases hzero_exists
  11. 0011have hzero_value : x = 1
  12. 0012apply central_binom_zero
  13. 0013exact hzero_exists_witness
  14. 0014have hrecurrence_zero : S 0 * c = (2 * S (0 + 0)) * x
  15. 0015apply hrecurrence
  16. 0016exact hzero_exists_witness
  17. 0017exact hcentral
  18. 0018rewrite hzero_value at hrecurrence_zero
  19. 0019specialize one_mul c
  20. 0020rewrite one_mul at hrecurrence_zero
  21. 0021have hcentral_value : c = 2
  22. 0022trans (2 * S (0 + 0)) * 1
  23. 0023exact hrecurrence_zero
  24. 0024norm_num
  25. 0025have hpower_step : exists r. (exists pa_b_bcbsuo_base_power pa_c_bcbsuo_base_power. ((forall pa_i_bcbsuo_base_power_repeat. (exists pa_lt_bcbsuo_base_power_repeat_bound. pa_lt_bcbsuo_base_power_repeat_bound + S pa_i_bcbsuo_base_power_repeat = 0) -> (((exists pa_h_bcbsuo_base_power_repeat_decoded. pa_h_bcbsuo_base_power_repeat_decoded + S (4) = S ((S (pa_i_bcbsuo_base_power_repeat)) * pa_c_bcbsuo_base_power)) /\ exists pa_q_bcbsuo_base_power_repeat_decoded. pa_b_bcbsuo_base_power = pa_q_bcbsuo_base_power_repeat_decoded * S ((S (pa_i_bcbsuo_base_power_repeat)) * pa_c_bcbsuo_base_power) + (4)))) /\ (exists pa_u_bcbsuo_base_power_product pa_v_bcbsuo_base_power_product. ((((exists pa_h_bcbsuo_base_power_product_start. pa_h_bcbsuo_base_power_product_start + S (1) = S ((S (0)) * pa_v_bcbsuo_base_power_product)) /\ exists pa_q_bcbsuo_base_power_product_start. pa_u_bcbsuo_base_power_product = pa_q_bcbsuo_base_power_product_start * S ((S (0)) * pa_v_bcbsuo_base_power_product) + (1))) /\ ((((exists pa_h_bcbsuo_base_power_product_terminal. pa_h_bcbsuo_base_power_product_terminal + S (r) = S ((S (0)) * pa_v_bcbsuo_base_power_product)) /\ exists pa_q_bcbsuo_base_power_product_terminal. pa_u_bcbsuo_base_power_product = pa_q_bcbsuo_base_power_product_terminal * S ((S (0)) * pa_v_bcbsuo_base_power_product) + (r))) /\ forall pa_i_bcbsuo_base_power_product. (exists pa_lt_bcbsuo_base_power_product_bound. pa_lt_bcbsuo_base_power_product_bound + S pa_i_bcbsuo_base_power_product = 0) -> exists pa_p_bcbsuo_base_power_product pa_r_bcbsuo_base_power_product pa_s_bcbsuo_base_power_product. ((((exists pa_h_bcbsuo_base_power_product_factor. pa_h_bcbsuo_base_power_product_factor + S (pa_p_bcbsuo_base_power_product) = S ((S (pa_i_bcbsuo_base_power_product)) * pa_c_bcbsuo_base_power)) /\ exists pa_q_bcbsuo_base_power_product_factor. pa_b_bcbsuo_base_power = pa_q_bcbsuo_base_power_product_factor * S ((S (pa_i_bcbsuo_base_power_product)) * pa_c_bcbsuo_base_power) + (pa_p_bcbsuo_base_power_product))) /\ ((((exists pa_h_bcbsuo_base_power_product_partial. pa_h_bcbsuo_base_power_product_partial + S (pa_r_bcbsuo_base_power_product) = S ((S (pa_i_bcbsuo_base_power_product)) * pa_v_bcbsuo_base_power_product)) /\ exists pa_q_bcbsuo_base_power_product_partial. pa_u_bcbsuo_base_power_product = pa_q_bcbsuo_base_power_product_partial * S ((S (pa_i_bcbsuo_base_power_product)) * pa_v_bcbsuo_base_power_product) + (pa_r_bcbsuo_base_power_product))) /\ ((((exists pa_h_bcbsuo_base_power_product_successor. pa_h_bcbsuo_base_power_product_successor + S (pa_s_bcbsuo_base_power_product) = S ((S (S pa_i_bcbsuo_base_power_product)) * pa_v_bcbsuo_base_power_product)) /\ exists pa_q_bcbsuo_base_power_product_successor. pa_u_bcbsuo_base_power_product = pa_q_bcbsuo_base_power_product_successor * S ((S (S pa_i_bcbsuo_base_power_product)) * pa_v_bcbsuo_base_power_product) + (pa_s_bcbsuo_base_power_product))) /\ pa_s_bcbsuo_base_power_product = pa_r_bcbsuo_base_power_product * pa_p_bcbsuo_base_power_product)))))))) /\ q = r * 4
  26. 0026specialize pow_successor_decompose 4
  27. 0027specialize pow_successor_decompose 0
  28. 0028specialize pow_successor_decompose 1
  29. 0029specialize pow_successor_decompose q
  30. 0030apply pow_successor_decompose
  31. 0031refl
  32. 0032exact hpower
  33. 0033cases hpower_step
  34. 0034cases hpower_step_witness
  35. 0035have hpower_zero : x1 = 1
  36. 0036specialize pow_zero 4
  37. 0037specialize pow_zero 0
  38. 0038specialize pow_zero x1
  39. 0039apply pow_zero
  40. 0040refl
  41. 0041exact hpower_step_witness_left
  42. 0042have hpower_value : q = 4
  43. 0043rewrite hpower_zero at hpower_step_witness_right
  44. 0044trans 1 * 4
  45. 0045exact hpower_step_witness_right
  46. 0046norm_num
  47. 0047rewrite hcentral_value
  48. 0048rewrite hpower_value
  49. 0049have htwo_two : 2 * 2 = 4
  50. 0050norm_num
  51. 0051rewrite htwo_two
  52. 0052specialize le_refl 4
  53. 0053exact le_refl
  54. 0054intro c
  55. 0055intro q
  56. 0056intro hcentral
  57. 0057intro hpower
  58. 0058have hprevious_exists : exists a. (((exists bcf_lt_gap_bcbsuo_step_central_out_of_range. bcf_lt_gap_bcbsuo_step_central_out_of_range + S (S n + S n) = S n) /\ a = 0) \/ ((exists bcf_le_gap_bcbsuo_step_central_in_range. bcf_le_gap_bcbsuo_step_central_in_range + (S n) = S n + S n) /\ (exists bcf_row_code_code_bcbsuo_step_central bcf_row_code_scale_bcbsuo_step_central bcf_row_scale_code_bcbsuo_step_central bcf_row_scale_scale_bcbsuo_step_central bcf_row_code_bcbsuo_step_central bcf_row_scale_bcbsuo_step_central. ((forall bcf_row_index_bcbsuo_step_central_table. (exists bcf_lt_gap_bcbsuo_step_central_table_row_bound. bcf_lt_gap_bcbsuo_step_central_table_row_bound + S (bcf_row_index_bcbsuo_step_central_table) = S (S n + S n)) -> exists bcf_row_code_bcbsuo_step_central_table bcf_row_scale_bcbsuo_step_central_table. ((((exists bcf_height_bcbsuo_step_central_table_decoded_row_code. bcf_height_bcbsuo_step_central_table_decoded_row_code + S (bcf_row_code_bcbsuo_step_central_table) = S ((S (bcf_row_index_bcbsuo_step_central_table)) * bcf_row_code_scale_bcbsuo_step_central)) /\ exists bcf_quotient_bcbsuo_step_central_table_decoded_row_code. bcf_row_code_code_bcbsuo_step_central = bcf_quotient_bcbsuo_step_central_table_decoded_row_code * S ((S (bcf_row_index_bcbsuo_step_central_table)) * bcf_row_code_scale_bcbsuo_step_central) + (bcf_row_code_bcbsuo_step_central_table))) /\ ((((exists bcf_height_bcbsuo_step_central_table_decoded_row_scale. bcf_height_bcbsuo_step_central_table_decoded_row_scale + S (bcf_row_scale_bcbsuo_step_central_table) = S ((S (bcf_row_index_bcbsuo_step_central_table)) * bcf_row_scale_scale_bcbsuo_step_central)) /\ exists bcf_quotient_bcbsuo_step_central_table_decoded_row_scale. bcf_row_scale_code_bcbsuo_step_central = bcf_quotient_bcbsuo_step_central_table_decoded_row_scale * S ((S (bcf_row_index_bcbsuo_step_central_table)) * bcf_row_scale_scale_bcbsuo_step_central) + (bcf_row_scale_bcbsuo_step_central_table))) /\ ((bcf_row_index_bcbsuo_step_central_table = 0 /\ (forall bcf_index_bcbsuo_step_central_table_zero_row. (exists bcf_lt_gap_bcbsuo_step_central_table_zero_row_bound. bcf_lt_gap_bcbsuo_step_central_table_zero_row_bound + S (bcf_index_bcbsuo_step_central_table_zero_row) = S (S n + S n)) -> exists bcf_value_bcbsuo_step_central_table_zero_row. ((((exists bcf_height_bcbsuo_step_central_table_zero_row_entry. bcf_height_bcbsuo_step_central_table_zero_row_entry + S (bcf_value_bcbsuo_step_central_table_zero_row) = S ((S (bcf_index_bcbsuo_step_central_table_zero_row)) * bcf_row_scale_bcbsuo_step_central_table)) /\ exists bcf_quotient_bcbsuo_step_central_table_zero_row_entry. bcf_row_code_bcbsuo_step_central_table = bcf_quotient_bcbsuo_step_central_table_zero_row_entry * S ((S (bcf_index_bcbsuo_step_central_table_zero_row)) * bcf_row_scale_bcbsuo_step_central_table) + (bcf_value_bcbsuo_step_central_table_zero_row))) /\ ((bcf_index_bcbsuo_step_central_table_zero_row = 0 /\ bcf_value_bcbsuo_step_central_table_zero_row = 1) \/ exists bcf_predecessor_bcbsuo_step_central_table_zero_row. bcf_index_bcbsuo_step_central_table_zero_row = S bcf_predecessor_bcbsuo_step_central_table_zero_row /\ bcf_value_bcbsuo_step_central_table_zero_row = 0)))) \/ exists bcf_predecessor_bcbsuo_step_central_table bcf_previous_code_bcbsuo_step_central_table bcf_previous_scale_bcbsuo_step_central_table. bcf_row_index_bcbsuo_step_central_table = S bcf_predecessor_bcbsuo_step_central_table /\ ((((exists bcf_height_bcbsuo_step_central_table_decoded_previous_code. bcf_height_bcbsuo_step_central_table_decoded_previous_code + S (bcf_previous_code_bcbsuo_step_central_table) = S ((S (bcf_predecessor_bcbsuo_step_central_table)) * bcf_row_code_scale_bcbsuo_step_central)) /\ exists bcf_quotient_bcbsuo_step_central_table_decoded_previous_code. bcf_row_code_code_bcbsuo_step_central = bcf_quotient_bcbsuo_step_central_table_decoded_previous_code * S ((S (bcf_predecessor_bcbsuo_step_central_table)) * bcf_row_code_scale_bcbsuo_step_central) + (bcf_previous_code_bcbsuo_step_central_table))) /\ ((((exists bcf_height_bcbsuo_step_central_table_decoded_previous_scale. bcf_height_bcbsuo_step_central_table_decoded_previous_scale + S (bcf_previous_scale_bcbsuo_step_central_table) = S ((S (bcf_predecessor_bcbsuo_step_central_table)) * bcf_row_scale_scale_bcbsuo_step_central)) /\ exists bcf_quotient_bcbsuo_step_central_table_decoded_previous_scale. bcf_row_scale_code_bcbsuo_step_central = bcf_quotient_bcbsuo_step_central_table_decoded_previous_scale * S ((S (bcf_predecessor_bcbsuo_step_central_table)) * bcf_row_scale_scale_bcbsuo_step_central) + (bcf_previous_scale_bcbsuo_step_central_table))) /\ (forall bcf_index_bcbsuo_step_central_table_row_step. (exists bcf_lt_gap_bcbsuo_step_central_table_row_step_bound. bcf_lt_gap_bcbsuo_step_central_table_row_step_bound + S (bcf_index_bcbsuo_step_central_table_row_step) = S (S n + S n)) -> exists bcf_value_bcbsuo_step_central_table_row_step. ((((exists bcf_height_bcbsuo_step_central_table_row_step_entry. bcf_height_bcbsuo_step_central_table_row_step_entry + S (bcf_value_bcbsuo_step_central_table_row_step) = S ((S (bcf_index_bcbsuo_step_central_table_row_step)) * bcf_row_scale_bcbsuo_step_central_table)) /\ exists bcf_quotient_bcbsuo_step_central_table_row_step_entry. bcf_row_code_bcbsuo_step_central_table = bcf_quotient_bcbsuo_step_central_table_row_step_entry * S ((S (bcf_index_bcbsuo_step_central_table_row_step)) * bcf_row_scale_bcbsuo_step_central_table) + (bcf_value_bcbsuo_step_central_table_row_step))) /\ ((bcf_index_bcbsuo_step_central_table_row_step = 0 /\ bcf_value_bcbsuo_step_central_table_row_step = 1) \/ exists bcf_predecessor_bcbsuo_step_central_table_row_step bcf_left_bcbsuo_step_central_table_row_step bcf_right_bcbsuo_step_central_table_row_step. bcf_index_bcbsuo_step_central_table_row_step = S bcf_predecessor_bcbsuo_step_central_table_row_step /\ ((((exists bcf_height_bcbsuo_step_central_table_row_step_previous_left. bcf_height_bcbsuo_step_central_table_row_step_previous_left + S (bcf_left_bcbsuo_step_central_table_row_step) = S ((S (bcf_predecessor_bcbsuo_step_central_table_row_step)) * bcf_previous_scale_bcbsuo_step_central_table)) /\ exists bcf_quotient_bcbsuo_step_central_table_row_step_previous_left. bcf_previous_code_bcbsuo_step_central_table = bcf_quotient_bcbsuo_step_central_table_row_step_previous_left * S ((S (bcf_predecessor_bcbsuo_step_central_table_row_step)) * bcf_previous_scale_bcbsuo_step_central_table) + (bcf_left_bcbsuo_step_central_table_row_step))) /\ ((((exists bcf_height_bcbsuo_step_central_table_row_step_previous_right. bcf_height_bcbsuo_step_central_table_row_step_previous_right + S (bcf_right_bcbsuo_step_central_table_row_step) = S ((S (S (bcf_predecessor_bcbsuo_step_central_table_row_step))) * bcf_previous_scale_bcbsuo_step_central_table)) /\ exists bcf_quotient_bcbsuo_step_central_table_row_step_previous_right. bcf_previous_code_bcbsuo_step_central_table = bcf_quotient_bcbsuo_step_central_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcbsuo_step_central_table_row_step))) * bcf_previous_scale_bcbsuo_step_central_table) + (bcf_right_bcbsuo_step_central_table_row_step))) /\ bcf_value_bcbsuo_step_central_table_row_step = bcf_left_bcbsuo_step_central_table_row_step + bcf_right_bcbsuo_step_central_table_row_step))))))))))) /\ ((((exists bcf_height_bcbsuo_step_central_decoded_row_code. bcf_height_bcbsuo_step_central_decoded_row_code + S (bcf_row_code_bcbsuo_step_central) = S ((S (S n + S n)) * bcf_row_code_scale_bcbsuo_step_central)) /\ exists bcf_quotient_bcbsuo_step_central_decoded_row_code. bcf_row_code_code_bcbsuo_step_central = bcf_quotient_bcbsuo_step_central_decoded_row_code * S ((S (S n + S n)) * bcf_row_code_scale_bcbsuo_step_central) + (bcf_row_code_bcbsuo_step_central))) /\ ((((exists bcf_height_bcbsuo_step_central_decoded_row_scale. bcf_height_bcbsuo_step_central_decoded_row_scale + S (bcf_row_scale_bcbsuo_step_central) = S ((S (S n + S n)) * bcf_row_scale_scale_bcbsuo_step_central)) /\ exists bcf_quotient_bcbsuo_step_central_decoded_row_scale. bcf_row_scale_code_bcbsuo_step_central = bcf_quotient_bcbsuo_step_central_decoded_row_scale * S ((S (S n + S n)) * bcf_row_scale_scale_bcbsuo_step_central) + (bcf_row_scale_bcbsuo_step_central))) /\ (((exists bcf_height_bcbsuo_step_central_decoded_value. bcf_height_bcbsuo_step_central_decoded_value + S (a) = S ((S (S n)) * bcf_row_scale_bcbsuo_step_central)) /\ exists bcf_quotient_bcbsuo_step_central_decoded_value. bcf_row_code_bcbsuo_step_central = bcf_quotient_bcbsuo_step_central_decoded_value * S ((S (S n)) * bcf_row_scale_bcbsuo_step_central) + (a)))))))))
  59. 0059apply hcentral_exists
  60. 0060cases hprevious_exists
  61. 0061have hpower_step : exists r. (exists pa_b_bcbsuo_step_power pa_c_bcbsuo_step_power. ((forall pa_i_bcbsuo_step_power_repeat. (exists pa_lt_bcbsuo_step_power_repeat_bound. pa_lt_bcbsuo_step_power_repeat_bound + S pa_i_bcbsuo_step_power_repeat = S n) -> (((exists pa_h_bcbsuo_step_power_repeat_decoded. pa_h_bcbsuo_step_power_repeat_decoded + S (4) = S ((S (pa_i_bcbsuo_step_power_repeat)) * pa_c_bcbsuo_step_power)) /\ exists pa_q_bcbsuo_step_power_repeat_decoded. pa_b_bcbsuo_step_power = pa_q_bcbsuo_step_power_repeat_decoded * S ((S (pa_i_bcbsuo_step_power_repeat)) * pa_c_bcbsuo_step_power) + (4)))) /\ (exists pa_u_bcbsuo_step_power_product pa_v_bcbsuo_step_power_product. ((((exists pa_h_bcbsuo_step_power_product_start. pa_h_bcbsuo_step_power_product_start + S (1) = S ((S (0)) * pa_v_bcbsuo_step_power_product)) /\ exists pa_q_bcbsuo_step_power_product_start. pa_u_bcbsuo_step_power_product = pa_q_bcbsuo_step_power_product_start * S ((S (0)) * pa_v_bcbsuo_step_power_product) + (1))) /\ ((((exists pa_h_bcbsuo_step_power_product_terminal. pa_h_bcbsuo_step_power_product_terminal + S (r) = S ((S (S n)) * pa_v_bcbsuo_step_power_product)) /\ exists pa_q_bcbsuo_step_power_product_terminal. pa_u_bcbsuo_step_power_product = pa_q_bcbsuo_step_power_product_terminal * S ((S (S n)) * pa_v_bcbsuo_step_power_product) + (r))) /\ forall pa_i_bcbsuo_step_power_product. (exists pa_lt_bcbsuo_step_power_product_bound. pa_lt_bcbsuo_step_power_product_bound + S pa_i_bcbsuo_step_power_product = S n) -> exists pa_p_bcbsuo_step_power_product pa_r_bcbsuo_step_power_product pa_s_bcbsuo_step_power_product. ((((exists pa_h_bcbsuo_step_power_product_factor. pa_h_bcbsuo_step_power_product_factor + S (pa_p_bcbsuo_step_power_product) = S ((S (pa_i_bcbsuo_step_power_product)) * pa_c_bcbsuo_step_power)) /\ exists pa_q_bcbsuo_step_power_product_factor. pa_b_bcbsuo_step_power = pa_q_bcbsuo_step_power_product_factor * S ((S (pa_i_bcbsuo_step_power_product)) * pa_c_bcbsuo_step_power) + (pa_p_bcbsuo_step_power_product))) /\ ((((exists pa_h_bcbsuo_step_power_product_partial. pa_h_bcbsuo_step_power_product_partial + S (pa_r_bcbsuo_step_power_product) = S ((S (pa_i_bcbsuo_step_power_product)) * pa_v_bcbsuo_step_power_product)) /\ exists pa_q_bcbsuo_step_power_product_partial. pa_u_bcbsuo_step_power_product = pa_q_bcbsuo_step_power_product_partial * S ((S (pa_i_bcbsuo_step_power_product)) * pa_v_bcbsuo_step_power_product) + (pa_r_bcbsuo_step_power_product))) /\ ((((exists pa_h_bcbsuo_step_power_product_successor. pa_h_bcbsuo_step_power_product_successor + S (pa_s_bcbsuo_step_power_product) = S ((S (S pa_i_bcbsuo_step_power_product)) * pa_v_bcbsuo_step_power_product)) /\ exists pa_q_bcbsuo_step_power_product_successor. pa_u_bcbsuo_step_power_product = pa_q_bcbsuo_step_power_product_successor * S ((S (S pa_i_bcbsuo_step_power_product)) * pa_v_bcbsuo_step_power_product) + (pa_s_bcbsuo_step_power_product))) /\ pa_s_bcbsuo_step_power_product = pa_r_bcbsuo_step_power_product * pa_p_bcbsuo_step_power_product)))))))) /\ q = r * 4
  62. 0062specialize pow_successor_decompose 4
  63. 0063specialize pow_successor_decompose (S n)
  64. 0064specialize pow_successor_decompose (S (S n))
  65. 0065specialize pow_successor_decompose q
  66. 0066apply pow_successor_decompose
  67. 0067refl
  68. 0068exact hpower
  69. 0069cases hpower_step
  70. 0070cases hpower_step_witness
  71. 0071have hprevious_bound : exists k. k + 2 * x = x1
  72. 0072specialize IH x
  73. 0073specialize IH x1
  74. 0074apply IH
  75. 0075exact hprevious_exists_witness
  76. 0076exact hpower_step_witness_left
  77. 0077have hrecurrence_step : S (S n) * c = (2 * S (S n + S n)) * x
  78. 0078apply hrecurrence
  79. 0079exact hprevious_exists_witness
  80. 0080exact hcentral
  81. 0081specialize central_binom_strong_upper_step (S n)
  82. 0082specialize central_binom_strong_upper_step x
  83. 0083specialize central_binom_strong_upper_step c
  84. 0084specialize central_binom_strong_upper_step x1
  85. 0085specialize central_binom_strong_upper_step q
  86. 0086apply central_binom_strong_upper_step
  87. 0087exact hprevious_bound
  88. 0088exact hrecurrence_step
  89. 0089exact hpower_step_witness_right