BT00YD · Bertrand theorem

central_binom_prime_valuation_zero_of_exact_double_quotients

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

An all-zero carry prefix forces the exact central valuation to zero.

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. ∀ C. ∀ v. ∀ q. ∀ r. ∀ R. ∀ s. Prime(p)CentralBinom(n,C)PowerValuation(p,C,v)Lt(0,p)Pow(p,2,s)Lt(n + n,s)DivRem(n,p,q,r)DivRem(n + n,p,q + q,R) → v = 0

Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.

Definitions used by this theorem

In the theorem statement

8 occurrences

In local proof propositions

12 occurrences

Exact expanded native-PA statement
forall p n C v q r R s. ((~(p = 1) /\ forall frm_prime_left_bcpvzeq_prime frm_prime_right_bcpvzeq_prime. p = frm_prime_left_bcpvzeq_prime * frm_prime_right_bcpvzeq_prime -> frm_prime_left_bcpvzeq_prime = 1 \/ frm_prime_right_bcpvzeq_prime = 1)) -> (((exists bcf_lt_gap_bcpvzeq_central_out_of_range. bcf_lt_gap_bcpvzeq_central_out_of_range + S (n + n) = n) /\ C = 0) \/ ((exists bcf_le_gap_bcpvzeq_central_in_range. bcf_le_gap_bcpvzeq_central_in_range + (n) = n + n) /\ (exists bcf_row_code_code_bcpvzeq_central bcf_row_code_scale_bcpvzeq_central bcf_row_scale_code_bcpvzeq_central bcf_row_scale_scale_bcpvzeq_central bcf_row_code_bcpvzeq_central bcf_row_scale_bcpvzeq_central. ((forall bcf_row_index_bcpvzeq_central_table. (exists bcf_lt_gap_bcpvzeq_central_table_row_bound. bcf_lt_gap_bcpvzeq_central_table_row_bound + S (bcf_row_index_bcpvzeq_central_table) = S (n + n)) -> exists bcf_row_code_bcpvzeq_central_table bcf_row_scale_bcpvzeq_central_table. ((((exists bcf_height_bcpvzeq_central_table_decoded_row_code. bcf_height_bcpvzeq_central_table_decoded_row_code + S (bcf_row_code_bcpvzeq_central_table) = S ((S (bcf_row_index_bcpvzeq_central_table)) * bcf_row_code_scale_bcpvzeq_central)) /\ exists bcf_quotient_bcpvzeq_central_table_decoded_row_code. bcf_row_code_code_bcpvzeq_central = bcf_quotient_bcpvzeq_central_table_decoded_row_code * S ((S (bcf_row_index_bcpvzeq_central_table)) * bcf_row_code_scale_bcpvzeq_central) + (bcf_row_code_bcpvzeq_central_table))) /\ ((((exists bcf_height_bcpvzeq_central_table_decoded_row_scale. bcf_height_bcpvzeq_central_table_decoded_row_scale + S (bcf_row_scale_bcpvzeq_central_table) = S ((S (bcf_row_index_bcpvzeq_central_table)) * bcf_row_scale_scale_bcpvzeq_central)) /\ exists bcf_quotient_bcpvzeq_central_table_decoded_row_scale. bcf_row_scale_code_bcpvzeq_central = bcf_quotient_bcpvzeq_central_table_decoded_row_scale * S ((S (bcf_row_index_bcpvzeq_central_table)) * bcf_row_scale_scale_bcpvzeq_central) + (bcf_row_scale_bcpvzeq_central_table))) /\ ((bcf_row_index_bcpvzeq_central_table = 0 /\ (forall bcf_index_bcpvzeq_central_table_zero_row. (exists bcf_lt_gap_bcpvzeq_central_table_zero_row_bound. bcf_lt_gap_bcpvzeq_central_table_zero_row_bound + S (bcf_index_bcpvzeq_central_table_zero_row) = S (n + n)) -> exists bcf_value_bcpvzeq_central_table_zero_row. ((((exists bcf_height_bcpvzeq_central_table_zero_row_entry. bcf_height_bcpvzeq_central_table_zero_row_entry + S (bcf_value_bcpvzeq_central_table_zero_row) = S ((S (bcf_index_bcpvzeq_central_table_zero_row)) * bcf_row_scale_bcpvzeq_central_table)) /\ exists bcf_quotient_bcpvzeq_central_table_zero_row_entry. bcf_row_code_bcpvzeq_central_table = bcf_quotient_bcpvzeq_central_table_zero_row_entry * S ((S (bcf_index_bcpvzeq_central_table_zero_row)) * bcf_row_scale_bcpvzeq_central_table) + (bcf_value_bcpvzeq_central_table_zero_row))) /\ ((bcf_index_bcpvzeq_central_table_zero_row = 0 /\ bcf_value_bcpvzeq_central_table_zero_row = 1) \/ exists bcf_predecessor_bcpvzeq_central_table_zero_row. bcf_index_bcpvzeq_central_table_zero_row = S bcf_predecessor_bcpvzeq_central_table_zero_row /\ bcf_value_bcpvzeq_central_table_zero_row = 0)))) \/ exists bcf_predecessor_bcpvzeq_central_table bcf_previous_code_bcpvzeq_central_table bcf_previous_scale_bcpvzeq_central_table. bcf_row_index_bcpvzeq_central_table = S bcf_predecessor_bcpvzeq_central_table /\ ((((exists bcf_height_bcpvzeq_central_table_decoded_previous_code. bcf_height_bcpvzeq_central_table_decoded_previous_code + S (bcf_previous_code_bcpvzeq_central_table) = S ((S (bcf_predecessor_bcpvzeq_central_table)) * bcf_row_code_scale_bcpvzeq_central)) /\ exists bcf_quotient_bcpvzeq_central_table_decoded_previous_code. bcf_row_code_code_bcpvzeq_central = bcf_quotient_bcpvzeq_central_table_decoded_previous_code * S ((S (bcf_predecessor_bcpvzeq_central_table)) * bcf_row_code_scale_bcpvzeq_central) + (bcf_previous_code_bcpvzeq_central_table))) /\ ((((exists bcf_height_bcpvzeq_central_table_decoded_previous_scale. bcf_height_bcpvzeq_central_table_decoded_previous_scale + S (bcf_previous_scale_bcpvzeq_central_table) = S ((S (bcf_predecessor_bcpvzeq_central_table)) * bcf_row_scale_scale_bcpvzeq_central)) /\ exists bcf_quotient_bcpvzeq_central_table_decoded_previous_scale. bcf_row_scale_code_bcpvzeq_central = bcf_quotient_bcpvzeq_central_table_decoded_previous_scale * S ((S (bcf_predecessor_bcpvzeq_central_table)) * bcf_row_scale_scale_bcpvzeq_central) + (bcf_previous_scale_bcpvzeq_central_table))) /\ (forall bcf_index_bcpvzeq_central_table_row_step. (exists bcf_lt_gap_bcpvzeq_central_table_row_step_bound. bcf_lt_gap_bcpvzeq_central_table_row_step_bound + S (bcf_index_bcpvzeq_central_table_row_step) = S (n + n)) -> exists bcf_value_bcpvzeq_central_table_row_step. ((((exists bcf_height_bcpvzeq_central_table_row_step_entry. bcf_height_bcpvzeq_central_table_row_step_entry + S (bcf_value_bcpvzeq_central_table_row_step) = S ((S (bcf_index_bcpvzeq_central_table_row_step)) * bcf_row_scale_bcpvzeq_central_table)) /\ exists bcf_quotient_bcpvzeq_central_table_row_step_entry. bcf_row_code_bcpvzeq_central_table = bcf_quotient_bcpvzeq_central_table_row_step_entry * S ((S (bcf_index_bcpvzeq_central_table_row_step)) * bcf_row_scale_bcpvzeq_central_table) + (bcf_value_bcpvzeq_central_table_row_step))) /\ ((bcf_index_bcpvzeq_central_table_row_step = 0 /\ bcf_value_bcpvzeq_central_table_row_step = 1) \/ exists bcf_predecessor_bcpvzeq_central_table_row_step bcf_left_bcpvzeq_central_table_row_step bcf_right_bcpvzeq_central_table_row_step. bcf_index_bcpvzeq_central_table_row_step = S bcf_predecessor_bcpvzeq_central_table_row_step /\ ((((exists bcf_height_bcpvzeq_central_table_row_step_previous_left. bcf_height_bcpvzeq_central_table_row_step_previous_left + S (bcf_left_bcpvzeq_central_table_row_step) = S ((S (bcf_predecessor_bcpvzeq_central_table_row_step)) * bcf_previous_scale_bcpvzeq_central_table)) /\ exists bcf_quotient_bcpvzeq_central_table_row_step_previous_left. bcf_previous_code_bcpvzeq_central_table = bcf_quotient_bcpvzeq_central_table_row_step_previous_left * S ((S (bcf_predecessor_bcpvzeq_central_table_row_step)) * bcf_previous_scale_bcpvzeq_central_table) + (bcf_left_bcpvzeq_central_table_row_step))) /\ ((((exists bcf_height_bcpvzeq_central_table_row_step_previous_right. bcf_height_bcpvzeq_central_table_row_step_previous_right + S (bcf_right_bcpvzeq_central_table_row_step) = S ((S (S (bcf_predecessor_bcpvzeq_central_table_row_step))) * bcf_previous_scale_bcpvzeq_central_table)) /\ exists bcf_quotient_bcpvzeq_central_table_row_step_previous_right. bcf_previous_code_bcpvzeq_central_table = bcf_quotient_bcpvzeq_central_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcpvzeq_central_table_row_step))) * bcf_previous_scale_bcpvzeq_central_table) + (bcf_right_bcpvzeq_central_table_row_step))) /\ bcf_value_bcpvzeq_central_table_row_step = bcf_left_bcpvzeq_central_table_row_step + bcf_right_bcpvzeq_central_table_row_step))))))))))) /\ ((((exists bcf_height_bcpvzeq_central_decoded_row_code. bcf_height_bcpvzeq_central_decoded_row_code + S (bcf_row_code_bcpvzeq_central) = S ((S (n + n)) * bcf_row_code_scale_bcpvzeq_central)) /\ exists bcf_quotient_bcpvzeq_central_decoded_row_code. bcf_row_code_code_bcpvzeq_central = bcf_quotient_bcpvzeq_central_decoded_row_code * S ((S (n + n)) * bcf_row_code_scale_bcpvzeq_central) + (bcf_row_code_bcpvzeq_central))) /\ ((((exists bcf_height_bcpvzeq_central_decoded_row_scale. bcf_height_bcpvzeq_central_decoded_row_scale + S (bcf_row_scale_bcpvzeq_central) = S ((S (n + n)) * bcf_row_scale_scale_bcpvzeq_central)) /\ exists bcf_quotient_bcpvzeq_central_decoded_row_scale. bcf_row_scale_code_bcpvzeq_central = bcf_quotient_bcpvzeq_central_decoded_row_scale * S ((S (n + n)) * bcf_row_scale_scale_bcpvzeq_central) + (bcf_row_scale_bcpvzeq_central))) /\ (((exists bcf_height_bcpvzeq_central_decoded_value. bcf_height_bcpvzeq_central_decoded_value + S (C) = S ((S (n)) * bcf_row_scale_bcpvzeq_central)) /\ exists bcf_quotient_bcpvzeq_central_decoded_value. bcf_row_code_bcpvzeq_central = bcf_quotient_bcpvzeq_central_decoded_value * S ((S (n)) * bcf_row_scale_bcpvzeq_central) + (C))))))))) -> (((exists bpv_gap_bcpvzeq_valuation_exponent_bound. bpv_gap_bcpvzeq_valuation_exponent_bound + v = C) /\ (exists bpv_result_bcpvzeq_valuation_selected. ((exists ff_b_bcpvzeq_valuation_selected_power ff_c_bcpvzeq_valuation_selected_power. ((forall ff_i_bcpvzeq_valuation_selected_power_repeat. (exists ff_lt_bcpvzeq_valuation_selected_power_repeat_bound. ff_lt_bcpvzeq_valuation_selected_power_repeat_bound + S ff_i_bcpvzeq_valuation_selected_power_repeat = v) -> (((exists ff_h_bcpvzeq_valuation_selected_power_repeat_decoded. ff_h_bcpvzeq_valuation_selected_power_repeat_decoded + S (p) = S ((S (ff_i_bcpvzeq_valuation_selected_power_repeat)) * ff_c_bcpvzeq_valuation_selected_power)) /\ exists ff_q_bcpvzeq_valuation_selected_power_repeat_decoded. ff_b_bcpvzeq_valuation_selected_power = ff_q_bcpvzeq_valuation_selected_power_repeat_decoded * S ((S (ff_i_bcpvzeq_valuation_selected_power_repeat)) * ff_c_bcpvzeq_valuation_selected_power) + (p)))) /\ (exists ff_u_bcpvzeq_valuation_selected_power_product ff_v_bcpvzeq_valuation_selected_power_product. ((((exists ff_h_bcpvzeq_valuation_selected_power_product_start. ff_h_bcpvzeq_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_bcpvzeq_valuation_selected_power_product)) /\ exists ff_q_bcpvzeq_valuation_selected_power_product_start. ff_u_bcpvzeq_valuation_selected_power_product = ff_q_bcpvzeq_valuation_selected_power_product_start * S ((S (0)) * ff_v_bcpvzeq_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_bcpvzeq_valuation_selected_power_product_terminal. ff_h_bcpvzeq_valuation_selected_power_product_terminal + S (bpv_result_bcpvzeq_valuation_selected) = S ((S (v)) * ff_v_bcpvzeq_valuation_selected_power_product)) /\ exists ff_q_bcpvzeq_valuation_selected_power_product_terminal. ff_u_bcpvzeq_valuation_selected_power_product = ff_q_bcpvzeq_valuation_selected_power_product_terminal * S ((S (v)) * ff_v_bcpvzeq_valuation_selected_power_product) + (bpv_result_bcpvzeq_valuation_selected))) /\ forall ff_i_bcpvzeq_valuation_selected_power_product. (exists ff_lt_bcpvzeq_valuation_selected_power_product_bound. ff_lt_bcpvzeq_valuation_selected_power_product_bound + S ff_i_bcpvzeq_valuation_selected_power_product = v) -> exists ff_p_bcpvzeq_valuation_selected_power_product ff_r_bcpvzeq_valuation_selected_power_product ff_s_bcpvzeq_valuation_selected_power_product. ((((exists ff_h_bcpvzeq_valuation_selected_power_product_factor. ff_h_bcpvzeq_valuation_selected_power_product_factor + S (ff_p_bcpvzeq_valuation_selected_power_product) = S ((S (ff_i_bcpvzeq_valuation_selected_power_product)) * ff_c_bcpvzeq_valuation_selected_power)) /\ exists ff_q_bcpvzeq_valuation_selected_power_product_factor. ff_b_bcpvzeq_valuation_selected_power = ff_q_bcpvzeq_valuation_selected_power_product_factor * S ((S (ff_i_bcpvzeq_valuation_selected_power_product)) * ff_c_bcpvzeq_valuation_selected_power) + (ff_p_bcpvzeq_valuation_selected_power_product))) /\ ((((exists ff_h_bcpvzeq_valuation_selected_power_product_partial. ff_h_bcpvzeq_valuation_selected_power_product_partial + S (ff_r_bcpvzeq_valuation_selected_power_product) = S ((S (ff_i_bcpvzeq_valuation_selected_power_product)) * ff_v_bcpvzeq_valuation_selected_power_product)) /\ exists ff_q_bcpvzeq_valuation_selected_power_product_partial. ff_u_bcpvzeq_valuation_selected_power_product = ff_q_bcpvzeq_valuation_selected_power_product_partial * S ((S (ff_i_bcpvzeq_valuation_selected_power_product)) * ff_v_bcpvzeq_valuation_selected_power_product) + (ff_r_bcpvzeq_valuation_selected_power_product))) /\ ((((exists ff_h_bcpvzeq_valuation_selected_power_product_successor. ff_h_bcpvzeq_valuation_selected_power_product_successor + S (ff_s_bcpvzeq_valuation_selected_power_product) = S ((S (S ff_i_bcpvzeq_valuation_selected_power_product)) * ff_v_bcpvzeq_valuation_selected_power_product)) /\ exists ff_q_bcpvzeq_valuation_selected_power_product_successor. ff_u_bcpvzeq_valuation_selected_power_product = ff_q_bcpvzeq_valuation_selected_power_product_successor * S ((S (S ff_i_bcpvzeq_valuation_selected_power_product)) * ff_v_bcpvzeq_valuation_selected_power_product) + (ff_s_bcpvzeq_valuation_selected_power_product))) /\ ff_s_bcpvzeq_valuation_selected_power_product = ff_r_bcpvzeq_valuation_selected_power_product * ff_p_bcpvzeq_valuation_selected_power_product)))))))) /\ (exists bpv_factor_bcpvzeq_valuation_selected_divides. C = bpv_result_bcpvzeq_valuation_selected * bpv_factor_bcpvzeq_valuation_selected_divides)))) /\ forall bpv_candidate_bcpvzeq_valuation. (exists bpv_gap_bcpvzeq_valuation_candidate_bound. bpv_gap_bcpvzeq_valuation_candidate_bound + bpv_candidate_bcpvzeq_valuation = C) -> (exists bpv_result_bcpvzeq_valuation_candidate. ((exists ff_b_bcpvzeq_valuation_candidate_power ff_c_bcpvzeq_valuation_candidate_power. ((forall ff_i_bcpvzeq_valuation_candidate_power_repeat. (exists ff_lt_bcpvzeq_valuation_candidate_power_repeat_bound. ff_lt_bcpvzeq_valuation_candidate_power_repeat_bound + S ff_i_bcpvzeq_valuation_candidate_power_repeat = bpv_candidate_bcpvzeq_valuation) -> (((exists ff_h_bcpvzeq_valuation_candidate_power_repeat_decoded. ff_h_bcpvzeq_valuation_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_bcpvzeq_valuation_candidate_power_repeat)) * ff_c_bcpvzeq_valuation_candidate_power)) /\ exists ff_q_bcpvzeq_valuation_candidate_power_repeat_decoded. ff_b_bcpvzeq_valuation_candidate_power = ff_q_bcpvzeq_valuation_candidate_power_repeat_decoded * S ((S (ff_i_bcpvzeq_valuation_candidate_power_repeat)) * ff_c_bcpvzeq_valuation_candidate_power) + (p)))) /\ (exists ff_u_bcpvzeq_valuation_candidate_power_product ff_v_bcpvzeq_valuation_candidate_power_product. ((((exists ff_h_bcpvzeq_valuation_candidate_power_product_start. ff_h_bcpvzeq_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_bcpvzeq_valuation_candidate_power_product)) /\ exists ff_q_bcpvzeq_valuation_candidate_power_product_start. ff_u_bcpvzeq_valuation_candidate_power_product = ff_q_bcpvzeq_valuation_candidate_power_product_start * S ((S (0)) * ff_v_bcpvzeq_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_bcpvzeq_valuation_candidate_power_product_terminal. ff_h_bcpvzeq_valuation_candidate_power_product_terminal + S (bpv_result_bcpvzeq_valuation_candidate) = S ((S (bpv_candidate_bcpvzeq_valuation)) * ff_v_bcpvzeq_valuation_candidate_power_product)) /\ exists ff_q_bcpvzeq_valuation_candidate_power_product_terminal. ff_u_bcpvzeq_valuation_candidate_power_product = ff_q_bcpvzeq_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_bcpvzeq_valuation)) * ff_v_bcpvzeq_valuation_candidate_power_product) + (bpv_result_bcpvzeq_valuation_candidate))) /\ forall ff_i_bcpvzeq_valuation_candidate_power_product. (exists ff_lt_bcpvzeq_valuation_candidate_power_product_bound. ff_lt_bcpvzeq_valuation_candidate_power_product_bound + S ff_i_bcpvzeq_valuation_candidate_power_product = bpv_candidate_bcpvzeq_valuation) -> exists ff_p_bcpvzeq_valuation_candidate_power_product ff_r_bcpvzeq_valuation_candidate_power_product ff_s_bcpvzeq_valuation_candidate_power_product. ((((exists ff_h_bcpvzeq_valuation_candidate_power_product_factor. ff_h_bcpvzeq_valuation_candidate_power_product_factor + S (ff_p_bcpvzeq_valuation_candidate_power_product) = S ((S (ff_i_bcpvzeq_valuation_candidate_power_product)) * ff_c_bcpvzeq_valuation_candidate_power)) /\ exists ff_q_bcpvzeq_valuation_candidate_power_product_factor. ff_b_bcpvzeq_valuation_candidate_power = ff_q_bcpvzeq_valuation_candidate_power_product_factor * S ((S (ff_i_bcpvzeq_valuation_candidate_power_product)) * ff_c_bcpvzeq_valuation_candidate_power) + (ff_p_bcpvzeq_valuation_candidate_power_product))) /\ ((((exists ff_h_bcpvzeq_valuation_candidate_power_product_partial. ff_h_bcpvzeq_valuation_candidate_power_product_partial + S (ff_r_bcpvzeq_valuation_candidate_power_product) = S ((S (ff_i_bcpvzeq_valuation_candidate_power_product)) * ff_v_bcpvzeq_valuation_candidate_power_product)) /\ exists ff_q_bcpvzeq_valuation_candidate_power_product_partial. ff_u_bcpvzeq_valuation_candidate_power_product = ff_q_bcpvzeq_valuation_candidate_power_product_partial * S ((S (ff_i_bcpvzeq_valuation_candidate_power_product)) * ff_v_bcpvzeq_valuation_candidate_power_product) + (ff_r_bcpvzeq_valuation_candidate_power_product))) /\ ((((exists ff_h_bcpvzeq_valuation_candidate_power_product_successor. ff_h_bcpvzeq_valuation_candidate_power_product_successor + S (ff_s_bcpvzeq_valuation_candidate_power_product) = S ((S (S ff_i_bcpvzeq_valuation_candidate_power_product)) * ff_v_bcpvzeq_valuation_candidate_power_product)) /\ exists ff_q_bcpvzeq_valuation_candidate_power_product_successor. ff_u_bcpvzeq_valuation_candidate_power_product = ff_q_bcpvzeq_valuation_candidate_power_product_successor * S ((S (S ff_i_bcpvzeq_valuation_candidate_power_product)) * ff_v_bcpvzeq_valuation_candidate_power_product) + (ff_s_bcpvzeq_valuation_candidate_power_product))) /\ ff_s_bcpvzeq_valuation_candidate_power_product = ff_r_bcpvzeq_valuation_candidate_power_product * ff_p_bcpvzeq_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_bcpvzeq_valuation_candidate_divides. C = bpv_result_bcpvzeq_valuation_candidate * bpv_factor_bcpvzeq_valuation_candidate_divides))) -> (exists bpv_gap_bcpvzeq_valuation_maximal. bpv_gap_bcpvzeq_valuation_maximal + bpv_candidate_bcpvzeq_valuation = v)) -> (exists bcf_le_gap_bcpvzeq_base. bcf_le_gap_bcpvzeq_base + (1) = p) -> (exists bpvi_b_bcpvzeq_square bpvi_c_bcpvzeq_square. ((forall bpvi_i_bcpvzeq_square. (exists bpvi_repeat_gap_bcpvzeq_square. bpvi_repeat_gap_bcpvzeq_square + S bpvi_i_bcpvzeq_square = 2) -> (((exists bpvi_h_bcpvzeq_square_repeat. bpvi_h_bcpvzeq_square_repeat + S (p) = S ((S (bpvi_i_bcpvzeq_square)) * bpvi_c_bcpvzeq_square)) /\ exists bpvi_q_bcpvzeq_square_repeat. bpvi_b_bcpvzeq_square = bpvi_q_bcpvzeq_square_repeat * S ((S (bpvi_i_bcpvzeq_square)) * bpvi_c_bcpvzeq_square) + (p)))) /\ (exists bpvi_u_bcpvzeq_square bpvi_v_bcpvzeq_square. ((((exists bpvi_h_bcpvzeq_square_start. bpvi_h_bcpvzeq_square_start + S (1) = S ((S (0)) * bpvi_v_bcpvzeq_square)) /\ exists bpvi_q_bcpvzeq_square_start. bpvi_u_bcpvzeq_square = bpvi_q_bcpvzeq_square_start * S ((S (0)) * bpvi_v_bcpvzeq_square) + (1))) /\ ((((exists bpvi_h_bcpvzeq_square_terminal. bpvi_h_bcpvzeq_square_terminal + S (s) = S ((S (2)) * bpvi_v_bcpvzeq_square)) /\ exists bpvi_q_bcpvzeq_square_terminal. bpvi_u_bcpvzeq_square = bpvi_q_bcpvzeq_square_terminal * S ((S (2)) * bpvi_v_bcpvzeq_square) + (s))) /\ forall bpvi_j_bcpvzeq_square. (exists bpvi_product_gap_bcpvzeq_square. bpvi_product_gap_bcpvzeq_square + S bpvi_j_bcpvzeq_square = 2) -> exists bpvi_factor_bcpvzeq_square bpvi_partial_bcpvzeq_square bpvi_successor_bcpvzeq_square. ((((exists bpvi_h_bcpvzeq_square_factor. bpvi_h_bcpvzeq_square_factor + S (bpvi_factor_bcpvzeq_square) = S ((S (bpvi_j_bcpvzeq_square)) * bpvi_c_bcpvzeq_square)) /\ exists bpvi_q_bcpvzeq_square_factor. bpvi_b_bcpvzeq_square = bpvi_q_bcpvzeq_square_factor * S ((S (bpvi_j_bcpvzeq_square)) * bpvi_c_bcpvzeq_square) + (bpvi_factor_bcpvzeq_square))) /\ ((((exists bpvi_h_bcpvzeq_square_partial. bpvi_h_bcpvzeq_square_partial + S (bpvi_partial_bcpvzeq_square) = S ((S (bpvi_j_bcpvzeq_square)) * bpvi_v_bcpvzeq_square)) /\ exists bpvi_q_bcpvzeq_square_partial. bpvi_u_bcpvzeq_square = bpvi_q_bcpvzeq_square_partial * S ((S (bpvi_j_bcpvzeq_square)) * bpvi_v_bcpvzeq_square) + (bpvi_partial_bcpvzeq_square))) /\ ((((exists bpvi_h_bcpvzeq_square_successor. bpvi_h_bcpvzeq_square_successor + S (bpvi_successor_bcpvzeq_square) = S ((S (S bpvi_j_bcpvzeq_square)) * bpvi_v_bcpvzeq_square)) /\ exists bpvi_q_bcpvzeq_square_successor. bpvi_u_bcpvzeq_square = bpvi_q_bcpvzeq_square_successor * S ((S (S bpvi_j_bcpvzeq_square)) * bpvi_v_bcpvzeq_square) + (bpvi_successor_bcpvzeq_square))) /\ bpvi_successor_bcpvzeq_square = bpvi_partial_bcpvzeq_square * bpvi_factor_bcpvzeq_square)))))))) -> (exists bcf_lt_gap_bcpvzeq_strict. bcf_lt_gap_bcpvzeq_strict + S (n + n) = s) -> (((n) = (p) * (q) + (r) /\ (exists bcf_lt_gap_bcpvzeq_first_bound. bcf_lt_gap_bcpvzeq_first_bound + S (r) = p))) -> (((n + n) = (p) * (q + q) + (R) /\ (exists bcf_lt_gap_bcpvzeq_double_bound. bcf_lt_gap_bcpvzeq_double_bound + S (R) = p))) -> v = 0

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.

