BT00QR · Bertrand theorem

power_valuation_mul_lower

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

The valuation of a nonzero product is at least the sum of factor valuations.

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

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

5 occurrences

In local proof propositions

4 occurrences

Exact expanded native-PA statement
forall p a b e f g. ((~(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 bpd_gap_bpd_valuation_product_selected_bound. bpd_gap_bpd_valuation_product_selected_bound + (g) = (a * b)) /\ (exists bpvi_result_bpd_valuation_product_selected. ((exists bpvi_b_bpd_valuation_product_selected_power bpvi_c_bpd_valuation_product_selected_power. ((forall bpvi_i_bpd_valuation_product_selected_power. (exists bpvi_repeat_gap_bpd_valuation_product_selected_power. bpvi_repeat_gap_bpd_valuation_product_selected_power + S bpvi_i_bpd_valuation_product_selected_power = g) -> (((exists bpvi_h_bpd_valuation_product_selected_power_repeat. bpvi_h_bpd_valuation_product_selected_power_repeat + S (p) = S ((S (bpvi_i_bpd_valuation_product_selected_power)) * bpvi_c_bpd_valuation_product_selected_power)) /\ exists bpvi_q_bpd_valuation_product_selected_power_repeat. bpvi_b_bpd_valuation_product_selected_power = bpvi_q_bpd_valuation_product_selected_power_repeat * S ((S (bpvi_i_bpd_valuation_product_selected_power)) * bpvi_c_bpd_valuation_product_selected_power) + (p)))) /\ (exists bpvi_u_bpd_valuation_product_selected_power bpvi_v_bpd_valuation_product_selected_power. ((((exists bpvi_h_bpd_valuation_product_selected_power_start. bpvi_h_bpd_valuation_product_selected_power_start + S (1) = S ((S (0)) * bpvi_v_bpd_valuation_product_selected_power)) /\ exists bpvi_q_bpd_valuation_product_selected_power_start. bpvi_u_bpd_valuation_product_selected_power = bpvi_q_bpd_valuation_product_selected_power_start * S ((S (0)) * bpvi_v_bpd_valuation_product_selected_power) + (1))) /\ ((((exists bpvi_h_bpd_valuation_product_selected_power_terminal. bpvi_h_bpd_valuation_product_selected_power_terminal + S (bpvi_result_bpd_valuation_product_selected) = S ((S (g)) * bpvi_v_bpd_valuation_product_selected_power)) /\ exists bpvi_q_bpd_valuation_product_selected_power_terminal. bpvi_u_bpd_valuation_product_selected_power = bpvi_q_bpd_valuation_product_selected_power_terminal * S ((S (g)) * bpvi_v_bpd_valuation_product_selected_power) + (bpvi_result_bpd_valuation_product_selected))) /\ forall bpvi_j_bpd_valuation_product_selected_power. (exists bpvi_product_gap_bpd_valuation_product_selected_power. bpvi_product_gap_bpd_valuation_product_selected_power + S bpvi_j_bpd_valuation_product_selected_power = g) -> exists bpvi_factor_bpd_valuation_product_selected_power bpvi_partial_bpd_valuation_product_selected_power bpvi_successor_bpd_valuation_product_selected_power. ((((exists bpvi_h_bpd_valuation_product_selected_power_factor. bpvi_h_bpd_valuation_product_selected_power_factor + S (bpvi_factor_bpd_valuation_product_selected_power) = S ((S (bpvi_j_bpd_valuation_product_selected_power)) * bpvi_c_bpd_valuation_product_selected_power)) /\ exists bpvi_q_bpd_valuation_product_selected_power_factor. bpvi_b_bpd_valuation_product_selected_power = bpvi_q_bpd_valuation_product_selected_power_factor * S ((S (bpvi_j_bpd_valuation_product_selected_power)) * bpvi_c_bpd_valuation_product_selected_power) + (bpvi_factor_bpd_valuation_product_selected_power))) /\ ((((exists bpvi_h_bpd_valuation_product_selected_power_partial. bpvi_h_bpd_valuation_product_selected_power_partial + S (bpvi_partial_bpd_valuation_product_selected_power) = S ((S (bpvi_j_bpd_valuation_product_selected_power)) * bpvi_v_bpd_valuation_product_selected_power)) /\ exists bpvi_q_bpd_valuation_product_selected_power_partial. bpvi_u_bpd_valuation_product_selected_power = bpvi_q_bpd_valuation_product_selected_power_partial * S ((S (bpvi_j_bpd_valuation_product_selected_power)) * bpvi_v_bpd_valuation_product_selected_power) + (bpvi_partial_bpd_valuation_product_selected_power))) /\ ((((exists bpvi_h_bpd_valuation_product_selected_power_successor. bpvi_h_bpd_valuation_product_selected_power_successor + S (bpvi_successor_bpd_valuation_product_selected_power) = S ((S (S bpvi_j_bpd_valuation_product_selected_power)) * bpvi_v_bpd_valuation_product_selected_power)) /\ exists bpvi_q_bpd_valuation_product_selected_power_successor. bpvi_u_bpd_valuation_product_selected_power = bpvi_q_bpd_valuation_product_selected_power_successor * S ((S (S bpvi_j_bpd_valuation_product_selected_power)) * bpvi_v_bpd_valuation_product_selected_power) + (bpvi_successor_bpd_valuation_product_selected_power))) /\ bpvi_successor_bpd_valuation_product_selected_power = bpvi_partial_bpd_valuation_product_selected_power * bpvi_factor_bpd_valuation_product_selected_power)))))))) /\ exists bpvi_divisor_factor_bpd_valuation_product_selected. a * b = bpvi_result_bpd_valuation_product_selected * bpvi_divisor_factor_bpd_valuation_product_selected))) /\ forall bpd_candidate_bpd_valuation_product. (exists bpd_gap_bpd_valuation_product_candidate_bound. bpd_gap_bpd_valuation_product_candidate_bound + (bpd_candidate_bpd_valuation_product) = (a * b)) -> (exists bpvi_result_bpd_valuation_product_candidate. ((exists bpvi_b_bpd_valuation_product_candidate_power bpvi_c_bpd_valuation_product_candidate_power. ((forall bpvi_i_bpd_valuation_product_candidate_power. (exists bpvi_repeat_gap_bpd_valuation_product_candidate_power. bpvi_repeat_gap_bpd_valuation_product_candidate_power + S bpvi_i_bpd_valuation_product_candidate_power = bpd_candidate_bpd_valuation_product) -> (((exists bpvi_h_bpd_valuation_product_candidate_power_repeat. bpvi_h_bpd_valuation_product_candidate_power_repeat + S (p) = S ((S (bpvi_i_bpd_valuation_product_candidate_power)) * bpvi_c_bpd_valuation_product_candidate_power)) /\ exists bpvi_q_bpd_valuation_product_candidate_power_repeat. bpvi_b_bpd_valuation_product_candidate_power = bpvi_q_bpd_valuation_product_candidate_power_repeat * S ((S (bpvi_i_bpd_valuation_product_candidate_power)) * bpvi_c_bpd_valuation_product_candidate_power) + (p)))) /\ (exists bpvi_u_bpd_valuation_product_candidate_power bpvi_v_bpd_valuation_product_candidate_power. ((((exists bpvi_h_bpd_valuation_product_candidate_power_start. bpvi_h_bpd_valuation_product_candidate_power_start + S (1) = S ((S (0)) * bpvi_v_bpd_valuation_product_candidate_power)) /\ exists bpvi_q_bpd_valuation_product_candidate_power_start. bpvi_u_bpd_valuation_product_candidate_power = bpvi_q_bpd_valuation_product_candidate_power_start * S ((S (0)) * bpvi_v_bpd_valuation_product_candidate_power) + (1))) /\ ((((exists bpvi_h_bpd_valuation_product_candidate_power_terminal. bpvi_h_bpd_valuation_product_candidate_power_terminal + S (bpvi_result_bpd_valuation_product_candidate) = S ((S (bpd_candidate_bpd_valuation_product)) * bpvi_v_bpd_valuation_product_candidate_power)) /\ exists bpvi_q_bpd_valuation_product_candidate_power_terminal. bpvi_u_bpd_valuation_product_candidate_power = bpvi_q_bpd_valuation_product_candidate_power_terminal * S ((S (bpd_candidate_bpd_valuation_product)) * bpvi_v_bpd_valuation_product_candidate_power) + (bpvi_result_bpd_valuation_product_candidate))) /\ forall bpvi_j_bpd_valuation_product_candidate_power. (exists bpvi_product_gap_bpd_valuation_product_candidate_power. bpvi_product_gap_bpd_valuation_product_candidate_power + S bpvi_j_bpd_valuation_product_candidate_power = bpd_candidate_bpd_valuation_product) -> exists bpvi_factor_bpd_valuation_product_candidate_power bpvi_partial_bpd_valuation_product_candidate_power bpvi_successor_bpd_valuation_product_candidate_power. ((((exists bpvi_h_bpd_valuation_product_candidate_power_factor. bpvi_h_bpd_valuation_product_candidate_power_factor + S (bpvi_factor_bpd_valuation_product_candidate_power) = S ((S (bpvi_j_bpd_valuation_product_candidate_power)) * bpvi_c_bpd_valuation_product_candidate_power)) /\ exists bpvi_q_bpd_valuation_product_candidate_power_factor. bpvi_b_bpd_valuation_product_candidate_power = bpvi_q_bpd_valuation_product_candidate_power_factor * S ((S (bpvi_j_bpd_valuation_product_candidate_power)) * bpvi_c_bpd_valuation_product_candidate_power) + (bpvi_factor_bpd_valuation_product_candidate_power))) /\ ((((exists bpvi_h_bpd_valuation_product_candidate_power_partial. bpvi_h_bpd_valuation_product_candidate_power_partial + S (bpvi_partial_bpd_valuation_product_candidate_power) = S ((S (bpvi_j_bpd_valuation_product_candidate_power)) * bpvi_v_bpd_valuation_product_candidate_power)) /\ exists bpvi_q_bpd_valuation_product_candidate_power_partial. bpvi_u_bpd_valuation_product_candidate_power = bpvi_q_bpd_valuation_product_candidate_power_partial * S ((S (bpvi_j_bpd_valuation_product_candidate_power)) * bpvi_v_bpd_valuation_product_candidate_power) + (bpvi_partial_bpd_valuation_product_candidate_power))) /\ ((((exists bpvi_h_bpd_valuation_product_candidate_power_successor. bpvi_h_bpd_valuation_product_candidate_power_successor + S (bpvi_successor_bpd_valuation_product_candidate_power) = S ((S (S bpvi_j_bpd_valuation_product_candidate_power)) * bpvi_v_bpd_valuation_product_candidate_power)) /\ exists bpvi_q_bpd_valuation_product_candidate_power_successor. bpvi_u_bpd_valuation_product_candidate_power = bpvi_q_bpd_valuation_product_candidate_power_successor * S ((S (S bpvi_j_bpd_valuation_product_candidate_power)) * bpvi_v_bpd_valuation_product_candidate_power) + (bpvi_successor_bpd_valuation_product_candidate_power))) /\ bpvi_successor_bpd_valuation_product_candidate_power = bpvi_partial_bpd_valuation_product_candidate_power * bpvi_factor_bpd_valuation_product_candidate_power)))))))) /\ exists bpvi_divisor_factor_bpd_valuation_product_candidate. a * b = bpvi_result_bpd_valuation_product_candidate * bpvi_divisor_factor_bpd_valuation_product_candidate)) -> (exists bpd_gap_bpd_valuation_product_maximal. bpd_gap_bpd_valuation_product_maximal + (bpd_candidate_bpd_valuation_product) = (g))) -> (exists bpd_gap_valuation_mul_lower. bpd_gap_valuation_mul_lower + (e + f) = (g))

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

