BT00VY · Bertrand theorem

no_bertrand_central_prime_divisor_le

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

A no-Bertrand certificate forces central prime divisors below n.

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

∀ n. ∀ c. ∀ p. (∀ x. Lt(n,x)Le(x,n + n) → ¬Prime(x)) → Prime(p)CentralBinom(n,c)Dvd(p,c)Le(p,n)

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

7 occurrences

In local proof propositions

2 occurrences

Exact expanded native-PA statement
forall n c p. (forall bpr_prime_candidate_bnbcpdl_exclusion. ((exists bpr_gap_bnbcpdl_exclusion_lower. bpr_gap_bnbcpdl_exclusion_lower + S (n) = bpr_prime_candidate_bnbcpdl_exclusion) /\ (exists bpr_le_gap_bnbcpdl_exclusion_upper. bpr_le_gap_bnbcpdl_exclusion_upper + (bpr_prime_candidate_bnbcpdl_exclusion) = (n + n))) -> ~((~(bpr_prime_candidate_bnbcpdl_exclusion = 1) /\ forall bpr_left_bnbcpdl_exclusion_prime bpr_right_bnbcpdl_exclusion_prime. bpr_prime_candidate_bnbcpdl_exclusion = bpr_left_bnbcpdl_exclusion_prime * bpr_right_bnbcpdl_exclusion_prime -> bpr_left_bnbcpdl_exclusion_prime = 1 \/ bpr_right_bnbcpdl_exclusion_prime = 1))) -> ((~(p = 1) /\ forall bpr_left_bnbcpdl_prime bpr_right_bnbcpdl_prime. p = bpr_left_bnbcpdl_prime * bpr_right_bnbcpdl_prime -> bpr_left_bnbcpdl_prime = 1 \/ bpr_right_bnbcpdl_prime = 1)) -> (((exists bcf_lt_gap_bnbcpdl_central_out_of_range. bcf_lt_gap_bnbcpdl_central_out_of_range + S (n + n) = n) /\ c = 0) \/ ((exists bcf_le_gap_bnbcpdl_central_in_range. bcf_le_gap_bnbcpdl_central_in_range + (n) = n + n) /\ (exists bcf_row_code_code_bnbcpdl_central bcf_row_code_scale_bnbcpdl_central bcf_row_scale_code_bnbcpdl_central bcf_row_scale_scale_bnbcpdl_central bcf_row_code_bnbcpdl_central bcf_row_scale_bnbcpdl_central. ((forall bcf_row_index_bnbcpdl_central_table. (exists bcf_lt_gap_bnbcpdl_central_table_row_bound. bcf_lt_gap_bnbcpdl_central_table_row_bound + S (bcf_row_index_bnbcpdl_central_table) = S (n + n)) -> exists bcf_row_code_bnbcpdl_central_table bcf_row_scale_bnbcpdl_central_table. ((((exists bcf_height_bnbcpdl_central_table_decoded_row_code. bcf_height_bnbcpdl_central_table_decoded_row_code + S (bcf_row_code_bnbcpdl_central_table) = S ((S (bcf_row_index_bnbcpdl_central_table)) * bcf_row_code_scale_bnbcpdl_central)) /\ exists bcf_quotient_bnbcpdl_central_table_decoded_row_code. bcf_row_code_code_bnbcpdl_central = bcf_quotient_bnbcpdl_central_table_decoded_row_code * S ((S (bcf_row_index_bnbcpdl_central_table)) * bcf_row_code_scale_bnbcpdl_central) + (bcf_row_code_bnbcpdl_central_table))) /\ ((((exists bcf_height_bnbcpdl_central_table_decoded_row_scale. bcf_height_bnbcpdl_central_table_decoded_row_scale + S (bcf_row_scale_bnbcpdl_central_table) = S ((S (bcf_row_index_bnbcpdl_central_table)) * bcf_row_scale_scale_bnbcpdl_central)) /\ exists bcf_quotient_bnbcpdl_central_table_decoded_row_scale. bcf_row_scale_code_bnbcpdl_central = bcf_quotient_bnbcpdl_central_table_decoded_row_scale * S ((S (bcf_row_index_bnbcpdl_central_table)) * bcf_row_scale_scale_bnbcpdl_central) + (bcf_row_scale_bnbcpdl_central_table))) /\ ((bcf_row_index_bnbcpdl_central_table = 0 /\ (forall bcf_index_bnbcpdl_central_table_zero_row. (exists bcf_lt_gap_bnbcpdl_central_table_zero_row_bound. bcf_lt_gap_bnbcpdl_central_table_zero_row_bound + S (bcf_index_bnbcpdl_central_table_zero_row) = S (n + n)) -> exists bcf_value_bnbcpdl_central_table_zero_row. ((((exists bcf_height_bnbcpdl_central_table_zero_row_entry. bcf_height_bnbcpdl_central_table_zero_row_entry + S (bcf_value_bnbcpdl_central_table_zero_row) = S ((S (bcf_index_bnbcpdl_central_table_zero_row)) * bcf_row_scale_bnbcpdl_central_table)) /\ exists bcf_quotient_bnbcpdl_central_table_zero_row_entry. bcf_row_code_bnbcpdl_central_table = bcf_quotient_bnbcpdl_central_table_zero_row_entry * S ((S (bcf_index_bnbcpdl_central_table_zero_row)) * bcf_row_scale_bnbcpdl_central_table) + (bcf_value_bnbcpdl_central_table_zero_row))) /\ ((bcf_index_bnbcpdl_central_table_zero_row = 0 /\ bcf_value_bnbcpdl_central_table_zero_row = 1) \/ exists bcf_predecessor_bnbcpdl_central_table_zero_row. bcf_index_bnbcpdl_central_table_zero_row = S bcf_predecessor_bnbcpdl_central_table_zero_row /\ bcf_value_bnbcpdl_central_table_zero_row = 0)))) \/ exists bcf_predecessor_bnbcpdl_central_table bcf_previous_code_bnbcpdl_central_table bcf_previous_scale_bnbcpdl_central_table. bcf_row_index_bnbcpdl_central_table = S bcf_predecessor_bnbcpdl_central_table /\ ((((exists bcf_height_bnbcpdl_central_table_decoded_previous_code. bcf_height_bnbcpdl_central_table_decoded_previous_code + S (bcf_previous_code_bnbcpdl_central_table) = S ((S (bcf_predecessor_bnbcpdl_central_table)) * bcf_row_code_scale_bnbcpdl_central)) /\ exists bcf_quotient_bnbcpdl_central_table_decoded_previous_code. bcf_row_code_code_bnbcpdl_central = bcf_quotient_bnbcpdl_central_table_decoded_previous_code * S ((S (bcf_predecessor_bnbcpdl_central_table)) * bcf_row_code_scale_bnbcpdl_central) + (bcf_previous_code_bnbcpdl_central_table))) /\ ((((exists bcf_height_bnbcpdl_central_table_decoded_previous_scale. bcf_height_bnbcpdl_central_table_decoded_previous_scale + S (bcf_previous_scale_bnbcpdl_central_table) = S ((S (bcf_predecessor_bnbcpdl_central_table)) * bcf_row_scale_scale_bnbcpdl_central)) /\ exists bcf_quotient_bnbcpdl_central_table_decoded_previous_scale. bcf_row_scale_code_bnbcpdl_central = bcf_quotient_bnbcpdl_central_table_decoded_previous_scale * S ((S (bcf_predecessor_bnbcpdl_central_table)) * bcf_row_scale_scale_bnbcpdl_central) + (bcf_previous_scale_bnbcpdl_central_table))) /\ (forall bcf_index_bnbcpdl_central_table_row_step. (exists bcf_lt_gap_bnbcpdl_central_table_row_step_bound. bcf_lt_gap_bnbcpdl_central_table_row_step_bound + S (bcf_index_bnbcpdl_central_table_row_step) = S (n + n)) -> exists bcf_value_bnbcpdl_central_table_row_step. ((((exists bcf_height_bnbcpdl_central_table_row_step_entry. bcf_height_bnbcpdl_central_table_row_step_entry + S (bcf_value_bnbcpdl_central_table_row_step) = S ((S (bcf_index_bnbcpdl_central_table_row_step)) * bcf_row_scale_bnbcpdl_central_table)) /\ exists bcf_quotient_bnbcpdl_central_table_row_step_entry. bcf_row_code_bnbcpdl_central_table = bcf_quotient_bnbcpdl_central_table_row_step_entry * S ((S (bcf_index_bnbcpdl_central_table_row_step)) * bcf_row_scale_bnbcpdl_central_table) + (bcf_value_bnbcpdl_central_table_row_step))) /\ ((bcf_index_bnbcpdl_central_table_row_step = 0 /\ bcf_value_bnbcpdl_central_table_row_step = 1) \/ exists bcf_predecessor_bnbcpdl_central_table_row_step bcf_left_bnbcpdl_central_table_row_step bcf_right_bnbcpdl_central_table_row_step. bcf_index_bnbcpdl_central_table_row_step = S bcf_predecessor_bnbcpdl_central_table_row_step /\ ((((exists bcf_height_bnbcpdl_central_table_row_step_previous_left. bcf_height_bnbcpdl_central_table_row_step_previous_left + S (bcf_left_bnbcpdl_central_table_row_step) = S ((S (bcf_predecessor_bnbcpdl_central_table_row_step)) * bcf_previous_scale_bnbcpdl_central_table)) /\ exists bcf_quotient_bnbcpdl_central_table_row_step_previous_left. bcf_previous_code_bnbcpdl_central_table = bcf_quotient_bnbcpdl_central_table_row_step_previous_left * S ((S (bcf_predecessor_bnbcpdl_central_table_row_step)) * bcf_previous_scale_bnbcpdl_central_table) + (bcf_left_bnbcpdl_central_table_row_step))) /\ ((((exists bcf_height_bnbcpdl_central_table_row_step_previous_right. bcf_height_bnbcpdl_central_table_row_step_previous_right + S (bcf_right_bnbcpdl_central_table_row_step) = S ((S (S (bcf_predecessor_bnbcpdl_central_table_row_step))) * bcf_previous_scale_bnbcpdl_central_table)) /\ exists bcf_quotient_bnbcpdl_central_table_row_step_previous_right. bcf_previous_code_bnbcpdl_central_table = bcf_quotient_bnbcpdl_central_table_row_step_previous_right * S ((S (S (bcf_predecessor_bnbcpdl_central_table_row_step))) * bcf_previous_scale_bnbcpdl_central_table) + (bcf_right_bnbcpdl_central_table_row_step))) /\ bcf_value_bnbcpdl_central_table_row_step = bcf_left_bnbcpdl_central_table_row_step + bcf_right_bnbcpdl_central_table_row_step))))))))))) /\ ((((exists bcf_height_bnbcpdl_central_decoded_row_code. bcf_height_bnbcpdl_central_decoded_row_code + S (bcf_row_code_bnbcpdl_central) = S ((S (n + n)) * bcf_row_code_scale_bnbcpdl_central)) /\ exists bcf_quotient_bnbcpdl_central_decoded_row_code. bcf_row_code_code_bnbcpdl_central = bcf_quotient_bnbcpdl_central_decoded_row_code * S ((S (n + n)) * bcf_row_code_scale_bnbcpdl_central) + (bcf_row_code_bnbcpdl_central))) /\ ((((exists bcf_height_bnbcpdl_central_decoded_row_scale. bcf_height_bnbcpdl_central_decoded_row_scale + S (bcf_row_scale_bnbcpdl_central) = S ((S (n + n)) * bcf_row_scale_scale_bnbcpdl_central)) /\ exists bcf_quotient_bnbcpdl_central_decoded_row_scale. bcf_row_scale_code_bnbcpdl_central = bcf_quotient_bnbcpdl_central_decoded_row_scale * S ((S (n + n)) * bcf_row_scale_scale_bnbcpdl_central) + (bcf_row_scale_bnbcpdl_central))) /\ (((exists bcf_height_bnbcpdl_central_decoded_value. bcf_height_bnbcpdl_central_decoded_value + S (c) = S ((S (n)) * bcf_row_scale_bnbcpdl_central)) /\ exists bcf_quotient_bnbcpdl_central_decoded_value. bcf_row_code_bnbcpdl_central = bcf_quotient_bnbcpdl_central_decoded_value * S ((S (n)) * bcf_row_scale_bnbcpdl_central) + (c))))))))) -> (exists bpr_quotient_bnbcpdl_divides. c = (p) * bpr_quotient_bnbcpdl_divides) -> (exists bpr_le_gap_bnbcpdl_result. bpr_le_gap_bnbcpdl_result + (p) = (n))

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

