BT00QQ · Bertrand theorem

power_valuation_mul_successor_not_divides

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

The product of exact prime-power valuations has no next power divisor.

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. ∀ e. ∀ f. Prime(p) → ¬a = 0 → ¬b = 0 → PowerValuation(p,a,e)PowerValuation(p,b,f) → ¬PowerDivides(p,S (e + f),a · b)

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

4 occurrences

In local proof propositions

6 occurrences

Exact expanded native-PA statement
forall p a b e f. ((~(p = 1) /\ forall frm_prime_left_bpd_prime frm_prime_right_bpd_prime. p = frm_prime_left_bpd_prime * frm_prime_right_bpd_prime -> frm_prime_left_bpd_prime = 1 \/ frm_prime_right_bpd_prime = 1)) -> ~(a = 0) -> ~(b = 0) -> (((exists bpv_gap_bpd_valuation_a_exponent_bound. bpv_gap_bpd_valuation_a_exponent_bound + e = a) /\ (exists bpv_result_bpd_valuation_a_selected. ((exists ff_b_bpd_valuation_a_selected_power ff_c_bpd_valuation_a_selected_power. ((forall ff_i_bpd_valuation_a_selected_power_repeat. (exists ff_lt_bpd_valuation_a_selected_power_repeat_bound. ff_lt_bpd_valuation_a_selected_power_repeat_bound + S ff_i_bpd_valuation_a_selected_power_repeat = e) -> (((exists ff_h_bpd_valuation_a_selected_power_repeat_decoded. ff_h_bpd_valuation_a_selected_power_repeat_decoded + S (p) = S ((S (ff_i_bpd_valuation_a_selected_power_repeat)) * ff_c_bpd_valuation_a_selected_power)) /\ exists ff_q_bpd_valuation_a_selected_power_repeat_decoded. ff_b_bpd_valuation_a_selected_power = ff_q_bpd_valuation_a_selected_power_repeat_decoded * S ((S (ff_i_bpd_valuation_a_selected_power_repeat)) * ff_c_bpd_valuation_a_selected_power) + (p)))) /\ (exists ff_u_bpd_valuation_a_selected_power_product ff_v_bpd_valuation_a_selected_power_product. ((((exists ff_h_bpd_valuation_a_selected_power_product_start. ff_h_bpd_valuation_a_selected_power_product_start + S (1) = S ((S (0)) * ff_v_bpd_valuation_a_selected_power_product)) /\ exists ff_q_bpd_valuation_a_selected_power_product_start. ff_u_bpd_valuation_a_selected_power_product = ff_q_bpd_valuation_a_selected_power_product_start * S ((S (0)) * ff_v_bpd_valuation_a_selected_power_product) + (1))) /\ ((((exists ff_h_bpd_valuation_a_selected_power_product_terminal. ff_h_bpd_valuation_a_selected_power_product_terminal + S (bpv_result_bpd_valuation_a_selected) = S ((S (e)) * ff_v_bpd_valuation_a_selected_power_product)) /\ exists ff_q_bpd_valuation_a_selected_power_product_terminal. ff_u_bpd_valuation_a_selected_power_product = ff_q_bpd_valuation_a_selected_power_product_terminal * S ((S (e)) * ff_v_bpd_valuation_a_selected_power_product) + (bpv_result_bpd_valuation_a_selected))) /\ forall ff_i_bpd_valuation_a_selected_power_product. (exists ff_lt_bpd_valuation_a_selected_power_product_bound. ff_lt_bpd_valuation_a_selected_power_product_bound + S ff_i_bpd_valuation_a_selected_power_product = e) -> exists ff_p_bpd_valuation_a_selected_power_product ff_r_bpd_valuation_a_selected_power_product ff_s_bpd_valuation_a_selected_power_product. ((((exists ff_h_bpd_valuation_a_selected_power_product_factor. ff_h_bpd_valuation_a_selected_power_product_factor + S (ff_p_bpd_valuation_a_selected_power_product) = S ((S (ff_i_bpd_valuation_a_selected_power_product)) * ff_c_bpd_valuation_a_selected_power)) /\ exists ff_q_bpd_valuation_a_selected_power_product_factor. ff_b_bpd_valuation_a_selected_power = ff_q_bpd_valuation_a_selected_power_product_factor * S ((S (ff_i_bpd_valuation_a_selected_power_product)) * ff_c_bpd_valuation_a_selected_power) + (ff_p_bpd_valuation_a_selected_power_product))) /\ ((((exists ff_h_bpd_valuation_a_selected_power_product_partial. ff_h_bpd_valuation_a_selected_power_product_partial + S (ff_r_bpd_valuation_a_selected_power_product) = S ((S (ff_i_bpd_valuation_a_selected_power_product)) * ff_v_bpd_valuation_a_selected_power_product)) /\ exists ff_q_bpd_valuation_a_selected_power_product_partial. ff_u_bpd_valuation_a_selected_power_product = ff_q_bpd_valuation_a_selected_power_product_partial * S ((S (ff_i_bpd_valuation_a_selected_power_product)) * ff_v_bpd_valuation_a_selected_power_product) + (ff_r_bpd_valuation_a_selected_power_product))) /\ ((((exists ff_h_bpd_valuation_a_selected_power_product_successor. ff_h_bpd_valuation_a_selected_power_product_successor + S (ff_s_bpd_valuation_a_selected_power_product) = S ((S (S ff_i_bpd_valuation_a_selected_power_product)) * ff_v_bpd_valuation_a_selected_power_product)) /\ exists ff_q_bpd_valuation_a_selected_power_product_successor. ff_u_bpd_valuation_a_selected_power_product = ff_q_bpd_valuation_a_selected_power_product_successor * S ((S (S ff_i_bpd_valuation_a_selected_power_product)) * ff_v_bpd_valuation_a_selected_power_product) + (ff_s_bpd_valuation_a_selected_power_product))) /\ ff_s_bpd_valuation_a_selected_power_product = ff_r_bpd_valuation_a_selected_power_product * ff_p_bpd_valuation_a_selected_power_product)))))))) /\ (exists bpv_factor_bpd_valuation_a_selected_divides. a = bpv_result_bpd_valuation_a_selected * bpv_factor_bpd_valuation_a_selected_divides)))) /\ forall bpv_candidate_bpd_valuation_a. (exists bpv_gap_bpd_valuation_a_candidate_bound. bpv_gap_bpd_valuation_a_candidate_bound + bpv_candidate_bpd_valuation_a = a) -> (exists bpv_result_bpd_valuation_a_candidate. ((exists ff_b_bpd_valuation_a_candidate_power ff_c_bpd_valuation_a_candidate_power. ((forall ff_i_bpd_valuation_a_candidate_power_repeat. (exists ff_lt_bpd_valuation_a_candidate_power_repeat_bound. ff_lt_bpd_valuation_a_candidate_power_repeat_bound + S ff_i_bpd_valuation_a_candidate_power_repeat = bpv_candidate_bpd_valuation_a) -> (((exists ff_h_bpd_valuation_a_candidate_power_repeat_decoded. ff_h_bpd_valuation_a_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_bpd_valuation_a_candidate_power_repeat)) * ff_c_bpd_valuation_a_candidate_power)) /\ exists ff_q_bpd_valuation_a_candidate_power_repeat_decoded. ff_b_bpd_valuation_a_candidate_power = ff_q_bpd_valuation_a_candidate_power_repeat_decoded * S ((S (ff_i_bpd_valuation_a_candidate_power_repeat)) * ff_c_bpd_valuation_a_candidate_power) + (p)))) /\ (exists ff_u_bpd_valuation_a_candidate_power_product ff_v_bpd_valuation_a_candidate_power_product. ((((exists ff_h_bpd_valuation_a_candidate_power_product_start. ff_h_bpd_valuation_a_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_bpd_valuation_a_candidate_power_product)) /\ exists ff_q_bpd_valuation_a_candidate_power_product_start. ff_u_bpd_valuation_a_candidate_power_product = ff_q_bpd_valuation_a_candidate_power_product_start * S ((S (0)) * ff_v_bpd_valuation_a_candidate_power_product) + (1))) /\ ((((exists ff_h_bpd_valuation_a_candidate_power_product_terminal. ff_h_bpd_valuation_a_candidate_power_product_terminal + S (bpv_result_bpd_valuation_a_candidate) = S ((S (bpv_candidate_bpd_valuation_a)) * ff_v_bpd_valuation_a_candidate_power_product)) /\ exists ff_q_bpd_valuation_a_candidate_power_product_terminal. ff_u_bpd_valuation_a_candidate_power_product = ff_q_bpd_valuation_a_candidate_power_product_terminal * S ((S (bpv_candidate_bpd_valuation_a)) * ff_v_bpd_valuation_a_candidate_power_product) + (bpv_result_bpd_valuation_a_candidate))) /\ forall ff_i_bpd_valuation_a_candidate_power_product. (exists ff_lt_bpd_valuation_a_candidate_power_product_bound. ff_lt_bpd_valuation_a_candidate_power_product_bound + S ff_i_bpd_valuation_a_candidate_power_product = bpv_candidate_bpd_valuation_a) -> exists ff_p_bpd_valuation_a_candidate_power_product ff_r_bpd_valuation_a_candidate_power_product ff_s_bpd_valuation_a_candidate_power_product. ((((exists ff_h_bpd_valuation_a_candidate_power_product_factor. ff_h_bpd_valuation_a_candidate_power_product_factor + S (ff_p_bpd_valuation_a_candidate_power_product) = S ((S (ff_i_bpd_valuation_a_candidate_power_product)) * ff_c_bpd_valuation_a_candidate_power)) /\ exists ff_q_bpd_valuation_a_candidate_power_product_factor. ff_b_bpd_valuation_a_candidate_power = ff_q_bpd_valuation_a_candidate_power_product_factor * S ((S (ff_i_bpd_valuation_a_candidate_power_product)) * ff_c_bpd_valuation_a_candidate_power) + (ff_p_bpd_valuation_a_candidate_power_product))) /\ ((((exists ff_h_bpd_valuation_a_candidate_power_product_partial. ff_h_bpd_valuation_a_candidate_power_product_partial + S (ff_r_bpd_valuation_a_candidate_power_product) = S ((S (ff_i_bpd_valuation_a_candidate_power_product)) * ff_v_bpd_valuation_a_candidate_power_product)) /\ exists ff_q_bpd_valuation_a_candidate_power_product_partial. ff_u_bpd_valuation_a_candidate_power_product = ff_q_bpd_valuation_a_candidate_power_product_partial * S ((S (ff_i_bpd_valuation_a_candidate_power_product)) * ff_v_bpd_valuation_a_candidate_power_product) + (ff_r_bpd_valuation_a_candidate_power_product))) /\ ((((exists ff_h_bpd_valuation_a_candidate_power_product_successor. ff_h_bpd_valuation_a_candidate_power_product_successor + S (ff_s_bpd_valuation_a_candidate_power_product) = S ((S (S ff_i_bpd_valuation_a_candidate_power_product)) * ff_v_bpd_valuation_a_candidate_power_product)) /\ exists ff_q_bpd_valuation_a_candidate_power_product_successor. ff_u_bpd_valuation_a_candidate_power_product = ff_q_bpd_valuation_a_candidate_power_product_successor * S ((S (S ff_i_bpd_valuation_a_candidate_power_product)) * ff_v_bpd_valuation_a_candidate_power_product) + (ff_s_bpd_valuation_a_candidate_power_product))) /\ ff_s_bpd_valuation_a_candidate_power_product = ff_r_bpd_valuation_a_candidate_power_product * ff_p_bpd_valuation_a_candidate_power_product)))))))) /\ (exists bpv_factor_bpd_valuation_a_candidate_divides. a = bpv_result_bpd_valuation_a_candidate * bpv_factor_bpd_valuation_a_candidate_divides))) -> (exists bpv_gap_bpd_valuation_a_maximal. bpv_gap_bpd_valuation_a_maximal + bpv_candidate_bpd_valuation_a = e)) -> (((exists bpv_gap_bpd_valuation_b_exponent_bound. bpv_gap_bpd_valuation_b_exponent_bound + f = b) /\ (exists bpv_result_bpd_valuation_b_selected. ((exists ff_b_bpd_valuation_b_selected_power ff_c_bpd_valuation_b_selected_power. ((forall ff_i_bpd_valuation_b_selected_power_repeat. (exists ff_lt_bpd_valuation_b_selected_power_repeat_bound. ff_lt_bpd_valuation_b_selected_power_repeat_bound + S ff_i_bpd_valuation_b_selected_power_repeat = f) -> (((exists ff_h_bpd_valuation_b_selected_power_repeat_decoded. ff_h_bpd_valuation_b_selected_power_repeat_decoded + S (p) = S ((S (ff_i_bpd_valuation_b_selected_power_repeat)) * ff_c_bpd_valuation_b_selected_power)) /\ exists ff_q_bpd_valuation_b_selected_power_repeat_decoded. ff_b_bpd_valuation_b_selected_power = ff_q_bpd_valuation_b_selected_power_repeat_decoded * S ((S (ff_i_bpd_valuation_b_selected_power_repeat)) * ff_c_bpd_valuation_b_selected_power) + (p)))) /\ (exists ff_u_bpd_valuation_b_selected_power_product ff_v_bpd_valuation_b_selected_power_product. ((((exists ff_h_bpd_valuation_b_selected_power_product_start. ff_h_bpd_valuation_b_selected_power_product_start + S (1) = S ((S (0)) * ff_v_bpd_valuation_b_selected_power_product)) /\ exists ff_q_bpd_valuation_b_selected_power_product_start. ff_u_bpd_valuation_b_selected_power_product = ff_q_bpd_valuation_b_selected_power_product_start * S ((S (0)) * ff_v_bpd_valuation_b_selected_power_product) + (1))) /\ ((((exists ff_h_bpd_valuation_b_selected_power_product_terminal. ff_h_bpd_valuation_b_selected_power_product_terminal + S (bpv_result_bpd_valuation_b_selected) = S ((S (f)) * ff_v_bpd_valuation_b_selected_power_product)) /\ exists ff_q_bpd_valuation_b_selected_power_product_terminal. ff_u_bpd_valuation_b_selected_power_product = ff_q_bpd_valuation_b_selected_power_product_terminal * S ((S (f)) * ff_v_bpd_valuation_b_selected_power_product) + (bpv_result_bpd_valuation_b_selected))) /\ forall ff_i_bpd_valuation_b_selected_power_product. (exists ff_lt_bpd_valuation_b_selected_power_product_bound. ff_lt_bpd_valuation_b_selected_power_product_bound + S ff_i_bpd_valuation_b_selected_power_product = f) -> exists ff_p_bpd_valuation_b_selected_power_product ff_r_bpd_valuation_b_selected_power_product ff_s_bpd_valuation_b_selected_power_product. ((((exists ff_h_bpd_valuation_b_selected_power_product_factor. ff_h_bpd_valuation_b_selected_power_product_factor + S (ff_p_bpd_valuation_b_selected_power_product) = S ((S (ff_i_bpd_valuation_b_selected_power_product)) * ff_c_bpd_valuation_b_selected_power)) /\ exists ff_q_bpd_valuation_b_selected_power_product_factor. ff_b_bpd_valuation_b_selected_power = ff_q_bpd_valuation_b_selected_power_product_factor * S ((S (ff_i_bpd_valuation_b_selected_power_product)) * ff_c_bpd_valuation_b_selected_power) + (ff_p_bpd_valuation_b_selected_power_product))) /\ ((((exists ff_h_bpd_valuation_b_selected_power_product_partial. ff_h_bpd_valuation_b_selected_power_product_partial + S (ff_r_bpd_valuation_b_selected_power_product) = S ((S (ff_i_bpd_valuation_b_selected_power_product)) * ff_v_bpd_valuation_b_selected_power_product)) /\ exists ff_q_bpd_valuation_b_selected_power_product_partial. ff_u_bpd_valuation_b_selected_power_product = ff_q_bpd_valuation_b_selected_power_product_partial * S ((S (ff_i_bpd_valuation_b_selected_power_product)) * ff_v_bpd_valuation_b_selected_power_product) + (ff_r_bpd_valuation_b_selected_power_product))) /\ ((((exists ff_h_bpd_valuation_b_selected_power_product_successor. ff_h_bpd_valuation_b_selected_power_product_successor + S (ff_s_bpd_valuation_b_selected_power_product) = S ((S (S ff_i_bpd_valuation_b_selected_power_product)) * ff_v_bpd_valuation_b_selected_power_product)) /\ exists ff_q_bpd_valuation_b_selected_power_product_successor. ff_u_bpd_valuation_b_selected_power_product = ff_q_bpd_valuation_b_selected_power_product_successor * S ((S (S ff_i_bpd_valuation_b_selected_power_product)) * ff_v_bpd_valuation_b_selected_power_product) + (ff_s_bpd_valuation_b_selected_power_product))) /\ ff_s_bpd_valuation_b_selected_power_product = ff_r_bpd_valuation_b_selected_power_product * ff_p_bpd_valuation_b_selected_power_product)))))))) /\ (exists bpv_factor_bpd_valuation_b_selected_divides. b = bpv_result_bpd_valuation_b_selected * bpv_factor_bpd_valuation_b_selected_divides)))) /\ forall bpv_candidate_bpd_valuation_b. (exists bpv_gap_bpd_valuation_b_candidate_bound. bpv_gap_bpd_valuation_b_candidate_bound + bpv_candidate_bpd_valuation_b = b) -> (exists bpv_result_bpd_valuation_b_candidate. ((exists ff_b_bpd_valuation_b_candidate_power ff_c_bpd_valuation_b_candidate_power. ((forall ff_i_bpd_valuation_b_candidate_power_repeat. (exists ff_lt_bpd_valuation_b_candidate_power_repeat_bound. ff_lt_bpd_valuation_b_candidate_power_repeat_bound + S ff_i_bpd_valuation_b_candidate_power_repeat = bpv_candidate_bpd_valuation_b) -> (((exists ff_h_bpd_valuation_b_candidate_power_repeat_decoded. ff_h_bpd_valuation_b_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_bpd_valuation_b_candidate_power_repeat)) * ff_c_bpd_valuation_b_candidate_power)) /\ exists ff_q_bpd_valuation_b_candidate_power_repeat_decoded. ff_b_bpd_valuation_b_candidate_power = ff_q_bpd_valuation_b_candidate_power_repeat_decoded * S ((S (ff_i_bpd_valuation_b_candidate_power_repeat)) * ff_c_bpd_valuation_b_candidate_power) + (p)))) /\ (exists ff_u_bpd_valuation_b_candidate_power_product ff_v_bpd_valuation_b_candidate_power_product. ((((exists ff_h_bpd_valuation_b_candidate_power_product_start. ff_h_bpd_valuation_b_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_bpd_valuation_b_candidate_power_product)) /\ exists ff_q_bpd_valuation_b_candidate_power_product_start. ff_u_bpd_valuation_b_candidate_power_product = ff_q_bpd_valuation_b_candidate_power_product_start * S ((S (0)) * ff_v_bpd_valuation_b_candidate_power_product) + (1))) /\ ((((exists ff_h_bpd_valuation_b_candidate_power_product_terminal. ff_h_bpd_valuation_b_candidate_power_product_terminal + S (bpv_result_bpd_valuation_b_candidate) = S ((S (bpv_candidate_bpd_valuation_b)) * ff_v_bpd_valuation_b_candidate_power_product)) /\ exists ff_q_bpd_valuation_b_candidate_power_product_terminal. ff_u_bpd_valuation_b_candidate_power_product = ff_q_bpd_valuation_b_candidate_power_product_terminal * S ((S (bpv_candidate_bpd_valuation_b)) * ff_v_bpd_valuation_b_candidate_power_product) + (bpv_result_bpd_valuation_b_candidate))) /\ forall ff_i_bpd_valuation_b_candidate_power_product. (exists ff_lt_bpd_valuation_b_candidate_power_product_bound. ff_lt_bpd_valuation_b_candidate_power_product_bound + S ff_i_bpd_valuation_b_candidate_power_product = bpv_candidate_bpd_valuation_b) -> exists ff_p_bpd_valuation_b_candidate_power_product ff_r_bpd_valuation_b_candidate_power_product ff_s_bpd_valuation_b_candidate_power_product. ((((exists ff_h_bpd_valuation_b_candidate_power_product_factor. ff_h_bpd_valuation_b_candidate_power_product_factor + S (ff_p_bpd_valuation_b_candidate_power_product) = S ((S (ff_i_bpd_valuation_b_candidate_power_product)) * ff_c_bpd_valuation_b_candidate_power)) /\ exists ff_q_bpd_valuation_b_candidate_power_product_factor. ff_b_bpd_valuation_b_candidate_power = ff_q_bpd_valuation_b_candidate_power_product_factor * S ((S (ff_i_bpd_valuation_b_candidate_power_product)) * ff_c_bpd_valuation_b_candidate_power) + (ff_p_bpd_valuation_b_candidate_power_product))) /\ ((((exists ff_h_bpd_valuation_b_candidate_power_product_partial. ff_h_bpd_valuation_b_candidate_power_product_partial + S (ff_r_bpd_valuation_b_candidate_power_product) = S ((S (ff_i_bpd_valuation_b_candidate_power_product)) * ff_v_bpd_valuation_b_candidate_power_product)) /\ exists ff_q_bpd_valuation_b_candidate_power_product_partial. ff_u_bpd_valuation_b_candidate_power_product = ff_q_bpd_valuation_b_candidate_power_product_partial * S ((S (ff_i_bpd_valuation_b_candidate_power_product)) * ff_v_bpd_valuation_b_candidate_power_product) + (ff_r_bpd_valuation_b_candidate_power_product))) /\ ((((exists ff_h_bpd_valuation_b_candidate_power_product_successor. ff_h_bpd_valuation_b_candidate_power_product_successor + S (ff_s_bpd_valuation_b_candidate_power_product) = S ((S (S ff_i_bpd_valuation_b_candidate_power_product)) * ff_v_bpd_valuation_b_candidate_power_product)) /\ exists ff_q_bpd_valuation_b_candidate_power_product_successor. ff_u_bpd_valuation_b_candidate_power_product = ff_q_bpd_valuation_b_candidate_power_product_successor * S ((S (S ff_i_bpd_valuation_b_candidate_power_product)) * ff_v_bpd_valuation_b_candidate_power_product) + (ff_s_bpd_valuation_b_candidate_power_product))) /\ ff_s_bpd_valuation_b_candidate_power_product = ff_r_bpd_valuation_b_candidate_power_product * ff_p_bpd_valuation_b_candidate_power_product)))))))) /\ (exists bpv_factor_bpd_valuation_b_candidate_divides. b = bpv_result_bpd_valuation_b_candidate * bpv_factor_bpd_valuation_b_candidate_divides))) -> (exists bpv_gap_bpd_valuation_b_maximal. bpv_gap_bpd_valuation_b_maximal + bpv_candidate_bpd_valuation_b = f)) -> ~(exists bpvi_result_valuation_mul_successor. ((exists bpvi_b_valuation_mul_successor_power bpvi_c_valuation_mul_successor_power. ((forall bpvi_i_valuation_mul_successor_power. (exists bpvi_repeat_gap_valuation_mul_successor_power. bpvi_repeat_gap_valuation_mul_successor_power + S bpvi_i_valuation_mul_successor_power = S (e + f)) -> (((exists bpvi_h_valuation_mul_successor_power_repeat. bpvi_h_valuation_mul_successor_power_repeat + S (p) = S ((S (bpvi_i_valuation_mul_successor_power)) * bpvi_c_valuation_mul_successor_power)) /\ exists bpvi_q_valuation_mul_successor_power_repeat. bpvi_b_valuation_mul_successor_power = bpvi_q_valuation_mul_successor_power_repeat * S ((S (bpvi_i_valuation_mul_successor_power)) * bpvi_c_valuation_mul_successor_power) + (p)))) /\ (exists bpvi_u_valuation_mul_successor_power bpvi_v_valuation_mul_successor_power. ((((exists bpvi_h_valuation_mul_successor_power_start. bpvi_h_valuation_mul_successor_power_start + S (1) = S ((S (0)) * bpvi_v_valuation_mul_successor_power)) /\ exists bpvi_q_valuation_mul_successor_power_start. bpvi_u_valuation_mul_successor_power = bpvi_q_valuation_mul_successor_power_start * S ((S (0)) * bpvi_v_valuation_mul_successor_power) + (1))) /\ ((((exists bpvi_h_valuation_mul_successor_power_terminal. bpvi_h_valuation_mul_successor_power_terminal + S (bpvi_result_valuation_mul_successor) = S ((S (S (e + f))) * bpvi_v_valuation_mul_successor_power)) /\ exists bpvi_q_valuation_mul_successor_power_terminal. bpvi_u_valuation_mul_successor_power = bpvi_q_valuation_mul_successor_power_terminal * S ((S (S (e + f))) * bpvi_v_valuation_mul_successor_power) + (bpvi_result_valuation_mul_successor))) /\ forall bpvi_j_valuation_mul_successor_power. (exists bpvi_product_gap_valuation_mul_successor_power. bpvi_product_gap_valuation_mul_successor_power + S bpvi_j_valuation_mul_successor_power = S (e + f)) -> exists bpvi_factor_valuation_mul_successor_power bpvi_partial_valuation_mul_successor_power bpvi_successor_valuation_mul_successor_power. ((((exists bpvi_h_valuation_mul_successor_power_factor. bpvi_h_valuation_mul_successor_power_factor + S (bpvi_factor_valuation_mul_successor_power) = S ((S (bpvi_j_valuation_mul_successor_power)) * bpvi_c_valuation_mul_successor_power)) /\ exists bpvi_q_valuation_mul_successor_power_factor. bpvi_b_valuation_mul_successor_power = bpvi_q_valuation_mul_successor_power_factor * S ((S (bpvi_j_valuation_mul_successor_power)) * bpvi_c_valuation_mul_successor_power) + (bpvi_factor_valuation_mul_successor_power))) /\ ((((exists bpvi_h_valuation_mul_successor_power_partial. bpvi_h_valuation_mul_successor_power_partial + S (bpvi_partial_valuation_mul_successor_power) = S ((S (bpvi_j_valuation_mul_successor_power)) * bpvi_v_valuation_mul_successor_power)) /\ exists bpvi_q_valuation_mul_successor_power_partial. bpvi_u_valuation_mul_successor_power = bpvi_q_valuation_mul_successor_power_partial * S ((S (bpvi_j_valuation_mul_successor_power)) * bpvi_v_valuation_mul_successor_power) + (bpvi_partial_valuation_mul_successor_power))) /\ ((((exists bpvi_h_valuation_mul_successor_power_successor. bpvi_h_valuation_mul_successor_power_successor + S (bpvi_successor_valuation_mul_successor_power) = S ((S (S bpvi_j_valuation_mul_successor_power)) * bpvi_v_valuation_mul_successor_power)) /\ exists bpvi_q_valuation_mul_successor_power_successor. bpvi_u_valuation_mul_successor_power = bpvi_q_valuation_mul_successor_power_successor * S ((S (S bpvi_j_valuation_mul_successor_power)) * bpvi_v_valuation_mul_successor_power) + (bpvi_successor_valuation_mul_successor_power))) /\ bpvi_successor_valuation_mul_successor_power = bpvi_partial_valuation_mul_successor_power * bpvi_factor_valuation_mul_successor_power)))))))) /\ exists bpvi_divisor_factor_valuation_mul_successor. a * b = bpvi_result_valuation_mul_successor * bpvi_divisor_factor_valuation_mul_successor))

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

