LU000U

lucas_pascal_congruence_step

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Exact Pascal recurrence transports two balanced coefficient congruences to their successor-row sum.

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 first-order arithmetic statement

forall p n k A B C X Y. (((exists bcf_lt_gap_lucas_convolution_pascal_left_out_of_range. bcf_lt_gap_lucas_convolution_pascal_left_out_of_range + S (n) = k) /\ A = 0) \/ ((exists bcf_le_gap_lucas_convolution_pascal_left_in_range. bcf_le_gap_lucas_convolution_pascal_left_in_range + (k) = n) /\ (exists bcf_row_code_code_lucas_convolution_pascal_left bcf_row_code_scale_lucas_convolution_pascal_left bcf_row_scale_code_lucas_convolution_pascal_left bcf_row_scale_scale_lucas_convolution_pascal_left bcf_row_code_lucas_convolution_pascal_left bcf_row_scale_lucas_convolution_pascal_left. ((forall bcf_row_index_lucas_convolution_pascal_left_table. (exists bcf_lt_gap_lucas_convolution_pascal_left_table_row_bound. bcf_lt_gap_lucas_convolution_pascal_left_table_row_bound + S (bcf_row_index_lucas_convolution_pascal_left_table) = S (n)) -> exists bcf_row_code_lucas_convolution_pascal_left_table bcf_row_scale_lucas_convolution_pascal_left_table. ((((exists bcf_height_lucas_convolution_pascal_left_table_decoded_row_code. bcf_height_lucas_convolution_pascal_left_table_decoded_row_code + S (bcf_row_code_lucas_convolution_pascal_left_table) = S ((S (bcf_row_index_lucas_convolution_pascal_left_table)) * bcf_row_code_scale_lucas_convolution_pascal_left)) /\ exists bcf_quotient_lucas_convolution_pascal_left_table_decoded_row_code. bcf_row_code_code_lucas_convolution_pascal_left = bcf_quotient_lucas_convolution_pascal_left_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_pascal_left_table)) * bcf_row_code_scale_lucas_convolution_pascal_left) + (bcf_row_code_lucas_convolution_pascal_left_table))) /\ ((((exists bcf_height_lucas_convolution_pascal_left_table_decoded_row_scale. bcf_height_lucas_convolution_pascal_left_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_pascal_left_table) = S ((S (bcf_row_index_lucas_convolution_pascal_left_table)) * bcf_row_scale_scale_lucas_convolution_pascal_left)) /\ exists bcf_quotient_lucas_convolution_pascal_left_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_pascal_left = bcf_quotient_lucas_convolution_pascal_left_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_pascal_left_table)) * bcf_row_scale_scale_lucas_convolution_pascal_left) + (bcf_row_scale_lucas_convolution_pascal_left_table))) /\ ((bcf_row_index_lucas_convolution_pascal_left_table = 0 /\ (forall bcf_index_lucas_convolution_pascal_left_table_zero_row. (exists bcf_lt_gap_lucas_convolution_pascal_left_table_zero_row_bound. bcf_lt_gap_lucas_convolution_pascal_left_table_zero_row_bound + S (bcf_index_lucas_convolution_pascal_left_table_zero_row) = S (n)) -> exists bcf_value_lucas_convolution_pascal_left_table_zero_row. ((((exists bcf_height_lucas_convolution_pascal_left_table_zero_row_entry. bcf_height_lucas_convolution_pascal_left_table_zero_row_entry + S (bcf_value_lucas_convolution_pascal_left_table_zero_row) = S ((S (bcf_index_lucas_convolution_pascal_left_table_zero_row)) * bcf_row_scale_lucas_convolution_pascal_left_table)) /\ exists bcf_quotient_lucas_convolution_pascal_left_table_zero_row_entry. bcf_row_code_lucas_convolution_pascal_left_table = bcf_quotient_lucas_convolution_pascal_left_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_pascal_left_table_zero_row)) * bcf_row_scale_lucas_convolution_pascal_left_table) + (bcf_value_lucas_convolution_pascal_left_table_zero_row))) /\ ((bcf_index_lucas_convolution_pascal_left_table_zero_row = 0 /\ bcf_value_lucas_convolution_pascal_left_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_pascal_left_table_zero_row. bcf_index_lucas_convolution_pascal_left_table_zero_row = S bcf_predecessor_lucas_convolution_pascal_left_table_zero_row /\ bcf_value_lucas_convolution_pascal_left_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_pascal_left_table bcf_previous_code_lucas_convolution_pascal_left_table bcf_previous_scale_lucas_convolution_pascal_left_table. bcf_row_index_lucas_convolution_pascal_left_table = S bcf_predecessor_lucas_convolution_pascal_left_table /\ ((((exists bcf_height_lucas_convolution_pascal_left_table_decoded_previous_code. bcf_height_lucas_convolution_pascal_left_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_pascal_left_table) = S ((S (bcf_predecessor_lucas_convolution_pascal_left_table)) * bcf_row_code_scale_lucas_convolution_pascal_left)) /\ exists bcf_quotient_lucas_convolution_pascal_left_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_pascal_left = bcf_quotient_lucas_convolution_pascal_left_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_pascal_left_table)) * bcf_row_code_scale_lucas_convolution_pascal_left) + (bcf_previous_code_lucas_convolution_pascal_left_table))) /\ ((((exists bcf_height_lucas_convolution_pascal_left_table_decoded_previous_scale. bcf_height_lucas_convolution_pascal_left_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_pascal_left_table) = S ((S (bcf_predecessor_lucas_convolution_pascal_left_table)) * bcf_row_scale_scale_lucas_convolution_pascal_left)) /\ exists bcf_quotient_lucas_convolution_pascal_left_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_pascal_left = bcf_quotient_lucas_convolution_pascal_left_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_pascal_left_table)) * bcf_row_scale_scale_lucas_convolution_pascal_left) + (bcf_previous_scale_lucas_convolution_pascal_left_table))) /\ (forall bcf_index_lucas_convolution_pascal_left_table_row_step. (exists bcf_lt_gap_lucas_convolution_pascal_left_table_row_step_bound. bcf_lt_gap_lucas_convolution_pascal_left_table_row_step_bound + S (bcf_index_lucas_convolution_pascal_left_table_row_step) = S (n)) -> exists bcf_value_lucas_convolution_pascal_left_table_row_step. ((((exists bcf_height_lucas_convolution_pascal_left_table_row_step_entry. bcf_height_lucas_convolution_pascal_left_table_row_step_entry + S (bcf_value_lucas_convolution_pascal_left_table_row_step) = S ((S (bcf_index_lucas_convolution_pascal_left_table_row_step)) * bcf_row_scale_lucas_convolution_pascal_left_table)) /\ exists bcf_quotient_lucas_convolution_pascal_left_table_row_step_entry. bcf_row_code_lucas_convolution_pascal_left_table = bcf_quotient_lucas_convolution_pascal_left_table_row_step_entry * S ((S (bcf_index_lucas_convolution_pascal_left_table_row_step)) * bcf_row_scale_lucas_convolution_pascal_left_table) + (bcf_value_lucas_convolution_pascal_left_table_row_step))) /\ ((bcf_index_lucas_convolution_pascal_left_table_row_step = 0 /\ bcf_value_lucas_convolution_pascal_left_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_pascal_left_table_row_step bcf_left_lucas_convolution_pascal_left_table_row_step bcf_right_lucas_convolution_pascal_left_table_row_step. bcf_index_lucas_convolution_pascal_left_table_row_step = S bcf_predecessor_lucas_convolution_pascal_left_table_row_step /\ ((((exists bcf_height_lucas_convolution_pascal_left_table_row_step_previous_left. bcf_height_lucas_convolution_pascal_left_table_row_step_previous_left + S (bcf_left_lucas_convolution_pascal_left_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_pascal_left_table_row_step)) * bcf_previous_scale_lucas_convolution_pascal_left_table)) /\ exists bcf_quotient_lucas_convolution_pascal_left_table_row_step_previous_left. bcf_previous_code_lucas_convolution_pascal_left_table = bcf_quotient_lucas_convolution_pascal_left_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_pascal_left_table_row_step)) * bcf_previous_scale_lucas_convolution_pascal_left_table) + (bcf_left_lucas_convolution_pascal_left_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_pascal_left_table_row_step_previous_right. bcf_height_lucas_convolution_pascal_left_table_row_step_previous_right + S (bcf_right_lucas_convolution_pascal_left_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_pascal_left_table_row_step))) * bcf_previous_scale_lucas_convolution_pascal_left_table)) /\ exists bcf_quotient_lucas_convolution_pascal_left_table_row_step_previous_right. bcf_previous_code_lucas_convolution_pascal_left_table = bcf_quotient_lucas_convolution_pascal_left_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_pascal_left_table_row_step))) * bcf_previous_scale_lucas_convolution_pascal_left_table) + (bcf_right_lucas_convolution_pascal_left_table_row_step))) /\ bcf_value_lucas_convolution_pascal_left_table_row_step = bcf_left_lucas_convolution_pascal_left_table_row_step + bcf_right_lucas_convolution_pascal_left_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_pascal_left_decoded_row_code. bcf_height_lucas_convolution_pascal_left_decoded_row_code + S (bcf_row_code_lucas_convolution_pascal_left) = S ((S (n)) * bcf_row_code_scale_lucas_convolution_pascal_left)) /\ exists bcf_quotient_lucas_convolution_pascal_left_decoded_row_code. bcf_row_code_code_lucas_convolution_pascal_left = bcf_quotient_lucas_convolution_pascal_left_decoded_row_code * S ((S (n)) * bcf_row_code_scale_lucas_convolution_pascal_left) + (bcf_row_code_lucas_convolution_pascal_left))) /\ ((((exists bcf_height_lucas_convolution_pascal_left_decoded_row_scale. bcf_height_lucas_convolution_pascal_left_decoded_row_scale + S (bcf_row_scale_lucas_convolution_pascal_left) = S ((S (n)) * bcf_row_scale_scale_lucas_convolution_pascal_left)) /\ exists bcf_quotient_lucas_convolution_pascal_left_decoded_row_scale. bcf_row_scale_code_lucas_convolution_pascal_left = bcf_quotient_lucas_convolution_pascal_left_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_lucas_convolution_pascal_left) + (bcf_row_scale_lucas_convolution_pascal_left))) /\ (((exists bcf_height_lucas_convolution_pascal_left_decoded_value. bcf_height_lucas_convolution_pascal_left_decoded_value + S (A) = S ((S (k)) * bcf_row_scale_lucas_convolution_pascal_left)) /\ exists bcf_quotient_lucas_convolution_pascal_left_decoded_value. bcf_row_code_lucas_convolution_pascal_left = bcf_quotient_lucas_convolution_pascal_left_decoded_value * S ((S (k)) * bcf_row_scale_lucas_convolution_pascal_left) + (A))))))))) -> (((exists bcf_lt_gap_lucas_convolution_pascal_right_out_of_range. bcf_lt_gap_lucas_convolution_pascal_right_out_of_range + S (n) = S k) /\ B = 0) \/ ((exists bcf_le_gap_lucas_convolution_pascal_right_in_range. bcf_le_gap_lucas_convolution_pascal_right_in_range + (S k) = n) /\ (exists bcf_row_code_code_lucas_convolution_pascal_right bcf_row_code_scale_lucas_convolution_pascal_right bcf_row_scale_code_lucas_convolution_pascal_right bcf_row_scale_scale_lucas_convolution_pascal_right bcf_row_code_lucas_convolution_pascal_right bcf_row_scale_lucas_convolution_pascal_right. ((forall bcf_row_index_lucas_convolution_pascal_right_table. (exists bcf_lt_gap_lucas_convolution_pascal_right_table_row_bound. bcf_lt_gap_lucas_convolution_pascal_right_table_row_bound + S (bcf_row_index_lucas_convolution_pascal_right_table) = S (n)) -> exists bcf_row_code_lucas_convolution_pascal_right_table bcf_row_scale_lucas_convolution_pascal_right_table. ((((exists bcf_height_lucas_convolution_pascal_right_table_decoded_row_code. bcf_height_lucas_convolution_pascal_right_table_decoded_row_code + S (bcf_row_code_lucas_convolution_pascal_right_table) = S ((S (bcf_row_index_lucas_convolution_pascal_right_table)) * bcf_row_code_scale_lucas_convolution_pascal_right)) /\ exists bcf_quotient_lucas_convolution_pascal_right_table_decoded_row_code. bcf_row_code_code_lucas_convolution_pascal_right = bcf_quotient_lucas_convolution_pascal_right_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_pascal_right_table)) * bcf_row_code_scale_lucas_convolution_pascal_right) + (bcf_row_code_lucas_convolution_pascal_right_table))) /\ ((((exists bcf_height_lucas_convolution_pascal_right_table_decoded_row_scale. bcf_height_lucas_convolution_pascal_right_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_pascal_right_table) = S ((S (bcf_row_index_lucas_convolution_pascal_right_table)) * bcf_row_scale_scale_lucas_convolution_pascal_right)) /\ exists bcf_quotient_lucas_convolution_pascal_right_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_pascal_right = bcf_quotient_lucas_convolution_pascal_right_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_pascal_right_table)) * bcf_row_scale_scale_lucas_convolution_pascal_right) + (bcf_row_scale_lucas_convolution_pascal_right_table))) /\ ((bcf_row_index_lucas_convolution_pascal_right_table = 0 /\ (forall bcf_index_lucas_convolution_pascal_right_table_zero_row. (exists bcf_lt_gap_lucas_convolution_pascal_right_table_zero_row_bound. bcf_lt_gap_lucas_convolution_pascal_right_table_zero_row_bound + S (bcf_index_lucas_convolution_pascal_right_table_zero_row) = S (n)) -> exists bcf_value_lucas_convolution_pascal_right_table_zero_row. ((((exists bcf_height_lucas_convolution_pascal_right_table_zero_row_entry. bcf_height_lucas_convolution_pascal_right_table_zero_row_entry + S (bcf_value_lucas_convolution_pascal_right_table_zero_row) = S ((S (bcf_index_lucas_convolution_pascal_right_table_zero_row)) * bcf_row_scale_lucas_convolution_pascal_right_table)) /\ exists bcf_quotient_lucas_convolution_pascal_right_table_zero_row_entry. bcf_row_code_lucas_convolution_pascal_right_table = bcf_quotient_lucas_convolution_pascal_right_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_pascal_right_table_zero_row)) * bcf_row_scale_lucas_convolution_pascal_right_table) + (bcf_value_lucas_convolution_pascal_right_table_zero_row))) /\ ((bcf_index_lucas_convolution_pascal_right_table_zero_row = 0 /\ bcf_value_lucas_convolution_pascal_right_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_pascal_right_table_zero_row. bcf_index_lucas_convolution_pascal_right_table_zero_row = S bcf_predecessor_lucas_convolution_pascal_right_table_zero_row /\ bcf_value_lucas_convolution_pascal_right_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_pascal_right_table bcf_previous_code_lucas_convolution_pascal_right_table bcf_previous_scale_lucas_convolution_pascal_right_table. bcf_row_index_lucas_convolution_pascal_right_table = S bcf_predecessor_lucas_convolution_pascal_right_table /\ ((((exists bcf_height_lucas_convolution_pascal_right_table_decoded_previous_code. bcf_height_lucas_convolution_pascal_right_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_pascal_right_table) = S ((S (bcf_predecessor_lucas_convolution_pascal_right_table)) * bcf_row_code_scale_lucas_convolution_pascal_right)) /\ exists bcf_quotient_lucas_convolution_pascal_right_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_pascal_right = bcf_quotient_lucas_convolution_pascal_right_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_pascal_right_table)) * bcf_row_code_scale_lucas_convolution_pascal_right) + (bcf_previous_code_lucas_convolution_pascal_right_table))) /\ ((((exists bcf_height_lucas_convolution_pascal_right_table_decoded_previous_scale. bcf_height_lucas_convolution_pascal_right_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_pascal_right_table) = S ((S (bcf_predecessor_lucas_convolution_pascal_right_table)) * bcf_row_scale_scale_lucas_convolution_pascal_right)) /\ exists bcf_quotient_lucas_convolution_pascal_right_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_pascal_right = bcf_quotient_lucas_convolution_pascal_right_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_pascal_right_table)) * bcf_row_scale_scale_lucas_convolution_pascal_right) + (bcf_previous_scale_lucas_convolution_pascal_right_table))) /\ (forall bcf_index_lucas_convolution_pascal_right_table_row_step. (exists bcf_lt_gap_lucas_convolution_pascal_right_table_row_step_bound. bcf_lt_gap_lucas_convolution_pascal_right_table_row_step_bound + S (bcf_index_lucas_convolution_pascal_right_table_row_step) = S (n)) -> exists bcf_value_lucas_convolution_pascal_right_table_row_step. ((((exists bcf_height_lucas_convolution_pascal_right_table_row_step_entry. bcf_height_lucas_convolution_pascal_right_table_row_step_entry + S (bcf_value_lucas_convolution_pascal_right_table_row_step) = S ((S (bcf_index_lucas_convolution_pascal_right_table_row_step)) * bcf_row_scale_lucas_convolution_pascal_right_table)) /\ exists bcf_quotient_lucas_convolution_pascal_right_table_row_step_entry. bcf_row_code_lucas_convolution_pascal_right_table = bcf_quotient_lucas_convolution_pascal_right_table_row_step_entry * S ((S (bcf_index_lucas_convolution_pascal_right_table_row_step)) * bcf_row_scale_lucas_convolution_pascal_right_table) + (bcf_value_lucas_convolution_pascal_right_table_row_step))) /\ ((bcf_index_lucas_convolution_pascal_right_table_row_step = 0 /\ bcf_value_lucas_convolution_pascal_right_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_pascal_right_table_row_step bcf_left_lucas_convolution_pascal_right_table_row_step bcf_right_lucas_convolution_pascal_right_table_row_step. bcf_index_lucas_convolution_pascal_right_table_row_step = S bcf_predecessor_lucas_convolution_pascal_right_table_row_step /\ ((((exists bcf_height_lucas_convolution_pascal_right_table_row_step_previous_left. bcf_height_lucas_convolution_pascal_right_table_row_step_previous_left + S (bcf_left_lucas_convolution_pascal_right_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_pascal_right_table_row_step)) * bcf_previous_scale_lucas_convolution_pascal_right_table)) /\ exists bcf_quotient_lucas_convolution_pascal_right_table_row_step_previous_left. bcf_previous_code_lucas_convolution_pascal_right_table = bcf_quotient_lucas_convolution_pascal_right_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_pascal_right_table_row_step)) * bcf_previous_scale_lucas_convolution_pascal_right_table) + (bcf_left_lucas_convolution_pascal_right_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_pascal_right_table_row_step_previous_right. bcf_height_lucas_convolution_pascal_right_table_row_step_previous_right + S (bcf_right_lucas_convolution_pascal_right_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_pascal_right_table_row_step))) * bcf_previous_scale_lucas_convolution_pascal_right_table)) /\ exists bcf_quotient_lucas_convolution_pascal_right_table_row_step_previous_right. bcf_previous_code_lucas_convolution_pascal_right_table = bcf_quotient_lucas_convolution_pascal_right_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_pascal_right_table_row_step))) * bcf_previous_scale_lucas_convolution_pascal_right_table) + (bcf_right_lucas_convolution_pascal_right_table_row_step))) /\ bcf_value_lucas_convolution_pascal_right_table_row_step = bcf_left_lucas_convolution_pascal_right_table_row_step + bcf_right_lucas_convolution_pascal_right_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_pascal_right_decoded_row_code. bcf_height_lucas_convolution_pascal_right_decoded_row_code + S (bcf_row_code_lucas_convolution_pascal_right) = S ((S (n)) * bcf_row_code_scale_lucas_convolution_pascal_right)) /\ exists bcf_quotient_lucas_convolution_pascal_right_decoded_row_code. bcf_row_code_code_lucas_convolution_pascal_right = bcf_quotient_lucas_convolution_pascal_right_decoded_row_code * S ((S (n)) * bcf_row_code_scale_lucas_convolution_pascal_right) + (bcf_row_code_lucas_convolution_pascal_right))) /\ ((((exists bcf_height_lucas_convolution_pascal_right_decoded_row_scale. bcf_height_lucas_convolution_pascal_right_decoded_row_scale + S (bcf_row_scale_lucas_convolution_pascal_right) = S ((S (n)) * bcf_row_scale_scale_lucas_convolution_pascal_right)) /\ exists bcf_quotient_lucas_convolution_pascal_right_decoded_row_scale. bcf_row_scale_code_lucas_convolution_pascal_right = bcf_quotient_lucas_convolution_pascal_right_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_lucas_convolution_pascal_right) + (bcf_row_scale_lucas_convolution_pascal_right))) /\ (((exists bcf_height_lucas_convolution_pascal_right_decoded_value. bcf_height_lucas_convolution_pascal_right_decoded_value + S (B) = S ((S (S k)) * bcf_row_scale_lucas_convolution_pascal_right)) /\ exists bcf_quotient_lucas_convolution_pascal_right_decoded_value. bcf_row_code_lucas_convolution_pascal_right = bcf_quotient_lucas_convolution_pascal_right_decoded_value * S ((S (S k)) * bcf_row_scale_lucas_convolution_pascal_right) + (B))))))))) -> (((exists bcf_lt_gap_lucas_convolution_pascal_target_out_of_range. bcf_lt_gap_lucas_convolution_pascal_target_out_of_range + S (S n) = S k) /\ C = 0) \/ ((exists bcf_le_gap_lucas_convolution_pascal_target_in_range. bcf_le_gap_lucas_convolution_pascal_target_in_range + (S k) = S n) /\ (exists bcf_row_code_code_lucas_convolution_pascal_target bcf_row_code_scale_lucas_convolution_pascal_target bcf_row_scale_code_lucas_convolution_pascal_target bcf_row_scale_scale_lucas_convolution_pascal_target bcf_row_code_lucas_convolution_pascal_target bcf_row_scale_lucas_convolution_pascal_target. ((forall bcf_row_index_lucas_convolution_pascal_target_table. (exists bcf_lt_gap_lucas_convolution_pascal_target_table_row_bound. bcf_lt_gap_lucas_convolution_pascal_target_table_row_bound + S (bcf_row_index_lucas_convolution_pascal_target_table) = S (S n)) -> exists bcf_row_code_lucas_convolution_pascal_target_table bcf_row_scale_lucas_convolution_pascal_target_table. ((((exists bcf_height_lucas_convolution_pascal_target_table_decoded_row_code. bcf_height_lucas_convolution_pascal_target_table_decoded_row_code + S (bcf_row_code_lucas_convolution_pascal_target_table) = S ((S (bcf_row_index_lucas_convolution_pascal_target_table)) * bcf_row_code_scale_lucas_convolution_pascal_target)) /\ exists bcf_quotient_lucas_convolution_pascal_target_table_decoded_row_code. bcf_row_code_code_lucas_convolution_pascal_target = bcf_quotient_lucas_convolution_pascal_target_table_decoded_row_code * S ((S (bcf_row_index_lucas_convolution_pascal_target_table)) * bcf_row_code_scale_lucas_convolution_pascal_target) + (bcf_row_code_lucas_convolution_pascal_target_table))) /\ ((((exists bcf_height_lucas_convolution_pascal_target_table_decoded_row_scale. bcf_height_lucas_convolution_pascal_target_table_decoded_row_scale + S (bcf_row_scale_lucas_convolution_pascal_target_table) = S ((S (bcf_row_index_lucas_convolution_pascal_target_table)) * bcf_row_scale_scale_lucas_convolution_pascal_target)) /\ exists bcf_quotient_lucas_convolution_pascal_target_table_decoded_row_scale. bcf_row_scale_code_lucas_convolution_pascal_target = bcf_quotient_lucas_convolution_pascal_target_table_decoded_row_scale * S ((S (bcf_row_index_lucas_convolution_pascal_target_table)) * bcf_row_scale_scale_lucas_convolution_pascal_target) + (bcf_row_scale_lucas_convolution_pascal_target_table))) /\ ((bcf_row_index_lucas_convolution_pascal_target_table = 0 /\ (forall bcf_index_lucas_convolution_pascal_target_table_zero_row. (exists bcf_lt_gap_lucas_convolution_pascal_target_table_zero_row_bound. bcf_lt_gap_lucas_convolution_pascal_target_table_zero_row_bound + S (bcf_index_lucas_convolution_pascal_target_table_zero_row) = S (S n)) -> exists bcf_value_lucas_convolution_pascal_target_table_zero_row. ((((exists bcf_height_lucas_convolution_pascal_target_table_zero_row_entry. bcf_height_lucas_convolution_pascal_target_table_zero_row_entry + S (bcf_value_lucas_convolution_pascal_target_table_zero_row) = S ((S (bcf_index_lucas_convolution_pascal_target_table_zero_row)) * bcf_row_scale_lucas_convolution_pascal_target_table)) /\ exists bcf_quotient_lucas_convolution_pascal_target_table_zero_row_entry. bcf_row_code_lucas_convolution_pascal_target_table = bcf_quotient_lucas_convolution_pascal_target_table_zero_row_entry * S ((S (bcf_index_lucas_convolution_pascal_target_table_zero_row)) * bcf_row_scale_lucas_convolution_pascal_target_table) + (bcf_value_lucas_convolution_pascal_target_table_zero_row))) /\ ((bcf_index_lucas_convolution_pascal_target_table_zero_row = 0 /\ bcf_value_lucas_convolution_pascal_target_table_zero_row = 1) \/ exists bcf_predecessor_lucas_convolution_pascal_target_table_zero_row. bcf_index_lucas_convolution_pascal_target_table_zero_row = S bcf_predecessor_lucas_convolution_pascal_target_table_zero_row /\ bcf_value_lucas_convolution_pascal_target_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_convolution_pascal_target_table bcf_previous_code_lucas_convolution_pascal_target_table bcf_previous_scale_lucas_convolution_pascal_target_table. bcf_row_index_lucas_convolution_pascal_target_table = S bcf_predecessor_lucas_convolution_pascal_target_table /\ ((((exists bcf_height_lucas_convolution_pascal_target_table_decoded_previous_code. bcf_height_lucas_convolution_pascal_target_table_decoded_previous_code + S (bcf_previous_code_lucas_convolution_pascal_target_table) = S ((S (bcf_predecessor_lucas_convolution_pascal_target_table)) * bcf_row_code_scale_lucas_convolution_pascal_target)) /\ exists bcf_quotient_lucas_convolution_pascal_target_table_decoded_previous_code. bcf_row_code_code_lucas_convolution_pascal_target = bcf_quotient_lucas_convolution_pascal_target_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_convolution_pascal_target_table)) * bcf_row_code_scale_lucas_convolution_pascal_target) + (bcf_previous_code_lucas_convolution_pascal_target_table))) /\ ((((exists bcf_height_lucas_convolution_pascal_target_table_decoded_previous_scale. bcf_height_lucas_convolution_pascal_target_table_decoded_previous_scale + S (bcf_previous_scale_lucas_convolution_pascal_target_table) = S ((S (bcf_predecessor_lucas_convolution_pascal_target_table)) * bcf_row_scale_scale_lucas_convolution_pascal_target)) /\ exists bcf_quotient_lucas_convolution_pascal_target_table_decoded_previous_scale. bcf_row_scale_code_lucas_convolution_pascal_target = bcf_quotient_lucas_convolution_pascal_target_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_convolution_pascal_target_table)) * bcf_row_scale_scale_lucas_convolution_pascal_target) + (bcf_previous_scale_lucas_convolution_pascal_target_table))) /\ (forall bcf_index_lucas_convolution_pascal_target_table_row_step. (exists bcf_lt_gap_lucas_convolution_pascal_target_table_row_step_bound. bcf_lt_gap_lucas_convolution_pascal_target_table_row_step_bound + S (bcf_index_lucas_convolution_pascal_target_table_row_step) = S (S n)) -> exists bcf_value_lucas_convolution_pascal_target_table_row_step. ((((exists bcf_height_lucas_convolution_pascal_target_table_row_step_entry. bcf_height_lucas_convolution_pascal_target_table_row_step_entry + S (bcf_value_lucas_convolution_pascal_target_table_row_step) = S ((S (bcf_index_lucas_convolution_pascal_target_table_row_step)) * bcf_row_scale_lucas_convolution_pascal_target_table)) /\ exists bcf_quotient_lucas_convolution_pascal_target_table_row_step_entry. bcf_row_code_lucas_convolution_pascal_target_table = bcf_quotient_lucas_convolution_pascal_target_table_row_step_entry * S ((S (bcf_index_lucas_convolution_pascal_target_table_row_step)) * bcf_row_scale_lucas_convolution_pascal_target_table) + (bcf_value_lucas_convolution_pascal_target_table_row_step))) /\ ((bcf_index_lucas_convolution_pascal_target_table_row_step = 0 /\ bcf_value_lucas_convolution_pascal_target_table_row_step = 1) \/ exists bcf_predecessor_lucas_convolution_pascal_target_table_row_step bcf_left_lucas_convolution_pascal_target_table_row_step bcf_right_lucas_convolution_pascal_target_table_row_step. bcf_index_lucas_convolution_pascal_target_table_row_step = S bcf_predecessor_lucas_convolution_pascal_target_table_row_step /\ ((((exists bcf_height_lucas_convolution_pascal_target_table_row_step_previous_left. bcf_height_lucas_convolution_pascal_target_table_row_step_previous_left + S (bcf_left_lucas_convolution_pascal_target_table_row_step) = S ((S (bcf_predecessor_lucas_convolution_pascal_target_table_row_step)) * bcf_previous_scale_lucas_convolution_pascal_target_table)) /\ exists bcf_quotient_lucas_convolution_pascal_target_table_row_step_previous_left. bcf_previous_code_lucas_convolution_pascal_target_table = bcf_quotient_lucas_convolution_pascal_target_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_convolution_pascal_target_table_row_step)) * bcf_previous_scale_lucas_convolution_pascal_target_table) + (bcf_left_lucas_convolution_pascal_target_table_row_step))) /\ ((((exists bcf_height_lucas_convolution_pascal_target_table_row_step_previous_right. bcf_height_lucas_convolution_pascal_target_table_row_step_previous_right + S (bcf_right_lucas_convolution_pascal_target_table_row_step) = S ((S (S (bcf_predecessor_lucas_convolution_pascal_target_table_row_step))) * bcf_previous_scale_lucas_convolution_pascal_target_table)) /\ exists bcf_quotient_lucas_convolution_pascal_target_table_row_step_previous_right. bcf_previous_code_lucas_convolution_pascal_target_table = bcf_quotient_lucas_convolution_pascal_target_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_convolution_pascal_target_table_row_step))) * bcf_previous_scale_lucas_convolution_pascal_target_table) + (bcf_right_lucas_convolution_pascal_target_table_row_step))) /\ bcf_value_lucas_convolution_pascal_target_table_row_step = bcf_left_lucas_convolution_pascal_target_table_row_step + bcf_right_lucas_convolution_pascal_target_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_convolution_pascal_target_decoded_row_code. bcf_height_lucas_convolution_pascal_target_decoded_row_code + S (bcf_row_code_lucas_convolution_pascal_target) = S ((S (S n)) * bcf_row_code_scale_lucas_convolution_pascal_target)) /\ exists bcf_quotient_lucas_convolution_pascal_target_decoded_row_code. bcf_row_code_code_lucas_convolution_pascal_target = bcf_quotient_lucas_convolution_pascal_target_decoded_row_code * S ((S (S n)) * bcf_row_code_scale_lucas_convolution_pascal_target) + (bcf_row_code_lucas_convolution_pascal_target))) /\ ((((exists bcf_height_lucas_convolution_pascal_target_decoded_row_scale. bcf_height_lucas_convolution_pascal_target_decoded_row_scale + S (bcf_row_scale_lucas_convolution_pascal_target) = S ((S (S n)) * bcf_row_scale_scale_lucas_convolution_pascal_target)) /\ exists bcf_quotient_lucas_convolution_pascal_target_decoded_row_scale. bcf_row_scale_code_lucas_convolution_pascal_target = bcf_quotient_lucas_convolution_pascal_target_decoded_row_scale * S ((S (S n)) * bcf_row_scale_scale_lucas_convolution_pascal_target) + (bcf_row_scale_lucas_convolution_pascal_target))) /\ (((exists bcf_height_lucas_convolution_pascal_target_decoded_value. bcf_height_lucas_convolution_pascal_target_decoded_value + S (C) = S ((S (S k)) * bcf_row_scale_lucas_convolution_pascal_target)) /\ exists bcf_quotient_lucas_convolution_pascal_target_decoded_value. bcf_row_code_lucas_convolution_pascal_target = bcf_quotient_lucas_convolution_pascal_target_decoded_value * S ((S (S k)) * bcf_row_scale_lucas_convolution_pascal_target) + (C))))))))) -> (exists lcv_left_pascal_mod_left lcv_right_pascal_mod_left. (A) + (p) * lcv_left_pascal_mod_left = (X) + (p) * lcv_right_pascal_mod_left) -> (exists lcv_left_pascal_mod_right lcv_right_pascal_mod_right. (B) + (p) * lcv_left_pascal_mod_right = (Y) + (p) * lcv_right_pascal_mod_right) -> (exists lcv_left_pascal_mod_result lcv_right_pascal_mod_result. (C) + (p) * lcv_left_pascal_mod_result = (X + Y) + (p) * lcv_right_pascal_mod_result)