59 script commands · 9 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 a
  3. L3
    intro b
  4. L4
    intro e
  5. L5
    intro f
  6. L6
    intro g
  7. L7
    intro hp
  8. L8
    intro ha
  9. L9
    intro hb
  10. L10
    intro hvaluation_a
02Fix variables and assumptionsL11–12

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

  1. L11
    intro hvaluation_b
  2. L12
    intro hvaluation_product
03Establish hleftL13–18

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

  1. L13
    have hleft : PowerDivides(p,e,a)Definitions: PowerDivides(p,e,a)Original native command in the exact edition
  2. L14
    specialize power_valuation_power_divides p
  3. L15
    specialize power_valuation_power_divides a
  4. L16
    specialize power_valuation_power_divides e
  5. L17
    apply power_valuation_power_divides
  6. L18
    exact hvaluation_a
04Establish hrightL19–24

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

  1. L19
    have hright : PowerDivides(p,f,b)Definitions: PowerDivides(p,f,b)Original native command in the exact edition
  2. L20
    specialize power_valuation_power_divides p
  3. L21
    specialize power_valuation_power_divides b
  4. L22
    specialize power_valuation_power_divides f
  5. L23
    apply power_valuation_power_divides
  6. L24
    exact hvaluation_b
05Establish hsumL25–34

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

  1. L25
    have hsum : PowerDivides(p,e + f,a · b)Definitions: PowerDivides(p,e + f,a · b)Original native command in the exact edition
  2. L26
    specialize power_divides_add_mul p
  3. L27
    specialize power_divides_add_mul e
  4. L28
    specialize power_divides_add_mul f
  5. L29
    specialize power_divides_add_mul (e + f)
  6. L30
    specialize power_divides_add_mul a
  7. L31
    specialize power_divides_add_mul b
  8. L32
    apply power_divides_add_mul
  9. L33
    refl
  10. L34
    exact hleft