87 script commands · 15 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 (6)
01Fix variables and assumptionsL1–10

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 e
  5. L5
    intro f
  6. L6
    intro hp
  7. L7
    intro ha
  8. L8
    intro hb
  9. L9
    intro hvaluation_a
  10. L10
    intro hvaluation_b
02Establish hleftL11–18

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply power valuation exact cofactor.

  1. L11
    have hleft : ∃ bpd_result_bpd_mul_left_exact. ∃ bpd_cofactor_bpd_mul_left_exact. Pow(p,e,bpd_result_bpd_mul_left_exact) ∧ (a = bpd_result_bpd_mul_left_exact · bpd_cofactor_bpd_mul_left_exact ∧ (¬bpd_cofactor_bpd_mul_left_exact = 0 ∧ ¬Dvd(p,bpd_cofactor_bpd_mul_left_exact)))Definitions: Pow(p,e,bpd_result_bpd_mul_left_exact)Dvd(p,bpd_cofactor_bpd_mul_left_exact)Original native command in the exact edition
  2. L12
    specialize power_valuation_exact_cofactor p
  3. L13
    specialize power_valuation_exact_cofactor a
  4. L14
    specialize power_valuation_exact_cofactor e
  5. L15
    apply power_valuation_exact_cofactor
  6. L16
    exact hp
  7. L17
    exact ha
  8. L18
    exact hvaluation_a