35 script commands · 13 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 (4)
01Fix variables and assumptionsL1–7

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

  1. L1
    intro n
  2. L2
    intro c
  3. L3
    intro p
  4. L4
    intro hfree
  5. L5
    intro hp
  6. L6
    intro hcentral
  7. L7
    intro hdivides
02Use earlier factsL8–9

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

  1. L8
    specialize le_total p
  2. L9
    specialize le_total n
03Separate the logical casesL10–10

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

  1. L10
    cases le_total
04Use earlier factsL11–13

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

  1. L11
    exact le_total_left
  2. L12
    specialize le_eq_or_lt n
  3. L13
    specialize le_eq_or_lt p
05Establish hcasesL14–16

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.

  1. L14
    have hcases : n = p ∨ Lt(n,p)Definitions: Lt(n,p)Original native command in the exact edition
  2. L15
    apply le_eq_or_lt
  3. L16
    exact le_total_right
06Separate the logical casesL17–17

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

  1. L17
    cases hcases
07Calculate and transport equalitiesL18–18

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L18
    rewrite hcases_left
08Use earlier factsL19–20

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

  1. L19
    specialize le_refl p
  2. L20
    exact le_refl
09Establish hdoubleL21–29

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply central binom prime divisor le double.

  1. L21
    have hdouble : Le(p,n + n)Definitions: Le(p,n + n)Original native command in the exact edition
  2. L22
    specialize central_binom_prime_divisor_le_double n
  3. L23
    specialize central_binom_prime_divisor_le_double c
  4. L24
    specialize central_binom_prime_divisor_le_double p
  5. L25
    apply central_binom_prime_divisor_le_double
  6. L26
    exact hp
  7. L27
    exact hcentral
  8. L28
    exact hdivides
  9. L29
    specialize hfree p
