TS003I

prime_power_valuation_square_even

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

At every prime, the valuation of a nonzero square is exactly twice the valuation of its coordinate.

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.

Exact expanded first-order arithmetic statement

forall p a e E. ((~(p = 1) /\ forall frm_prime_left_ftsv_prime frm_prime_right_ftsv_prime. p = frm_prime_left_ftsv_prime * frm_prime_right_ftsv_prime -> frm_prime_left_ftsv_prime = 1 \/ frm_prime_right_ftsv_prime = 1)) -> ~(a = 0) -> (((exists bpv_gap_ftsv_square_input_exponent_bound. bpv_gap_ftsv_square_input_exponent_bound + e = a) /\ (exists bpv_result_ftsv_square_input_selected. ((exists ff_b_ftsv_square_input_selected_power ff_c_ftsv_square_input_selected_power. ((forall ff_i_ftsv_square_input_selected_power_repeat. (exists ff_lt_ftsv_square_input_selected_power_repeat_bound. ff_lt_ftsv_square_input_selected_power_repeat_bound + S ff_i_ftsv_square_input_selected_power_repeat = e) -> (((exists ff_h_ftsv_square_input_selected_power_repeat_decoded. ff_h_ftsv_square_input_selected_power_repeat_decoded + S (p) = S ((S (ff_i_ftsv_square_input_selected_power_repeat)) * ff_c_ftsv_square_input_selected_power)) /\ exists ff_q_ftsv_square_input_selected_power_repeat_decoded. ff_b_ftsv_square_input_selected_power = ff_q_ftsv_square_input_selected_power_repeat_decoded * S ((S (ff_i_ftsv_square_input_selected_power_repeat)) * ff_c_ftsv_square_input_selected_power) + (p)))) /\ (exists ff_u_ftsv_square_input_selected_power_product ff_v_ftsv_square_input_selected_power_product. ((((exists ff_h_ftsv_square_input_selected_power_product_start. ff_h_ftsv_square_input_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsv_square_input_selected_power_product)) /\ exists ff_q_ftsv_square_input_selected_power_product_start. ff_u_ftsv_square_input_selected_power_product = ff_q_ftsv_square_input_selected_power_product_start * S ((S (0)) * ff_v_ftsv_square_input_selected_power_product) + (1))) /\ ((((exists ff_h_ftsv_square_input_selected_power_product_terminal. ff_h_ftsv_square_input_selected_power_product_terminal + S (bpv_result_ftsv_square_input_selected) = S ((S (e)) * ff_v_ftsv_square_input_selected_power_product)) /\ exists ff_q_ftsv_square_input_selected_power_product_terminal. ff_u_ftsv_square_input_selected_power_product = ff_q_ftsv_square_input_selected_power_product_terminal * S ((S (e)) * ff_v_ftsv_square_input_selected_power_product) + (bpv_result_ftsv_square_input_selected))) /\ forall ff_i_ftsv_square_input_selected_power_product. (exists ff_lt_ftsv_square_input_selected_power_product_bound. ff_lt_ftsv_square_input_selected_power_product_bound + S ff_i_ftsv_square_input_selected_power_product = e) -> exists ff_p_ftsv_square_input_selected_power_product ff_r_ftsv_square_input_selected_power_product ff_s_ftsv_square_input_selected_power_product. ((((exists ff_h_ftsv_square_input_selected_power_product_factor. ff_h_ftsv_square_input_selected_power_product_factor + S (ff_p_ftsv_square_input_selected_power_product) = S ((S (ff_i_ftsv_square_input_selected_power_product)) * ff_c_ftsv_square_input_selected_power)) /\ exists ff_q_ftsv_square_input_selected_power_product_factor. ff_b_ftsv_square_input_selected_power = ff_q_ftsv_square_input_selected_power_product_factor * S ((S (ff_i_ftsv_square_input_selected_power_product)) * ff_c_ftsv_square_input_selected_power) + (ff_p_ftsv_square_input_selected_power_product))) /\ ((((exists ff_h_ftsv_square_input_selected_power_product_partial. ff_h_ftsv_square_input_selected_power_product_partial + S (ff_r_ftsv_square_input_selected_power_product) = S ((S (ff_i_ftsv_square_input_selected_power_product)) * ff_v_ftsv_square_input_selected_power_product)) /\ exists ff_q_ftsv_square_input_selected_power_product_partial. ff_u_ftsv_square_input_selected_power_product = ff_q_ftsv_square_input_selected_power_product_partial * S ((S (ff_i_ftsv_square_input_selected_power_product)) * ff_v_ftsv_square_input_selected_power_product) + (ff_r_ftsv_square_input_selected_power_product))) /\ ((((exists ff_h_ftsv_square_input_selected_power_product_successor. ff_h_ftsv_square_input_selected_power_product_successor + S (ff_s_ftsv_square_input_selected_power_product) = S ((S (S ff_i_ftsv_square_input_selected_power_product)) * ff_v_ftsv_square_input_selected_power_product)) /\ exists ff_q_ftsv_square_input_selected_power_product_successor. ff_u_ftsv_square_input_selected_power_product = ff_q_ftsv_square_input_selected_power_product_successor * S ((S (S ff_i_ftsv_square_input_selected_power_product)) * ff_v_ftsv_square_input_selected_power_product) + (ff_s_ftsv_square_input_selected_power_product))) /\ ff_s_ftsv_square_input_selected_power_product = ff_r_ftsv_square_input_selected_power_product * ff_p_ftsv_square_input_selected_power_product)))))))) /\ (exists bpv_factor_ftsv_square_input_selected_divides. a = bpv_result_ftsv_square_input_selected * bpv_factor_ftsv_square_input_selected_divides)))) /\ forall bpv_candidate_ftsv_square_input. (exists bpv_gap_ftsv_square_input_candidate_bound. bpv_gap_ftsv_square_input_candidate_bound + bpv_candidate_ftsv_square_input = a) -> (exists bpv_result_ftsv_square_input_candidate. ((exists ff_b_ftsv_square_input_candidate_power ff_c_ftsv_square_input_candidate_power. ((forall ff_i_ftsv_square_input_candidate_power_repeat. (exists ff_lt_ftsv_square_input_candidate_power_repeat_bound. ff_lt_ftsv_square_input_candidate_power_repeat_bound + S ff_i_ftsv_square_input_candidate_power_repeat = bpv_candidate_ftsv_square_input) -> (((exists ff_h_ftsv_square_input_candidate_power_repeat_decoded. ff_h_ftsv_square_input_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_ftsv_square_input_candidate_power_repeat)) * ff_c_ftsv_square_input_candidate_power)) /\ exists ff_q_ftsv_square_input_candidate_power_repeat_decoded. ff_b_ftsv_square_input_candidate_power = ff_q_ftsv_square_input_candidate_power_repeat_decoded * S ((S (ff_i_ftsv_square_input_candidate_power_repeat)) * ff_c_ftsv_square_input_candidate_power) + (p)))) /\ (exists ff_u_ftsv_square_input_candidate_power_product ff_v_ftsv_square_input_candidate_power_product. ((((exists ff_h_ftsv_square_input_candidate_power_product_start. ff_h_ftsv_square_input_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsv_square_input_candidate_power_product)) /\ exists ff_q_ftsv_square_input_candidate_power_product_start. ff_u_ftsv_square_input_candidate_power_product = ff_q_ftsv_square_input_candidate_power_product_start * S ((S (0)) * ff_v_ftsv_square_input_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsv_square_input_candidate_power_product_terminal. ff_h_ftsv_square_input_candidate_power_product_terminal + S (bpv_result_ftsv_square_input_candidate) = S ((S (bpv_candidate_ftsv_square_input)) * ff_v_ftsv_square_input_candidate_power_product)) /\ exists ff_q_ftsv_square_input_candidate_power_product_terminal. ff_u_ftsv_square_input_candidate_power_product = ff_q_ftsv_square_input_candidate_power_product_terminal * S ((S (bpv_candidate_ftsv_square_input)) * ff_v_ftsv_square_input_candidate_power_product) + (bpv_result_ftsv_square_input_candidate))) /\ forall ff_i_ftsv_square_input_candidate_power_product. (exists ff_lt_ftsv_square_input_candidate_power_product_bound. ff_lt_ftsv_square_input_candidate_power_product_bound + S ff_i_ftsv_square_input_candidate_power_product = bpv_candidate_ftsv_square_input) -> exists ff_p_ftsv_square_input_candidate_power_product ff_r_ftsv_square_input_candidate_power_product ff_s_ftsv_square_input_candidate_power_product. ((((exists ff_h_ftsv_square_input_candidate_power_product_factor. ff_h_ftsv_square_input_candidate_power_product_factor + S (ff_p_ftsv_square_input_candidate_power_product) = S ((S (ff_i_ftsv_square_input_candidate_power_product)) * ff_c_ftsv_square_input_candidate_power)) /\ exists ff_q_ftsv_square_input_candidate_power_product_factor. ff_b_ftsv_square_input_candidate_power = ff_q_ftsv_square_input_candidate_power_product_factor * S ((S (ff_i_ftsv_square_input_candidate_power_product)) * ff_c_ftsv_square_input_candidate_power) + (ff_p_ftsv_square_input_candidate_power_product))) /\ ((((exists ff_h_ftsv_square_input_candidate_power_product_partial. ff_h_ftsv_square_input_candidate_power_product_partial + S (ff_r_ftsv_square_input_candidate_power_product) = S ((S (ff_i_ftsv_square_input_candidate_power_product)) * ff_v_ftsv_square_input_candidate_power_product)) /\ exists ff_q_ftsv_square_input_candidate_power_product_partial. ff_u_ftsv_square_input_candidate_power_product = ff_q_ftsv_square_input_candidate_power_product_partial * S ((S (ff_i_ftsv_square_input_candidate_power_product)) * ff_v_ftsv_square_input_candidate_power_product) + (ff_r_ftsv_square_input_candidate_power_product))) /\ ((((exists ff_h_ftsv_square_input_candidate_power_product_successor. ff_h_ftsv_square_input_candidate_power_product_successor + S (ff_s_ftsv_square_input_candidate_power_product) = S ((S (S ff_i_ftsv_square_input_candidate_power_product)) * ff_v_ftsv_square_input_candidate_power_product)) /\ exists ff_q_ftsv_square_input_candidate_power_product_successor. ff_u_ftsv_square_input_candidate_power_product = ff_q_ftsv_square_input_candidate_power_product_successor * S ((S (S ff_i_ftsv_square_input_candidate_power_product)) * ff_v_ftsv_square_input_candidate_power_product) + (ff_s_ftsv_square_input_candidate_power_product))) /\ ff_s_ftsv_square_input_candidate_power_product = ff_r_ftsv_square_input_candidate_power_product * ff_p_ftsv_square_input_candidate_power_product)))))))) /\ (exists bpv_factor_ftsv_square_input_candidate_divides. a = bpv_result_ftsv_square_input_candidate * bpv_factor_ftsv_square_input_candidate_divides))) -> (exists bpv_gap_ftsv_square_input_maximal. bpv_gap_ftsv_square_input_maximal + bpv_candidate_ftsv_square_input = e)) -> (((exists bpv_gap_ftsv_square_output_exponent_bound. bpv_gap_ftsv_square_output_exponent_bound + E = (a * a)) /\ (exists bpv_result_ftsv_square_output_selected. ((exists ff_b_ftsv_square_output_selected_power ff_c_ftsv_square_output_selected_power. ((forall ff_i_ftsv_square_output_selected_power_repeat. (exists ff_lt_ftsv_square_output_selected_power_repeat_bound. ff_lt_ftsv_square_output_selected_power_repeat_bound + S ff_i_ftsv_square_output_selected_power_repeat = E) -> (((exists ff_h_ftsv_square_output_selected_power_repeat_decoded. ff_h_ftsv_square_output_selected_power_repeat_decoded + S (p) = S ((S (ff_i_ftsv_square_output_selected_power_repeat)) * ff_c_ftsv_square_output_selected_power)) /\ exists ff_q_ftsv_square_output_selected_power_repeat_decoded. ff_b_ftsv_square_output_selected_power = ff_q_ftsv_square_output_selected_power_repeat_decoded * S ((S (ff_i_ftsv_square_output_selected_power_repeat)) * ff_c_ftsv_square_output_selected_power) + (p)))) /\ (exists ff_u_ftsv_square_output_selected_power_product ff_v_ftsv_square_output_selected_power_product. ((((exists ff_h_ftsv_square_output_selected_power_product_start. ff_h_ftsv_square_output_selected_power_product_start + S (1) = S ((S (0)) * ff_v_ftsv_square_output_selected_power_product)) /\ exists ff_q_ftsv_square_output_selected_power_product_start. ff_u_ftsv_square_output_selected_power_product = ff_q_ftsv_square_output_selected_power_product_start * S ((S (0)) * ff_v_ftsv_square_output_selected_power_product) + (1))) /\ ((((exists ff_h_ftsv_square_output_selected_power_product_terminal. ff_h_ftsv_square_output_selected_power_product_terminal + S (bpv_result_ftsv_square_output_selected) = S ((S (E)) * ff_v_ftsv_square_output_selected_power_product)) /\ exists ff_q_ftsv_square_output_selected_power_product_terminal. ff_u_ftsv_square_output_selected_power_product = ff_q_ftsv_square_output_selected_power_product_terminal * S ((S (E)) * ff_v_ftsv_square_output_selected_power_product) + (bpv_result_ftsv_square_output_selected))) /\ forall ff_i_ftsv_square_output_selected_power_product. (exists ff_lt_ftsv_square_output_selected_power_product_bound. ff_lt_ftsv_square_output_selected_power_product_bound + S ff_i_ftsv_square_output_selected_power_product = E) -> exists ff_p_ftsv_square_output_selected_power_product ff_r_ftsv_square_output_selected_power_product ff_s_ftsv_square_output_selected_power_product. ((((exists ff_h_ftsv_square_output_selected_power_product_factor. ff_h_ftsv_square_output_selected_power_product_factor + S (ff_p_ftsv_square_output_selected_power_product) = S ((S (ff_i_ftsv_square_output_selected_power_product)) * ff_c_ftsv_square_output_selected_power)) /\ exists ff_q_ftsv_square_output_selected_power_product_factor. ff_b_ftsv_square_output_selected_power = ff_q_ftsv_square_output_selected_power_product_factor * S ((S (ff_i_ftsv_square_output_selected_power_product)) * ff_c_ftsv_square_output_selected_power) + (ff_p_ftsv_square_output_selected_power_product))) /\ ((((exists ff_h_ftsv_square_output_selected_power_product_partial. ff_h_ftsv_square_output_selected_power_product_partial + S (ff_r_ftsv_square_output_selected_power_product) = S ((S (ff_i_ftsv_square_output_selected_power_product)) * ff_v_ftsv_square_output_selected_power_product)) /\ exists ff_q_ftsv_square_output_selected_power_product_partial. ff_u_ftsv_square_output_selected_power_product = ff_q_ftsv_square_output_selected_power_product_partial * S ((S (ff_i_ftsv_square_output_selected_power_product)) * ff_v_ftsv_square_output_selected_power_product) + (ff_r_ftsv_square_output_selected_power_product))) /\ ((((exists ff_h_ftsv_square_output_selected_power_product_successor. ff_h_ftsv_square_output_selected_power_product_successor + S (ff_s_ftsv_square_output_selected_power_product) = S ((S (S ff_i_ftsv_square_output_selected_power_product)) * ff_v_ftsv_square_output_selected_power_product)) /\ exists ff_q_ftsv_square_output_selected_power_product_successor. ff_u_ftsv_square_output_selected_power_product = ff_q_ftsv_square_output_selected_power_product_successor * S ((S (S ff_i_ftsv_square_output_selected_power_product)) * ff_v_ftsv_square_output_selected_power_product) + (ff_s_ftsv_square_output_selected_power_product))) /\ ff_s_ftsv_square_output_selected_power_product = ff_r_ftsv_square_output_selected_power_product * ff_p_ftsv_square_output_selected_power_product)))))))) /\ (exists bpv_factor_ftsv_square_output_selected_divides. (a * a) = bpv_result_ftsv_square_output_selected * bpv_factor_ftsv_square_output_selected_divides)))) /\ forall bpv_candidate_ftsv_square_output. (exists bpv_gap_ftsv_square_output_candidate_bound. bpv_gap_ftsv_square_output_candidate_bound + bpv_candidate_ftsv_square_output = (a * a)) -> (exists bpv_result_ftsv_square_output_candidate. ((exists ff_b_ftsv_square_output_candidate_power ff_c_ftsv_square_output_candidate_power. ((forall ff_i_ftsv_square_output_candidate_power_repeat. (exists ff_lt_ftsv_square_output_candidate_power_repeat_bound. ff_lt_ftsv_square_output_candidate_power_repeat_bound + S ff_i_ftsv_square_output_candidate_power_repeat = bpv_candidate_ftsv_square_output) -> (((exists ff_h_ftsv_square_output_candidate_power_repeat_decoded. ff_h_ftsv_square_output_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_ftsv_square_output_candidate_power_repeat)) * ff_c_ftsv_square_output_candidate_power)) /\ exists ff_q_ftsv_square_output_candidate_power_repeat_decoded. ff_b_ftsv_square_output_candidate_power = ff_q_ftsv_square_output_candidate_power_repeat_decoded * S ((S (ff_i_ftsv_square_output_candidate_power_repeat)) * ff_c_ftsv_square_output_candidate_power) + (p)))) /\ (exists ff_u_ftsv_square_output_candidate_power_product ff_v_ftsv_square_output_candidate_power_product. ((((exists ff_h_ftsv_square_output_candidate_power_product_start. ff_h_ftsv_square_output_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_ftsv_square_output_candidate_power_product)) /\ exists ff_q_ftsv_square_output_candidate_power_product_start. ff_u_ftsv_square_output_candidate_power_product = ff_q_ftsv_square_output_candidate_power_product_start * S ((S (0)) * ff_v_ftsv_square_output_candidate_power_product) + (1))) /\ ((((exists ff_h_ftsv_square_output_candidate_power_product_terminal. ff_h_ftsv_square_output_candidate_power_product_terminal + S (bpv_result_ftsv_square_output_candidate) = S ((S (bpv_candidate_ftsv_square_output)) * ff_v_ftsv_square_output_candidate_power_product)) /\ exists ff_q_ftsv_square_output_candidate_power_product_terminal. ff_u_ftsv_square_output_candidate_power_product = ff_q_ftsv_square_output_candidate_power_product_terminal * S ((S (bpv_candidate_ftsv_square_output)) * ff_v_ftsv_square_output_candidate_power_product) + (bpv_result_ftsv_square_output_candidate))) /\ forall ff_i_ftsv_square_output_candidate_power_product. (exists ff_lt_ftsv_square_output_candidate_power_product_bound. ff_lt_ftsv_square_output_candidate_power_product_bound + S ff_i_ftsv_square_output_candidate_power_product = bpv_candidate_ftsv_square_output) -> exists ff_p_ftsv_square_output_candidate_power_product ff_r_ftsv_square_output_candidate_power_product ff_s_ftsv_square_output_candidate_power_product. ((((exists ff_h_ftsv_square_output_candidate_power_product_factor. ff_h_ftsv_square_output_candidate_power_product_factor + S (ff_p_ftsv_square_output_candidate_power_product) = S ((S (ff_i_ftsv_square_output_candidate_power_product)) * ff_c_ftsv_square_output_candidate_power)) /\ exists ff_q_ftsv_square_output_candidate_power_product_factor. ff_b_ftsv_square_output_candidate_power = ff_q_ftsv_square_output_candidate_power_product_factor * S ((S (ff_i_ftsv_square_output_candidate_power_product)) * ff_c_ftsv_square_output_candidate_power) + (ff_p_ftsv_square_output_candidate_power_product))) /\ ((((exists ff_h_ftsv_square_output_candidate_power_product_partial. ff_h_ftsv_square_output_candidate_power_product_partial + S (ff_r_ftsv_square_output_candidate_power_product) = S ((S (ff_i_ftsv_square_output_candidate_power_product)) * ff_v_ftsv_square_output_candidate_power_product)) /\ exists ff_q_ftsv_square_output_candidate_power_product_partial. ff_u_ftsv_square_output_candidate_power_product = ff_q_ftsv_square_output_candidate_power_product_partial * S ((S (ff_i_ftsv_square_output_candidate_power_product)) * ff_v_ftsv_square_output_candidate_power_product) + (ff_r_ftsv_square_output_candidate_power_product))) /\ ((((exists ff_h_ftsv_square_output_candidate_power_product_successor. ff_h_ftsv_square_output_candidate_power_product_successor + S (ff_s_ftsv_square_output_candidate_power_product) = S ((S (S ff_i_ftsv_square_output_candidate_power_product)) * ff_v_ftsv_square_output_candidate_power_product)) /\ exists ff_q_ftsv_square_output_candidate_power_product_successor. ff_u_ftsv_square_output_candidate_power_product = ff_q_ftsv_square_output_candidate_power_product_successor * S ((S (S ff_i_ftsv_square_output_candidate_power_product)) * ff_v_ftsv_square_output_candidate_power_product) + (ff_s_ftsv_square_output_candidate_power_product))) /\ ff_s_ftsv_square_output_candidate_power_product = ff_r_ftsv_square_output_candidate_power_product * ff_p_ftsv_square_output_candidate_power_product)))))))) /\ (exists bpv_factor_ftsv_square_output_candidate_divides. (a * a) = bpv_result_ftsv_square_output_candidate * bpv_factor_ftsv_square_output_candidate_divides))) -> (exists bpv_gap_ftsv_square_output_maximal. bpv_gap_ftsv_square_output_maximal + bpv_candidate_ftsv_square_output = E)) -> E = e + e