Read the argument

Proof checkpoints

89 script commands · 18 reading checkpoints · 5 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 (5)
01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro n
  3. L3
    intro C
  4. L4
    intro v
  5. L5
    intro q
  6. L6
    intro r
  7. L7
    intro R
  8. L8
    intro s
  9. L9
    intro hp
  10. L10
    intro hcentral
02Fix variables and assumptionsL11–16

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

  1. L11
    intro hvaluation
  2. L12
    intro hbase
  3. L13
    intro hsquare
  4. L14
    intro hstrict
  5. L15
    intro hfirst
  6. L16
    intro hdouble
03Establish hpackageL17–25

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

  1. L17
    have hpackage : ∃ b. ∃ c. ∃ d. ∃ e. ∃ f. ∃ g. PowerQuotPrefix(p,n,b,c,n + n) ∧ (PowerQuotPrefix(p,n + n,d,e,n + n) ∧ ((∀ x. Lt(x,n + n) → ∃ y. ∃ z. ∃ m. BetaAt(b,c,x,y) ∧ (BetaAt(d,e,x,z) ∧ (BetaAt(f,g,x,m) ∧ (m = 0 ∧ z = y + y ∨ m = 1 ∧ z = S (y + y))))) ∧ BitCount(f,g,n + n,v)))Definitions: PowerQuotPrefix(p,n,b,c,n + n)PowerQuotPrefix(p,n + n,d,e,n + n)Lt(x,n + n)BetaAt(b,c,x,y)BetaAt(d,e,x,z)BetaAt(f,g,x,m)BitCount(f,g,n + n,v)Original native command in the exact edition
  2. L18
    specialize central_binom_carry_bit_count p
  3. L19
    specialize central_binom_carry_bit_count n
  4. L20
    specialize central_binom_carry_bit_count C
  5. L21
    specialize central_binom_carry_bit_count v
  6. L22
    apply central_binom_carry_bit_count
  7. L23
    exact hp
  8. L24
    exact hcentral
  9. L25
    exact hvaluation
