KU000E · theorem body

kummer_carry_free_iff_not_divides

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

A constructed general-Kummer carry prefix has count zero exactly when p does not divide the binomial coefficient.

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. ∀ a. ∀ b. ∀ C. ∀ v. Prime(p)Choose(a + b,a,C)PowerValuation(p,C,v) → ∃ x. ∃ y. ∃ z. ∃ n. ∃ m. ∃ k. ∃ i. ∃ j. PowerQuotPrefix(p,a,x,y,a + b) ∧ (PowerQuotPrefix(p,b,z,n,a + b) ∧ (PowerQuotPrefix(p,a + b,m,k,a + b) ∧ ((∀ u. Lt(u,a + b) → ∃ w. ∃ x0. ∃ x1. ∃ x2. BetaAt(x,y,u,w) ∧ (BetaAt(z,n,u,x0) ∧ (BetaAt(m,k,u,x1) ∧ (BetaAt(i,j,u,x2) ∧ (x2 = 0 ∧ x1 = w + x0 ∨ x2 = 1 ∧ x1 = S (w + x0)))))) ∧ (BitCount(i,j,a + b,v) ∧ ((BitCount(i,j,a + b,0) → ¬Dvd(p,C)) ∧ (¬Dvd(p,C)BitCount(i,j,a + b,0)))))))

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 a b C v. ((~(p = 1) /\ forall frm_prime_left_kmccfnd_prime frm_prime_right_kmccfnd_prime. p = frm_prime_left_kmccfnd_prime * frm_prime_right_kmccfnd_prime -> frm_prime_left_kmccfnd_prime = 1 \/ frm_prime_right_kmccfnd_prime = 1)) -> (((exists bcf_lt_gap_kmccfnd_choose_out_of_range. bcf_lt_gap_kmccfnd_choose_out_of_range + S (a + b) = a) /\ C = 0) \/ ((exists bcf_le_gap_kmccfnd_choose_in_range. bcf_le_gap_kmccfnd_choose_in_range + (a) = a + b) /\ (exists bcf_row_code_code_kmccfnd_choose bcf_row_code_scale_kmccfnd_choose bcf_row_scale_code_kmccfnd_choose bcf_row_scale_scale_kmccfnd_choose bcf_row_code_kmccfnd_choose bcf_row_scale_kmccfnd_choose. ((forall bcf_row_index_kmccfnd_choose_table. (exists bcf_lt_gap_kmccfnd_choose_table_row_bound. bcf_lt_gap_kmccfnd_choose_table_row_bound + S (bcf_row_index_kmccfnd_choose_table) = S (a + b)) -> exists bcf_row_code_kmccfnd_choose_table bcf_row_scale_kmccfnd_choose_table. ((((exists bcf_height_kmccfnd_choose_table_decoded_row_code. bcf_height_kmccfnd_choose_table_decoded_row_code + S (bcf_row_code_kmccfnd_choose_table) = S ((S (bcf_row_index_kmccfnd_choose_table)) * bcf_row_code_scale_kmccfnd_choose)) /\ exists bcf_quotient_kmccfnd_choose_table_decoded_row_code. bcf_row_code_code_kmccfnd_choose = bcf_quotient_kmccfnd_choose_table_decoded_row_code * S ((S (bcf_row_index_kmccfnd_choose_table)) * bcf_row_code_scale_kmccfnd_choose) + (bcf_row_code_kmccfnd_choose_table))) /\ ((((exists bcf_height_kmccfnd_choose_table_decoded_row_scale. bcf_height_kmccfnd_choose_table_decoded_row_scale + S (bcf_row_scale_kmccfnd_choose_table) = S ((S (bcf_row_index_kmccfnd_choose_table)) * bcf_row_scale_scale_kmccfnd_choose)) /\ exists bcf_quotient_kmccfnd_choose_table_decoded_row_scale. bcf_row_scale_code_kmccfnd_choose = bcf_quotient_kmccfnd_choose_table_decoded_row_scale * S ((S (bcf_row_index_kmccfnd_choose_table)) * bcf_row_scale_scale_kmccfnd_choose) + (bcf_row_scale_kmccfnd_choose_table))) /\ ((bcf_row_index_kmccfnd_choose_table = 0 /\ (forall bcf_index_kmccfnd_choose_table_zero_row. (exists bcf_lt_gap_kmccfnd_choose_table_zero_row_bound. bcf_lt_gap_kmccfnd_choose_table_zero_row_bound + S (bcf_index_kmccfnd_choose_table_zero_row) = S (a + b)) -> exists bcf_value_kmccfnd_choose_table_zero_row. ((((exists bcf_height_kmccfnd_choose_table_zero_row_entry. bcf_height_kmccfnd_choose_table_zero_row_entry + S (bcf_value_kmccfnd_choose_table_zero_row) = S ((S (bcf_index_kmccfnd_choose_table_zero_row)) * bcf_row_scale_kmccfnd_choose_table)) /\ exists bcf_quotient_kmccfnd_choose_table_zero_row_entry. bcf_row_code_kmccfnd_choose_table = bcf_quotient_kmccfnd_choose_table_zero_row_entry * S ((S (bcf_index_kmccfnd_choose_table_zero_row)) * bcf_row_scale_kmccfnd_choose_table) + (bcf_value_kmccfnd_choose_table_zero_row))) /\ ((bcf_index_kmccfnd_choose_table_zero_row = 0 /\ bcf_value_kmccfnd_choose_table_zero_row = 1) \/ exists bcf_predecessor_kmccfnd_choose_table_zero_row. bcf_index_kmccfnd_choose_table_zero_row = S bcf_predecessor_kmccfnd_choose_table_zero_row /\ bcf_value_kmccfnd_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_kmccfnd_choose_table bcf_previous_code_kmccfnd_choose_table bcf_previous_scale_kmccfnd_choose_table. bcf_row_index_kmccfnd_choose_table = S bcf_predecessor_kmccfnd_choose_table /\ ((((exists bcf_height_kmccfnd_choose_table_decoded_previous_code. bcf_height_kmccfnd_choose_table_decoded_previous_code + S (bcf_previous_code_kmccfnd_choose_table) = S ((S (bcf_predecessor_kmccfnd_choose_table)) * bcf_row_code_scale_kmccfnd_choose)) /\ exists bcf_quotient_kmccfnd_choose_table_decoded_previous_code. bcf_row_code_code_kmccfnd_choose = bcf_quotient_kmccfnd_choose_table_decoded_previous_code * S ((S (bcf_predecessor_kmccfnd_choose_table)) * bcf_row_code_scale_kmccfnd_choose) + (bcf_previous_code_kmccfnd_choose_table))) /\ ((((exists bcf_height_kmccfnd_choose_table_decoded_previous_scale. bcf_height_kmccfnd_choose_table_decoded_previous_scale + S (bcf_previous_scale_kmccfnd_choose_table) = S ((S (bcf_predecessor_kmccfnd_choose_table)) * bcf_row_scale_scale_kmccfnd_choose)) /\ exists bcf_quotient_kmccfnd_choose_table_decoded_previous_scale. bcf_row_scale_code_kmccfnd_choose = bcf_quotient_kmccfnd_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_kmccfnd_choose_table)) * bcf_row_scale_scale_kmccfnd_choose) + (bcf_previous_scale_kmccfnd_choose_table))) /\ (forall bcf_index_kmccfnd_choose_table_row_step. (exists bcf_lt_gap_kmccfnd_choose_table_row_step_bound. bcf_lt_gap_kmccfnd_choose_table_row_step_bound + S (bcf_index_kmccfnd_choose_table_row_step) = S (a + b)) -> exists bcf_value_kmccfnd_choose_table_row_step. ((((exists bcf_height_kmccfnd_choose_table_row_step_entry. bcf_height_kmccfnd_choose_table_row_step_entry + S (bcf_value_kmccfnd_choose_table_row_step) = S ((S (bcf_index_kmccfnd_choose_table_row_step)) * bcf_row_scale_kmccfnd_choose_table)) /\ exists bcf_quotient_kmccfnd_choose_table_row_step_entry. bcf_row_code_kmccfnd_choose_table = bcf_quotient_kmccfnd_choose_table_row_step_entry * S ((S (bcf_index_kmccfnd_choose_table_row_step)) * bcf_row_scale_kmccfnd_choose_table) + (bcf_value_kmccfnd_choose_table_row_step))) /\ ((bcf_index_kmccfnd_choose_table_row_step = 0 /\ bcf_value_kmccfnd_choose_table_row_step = 1) \/ exists bcf_predecessor_kmccfnd_choose_table_row_step bcf_left_kmccfnd_choose_table_row_step bcf_right_kmccfnd_choose_table_row_step. bcf_index_kmccfnd_choose_table_row_step = S bcf_predecessor_kmccfnd_choose_table_row_step /\ ((((exists bcf_height_kmccfnd_choose_table_row_step_previous_left. bcf_height_kmccfnd_choose_table_row_step_previous_left + S (bcf_left_kmccfnd_choose_table_row_step) = S ((S (bcf_predecessor_kmccfnd_choose_table_row_step)) * bcf_previous_scale_kmccfnd_choose_table)) /\ exists bcf_quotient_kmccfnd_choose_table_row_step_previous_left. bcf_previous_code_kmccfnd_choose_table = bcf_quotient_kmccfnd_choose_table_row_step_previous_left * S ((S (bcf_predecessor_kmccfnd_choose_table_row_step)) * bcf_previous_scale_kmccfnd_choose_table) + (bcf_left_kmccfnd_choose_table_row_step))) /\ ((((exists bcf_height_kmccfnd_choose_table_row_step_previous_right. bcf_height_kmccfnd_choose_table_row_step_previous_right + S (bcf_right_kmccfnd_choose_table_row_step) = S ((S (S (bcf_predecessor_kmccfnd_choose_table_row_step))) * bcf_previous_scale_kmccfnd_choose_table)) /\ exists bcf_quotient_kmccfnd_choose_table_row_step_previous_right. bcf_previous_code_kmccfnd_choose_table = bcf_quotient_kmccfnd_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_kmccfnd_choose_table_row_step))) * bcf_previous_scale_kmccfnd_choose_table) + (bcf_right_kmccfnd_choose_table_row_step))) /\ bcf_value_kmccfnd_choose_table_row_step = bcf_left_kmccfnd_choose_table_row_step + bcf_right_kmccfnd_choose_table_row_step))))))))))) /\ ((((exists bcf_height_kmccfnd_choose_decoded_row_code. bcf_height_kmccfnd_choose_decoded_row_code + S (bcf_row_code_kmccfnd_choose) = S ((S (a + b)) * bcf_row_code_scale_kmccfnd_choose)) /\ exists bcf_quotient_kmccfnd_choose_decoded_row_code. bcf_row_code_code_kmccfnd_choose = bcf_quotient_kmccfnd_choose_decoded_row_code * S ((S (a + b)) * bcf_row_code_scale_kmccfnd_choose) + (bcf_row_code_kmccfnd_choose))) /\ ((((exists bcf_height_kmccfnd_choose_decoded_row_scale. bcf_height_kmccfnd_choose_decoded_row_scale + S (bcf_row_scale_kmccfnd_choose) = S ((S (a + b)) * bcf_row_scale_scale_kmccfnd_choose)) /\ exists bcf_quotient_kmccfnd_choose_decoded_row_scale. bcf_row_scale_code_kmccfnd_choose = bcf_quotient_kmccfnd_choose_decoded_row_scale * S ((S (a + b)) * bcf_row_scale_scale_kmccfnd_choose) + (bcf_row_scale_kmccfnd_choose))) /\ (((exists bcf_height_kmccfnd_choose_decoded_value. bcf_height_kmccfnd_choose_decoded_value + S (C) = S ((S (a)) * bcf_row_scale_kmccfnd_choose)) /\ exists bcf_quotient_kmccfnd_choose_decoded_value. bcf_row_code_kmccfnd_choose = bcf_quotient_kmccfnd_choose_decoded_value * S ((S (a)) * bcf_row_scale_kmccfnd_choose) + (C))))))))) -> (((exists bpv_gap_kmccfnd_valuation_exponent_bound. bpv_gap_kmccfnd_valuation_exponent_bound + v = C) /\ (exists bpv_result_kmccfnd_valuation_selected. ((exists ff_b_kmccfnd_valuation_selected_power ff_c_kmccfnd_valuation_selected_power. ((forall ff_i_kmccfnd_valuation_selected_power_repeat. (exists ff_lt_kmccfnd_valuation_selected_power_repeat_bound. ff_lt_kmccfnd_valuation_selected_power_repeat_bound + S ff_i_kmccfnd_valuation_selected_power_repeat = v) -> (((exists ff_h_kmccfnd_valuation_selected_power_repeat_decoded. ff_h_kmccfnd_valuation_selected_power_repeat_decoded + S (p) = S ((S (ff_i_kmccfnd_valuation_selected_power_repeat)) * ff_c_kmccfnd_valuation_selected_power)) /\ exists ff_q_kmccfnd_valuation_selected_power_repeat_decoded. ff_b_kmccfnd_valuation_selected_power = ff_q_kmccfnd_valuation_selected_power_repeat_decoded * S ((S (ff_i_kmccfnd_valuation_selected_power_repeat)) * ff_c_kmccfnd_valuation_selected_power) + (p)))) /\ (exists ff_u_kmccfnd_valuation_selected_power_product ff_v_kmccfnd_valuation_selected_power_product. ((((exists ff_h_kmccfnd_valuation_selected_power_product_start. ff_h_kmccfnd_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_kmccfnd_valuation_selected_power_product)) /\ exists ff_q_kmccfnd_valuation_selected_power_product_start. ff_u_kmccfnd_valuation_selected_power_product = ff_q_kmccfnd_valuation_selected_power_product_start * S ((S (0)) * ff_v_kmccfnd_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_kmccfnd_valuation_selected_power_product_terminal. ff_h_kmccfnd_valuation_selected_power_product_terminal + S (bpv_result_kmccfnd_valuation_selected) = S ((S (v)) * ff_v_kmccfnd_valuation_selected_power_product)) /\ exists ff_q_kmccfnd_valuation_selected_power_product_terminal. ff_u_kmccfnd_valuation_selected_power_product = ff_q_kmccfnd_valuation_selected_power_product_terminal * S ((S (v)) * ff_v_kmccfnd_valuation_selected_power_product) + (bpv_result_kmccfnd_valuation_selected))) /\ forall ff_i_kmccfnd_valuation_selected_power_product. (exists ff_lt_kmccfnd_valuation_selected_power_product_bound. ff_lt_kmccfnd_valuation_selected_power_product_bound + S ff_i_kmccfnd_valuation_selected_power_product = v) -> exists ff_p_kmccfnd_valuation_selected_power_product ff_r_kmccfnd_valuation_selected_power_product ff_s_kmccfnd_valuation_selected_power_product. ((((exists ff_h_kmccfnd_valuation_selected_power_product_factor. ff_h_kmccfnd_valuation_selected_power_product_factor + S (ff_p_kmccfnd_valuation_selected_power_product) = S ((S (ff_i_kmccfnd_valuation_selected_power_product)) * ff_c_kmccfnd_valuation_selected_power)) /\ exists ff_q_kmccfnd_valuation_selected_power_product_factor. ff_b_kmccfnd_valuation_selected_power = ff_q_kmccfnd_valuation_selected_power_product_factor * S ((S (ff_i_kmccfnd_valuation_selected_power_product)) * ff_c_kmccfnd_valuation_selected_power) + (ff_p_kmccfnd_valuation_selected_power_product))) /\ ((((exists ff_h_kmccfnd_valuation_selected_power_product_partial. ff_h_kmccfnd_valuation_selected_power_product_partial + S (ff_r_kmccfnd_valuation_selected_power_product) = S ((S (ff_i_kmccfnd_valuation_selected_power_product)) * ff_v_kmccfnd_valuation_selected_power_product)) /\ exists ff_q_kmccfnd_valuation_selected_power_product_partial. ff_u_kmccfnd_valuation_selected_power_product = ff_q_kmccfnd_valuation_selected_power_product_partial * S ((S (ff_i_kmccfnd_valuation_selected_power_product)) * ff_v_kmccfnd_valuation_selected_power_product) + (ff_r_kmccfnd_valuation_selected_power_product))) /\ ((((exists ff_h_kmccfnd_valuation_selected_power_product_successor. ff_h_kmccfnd_valuation_selected_power_product_successor + S (ff_s_kmccfnd_valuation_selected_power_product) = S ((S (S ff_i_kmccfnd_valuation_selected_power_product)) * ff_v_kmccfnd_valuation_selected_power_product)) /\ exists ff_q_kmccfnd_valuation_selected_power_product_successor. ff_u_kmccfnd_valuation_selected_power_product = ff_q_kmccfnd_valuation_selected_power_product_successor * S ((S (S ff_i_kmccfnd_valuation_selected_power_product)) * ff_v_kmccfnd_valuation_selected_power_product) + (ff_s_kmccfnd_valuation_selected_power_product))) /\ ff_s_kmccfnd_valuation_selected_power_product = ff_r_kmccfnd_valuation_selected_power_product * ff_p_kmccfnd_valuation_selected_power_product)))))))) /\ (exists bpv_factor_kmccfnd_valuation_selected_divides. C = bpv_result_kmccfnd_valuation_selected * bpv_factor_kmccfnd_valuation_selected_divides)))) /\ forall bpv_candidate_kmccfnd_valuation. (exists bpv_gap_kmccfnd_valuation_candidate_bound. bpv_gap_kmccfnd_valuation_candidate_bound + bpv_candidate_kmccfnd_valuation = C) -> (exists bpv_result_kmccfnd_valuation_candidate. ((exists ff_b_kmccfnd_valuation_candidate_power ff_c_kmccfnd_valuation_candidate_power. ((forall ff_i_kmccfnd_valuation_candidate_power_repeat. (exists ff_lt_kmccfnd_valuation_candidate_power_repeat_bound. ff_lt_kmccfnd_valuation_candidate_power_repeat_bound + S ff_i_kmccfnd_valuation_candidate_power_repeat = bpv_candidate_kmccfnd_valuation) -> (((exists ff_h_kmccfnd_valuation_candidate_power_repeat_decoded. ff_h_kmccfnd_valuation_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_kmccfnd_valuation_candidate_power_repeat)) * ff_c_kmccfnd_valuation_candidate_power)) /\ exists ff_q_kmccfnd_valuation_candidate_power_repeat_decoded. ff_b_kmccfnd_valuation_candidate_power = ff_q_kmccfnd_valuation_candidate_power_repeat_decoded * S ((S (ff_i_kmccfnd_valuation_candidate_power_repeat)) * ff_c_kmccfnd_valuation_candidate_power) + (p)))) /\ (exists ff_u_kmccfnd_valuation_candidate_power_product ff_v_kmccfnd_valuation_candidate_power_product. ((((exists ff_h_kmccfnd_valuation_candidate_power_product_start. ff_h_kmccfnd_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_kmccfnd_valuation_candidate_power_product)) /\ exists ff_q_kmccfnd_valuation_candidate_power_product_start. ff_u_kmccfnd_valuation_candidate_power_product = ff_q_kmccfnd_valuation_candidate_power_product_start * S ((S (0)) * ff_v_kmccfnd_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_kmccfnd_valuation_candidate_power_product_terminal. ff_h_kmccfnd_valuation_candidate_power_product_terminal + S (bpv_result_kmccfnd_valuation_candidate) = S ((S (bpv_candidate_kmccfnd_valuation)) * ff_v_kmccfnd_valuation_candidate_power_product)) /\ exists ff_q_kmccfnd_valuation_candidate_power_product_terminal. ff_u_kmccfnd_valuation_candidate_power_product = ff_q_kmccfnd_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_kmccfnd_valuation)) * ff_v_kmccfnd_valuation_candidate_power_product) + (bpv_result_kmccfnd_valuation_candidate))) /\ forall ff_i_kmccfnd_valuation_candidate_power_product. (exists ff_lt_kmccfnd_valuation_candidate_power_product_bound. ff_lt_kmccfnd_valuation_candidate_power_product_bound + S ff_i_kmccfnd_valuation_candidate_power_product = bpv_candidate_kmccfnd_valuation) -> exists ff_p_kmccfnd_valuation_candidate_power_product ff_r_kmccfnd_valuation_candidate_power_product ff_s_kmccfnd_valuation_candidate_power_product. ((((exists ff_h_kmccfnd_valuation_candidate_power_product_factor. ff_h_kmccfnd_valuation_candidate_power_product_factor + S (ff_p_kmccfnd_valuation_candidate_power_product) = S ((S (ff_i_kmccfnd_valuation_candidate_power_product)) * ff_c_kmccfnd_valuation_candidate_power)) /\ exists ff_q_kmccfnd_valuation_candidate_power_product_factor. ff_b_kmccfnd_valuation_candidate_power = ff_q_kmccfnd_valuation_candidate_power_product_factor * S ((S (ff_i_kmccfnd_valuation_candidate_power_product)) * ff_c_kmccfnd_valuation_candidate_power) + (ff_p_kmccfnd_valuation_candidate_power_product))) /\ ((((exists ff_h_kmccfnd_valuation_candidate_power_product_partial. ff_h_kmccfnd_valuation_candidate_power_product_partial + S (ff_r_kmccfnd_valuation_candidate_power_product) = S ((S (ff_i_kmccfnd_valuation_candidate_power_product)) * ff_v_kmccfnd_valuation_candidate_power_product)) /\ exists ff_q_kmccfnd_valuation_candidate_power_product_partial. ff_u_kmccfnd_valuation_candidate_power_product = ff_q_kmccfnd_valuation_candidate_power_product_partial * S ((S (ff_i_kmccfnd_valuation_candidate_power_product)) * ff_v_kmccfnd_valuation_candidate_power_product) + (ff_r_kmccfnd_valuation_candidate_power_product))) /\ ((((exists ff_h_kmccfnd_valuation_candidate_power_product_successor. ff_h_kmccfnd_valuation_candidate_power_product_successor + S (ff_s_kmccfnd_valuation_candidate_power_product) = S ((S (S ff_i_kmccfnd_valuation_candidate_power_product)) * ff_v_kmccfnd_valuation_candidate_power_product)) /\ exists ff_q_kmccfnd_valuation_candidate_power_product_successor. ff_u_kmccfnd_valuation_candidate_power_product = ff_q_kmccfnd_valuation_candidate_power_product_successor * S ((S (S ff_i_kmccfnd_valuation_candidate_power_product)) * ff_v_kmccfnd_valuation_candidate_power_product) + (ff_s_kmccfnd_valuation_candidate_power_product))) /\ ff_s_kmccfnd_valuation_candidate_power_product = ff_r_kmccfnd_valuation_candidate_power_product * ff_p_kmccfnd_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_kmccfnd_valuation_candidate_divides. C = bpv_result_kmccfnd_valuation_candidate * bpv_factor_kmccfnd_valuation_candidate_divides))) -> (exists bpv_gap_kmccfnd_valuation_maximal. bpv_gap_kmccfnd_valuation_maximal + bpv_candidate_kmccfnd_valuation = v)) -> exists lb lc rb rc tb tc cb cc. (forall bls_index_kmccfnd_left. (exists bls_gap_kmccfnd_left_bound. bls_gap_kmccfnd_left_bound + S (bls_index_kmccfnd_left) = (a + b)) -> exists bls_power_kmccfnd_left bls_quotient_kmccfnd_left bls_remainder_kmccfnd_left. ((exists bpvi_b_bls_kmccfnd_left_power bpvi_c_bls_kmccfnd_left_power. ((forall bpvi_i_bls_kmccfnd_left_power. (exists bpvi_repeat_gap_bls_kmccfnd_left_power. bpvi_repeat_gap_bls_kmccfnd_left_power + S bpvi_i_bls_kmccfnd_left_power = S bls_index_kmccfnd_left) -> (((exists bpvi_h_bls_kmccfnd_left_power_repeat. bpvi_h_bls_kmccfnd_left_power_repeat + S (p) = S ((S (bpvi_i_bls_kmccfnd_left_power)) * bpvi_c_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_repeat. bpvi_b_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_repeat * S ((S (bpvi_i_bls_kmccfnd_left_power)) * bpvi_c_bls_kmccfnd_left_power) + (p)))) /\ (exists bpvi_u_bls_kmccfnd_left_power bpvi_v_bls_kmccfnd_left_power. ((((exists bpvi_h_bls_kmccfnd_left_power_start. bpvi_h_bls_kmccfnd_left_power_start + S (1) = S ((S (0)) * bpvi_v_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_start. bpvi_u_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_start * S ((S (0)) * bpvi_v_bls_kmccfnd_left_power) + (1))) /\ ((((exists bpvi_h_bls_kmccfnd_left_power_terminal. bpvi_h_bls_kmccfnd_left_power_terminal + S (bls_power_kmccfnd_left) = S ((S (S bls_index_kmccfnd_left)) * bpvi_v_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_terminal. bpvi_u_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_terminal * S ((S (S bls_index_kmccfnd_left)) * bpvi_v_bls_kmccfnd_left_power) + (bls_power_kmccfnd_left))) /\ forall bpvi_j_bls_kmccfnd_left_power. (exists bpvi_product_gap_bls_kmccfnd_left_power. bpvi_product_gap_bls_kmccfnd_left_power + S bpvi_j_bls_kmccfnd_left_power = S bls_index_kmccfnd_left) -> exists bpvi_factor_bls_kmccfnd_left_power bpvi_partial_bls_kmccfnd_left_power bpvi_successor_bls_kmccfnd_left_power. ((((exists bpvi_h_bls_kmccfnd_left_power_factor. bpvi_h_bls_kmccfnd_left_power_factor + S (bpvi_factor_bls_kmccfnd_left_power) = S ((S (bpvi_j_bls_kmccfnd_left_power)) * bpvi_c_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_factor. bpvi_b_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_factor * S ((S (bpvi_j_bls_kmccfnd_left_power)) * bpvi_c_bls_kmccfnd_left_power) + (bpvi_factor_bls_kmccfnd_left_power))) /\ ((((exists bpvi_h_bls_kmccfnd_left_power_partial. bpvi_h_bls_kmccfnd_left_power_partial + S (bpvi_partial_bls_kmccfnd_left_power) = S ((S (bpvi_j_bls_kmccfnd_left_power)) * bpvi_v_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_partial. bpvi_u_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_partial * S ((S (bpvi_j_bls_kmccfnd_left_power)) * bpvi_v_bls_kmccfnd_left_power) + (bpvi_partial_bls_kmccfnd_left_power))) /\ ((((exists bpvi_h_bls_kmccfnd_left_power_successor. bpvi_h_bls_kmccfnd_left_power_successor + S (bpvi_successor_bls_kmccfnd_left_power) = S ((S (S bpvi_j_bls_kmccfnd_left_power)) * bpvi_v_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_successor. bpvi_u_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_successor * S ((S (S bpvi_j_bls_kmccfnd_left_power)) * bpvi_v_bls_kmccfnd_left_power) + (bpvi_successor_bls_kmccfnd_left_power))) /\ bpvi_successor_bls_kmccfnd_left_power = bpvi_partial_bls_kmccfnd_left_power * bpvi_factor_bls_kmccfnd_left_power)))))))) /\ ((((exists ff_h_bls_kmccfnd_left_quotient_entry. ff_h_bls_kmccfnd_left_quotient_entry + S (bls_quotient_kmccfnd_left) = S ((S (bls_index_kmccfnd_left)) * lc)) /\ exists ff_q_bls_kmccfnd_left_quotient_entry. lb = ff_q_bls_kmccfnd_left_quotient_entry * S ((S (bls_index_kmccfnd_left)) * lc) + (bls_quotient_kmccfnd_left))) /\ ((a = bls_power_kmccfnd_left * bls_quotient_kmccfnd_left + bls_remainder_kmccfnd_left /\ exists bls_remainder_gap_kmccfnd_left_division. bls_remainder_gap_kmccfnd_left_division + S (bls_remainder_kmccfnd_left) = bls_power_kmccfnd_left))))) /\ ((forall bls_index_kmccfnd_right. (exists bls_gap_kmccfnd_right_bound. bls_gap_kmccfnd_right_bound + S (bls_index_kmccfnd_right) = (a + b)) -> exists bls_power_kmccfnd_right bls_quotient_kmccfnd_right bls_remainder_kmccfnd_right. ((exists bpvi_b_bls_kmccfnd_right_power bpvi_c_bls_kmccfnd_right_power. ((forall bpvi_i_bls_kmccfnd_right_power. (exists bpvi_repeat_gap_bls_kmccfnd_right_power. bpvi_repeat_gap_bls_kmccfnd_right_power + S bpvi_i_bls_kmccfnd_right_power = S bls_index_kmccfnd_right) -> (((exists bpvi_h_bls_kmccfnd_right_power_repeat. bpvi_h_bls_kmccfnd_right_power_repeat + S (p) = S ((S (bpvi_i_bls_kmccfnd_right_power)) * bpvi_c_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_repeat. bpvi_b_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_repeat * S ((S (bpvi_i_bls_kmccfnd_right_power)) * bpvi_c_bls_kmccfnd_right_power) + (p)))) /\ (exists bpvi_u_bls_kmccfnd_right_power bpvi_v_bls_kmccfnd_right_power. ((((exists bpvi_h_bls_kmccfnd_right_power_start. bpvi_h_bls_kmccfnd_right_power_start + S (1) = S ((S (0)) * bpvi_v_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_start. bpvi_u_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_start * S ((S (0)) * bpvi_v_bls_kmccfnd_right_power) + (1))) /\ ((((exists bpvi_h_bls_kmccfnd_right_power_terminal. bpvi_h_bls_kmccfnd_right_power_terminal + S (bls_power_kmccfnd_right) = S ((S (S bls_index_kmccfnd_right)) * bpvi_v_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_terminal. bpvi_u_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_terminal * S ((S (S bls_index_kmccfnd_right)) * bpvi_v_bls_kmccfnd_right_power) + (bls_power_kmccfnd_right))) /\ forall bpvi_j_bls_kmccfnd_right_power. (exists bpvi_product_gap_bls_kmccfnd_right_power. bpvi_product_gap_bls_kmccfnd_right_power + S bpvi_j_bls_kmccfnd_right_power = S bls_index_kmccfnd_right) -> exists bpvi_factor_bls_kmccfnd_right_power bpvi_partial_bls_kmccfnd_right_power bpvi_successor_bls_kmccfnd_right_power. ((((exists bpvi_h_bls_kmccfnd_right_power_factor. bpvi_h_bls_kmccfnd_right_power_factor + S (bpvi_factor_bls_kmccfnd_right_power) = S ((S (bpvi_j_bls_kmccfnd_right_power)) * bpvi_c_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_factor. bpvi_b_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_factor * S ((S (bpvi_j_bls_kmccfnd_right_power)) * bpvi_c_bls_kmccfnd_right_power) + (bpvi_factor_bls_kmccfnd_right_power))) /\ ((((exists bpvi_h_bls_kmccfnd_right_power_partial. bpvi_h_bls_kmccfnd_right_power_partial + S (bpvi_partial_bls_kmccfnd_right_power) = S ((S (bpvi_j_bls_kmccfnd_right_power)) * bpvi_v_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_partial. bpvi_u_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_partial * S ((S (bpvi_j_bls_kmccfnd_right_power)) * bpvi_v_bls_kmccfnd_right_power) + (bpvi_partial_bls_kmccfnd_right_power))) /\ ((((exists bpvi_h_bls_kmccfnd_right_power_successor. bpvi_h_bls_kmccfnd_right_power_successor + S (bpvi_successor_bls_kmccfnd_right_power) = S ((S (S bpvi_j_bls_kmccfnd_right_power)) * bpvi_v_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_successor. bpvi_u_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_successor * S ((S (S bpvi_j_bls_kmccfnd_right_power)) * bpvi_v_bls_kmccfnd_right_power) + (bpvi_successor_bls_kmccfnd_right_power))) /\ bpvi_successor_bls_kmccfnd_right_power = bpvi_partial_bls_kmccfnd_right_power * bpvi_factor_bls_kmccfnd_right_power)))))))) /\ ((((exists ff_h_bls_kmccfnd_right_quotient_entry. ff_h_bls_kmccfnd_right_quotient_entry + S (bls_quotient_kmccfnd_right) = S ((S (bls_index_kmccfnd_right)) * rc)) /\ exists ff_q_bls_kmccfnd_right_quotient_entry. rb = ff_q_bls_kmccfnd_right_quotient_entry * S ((S (bls_index_kmccfnd_right)) * rc) + (bls_quotient_kmccfnd_right))) /\ ((b = bls_power_kmccfnd_right * bls_quotient_kmccfnd_right + bls_remainder_kmccfnd_right /\ exists bls_remainder_gap_kmccfnd_right_division. bls_remainder_gap_kmccfnd_right_division + S (bls_remainder_kmccfnd_right) = bls_power_kmccfnd_right))))) /\ ((forall bls_index_kmccfnd_total. (exists bls_gap_kmccfnd_total_bound. bls_gap_kmccfnd_total_bound + S (bls_index_kmccfnd_total) = (a + b)) -> exists bls_power_kmccfnd_total bls_quotient_kmccfnd_total bls_remainder_kmccfnd_total. ((exists bpvi_b_bls_kmccfnd_total_power bpvi_c_bls_kmccfnd_total_power. ((forall bpvi_i_bls_kmccfnd_total_power. (exists bpvi_repeat_gap_bls_kmccfnd_total_power. bpvi_repeat_gap_bls_kmccfnd_total_power + S bpvi_i_bls_kmccfnd_total_power = S bls_index_kmccfnd_total) -> (((exists bpvi_h_bls_kmccfnd_total_power_repeat. bpvi_h_bls_kmccfnd_total_power_repeat + S (p) = S ((S (bpvi_i_bls_kmccfnd_total_power)) * bpvi_c_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_repeat. bpvi_b_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_repeat * S ((S (bpvi_i_bls_kmccfnd_total_power)) * bpvi_c_bls_kmccfnd_total_power) + (p)))) /\ (exists bpvi_u_bls_kmccfnd_total_power bpvi_v_bls_kmccfnd_total_power. ((((exists bpvi_h_bls_kmccfnd_total_power_start. bpvi_h_bls_kmccfnd_total_power_start + S (1) = S ((S (0)) * bpvi_v_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_start. bpvi_u_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_start * S ((S (0)) * bpvi_v_bls_kmccfnd_total_power) + (1))) /\ ((((exists bpvi_h_bls_kmccfnd_total_power_terminal. bpvi_h_bls_kmccfnd_total_power_terminal + S (bls_power_kmccfnd_total) = S ((S (S bls_index_kmccfnd_total)) * bpvi_v_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_terminal. bpvi_u_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_terminal * S ((S (S bls_index_kmccfnd_total)) * bpvi_v_bls_kmccfnd_total_power) + (bls_power_kmccfnd_total))) /\ forall bpvi_j_bls_kmccfnd_total_power. (exists bpvi_product_gap_bls_kmccfnd_total_power. bpvi_product_gap_bls_kmccfnd_total_power + S bpvi_j_bls_kmccfnd_total_power = S bls_index_kmccfnd_total) -> exists bpvi_factor_bls_kmccfnd_total_power bpvi_partial_bls_kmccfnd_total_power bpvi_successor_bls_kmccfnd_total_power. ((((exists bpvi_h_bls_kmccfnd_total_power_factor. bpvi_h_bls_kmccfnd_total_power_factor + S (bpvi_factor_bls_kmccfnd_total_power) = S ((S (bpvi_j_bls_kmccfnd_total_power)) * bpvi_c_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_factor. bpvi_b_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_factor * S ((S (bpvi_j_bls_kmccfnd_total_power)) * bpvi_c_bls_kmccfnd_total_power) + (bpvi_factor_bls_kmccfnd_total_power))) /\ ((((exists bpvi_h_bls_kmccfnd_total_power_partial. bpvi_h_bls_kmccfnd_total_power_partial + S (bpvi_partial_bls_kmccfnd_total_power) = S ((S (bpvi_j_bls_kmccfnd_total_power)) * bpvi_v_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_partial. bpvi_u_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_partial * S ((S (bpvi_j_bls_kmccfnd_total_power)) * bpvi_v_bls_kmccfnd_total_power) + (bpvi_partial_bls_kmccfnd_total_power))) /\ ((((exists bpvi_h_bls_kmccfnd_total_power_successor. bpvi_h_bls_kmccfnd_total_power_successor + S (bpvi_successor_bls_kmccfnd_total_power) = S ((S (S bpvi_j_bls_kmccfnd_total_power)) * bpvi_v_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_successor. bpvi_u_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_successor * S ((S (S bpvi_j_bls_kmccfnd_total_power)) * bpvi_v_bls_kmccfnd_total_power) + (bpvi_successor_bls_kmccfnd_total_power))) /\ bpvi_successor_bls_kmccfnd_total_power = bpvi_partial_bls_kmccfnd_total_power * bpvi_factor_bls_kmccfnd_total_power)))))))) /\ ((((exists ff_h_bls_kmccfnd_total_quotient_entry. ff_h_bls_kmccfnd_total_quotient_entry + S (bls_quotient_kmccfnd_total) = S ((S (bls_index_kmccfnd_total)) * tc)) /\ exists ff_q_bls_kmccfnd_total_quotient_entry. tb = ff_q_bls_kmccfnd_total_quotient_entry * S ((S (bls_index_kmccfnd_total)) * tc) + (bls_quotient_kmccfnd_total))) /\ ((a + b = bls_power_kmccfnd_total * bls_quotient_kmccfnd_total + bls_remainder_kmccfnd_total /\ exists bls_remainder_gap_kmccfnd_total_division. bls_remainder_gap_kmccfnd_total_division + S (bls_remainder_kmccfnd_total) = bls_power_kmccfnd_total))))) /\ ((forall kmc_index_kmccfnd_carries. (exists bcf_lt_gap_kmccfnd_carries_bound. bcf_lt_gap_kmccfnd_carries_bound + S (kmc_index_kmccfnd_carries) = a + b) -> exists kmc_left_kmccfnd_carries kmc_right_kmccfnd_carries kmc_total_kmccfnd_carries kmc_bit_kmccfnd_carries. (((exists fs_h_kmccfnd_carries_left. fs_h_kmccfnd_carries_left + S (kmc_left_kmccfnd_carries) = S ((S (kmc_index_kmccfnd_carries)) * lc)) /\ exists fs_q_kmccfnd_carries_left. lb = fs_q_kmccfnd_carries_left * S ((S (kmc_index_kmccfnd_carries)) * lc) + (kmc_left_kmccfnd_carries))) /\ ((((exists fs_h_kmccfnd_carries_right. fs_h_kmccfnd_carries_right + S (kmc_right_kmccfnd_carries) = S ((S (kmc_index_kmccfnd_carries)) * rc)) /\ exists fs_q_kmccfnd_carries_right. rb = fs_q_kmccfnd_carries_right * S ((S (kmc_index_kmccfnd_carries)) * rc) + (kmc_right_kmccfnd_carries))) /\ ((((exists fs_h_kmccfnd_carries_total. fs_h_kmccfnd_carries_total + S (kmc_total_kmccfnd_carries) = S ((S (kmc_index_kmccfnd_carries)) * tc)) /\ exists fs_q_kmccfnd_carries_total. tb = fs_q_kmccfnd_carries_total * S ((S (kmc_index_kmccfnd_carries)) * tc) + (kmc_total_kmccfnd_carries))) /\ ((((exists fs_h_kmccfnd_carries_bit. fs_h_kmccfnd_carries_bit + S (kmc_bit_kmccfnd_carries) = S ((S (kmc_index_kmccfnd_carries)) * cc)) /\ exists fs_q_kmccfnd_carries_bit. cb = fs_q_kmccfnd_carries_bit * S ((S (kmc_index_kmccfnd_carries)) * cc) + (kmc_bit_kmccfnd_carries))) /\ (((kmc_bit_kmccfnd_carries = 0 /\ kmc_total_kmccfnd_carries = kmc_left_kmccfnd_carries + kmc_right_kmccfnd_carries) \/ (kmc_bit_kmccfnd_carries = 1 /\ kmc_total_kmccfnd_carries = S (kmc_left_kmccfnd_carries + kmc_right_kmccfnd_carries)))))))) /\ ((((exists ff_u_kmccfnd_count_sum ff_v_kmccfnd_count_sum. ((((exists ff_h_kmccfnd_count_sum_start. ff_h_kmccfnd_count_sum_start + S (0) = S ((S (0)) * ff_v_kmccfnd_count_sum)) /\ exists ff_q_kmccfnd_count_sum_start. ff_u_kmccfnd_count_sum = ff_q_kmccfnd_count_sum_start * S ((S (0)) * ff_v_kmccfnd_count_sum) + (0))) /\ ((((exists ff_h_kmccfnd_count_sum_terminal. ff_h_kmccfnd_count_sum_terminal + S ((v)) = S ((S ((a + b))) * ff_v_kmccfnd_count_sum)) /\ exists ff_q_kmccfnd_count_sum_terminal. ff_u_kmccfnd_count_sum = ff_q_kmccfnd_count_sum_terminal * S ((S ((a + b))) * ff_v_kmccfnd_count_sum) + ((v)))) /\ forall ff_i_kmccfnd_count_sum. (exists ff_lt_kmccfnd_count_sum_bound. ff_lt_kmccfnd_count_sum_bound + S ff_i_kmccfnd_count_sum = (a + b)) -> exists ff_a_kmccfnd_count_sum ff_r_kmccfnd_count_sum ff_s_kmccfnd_count_sum. ((((exists ff_h_kmccfnd_count_sum_summand. ff_h_kmccfnd_count_sum_summand + S (ff_a_kmccfnd_count_sum) = S ((S (ff_i_kmccfnd_count_sum)) * cc)) /\ exists ff_q_kmccfnd_count_sum_summand. cb = ff_q_kmccfnd_count_sum_summand * S ((S (ff_i_kmccfnd_count_sum)) * cc) + (ff_a_kmccfnd_count_sum))) /\ ((((exists ff_h_kmccfnd_count_sum_partial. ff_h_kmccfnd_count_sum_partial + S (ff_r_kmccfnd_count_sum) = S ((S (ff_i_kmccfnd_count_sum)) * ff_v_kmccfnd_count_sum)) /\ exists ff_q_kmccfnd_count_sum_partial. ff_u_kmccfnd_count_sum = ff_q_kmccfnd_count_sum_partial * S ((S (ff_i_kmccfnd_count_sum)) * ff_v_kmccfnd_count_sum) + (ff_r_kmccfnd_count_sum))) /\ ((((exists ff_h_kmccfnd_count_sum_successor. ff_h_kmccfnd_count_sum_successor + S (ff_s_kmccfnd_count_sum) = S ((S (S ff_i_kmccfnd_count_sum)) * ff_v_kmccfnd_count_sum)) /\ exists ff_q_kmccfnd_count_sum_successor. ff_u_kmccfnd_count_sum = ff_q_kmccfnd_count_sum_successor * S ((S (S ff_i_kmccfnd_count_sum)) * ff_v_kmccfnd_count_sum) + (ff_s_kmccfnd_count_sum))) /\ ff_s_kmccfnd_count_sum = ff_r_kmccfnd_count_sum + ff_a_kmccfnd_count_sum)))))) /\ (forall ff_i_kmccfnd_count_bits. (exists ff_lt_kmccfnd_count_bits_bound. ff_lt_kmccfnd_count_bits_bound + S ff_i_kmccfnd_count_bits = (a + b)) -> exists ff_bit_kmccfnd_count_bits. ((((exists ff_h_kmccfnd_count_bits_decoded. ff_h_kmccfnd_count_bits_decoded + S (ff_bit_kmccfnd_count_bits) = S ((S (ff_i_kmccfnd_count_bits)) * cc)) /\ exists ff_q_kmccfnd_count_bits_decoded. cb = ff_q_kmccfnd_count_bits_decoded * S ((S (ff_i_kmccfnd_count_bits)) * cc) + (ff_bit_kmccfnd_count_bits))) /\ (ff_bit_kmccfnd_count_bits = 0 \/ ff_bit_kmccfnd_count_bits = 1))))) /\ (((((exists ff_u_kmccfnd_zero_count_sum ff_v_kmccfnd_zero_count_sum. ((((exists ff_h_kmccfnd_zero_count_sum_start. ff_h_kmccfnd_zero_count_sum_start + S (0) = S ((S (0)) * ff_v_kmccfnd_zero_count_sum)) /\ exists ff_q_kmccfnd_zero_count_sum_start. ff_u_kmccfnd_zero_count_sum = ff_q_kmccfnd_zero_count_sum_start * S ((S (0)) * ff_v_kmccfnd_zero_count_sum) + (0))) /\ ((((exists ff_h_kmccfnd_zero_count_sum_terminal. ff_h_kmccfnd_zero_count_sum_terminal + S ((0)) = S ((S ((a + b))) * ff_v_kmccfnd_zero_count_sum)) /\ exists ff_q_kmccfnd_zero_count_sum_terminal. ff_u_kmccfnd_zero_count_sum = ff_q_kmccfnd_zero_count_sum_terminal * S ((S ((a + b))) * ff_v_kmccfnd_zero_count_sum) + ((0)))) /\ forall ff_i_kmccfnd_zero_count_sum. (exists ff_lt_kmccfnd_zero_count_sum_bound. ff_lt_kmccfnd_zero_count_sum_bound + S ff_i_kmccfnd_zero_count_sum = (a + b)) -> exists ff_a_kmccfnd_zero_count_sum ff_r_kmccfnd_zero_count_sum ff_s_kmccfnd_zero_count_sum. ((((exists ff_h_kmccfnd_zero_count_sum_summand. ff_h_kmccfnd_zero_count_sum_summand + S (ff_a_kmccfnd_zero_count_sum) = S ((S (ff_i_kmccfnd_zero_count_sum)) * cc)) /\ exists ff_q_kmccfnd_zero_count_sum_summand. cb = ff_q_kmccfnd_zero_count_sum_summand * S ((S (ff_i_kmccfnd_zero_count_sum)) * cc) + (ff_a_kmccfnd_zero_count_sum))) /\ ((((exists ff_h_kmccfnd_zero_count_sum_partial. ff_h_kmccfnd_zero_count_sum_partial + S (ff_r_kmccfnd_zero_count_sum) = S ((S (ff_i_kmccfnd_zero_count_sum)) * ff_v_kmccfnd_zero_count_sum)) /\ exists ff_q_kmccfnd_zero_count_sum_partial. ff_u_kmccfnd_zero_count_sum = ff_q_kmccfnd_zero_count_sum_partial * S ((S (ff_i_kmccfnd_zero_count_sum)) * ff_v_kmccfnd_zero_count_sum) + (ff_r_kmccfnd_zero_count_sum))) /\ ((((exists ff_h_kmccfnd_zero_count_sum_successor. ff_h_kmccfnd_zero_count_sum_successor + S (ff_s_kmccfnd_zero_count_sum) = S ((S (S ff_i_kmccfnd_zero_count_sum)) * ff_v_kmccfnd_zero_count_sum)) /\ exists ff_q_kmccfnd_zero_count_sum_successor. ff_u_kmccfnd_zero_count_sum = ff_q_kmccfnd_zero_count_sum_successor * S ((S (S ff_i_kmccfnd_zero_count_sum)) * ff_v_kmccfnd_zero_count_sum) + (ff_s_kmccfnd_zero_count_sum))) /\ ff_s_kmccfnd_zero_count_sum = ff_r_kmccfnd_zero_count_sum + ff_a_kmccfnd_zero_count_sum)))))) /\ (forall ff_i_kmccfnd_zero_count_bits. (exists ff_lt_kmccfnd_zero_count_bits_bound. ff_lt_kmccfnd_zero_count_bits_bound + S ff_i_kmccfnd_zero_count_bits = (a + b)) -> exists ff_bit_kmccfnd_zero_count_bits. ((((exists ff_h_kmccfnd_zero_count_bits_decoded. ff_h_kmccfnd_zero_count_bits_decoded + S (ff_bit_kmccfnd_zero_count_bits) = S ((S (ff_i_kmccfnd_zero_count_bits)) * cc)) /\ exists ff_q_kmccfnd_zero_count_bits_decoded. cb = ff_q_kmccfnd_zero_count_bits_decoded * S ((S (ff_i_kmccfnd_zero_count_bits)) * cc) + (ff_bit_kmccfnd_zero_count_bits))) /\ (ff_bit_kmccfnd_zero_count_bits = 0 \/ ff_bit_kmccfnd_zero_count_bits = 1))))) -> ~(exists bpv_factor_kmccfnd_divides. C = p * bpv_factor_kmccfnd_divides)) /\ (~(exists bpv_factor_kmccfnd_divides. C = p * bpv_factor_kmccfnd_divides) -> (((exists ff_u_kmccfnd_zero_count_sum ff_v_kmccfnd_zero_count_sum. ((((exists ff_h_kmccfnd_zero_count_sum_start. ff_h_kmccfnd_zero_count_sum_start + S (0) = S ((S (0)) * ff_v_kmccfnd_zero_count_sum)) /\ exists ff_q_kmccfnd_zero_count_sum_start. ff_u_kmccfnd_zero_count_sum = ff_q_kmccfnd_zero_count_sum_start * S ((S (0)) * ff_v_kmccfnd_zero_count_sum) + (0))) /\ ((((exists ff_h_kmccfnd_zero_count_sum_terminal. ff_h_kmccfnd_zero_count_sum_terminal + S ((0)) = S ((S ((a + b))) * ff_v_kmccfnd_zero_count_sum)) /\ exists ff_q_kmccfnd_zero_count_sum_terminal. ff_u_kmccfnd_zero_count_sum = ff_q_kmccfnd_zero_count_sum_terminal * S ((S ((a + b))) * ff_v_kmccfnd_zero_count_sum) + ((0)))) /\ forall ff_i_kmccfnd_zero_count_sum. (exists ff_lt_kmccfnd_zero_count_sum_bound. ff_lt_kmccfnd_zero_count_sum_bound + S ff_i_kmccfnd_zero_count_sum = (a + b)) -> exists ff_a_kmccfnd_zero_count_sum ff_r_kmccfnd_zero_count_sum ff_s_kmccfnd_zero_count_sum. ((((exists ff_h_kmccfnd_zero_count_sum_summand. ff_h_kmccfnd_zero_count_sum_summand + S (ff_a_kmccfnd_zero_count_sum) = S ((S (ff_i_kmccfnd_zero_count_sum)) * cc)) /\ exists ff_q_kmccfnd_zero_count_sum_summand. cb = ff_q_kmccfnd_zero_count_sum_summand * S ((S (ff_i_kmccfnd_zero_count_sum)) * cc) + (ff_a_kmccfnd_zero_count_sum))) /\ ((((exists ff_h_kmccfnd_zero_count_sum_partial. ff_h_kmccfnd_zero_count_sum_partial + S (ff_r_kmccfnd_zero_count_sum) = S ((S (ff_i_kmccfnd_zero_count_sum)) * ff_v_kmccfnd_zero_count_sum)) /\ exists ff_q_kmccfnd_zero_count_sum_partial. ff_u_kmccfnd_zero_count_sum = ff_q_kmccfnd_zero_count_sum_partial * S ((S (ff_i_kmccfnd_zero_count_sum)) * ff_v_kmccfnd_zero_count_sum) + (ff_r_kmccfnd_zero_count_sum))) /\ ((((exists ff_h_kmccfnd_zero_count_sum_successor. ff_h_kmccfnd_zero_count_sum_successor + S (ff_s_kmccfnd_zero_count_sum) = S ((S (S ff_i_kmccfnd_zero_count_sum)) * ff_v_kmccfnd_zero_count_sum)) /\ exists ff_q_kmccfnd_zero_count_sum_successor. ff_u_kmccfnd_zero_count_sum = ff_q_kmccfnd_zero_count_sum_successor * S ((S (S ff_i_kmccfnd_zero_count_sum)) * ff_v_kmccfnd_zero_count_sum) + (ff_s_kmccfnd_zero_count_sum))) /\ ff_s_kmccfnd_zero_count_sum = ff_r_kmccfnd_zero_count_sum + ff_a_kmccfnd_zero_count_sum)))))) /\ (forall ff_i_kmccfnd_zero_count_bits. (exists ff_lt_kmccfnd_zero_count_bits_bound. ff_lt_kmccfnd_zero_count_bits_bound + S ff_i_kmccfnd_zero_count_bits = (a + b)) -> exists ff_bit_kmccfnd_zero_count_bits. ((((exists ff_h_kmccfnd_zero_count_bits_decoded. ff_h_kmccfnd_zero_count_bits_decoded + S (ff_bit_kmccfnd_zero_count_bits) = S ((S (ff_i_kmccfnd_zero_count_bits)) * cc)) /\ exists ff_q_kmccfnd_zero_count_bits_decoded. cb = ff_q_kmccfnd_zero_count_bits_decoded * S ((S (ff_i_kmccfnd_zero_count_bits)) * cc) + (ff_bit_kmccfnd_zero_count_bits))) /\ (ff_bit_kmccfnd_zero_count_bits = 0 \/ ff_bit_kmccfnd_zero_count_bits = 1)))))))))))

Proof neighborhood

Direct theorem prerequisites

choose_positive · Alpha closed add_comm · Stable closed KU000D prime_power_valuation_zero_iff_not_divides KU000C kummer_binomial_carry_bit_count bit_count_functional · Stable closed

Direct theorem dependents

none

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

95 script commands · 31 reading checkpoints · 6 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (2)
01Fix variables and assumptionsL1–8

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

  1. L1
    intro p
  2. L2
    intro a
  3. L3
    intro b
  4. L4
    intro C
  5. L5
    intro v
  6. L6
    intro hp
  7. L7
    intro hchoose
  8. L8
    intro hvaluation
02Establish hc_nonzeroL9–10

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

  1. L9
    have hc_nonzero : ~(C = 0)
  2. L10
    intro hzero
03Establish hboundL11–11

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

  1. L11
    have hbound : Le(a,a + b)Definitions: Le(a,a + b)Original native command in the exact edition
04Construct an explicit witnessL12–12

Supply the displayed value, then prove that it has the required property.

  1. L12
    exists b
05Use earlier factsL13–13

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

  1. L13
    apply add_comm
06Establish hpositiveL14–20

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

  1. L14
    have hpositive : exists z. C = S z
  2. L15
    specialize choose_positive (a + b)
  3. L16
    specialize choose_positive a
  4. L17
    specialize choose_positive C
  5. L18
    apply choose_positive
  6. L19
    exact hbound
  7. L20
    exact hchoose
07Separate the logical casesL21–21

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

  1. L21
    cases hpositive
08Use earlier factsL22–22

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

  1. L22
    apply PA1
09Calculate and transport equalitiesL23–24

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

  1. L23
    trans C
  2. L24
    symm
10Use earlier factsL25–26

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

  1. L25
    exact hpositive_witness
  2. L26
    exact hzero
11Establish hbridgeL27–34

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime power valuation zero iff not divides.

  1. L27
    have hbridge : (v = 0 → ¬Dvd(p,C)) ∧ (¬Dvd(p,C) → v = 0)Definitions: Dvd(p,C)Original native command in the exact edition
  2. L28
    specialize prime_power_valuation_zero_iff_not_divides p
  3. L29
    specialize prime_power_valuation_zero_iff_not_divides C
  4. L30
    specialize prime_power_valuation_zero_iff_not_divides v
  5. L31
    apply prime_power_valuation_zero_iff_not_divides
  6. L32
    exact hp
  7. L33
    exact hc_nonzero
  8. L34
    exact hvaluation
12Separate the logical casesL35–35

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

  1. L35
    cases hbridge
13Establish hpackageL36–45

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply kummer binomial carry bit count.

  1. L36
    have hpackage : ∃ lb. ∃ lc. ∃ rb. ∃ rc. ∃ tb. ∃ tc. ∃ cb. ∃ cc. PowerQuotPrefix(p,a,lb,lc,a + b) ∧ (PowerQuotPrefix(p,b,rb,rc,a + b) ∧ (PowerQuotPrefix(p,a + b,tb,tc,a + b) ∧ ((∀ x. Lt(x,a + b) → ∃ y. ∃ z. ∃ n. ∃ m. BetaAt(lb,lc,x,y) ∧ (BetaAt(rb,rc,x,z) ∧ (BetaAt(tb,tc,x,n) ∧ (BetaAt(cb,cc,x,m) ∧ (m = 0 ∧ n = y + z ∨ m = 1 ∧ n = S (y + z)))))) ∧ BitCount(cb,cc,a + b,v))))Definitions: PowerQuotPrefix(p,a,lb,lc,a + b)PowerQuotPrefix(p,b,rb,rc,a + b)PowerQuotPrefix(p,a + b,tb,tc,a + b)Lt(x,a + b)BetaAt(lb,lc,x,y)BetaAt(rb,rc,x,z)BetaAt(tb,tc,x,n)BetaAt(cb,cc,x,m)BitCount(cb,cc,a + b,v)Original native command in the exact edition
  2. L37
    specialize kummer_binomial_carry_bit_count p
  3. L38
    specialize kummer_binomial_carry_bit_count a
  4. L39
    specialize kummer_binomial_carry_bit_count b
  5. L40
    specialize kummer_binomial_carry_bit_count C
  6. L41
    specialize kummer_binomial_carry_bit_count v
  7. L42
    apply kummer_binomial_carry_bit_count
  8. L43
    exact hp
  9. L44
    exact hchoose
  10. L45
    exact hvaluation
14Separate the logical casesL46–55

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

  1. L46
    cases hpackage
  2. L47
    cases hpackage_witness
  3. L48
    cases hpackage_witness_witness
  4. L49
    cases hpackage_witness_witness_witness
  5. L50
    cases hpackage_witness_witness_witness_witness
  6. L51
    cases hpackage_witness_witness_witness_witness_witness
  7. L52
    cases hpackage_witness_witness_witness_witness_witness_witness
  8. L53
    cases hpackage_witness_witness_witness_witness_witness_witness_witness
  9. L54
    cases hpackage_witness_witness_witness_witness_witness_witness_witness_witness
  10. L55
    cases hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right
15Separate the logical casesL56–57

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

  1. L56
    cases hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right
  2. L57
    cases hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
16Construct an explicit witnessL58–65

Supply the displayed value, then prove that it has the required property.

  1. L58
    exists x
  2. L59
    exists x1
  3. L60
    exists x2
  4. L61
    exists x3
  5. L62
    exists x4
  6. L63
    exists x5
  7. L64
    exists x6
  8. L65
    exists x7
17Separate the logical casesL66–66

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

  1. L66
    split
18Use earlier factsL67–67

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

  1. L67
    exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_left
19Separate the logical casesL68–68

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

  1. L68
    split
20Use earlier factsL69–69

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

  1. L69
    exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_left
21Separate the logical casesL70–70

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

  1. L70
    split
22Use earlier factsL71–71

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

  1. L71
    exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
23Separate the logical casesL72–72

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

  1. L72
    split
24Use earlier factsL73–73

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

  1. L73
    exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
25Separate the logical casesL74–74

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

  1. L74
    split
26Use earlier factsL75–75

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

  1. L75
    exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
27Separate the logical casesL76–76

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

  1. L76
    split
28Fix variables and assumptionsL77–78

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

  1. L77
    intro hzero_count
  2. L78
    intro hdivides
29Use earlier factsL79–88

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

  1. L79
    apply hbridge_left
  2. L80
    specialize bit_count_functional x6
  3. L81
    specialize bit_count_functional x7
  4. L82
    specialize bit_count_functional (a + b)
  5. L83
    specialize bit_count_functional v
  6. L84
    specialize bit_count_functional 0
  7. L85
    apply bit_count_functional
  8. L86
    exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  9. L87
    exact hzero_count
  10. L88
    exact hdivides
30Fix variables and assumptionsL89–89

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

  1. L89
    intro hnotdivides
31Establish hv_zeroL90–95

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

  1. L90
    have hv_zero : v = 0
  2. L91
    apply hbridge_right
  3. L92
    exact hnotdivides
  4. L93
    rewrite hv_zero at hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  5. L94
    rewrite hv_zero at hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  6. L95
    exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right

Library-wide reading audit

Original defined command ledger · 95 lines
  1. 0001intro p
  2. 0002intro a
  3. 0003intro b
  4. 0004intro C
  5. 0005intro v
  6. 0006intro hp
  7. 0007intro hchoose
  8. 0008intro hvaluation
  9. 0009have hc_nonzero : ~(C = 0)
  10. 0010intro hzero
  11. 0011have hbound : Le(a,a + b)
    Exact native replay linehave hbound : exists z. z + a = a + b
  12. 0012exists b
  13. 0013apply add_comm
  14. 0014have hpositive : exists z. C = S z
  15. 0015specialize choose_positive (a + b)
  16. 0016specialize choose_positive a
  17. 0017specialize choose_positive C
  18. 0018apply choose_positive
  19. 0019exact hbound
  20. 0020exact hchoose
  21. 0021cases hpositive
  22. 0022apply PA1
  23. 0023trans C
  24. 0024symm
  25. 0025exact hpositive_witness
  26. 0026exact hzero
  27. 0027have hbridge : (v = 0 → ¬Dvd(p,C)) ∧ (¬Dvd(p,C) → v = 0)
    Exact native replay linehave hbridge : (v = 0 -> ~(exists bpv_factor_kmccfnd_divides. C = p * bpv_factor_kmccfnd_divides)) /\ (~(exists bpv_factor_kmccfnd_divides. C = p * bpv_factor_kmccfnd_divides) -> v = 0)
  28. 0028specialize prime_power_valuation_zero_iff_not_divides p
  29. 0029specialize prime_power_valuation_zero_iff_not_divides C
  30. 0030specialize prime_power_valuation_zero_iff_not_divides v
  31. 0031apply prime_power_valuation_zero_iff_not_divides
  32. 0032exact hp
  33. 0033exact hc_nonzero
  34. 0034exact hvaluation
  35. 0035cases hbridge
  36. 0036have hpackage : ∃ lb. ∃ lc. ∃ rb. ∃ rc. ∃ tb. ∃ tc. ∃ cb. ∃ cc. PowerQuotPrefix(p,a,lb,lc,a + b) ∧ (PowerQuotPrefix(p,b,rb,rc,a + b) ∧ (PowerQuotPrefix(p,a + b,tb,tc,a + b) ∧ ((∀ x. Lt(x,a + b) → ∃ y. ∃ z. ∃ n. ∃ m. BetaAt(lb,lc,x,y) ∧ (BetaAt(rb,rc,x,z) ∧ (BetaAt(tb,tc,x,n) ∧ (BetaAt(cb,cc,x,m) ∧ (m = 0 ∧ n = y + z ∨ m = 1 ∧ n = S (y + z)))))) ∧ BitCount(cb,cc,a + b,v))))
    Exact native replay linehave hpackage : exists lb lc rb rc tb tc cb cc. (forall bls_index_kmccfnd_left. (exists bls_gap_kmccfnd_left_bound. bls_gap_kmccfnd_left_bound + S (bls_index_kmccfnd_left) = (a + b)) -> exists bls_power_kmccfnd_left bls_quotient_kmccfnd_left bls_remainder_kmccfnd_left. ((exists bpvi_b_bls_kmccfnd_left_power bpvi_c_bls_kmccfnd_left_power. ((forall bpvi_i_bls_kmccfnd_left_power. (exists bpvi_repeat_gap_bls_kmccfnd_left_power. bpvi_repeat_gap_bls_kmccfnd_left_power + S bpvi_i_bls_kmccfnd_left_power = S bls_index_kmccfnd_left) -> (((exists bpvi_h_bls_kmccfnd_left_power_repeat. bpvi_h_bls_kmccfnd_left_power_repeat + S (p) = S ((S (bpvi_i_bls_kmccfnd_left_power)) * bpvi_c_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_repeat. bpvi_b_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_repeat * S ((S (bpvi_i_bls_kmccfnd_left_power)) * bpvi_c_bls_kmccfnd_left_power) + (p)))) /\ (exists bpvi_u_bls_kmccfnd_left_power bpvi_v_bls_kmccfnd_left_power. ((((exists bpvi_h_bls_kmccfnd_left_power_start. bpvi_h_bls_kmccfnd_left_power_start + S (1) = S ((S (0)) * bpvi_v_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_start. bpvi_u_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_start * S ((S (0)) * bpvi_v_bls_kmccfnd_left_power) + (1))) /\ ((((exists bpvi_h_bls_kmccfnd_left_power_terminal. bpvi_h_bls_kmccfnd_left_power_terminal + S (bls_power_kmccfnd_left) = S ((S (S bls_index_kmccfnd_left)) * bpvi_v_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_terminal. bpvi_u_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_terminal * S ((S (S bls_index_kmccfnd_left)) * bpvi_v_bls_kmccfnd_left_power) + (bls_power_kmccfnd_left))) /\ forall bpvi_j_bls_kmccfnd_left_power. (exists bpvi_product_gap_bls_kmccfnd_left_power. bpvi_product_gap_bls_kmccfnd_left_power + S bpvi_j_bls_kmccfnd_left_power = S bls_index_kmccfnd_left) -> exists bpvi_factor_bls_kmccfnd_left_power bpvi_partial_bls_kmccfnd_left_power bpvi_successor_bls_kmccfnd_left_power. ((((exists bpvi_h_bls_kmccfnd_left_power_factor. bpvi_h_bls_kmccfnd_left_power_factor + S (bpvi_factor_bls_kmccfnd_left_power) = S ((S (bpvi_j_bls_kmccfnd_left_power)) * bpvi_c_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_factor. bpvi_b_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_factor * S ((S (bpvi_j_bls_kmccfnd_left_power)) * bpvi_c_bls_kmccfnd_left_power) + (bpvi_factor_bls_kmccfnd_left_power))) /\ ((((exists bpvi_h_bls_kmccfnd_left_power_partial. bpvi_h_bls_kmccfnd_left_power_partial + S (bpvi_partial_bls_kmccfnd_left_power) = S ((S (bpvi_j_bls_kmccfnd_left_power)) * bpvi_v_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_partial. bpvi_u_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_partial * S ((S (bpvi_j_bls_kmccfnd_left_power)) * bpvi_v_bls_kmccfnd_left_power) + (bpvi_partial_bls_kmccfnd_left_power))) /\ ((((exists bpvi_h_bls_kmccfnd_left_power_successor. bpvi_h_bls_kmccfnd_left_power_successor + S (bpvi_successor_bls_kmccfnd_left_power) = S ((S (S bpvi_j_bls_kmccfnd_left_power)) * bpvi_v_bls_kmccfnd_left_power)) /\ exists bpvi_q_bls_kmccfnd_left_power_successor. bpvi_u_bls_kmccfnd_left_power = bpvi_q_bls_kmccfnd_left_power_successor * S ((S (S bpvi_j_bls_kmccfnd_left_power)) * bpvi_v_bls_kmccfnd_left_power) + (bpvi_successor_bls_kmccfnd_left_power))) /\ bpvi_successor_bls_kmccfnd_left_power = bpvi_partial_bls_kmccfnd_left_power * bpvi_factor_bls_kmccfnd_left_power)))))))) /\ ((((exists ff_h_bls_kmccfnd_left_quotient_entry. ff_h_bls_kmccfnd_left_quotient_entry + S (bls_quotient_kmccfnd_left) = S ((S (bls_index_kmccfnd_left)) * lc)) /\ exists ff_q_bls_kmccfnd_left_quotient_entry. lb = ff_q_bls_kmccfnd_left_quotient_entry * S ((S (bls_index_kmccfnd_left)) * lc) + (bls_quotient_kmccfnd_left))) /\ ((a = bls_power_kmccfnd_left * bls_quotient_kmccfnd_left + bls_remainder_kmccfnd_left /\ exists bls_remainder_gap_kmccfnd_left_division. bls_remainder_gap_kmccfnd_left_division + S (bls_remainder_kmccfnd_left) = bls_power_kmccfnd_left))))) /\ ((forall bls_index_kmccfnd_right. (exists bls_gap_kmccfnd_right_bound. bls_gap_kmccfnd_right_bound + S (bls_index_kmccfnd_right) = (a + b)) -> exists bls_power_kmccfnd_right bls_quotient_kmccfnd_right bls_remainder_kmccfnd_right. ((exists bpvi_b_bls_kmccfnd_right_power bpvi_c_bls_kmccfnd_right_power. ((forall bpvi_i_bls_kmccfnd_right_power. (exists bpvi_repeat_gap_bls_kmccfnd_right_power. bpvi_repeat_gap_bls_kmccfnd_right_power + S bpvi_i_bls_kmccfnd_right_power = S bls_index_kmccfnd_right) -> (((exists bpvi_h_bls_kmccfnd_right_power_repeat. bpvi_h_bls_kmccfnd_right_power_repeat + S (p) = S ((S (bpvi_i_bls_kmccfnd_right_power)) * bpvi_c_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_repeat. bpvi_b_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_repeat * S ((S (bpvi_i_bls_kmccfnd_right_power)) * bpvi_c_bls_kmccfnd_right_power) + (p)))) /\ (exists bpvi_u_bls_kmccfnd_right_power bpvi_v_bls_kmccfnd_right_power. ((((exists bpvi_h_bls_kmccfnd_right_power_start. bpvi_h_bls_kmccfnd_right_power_start + S (1) = S ((S (0)) * bpvi_v_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_start. bpvi_u_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_start * S ((S (0)) * bpvi_v_bls_kmccfnd_right_power) + (1))) /\ ((((exists bpvi_h_bls_kmccfnd_right_power_terminal. bpvi_h_bls_kmccfnd_right_power_terminal + S (bls_power_kmccfnd_right) = S ((S (S bls_index_kmccfnd_right)) * bpvi_v_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_terminal. bpvi_u_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_terminal * S ((S (S bls_index_kmccfnd_right)) * bpvi_v_bls_kmccfnd_right_power) + (bls_power_kmccfnd_right))) /\ forall bpvi_j_bls_kmccfnd_right_power. (exists bpvi_product_gap_bls_kmccfnd_right_power. bpvi_product_gap_bls_kmccfnd_right_power + S bpvi_j_bls_kmccfnd_right_power = S bls_index_kmccfnd_right) -> exists bpvi_factor_bls_kmccfnd_right_power bpvi_partial_bls_kmccfnd_right_power bpvi_successor_bls_kmccfnd_right_power. ((((exists bpvi_h_bls_kmccfnd_right_power_factor. bpvi_h_bls_kmccfnd_right_power_factor + S (bpvi_factor_bls_kmccfnd_right_power) = S ((S (bpvi_j_bls_kmccfnd_right_power)) * bpvi_c_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_factor. bpvi_b_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_factor * S ((S (bpvi_j_bls_kmccfnd_right_power)) * bpvi_c_bls_kmccfnd_right_power) + (bpvi_factor_bls_kmccfnd_right_power))) /\ ((((exists bpvi_h_bls_kmccfnd_right_power_partial. bpvi_h_bls_kmccfnd_right_power_partial + S (bpvi_partial_bls_kmccfnd_right_power) = S ((S (bpvi_j_bls_kmccfnd_right_power)) * bpvi_v_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_partial. bpvi_u_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_partial * S ((S (bpvi_j_bls_kmccfnd_right_power)) * bpvi_v_bls_kmccfnd_right_power) + (bpvi_partial_bls_kmccfnd_right_power))) /\ ((((exists bpvi_h_bls_kmccfnd_right_power_successor. bpvi_h_bls_kmccfnd_right_power_successor + S (bpvi_successor_bls_kmccfnd_right_power) = S ((S (S bpvi_j_bls_kmccfnd_right_power)) * bpvi_v_bls_kmccfnd_right_power)) /\ exists bpvi_q_bls_kmccfnd_right_power_successor. bpvi_u_bls_kmccfnd_right_power = bpvi_q_bls_kmccfnd_right_power_successor * S ((S (S bpvi_j_bls_kmccfnd_right_power)) * bpvi_v_bls_kmccfnd_right_power) + (bpvi_successor_bls_kmccfnd_right_power))) /\ bpvi_successor_bls_kmccfnd_right_power = bpvi_partial_bls_kmccfnd_right_power * bpvi_factor_bls_kmccfnd_right_power)))))))) /\ ((((exists ff_h_bls_kmccfnd_right_quotient_entry. ff_h_bls_kmccfnd_right_quotient_entry + S (bls_quotient_kmccfnd_right) = S ((S (bls_index_kmccfnd_right)) * rc)) /\ exists ff_q_bls_kmccfnd_right_quotient_entry. rb = ff_q_bls_kmccfnd_right_quotient_entry * S ((S (bls_index_kmccfnd_right)) * rc) + (bls_quotient_kmccfnd_right))) /\ ((b = bls_power_kmccfnd_right * bls_quotient_kmccfnd_right + bls_remainder_kmccfnd_right /\ exists bls_remainder_gap_kmccfnd_right_division. bls_remainder_gap_kmccfnd_right_division + S (bls_remainder_kmccfnd_right) = bls_power_kmccfnd_right))))) /\ ((forall bls_index_kmccfnd_total. (exists bls_gap_kmccfnd_total_bound. bls_gap_kmccfnd_total_bound + S (bls_index_kmccfnd_total) = (a + b)) -> exists bls_power_kmccfnd_total bls_quotient_kmccfnd_total bls_remainder_kmccfnd_total. ((exists bpvi_b_bls_kmccfnd_total_power bpvi_c_bls_kmccfnd_total_power. ((forall bpvi_i_bls_kmccfnd_total_power. (exists bpvi_repeat_gap_bls_kmccfnd_total_power. bpvi_repeat_gap_bls_kmccfnd_total_power + S bpvi_i_bls_kmccfnd_total_power = S bls_index_kmccfnd_total) -> (((exists bpvi_h_bls_kmccfnd_total_power_repeat. bpvi_h_bls_kmccfnd_total_power_repeat + S (p) = S ((S (bpvi_i_bls_kmccfnd_total_power)) * bpvi_c_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_repeat. bpvi_b_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_repeat * S ((S (bpvi_i_bls_kmccfnd_total_power)) * bpvi_c_bls_kmccfnd_total_power) + (p)))) /\ (exists bpvi_u_bls_kmccfnd_total_power bpvi_v_bls_kmccfnd_total_power. ((((exists bpvi_h_bls_kmccfnd_total_power_start. bpvi_h_bls_kmccfnd_total_power_start + S (1) = S ((S (0)) * bpvi_v_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_start. bpvi_u_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_start * S ((S (0)) * bpvi_v_bls_kmccfnd_total_power) + (1))) /\ ((((exists bpvi_h_bls_kmccfnd_total_power_terminal. bpvi_h_bls_kmccfnd_total_power_terminal + S (bls_power_kmccfnd_total) = S ((S (S bls_index_kmccfnd_total)) * bpvi_v_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_terminal. bpvi_u_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_terminal * S ((S (S bls_index_kmccfnd_total)) * bpvi_v_bls_kmccfnd_total_power) + (bls_power_kmccfnd_total))) /\ forall bpvi_j_bls_kmccfnd_total_power. (exists bpvi_product_gap_bls_kmccfnd_total_power. bpvi_product_gap_bls_kmccfnd_total_power + S bpvi_j_bls_kmccfnd_total_power = S bls_index_kmccfnd_total) -> exists bpvi_factor_bls_kmccfnd_total_power bpvi_partial_bls_kmccfnd_total_power bpvi_successor_bls_kmccfnd_total_power. ((((exists bpvi_h_bls_kmccfnd_total_power_factor. bpvi_h_bls_kmccfnd_total_power_factor + S (bpvi_factor_bls_kmccfnd_total_power) = S ((S (bpvi_j_bls_kmccfnd_total_power)) * bpvi_c_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_factor. bpvi_b_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_factor * S ((S (bpvi_j_bls_kmccfnd_total_power)) * bpvi_c_bls_kmccfnd_total_power) + (bpvi_factor_bls_kmccfnd_total_power))) /\ ((((exists bpvi_h_bls_kmccfnd_total_power_partial. bpvi_h_bls_kmccfnd_total_power_partial + S (bpvi_partial_bls_kmccfnd_total_power) = S ((S (bpvi_j_bls_kmccfnd_total_power)) * bpvi_v_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_partial. bpvi_u_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_partial * S ((S (bpvi_j_bls_kmccfnd_total_power)) * bpvi_v_bls_kmccfnd_total_power) + (bpvi_partial_bls_kmccfnd_total_power))) /\ ((((exists bpvi_h_bls_kmccfnd_total_power_successor. bpvi_h_bls_kmccfnd_total_power_successor + S (bpvi_successor_bls_kmccfnd_total_power) = S ((S (S bpvi_j_bls_kmccfnd_total_power)) * bpvi_v_bls_kmccfnd_total_power)) /\ exists bpvi_q_bls_kmccfnd_total_power_successor. bpvi_u_bls_kmccfnd_total_power = bpvi_q_bls_kmccfnd_total_power_successor * S ((S (S bpvi_j_bls_kmccfnd_total_power)) * bpvi_v_bls_kmccfnd_total_power) + (bpvi_successor_bls_kmccfnd_total_power))) /\ bpvi_successor_bls_kmccfnd_total_power = bpvi_partial_bls_kmccfnd_total_power * bpvi_factor_bls_kmccfnd_total_power)))))))) /\ ((((exists ff_h_bls_kmccfnd_total_quotient_entry. ff_h_bls_kmccfnd_total_quotient_entry + S (bls_quotient_kmccfnd_total) = S ((S (bls_index_kmccfnd_total)) * tc)) /\ exists ff_q_bls_kmccfnd_total_quotient_entry. tb = ff_q_bls_kmccfnd_total_quotient_entry * S ((S (bls_index_kmccfnd_total)) * tc) + (bls_quotient_kmccfnd_total))) /\ ((a + b = bls_power_kmccfnd_total * bls_quotient_kmccfnd_total + bls_remainder_kmccfnd_total /\ exists bls_remainder_gap_kmccfnd_total_division. bls_remainder_gap_kmccfnd_total_division + S (bls_remainder_kmccfnd_total) = bls_power_kmccfnd_total))))) /\ ((forall kmc_index_kmccfnd_carries. (exists bcf_lt_gap_kmccfnd_carries_bound. bcf_lt_gap_kmccfnd_carries_bound + S (kmc_index_kmccfnd_carries) = a + b) -> exists kmc_left_kmccfnd_carries kmc_right_kmccfnd_carries kmc_total_kmccfnd_carries kmc_bit_kmccfnd_carries. (((exists fs_h_kmccfnd_carries_left. fs_h_kmccfnd_carries_left + S (kmc_left_kmccfnd_carries) = S ((S (kmc_index_kmccfnd_carries)) * lc)) /\ exists fs_q_kmccfnd_carries_left. lb = fs_q_kmccfnd_carries_left * S ((S (kmc_index_kmccfnd_carries)) * lc) + (kmc_left_kmccfnd_carries))) /\ ((((exists fs_h_kmccfnd_carries_right. fs_h_kmccfnd_carries_right + S (kmc_right_kmccfnd_carries) = S ((S (kmc_index_kmccfnd_carries)) * rc)) /\ exists fs_q_kmccfnd_carries_right. rb = fs_q_kmccfnd_carries_right * S ((S (kmc_index_kmccfnd_carries)) * rc) + (kmc_right_kmccfnd_carries))) /\ ((((exists fs_h_kmccfnd_carries_total. fs_h_kmccfnd_carries_total + S (kmc_total_kmccfnd_carries) = S ((S (kmc_index_kmccfnd_carries)) * tc)) /\ exists fs_q_kmccfnd_carries_total. tb = fs_q_kmccfnd_carries_total * S ((S (kmc_index_kmccfnd_carries)) * tc) + (kmc_total_kmccfnd_carries))) /\ ((((exists fs_h_kmccfnd_carries_bit. fs_h_kmccfnd_carries_bit + S (kmc_bit_kmccfnd_carries) = S ((S (kmc_index_kmccfnd_carries)) * cc)) /\ exists fs_q_kmccfnd_carries_bit. cb = fs_q_kmccfnd_carries_bit * S ((S (kmc_index_kmccfnd_carries)) * cc) + (kmc_bit_kmccfnd_carries))) /\ (((kmc_bit_kmccfnd_carries = 0 /\ kmc_total_kmccfnd_carries = kmc_left_kmccfnd_carries + kmc_right_kmccfnd_carries) \/ (kmc_bit_kmccfnd_carries = 1 /\ kmc_total_kmccfnd_carries = S (kmc_left_kmccfnd_carries + kmc_right_kmccfnd_carries)))))))) /\ (((exists ff_u_kmccfnd_count_sum ff_v_kmccfnd_count_sum. ((((exists ff_h_kmccfnd_count_sum_start. ff_h_kmccfnd_count_sum_start + S (0) = S ((S (0)) * ff_v_kmccfnd_count_sum)) /\ exists ff_q_kmccfnd_count_sum_start. ff_u_kmccfnd_count_sum = ff_q_kmccfnd_count_sum_start * S ((S (0)) * ff_v_kmccfnd_count_sum) + (0))) /\ ((((exists ff_h_kmccfnd_count_sum_terminal. ff_h_kmccfnd_count_sum_terminal + S ((v)) = S ((S ((a + b))) * ff_v_kmccfnd_count_sum)) /\ exists ff_q_kmccfnd_count_sum_terminal. ff_u_kmccfnd_count_sum = ff_q_kmccfnd_count_sum_terminal * S ((S ((a + b))) * ff_v_kmccfnd_count_sum) + ((v)))) /\ forall ff_i_kmccfnd_count_sum. (exists ff_lt_kmccfnd_count_sum_bound. ff_lt_kmccfnd_count_sum_bound + S ff_i_kmccfnd_count_sum = (a + b)) -> exists ff_a_kmccfnd_count_sum ff_r_kmccfnd_count_sum ff_s_kmccfnd_count_sum. ((((exists ff_h_kmccfnd_count_sum_summand. ff_h_kmccfnd_count_sum_summand + S (ff_a_kmccfnd_count_sum) = S ((S (ff_i_kmccfnd_count_sum)) * cc)) /\ exists ff_q_kmccfnd_count_sum_summand. cb = ff_q_kmccfnd_count_sum_summand * S ((S (ff_i_kmccfnd_count_sum)) * cc) + (ff_a_kmccfnd_count_sum))) /\ ((((exists ff_h_kmccfnd_count_sum_partial. ff_h_kmccfnd_count_sum_partial + S (ff_r_kmccfnd_count_sum) = S ((S (ff_i_kmccfnd_count_sum)) * ff_v_kmccfnd_count_sum)) /\ exists ff_q_kmccfnd_count_sum_partial. ff_u_kmccfnd_count_sum = ff_q_kmccfnd_count_sum_partial * S ((S (ff_i_kmccfnd_count_sum)) * ff_v_kmccfnd_count_sum) + (ff_r_kmccfnd_count_sum))) /\ ((((exists ff_h_kmccfnd_count_sum_successor. ff_h_kmccfnd_count_sum_successor + S (ff_s_kmccfnd_count_sum) = S ((S (S ff_i_kmccfnd_count_sum)) * ff_v_kmccfnd_count_sum)) /\ exists ff_q_kmccfnd_count_sum_successor. ff_u_kmccfnd_count_sum = ff_q_kmccfnd_count_sum_successor * S ((S (S ff_i_kmccfnd_count_sum)) * ff_v_kmccfnd_count_sum) + (ff_s_kmccfnd_count_sum))) /\ ff_s_kmccfnd_count_sum = ff_r_kmccfnd_count_sum + ff_a_kmccfnd_count_sum)))))) /\ (forall ff_i_kmccfnd_count_bits. (exists ff_lt_kmccfnd_count_bits_bound. ff_lt_kmccfnd_count_bits_bound + S ff_i_kmccfnd_count_bits = (a + b)) -> exists ff_bit_kmccfnd_count_bits. ((((exists ff_h_kmccfnd_count_bits_decoded. ff_h_kmccfnd_count_bits_decoded + S (ff_bit_kmccfnd_count_bits) = S ((S (ff_i_kmccfnd_count_bits)) * cc)) /\ exists ff_q_kmccfnd_count_bits_decoded. cb = ff_q_kmccfnd_count_bits_decoded * S ((S (ff_i_kmccfnd_count_bits)) * cc) + (ff_bit_kmccfnd_count_bits))) /\ (ff_bit_kmccfnd_count_bits = 0 \/ ff_bit_kmccfnd_count_bits = 1))))))))
  37. 0037specialize kummer_binomial_carry_bit_count p
  38. 0038specialize kummer_binomial_carry_bit_count a
  39. 0039specialize kummer_binomial_carry_bit_count b
  40. 0040specialize kummer_binomial_carry_bit_count C
  41. 0041specialize kummer_binomial_carry_bit_count v
  42. 0042apply kummer_binomial_carry_bit_count
  43. 0043exact hp
  44. 0044exact hchoose
  45. 0045exact hvaluation
  46. 0046cases hpackage
  47. 0047cases hpackage_witness
  48. 0048cases hpackage_witness_witness
  49. 0049cases hpackage_witness_witness_witness
  50. 0050cases hpackage_witness_witness_witness_witness
  51. 0051cases hpackage_witness_witness_witness_witness_witness
  52. 0052cases hpackage_witness_witness_witness_witness_witness_witness
  53. 0053cases hpackage_witness_witness_witness_witness_witness_witness_witness
  54. 0054cases hpackage_witness_witness_witness_witness_witness_witness_witness_witness
  55. 0055cases hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right
  56. 0056cases hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right
  57. 0057cases hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
  58. 0058exists x
  59. 0059exists x1
  60. 0060exists x2
  61. 0061exists x3
  62. 0062exists x4
  63. 0063exists x5
  64. 0064exists x6
  65. 0065exists x7
  66. 0066split
  67. 0067exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_left
  68. 0068split
  69. 0069exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  70. 0070split
  71. 0071exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  72. 0072split
  73. 0073exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  74. 0074split
  75. 0075exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  76. 0076split
  77. 0077intro hzero_count
  78. 0078intro hdivides
  79. 0079apply hbridge_left
  80. 0080specialize bit_count_functional x6
  81. 0081specialize bit_count_functional x7
  82. 0082specialize bit_count_functional (a + b)
  83. 0083specialize bit_count_functional v
  84. 0084specialize bit_count_functional 0
  85. 0085apply bit_count_functional
  86. 0086exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  87. 0087exact hzero_count
  88. 0088exact hdivides
  89. 0089intro hnotdivides
  90. 0090have hv_zero : v = 0
  91. 0091apply hbridge_right
  92. 0092exact hnotdivides
  93. 0093rewrite hv_zero at hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  94. 0094rewrite hv_zero at hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  95. 0095exact hpackage_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right