PV0007

prime_valuation_distinct_prime_power_zero

A power of a prime has zero valuation at every genuinely distinct prime, including exponent zero.

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

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.

This is a shared constructive tool, not an additional major blueprint goal. The list covers every prime divisor, has no repeated primes, and contains actual prime-power values. One uses the empty support; zero is excluded.

Exact theorem in conservative defined notation

∀ p. ∀ q. ∀ k. ∀ z. Prime(p)Prime(q) → ¬q = p → Pow(p,k,z)BoundedPowerValuation(q,z,z,0)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

prime_nonzero · checked external prerequisitedistinct_primes_left_not_divide_right · checked external prerequisiteprime_valuation_zero_of_nondivisorprime_power_valuation_powprime_valuation_exponent_eq_transport
Original expanded first-order statement
forall p q k z. (~((p) = 1) /\ forall pvs_left_distinct_base pvs_right_distinct_base. (p) = pvs_left_distinct_base * pvs_right_distinct_base -> pvs_left_distinct_base = 1 \/ pvs_right_distinct_base = 1) -> (~((q) = 1) /\ forall pvs_left_distinct_valuation pvs_right_distinct_valuation. (q) = pvs_left_distinct_valuation * pvs_right_distinct_valuation -> pvs_left_distinct_valuation = 1 \/ pvs_right_distinct_valuation = 1) -> ~(q = p) -> (exists pa_b_pvs_distinct_power pa_c_pvs_distinct_power. ((forall pa_i_pvs_distinct_power_repeat. (exists pa_lt_pvs_distinct_power_repeat_bound. pa_lt_pvs_distinct_power_repeat_bound + S pa_i_pvs_distinct_power_repeat = k) -> (((exists pa_h_pvs_distinct_power_repeat_decoded. pa_h_pvs_distinct_power_repeat_decoded + S (p) = S ((S (pa_i_pvs_distinct_power_repeat)) * pa_c_pvs_distinct_power)) /\ exists pa_q_pvs_distinct_power_repeat_decoded. pa_b_pvs_distinct_power = pa_q_pvs_distinct_power_repeat_decoded * S ((S (pa_i_pvs_distinct_power_repeat)) * pa_c_pvs_distinct_power) + (p)))) /\ (exists pa_u_pvs_distinct_power_product pa_v_pvs_distinct_power_product. ((((exists pa_h_pvs_distinct_power_product_start. pa_h_pvs_distinct_power_product_start + S (1) = S ((S (0)) * pa_v_pvs_distinct_power_product)) /\ exists pa_q_pvs_distinct_power_product_start. pa_u_pvs_distinct_power_product = pa_q_pvs_distinct_power_product_start * S ((S (0)) * pa_v_pvs_distinct_power_product) + (1))) /\ ((((exists pa_h_pvs_distinct_power_product_terminal. pa_h_pvs_distinct_power_product_terminal + S (z) = S ((S (k)) * pa_v_pvs_distinct_power_product)) /\ exists pa_q_pvs_distinct_power_product_terminal. pa_u_pvs_distinct_power_product = pa_q_pvs_distinct_power_product_terminal * S ((S (k)) * pa_v_pvs_distinct_power_product) + (z))) /\ forall pa_i_pvs_distinct_power_product. (exists pa_lt_pvs_distinct_power_product_bound. pa_lt_pvs_distinct_power_product_bound + S pa_i_pvs_distinct_power_product = k) -> exists pa_p_pvs_distinct_power_product pa_r_pvs_distinct_power_product pa_s_pvs_distinct_power_product. ((((exists pa_h_pvs_distinct_power_product_factor. pa_h_pvs_distinct_power_product_factor + S (pa_p_pvs_distinct_power_product) = S ((S (pa_i_pvs_distinct_power_product)) * pa_c_pvs_distinct_power)) /\ exists pa_q_pvs_distinct_power_product_factor. pa_b_pvs_distinct_power = pa_q_pvs_distinct_power_product_factor * S ((S (pa_i_pvs_distinct_power_product)) * pa_c_pvs_distinct_power) + (pa_p_pvs_distinct_power_product))) /\ ((((exists pa_h_pvs_distinct_power_product_partial. pa_h_pvs_distinct_power_product_partial + S (pa_r_pvs_distinct_power_product) = S ((S (pa_i_pvs_distinct_power_product)) * pa_v_pvs_distinct_power_product)) /\ exists pa_q_pvs_distinct_power_product_partial. pa_u_pvs_distinct_power_product = pa_q_pvs_distinct_power_product_partial * S ((S (pa_i_pvs_distinct_power_product)) * pa_v_pvs_distinct_power_product) + (pa_r_pvs_distinct_power_product))) /\ ((((exists pa_h_pvs_distinct_power_product_successor. pa_h_pvs_distinct_power_product_successor + S (pa_s_pvs_distinct_power_product) = S ((S (S pa_i_pvs_distinct_power_product)) * pa_v_pvs_distinct_power_product)) /\ exists pa_q_pvs_distinct_power_product_successor. pa_u_pvs_distinct_power_product = pa_q_pvs_distinct_power_product_successor * S ((S (S pa_i_pvs_distinct_power_product)) * pa_v_pvs_distinct_power_product) + (pa_s_pvs_distinct_power_product))) /\ pa_s_pvs_distinct_power_product = pa_r_pvs_distinct_power_product * pa_p_pvs_distinct_power_product)))))))) -> (((exists bpd_gap_pvs_distinct_zero_selected_bound. bpd_gap_pvs_distinct_zero_selected_bound + (0) = (z)) /\ (exists bpvi_result_pvs_distinct_zero_selected. ((exists bpvi_b_pvs_distinct_zero_selected_power bpvi_c_pvs_distinct_zero_selected_power. ((forall bpvi_i_pvs_distinct_zero_selected_power. (exists bpvi_repeat_gap_pvs_distinct_zero_selected_power. bpvi_repeat_gap_pvs_distinct_zero_selected_power + S bpvi_i_pvs_distinct_zero_selected_power = 0) -> (((exists bpvi_h_pvs_distinct_zero_selected_power_repeat. bpvi_h_pvs_distinct_zero_selected_power_repeat + S (q) = S ((S (bpvi_i_pvs_distinct_zero_selected_power)) * bpvi_c_pvs_distinct_zero_selected_power)) /\ exists bpvi_q_pvs_distinct_zero_selected_power_repeat. bpvi_b_pvs_distinct_zero_selected_power = bpvi_q_pvs_distinct_zero_selected_power_repeat * S ((S (bpvi_i_pvs_distinct_zero_selected_power)) * bpvi_c_pvs_distinct_zero_selected_power) + (q)))) /\ (exists bpvi_u_pvs_distinct_zero_selected_power bpvi_v_pvs_distinct_zero_selected_power. ((((exists bpvi_h_pvs_distinct_zero_selected_power_start. bpvi_h_pvs_distinct_zero_selected_power_start + S (1) = S ((S (0)) * bpvi_v_pvs_distinct_zero_selected_power)) /\ exists bpvi_q_pvs_distinct_zero_selected_power_start. bpvi_u_pvs_distinct_zero_selected_power = bpvi_q_pvs_distinct_zero_selected_power_start * S ((S (0)) * bpvi_v_pvs_distinct_zero_selected_power) + (1))) /\ ((((exists bpvi_h_pvs_distinct_zero_selected_power_terminal. bpvi_h_pvs_distinct_zero_selected_power_terminal + S (bpvi_result_pvs_distinct_zero_selected) = S ((S (0)) * bpvi_v_pvs_distinct_zero_selected_power)) /\ exists bpvi_q_pvs_distinct_zero_selected_power_terminal. bpvi_u_pvs_distinct_zero_selected_power = bpvi_q_pvs_distinct_zero_selected_power_terminal * S ((S (0)) * bpvi_v_pvs_distinct_zero_selected_power) + (bpvi_result_pvs_distinct_zero_selected))) /\ forall bpvi_j_pvs_distinct_zero_selected_power. (exists bpvi_product_gap_pvs_distinct_zero_selected_power. bpvi_product_gap_pvs_distinct_zero_selected_power + S bpvi_j_pvs_distinct_zero_selected_power = 0) -> exists bpvi_factor_pvs_distinct_zero_selected_power bpvi_partial_pvs_distinct_zero_selected_power bpvi_successor_pvs_distinct_zero_selected_power. ((((exists bpvi_h_pvs_distinct_zero_selected_power_factor. bpvi_h_pvs_distinct_zero_selected_power_factor + S (bpvi_factor_pvs_distinct_zero_selected_power) = S ((S (bpvi_j_pvs_distinct_zero_selected_power)) * bpvi_c_pvs_distinct_zero_selected_power)) /\ exists bpvi_q_pvs_distinct_zero_selected_power_factor. bpvi_b_pvs_distinct_zero_selected_power = bpvi_q_pvs_distinct_zero_selected_power_factor * S ((S (bpvi_j_pvs_distinct_zero_selected_power)) * bpvi_c_pvs_distinct_zero_selected_power) + (bpvi_factor_pvs_distinct_zero_selected_power))) /\ ((((exists bpvi_h_pvs_distinct_zero_selected_power_partial. bpvi_h_pvs_distinct_zero_selected_power_partial + S (bpvi_partial_pvs_distinct_zero_selected_power) = S ((S (bpvi_j_pvs_distinct_zero_selected_power)) * bpvi_v_pvs_distinct_zero_selected_power)) /\ exists bpvi_q_pvs_distinct_zero_selected_power_partial. bpvi_u_pvs_distinct_zero_selected_power = bpvi_q_pvs_distinct_zero_selected_power_partial * S ((S (bpvi_j_pvs_distinct_zero_selected_power)) * bpvi_v_pvs_distinct_zero_selected_power) + (bpvi_partial_pvs_distinct_zero_selected_power))) /\ ((((exists bpvi_h_pvs_distinct_zero_selected_power_successor. bpvi_h_pvs_distinct_zero_selected_power_successor + S (bpvi_successor_pvs_distinct_zero_selected_power) = S ((S (S bpvi_j_pvs_distinct_zero_selected_power)) * bpvi_v_pvs_distinct_zero_selected_power)) /\ exists bpvi_q_pvs_distinct_zero_selected_power_successor. bpvi_u_pvs_distinct_zero_selected_power = bpvi_q_pvs_distinct_zero_selected_power_successor * S ((S (S bpvi_j_pvs_distinct_zero_selected_power)) * bpvi_v_pvs_distinct_zero_selected_power) + (bpvi_successor_pvs_distinct_zero_selected_power))) /\ bpvi_successor_pvs_distinct_zero_selected_power = bpvi_partial_pvs_distinct_zero_selected_power * bpvi_factor_pvs_distinct_zero_selected_power)))))))) /\ exists bpvi_divisor_factor_pvs_distinct_zero_selected. z = bpvi_result_pvs_distinct_zero_selected * bpvi_divisor_factor_pvs_distinct_zero_selected))) /\ forall bpd_candidate_pvs_distinct_zero. (exists bpd_gap_pvs_distinct_zero_candidate_bound. bpd_gap_pvs_distinct_zero_candidate_bound + (bpd_candidate_pvs_distinct_zero) = (z)) -> (exists bpvi_result_pvs_distinct_zero_candidate. ((exists bpvi_b_pvs_distinct_zero_candidate_power bpvi_c_pvs_distinct_zero_candidate_power. ((forall bpvi_i_pvs_distinct_zero_candidate_power. (exists bpvi_repeat_gap_pvs_distinct_zero_candidate_power. bpvi_repeat_gap_pvs_distinct_zero_candidate_power + S bpvi_i_pvs_distinct_zero_candidate_power = bpd_candidate_pvs_distinct_zero) -> (((exists bpvi_h_pvs_distinct_zero_candidate_power_repeat. bpvi_h_pvs_distinct_zero_candidate_power_repeat + S (q) = S ((S (bpvi_i_pvs_distinct_zero_candidate_power)) * bpvi_c_pvs_distinct_zero_candidate_power)) /\ exists bpvi_q_pvs_distinct_zero_candidate_power_repeat. bpvi_b_pvs_distinct_zero_candidate_power = bpvi_q_pvs_distinct_zero_candidate_power_repeat * S ((S (bpvi_i_pvs_distinct_zero_candidate_power)) * bpvi_c_pvs_distinct_zero_candidate_power) + (q)))) /\ (exists bpvi_u_pvs_distinct_zero_candidate_power bpvi_v_pvs_distinct_zero_candidate_power. ((((exists bpvi_h_pvs_distinct_zero_candidate_power_start. bpvi_h_pvs_distinct_zero_candidate_power_start + S (1) = S ((S (0)) * bpvi_v_pvs_distinct_zero_candidate_power)) /\ exists bpvi_q_pvs_distinct_zero_candidate_power_start. bpvi_u_pvs_distinct_zero_candidate_power = bpvi_q_pvs_distinct_zero_candidate_power_start * S ((S (0)) * bpvi_v_pvs_distinct_zero_candidate_power) + (1))) /\ ((((exists bpvi_h_pvs_distinct_zero_candidate_power_terminal. bpvi_h_pvs_distinct_zero_candidate_power_terminal + S (bpvi_result_pvs_distinct_zero_candidate) = S ((S (bpd_candidate_pvs_distinct_zero)) * bpvi_v_pvs_distinct_zero_candidate_power)) /\ exists bpvi_q_pvs_distinct_zero_candidate_power_terminal. bpvi_u_pvs_distinct_zero_candidate_power = bpvi_q_pvs_distinct_zero_candidate_power_terminal * S ((S (bpd_candidate_pvs_distinct_zero)) * bpvi_v_pvs_distinct_zero_candidate_power) + (bpvi_result_pvs_distinct_zero_candidate))) /\ forall bpvi_j_pvs_distinct_zero_candidate_power. (exists bpvi_product_gap_pvs_distinct_zero_candidate_power. bpvi_product_gap_pvs_distinct_zero_candidate_power + S bpvi_j_pvs_distinct_zero_candidate_power = bpd_candidate_pvs_distinct_zero) -> exists bpvi_factor_pvs_distinct_zero_candidate_power bpvi_partial_pvs_distinct_zero_candidate_power bpvi_successor_pvs_distinct_zero_candidate_power. ((((exists bpvi_h_pvs_distinct_zero_candidate_power_factor. bpvi_h_pvs_distinct_zero_candidate_power_factor + S (bpvi_factor_pvs_distinct_zero_candidate_power) = S ((S (bpvi_j_pvs_distinct_zero_candidate_power)) * bpvi_c_pvs_distinct_zero_candidate_power)) /\ exists bpvi_q_pvs_distinct_zero_candidate_power_factor. bpvi_b_pvs_distinct_zero_candidate_power = bpvi_q_pvs_distinct_zero_candidate_power_factor * S ((S (bpvi_j_pvs_distinct_zero_candidate_power)) * bpvi_c_pvs_distinct_zero_candidate_power) + (bpvi_factor_pvs_distinct_zero_candidate_power))) /\ ((((exists bpvi_h_pvs_distinct_zero_candidate_power_partial. bpvi_h_pvs_distinct_zero_candidate_power_partial + S (bpvi_partial_pvs_distinct_zero_candidate_power) = S ((S (bpvi_j_pvs_distinct_zero_candidate_power)) * bpvi_v_pvs_distinct_zero_candidate_power)) /\ exists bpvi_q_pvs_distinct_zero_candidate_power_partial. bpvi_u_pvs_distinct_zero_candidate_power = bpvi_q_pvs_distinct_zero_candidate_power_partial * S ((S (bpvi_j_pvs_distinct_zero_candidate_power)) * bpvi_v_pvs_distinct_zero_candidate_power) + (bpvi_partial_pvs_distinct_zero_candidate_power))) /\ ((((exists bpvi_h_pvs_distinct_zero_candidate_power_successor. bpvi_h_pvs_distinct_zero_candidate_power_successor + S (bpvi_successor_pvs_distinct_zero_candidate_power) = S ((S (S bpvi_j_pvs_distinct_zero_candidate_power)) * bpvi_v_pvs_distinct_zero_candidate_power)) /\ exists bpvi_q_pvs_distinct_zero_candidate_power_successor. bpvi_u_pvs_distinct_zero_candidate_power = bpvi_q_pvs_distinct_zero_candidate_power_successor * S ((S (S bpvi_j_pvs_distinct_zero_candidate_power)) * bpvi_v_pvs_distinct_zero_candidate_power) + (bpvi_successor_pvs_distinct_zero_candidate_power))) /\ bpvi_successor_pvs_distinct_zero_candidate_power = bpvi_partial_pvs_distinct_zero_candidate_power * bpvi_factor_pvs_distinct_zero_candidate_power)))))))) /\ exists bpvi_divisor_factor_pvs_distinct_zero_candidate. z = bpvi_result_pvs_distinct_zero_candidate * bpvi_divisor_factor_pvs_distinct_zero_candidate)) -> (exists bpd_gap_pvs_distinct_zero_maximal. bpd_gap_pvs_distinct_zero_maximal + (bpd_candidate_pvs_distinct_zero) = (0)))