Constructive proof overview

Generated structural guide

Exact Pascal recurrence transports two balanced coefficient congruences to their successor-row sum.

The unchanged tactic script uses 2 declared prerequisites and contains 32 exact native proof lines.

dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged

Historical empty-context replay experiment only; that experiment persisted no certificate and granted no release authority. Current checked use follows separately sealed, independently verified proof bundles; there is no Stable promotion.

Proof neighborhood

Direct dependencies

choose_succ_succ Alpha theorem; checked-use authorized mod_eq_add Stable theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

32 script commands · 5 reading checkpoints · 1 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.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro n
  3. L3
    intro k
  4. L4
    intro A
  5. L5
    intro B
  6. L6
    intro C
  7. L7
    intro X
  8. L8
    intro Y
  9. L9
    intro hleft
  10. L10
    intro hright
02Fix variables and assumptionsL11–13

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

  1. L11
    intro hresult
  2. L12
    intro hleft_mod
  3. L13
    intro hright_mod
03Establish hpascalL14–23

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

  1. L14
    have hpascal : C = A + B
  2. L15
    specialize choose_succ_succ n
  3. L16
    specialize choose_succ_succ k
  4. L17
    specialize choose_succ_succ A
  5. L18
    specialize choose_succ_succ B
  6. L19
    specialize choose_succ_succ C
  7. L20
    apply choose_succ_succ
  8. L21
    exact hleft
  9. L22
    exact hright
  10. L23
    exact hresult