Constructive proof overview

Generated structural guide

At every prime, the valuation of a nonzero square is exactly twice the valuation of its coordinate.

The unchanged tactic script uses 1 declared prerequisite and contains 21 exact native proof lines.

dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged

Proof neighborhood

Direct dependencies

prime_power_valuation_mul Alpha theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

21 script commands · 3 reading checkpoints · 0 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.

01Fix variables and assumptionsL1–8

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

  1. L1
    intro p
  2. L2
    intro a
  3. L3
    intro e
  4. L4
    intro E
  5. L5
    intro hprime
  6. L6
    intro hnonzero
  7. L7
    intro hvalue
  8. L8
    intro hsquare
02Use earlier factsL9–18

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

  1. L9
    specialize prime_power_valuation_mul p
  2. L10
    specialize prime_power_valuation_mul a
  3. L11
    specialize prime_power_valuation_mul a
  4. L12
    specialize prime_power_valuation_mul e
  5. L13
    specialize prime_power_valuation_mul e
  6. L14
    specialize prime_power_valuation_mul E
  7. L15
    apply prime_power_valuation_mul
  8. L16
    exact hprime
  9. L17
    exact hnonzero
  10. L18
    exact hnonzero
03Use earlier factsL19–21

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

  1. L19
    exact hvalue
  2. L20
    exact hvalue
  3. L21
    exact hsquare

Library-wide reading audit

Original exact command ledger · 21 lines
  1. 0001intro p
  2. 0002intro a
  3. 0003intro e
  4. 0004intro E
  5. 0005intro hprime
  6. 0006intro hnonzero
  7. 0007intro hvalue
  8. 0008intro hsquare
  9. 0009specialize prime_power_valuation_mul p
  10. 0010specialize prime_power_valuation_mul a
  11. 0011specialize prime_power_valuation_mul a
  12. 0012specialize prime_power_valuation_mul e
  13. 0013specialize prime_power_valuation_mul e
  14. 0014specialize prime_power_valuation_mul E
  15. 0015apply prime_power_valuation_mul
  16. 0016exact hprime
  17. 0017exact hnonzero
  18. 0018exact hnonzero
  19. 0019exact hvalue
  20. 0020exact hvalue
  21. 0021exact hsquare