04Separate the logical casesL26–34

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

  1. L26
    cases hpackage
  2. L27
    cases hpackage_witness
  3. L28
    cases hpackage_witness_witness
  4. L29
    cases hpackage_witness_witness_witness
  5. L30
    cases hpackage_witness_witness_witness_witness
  6. L31
    cases hpackage_witness_witness_witness_witness_witness
  7. L32
    cases hpackage_witness_witness_witness_witness_witness_witness
  8. L33
    cases hpackage_witness_witness_witness_witness_witness_witness_right
  9. L34
    cases hpackage_witness_witness_witness_witness_witness_witness_right_right
05Use earlier factsL35–35

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

  1. L35
    specialize zero_or_succ v
06Separate the logical casesL36–36

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

  1. L36
    cases zero_or_succ
07Use earlier factsL37–37

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

  1. L37
    exact zero_or_succ_left
08Separate the logical casesL38–38

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

  1. L38
    cases zero_or_succ_right
09Calculate and transport equalitiesL39–40

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

  1. L39
    rewrite zero_or_succ_right_witness at hpackage_witness_witness_witness_witness_witness_witness_right_right_right
  2. L40
    rewrite zero_or_succ_right_witness at hpackage_witness_witness_witness_witness_witness_witness_right_right_right
10Establish hlastL41–47

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

  1. L41
    have hlast : ∃ i. Lt(i,n + n) ∧ (BetaAt(x4,x5,i,1) ∧ Lt(x6,S i))Definitions: Lt(i,n + n)BetaAt(x4,x5,i,1)Lt(x6,S i)Original native command in the exact edition
  2. L42
    specialize bit_count_positive_last_one x4
  3. L43
    specialize bit_count_positive_last_one x5
  4. L44
    specialize bit_count_positive_last_one (n + n)
  5. L45
    specialize bit_count_positive_last_one x6
  6. L46
    apply bit_count_positive_last_one
  7. L47
    exact hpackage_witness_witness_witness_witness_witness_witness_right_right_right
