BT00TJ

choose_succ_succ

Alpha body-checked ยท checked-use disabled

Relational Choose values satisfy Pascal recurrence everywhere.

Exact expanded PA statement

forall n k x y z. (((exists bcf_lt_gap_bcss_left_out_of_range. bcf_lt_gap_bcss_left_out_of_range + S (n) = k) /\ x = 0) \/ ((exists bcf_le_gap_bcss_left_in_range. bcf_le_gap_bcss_left_in_range + (k) = n) /\ (exists bcf_row_code_code_bcss_left bcf_row_code_scale_bcss_left bcf_row_scale_code_bcss_left bcf_row_scale_scale_bcss_left bcf_row_code_bcss_left bcf_row_scale_bcss_left. ((forall bcf_row_index_bcss_left_table. (exists bcf_lt_gap_bcss_left_table_row_bound. bcf_lt_gap_bcss_left_table_row_bound + S (bcf_row_index_bcss_left_table) = S (n)) -> exists bcf_row_code_bcss_left_table bcf_row_scale_bcss_left_table. ((((exists bcf_height_bcss_left_table_decoded_row_code. bcf_height_bcss_left_table_decoded_row_code + S (bcf_row_code_bcss_left_table) = S ((S (bcf_row_index_bcss_left_table)) * bcf_row_code_scale_bcss_left)) /\ exists bcf_quotient_bcss_left_table_decoded_row_code. bcf_row_code_code_bcss_left = bcf_quotient_bcss_left_table_decoded_row_code * S ((S (bcf_row_index_bcss_left_table)) * bcf_row_code_scale_bcss_left) + (bcf_row_code_bcss_left_table))) /\ ((((exists bcf_height_bcss_left_table_decoded_row_scale. bcf_height_bcss_left_table_decoded_row_scale + S (bcf_row_scale_bcss_left_table) = S ((S (bcf_row_index_bcss_left_table)) * bcf_row_scale_scale_bcss_left)) /\ exists bcf_quotient_bcss_left_table_decoded_row_scale. bcf_row_scale_code_bcss_left = bcf_quotient_bcss_left_table_decoded_row_scale * S ((S (bcf_row_index_bcss_left_table)) * bcf_row_scale_scale_bcss_left) + (bcf_row_scale_bcss_left_table))) /\ ((bcf_row_index_bcss_left_table = 0 /\ (forall bcf_index_bcss_left_table_zero_row. (exists bcf_lt_gap_bcss_left_table_zero_row_bound. bcf_lt_gap_bcss_left_table_zero_row_bound + S (bcf_index_bcss_left_table_zero_row) = S (n)) -> exists bcf_value_bcss_left_table_zero_row. ((((exists bcf_height_bcss_left_table_zero_row_entry. bcf_height_bcss_left_table_zero_row_entry + S (bcf_value_bcss_left_table_zero_row) = S ((S (bcf_index_bcss_left_table_zero_row)) * bcf_row_scale_bcss_left_table)) /\ exists bcf_quotient_bcss_left_table_zero_row_entry. bcf_row_code_bcss_left_table = bcf_quotient_bcss_left_table_zero_row_entry * S ((S (bcf_index_bcss_left_table_zero_row)) * bcf_row_scale_bcss_left_table) + (bcf_value_bcss_left_table_zero_row))) /\ ((bcf_index_bcss_left_table_zero_row = 0 /\ bcf_value_bcss_left_table_zero_row = 1) \/ exists bcf_predecessor_bcss_left_table_zero_row. bcf_index_bcss_left_table_zero_row = S bcf_predecessor_bcss_left_table_zero_row /\ bcf_value_bcss_left_table_zero_row = 0)))) \/ exists bcf_predecessor_bcss_left_table bcf_previous_code_bcss_left_table bcf_previous_scale_bcss_left_table. bcf_row_index_bcss_left_table = S bcf_predecessor_bcss_left_table /\ ((((exists bcf_height_bcss_left_table_decoded_previous_code. bcf_height_bcss_left_table_decoded_previous_code + S (bcf_previous_code_bcss_left_table) = S ((S (bcf_predecessor_bcss_left_table)) * bcf_row_code_scale_bcss_left)) /\ exists bcf_quotient_bcss_left_table_decoded_previous_code. bcf_row_code_code_bcss_left = bcf_quotient_bcss_left_table_decoded_previous_code * S ((S (bcf_predecessor_bcss_left_table)) * bcf_row_code_scale_bcss_left) + (bcf_previous_code_bcss_left_table))) /\ ((((exists bcf_height_bcss_left_table_decoded_previous_scale. bcf_height_bcss_left_table_decoded_previous_scale + S (bcf_previous_scale_bcss_left_table) = S ((S (bcf_predecessor_bcss_left_table)) * bcf_row_scale_scale_bcss_left)) /\ exists bcf_quotient_bcss_left_table_decoded_previous_scale. bcf_row_scale_code_bcss_left = bcf_quotient_bcss_left_table_decoded_previous_scale * S ((S (bcf_predecessor_bcss_left_table)) * bcf_row_scale_scale_bcss_left) + (bcf_previous_scale_bcss_left_table))) /\ (forall bcf_index_bcss_left_table_row_step. (exists bcf_lt_gap_bcss_left_table_row_step_bound. bcf_lt_gap_bcss_left_table_row_step_bound + S (bcf_index_bcss_left_table_row_step) = S (n)) -> exists bcf_value_bcss_left_table_row_step. ((((exists bcf_height_bcss_left_table_row_step_entry. bcf_height_bcss_left_table_row_step_entry + S (bcf_value_bcss_left_table_row_step) = S ((S (bcf_index_bcss_left_table_row_step)) * bcf_row_scale_bcss_left_table)) /\ exists bcf_quotient_bcss_left_table_row_step_entry. bcf_row_code_bcss_left_table = bcf_quotient_bcss_left_table_row_step_entry * S ((S (bcf_index_bcss_left_table_row_step)) * bcf_row_scale_bcss_left_table) + (bcf_value_bcss_left_table_row_step))) /\ ((bcf_index_bcss_left_table_row_step = 0 /\ bcf_value_bcss_left_table_row_step = 1) \/ exists bcf_predecessor_bcss_left_table_row_step bcf_left_bcss_left_table_row_step bcf_right_bcss_left_table_row_step. bcf_index_bcss_left_table_row_step = S bcf_predecessor_bcss_left_table_row_step /\ ((((exists bcf_height_bcss_left_table_row_step_previous_left. bcf_height_bcss_left_table_row_step_previous_left + S (bcf_left_bcss_left_table_row_step) = S ((S (bcf_predecessor_bcss_left_table_row_step)) * bcf_previous_scale_bcss_left_table)) /\ exists bcf_quotient_bcss_left_table_row_step_previous_left. bcf_previous_code_bcss_left_table = bcf_quotient_bcss_left_table_row_step_previous_left * S ((S (bcf_predecessor_bcss_left_table_row_step)) * bcf_previous_scale_bcss_left_table) + (bcf_left_bcss_left_table_row_step))) /\ ((((exists bcf_height_bcss_left_table_row_step_previous_right. bcf_height_bcss_left_table_row_step_previous_right + S (bcf_right_bcss_left_table_row_step) = S ((S (S (bcf_predecessor_bcss_left_table_row_step))) * bcf_previous_scale_bcss_left_table)) /\ exists bcf_quotient_bcss_left_table_row_step_previous_right. bcf_previous_code_bcss_left_table = bcf_quotient_bcss_left_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcss_left_table_row_step))) * bcf_previous_scale_bcss_left_table) + (bcf_right_bcss_left_table_row_step))) /\ bcf_value_bcss_left_table_row_step = bcf_left_bcss_left_table_row_step + bcf_right_bcss_left_table_row_step))))))))))) /\ ((((exists bcf_height_bcss_left_decoded_row_code. bcf_height_bcss_left_decoded_row_code + S (bcf_row_code_bcss_left) = S ((S (n)) * bcf_row_code_scale_bcss_left)) /\ exists bcf_quotient_bcss_left_decoded_row_code. bcf_row_code_code_bcss_left = bcf_quotient_bcss_left_decoded_row_code * S ((S (n)) * bcf_row_code_scale_bcss_left) + (bcf_row_code_bcss_left))) /\ ((((exists bcf_height_bcss_left_decoded_row_scale. bcf_height_bcss_left_decoded_row_scale + S (bcf_row_scale_bcss_left) = S ((S (n)) * bcf_row_scale_scale_bcss_left)) /\ exists bcf_quotient_bcss_left_decoded_row_scale. bcf_row_scale_code_bcss_left = bcf_quotient_bcss_left_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_bcss_left) + (bcf_row_scale_bcss_left))) /\ (((exists bcf_height_bcss_left_decoded_value. bcf_height_bcss_left_decoded_value + S (x) = S ((S (k)) * bcf_row_scale_bcss_left)) /\ exists bcf_quotient_bcss_left_decoded_value. bcf_row_code_bcss_left = bcf_quotient_bcss_left_decoded_value * S ((S (k)) * bcf_row_scale_bcss_left) + (x))))))))) -> (((exists bcf_lt_gap_bcss_right_out_of_range. bcf_lt_gap_bcss_right_out_of_range + S (n) = S k) /\ y = 0) \/ ((exists bcf_le_gap_bcss_right_in_range. bcf_le_gap_bcss_right_in_range + (S k) = n) /\ (exists bcf_row_code_code_bcss_right bcf_row_code_scale_bcss_right bcf_row_scale_code_bcss_right bcf_row_scale_scale_bcss_right bcf_row_code_bcss_right bcf_row_scale_bcss_right. ((forall bcf_row_index_bcss_right_table. (exists bcf_lt_gap_bcss_right_table_row_bound. bcf_lt_gap_bcss_right_table_row_bound + S (bcf_row_index_bcss_right_table) = S (n)) -> exists bcf_row_code_bcss_right_table bcf_row_scale_bcss_right_table. ((((exists bcf_height_bcss_right_table_decoded_row_code. bcf_height_bcss_right_table_decoded_row_code + S (bcf_row_code_bcss_right_table) = S ((S (bcf_row_index_bcss_right_table)) * bcf_row_code_scale_bcss_right)) /\ exists bcf_quotient_bcss_right_table_decoded_row_code. bcf_row_code_code_bcss_right = bcf_quotient_bcss_right_table_decoded_row_code * S ((S (bcf_row_index_bcss_right_table)) * bcf_row_code_scale_bcss_right) + (bcf_row_code_bcss_right_table))) /\ ((((exists bcf_height_bcss_right_table_decoded_row_scale. bcf_height_bcss_right_table_decoded_row_scale + S (bcf_row_scale_bcss_right_table) = S ((S (bcf_row_index_bcss_right_table)) * bcf_row_scale_scale_bcss_right)) /\ exists bcf_quotient_bcss_right_table_decoded_row_scale. bcf_row_scale_code_bcss_right = bcf_quotient_bcss_right_table_decoded_row_scale * S ((S (bcf_row_index_bcss_right_table)) * bcf_row_scale_scale_bcss_right) + (bcf_row_scale_bcss_right_table))) /\ ((bcf_row_index_bcss_right_table = 0 /\ (forall bcf_index_bcss_right_table_zero_row. (exists bcf_lt_gap_bcss_right_table_zero_row_bound. bcf_lt_gap_bcss_right_table_zero_row_bound + S (bcf_index_bcss_right_table_zero_row) = S (n)) -> exists bcf_value_bcss_right_table_zero_row. ((((exists bcf_height_bcss_right_table_zero_row_entry. bcf_height_bcss_right_table_zero_row_entry + S (bcf_value_bcss_right_table_zero_row) = S ((S (bcf_index_bcss_right_table_zero_row)) * bcf_row_scale_bcss_right_table)) /\ exists bcf_quotient_bcss_right_table_zero_row_entry. bcf_row_code_bcss_right_table = bcf_quotient_bcss_right_table_zero_row_entry * S ((S (bcf_index_bcss_right_table_zero_row)) * bcf_row_scale_bcss_right_table) + (bcf_value_bcss_right_table_zero_row))) /\ ((bcf_index_bcss_right_table_zero_row = 0 /\ bcf_value_bcss_right_table_zero_row = 1) \/ exists bcf_predecessor_bcss_right_table_zero_row. bcf_index_bcss_right_table_zero_row = S bcf_predecessor_bcss_right_table_zero_row /\ bcf_value_bcss_right_table_zero_row = 0)))) \/ exists bcf_predecessor_bcss_right_table bcf_previous_code_bcss_right_table bcf_previous_scale_bcss_right_table. bcf_row_index_bcss_right_table = S bcf_predecessor_bcss_right_table /\ ((((exists bcf_height_bcss_right_table_decoded_previous_code. bcf_height_bcss_right_table_decoded_previous_code + S (bcf_previous_code_bcss_right_table) = S ((S (bcf_predecessor_bcss_right_table)) * bcf_row_code_scale_bcss_right)) /\ exists bcf_quotient_bcss_right_table_decoded_previous_code. bcf_row_code_code_bcss_right = bcf_quotient_bcss_right_table_decoded_previous_code * S ((S (bcf_predecessor_bcss_right_table)) * bcf_row_code_scale_bcss_right) + (bcf_previous_code_bcss_right_table))) /\ ((((exists bcf_height_bcss_right_table_decoded_previous_scale. bcf_height_bcss_right_table_decoded_previous_scale + S (bcf_previous_scale_bcss_right_table) = S ((S (bcf_predecessor_bcss_right_table)) * bcf_row_scale_scale_bcss_right)) /\ exists bcf_quotient_bcss_right_table_decoded_previous_scale. bcf_row_scale_code_bcss_right = bcf_quotient_bcss_right_table_decoded_previous_scale * S ((S (bcf_predecessor_bcss_right_table)) * bcf_row_scale_scale_bcss_right) + (bcf_previous_scale_bcss_right_table))) /\ (forall bcf_index_bcss_right_table_row_step. (exists bcf_lt_gap_bcss_right_table_row_step_bound. bcf_lt_gap_bcss_right_table_row_step_bound + S (bcf_index_bcss_right_table_row_step) = S (n)) -> exists bcf_value_bcss_right_table_row_step. ((((exists bcf_height_bcss_right_table_row_step_entry. bcf_height_bcss_right_table_row_step_entry + S (bcf_value_bcss_right_table_row_step) = S ((S (bcf_index_bcss_right_table_row_step)) * bcf_row_scale_bcss_right_table)) /\ exists bcf_quotient_bcss_right_table_row_step_entry. bcf_row_code_bcss_right_table = bcf_quotient_bcss_right_table_row_step_entry * S ((S (bcf_index_bcss_right_table_row_step)) * bcf_row_scale_bcss_right_table) + (bcf_value_bcss_right_table_row_step))) /\ ((bcf_index_bcss_right_table_row_step = 0 /\ bcf_value_bcss_right_table_row_step = 1) \/ exists bcf_predecessor_bcss_right_table_row_step bcf_left_bcss_right_table_row_step bcf_right_bcss_right_table_row_step. bcf_index_bcss_right_table_row_step = S bcf_predecessor_bcss_right_table_row_step /\ ((((exists bcf_height_bcss_right_table_row_step_previous_left. bcf_height_bcss_right_table_row_step_previous_left + S (bcf_left_bcss_right_table_row_step) = S ((S (bcf_predecessor_bcss_right_table_row_step)) * bcf_previous_scale_bcss_right_table)) /\ exists bcf_quotient_bcss_right_table_row_step_previous_left. bcf_previous_code_bcss_right_table = bcf_quotient_bcss_right_table_row_step_previous_left * S ((S (bcf_predecessor_bcss_right_table_row_step)) * bcf_previous_scale_bcss_right_table) + (bcf_left_bcss_right_table_row_step))) /\ ((((exists bcf_height_bcss_right_table_row_step_previous_right. bcf_height_bcss_right_table_row_step_previous_right + S (bcf_right_bcss_right_table_row_step) = S ((S (S (bcf_predecessor_bcss_right_table_row_step))) * bcf_previous_scale_bcss_right_table)) /\ exists bcf_quotient_bcss_right_table_row_step_previous_right. bcf_previous_code_bcss_right_table = bcf_quotient_bcss_right_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcss_right_table_row_step))) * bcf_previous_scale_bcss_right_table) + (bcf_right_bcss_right_table_row_step))) /\ bcf_value_bcss_right_table_row_step = bcf_left_bcss_right_table_row_step + bcf_right_bcss_right_table_row_step))))))))))) /\ ((((exists bcf_height_bcss_right_decoded_row_code. bcf_height_bcss_right_decoded_row_code + S (bcf_row_code_bcss_right) = S ((S (n)) * bcf_row_code_scale_bcss_right)) /\ exists bcf_quotient_bcss_right_decoded_row_code. bcf_row_code_code_bcss_right = bcf_quotient_bcss_right_decoded_row_code * S ((S (n)) * bcf_row_code_scale_bcss_right) + (bcf_row_code_bcss_right))) /\ ((((exists bcf_height_bcss_right_decoded_row_scale. bcf_height_bcss_right_decoded_row_scale + S (bcf_row_scale_bcss_right) = S ((S (n)) * bcf_row_scale_scale_bcss_right)) /\ exists bcf_quotient_bcss_right_decoded_row_scale. bcf_row_scale_code_bcss_right = bcf_quotient_bcss_right_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_bcss_right) + (bcf_row_scale_bcss_right))) /\ (((exists bcf_height_bcss_right_decoded_value. bcf_height_bcss_right_decoded_value + S (y) = S ((S (S k)) * bcf_row_scale_bcss_right)) /\ exists bcf_quotient_bcss_right_decoded_value. bcf_row_code_bcss_right = bcf_quotient_bcss_right_decoded_value * S ((S (S k)) * bcf_row_scale_bcss_right) + (y))))))))) -> (((exists bcf_lt_gap_bcss_result_out_of_range. bcf_lt_gap_bcss_result_out_of_range + S (S n) = S k) /\ z = 0) \/ ((exists bcf_le_gap_bcss_result_in_range. bcf_le_gap_bcss_result_in_range + (S k) = S n) /\ (exists bcf_row_code_code_bcss_result bcf_row_code_scale_bcss_result bcf_row_scale_code_bcss_result bcf_row_scale_scale_bcss_result bcf_row_code_bcss_result bcf_row_scale_bcss_result. ((forall bcf_row_index_bcss_result_table. (exists bcf_lt_gap_bcss_result_table_row_bound. bcf_lt_gap_bcss_result_table_row_bound + S (bcf_row_index_bcss_result_table) = S (S n)) -> exists bcf_row_code_bcss_result_table bcf_row_scale_bcss_result_table. ((((exists bcf_height_bcss_result_table_decoded_row_code. bcf_height_bcss_result_table_decoded_row_code + S (bcf_row_code_bcss_result_table) = S ((S (bcf_row_index_bcss_result_table)) * bcf_row_code_scale_bcss_result)) /\ exists bcf_quotient_bcss_result_table_decoded_row_code. bcf_row_code_code_bcss_result = bcf_quotient_bcss_result_table_decoded_row_code * S ((S (bcf_row_index_bcss_result_table)) * bcf_row_code_scale_bcss_result) + (bcf_row_code_bcss_result_table))) /\ ((((exists bcf_height_bcss_result_table_decoded_row_scale. bcf_height_bcss_result_table_decoded_row_scale + S (bcf_row_scale_bcss_result_table) = S ((S (bcf_row_index_bcss_result_table)) * bcf_row_scale_scale_bcss_result)) /\ exists bcf_quotient_bcss_result_table_decoded_row_scale. bcf_row_scale_code_bcss_result = bcf_quotient_bcss_result_table_decoded_row_scale * S ((S (bcf_row_index_bcss_result_table)) * bcf_row_scale_scale_bcss_result) + (bcf_row_scale_bcss_result_table))) /\ ((bcf_row_index_bcss_result_table = 0 /\ (forall bcf_index_bcss_result_table_zero_row. (exists bcf_lt_gap_bcss_result_table_zero_row_bound. bcf_lt_gap_bcss_result_table_zero_row_bound + S (bcf_index_bcss_result_table_zero_row) = S (S n)) -> exists bcf_value_bcss_result_table_zero_row. ((((exists bcf_height_bcss_result_table_zero_row_entry. bcf_height_bcss_result_table_zero_row_entry + S (bcf_value_bcss_result_table_zero_row) = S ((S (bcf_index_bcss_result_table_zero_row)) * bcf_row_scale_bcss_result_table)) /\ exists bcf_quotient_bcss_result_table_zero_row_entry. bcf_row_code_bcss_result_table = bcf_quotient_bcss_result_table_zero_row_entry * S ((S (bcf_index_bcss_result_table_zero_row)) * bcf_row_scale_bcss_result_table) + (bcf_value_bcss_result_table_zero_row))) /\ ((bcf_index_bcss_result_table_zero_row = 0 /\ bcf_value_bcss_result_table_zero_row = 1) \/ exists bcf_predecessor_bcss_result_table_zero_row. bcf_index_bcss_result_table_zero_row = S bcf_predecessor_bcss_result_table_zero_row /\ bcf_value_bcss_result_table_zero_row = 0)))) \/ exists bcf_predecessor_bcss_result_table bcf_previous_code_bcss_result_table bcf_previous_scale_bcss_result_table. bcf_row_index_bcss_result_table = S bcf_predecessor_bcss_result_table /\ ((((exists bcf_height_bcss_result_table_decoded_previous_code. bcf_height_bcss_result_table_decoded_previous_code + S (bcf_previous_code_bcss_result_table) = S ((S (bcf_predecessor_bcss_result_table)) * bcf_row_code_scale_bcss_result)) /\ exists bcf_quotient_bcss_result_table_decoded_previous_code. bcf_row_code_code_bcss_result = bcf_quotient_bcss_result_table_decoded_previous_code * S ((S (bcf_predecessor_bcss_result_table)) * bcf_row_code_scale_bcss_result) + (bcf_previous_code_bcss_result_table))) /\ ((((exists bcf_height_bcss_result_table_decoded_previous_scale. bcf_height_bcss_result_table_decoded_previous_scale + S (bcf_previous_scale_bcss_result_table) = S ((S (bcf_predecessor_bcss_result_table)) * bcf_row_scale_scale_bcss_result)) /\ exists bcf_quotient_bcss_result_table_decoded_previous_scale. bcf_row_scale_code_bcss_result = bcf_quotient_bcss_result_table_decoded_previous_scale * S ((S (bcf_predecessor_bcss_result_table)) * bcf_row_scale_scale_bcss_result) + (bcf_previous_scale_bcss_result_table))) /\ (forall bcf_index_bcss_result_table_row_step. (exists bcf_lt_gap_bcss_result_table_row_step_bound. bcf_lt_gap_bcss_result_table_row_step_bound + S (bcf_index_bcss_result_table_row_step) = S (S n)) -> exists bcf_value_bcss_result_table_row_step. ((((exists bcf_height_bcss_result_table_row_step_entry. bcf_height_bcss_result_table_row_step_entry + S (bcf_value_bcss_result_table_row_step) = S ((S (bcf_index_bcss_result_table_row_step)) * bcf_row_scale_bcss_result_table)) /\ exists bcf_quotient_bcss_result_table_row_step_entry. bcf_row_code_bcss_result_table = bcf_quotient_bcss_result_table_row_step_entry * S ((S (bcf_index_bcss_result_table_row_step)) * bcf_row_scale_bcss_result_table) + (bcf_value_bcss_result_table_row_step))) /\ ((bcf_index_bcss_result_table_row_step = 0 /\ bcf_value_bcss_result_table_row_step = 1) \/ exists bcf_predecessor_bcss_result_table_row_step bcf_left_bcss_result_table_row_step bcf_right_bcss_result_table_row_step. bcf_index_bcss_result_table_row_step = S bcf_predecessor_bcss_result_table_row_step /\ ((((exists bcf_height_bcss_result_table_row_step_previous_left. bcf_height_bcss_result_table_row_step_previous_left + S (bcf_left_bcss_result_table_row_step) = S ((S (bcf_predecessor_bcss_result_table_row_step)) * bcf_previous_scale_bcss_result_table)) /\ exists bcf_quotient_bcss_result_table_row_step_previous_left. bcf_previous_code_bcss_result_table = bcf_quotient_bcss_result_table_row_step_previous_left * S ((S (bcf_predecessor_bcss_result_table_row_step)) * bcf_previous_scale_bcss_result_table) + (bcf_left_bcss_result_table_row_step))) /\ ((((exists bcf_height_bcss_result_table_row_step_previous_right. bcf_height_bcss_result_table_row_step_previous_right + S (bcf_right_bcss_result_table_row_step) = S ((S (S (bcf_predecessor_bcss_result_table_row_step))) * bcf_previous_scale_bcss_result_table)) /\ exists bcf_quotient_bcss_result_table_row_step_previous_right. bcf_previous_code_bcss_result_table = bcf_quotient_bcss_result_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcss_result_table_row_step))) * bcf_previous_scale_bcss_result_table) + (bcf_right_bcss_result_table_row_step))) /\ bcf_value_bcss_result_table_row_step = bcf_left_bcss_result_table_row_step + bcf_right_bcss_result_table_row_step))))))))))) /\ ((((exists bcf_height_bcss_result_decoded_row_code. bcf_height_bcss_result_decoded_row_code + S (bcf_row_code_bcss_result) = S ((S (S n)) * bcf_row_code_scale_bcss_result)) /\ exists bcf_quotient_bcss_result_decoded_row_code. bcf_row_code_code_bcss_result = bcf_quotient_bcss_result_decoded_row_code * S ((S (S n)) * bcf_row_code_scale_bcss_result) + (bcf_row_code_bcss_result))) /\ ((((exists bcf_height_bcss_result_decoded_row_scale. bcf_height_bcss_result_decoded_row_scale + S (bcf_row_scale_bcss_result) = S ((S (S n)) * bcf_row_scale_scale_bcss_result)) /\ exists bcf_quotient_bcss_result_decoded_row_scale. bcf_row_scale_code_bcss_result = bcf_quotient_bcss_result_decoded_row_scale * S ((S (S n)) * bcf_row_scale_scale_bcss_result) + (bcf_row_scale_bcss_result))) /\ (((exists bcf_height_bcss_result_decoded_value. bcf_height_bcss_result_decoded_value + S (z) = S ((S (S k)) * bcf_row_scale_bcss_result)) /\ exists bcf_quotient_bcss_result_decoded_value. bcf_row_code_bcss_result = bcf_quotient_bcss_result_decoded_value * S ((S (S k)) * bcf_row_scale_bcss_result) + (z))))))))) -> z = x + y