04Calculate and transport equalitiesL24–24

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L24
    rewrite hpascal
05Use earlier factsL25–32

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

  1. L25
    specialize mod_eq_add p
  2. L26
    specialize mod_eq_add A
  3. L27
    specialize mod_eq_add X
  4. L28
    specialize mod_eq_add B
  5. L29
    specialize mod_eq_add Y
  6. L30
    apply mod_eq_add
  7. L31
    exact hleft_mod
  8. L32
    exact hright_mod

Library-wide reading audit

Original exact command ledger · 32 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro k
  4. 0004intro A
  5. 0005intro B
  6. 0006intro C
  7. 0007intro X
  8. 0008intro Y
  9. 0009intro hleft
  10. 0010intro hright
  11. 0011intro hresult
  12. 0012intro hleft_mod
  13. 0013intro hright_mod
  14. 0014have hpascal : C = A + B
  15. 0015specialize choose_succ_succ n
  16. 0016specialize choose_succ_succ k
  17. 0017specialize choose_succ_succ A
  18. 0018specialize choose_succ_succ B
  19. 0019specialize choose_succ_succ C
  20. 0020apply choose_succ_succ
  21. 0021exact hleft
  22. 0022exact hright
  23. 0023exact hresult
  24. 0024rewrite hpascal
  25. 0025specialize mod_eq_add p
  26. 0026specialize mod_eq_add A
  27. 0027specialize mod_eq_add X
  28. 0028specialize mod_eq_add B
  29. 0029specialize mod_eq_add Y
  30. 0030apply mod_eq_add
  31. 0031exact hleft_mod
  32. 0032exact hright_mod