BT00QH · Bertrand theorem

power_valuation_successor_not_divides

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

A canonical valuation at a prime cannot admit the next power divisor.

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.

Statement with defined notation

∀ p. ∀ a. ∀ e. Prime(p) → ¬a = 0 → PowerValuation(p,a,e) → ¬PowerDivides(p,S e,a)

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

3 occurrences

In local proof propositions

3 occurrences

Exact expanded native-PA statement
forall p a e. ((~(p = 1) /\ forall frm_prime_left_bpvl_prime frm_prime_right_bpvl_prime. p = frm_prime_left_bpvl_prime * frm_prime_right_bpvl_prime -> frm_prime_left_bpvl_prime = 1 \/ frm_prime_right_bpvl_prime = 1)) -> ~(a = 0) -> (((exists bpv_gap_bpvl_valuation_exponent_bound. bpv_gap_bpvl_valuation_exponent_bound + e = a) /\ (exists bpv_result_bpvl_valuation_selected. ((exists ff_b_bpvl_valuation_selected_power ff_c_bpvl_valuation_selected_power. ((forall ff_i_bpvl_valuation_selected_power_repeat. (exists ff_lt_bpvl_valuation_selected_power_repeat_bound. ff_lt_bpvl_valuation_selected_power_repeat_bound + S ff_i_bpvl_valuation_selected_power_repeat = e) -> (((exists ff_h_bpvl_valuation_selected_power_repeat_decoded. ff_h_bpvl_valuation_selected_power_repeat_decoded + S (p) = S ((S (ff_i_bpvl_valuation_selected_power_repeat)) * ff_c_bpvl_valuation_selected_power)) /\ exists ff_q_bpvl_valuation_selected_power_repeat_decoded. ff_b_bpvl_valuation_selected_power = ff_q_bpvl_valuation_selected_power_repeat_decoded * S ((S (ff_i_bpvl_valuation_selected_power_repeat)) * ff_c_bpvl_valuation_selected_power) + (p)))) /\ (exists ff_u_bpvl_valuation_selected_power_product ff_v_bpvl_valuation_selected_power_product. ((((exists ff_h_bpvl_valuation_selected_power_product_start. ff_h_bpvl_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_bpvl_valuation_selected_power_product)) /\ exists ff_q_bpvl_valuation_selected_power_product_start. ff_u_bpvl_valuation_selected_power_product = ff_q_bpvl_valuation_selected_power_product_start * S ((S (0)) * ff_v_bpvl_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_bpvl_valuation_selected_power_product_terminal. ff_h_bpvl_valuation_selected_power_product_terminal + S (bpv_result_bpvl_valuation_selected) = S ((S (e)) * ff_v_bpvl_valuation_selected_power_product)) /\ exists ff_q_bpvl_valuation_selected_power_product_terminal. ff_u_bpvl_valuation_selected_power_product = ff_q_bpvl_valuation_selected_power_product_terminal * S ((S (e)) * ff_v_bpvl_valuation_selected_power_product) + (bpv_result_bpvl_valuation_selected))) /\ forall ff_i_bpvl_valuation_selected_power_product. (exists ff_lt_bpvl_valuation_selected_power_product_bound. ff_lt_bpvl_valuation_selected_power_product_bound + S ff_i_bpvl_valuation_selected_power_product = e) -> exists ff_p_bpvl_valuation_selected_power_product ff_r_bpvl_valuation_selected_power_product ff_s_bpvl_valuation_selected_power_product. ((((exists ff_h_bpvl_valuation_selected_power_product_factor. ff_h_bpvl_valuation_selected_power_product_factor + S (ff_p_bpvl_valuation_selected_power_product) = S ((S (ff_i_bpvl_valuation_selected_power_product)) * ff_c_bpvl_valuation_selected_power)) /\ exists ff_q_bpvl_valuation_selected_power_product_factor. ff_b_bpvl_valuation_selected_power = ff_q_bpvl_valuation_selected_power_product_factor * S ((S (ff_i_bpvl_valuation_selected_power_product)) * ff_c_bpvl_valuation_selected_power) + (ff_p_bpvl_valuation_selected_power_product))) /\ ((((exists ff_h_bpvl_valuation_selected_power_product_partial. ff_h_bpvl_valuation_selected_power_product_partial + S (ff_r_bpvl_valuation_selected_power_product) = S ((S (ff_i_bpvl_valuation_selected_power_product)) * ff_v_bpvl_valuation_selected_power_product)) /\ exists ff_q_bpvl_valuation_selected_power_product_partial. ff_u_bpvl_valuation_selected_power_product = ff_q_bpvl_valuation_selected_power_product_partial * S ((S (ff_i_bpvl_valuation_selected_power_product)) * ff_v_bpvl_valuation_selected_power_product) + (ff_r_bpvl_valuation_selected_power_product))) /\ ((((exists ff_h_bpvl_valuation_selected_power_product_successor. ff_h_bpvl_valuation_selected_power_product_successor + S (ff_s_bpvl_valuation_selected_power_product) = S ((S (S ff_i_bpvl_valuation_selected_power_product)) * ff_v_bpvl_valuation_selected_power_product)) /\ exists ff_q_bpvl_valuation_selected_power_product_successor. ff_u_bpvl_valuation_selected_power_product = ff_q_bpvl_valuation_selected_power_product_successor * S ((S (S ff_i_bpvl_valuation_selected_power_product)) * ff_v_bpvl_valuation_selected_power_product) + (ff_s_bpvl_valuation_selected_power_product))) /\ ff_s_bpvl_valuation_selected_power_product = ff_r_bpvl_valuation_selected_power_product * ff_p_bpvl_valuation_selected_power_product)))))))) /\ (exists bpv_factor_bpvl_valuation_selected_divides. a = bpv_result_bpvl_valuation_selected * bpv_factor_bpvl_valuation_selected_divides)))) /\ forall bpv_candidate_bpvl_valuation. (exists bpv_gap_bpvl_valuation_candidate_bound. bpv_gap_bpvl_valuation_candidate_bound + bpv_candidate_bpvl_valuation = a) -> (exists bpv_result_bpvl_valuation_candidate. ((exists ff_b_bpvl_valuation_candidate_power ff_c_bpvl_valuation_candidate_power. ((forall ff_i_bpvl_valuation_candidate_power_repeat. (exists ff_lt_bpvl_valuation_candidate_power_repeat_bound. ff_lt_bpvl_valuation_candidate_power_repeat_bound + S ff_i_bpvl_valuation_candidate_power_repeat = bpv_candidate_bpvl_valuation) -> (((exists ff_h_bpvl_valuation_candidate_power_repeat_decoded. ff_h_bpvl_valuation_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_bpvl_valuation_candidate_power_repeat)) * ff_c_bpvl_valuation_candidate_power)) /\ exists ff_q_bpvl_valuation_candidate_power_repeat_decoded. ff_b_bpvl_valuation_candidate_power = ff_q_bpvl_valuation_candidate_power_repeat_decoded * S ((S (ff_i_bpvl_valuation_candidate_power_repeat)) * ff_c_bpvl_valuation_candidate_power) + (p)))) /\ (exists ff_u_bpvl_valuation_candidate_power_product ff_v_bpvl_valuation_candidate_power_product. ((((exists ff_h_bpvl_valuation_candidate_power_product_start. ff_h_bpvl_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_bpvl_valuation_candidate_power_product)) /\ exists ff_q_bpvl_valuation_candidate_power_product_start. ff_u_bpvl_valuation_candidate_power_product = ff_q_bpvl_valuation_candidate_power_product_start * S ((S (0)) * ff_v_bpvl_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_bpvl_valuation_candidate_power_product_terminal. ff_h_bpvl_valuation_candidate_power_product_terminal + S (bpv_result_bpvl_valuation_candidate) = S ((S (bpv_candidate_bpvl_valuation)) * ff_v_bpvl_valuation_candidate_power_product)) /\ exists ff_q_bpvl_valuation_candidate_power_product_terminal. ff_u_bpvl_valuation_candidate_power_product = ff_q_bpvl_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_bpvl_valuation)) * ff_v_bpvl_valuation_candidate_power_product) + (bpv_result_bpvl_valuation_candidate))) /\ forall ff_i_bpvl_valuation_candidate_power_product. (exists ff_lt_bpvl_valuation_candidate_power_product_bound. ff_lt_bpvl_valuation_candidate_power_product_bound + S ff_i_bpvl_valuation_candidate_power_product = bpv_candidate_bpvl_valuation) -> exists ff_p_bpvl_valuation_candidate_power_product ff_r_bpvl_valuation_candidate_power_product ff_s_bpvl_valuation_candidate_power_product. ((((exists ff_h_bpvl_valuation_candidate_power_product_factor. ff_h_bpvl_valuation_candidate_power_product_factor + S (ff_p_bpvl_valuation_candidate_power_product) = S ((S (ff_i_bpvl_valuation_candidate_power_product)) * ff_c_bpvl_valuation_candidate_power)) /\ exists ff_q_bpvl_valuation_candidate_power_product_factor. ff_b_bpvl_valuation_candidate_power = ff_q_bpvl_valuation_candidate_power_product_factor * S ((S (ff_i_bpvl_valuation_candidate_power_product)) * ff_c_bpvl_valuation_candidate_power) + (ff_p_bpvl_valuation_candidate_power_product))) /\ ((((exists ff_h_bpvl_valuation_candidate_power_product_partial. ff_h_bpvl_valuation_candidate_power_product_partial + S (ff_r_bpvl_valuation_candidate_power_product) = S ((S (ff_i_bpvl_valuation_candidate_power_product)) * ff_v_bpvl_valuation_candidate_power_product)) /\ exists ff_q_bpvl_valuation_candidate_power_product_partial. ff_u_bpvl_valuation_candidate_power_product = ff_q_bpvl_valuation_candidate_power_product_partial * S ((S (ff_i_bpvl_valuation_candidate_power_product)) * ff_v_bpvl_valuation_candidate_power_product) + (ff_r_bpvl_valuation_candidate_power_product))) /\ ((((exists ff_h_bpvl_valuation_candidate_power_product_successor. ff_h_bpvl_valuation_candidate_power_product_successor + S (ff_s_bpvl_valuation_candidate_power_product) = S ((S (S ff_i_bpvl_valuation_candidate_power_product)) * ff_v_bpvl_valuation_candidate_power_product)) /\ exists ff_q_bpvl_valuation_candidate_power_product_successor. ff_u_bpvl_valuation_candidate_power_product = ff_q_bpvl_valuation_candidate_power_product_successor * S ((S (S ff_i_bpvl_valuation_candidate_power_product)) * ff_v_bpvl_valuation_candidate_power_product) + (ff_s_bpvl_valuation_candidate_power_product))) /\ ff_s_bpvl_valuation_candidate_power_product = ff_r_bpvl_valuation_candidate_power_product * ff_p_bpvl_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_bpvl_valuation_candidate_divides. a = bpv_result_bpvl_valuation_candidate * bpv_factor_bpvl_valuation_candidate_divides))) -> (exists bpv_gap_bpvl_valuation_maximal. bpv_gap_bpvl_valuation_maximal + bpv_candidate_bpvl_valuation = e)) -> ~(exists bpvi_result_bpvl_successor_divides. ((exists bpvi_b_bpvl_successor_divides_power bpvi_c_bpvl_successor_divides_power. ((forall bpvi_i_bpvl_successor_divides_power. (exists bpvi_repeat_gap_bpvl_successor_divides_power. bpvi_repeat_gap_bpvl_successor_divides_power + S bpvi_i_bpvl_successor_divides_power = S e) -> (((exists bpvi_h_bpvl_successor_divides_power_repeat. bpvi_h_bpvl_successor_divides_power_repeat + S (p) = S ((S (bpvi_i_bpvl_successor_divides_power)) * bpvi_c_bpvl_successor_divides_power)) /\ exists bpvi_q_bpvl_successor_divides_power_repeat. bpvi_b_bpvl_successor_divides_power = bpvi_q_bpvl_successor_divides_power_repeat * S ((S (bpvi_i_bpvl_successor_divides_power)) * bpvi_c_bpvl_successor_divides_power) + (p)))) /\ (exists bpvi_u_bpvl_successor_divides_power bpvi_v_bpvl_successor_divides_power. ((((exists bpvi_h_bpvl_successor_divides_power_start. bpvi_h_bpvl_successor_divides_power_start + S (1) = S ((S (0)) * bpvi_v_bpvl_successor_divides_power)) /\ exists bpvi_q_bpvl_successor_divides_power_start. bpvi_u_bpvl_successor_divides_power = bpvi_q_bpvl_successor_divides_power_start * S ((S (0)) * bpvi_v_bpvl_successor_divides_power) + (1))) /\ ((((exists bpvi_h_bpvl_successor_divides_power_terminal. bpvi_h_bpvl_successor_divides_power_terminal + S (bpvi_result_bpvl_successor_divides) = S ((S (S e)) * bpvi_v_bpvl_successor_divides_power)) /\ exists bpvi_q_bpvl_successor_divides_power_terminal. bpvi_u_bpvl_successor_divides_power = bpvi_q_bpvl_successor_divides_power_terminal * S ((S (S e)) * bpvi_v_bpvl_successor_divides_power) + (bpvi_result_bpvl_successor_divides))) /\ forall bpvi_j_bpvl_successor_divides_power. (exists bpvi_product_gap_bpvl_successor_divides_power. bpvi_product_gap_bpvl_successor_divides_power + S bpvi_j_bpvl_successor_divides_power = S e) -> exists bpvi_factor_bpvl_successor_divides_power bpvi_partial_bpvl_successor_divides_power bpvi_successor_bpvl_successor_divides_power. ((((exists bpvi_h_bpvl_successor_divides_power_factor. bpvi_h_bpvl_successor_divides_power_factor + S (bpvi_factor_bpvl_successor_divides_power) = S ((S (bpvi_j_bpvl_successor_divides_power)) * bpvi_c_bpvl_successor_divides_power)) /\ exists bpvi_q_bpvl_successor_divides_power_factor. bpvi_b_bpvl_successor_divides_power = bpvi_q_bpvl_successor_divides_power_factor * S ((S (bpvi_j_bpvl_successor_divides_power)) * bpvi_c_bpvl_successor_divides_power) + (bpvi_factor_bpvl_successor_divides_power))) /\ ((((exists bpvi_h_bpvl_successor_divides_power_partial. bpvi_h_bpvl_successor_divides_power_partial + S (bpvi_partial_bpvl_successor_divides_power) = S ((S (bpvi_j_bpvl_successor_divides_power)) * bpvi_v_bpvl_successor_divides_power)) /\ exists bpvi_q_bpvl_successor_divides_power_partial. bpvi_u_bpvl_successor_divides_power = bpvi_q_bpvl_successor_divides_power_partial * S ((S (bpvi_j_bpvl_successor_divides_power)) * bpvi_v_bpvl_successor_divides_power) + (bpvi_partial_bpvl_successor_divides_power))) /\ ((((exists bpvi_h_bpvl_successor_divides_power_successor. bpvi_h_bpvl_successor_divides_power_successor + S (bpvi_successor_bpvl_successor_divides_power) = S ((S (S bpvi_j_bpvl_successor_divides_power)) * bpvi_v_bpvl_successor_divides_power)) /\ exists bpvi_q_bpvl_successor_divides_power_successor. bpvi_u_bpvl_successor_divides_power = bpvi_q_bpvl_successor_divides_power_successor * S ((S (S bpvi_j_bpvl_successor_divides_power)) * bpvi_v_bpvl_successor_divides_power) + (bpvi_successor_bpvl_successor_divides_power))) /\ bpvi_successor_bpvl_successor_divides_power = bpvi_partial_bpvl_successor_divides_power * bpvi_factor_bpvl_successor_divides_power)))))))) /\ exists bpvi_divisor_factor_bpvl_successor_divides. a = bpvi_result_bpvl_successor_divides * bpvi_divisor_factor_bpvl_successor_divides))

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