11Separate the logical casesL48–50

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

  1. L48
    cases hlast
  2. L49
    cases hlast_witness
  3. L50
    cases hlast_witness_right
12Establish hentriesL51–60

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

  1. L51
    have hentries : Repeat(x4,x5,0,n + n)Definitions: Repeat(x4,x5,0,n + n)Original native command in the exact edition
  2. L52
    specialize double_quotient_carry_prefix_entries_zero p
  3. L53
    specialize double_quotient_carry_prefix_entries_zero n
  4. L54
    specialize double_quotient_carry_prefix_entries_zero x
  5. L55
    specialize double_quotient_carry_prefix_entries_zero x1
  6. L56
    specialize double_quotient_carry_prefix_entries_zero x2
  7. L57
    specialize double_quotient_carry_prefix_entries_zero x3
  8. L58
    specialize double_quotient_carry_prefix_entries_zero x4
  9. L59
    specialize double_quotient_carry_prefix_entries_zero x5
  10. L60
    specialize double_quotient_carry_prefix_entries_zero (n + n)
13Use earlier factsL61–70

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

  1. L61
    specialize double_quotient_carry_prefix_entries_zero q
  2. L62
    specialize double_quotient_carry_prefix_entries_zero r
  3. L63
    specialize double_quotient_carry_prefix_entries_zero R
  4. L64
    specialize double_quotient_carry_prefix_entries_zero s
  5. L65
    apply double_quotient_carry_prefix_entries_zero
  6. L66
    exact hbase
  7. L67
    exact hsquare
  8. L68
    exact hstrict
  9. L69
    exact hpackage_witness_witness_witness_witness_witness_witness_left
  10. L70
    exact hpackage_witness_witness_witness_witness_witness_witness_right_left
