PV0002

prime_valuation_zero_of_nondivisor

Construct valuation zero for a positive value not divisible by the actual prime.

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. ∀ n. Prime(p) → ¬n = 0 → ¬Dvd(p,n)BoundedPowerValuation(p,n,n,0)

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

Definition DAG

Actual proof prerequisites

power_valuation_exists · checked external prerequisiteprime_power_valuation_zero_iff_not_divides · checked external prerequisiteprime_valuation_exponent_eq_transport
Original expanded first-order statement
forall p n. (~((p) = 1) /\ forall pvs_left_zero_domain pvs_right_zero_domain. (p) = pvs_left_zero_domain * pvs_right_zero_domain -> pvs_left_zero_domain = 1 \/ pvs_right_zero_domain = 1) -> ~(n = 0) -> ~(exists pvs_factor_zero_nondivisor. (n) = (p) * pvs_factor_zero_nondivisor) -> (((exists bpd_gap_pvs_zero_value_selected_bound. bpd_gap_pvs_zero_value_selected_bound + (0) = (n)) /\ (exists bpvi_result_pvs_zero_value_selected. ((exists bpvi_b_pvs_zero_value_selected_power bpvi_c_pvs_zero_value_selected_power. ((forall bpvi_i_pvs_zero_value_selected_power. (exists bpvi_repeat_gap_pvs_zero_value_selected_power. bpvi_repeat_gap_pvs_zero_value_selected_power + S bpvi_i_pvs_zero_value_selected_power = 0) -> (((exists bpvi_h_pvs_zero_value_selected_power_repeat. bpvi_h_pvs_zero_value_selected_power_repeat + S (p) = S ((S (bpvi_i_pvs_zero_value_selected_power)) * bpvi_c_pvs_zero_value_selected_power)) /\ exists bpvi_q_pvs_zero_value_selected_power_repeat. bpvi_b_pvs_zero_value_selected_power = bpvi_q_pvs_zero_value_selected_power_repeat * S ((S (bpvi_i_pvs_zero_value_selected_power)) * bpvi_c_pvs_zero_value_selected_power) + (p)))) /\ (exists bpvi_u_pvs_zero_value_selected_power bpvi_v_pvs_zero_value_selected_power. ((((exists bpvi_h_pvs_zero_value_selected_power_start. bpvi_h_pvs_zero_value_selected_power_start + S (1) = S ((S (0)) * bpvi_v_pvs_zero_value_selected_power)) /\ exists bpvi_q_pvs_zero_value_selected_power_start. bpvi_u_pvs_zero_value_selected_power = bpvi_q_pvs_zero_value_selected_power_start * S ((S (0)) * bpvi_v_pvs_zero_value_selected_power) + (1))) /\ ((((exists bpvi_h_pvs_zero_value_selected_power_terminal. bpvi_h_pvs_zero_value_selected_power_terminal + S (bpvi_result_pvs_zero_value_selected) = S ((S (0)) * bpvi_v_pvs_zero_value_selected_power)) /\ exists bpvi_q_pvs_zero_value_selected_power_terminal. bpvi_u_pvs_zero_value_selected_power = bpvi_q_pvs_zero_value_selected_power_terminal * S ((S (0)) * bpvi_v_pvs_zero_value_selected_power) + (bpvi_result_pvs_zero_value_selected))) /\ forall bpvi_j_pvs_zero_value_selected_power. (exists bpvi_product_gap_pvs_zero_value_selected_power. bpvi_product_gap_pvs_zero_value_selected_power + S bpvi_j_pvs_zero_value_selected_power = 0) -> exists bpvi_factor_pvs_zero_value_selected_power bpvi_partial_pvs_zero_value_selected_power bpvi_successor_pvs_zero_value_selected_power. ((((exists bpvi_h_pvs_zero_value_selected_power_factor. bpvi_h_pvs_zero_value_selected_power_factor + S (bpvi_factor_pvs_zero_value_selected_power) = S ((S (bpvi_j_pvs_zero_value_selected_power)) * bpvi_c_pvs_zero_value_selected_power)) /\ exists bpvi_q_pvs_zero_value_selected_power_factor. bpvi_b_pvs_zero_value_selected_power = bpvi_q_pvs_zero_value_selected_power_factor * S ((S (bpvi_j_pvs_zero_value_selected_power)) * bpvi_c_pvs_zero_value_selected_power) + (bpvi_factor_pvs_zero_value_selected_power))) /\ ((((exists bpvi_h_pvs_zero_value_selected_power_partial. bpvi_h_pvs_zero_value_selected_power_partial + S (bpvi_partial_pvs_zero_value_selected_power) = S ((S (bpvi_j_pvs_zero_value_selected_power)) * bpvi_v_pvs_zero_value_selected_power)) /\ exists bpvi_q_pvs_zero_value_selected_power_partial. bpvi_u_pvs_zero_value_selected_power = bpvi_q_pvs_zero_value_selected_power_partial * S ((S (bpvi_j_pvs_zero_value_selected_power)) * bpvi_v_pvs_zero_value_selected_power) + (bpvi_partial_pvs_zero_value_selected_power))) /\ ((((exists bpvi_h_pvs_zero_value_selected_power_successor. bpvi_h_pvs_zero_value_selected_power_successor + S (bpvi_successor_pvs_zero_value_selected_power) = S ((S (S bpvi_j_pvs_zero_value_selected_power)) * bpvi_v_pvs_zero_value_selected_power)) /\ exists bpvi_q_pvs_zero_value_selected_power_successor. bpvi_u_pvs_zero_value_selected_power = bpvi_q_pvs_zero_value_selected_power_successor * S ((S (S bpvi_j_pvs_zero_value_selected_power)) * bpvi_v_pvs_zero_value_selected_power) + (bpvi_successor_pvs_zero_value_selected_power))) /\ bpvi_successor_pvs_zero_value_selected_power = bpvi_partial_pvs_zero_value_selected_power * bpvi_factor_pvs_zero_value_selected_power)))))))) /\ exists bpvi_divisor_factor_pvs_zero_value_selected. n = bpvi_result_pvs_zero_value_selected * bpvi_divisor_factor_pvs_zero_value_selected))) /\ forall bpd_candidate_pvs_zero_value. (exists bpd_gap_pvs_zero_value_candidate_bound. bpd_gap_pvs_zero_value_candidate_bound + (bpd_candidate_pvs_zero_value) = (n)) -> (exists bpvi_result_pvs_zero_value_candidate. ((exists bpvi_b_pvs_zero_value_candidate_power bpvi_c_pvs_zero_value_candidate_power. ((forall bpvi_i_pvs_zero_value_candidate_power. (exists bpvi_repeat_gap_pvs_zero_value_candidate_power. bpvi_repeat_gap_pvs_zero_value_candidate_power + S bpvi_i_pvs_zero_value_candidate_power = bpd_candidate_pvs_zero_value) -> (((exists bpvi_h_pvs_zero_value_candidate_power_repeat. bpvi_h_pvs_zero_value_candidate_power_repeat + S (p) = S ((S (bpvi_i_pvs_zero_value_candidate_power)) * bpvi_c_pvs_zero_value_candidate_power)) /\ exists bpvi_q_pvs_zero_value_candidate_power_repeat. bpvi_b_pvs_zero_value_candidate_power = bpvi_q_pvs_zero_value_candidate_power_repeat * S ((S (bpvi_i_pvs_zero_value_candidate_power)) * bpvi_c_pvs_zero_value_candidate_power) + (p)))) /\ (exists bpvi_u_pvs_zero_value_candidate_power bpvi_v_pvs_zero_value_candidate_power. ((((exists bpvi_h_pvs_zero_value_candidate_power_start. bpvi_h_pvs_zero_value_candidate_power_start + S (1) = S ((S (0)) * bpvi_v_pvs_zero_value_candidate_power)) /\ exists bpvi_q_pvs_zero_value_candidate_power_start. bpvi_u_pvs_zero_value_candidate_power = bpvi_q_pvs_zero_value_candidate_power_start * S ((S (0)) * bpvi_v_pvs_zero_value_candidate_power) + (1))) /\ ((((exists bpvi_h_pvs_zero_value_candidate_power_terminal. bpvi_h_pvs_zero_value_candidate_power_terminal + S (bpvi_result_pvs_zero_value_candidate) = S ((S (bpd_candidate_pvs_zero_value)) * bpvi_v_pvs_zero_value_candidate_power)) /\ exists bpvi_q_pvs_zero_value_candidate_power_terminal. bpvi_u_pvs_zero_value_candidate_power = bpvi_q_pvs_zero_value_candidate_power_terminal * S ((S (bpd_candidate_pvs_zero_value)) * bpvi_v_pvs_zero_value_candidate_power) + (bpvi_result_pvs_zero_value_candidate))) /\ forall bpvi_j_pvs_zero_value_candidate_power. (exists bpvi_product_gap_pvs_zero_value_candidate_power. bpvi_product_gap_pvs_zero_value_candidate_power + S bpvi_j_pvs_zero_value_candidate_power = bpd_candidate_pvs_zero_value) -> exists bpvi_factor_pvs_zero_value_candidate_power bpvi_partial_pvs_zero_value_candidate_power bpvi_successor_pvs_zero_value_candidate_power. ((((exists bpvi_h_pvs_zero_value_candidate_power_factor. bpvi_h_pvs_zero_value_candidate_power_factor + S (bpvi_factor_pvs_zero_value_candidate_power) = S ((S (bpvi_j_pvs_zero_value_candidate_power)) * bpvi_c_pvs_zero_value_candidate_power)) /\ exists bpvi_q_pvs_zero_value_candidate_power_factor. bpvi_b_pvs_zero_value_candidate_power = bpvi_q_pvs_zero_value_candidate_power_factor * S ((S (bpvi_j_pvs_zero_value_candidate_power)) * bpvi_c_pvs_zero_value_candidate_power) + (bpvi_factor_pvs_zero_value_candidate_power))) /\ ((((exists bpvi_h_pvs_zero_value_candidate_power_partial. bpvi_h_pvs_zero_value_candidate_power_partial + S (bpvi_partial_pvs_zero_value_candidate_power) = S ((S (bpvi_j_pvs_zero_value_candidate_power)) * bpvi_v_pvs_zero_value_candidate_power)) /\ exists bpvi_q_pvs_zero_value_candidate_power_partial. bpvi_u_pvs_zero_value_candidate_power = bpvi_q_pvs_zero_value_candidate_power_partial * S ((S (bpvi_j_pvs_zero_value_candidate_power)) * bpvi_v_pvs_zero_value_candidate_power) + (bpvi_partial_pvs_zero_value_candidate_power))) /\ ((((exists bpvi_h_pvs_zero_value_candidate_power_successor. bpvi_h_pvs_zero_value_candidate_power_successor + S (bpvi_successor_pvs_zero_value_candidate_power) = S ((S (S bpvi_j_pvs_zero_value_candidate_power)) * bpvi_v_pvs_zero_value_candidate_power)) /\ exists bpvi_q_pvs_zero_value_candidate_power_successor. bpvi_u_pvs_zero_value_candidate_power = bpvi_q_pvs_zero_value_candidate_power_successor * S ((S (S bpvi_j_pvs_zero_value_candidate_power)) * bpvi_v_pvs_zero_value_candidate_power) + (bpvi_successor_pvs_zero_value_candidate_power))) /\ bpvi_successor_pvs_zero_value_candidate_power = bpvi_partial_pvs_zero_value_candidate_power * bpvi_factor_pvs_zero_value_candidate_power)))))))) /\ exists bpvi_divisor_factor_pvs_zero_value_candidate. n = bpvi_result_pvs_zero_value_candidate * bpvi_divisor_factor_pvs_zero_value_candidate)) -> (exists bpd_gap_pvs_zero_value_maximal. bpd_gap_pvs_zero_value_maximal + (bpd_candidate_pvs_zero_value) = (0)))

