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.
Statement with defined notation
∀ p. ∀ n. ∀ k. ∀ A. ∀ B. ∀ C. ∀ X. ∀ Y. Choose(n,k,A) → Choose(n,S k,B) → Choose(S n,S k,C) → ModEq(p,A,X) → ModEq(p,B,Y) → ModEq(p,C,X + Y)Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order 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)Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.
Read the argument
Proof checkpoints
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
02Fix variables and assumptionsL11–13
03Establish hpascalL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply choose succ succ.
04Calculate and transport equalitiesL24–24
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L24
rewrite hpascal
Original defined command ledger · 32 lines
- 0001
intro p - 0002
intro n - 0003
intro k - 0004
intro A - 0005
intro B - 0006
intro C - 0007
intro X - 0008
intro Y - 0009
intro hleft - 0010
intro hright - 0011
intro hresult - 0012
intro hleft_mod - 0013
intro hright_mod - 0014
have hpascal : C = A + B - 0015
specialize choose_succ_succ n - 0016
specialize choose_succ_succ k - 0017
specialize choose_succ_succ A - 0018
specialize choose_succ_succ B - 0019
specialize choose_succ_succ C - 0020
apply choose_succ_succ - 0021
exact hleft - 0022
exact hright - 0023
exact hresult - 0024
rewrite hpascal - 0025
specialize mod_eq_add p - 0026
specialize mod_eq_add A - 0027
specialize mod_eq_add X - 0028
specialize mod_eq_add B - 0029
specialize mod_eq_add Y - 0030
apply mod_eq_add - 0031
exact hleft_mod - 0032
exact hright_mod