03Separate the logical casesL19–23

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

  1. L19
    cases hleft
  2. L20
    cases hleft_witness
  3. L21
    cases hleft_witness_witness
  4. L22
    cases hleft_witness_witness_right
  5. L23
    cases hleft_witness_witness_right_right
04Establish hrightL24–31

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply power valuation exact cofactor.

  1. L24
    have hright : ∃ bpd_result_bpd_mul_right_exact. ∃ bpd_cofactor_bpd_mul_right_exact. Pow(p,f,bpd_result_bpd_mul_right_exact) ∧ (b = bpd_result_bpd_mul_right_exact · bpd_cofactor_bpd_mul_right_exact ∧ (¬bpd_cofactor_bpd_mul_right_exact = 0 ∧ ¬Dvd(p,bpd_cofactor_bpd_mul_right_exact)))Definitions: Pow(p,f,bpd_result_bpd_mul_right_exact)Dvd(p,bpd_cofactor_bpd_mul_right_exact)Original native command in the exact edition
  2. L25
    specialize power_valuation_exact_cofactor p
  3. L26
    specialize power_valuation_exact_cofactor b
  4. L27
    specialize power_valuation_exact_cofactor f
  5. L28
    apply power_valuation_exact_cofactor
  6. L29
    exact hp
  7. L30
    exact hb
  8. L31
    exact hvaluation_b