06Use earlier factsL35–35

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

  1. L35
    exact hright
07Establish hproduct0L36–43

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

  1. L36
    have hproduct0 : ~(a * b = 0)
  2. L37
    intro hproductzero
  3. L38
    specialize mul_ne_zero a
  4. L39
    specialize mul_ne_zero b
  5. L40
    apply mul_ne_zero
  6. L41
    exact ha
  7. L42
    exact hb
  8. L43
    exact hproductzero
08Establish hsum_boundL44–53

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime power divides exponent le value.

  1. L44
    have hsum_bound : Le(e + f,a · b)Definitions: Le(e + f,a · b)Original native command in the exact edition
  2. L45
    specialize prime_power_divides_exponent_le_value p
  3. L46
    specialize prime_power_divides_exponent_le_value (e + f)
  4. L47
    specialize prime_power_divides_exponent_le_value (a * b)
  5. L48
    apply prime_power_divides_exponent_le_value
  6. L49
    exact hp
  7. L50
    exact hproduct0
  8. L51
    exact hsum
  9. L52
    specialize power_valuation_dominates p
  10. L53
    specialize power_valuation_dominates (a * b)
09Use earlier factsL54–59

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

  1. L54
    specialize power_valuation_dominates g
  2. L55
    specialize power_valuation_dominates (e + f)
  3. L56
    apply power_valuation_dominates
  4. L57
    exact hvaluation_product
  5. L58
    exact hsum_bound
  6. L59
    exact hsum