Complete tactic proof in conservative notation

All 44 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

44 script commands · 5 reading checkpoints · 2 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 (3)
01Fix variables and assumptionsL1–8

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

  1. L1
    intro p
  2. L2
    intro q
  3. L3
    intro k
  4. L4
    intro z
  5. L5
    intro hp
  6. L6
    intro hq
  7. L7
    intro hne
  8. L8
    intro hpow
02Establish hpzeroL9–14

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

  1. L9
    have hpzero : ~(p = 0)
  2. L10
    intro hz
  3. L11
    specialize prime_nonzero (p)
  4. L12
    apply prime_nonzero
  5. L13
    exact hp
  6. L14
    exact hz
03Establish hbaseL15–24

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

  1. L15
    have hbase : BoundedPowerValuation(q,p,p,0)Definitions: BoundedPowerValuation(q,p,p,0)Original native command in the exact edition
  2. L16
    specialize prime_valuation_zero_of_nondivisor (q)
  3. L17
    specialize prime_valuation_zero_of_nondivisor (p)
  4. L18
    apply prime_valuation_zero_of_nondivisor
  5. L19
    exact hq
  6. L20
    exact hpzero
  7. L21
    intro hdiv
  8. L22
    specialize distinct_primes_left_not_divide_right (q)
  9. L23
    specialize distinct_primes_left_not_divide_right (p)
  10. L24
    apply distinct_primes_left_not_divide_right