10Separate the logical casesL30–30

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

  1. L30
    exfalso
11Use earlier factsL31–31

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

  1. L31
    apply hfree
12Separate the logical casesL32–32

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

  1. L32
    split
13Use earlier factsL33–35

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

  1. L33
    exact hcases_right
  2. L34
    exact hdouble
  3. L35
    exact hp

Library-wide reading audit

Original defined command ledger · 35 lines
  1. 0001intro n
  2. 0002intro c
  3. 0003intro p
  4. 0004intro hfree
  5. 0005intro hp
  6. 0006intro hcentral
  7. 0007intro hdivides
  8. 0008specialize le_total p
  9. 0009specialize le_total n
  10. 0010cases le_total
  11. 0011exact le_total_left
  12. 0012specialize le_eq_or_lt n
  13. 0013specialize le_eq_or_lt p
  14. 0014have hcases : n = p ∨ Lt(n,p)
    Exact native replay linehave hcases : n = p \/ exists gap. gap + S n = p
  15. 0015apply le_eq_or_lt
  16. 0016exact le_total_right
  17. 0017cases hcases
  18. 0018rewrite hcases_left
  19. 0019specialize le_refl p
  20. 0020exact le_refl
  21. 0021have hdouble : Le(p,n + n)
    Exact native replay linehave hdouble : exists gap. gap + p = n + n
  22. 0022specialize central_binom_prime_divisor_le_double n
  23. 0023specialize central_binom_prime_divisor_le_double c
  24. 0024specialize central_binom_prime_divisor_le_double p
  25. 0025apply central_binom_prime_divisor_le_double
  26. 0026exact hp
  27. 0027exact hcentral
  28. 0028exact hdivides
  29. 0029specialize hfree p
  30. 0030exfalso
  31. 0031apply hfree
  32. 0032split
  33. 0033exact hcases_right
  34. 0034exact hdouble
  35. 0035exact hp