Complete tactic proof in conservative notation

All 27 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

27 script commands · 6 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 (1)
01Fix variables and assumptionsL1–5

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

  1. L1
    intro p
  2. L2
    intro n
  3. L3
    intro hp
  4. L4
    intro hn
  5. L5
    intro hnot
02Establish hexL6–9

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

  1. L6
    have hex : ∃ e. BoundedPowerValuation(p,n,n,e)Definitions: BoundedPowerValuation(p,n,n,e)Original native command in the exact edition
  2. L7
    specialize power_valuation_exists (p)
  3. L8
    specialize power_valuation_exists (n)
  4. L9
    apply power_valuation_exists
03Separate the logical casesL10–10

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

  1. L10
    cases hex
04Establish hiffL11–18

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

  1. L11
    have hiff : (x = 0 → ¬Dvd(p,n)) ∧ (¬Dvd(p,n) → x = 0)Definitions: Dvd(p,n)Original native command in the exact edition
  2. L12
    specialize prime_power_valuation_zero_iff_not_divides (p)
  3. L13
    specialize prime_power_valuation_zero_iff_not_divides (n)
  4. L14
    specialize prime_power_valuation_zero_iff_not_divides (x)
  5. L15
    apply prime_power_valuation_zero_iff_not_divides
  6. L16
    exact hp
  7. L17
    exact hn
  8. L18
    exact hex_witness