14Use earlier factsL71–73

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

  1. L71
    exact hpackage_witness_witness_witness_witness_witness_witness_right_right_left
  2. L72
    exact hfirst
  3. L73
    exact hdouble
15Establish hzeroL74–77

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

  1. L74
    have hzero : BetaAt(x4,x5,x7,0)Definitions: BetaAt(x4,x5,x7,0)Original native command in the exact edition
  2. L75
    specialize hentries x7
  3. L76
    apply hentries
  4. L77
    exact hlast_witness_left
16Establish hone_zeroL78–86

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

  1. L78
    have hone_zero : 1 = 0
  2. L79
    specialize beta_at_unique x4
  3. L80
    specialize beta_at_unique x5
  4. L81
    specialize beta_at_unique x7
  5. L82
    specialize beta_at_unique 1
  6. L83
    specialize beta_at_unique 0
  7. L84
    apply beta_at_unique
  8. L85
    exact hlast_witness_right_left
  9. L86
    exact hzero
17Separate the logical casesL87–87

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

  1. L87
    exfalso
18Use earlier factsL88–89

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

  1. L88
    apply PA1
  2. L89
    exact hone_zero

Library-wide reading audit

Original defined command ledger · 89 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro C
  4. 0004intro v
  5. 0005intro q
  6. 0006intro r
  7. 0007intro R
  8. 0008intro s
  9. 0009intro hp
  10. 0010intro hcentral
  11. 0011intro hvaluation
  12. 0012intro hbase
  13. 0013intro hsquare
  14. 0014intro hstrict
  15. 0015intro hfirst
  16. 0016intro hdouble
  17. 0017have hpackage : ∃ b. ∃ c. ∃ d. ∃ e. ∃ f. ∃ g. PowerQuotPrefix(p,n,b,c,n + n) ∧ (PowerQuotPrefix(p,n + n,d,e,n + n) ∧ ((∀ x. Lt(x,n + n) → ∃ y. ∃ z. ∃ m. BetaAt(b,c,x,y) ∧ (BetaAt(d,e,x,z) ∧ (BetaAt(f,g,x,m) ∧ (m = 0 ∧ z = y + y ∨ m = 1 ∧ z = S (y + y))))) ∧ BitCount(f,g,n + n,v)))
    Exact native replay linehave hpackage : exists b c d e f g. (forall bls_index_bcpvzeq_left. (exists bls_gap_bcpvzeq_left_bound. bls_gap_bcpvzeq_left_bound + S (bls_index_bcpvzeq_left) = (n + n)) -> exists bls_power_bcpvzeq_left bls_quotient_bcpvzeq_left bls_remainder_bcpvzeq_left. ((exists bpvi_b_bls_bcpvzeq_left_power bpvi_c_bls_bcpvzeq_left_power. ((forall bpvi_i_bls_bcpvzeq_left_power. (exists bpvi_repeat_gap_bls_bcpvzeq_left_power. bpvi_repeat_gap_bls_bcpvzeq_left_power + S bpvi_i_bls_bcpvzeq_left_power = S bls_index_bcpvzeq_left) -> (((exists bpvi_h_bls_bcpvzeq_left_power_repeat. bpvi_h_bls_bcpvzeq_left_power_repeat + S (p) = S ((S (bpvi_i_bls_bcpvzeq_left_power)) * bpvi_c_bls_bcpvzeq_left_power)) /\ exists bpvi_q_bls_bcpvzeq_left_power_repeat. bpvi_b_bls_bcpvzeq_left_power = bpvi_q_bls_bcpvzeq_left_power_repeat * S ((S (bpvi_i_bls_bcpvzeq_left_power)) * bpvi_c_bls_bcpvzeq_left_power) + (p)))) /\ (exists bpvi_u_bls_bcpvzeq_left_power bpvi_v_bls_bcpvzeq_left_power. ((((exists bpvi_h_bls_bcpvzeq_left_power_start. bpvi_h_bls_bcpvzeq_left_power_start + S (1) = S ((S (0)) * bpvi_v_bls_bcpvzeq_left_power)) /\ exists bpvi_q_bls_bcpvzeq_left_power_start. bpvi_u_bls_bcpvzeq_left_power = bpvi_q_bls_bcpvzeq_left_power_start * S ((S (0)) * bpvi_v_bls_bcpvzeq_left_power) + (1))) /\ ((((exists bpvi_h_bls_bcpvzeq_left_power_terminal. bpvi_h_bls_bcpvzeq_left_power_terminal + S (bls_power_bcpvzeq_left) = S ((S (S bls_index_bcpvzeq_left)) * bpvi_v_bls_bcpvzeq_left_power)) /\ exists bpvi_q_bls_bcpvzeq_left_power_terminal. bpvi_u_bls_bcpvzeq_left_power = bpvi_q_bls_bcpvzeq_left_power_terminal * S ((S (S bls_index_bcpvzeq_left)) * bpvi_v_bls_bcpvzeq_left_power) + (bls_power_bcpvzeq_left))) /\ forall bpvi_j_bls_bcpvzeq_left_power. (exists bpvi_product_gap_bls_bcpvzeq_left_power. bpvi_product_gap_bls_bcpvzeq_left_power + S bpvi_j_bls_bcpvzeq_left_power = S bls_index_bcpvzeq_left) -> exists bpvi_factor_bls_bcpvzeq_left_power bpvi_partial_bls_bcpvzeq_left_power bpvi_successor_bls_bcpvzeq_left_power. ((((exists bpvi_h_bls_bcpvzeq_left_power_factor. bpvi_h_bls_bcpvzeq_left_power_factor + S (bpvi_factor_bls_bcpvzeq_left_power) = S ((S (bpvi_j_bls_bcpvzeq_left_power)) * bpvi_c_bls_bcpvzeq_left_power)) /\ exists bpvi_q_bls_bcpvzeq_left_power_factor. bpvi_b_bls_bcpvzeq_left_power = bpvi_q_bls_bcpvzeq_left_power_factor * S ((S (bpvi_j_bls_bcpvzeq_left_power)) * bpvi_c_bls_bcpvzeq_left_power) + (bpvi_factor_bls_bcpvzeq_left_power))) /\ ((((exists bpvi_h_bls_bcpvzeq_left_power_partial. bpvi_h_bls_bcpvzeq_left_power_partial + S (bpvi_partial_bls_bcpvzeq_left_power) = S ((S (bpvi_j_bls_bcpvzeq_left_power)) * bpvi_v_bls_bcpvzeq_left_power)) /\ exists bpvi_q_bls_bcpvzeq_left_power_partial. bpvi_u_bls_bcpvzeq_left_power = bpvi_q_bls_bcpvzeq_left_power_partial * S ((S (bpvi_j_bls_bcpvzeq_left_power)) * bpvi_v_bls_bcpvzeq_left_power) + (bpvi_partial_bls_bcpvzeq_left_power))) /\ ((((exists bpvi_h_bls_bcpvzeq_left_power_successor. bpvi_h_bls_bcpvzeq_left_power_successor + S (bpvi_successor_bls_bcpvzeq_left_power) = S ((S (S bpvi_j_bls_bcpvzeq_left_power)) * bpvi_v_bls_bcpvzeq_left_power)) /\ exists bpvi_q_bls_bcpvzeq_left_power_successor. bpvi_u_bls_bcpvzeq_left_power = bpvi_q_bls_bcpvzeq_left_power_successor * S ((S (S bpvi_j_bls_bcpvzeq_left_power)) * bpvi_v_bls_bcpvzeq_left_power) + (bpvi_successor_bls_bcpvzeq_left_power))) /\ bpvi_successor_bls_bcpvzeq_left_power = bpvi_partial_bls_bcpvzeq_left_power * bpvi_factor_bls_bcpvzeq_left_power)))))))) /\ ((((exists ff_h_bls_bcpvzeq_left_quotient_entry. ff_h_bls_bcpvzeq_left_quotient_entry + S (bls_quotient_bcpvzeq_left) = S ((S (bls_index_bcpvzeq_left)) * c)) /\ exists ff_q_bls_bcpvzeq_left_quotient_entry. b = ff_q_bls_bcpvzeq_left_quotient_entry * S ((S (bls_index_bcpvzeq_left)) * c) + (bls_quotient_bcpvzeq_left))) /\ ((n = bls_power_bcpvzeq_left * bls_quotient_bcpvzeq_left + bls_remainder_bcpvzeq_left /\ exists bls_remainder_gap_bcpvzeq_left_division. bls_remainder_gap_bcpvzeq_left_division + S (bls_remainder_bcpvzeq_left) = bls_power_bcpvzeq_left))))) /\ ((forall bls_index_bcpvzeq_right. (exists bls_gap_bcpvzeq_right_bound. bls_gap_bcpvzeq_right_bound + S (bls_index_bcpvzeq_right) = (n + n)) -> exists bls_power_bcpvzeq_right bls_quotient_bcpvzeq_right bls_remainder_bcpvzeq_right. ((exists bpvi_b_bls_bcpvzeq_right_power bpvi_c_bls_bcpvzeq_right_power. ((forall bpvi_i_bls_bcpvzeq_right_power. (exists bpvi_repeat_gap_bls_bcpvzeq_right_power. bpvi_repeat_gap_bls_bcpvzeq_right_power + S bpvi_i_bls_bcpvzeq_right_power = S bls_index_bcpvzeq_right) -> (((exists bpvi_h_bls_bcpvzeq_right_power_repeat. bpvi_h_bls_bcpvzeq_right_power_repeat + S (p) = S ((S (bpvi_i_bls_bcpvzeq_right_power)) * bpvi_c_bls_bcpvzeq_right_power)) /\ exists bpvi_q_bls_bcpvzeq_right_power_repeat. bpvi_b_bls_bcpvzeq_right_power = bpvi_q_bls_bcpvzeq_right_power_repeat * S ((S (bpvi_i_bls_bcpvzeq_right_power)) * bpvi_c_bls_bcpvzeq_right_power) + (p)))) /\ (exists bpvi_u_bls_bcpvzeq_right_power bpvi_v_bls_bcpvzeq_right_power. ((((exists bpvi_h_bls_bcpvzeq_right_power_start. bpvi_h_bls_bcpvzeq_right_power_start + S (1) = S ((S (0)) * bpvi_v_bls_bcpvzeq_right_power)) /\ exists bpvi_q_bls_bcpvzeq_right_power_start. bpvi_u_bls_bcpvzeq_right_power = bpvi_q_bls_bcpvzeq_right_power_start * S ((S (0)) * bpvi_v_bls_bcpvzeq_right_power) + (1))) /\ ((((exists bpvi_h_bls_bcpvzeq_right_power_terminal. bpvi_h_bls_bcpvzeq_right_power_terminal + S (bls_power_bcpvzeq_right) = S ((S (S bls_index_bcpvzeq_right)) * bpvi_v_bls_bcpvzeq_right_power)) /\ exists bpvi_q_bls_bcpvzeq_right_power_terminal. bpvi_u_bls_bcpvzeq_right_power = bpvi_q_bls_bcpvzeq_right_power_terminal * S ((S (S bls_index_bcpvzeq_right)) * bpvi_v_bls_bcpvzeq_right_power) + (bls_power_bcpvzeq_right))) /\ forall bpvi_j_bls_bcpvzeq_right_power. (exists bpvi_product_gap_bls_bcpvzeq_right_power. bpvi_product_gap_bls_bcpvzeq_right_power + S bpvi_j_bls_bcpvzeq_right_power = S bls_index_bcpvzeq_right) -> exists bpvi_factor_bls_bcpvzeq_right_power bpvi_partial_bls_bcpvzeq_right_power bpvi_successor_bls_bcpvzeq_right_power. ((((exists bpvi_h_bls_bcpvzeq_right_power_factor. bpvi_h_bls_bcpvzeq_right_power_factor + S (bpvi_factor_bls_bcpvzeq_right_power) = S ((S (bpvi_j_bls_bcpvzeq_right_power)) * bpvi_c_bls_bcpvzeq_right_power)) /\ exists bpvi_q_bls_bcpvzeq_right_power_factor. bpvi_b_bls_bcpvzeq_right_power = bpvi_q_bls_bcpvzeq_right_power_factor * S ((S (bpvi_j_bls_bcpvzeq_right_power)) * bpvi_c_bls_bcpvzeq_right_power) + (bpvi_factor_bls_bcpvzeq_right_power))) /\ ((((exists bpvi_h_bls_bcpvzeq_right_power_partial. bpvi_h_bls_bcpvzeq_right_power_partial + S (bpvi_partial_bls_bcpvzeq_right_power) = S ((S (bpvi_j_bls_bcpvzeq_right_power)) * bpvi_v_bls_bcpvzeq_right_power)) /\ exists bpvi_q_bls_bcpvzeq_right_power_partial. bpvi_u_bls_bcpvzeq_right_power = bpvi_q_bls_bcpvzeq_right_power_partial * S ((S (bpvi_j_bls_bcpvzeq_right_power)) * bpvi_v_bls_bcpvzeq_right_power) + (bpvi_partial_bls_bcpvzeq_right_power))) /\ ((((exists bpvi_h_bls_bcpvzeq_right_power_successor. bpvi_h_bls_bcpvzeq_right_power_successor + S (bpvi_successor_bls_bcpvzeq_right_power) = S ((S (S bpvi_j_bls_bcpvzeq_right_power)) * bpvi_v_bls_bcpvzeq_right_power)) /\ exists bpvi_q_bls_bcpvzeq_right_power_successor. bpvi_u_bls_bcpvzeq_right_power = bpvi_q_bls_bcpvzeq_right_power_successor * S ((S (S bpvi_j_bls_bcpvzeq_right_power)) * bpvi_v_bls_bcpvzeq_right_power) + (bpvi_successor_bls_bcpvzeq_right_power))) /\ bpvi_successor_bls_bcpvzeq_right_power = bpvi_partial_bls_bcpvzeq_right_power * bpvi_factor_bls_bcpvzeq_right_power)))))))) /\ ((((exists ff_h_bls_bcpvzeq_right_quotient_entry. ff_h_bls_bcpvzeq_right_quotient_entry + S (bls_quotient_bcpvzeq_right) = S ((S (bls_index_bcpvzeq_right)) * e)) /\ exists ff_q_bls_bcpvzeq_right_quotient_entry. d = ff_q_bls_bcpvzeq_right_quotient_entry * S ((S (bls_index_bcpvzeq_right)) * e) + (bls_quotient_bcpvzeq_right))) /\ ((n + n = bls_power_bcpvzeq_right * bls_quotient_bcpvzeq_right + bls_remainder_bcpvzeq_right /\ exists bls_remainder_gap_bcpvzeq_right_division. bls_remainder_gap_bcpvzeq_right_division + S (bls_remainder_bcpvzeq_right) = bls_power_bcpvzeq_right))))) /\ ((forall b5cc_index_bcpvzeq_carry. (exists bcf_lt_gap_bcpvzeq_carry_bound. bcf_lt_gap_bcpvzeq_carry_bound + S (b5cc_index_bcpvzeq_carry) = n + n) -> exists b5cc_left_bcpvzeq_carry b5cc_right_bcpvzeq_carry b5cc_bit_bcpvzeq_carry. (((exists fs_h_b5cc_bcpvzeq_carry_left. fs_h_b5cc_bcpvzeq_carry_left + S (b5cc_left_bcpvzeq_carry) = S ((S (b5cc_index_bcpvzeq_carry)) * c)) /\ exists fs_q_b5cc_bcpvzeq_carry_left. b = fs_q_b5cc_bcpvzeq_carry_left * S ((S (b5cc_index_bcpvzeq_carry)) * c) + (b5cc_left_bcpvzeq_carry))) /\ ((((exists fs_h_b5cc_bcpvzeq_carry_right. fs_h_b5cc_bcpvzeq_carry_right + S (b5cc_right_bcpvzeq_carry) = S ((S (b5cc_index_bcpvzeq_carry)) * e)) /\ exists fs_q_b5cc_bcpvzeq_carry_right. d = fs_q_b5cc_bcpvzeq_carry_right * S ((S (b5cc_index_bcpvzeq_carry)) * e) + (b5cc_right_bcpvzeq_carry))) /\ ((((exists fs_h_b5cc_bcpvzeq_carry_bit. fs_h_b5cc_bcpvzeq_carry_bit + S (b5cc_bit_bcpvzeq_carry) = S ((S (b5cc_index_bcpvzeq_carry)) * g)) /\ exists fs_q_b5cc_bcpvzeq_carry_bit. f = fs_q_b5cc_bcpvzeq_carry_bit * S ((S (b5cc_index_bcpvzeq_carry)) * g) + (b5cc_bit_bcpvzeq_carry))) /\ (((b5cc_bit_bcpvzeq_carry = 0 /\ b5cc_right_bcpvzeq_carry = b5cc_left_bcpvzeq_carry + b5cc_left_bcpvzeq_carry) \/ (b5cc_bit_bcpvzeq_carry = 1 /\ b5cc_right_bcpvzeq_carry = S (b5cc_left_bcpvzeq_carry + b5cc_left_bcpvzeq_carry))))))) /\ (((exists ff_u_bcpvzeq_count_sum ff_v_bcpvzeq_count_sum. ((((exists ff_h_bcpvzeq_count_sum_start. ff_h_bcpvzeq_count_sum_start + S (0) = S ((S (0)) * ff_v_bcpvzeq_count_sum)) /\ exists ff_q_bcpvzeq_count_sum_start. ff_u_bcpvzeq_count_sum = ff_q_bcpvzeq_count_sum_start * S ((S (0)) * ff_v_bcpvzeq_count_sum) + (0))) /\ ((((exists ff_h_bcpvzeq_count_sum_terminal. ff_h_bcpvzeq_count_sum_terminal + S ((v)) = S ((S ((n + n))) * ff_v_bcpvzeq_count_sum)) /\ exists ff_q_bcpvzeq_count_sum_terminal. ff_u_bcpvzeq_count_sum = ff_q_bcpvzeq_count_sum_terminal * S ((S ((n + n))) * ff_v_bcpvzeq_count_sum) + ((v)))) /\ forall ff_i_bcpvzeq_count_sum. (exists ff_lt_bcpvzeq_count_sum_bound. ff_lt_bcpvzeq_count_sum_bound + S ff_i_bcpvzeq_count_sum = (n + n)) -> exists ff_a_bcpvzeq_count_sum ff_r_bcpvzeq_count_sum ff_s_bcpvzeq_count_sum. ((((exists ff_h_bcpvzeq_count_sum_summand. ff_h_bcpvzeq_count_sum_summand + S (ff_a_bcpvzeq_count_sum) = S ((S (ff_i_bcpvzeq_count_sum)) * g)) /\ exists ff_q_bcpvzeq_count_sum_summand. f = ff_q_bcpvzeq_count_sum_summand * S ((S (ff_i_bcpvzeq_count_sum)) * g) + (ff_a_bcpvzeq_count_sum))) /\ ((((exists ff_h_bcpvzeq_count_sum_partial. ff_h_bcpvzeq_count_sum_partial + S (ff_r_bcpvzeq_count_sum) = S ((S (ff_i_bcpvzeq_count_sum)) * ff_v_bcpvzeq_count_sum)) /\ exists ff_q_bcpvzeq_count_sum_partial. ff_u_bcpvzeq_count_sum = ff_q_bcpvzeq_count_sum_partial * S ((S (ff_i_bcpvzeq_count_sum)) * ff_v_bcpvzeq_count_sum) + (ff_r_bcpvzeq_count_sum))) /\ ((((exists ff_h_bcpvzeq_count_sum_successor. ff_h_bcpvzeq_count_sum_successor + S (ff_s_bcpvzeq_count_sum) = S ((S (S ff_i_bcpvzeq_count_sum)) * ff_v_bcpvzeq_count_sum)) /\ exists ff_q_bcpvzeq_count_sum_successor. ff_u_bcpvzeq_count_sum = ff_q_bcpvzeq_count_sum_successor * S ((S (S ff_i_bcpvzeq_count_sum)) * ff_v_bcpvzeq_count_sum) + (ff_s_bcpvzeq_count_sum))) /\ ff_s_bcpvzeq_count_sum = ff_r_bcpvzeq_count_sum + ff_a_bcpvzeq_count_sum)))))) /\ (forall ff_i_bcpvzeq_count_bits. (exists ff_lt_bcpvzeq_count_bits_bound. ff_lt_bcpvzeq_count_bits_bound + S ff_i_bcpvzeq_count_bits = (n + n)) -> exists ff_bit_bcpvzeq_count_bits. ((((exists ff_h_bcpvzeq_count_bits_decoded. ff_h_bcpvzeq_count_bits_decoded + S (ff_bit_bcpvzeq_count_bits) = S ((S (ff_i_bcpvzeq_count_bits)) * g)) /\ exists ff_q_bcpvzeq_count_bits_decoded. f = ff_q_bcpvzeq_count_bits_decoded * S ((S (ff_i_bcpvzeq_count_bits)) * g) + (ff_bit_bcpvzeq_count_bits))) /\ (ff_bit_bcpvzeq_count_bits = 0 \/ ff_bit_bcpvzeq_count_bits = 1)))))))
  18. 0018specialize central_binom_carry_bit_count p
  19. 0019specialize central_binom_carry_bit_count n
  20. 0020specialize central_binom_carry_bit_count C
  21. 0021specialize central_binom_carry_bit_count v
  22. 0022apply central_binom_carry_bit_count
  23. 0023exact hp
  24. 0024exact hcentral
  25. 0025exact hvaluation
  26. 0026cases hpackage
  27. 0027cases hpackage_witness
  28. 0028cases hpackage_witness_witness
  29. 0029cases hpackage_witness_witness_witness
  30. 0030cases hpackage_witness_witness_witness_witness
  31. 0031cases hpackage_witness_witness_witness_witness_witness
  32. 0032cases hpackage_witness_witness_witness_witness_witness_witness
  33. 0033cases hpackage_witness_witness_witness_witness_witness_witness_right
  34. 0034cases hpackage_witness_witness_witness_witness_witness_witness_right_right
  35. 0035specialize zero_or_succ v
  36. 0036cases zero_or_succ
  37. 0037exact zero_or_succ_left
  38. 0038cases zero_or_succ_right
  39. 0039rewrite zero_or_succ_right_witness at hpackage_witness_witness_witness_witness_witness_witness_right_right_right
  40. 0040rewrite zero_or_succ_right_witness at hpackage_witness_witness_witness_witness_witness_witness_right_right_right
  41. 0041have hlast : ∃ i. Lt(i,n + n) ∧ (BetaAt(x4,x5,i,1)Lt(x6,S i))
    Exact native replay linehave hlast : exists i. (exists bcf_lt_gap_bcpvzeq_last_bound. bcf_lt_gap_bcpvzeq_last_bound + S (i) = n + n) /\ ((((exists fs_h_bcpvzeq_last_entry. fs_h_bcpvzeq_last_entry + S (1) = S ((S (i)) * x5)) /\ exists fs_q_bcpvzeq_last_entry. x4 = fs_q_bcpvzeq_last_entry * S ((S (i)) * x5) + (1))) /\ (exists bcf_le_gap_bcpvzeq_last_result. bcf_le_gap_bcpvzeq_last_result + (S x6) = S i))
  42. 0042specialize bit_count_positive_last_one x4
  43. 0043specialize bit_count_positive_last_one x5
  44. 0044specialize bit_count_positive_last_one (n + n)
  45. 0045specialize bit_count_positive_last_one x6
  46. 0046apply bit_count_positive_last_one
  47. 0047exact hpackage_witness_witness_witness_witness_witness_witness_right_right_right
  48. 0048cases hlast
  49. 0049cases hlast_witness
  50. 0050cases hlast_witness_right
  51. 0051have hentries : Repeat(x4,x5,0,n + n)
    Exact native replay linehave hentries : forall i. (exists bcf_lt_gap_bcpvzeq_zero_bound. bcf_lt_gap_bcpvzeq_zero_bound + S (i) = n + n) -> (((exists fs_h_bcpvzeq_zero_entries. fs_h_bcpvzeq_zero_entries + S (0) = S ((S (i)) * x5)) /\ exists fs_q_bcpvzeq_zero_entries. x4 = fs_q_bcpvzeq_zero_entries * S ((S (i)) * x5) + (0)))
  52. 0052specialize double_quotient_carry_prefix_entries_zero p
  53. 0053specialize double_quotient_carry_prefix_entries_zero n
  54. 0054specialize double_quotient_carry_prefix_entries_zero x
  55. 0055specialize double_quotient_carry_prefix_entries_zero x1
  56. 0056specialize double_quotient_carry_prefix_entries_zero x2
  57. 0057specialize double_quotient_carry_prefix_entries_zero x3
  58. 0058specialize double_quotient_carry_prefix_entries_zero x4
  59. 0059specialize double_quotient_carry_prefix_entries_zero x5
  60. 0060specialize double_quotient_carry_prefix_entries_zero (n + n)
  61. 0061specialize double_quotient_carry_prefix_entries_zero q
  62. 0062specialize double_quotient_carry_prefix_entries_zero r
  63. 0063specialize double_quotient_carry_prefix_entries_zero R
  64. 0064specialize double_quotient_carry_prefix_entries_zero s
  65. 0065apply double_quotient_carry_prefix_entries_zero
  66. 0066exact hbase
  67. 0067exact hsquare
  68. 0068exact hstrict
  69. 0069exact hpackage_witness_witness_witness_witness_witness_witness_left
  70. 0070exact hpackage_witness_witness_witness_witness_witness_witness_right_left
  71. 0071exact hpackage_witness_witness_witness_witness_witness_witness_right_right_left
  72. 0072exact hfirst
  73. 0073exact hdouble
  74. 0074have hzero : BetaAt(x4,x5,x7,0)
    Exact native replay linehave hzero : ((exists fs_h_bcpvzeq_zero_entry. fs_h_bcpvzeq_zero_entry + S (0) = S ((S (x7)) * x5)) /\ exists fs_q_bcpvzeq_zero_entry. x4 = fs_q_bcpvzeq_zero_entry * S ((S (x7)) * x5) + (0))
  75. 0075specialize hentries x7
  76. 0076apply hentries
  77. 0077exact hlast_witness_left
  78. 0078have hone_zero : 1 = 0
  79. 0079specialize beta_at_unique x4
  80. 0080specialize beta_at_unique x5
  81. 0081specialize beta_at_unique x7
  82. 0082specialize beta_at_unique 1
  83. 0083specialize beta_at_unique 0
  84. 0084apply beta_at_unique
  85. 0085exact hlast_witness_right_left
  86. 0086exact hzero
  87. 0087exfalso
  88. 0088apply PA1
  89. 0089exact hone_zero