Library-wide reading audit

Original defined command ledger · 59 lines
  1. 0001intro p
  2. 0002intro a
  3. 0003intro b
  4. 0004intro e
  5. 0005intro f
  6. 0006intro g
  7. 0007intro hp
  8. 0008intro ha
  9. 0009intro hb
  10. 0010intro hvaluation_a
  11. 0011intro hvaluation_b
  12. 0012intro hvaluation_product
  13. 0013have hleft : PowerDivides(p,e,a)
    Exact native replay linehave hleft : exists bpv_result_bpd_mul_lower_left. ((exists ff_b_bpd_mul_lower_left_power ff_c_bpd_mul_lower_left_power. ((forall ff_i_bpd_mul_lower_left_power_repeat. (exists ff_lt_bpd_mul_lower_left_power_repeat_bound. ff_lt_bpd_mul_lower_left_power_repeat_bound + S ff_i_bpd_mul_lower_left_power_repeat = e) -> (((exists ff_h_bpd_mul_lower_left_power_repeat_decoded. ff_h_bpd_mul_lower_left_power_repeat_decoded + S (p) = S ((S (ff_i_bpd_mul_lower_left_power_repeat)) * ff_c_bpd_mul_lower_left_power)) /\ exists ff_q_bpd_mul_lower_left_power_repeat_decoded. ff_b_bpd_mul_lower_left_power = ff_q_bpd_mul_lower_left_power_repeat_decoded * S ((S (ff_i_bpd_mul_lower_left_power_repeat)) * ff_c_bpd_mul_lower_left_power) + (p)))) /\ (exists ff_u_bpd_mul_lower_left_power_product ff_v_bpd_mul_lower_left_power_product. ((((exists ff_h_bpd_mul_lower_left_power_product_start. ff_h_bpd_mul_lower_left_power_product_start + S (1) = S ((S (0)) * ff_v_bpd_mul_lower_left_power_product)) /\ exists ff_q_bpd_mul_lower_left_power_product_start. ff_u_bpd_mul_lower_left_power_product = ff_q_bpd_mul_lower_left_power_product_start * S ((S (0)) * ff_v_bpd_mul_lower_left_power_product) + (1))) /\ ((((exists ff_h_bpd_mul_lower_left_power_product_terminal. ff_h_bpd_mul_lower_left_power_product_terminal + S (bpv_result_bpd_mul_lower_left) = S ((S (e)) * ff_v_bpd_mul_lower_left_power_product)) /\ exists ff_q_bpd_mul_lower_left_power_product_terminal. ff_u_bpd_mul_lower_left_power_product = ff_q_bpd_mul_lower_left_power_product_terminal * S ((S (e)) * ff_v_bpd_mul_lower_left_power_product) + (bpv_result_bpd_mul_lower_left))) /\ forall ff_i_bpd_mul_lower_left_power_product. (exists ff_lt_bpd_mul_lower_left_power_product_bound. ff_lt_bpd_mul_lower_left_power_product_bound + S ff_i_bpd_mul_lower_left_power_product = e) -> exists ff_p_bpd_mul_lower_left_power_product ff_r_bpd_mul_lower_left_power_product ff_s_bpd_mul_lower_left_power_product. ((((exists ff_h_bpd_mul_lower_left_power_product_factor. ff_h_bpd_mul_lower_left_power_product_factor + S (ff_p_bpd_mul_lower_left_power_product) = S ((S (ff_i_bpd_mul_lower_left_power_product)) * ff_c_bpd_mul_lower_left_power)) /\ exists ff_q_bpd_mul_lower_left_power_product_factor. ff_b_bpd_mul_lower_left_power = ff_q_bpd_mul_lower_left_power_product_factor * S ((S (ff_i_bpd_mul_lower_left_power_product)) * ff_c_bpd_mul_lower_left_power) + (ff_p_bpd_mul_lower_left_power_product))) /\ ((((exists ff_h_bpd_mul_lower_left_power_product_partial. ff_h_bpd_mul_lower_left_power_product_partial + S (ff_r_bpd_mul_lower_left_power_product) = S ((S (ff_i_bpd_mul_lower_left_power_product)) * ff_v_bpd_mul_lower_left_power_product)) /\ exists ff_q_bpd_mul_lower_left_power_product_partial. ff_u_bpd_mul_lower_left_power_product = ff_q_bpd_mul_lower_left_power_product_partial * S ((S (ff_i_bpd_mul_lower_left_power_product)) * ff_v_bpd_mul_lower_left_power_product) + (ff_r_bpd_mul_lower_left_power_product))) /\ ((((exists ff_h_bpd_mul_lower_left_power_product_successor. ff_h_bpd_mul_lower_left_power_product_successor + S (ff_s_bpd_mul_lower_left_power_product) = S ((S (S ff_i_bpd_mul_lower_left_power_product)) * ff_v_bpd_mul_lower_left_power_product)) /\ exists ff_q_bpd_mul_lower_left_power_product_successor. ff_u_bpd_mul_lower_left_power_product = ff_q_bpd_mul_lower_left_power_product_successor * S ((S (S ff_i_bpd_mul_lower_left_power_product)) * ff_v_bpd_mul_lower_left_power_product) + (ff_s_bpd_mul_lower_left_power_product))) /\ ff_s_bpd_mul_lower_left_power_product = ff_r_bpd_mul_lower_left_power_product * ff_p_bpd_mul_lower_left_power_product)))))))) /\ (exists bpv_factor_bpd_mul_lower_left_divides. a = bpv_result_bpd_mul_lower_left * bpv_factor_bpd_mul_lower_left_divides))
  14. 0014specialize power_valuation_power_divides p
  15. 0015specialize power_valuation_power_divides a
  16. 0016specialize power_valuation_power_divides e
  17. 0017apply power_valuation_power_divides
  18. 0018exact hvaluation_a
  19. 0019have hright : PowerDivides(p,f,b)
    Exact native replay linehave hright : exists bpv_result_bpd_mul_lower_right. ((exists ff_b_bpd_mul_lower_right_power ff_c_bpd_mul_lower_right_power. ((forall ff_i_bpd_mul_lower_right_power_repeat. (exists ff_lt_bpd_mul_lower_right_power_repeat_bound. ff_lt_bpd_mul_lower_right_power_repeat_bound + S ff_i_bpd_mul_lower_right_power_repeat = f) -> (((exists ff_h_bpd_mul_lower_right_power_repeat_decoded. ff_h_bpd_mul_lower_right_power_repeat_decoded + S (p) = S ((S (ff_i_bpd_mul_lower_right_power_repeat)) * ff_c_bpd_mul_lower_right_power)) /\ exists ff_q_bpd_mul_lower_right_power_repeat_decoded. ff_b_bpd_mul_lower_right_power = ff_q_bpd_mul_lower_right_power_repeat_decoded * S ((S (ff_i_bpd_mul_lower_right_power_repeat)) * ff_c_bpd_mul_lower_right_power) + (p)))) /\ (exists ff_u_bpd_mul_lower_right_power_product ff_v_bpd_mul_lower_right_power_product. ((((exists ff_h_bpd_mul_lower_right_power_product_start. ff_h_bpd_mul_lower_right_power_product_start + S (1) = S ((S (0)) * ff_v_bpd_mul_lower_right_power_product)) /\ exists ff_q_bpd_mul_lower_right_power_product_start. ff_u_bpd_mul_lower_right_power_product = ff_q_bpd_mul_lower_right_power_product_start * S ((S (0)) * ff_v_bpd_mul_lower_right_power_product) + (1))) /\ ((((exists ff_h_bpd_mul_lower_right_power_product_terminal. ff_h_bpd_mul_lower_right_power_product_terminal + S (bpv_result_bpd_mul_lower_right) = S ((S (f)) * ff_v_bpd_mul_lower_right_power_product)) /\ exists ff_q_bpd_mul_lower_right_power_product_terminal. ff_u_bpd_mul_lower_right_power_product = ff_q_bpd_mul_lower_right_power_product_terminal * S ((S (f)) * ff_v_bpd_mul_lower_right_power_product) + (bpv_result_bpd_mul_lower_right))) /\ forall ff_i_bpd_mul_lower_right_power_product. (exists ff_lt_bpd_mul_lower_right_power_product_bound. ff_lt_bpd_mul_lower_right_power_product_bound + S ff_i_bpd_mul_lower_right_power_product = f) -> exists ff_p_bpd_mul_lower_right_power_product ff_r_bpd_mul_lower_right_power_product ff_s_bpd_mul_lower_right_power_product. ((((exists ff_h_bpd_mul_lower_right_power_product_factor. ff_h_bpd_mul_lower_right_power_product_factor + S (ff_p_bpd_mul_lower_right_power_product) = S ((S (ff_i_bpd_mul_lower_right_power_product)) * ff_c_bpd_mul_lower_right_power)) /\ exists ff_q_bpd_mul_lower_right_power_product_factor. ff_b_bpd_mul_lower_right_power = ff_q_bpd_mul_lower_right_power_product_factor * S ((S (ff_i_bpd_mul_lower_right_power_product)) * ff_c_bpd_mul_lower_right_power) + (ff_p_bpd_mul_lower_right_power_product))) /\ ((((exists ff_h_bpd_mul_lower_right_power_product_partial. ff_h_bpd_mul_lower_right_power_product_partial + S (ff_r_bpd_mul_lower_right_power_product) = S ((S (ff_i_bpd_mul_lower_right_power_product)) * ff_v_bpd_mul_lower_right_power_product)) /\ exists ff_q_bpd_mul_lower_right_power_product_partial. ff_u_bpd_mul_lower_right_power_product = ff_q_bpd_mul_lower_right_power_product_partial * S ((S (ff_i_bpd_mul_lower_right_power_product)) * ff_v_bpd_mul_lower_right_power_product) + (ff_r_bpd_mul_lower_right_power_product))) /\ ((((exists ff_h_bpd_mul_lower_right_power_product_successor. ff_h_bpd_mul_lower_right_power_product_successor + S (ff_s_bpd_mul_lower_right_power_product) = S ((S (S ff_i_bpd_mul_lower_right_power_product)) * ff_v_bpd_mul_lower_right_power_product)) /\ exists ff_q_bpd_mul_lower_right_power_product_successor. ff_u_bpd_mul_lower_right_power_product = ff_q_bpd_mul_lower_right_power_product_successor * S ((S (S ff_i_bpd_mul_lower_right_power_product)) * ff_v_bpd_mul_lower_right_power_product) + (ff_s_bpd_mul_lower_right_power_product))) /\ ff_s_bpd_mul_lower_right_power_product = ff_r_bpd_mul_lower_right_power_product * ff_p_bpd_mul_lower_right_power_product)))))))) /\ (exists bpv_factor_bpd_mul_lower_right_divides. b = bpv_result_bpd_mul_lower_right * bpv_factor_bpd_mul_lower_right_divides))
  20. 0020specialize power_valuation_power_divides p
  21. 0021specialize power_valuation_power_divides b
  22. 0022specialize power_valuation_power_divides f
  23. 0023apply power_valuation_power_divides
  24. 0024exact hvaluation_b
  25. 0025have hsum : PowerDivides(p,e + f,a · b)
    Exact native replay linehave hsum : exists bpvi_result_bpd_mul_lower_sum. ((exists bpvi_b_bpd_mul_lower_sum_power bpvi_c_bpd_mul_lower_sum_power. ((forall bpvi_i_bpd_mul_lower_sum_power. (exists bpvi_repeat_gap_bpd_mul_lower_sum_power. bpvi_repeat_gap_bpd_mul_lower_sum_power + S bpvi_i_bpd_mul_lower_sum_power = e + f) -> (((exists bpvi_h_bpd_mul_lower_sum_power_repeat. bpvi_h_bpd_mul_lower_sum_power_repeat + S (p) = S ((S (bpvi_i_bpd_mul_lower_sum_power)) * bpvi_c_bpd_mul_lower_sum_power)) /\ exists bpvi_q_bpd_mul_lower_sum_power_repeat. bpvi_b_bpd_mul_lower_sum_power = bpvi_q_bpd_mul_lower_sum_power_repeat * S ((S (bpvi_i_bpd_mul_lower_sum_power)) * bpvi_c_bpd_mul_lower_sum_power) + (p)))) /\ (exists bpvi_u_bpd_mul_lower_sum_power bpvi_v_bpd_mul_lower_sum_power. ((((exists bpvi_h_bpd_mul_lower_sum_power_start. bpvi_h_bpd_mul_lower_sum_power_start + S (1) = S ((S (0)) * bpvi_v_bpd_mul_lower_sum_power)) /\ exists bpvi_q_bpd_mul_lower_sum_power_start. bpvi_u_bpd_mul_lower_sum_power = bpvi_q_bpd_mul_lower_sum_power_start * S ((S (0)) * bpvi_v_bpd_mul_lower_sum_power) + (1))) /\ ((((exists bpvi_h_bpd_mul_lower_sum_power_terminal. bpvi_h_bpd_mul_lower_sum_power_terminal + S (bpvi_result_bpd_mul_lower_sum) = S ((S (e + f)) * bpvi_v_bpd_mul_lower_sum_power)) /\ exists bpvi_q_bpd_mul_lower_sum_power_terminal. bpvi_u_bpd_mul_lower_sum_power = bpvi_q_bpd_mul_lower_sum_power_terminal * S ((S (e + f)) * bpvi_v_bpd_mul_lower_sum_power) + (bpvi_result_bpd_mul_lower_sum))) /\ forall bpvi_j_bpd_mul_lower_sum_power. (exists bpvi_product_gap_bpd_mul_lower_sum_power. bpvi_product_gap_bpd_mul_lower_sum_power + S bpvi_j_bpd_mul_lower_sum_power = e + f) -> exists bpvi_factor_bpd_mul_lower_sum_power bpvi_partial_bpd_mul_lower_sum_power bpvi_successor_bpd_mul_lower_sum_power. ((((exists bpvi_h_bpd_mul_lower_sum_power_factor. bpvi_h_bpd_mul_lower_sum_power_factor + S (bpvi_factor_bpd_mul_lower_sum_power) = S ((S (bpvi_j_bpd_mul_lower_sum_power)) * bpvi_c_bpd_mul_lower_sum_power)) /\ exists bpvi_q_bpd_mul_lower_sum_power_factor. bpvi_b_bpd_mul_lower_sum_power = bpvi_q_bpd_mul_lower_sum_power_factor * S ((S (bpvi_j_bpd_mul_lower_sum_power)) * bpvi_c_bpd_mul_lower_sum_power) + (bpvi_factor_bpd_mul_lower_sum_power))) /\ ((((exists bpvi_h_bpd_mul_lower_sum_power_partial. bpvi_h_bpd_mul_lower_sum_power_partial + S (bpvi_partial_bpd_mul_lower_sum_power) = S ((S (bpvi_j_bpd_mul_lower_sum_power)) * bpvi_v_bpd_mul_lower_sum_power)) /\ exists bpvi_q_bpd_mul_lower_sum_power_partial. bpvi_u_bpd_mul_lower_sum_power = bpvi_q_bpd_mul_lower_sum_power_partial * S ((S (bpvi_j_bpd_mul_lower_sum_power)) * bpvi_v_bpd_mul_lower_sum_power) + (bpvi_partial_bpd_mul_lower_sum_power))) /\ ((((exists bpvi_h_bpd_mul_lower_sum_power_successor. bpvi_h_bpd_mul_lower_sum_power_successor + S (bpvi_successor_bpd_mul_lower_sum_power) = S ((S (S bpvi_j_bpd_mul_lower_sum_power)) * bpvi_v_bpd_mul_lower_sum_power)) /\ exists bpvi_q_bpd_mul_lower_sum_power_successor. bpvi_u_bpd_mul_lower_sum_power = bpvi_q_bpd_mul_lower_sum_power_successor * S ((S (S bpvi_j_bpd_mul_lower_sum_power)) * bpvi_v_bpd_mul_lower_sum_power) + (bpvi_successor_bpd_mul_lower_sum_power))) /\ bpvi_successor_bpd_mul_lower_sum_power = bpvi_partial_bpd_mul_lower_sum_power * bpvi_factor_bpd_mul_lower_sum_power)))))))) /\ exists bpvi_divisor_factor_bpd_mul_lower_sum. a * b = bpvi_result_bpd_mul_lower_sum * bpvi_divisor_factor_bpd_mul_lower_sum)
  26. 0026specialize power_divides_add_mul p
  27. 0027specialize power_divides_add_mul e
  28. 0028specialize power_divides_add_mul f
  29. 0029specialize power_divides_add_mul (e + f)
  30. 0030specialize power_divides_add_mul a
  31. 0031specialize power_divides_add_mul b
  32. 0032apply power_divides_add_mul
  33. 0033refl
  34. 0034exact hleft
  35. 0035exact hright
  36. 0036have hproduct0 : ~(a * b = 0)
  37. 0037intro hproductzero
  38. 0038specialize mul_ne_zero a
  39. 0039specialize mul_ne_zero b
  40. 0040apply mul_ne_zero
  41. 0041exact ha
  42. 0042exact hb
  43. 0043exact hproductzero
  44. 0044have hsum_bound : Le(e + f,a · b)
    Exact native replay linehave hsum_bound : exists k. k + (e + f) = a * b
  45. 0045specialize prime_power_divides_exponent_le_value p
  46. 0046specialize prime_power_divides_exponent_le_value (e + f)
  47. 0047specialize prime_power_divides_exponent_le_value (a * b)
  48. 0048apply prime_power_divides_exponent_le_value
  49. 0049exact hp
  50. 0050exact hproduct0
  51. 0051exact hsum
  52. 0052specialize power_valuation_dominates p
  53. 0053specialize power_valuation_dominates (a * b)
  54. 0054specialize power_valuation_dominates g
  55. 0055specialize power_valuation_dominates (e + f)
  56. 0056apply power_valuation_dominates
  57. 0057exact hvaluation_product
  58. 0058exact hsum_bound
  59. 0059exact hsum