05Separate the logical casesL32–36

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

  1. L32
    cases hright
  2. L33
    cases hright_witness
  3. L34
    cases hright_witness_witness
  4. L35
    cases hright_witness_witness_right
  5. L36
    cases hright_witness_witness_right_right
06Establish hsum_powerL37–40

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

  1. L37
    have hsum_power : ∃ t. Pow(p,e + f,t)Definitions: Pow(p,e + f,t)Original native command in the exact edition
  2. L38
    specialize pow_exists p
  3. L39
    specialize pow_exists (e + f)
  4. L40
    exact pow_exists
07Separate the logical casesL41–41

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

  1. L41
    cases hsum_power
08Establish hpower_productL42–51

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

  1. L42
    have hpower_product : x4 = x * x2
  2. L43
    specialize pow_add p
  3. L44
    specialize pow_add e
  4. L45
    specialize pow_add f
  5. L46
    specialize pow_add (e + f)
  6. L47
    specialize pow_add x
  7. L48
    specialize pow_add x2
  8. L49
    specialize pow_add x4
  9. L50
    apply pow_add
  10. L51
    refl
09Use earlier factsL52–54

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

  1. L52
    exact hleft_witness_witness_left
  2. L53
    exact hright_witness_witness_left
  3. L54
    exact hsum_power_witness