05Separate the logical casesL19–19

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

  1. L19
    cases hiff
06Use earlier factsL20–27

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

  1. L20
    specialize prime_valuation_exponent_eq_transport (p)
  2. L21
    specialize prime_valuation_exponent_eq_transport (n)
  3. L22
    specialize prime_valuation_exponent_eq_transport (x)
  4. L23
    specialize prime_valuation_exponent_eq_transport (0)
  5. L24
    apply prime_valuation_exponent_eq_transport
  6. L25
    apply hiff_right
  7. L26
    exact hnot
  8. L27
    exact hex_witness

Library-wide reading audit

Original defined command ledger · 27 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro hp
  4. 0004intro hn
  5. 0005intro hnot
  6. 0006have hex : ∃ e. BoundedPowerValuation(p,n,n,e)
  7. 0007specialize power_valuation_exists (p)
  8. 0008specialize power_valuation_exists (n)
  9. 0009apply power_valuation_exists
  10. 0010cases hex
  11. 0011have hiff : (x = 0 → ¬Dvd(p,n)) ∧ (¬Dvd(p,n) → x = 0)
  12. 0012specialize prime_power_valuation_zero_iff_not_divides (p)
  13. 0013specialize prime_power_valuation_zero_iff_not_divides (n)
  14. 0014specialize prime_power_valuation_zero_iff_not_divides (x)
  15. 0015apply prime_power_valuation_zero_iff_not_divides
  16. 0016exact hp
  17. 0017exact hn
  18. 0018exact hex_witness
  19. 0019cases hiff
  20. 0020specialize prime_valuation_exponent_eq_transport (p)
  21. 0021specialize prime_valuation_exponent_eq_transport (n)
  22. 0022specialize prime_valuation_exponent_eq_transport (x)
  23. 0023specialize prime_valuation_exponent_eq_transport (0)
  24. 0024apply prime_valuation_exponent_eq_transport
  25. 0025apply hiff_right
  26. 0026exact hnot
  27. 0027exact hex_witness