30 script commands · 7 reading checkpoints · 3 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–7

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 hp
  5. L5
    intro ha
  6. L6
    intro hvaluation
  7. L7
    intro hsuccessor
02Establish hboundL8–15

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. L8
    have hbound : Lt(e,a)Definitions: Lt(e,a)Original native command in the exact edition
  2. L9
    specialize prime_power_divides_exponent_le_value p
  3. L10
    specialize prime_power_divides_exponent_le_value (S e)
  4. L11
    specialize prime_power_divides_exponent_le_value a
  5. L12
    apply prime_power_divides_exponent_le_value
  6. L13
    exact hp
  7. L14
    exact ha
  8. L15
    exact hsuccessor
03Separate the logical casesL16–16

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

  1. L16
    cases hvaluation
04Establish himpossibleL17–21

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

  1. L17
    have himpossible : Lt(e,e)Definitions: Lt(e,e)Original native command in the exact edition
  2. L18
    specialize hvaluation_right (S e)
  3. L19
    apply hvaluation_right
  4. L20
    exact hbound
  5. L21
    exact hsuccessor
05Establish hstrictL22–22

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

  1. L22
    have hstrict : Lt(e,S e)Definitions: Lt(e,S e)Original native command in the exact edition
06Construct an explicit witnessL23–23