Structural proof guide

Relational Choose values satisfy Pascal recurrence everywhere.

Direct prerequisites: lt_trichotomy, le_refl, le_succ, succ_le_succ, choose_out_of_range_zero, choose_self, choose_succ_succ_of_lt. The authored body proceeds by case analysis (2), intermediate claims (9), equality transport (13).

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

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

  1. 0001intro n
  2. 0002intro k
  3. 0003intro x
  4. 0004intro y
  5. 0005intro z
  6. 0006intro hleft
  7. 0007intro hright
  8. 0008intro hresult
  9. 0009specialize lt_trichotomy k
  10. 0010specialize lt_trichotomy n
  11. 0011cases lt_trichotomy
  12. 0012have hx : x = 1
  13. 0013specialize choose_self n
  14. 0014specialize choose_self x
  15. 0015apply choose_self
  16. 0016rewrite lt_trichotomy_left at hleft
  17. 0017rewrite lt_trichotomy_left at hleft
  18. 0018rewrite lt_trichotomy_left at hleft
  19. 0019rewrite lt_trichotomy_left at hleft
  20. 0020exact hleft
  21. 0021have hz : z = 1
  22. 0022specialize choose_self (S n)
  23. 0023specialize choose_self z
  24. 0024apply choose_self
  25. 0025rewrite lt_trichotomy_left at hresult
  26. 0026rewrite lt_trichotomy_left at hresult
  27. 0027rewrite lt_trichotomy_left at hresult
  28. 0028rewrite lt_trichotomy_left at hresult
  29. 0029exact hresult
  30. 0030have hequality_right_bound : exists bcf_lt_gap_bcss_equality_right_bound. bcf_lt_gap_bcss_equality_right_bound + S (n) = S k
  31. 0031rewrite lt_trichotomy_left
  32. 0032specialize le_refl (S n)
  33. 0033exact le_refl
  34. 0034have hy : y = 0
  35. 0035specialize choose_out_of_range_zero n
  36. 0036specialize choose_out_of_range_zero (S k)
  37. 0037specialize choose_out_of_range_zero y
  38. 0038apply choose_out_of_range_zero
  39. 0039exact hequality_right_bound
  40. 0040exact hright
  41. 0041rewrite hx
  42. 0042rewrite hy
  43. 0043trans 1
  44. 0044exact hz
  45. 0045symm
  46. 0046apply PA3
  47. 0047cases lt_trichotomy_right
  48. 0048specialize choose_succ_succ_of_lt n
  49. 0049specialize choose_succ_succ_of_lt k
  50. 0050specialize choose_succ_succ_of_lt x
  51. 0051specialize choose_succ_succ_of_lt y
  52. 0052specialize choose_succ_succ_of_lt z
  53. 0053apply choose_succ_succ_of_lt
  54. 0054exact lt_trichotomy_right_left
  55. 0055exact hleft
  56. 0056exact hright
  57. 0057exact hresult
  58. 0058have hx : x = 0
  59. 0059specialize choose_out_of_range_zero n
  60. 0060specialize choose_out_of_range_zero k
  61. 0061specialize choose_out_of_range_zero x
  62. 0062apply choose_out_of_range_zero
  63. 0063exact lt_trichotomy_right_right
  64. 0064exact hleft
  65. 0065have habove_right_bound : exists bcf_lt_gap_bcss_above_right_bound. bcf_lt_gap_bcss_above_right_bound + S (n) = S k
  66. 0066specialize le_succ (S n)
  67. 0067specialize le_succ k
  68. 0068apply le_succ
  69. 0069exact lt_trichotomy_right_right
  70. 0070have hy : y = 0
  71. 0071specialize choose_out_of_range_zero n
  72. 0072specialize choose_out_of_range_zero (S k)
  73. 0073specialize choose_out_of_range_zero y
  74. 0074apply choose_out_of_range_zero
  75. 0075exact habove_right_bound
  76. 0076exact hright
  77. 0077have habove_result_bound : exists bcf_lt_gap_bcss_above_result_bound. bcf_lt_gap_bcss_above_result_bound + S (S n) = S k
  78. 0078specialize succ_le_succ (S n)
  79. 0079specialize succ_le_succ k
  80. 0080apply succ_le_succ
  81. 0081exact lt_trichotomy_right_right
  82. 0082have hz : z = 0
  83. 0083specialize choose_out_of_range_zero (S n)
  84. 0084specialize choose_out_of_range_zero (S k)
  85. 0085specialize choose_out_of_range_zero z
  86. 0086apply choose_out_of_range_zero
  87. 0087exact habove_result_bound
  88. 0088exact hresult
  89. 0089rewrite hx
  90. 0090rewrite hy
  91. 0091trans 0
  92. 0092exact hz
  93. 0093symm
  94. 0094apply PA3