10Establish hproduct_eqL55–64

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

  1. L55
    have hproduct_eq : a * b = x4 * (x1 * x3)
  2. L56
    trans (x * x1) * (x2 * x3)
  3. L57
    congr
  4. L58
    exact hleft_witness_witness_right_left
  5. L59
    exact hright_witness_witness_right_left
  6. L60
    trans (x * x2) * (x1 * x3)
  7. L61
    apply mul_shuffle_four
  8. L62
    congr
  9. L63
    symm
  10. L64
    exact hpower_product
11Calculate and transport equalitiesL65–65

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

  1. L65
    refl
12Establish hcofactor_nondivL66–75

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

  1. L66
    have hcofactor_nondiv : ¬Dvd(p,x1 · x3)Definitions: Dvd(p,x1 · x3)Original native command in the exact edition
  2. L67
    intro hcofactor_div
  3. L68
    specialize prime_nondivisor_mul p
  4. L69
    specialize prime_nondivisor_mul x1
  5. L70
    specialize prime_nondivisor_mul x3
  6. L71
    apply prime_nondivisor_mul
  7. L72
    exact hp
  8. L73
    exact hleft_witness_witness_right_right_right
  9. L74
    exact hright_witness_witness_right_right_right
  10. L75
    exact hcofactor_div
13Fix variables and assumptionsL76–76

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

  1. L76
    intro hsuccessor
14Use earlier factsL77–86

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

  1. L77
    apply hcofactor_nondiv
  2. L78
    specialize prime_power_successor_cancel_cofactor p
  3. L79
    specialize prime_power_successor_cancel_cofactor (e + f)
  4. L80
    specialize prime_power_successor_cancel_cofactor (a * b)
  5. L81
    specialize prime_power_successor_cancel_cofactor x4
  6. L82
    specialize prime_power_successor_cancel_cofactor (x1 * x3)
  7. L83
    apply prime_power_successor_cancel_cofactor
  8. L84
    exact hp
  9. L85
    exact hsum_power_witness
  10. L86
    exact hproduct_eq