Supply the displayed value, then prove that it has the required property.

  1. L23
    exists 0
07Use earlier factsL24–30

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

  1. L24
    specialize zero_add (S e)
  2. L25
    exact zero_add
  3. L26
    specialize lt_not_le e
  4. L27
    specialize lt_not_le (S e)
  5. L28
    apply lt_not_le
  6. L29
    exact hstrict
  7. L30
    exact himpossible

Library-wide reading audit

Original defined command ledger · 30 lines
  1. 0001intro p
  2. 0002intro a
  3. 0003intro e
  4. 0004intro hp
  5. 0005intro ha
  6. 0006intro hvaluation
  7. 0007intro hsuccessor
  8. 0008have hbound : Lt(e,a)
    Exact native replay linehave hbound : exists k. k + S e = a
  9. 0009specialize prime_power_divides_exponent_le_value p
  10. 0010specialize prime_power_divides_exponent_le_value (S e)
  11. 0011specialize prime_power_divides_exponent_le_value a
  12. 0012apply prime_power_divides_exponent_le_value
  13. 0013exact hp
  14. 0014exact ha
  15. 0015exact hsuccessor
  16. 0016cases hvaluation
  17. 0017have himpossible : Lt(e,e)
    Exact native replay linehave himpossible : exists k. k + S e = e
  18. 0018specialize hvaluation_right (S e)
  19. 0019apply hvaluation_right
  20. 0020exact hbound
  21. 0021exact hsuccessor
  22. 0022have hstrict : Lt(e,S e)
    Exact native replay linehave hstrict : exists k. k + S e = S e
  23. 0023exists 0
  24. 0024specialize zero_add (S e)
  25. 0025exact zero_add
  26. 0026specialize lt_not_le e
  27. 0027specialize lt_not_le (S e)
  28. 0028apply lt_not_le
  29. 0029exact hstrict
  30. 0030exact himpossible