04Use earlier factsL25–34

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

  1. L25
    exact hq
  2. L26
    exact hp
  3. L27
    exact hne
  4. L28
    exact hdiv
  5. L29
    specialize prime_valuation_exponent_eq_transport (q)
  6. L30
    specialize prime_valuation_exponent_eq_transport (z)
  7. L31
    specialize prime_valuation_exponent_eq_transport (k * 0)
  8. L32
    specialize prime_valuation_exponent_eq_transport (0)
  9. L33
    apply prime_valuation_exponent_eq_transport
  10. L34
    apply PA5
05Use earlier factsL35–44

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

  1. L35
    specialize prime_power_valuation_pow (q)
  2. L36
    specialize prime_power_valuation_pow (p)
  3. L37
    specialize prime_power_valuation_pow (k)
  4. L38
    specialize prime_power_valuation_pow (0)
  5. L39
    specialize prime_power_valuation_pow (z)
  6. L40
    apply prime_power_valuation_pow
  7. L41
    exact hq
  8. L42
    exact hpzero
  9. L43
    exact hbase
  10. L44
    exact hpow

Library-wide reading audit

Original defined command ledger · 44 lines
  1. 0001intro p
  2. 0002intro q
  3. 0003intro k
  4. 0004intro z
  5. 0005intro hp
  6. 0006intro hq
  7. 0007intro hne
  8. 0008intro hpow
  9. 0009have hpzero : ~(p = 0)
  10. 0010intro hz
  11. 0011specialize prime_nonzero (p)
  12. 0012apply prime_nonzero
  13. 0013exact hp
  14. 0014exact hz
  15. 0015have hbase : BoundedPowerValuation(q,p,p,0)
  16. 0016specialize prime_valuation_zero_of_nondivisor (q)
  17. 0017specialize prime_valuation_zero_of_nondivisor (p)
  18. 0018apply prime_valuation_zero_of_nondivisor
  19. 0019exact hq
  20. 0020exact hpzero
  21. 0021intro hdiv
  22. 0022specialize distinct_primes_left_not_divide_right (q)
  23. 0023specialize distinct_primes_left_not_divide_right (p)
  24. 0024apply distinct_primes_left_not_divide_right
  25. 0025exact hq
  26. 0026exact hp
  27. 0027exact hne
  28. 0028exact hdiv
  29. 0029specialize prime_valuation_exponent_eq_transport (q)
  30. 0030specialize prime_valuation_exponent_eq_transport (z)
  31. 0031specialize prime_valuation_exponent_eq_transport (k * 0)
  32. 0032specialize prime_valuation_exponent_eq_transport (0)
  33. 0033apply prime_valuation_exponent_eq_transport
  34. 0034apply PA5
  35. 0035specialize prime_power_valuation_pow (q)
  36. 0036specialize prime_power_valuation_pow (p)
  37. 0037specialize prime_power_valuation_pow (k)
  38. 0038specialize prime_power_valuation_pow (0)
  39. 0039specialize prime_power_valuation_pow (z)
  40. 0040apply prime_power_valuation_pow
  41. 0041exact hq
  42. 0042exact hpzero
  43. 0043exact hbase
  44. 0044exact hpow