15Use earlier factsL87–87

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

  1. L87
    exact hsuccessor

Library-wide reading audit

Original defined command ledger · 87 lines
  1. 0001intro p
  2. 0002intro a
  3. 0003intro b
  4. 0004intro e
  5. 0005intro f
  6. 0006intro hp
  7. 0007intro ha
  8. 0008intro hb
  9. 0009intro hvaluation_a
  10. 0010intro hvaluation_b
  11. 0011have hleft : ∃ bpd_result_bpd_mul_left_exact. ∃ bpd_cofactor_bpd_mul_left_exact. Pow(p,e,bpd_result_bpd_mul_left_exact) ∧ (a = bpd_result_bpd_mul_left_exact · bpd_cofactor_bpd_mul_left_exact ∧ (¬bpd_cofactor_bpd_mul_left_exact = 0 ∧ ¬Dvd(p,bpd_cofactor_bpd_mul_left_exact)))
    Exact native replay linehave hleft : exists bpd_result_bpd_mul_left_exact bpd_cofactor_bpd_mul_left_exact. ((exists ff_b_bpd_mul_left_exact_power ff_c_bpd_mul_left_exact_power. ((forall ff_i_bpd_mul_left_exact_power_repeat. (exists ff_lt_bpd_mul_left_exact_power_repeat_bound. ff_lt_bpd_mul_left_exact_power_repeat_bound + S ff_i_bpd_mul_left_exact_power_repeat = e) -> (((exists ff_h_bpd_mul_left_exact_power_repeat_decoded. ff_h_bpd_mul_left_exact_power_repeat_decoded + S (p) = S ((S (ff_i_bpd_mul_left_exact_power_repeat)) * ff_c_bpd_mul_left_exact_power)) /\ exists ff_q_bpd_mul_left_exact_power_repeat_decoded. ff_b_bpd_mul_left_exact_power = ff_q_bpd_mul_left_exact_power_repeat_decoded * S ((S (ff_i_bpd_mul_left_exact_power_repeat)) * ff_c_bpd_mul_left_exact_power) + (p)))) /\ (exists ff_u_bpd_mul_left_exact_power_product ff_v_bpd_mul_left_exact_power_product. ((((exists ff_h_bpd_mul_left_exact_power_product_start. ff_h_bpd_mul_left_exact_power_product_start + S (1) = S ((S (0)) * ff_v_bpd_mul_left_exact_power_product)) /\ exists ff_q_bpd_mul_left_exact_power_product_start. ff_u_bpd_mul_left_exact_power_product = ff_q_bpd_mul_left_exact_power_product_start * S ((S (0)) * ff_v_bpd_mul_left_exact_power_product) + (1))) /\ ((((exists ff_h_bpd_mul_left_exact_power_product_terminal. ff_h_bpd_mul_left_exact_power_product_terminal + S (bpd_result_bpd_mul_left_exact) = S ((S (e)) * ff_v_bpd_mul_left_exact_power_product)) /\ exists ff_q_bpd_mul_left_exact_power_product_terminal. ff_u_bpd_mul_left_exact_power_product = ff_q_bpd_mul_left_exact_power_product_terminal * S ((S (e)) * ff_v_bpd_mul_left_exact_power_product) + (bpd_result_bpd_mul_left_exact))) /\ forall ff_i_bpd_mul_left_exact_power_product. (exists ff_lt_bpd_mul_left_exact_power_product_bound. ff_lt_bpd_mul_left_exact_power_product_bound + S ff_i_bpd_mul_left_exact_power_product = e) -> exists ff_p_bpd_mul_left_exact_power_product ff_r_bpd_mul_left_exact_power_product ff_s_bpd_mul_left_exact_power_product. ((((exists ff_h_bpd_mul_left_exact_power_product_factor. ff_h_bpd_mul_left_exact_power_product_factor + S (ff_p_bpd_mul_left_exact_power_product) = S ((S (ff_i_bpd_mul_left_exact_power_product)) * ff_c_bpd_mul_left_exact_power)) /\ exists ff_q_bpd_mul_left_exact_power_product_factor. ff_b_bpd_mul_left_exact_power = ff_q_bpd_mul_left_exact_power_product_factor * S ((S (ff_i_bpd_mul_left_exact_power_product)) * ff_c_bpd_mul_left_exact_power) + (ff_p_bpd_mul_left_exact_power_product))) /\ ((((exists ff_h_bpd_mul_left_exact_power_product_partial. ff_h_bpd_mul_left_exact_power_product_partial + S (ff_r_bpd_mul_left_exact_power_product) = S ((S (ff_i_bpd_mul_left_exact_power_product)) * ff_v_bpd_mul_left_exact_power_product)) /\ exists ff_q_bpd_mul_left_exact_power_product_partial. ff_u_bpd_mul_left_exact_power_product = ff_q_bpd_mul_left_exact_power_product_partial * S ((S (ff_i_bpd_mul_left_exact_power_product)) * ff_v_bpd_mul_left_exact_power_product) + (ff_r_bpd_mul_left_exact_power_product))) /\ ((((exists ff_h_bpd_mul_left_exact_power_product_successor. ff_h_bpd_mul_left_exact_power_product_successor + S (ff_s_bpd_mul_left_exact_power_product) = S ((S (S ff_i_bpd_mul_left_exact_power_product)) * ff_v_bpd_mul_left_exact_power_product)) /\ exists ff_q_bpd_mul_left_exact_power_product_successor. ff_u_bpd_mul_left_exact_power_product = ff_q_bpd_mul_left_exact_power_product_successor * S ((S (S ff_i_bpd_mul_left_exact_power_product)) * ff_v_bpd_mul_left_exact_power_product) + (ff_s_bpd_mul_left_exact_power_product))) /\ ff_s_bpd_mul_left_exact_power_product = ff_r_bpd_mul_left_exact_power_product * ff_p_bpd_mul_left_exact_power_product)))))))) /\ ((a = bpd_result_bpd_mul_left_exact * bpd_cofactor_bpd_mul_left_exact) /\ ((~(bpd_cofactor_bpd_mul_left_exact = 0)) /\ (~(exists bpd_factor_bpd_mul_left_exact_prime. bpd_cofactor_bpd_mul_left_exact = (p) * bpd_factor_bpd_mul_left_exact_prime)))))
  12. 0012specialize power_valuation_exact_cofactor p
  13. 0013specialize power_valuation_exact_cofactor a
  14. 0014specialize power_valuation_exact_cofactor e
  15. 0015apply power_valuation_exact_cofactor
  16. 0016exact hp
  17. 0017exact ha
  18. 0018exact hvaluation_a
  19. 0019cases hleft
  20. 0020cases hleft_witness
  21. 0021cases hleft_witness_witness
  22. 0022cases hleft_witness_witness_right
  23. 0023cases hleft_witness_witness_right_right
  24. 0024have hright : ∃ bpd_result_bpd_mul_right_exact. ∃ bpd_cofactor_bpd_mul_right_exact. Pow(p,f,bpd_result_bpd_mul_right_exact) ∧ (b = bpd_result_bpd_mul_right_exact · bpd_cofactor_bpd_mul_right_exact ∧ (¬bpd_cofactor_bpd_mul_right_exact = 0 ∧ ¬Dvd(p,bpd_cofactor_bpd_mul_right_exact)))
    Exact native replay linehave hright : exists bpd_result_bpd_mul_right_exact bpd_cofactor_bpd_mul_right_exact. ((exists ff_b_bpd_mul_right_exact_power ff_c_bpd_mul_right_exact_power. ((forall ff_i_bpd_mul_right_exact_power_repeat. (exists ff_lt_bpd_mul_right_exact_power_repeat_bound. ff_lt_bpd_mul_right_exact_power_repeat_bound + S ff_i_bpd_mul_right_exact_power_repeat = f) -> (((exists ff_h_bpd_mul_right_exact_power_repeat_decoded. ff_h_bpd_mul_right_exact_power_repeat_decoded + S (p) = S ((S (ff_i_bpd_mul_right_exact_power_repeat)) * ff_c_bpd_mul_right_exact_power)) /\ exists ff_q_bpd_mul_right_exact_power_repeat_decoded. ff_b_bpd_mul_right_exact_power = ff_q_bpd_mul_right_exact_power_repeat_decoded * S ((S (ff_i_bpd_mul_right_exact_power_repeat)) * ff_c_bpd_mul_right_exact_power) + (p)))) /\ (exists ff_u_bpd_mul_right_exact_power_product ff_v_bpd_mul_right_exact_power_product. ((((exists ff_h_bpd_mul_right_exact_power_product_start. ff_h_bpd_mul_right_exact_power_product_start + S (1) = S ((S (0)) * ff_v_bpd_mul_right_exact_power_product)) /\ exists ff_q_bpd_mul_right_exact_power_product_start. ff_u_bpd_mul_right_exact_power_product = ff_q_bpd_mul_right_exact_power_product_start * S ((S (0)) * ff_v_bpd_mul_right_exact_power_product) + (1))) /\ ((((exists ff_h_bpd_mul_right_exact_power_product_terminal. ff_h_bpd_mul_right_exact_power_product_terminal + S (bpd_result_bpd_mul_right_exact) = S ((S (f)) * ff_v_bpd_mul_right_exact_power_product)) /\ exists ff_q_bpd_mul_right_exact_power_product_terminal. ff_u_bpd_mul_right_exact_power_product = ff_q_bpd_mul_right_exact_power_product_terminal * S ((S (f)) * ff_v_bpd_mul_right_exact_power_product) + (bpd_result_bpd_mul_right_exact))) /\ forall ff_i_bpd_mul_right_exact_power_product. (exists ff_lt_bpd_mul_right_exact_power_product_bound. ff_lt_bpd_mul_right_exact_power_product_bound + S ff_i_bpd_mul_right_exact_power_product = f) -> exists ff_p_bpd_mul_right_exact_power_product ff_r_bpd_mul_right_exact_power_product ff_s_bpd_mul_right_exact_power_product. ((((exists ff_h_bpd_mul_right_exact_power_product_factor. ff_h_bpd_mul_right_exact_power_product_factor + S (ff_p_bpd_mul_right_exact_power_product) = S ((S (ff_i_bpd_mul_right_exact_power_product)) * ff_c_bpd_mul_right_exact_power)) /\ exists ff_q_bpd_mul_right_exact_power_product_factor. ff_b_bpd_mul_right_exact_power = ff_q_bpd_mul_right_exact_power_product_factor * S ((S (ff_i_bpd_mul_right_exact_power_product)) * ff_c_bpd_mul_right_exact_power) + (ff_p_bpd_mul_right_exact_power_product))) /\ ((((exists ff_h_bpd_mul_right_exact_power_product_partial. ff_h_bpd_mul_right_exact_power_product_partial + S (ff_r_bpd_mul_right_exact_power_product) = S ((S (ff_i_bpd_mul_right_exact_power_product)) * ff_v_bpd_mul_right_exact_power_product)) /\ exists ff_q_bpd_mul_right_exact_power_product_partial. ff_u_bpd_mul_right_exact_power_product = ff_q_bpd_mul_right_exact_power_product_partial * S ((S (ff_i_bpd_mul_right_exact_power_product)) * ff_v_bpd_mul_right_exact_power_product) + (ff_r_bpd_mul_right_exact_power_product))) /\ ((((exists ff_h_bpd_mul_right_exact_power_product_successor. ff_h_bpd_mul_right_exact_power_product_successor + S (ff_s_bpd_mul_right_exact_power_product) = S ((S (S ff_i_bpd_mul_right_exact_power_product)) * ff_v_bpd_mul_right_exact_power_product)) /\ exists ff_q_bpd_mul_right_exact_power_product_successor. ff_u_bpd_mul_right_exact_power_product = ff_q_bpd_mul_right_exact_power_product_successor * S ((S (S ff_i_bpd_mul_right_exact_power_product)) * ff_v_bpd_mul_right_exact_power_product) + (ff_s_bpd_mul_right_exact_power_product))) /\ ff_s_bpd_mul_right_exact_power_product = ff_r_bpd_mul_right_exact_power_product * ff_p_bpd_mul_right_exact_power_product)))))))) /\ ((b = bpd_result_bpd_mul_right_exact * bpd_cofactor_bpd_mul_right_exact) /\ ((~(bpd_cofactor_bpd_mul_right_exact = 0)) /\ (~(exists bpd_factor_bpd_mul_right_exact_prime. bpd_cofactor_bpd_mul_right_exact = (p) * bpd_factor_bpd_mul_right_exact_prime)))))
  25. 0025specialize power_valuation_exact_cofactor p
  26. 0026specialize power_valuation_exact_cofactor b
  27. 0027specialize power_valuation_exact_cofactor f
  28. 0028apply power_valuation_exact_cofactor
  29. 0029exact hp
  30. 0030exact hb
  31. 0031exact hvaluation_b
  32. 0032cases hright
  33. 0033cases hright_witness
  34. 0034cases hright_witness_witness
  35. 0035cases hright_witness_witness_right
  36. 0036cases hright_witness_witness_right_right
  37. 0037have hsum_power : ∃ t. Pow(p,e + f,t)
    Exact native replay linehave hsum_power : exists t. (exists bpvi_b_bpd_mul_sum_power bpvi_c_bpd_mul_sum_power. ((forall bpvi_i_bpd_mul_sum_power. (exists bpvi_repeat_gap_bpd_mul_sum_power. bpvi_repeat_gap_bpd_mul_sum_power + S bpvi_i_bpd_mul_sum_power = e + f) -> (((exists bpvi_h_bpd_mul_sum_power_repeat. bpvi_h_bpd_mul_sum_power_repeat + S (p) = S ((S (bpvi_i_bpd_mul_sum_power)) * bpvi_c_bpd_mul_sum_power)) /\ exists bpvi_q_bpd_mul_sum_power_repeat. bpvi_b_bpd_mul_sum_power = bpvi_q_bpd_mul_sum_power_repeat * S ((S (bpvi_i_bpd_mul_sum_power)) * bpvi_c_bpd_mul_sum_power) + (p)))) /\ (exists bpvi_u_bpd_mul_sum_power bpvi_v_bpd_mul_sum_power. ((((exists bpvi_h_bpd_mul_sum_power_start. bpvi_h_bpd_mul_sum_power_start + S (1) = S ((S (0)) * bpvi_v_bpd_mul_sum_power)) /\ exists bpvi_q_bpd_mul_sum_power_start. bpvi_u_bpd_mul_sum_power = bpvi_q_bpd_mul_sum_power_start * S ((S (0)) * bpvi_v_bpd_mul_sum_power) + (1))) /\ ((((exists bpvi_h_bpd_mul_sum_power_terminal. bpvi_h_bpd_mul_sum_power_terminal + S (t) = S ((S (e + f)) * bpvi_v_bpd_mul_sum_power)) /\ exists bpvi_q_bpd_mul_sum_power_terminal. bpvi_u_bpd_mul_sum_power = bpvi_q_bpd_mul_sum_power_terminal * S ((S (e + f)) * bpvi_v_bpd_mul_sum_power) + (t))) /\ forall bpvi_j_bpd_mul_sum_power. (exists bpvi_product_gap_bpd_mul_sum_power. bpvi_product_gap_bpd_mul_sum_power + S bpvi_j_bpd_mul_sum_power = e + f) -> exists bpvi_factor_bpd_mul_sum_power bpvi_partial_bpd_mul_sum_power bpvi_successor_bpd_mul_sum_power. ((((exists bpvi_h_bpd_mul_sum_power_factor. bpvi_h_bpd_mul_sum_power_factor + S (bpvi_factor_bpd_mul_sum_power) = S ((S (bpvi_j_bpd_mul_sum_power)) * bpvi_c_bpd_mul_sum_power)) /\ exists bpvi_q_bpd_mul_sum_power_factor. bpvi_b_bpd_mul_sum_power = bpvi_q_bpd_mul_sum_power_factor * S ((S (bpvi_j_bpd_mul_sum_power)) * bpvi_c_bpd_mul_sum_power) + (bpvi_factor_bpd_mul_sum_power))) /\ ((((exists bpvi_h_bpd_mul_sum_power_partial. bpvi_h_bpd_mul_sum_power_partial + S (bpvi_partial_bpd_mul_sum_power) = S ((S (bpvi_j_bpd_mul_sum_power)) * bpvi_v_bpd_mul_sum_power)) /\ exists bpvi_q_bpd_mul_sum_power_partial. bpvi_u_bpd_mul_sum_power = bpvi_q_bpd_mul_sum_power_partial * S ((S (bpvi_j_bpd_mul_sum_power)) * bpvi_v_bpd_mul_sum_power) + (bpvi_partial_bpd_mul_sum_power))) /\ ((((exists bpvi_h_bpd_mul_sum_power_successor. bpvi_h_bpd_mul_sum_power_successor + S (bpvi_successor_bpd_mul_sum_power) = S ((S (S bpvi_j_bpd_mul_sum_power)) * bpvi_v_bpd_mul_sum_power)) /\ exists bpvi_q_bpd_mul_sum_power_successor. bpvi_u_bpd_mul_sum_power = bpvi_q_bpd_mul_sum_power_successor * S ((S (S bpvi_j_bpd_mul_sum_power)) * bpvi_v_bpd_mul_sum_power) + (bpvi_successor_bpd_mul_sum_power))) /\ bpvi_successor_bpd_mul_sum_power = bpvi_partial_bpd_mul_sum_power * bpvi_factor_bpd_mul_sum_power))))))))
  38. 0038specialize pow_exists p
  39. 0039specialize pow_exists (e + f)
  40. 0040exact pow_exists
  41. 0041cases hsum_power
  42. 0042have hpower_product : x4 = x * x2
  43. 0043specialize pow_add p
  44. 0044specialize pow_add e
  45. 0045specialize pow_add f
  46. 0046specialize pow_add (e + f)
  47. 0047specialize pow_add x
  48. 0048specialize pow_add x2
  49. 0049specialize pow_add x4
  50. 0050apply pow_add
  51. 0051refl
  52. 0052exact hleft_witness_witness_left
  53. 0053exact hright_witness_witness_left
  54. 0054exact hsum_power_witness
  55. 0055have hproduct_eq : a * b = x4 * (x1 * x3)
  56. 0056trans (x * x1) * (x2 * x3)
  57. 0057congr
  58. 0058exact hleft_witness_witness_right_left
  59. 0059exact hright_witness_witness_right_left
  60. 0060trans (x * x2) * (x1 * x3)
  61. 0061apply mul_shuffle_four
  62. 0062congr
  63. 0063symm
  64. 0064exact hpower_product
  65. 0065refl
  66. 0066have hcofactor_nondiv : ¬Dvd(p,x1 · x3)
    Exact native replay linehave hcofactor_nondiv : ~(exists u. x1 * x3 = p * u)
  67. 0067intro hcofactor_div
  68. 0068specialize prime_nondivisor_mul p
  69. 0069specialize prime_nondivisor_mul x1
  70. 0070specialize prime_nondivisor_mul x3
  71. 0071apply prime_nondivisor_mul
  72. 0072exact hp
  73. 0073exact hleft_witness_witness_right_right_right
  74. 0074exact hright_witness_witness_right_right_right
  75. 0075exact hcofactor_div
  76. 0076intro hsuccessor
  77. 0077apply hcofactor_nondiv
  78. 0078specialize prime_power_successor_cancel_cofactor p
  79. 0079specialize prime_power_successor_cancel_cofactor (e + f)
  80. 0080specialize prime_power_successor_cancel_cofactor (a * b)
  81. 0081specialize prime_power_successor_cancel_cofactor x4
  82. 0082specialize prime_power_successor_cancel_cofactor (x1 * x3)
  83. 0083apply prime_power_successor_cancel_cofactor
  84. 0084exact hp
  85. 0085exact hsum_power_witness
  86. 0086exact hproduct_eq
  87. 0087exact hsuccessor