PC0020

primorial_cutoff_count_power_bound

The cutoff raised to the actual number of primes beyond it is bounded by the actual primorial.

Alpha v34 checked-use · first admitted v27 · 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.

These are the exact finite integer inequalities with constant 8, for every N≥2. The proof uses constructive binomial and primorial infrastructure; it does not assume logarithms, asymptotic estimates, the prime number theorem, or a factorization oracle.

Exact theorem in conservative defined notation

∀ n. ∀ u. ∀ b. ∀ c. ∀ d. ∀ f. ∀ L. ∀ P. ∀ Q. PrimeBitPrefix(b,c,n)BetaCutoffPrefix(u,b,c,d,f,n)Sum(d,f,n,L)Primorial(n,P)Pow(u,L,Q)Le(Q,P)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall n u b c d f L P Q. (forall pc_index_prim_count_mask. (exists pc_lt_prim_count_mask_bound. pc_lt_prim_count_mask_bound + S (pc_index_prim_count_mask) = (n)) -> exists pc_bit_prim_count_mask. (((exists fs_h_pc_prim_count_mask_entry. fs_h_pc_prim_count_mask_entry + S (pc_bit_prim_count_mask) = S ((S (pc_index_prim_count_mask)) * c)) /\ exists fs_q_pc_prim_count_mask_entry. b = fs_q_pc_prim_count_mask_entry * S ((S (pc_index_prim_count_mask)) * c) + (pc_bit_prim_count_mask))) /\ (((((~(S (pc_index_prim_count_mask) = 1) /\ forall bpr_left_pc_prim_count_mask_choice_prime bpr_right_pc_prim_count_mask_choice_prime. S (pc_index_prim_count_mask) = bpr_left_pc_prim_count_mask_choice_prime * bpr_right_pc_prim_count_mask_choice_prime -> bpr_left_pc_prim_count_mask_choice_prime = 1 \/ bpr_right_pc_prim_count_mask_choice_prime = 1)) /\ pc_bit_prim_count_mask = 1) \/ (~((~(S (pc_index_prim_count_mask) = 1) /\ forall bpr_left_pc_prim_count_mask_choice_prime bpr_right_pc_prim_count_mask_choice_prime. S (pc_index_prim_count_mask) = bpr_left_pc_prim_count_mask_choice_prime * bpr_right_pc_prim_count_mask_choice_prime -> bpr_left_pc_prim_count_mask_choice_prime = 1 \/ bpr_right_pc_prim_count_mask_choice_prime = 1)) /\ pc_bit_prim_count_mask = 0)))) -> (forall pc_index_prim_count_cutoff. (exists pc_lt_prim_count_cutoff_bound. pc_lt_prim_count_cutoff_bound + S (pc_index_prim_count_cutoff) = (n)) -> exists pc_bit_prim_count_cutoff. (((exists fs_h_pc_prim_count_cutoff_entry. fs_h_pc_prim_count_cutoff_entry + S (pc_bit_prim_count_cutoff) = S ((S (pc_index_prim_count_cutoff)) * f)) /\ exists fs_q_pc_prim_count_cutoff_entry. d = fs_q_pc_prim_count_cutoff_entry * S ((S (pc_index_prim_count_cutoff)) * f) + (pc_bit_prim_count_cutoff))) /\ ((((exists pc_lt_prim_count_cutoff_choice_below. pc_lt_prim_count_cutoff_choice_below + S (pc_index_prim_count_cutoff) = (u)) /\ pc_bit_prim_count_cutoff = 0) \/ ((exists pc_le_prim_count_cutoff_choice_above. pc_le_prim_count_cutoff_choice_above + (u) = (pc_index_prim_count_cutoff)) /\ (((exists fs_h_pc_prim_count_cutoff_choice_source. fs_h_pc_prim_count_cutoff_choice_source + S (pc_bit_prim_count_cutoff) = S ((S (pc_index_prim_count_cutoff)) * c)) /\ exists fs_q_pc_prim_count_cutoff_choice_source. b = fs_q_pc_prim_count_cutoff_choice_source * S ((S (pc_index_prim_count_cutoff)) * c) + (pc_bit_prim_count_cutoff))))))) -> (exists fs_u_pc_prim_count_sum fs_v_pc_prim_count_sum. ((((exists fs_h_pc_prim_count_sum_body_start. fs_h_pc_prim_count_sum_body_start + S (0) = S ((S (0)) * fs_v_pc_prim_count_sum)) /\ exists fs_q_pc_prim_count_sum_body_start. fs_u_pc_prim_count_sum = fs_q_pc_prim_count_sum_body_start * S ((S (0)) * fs_v_pc_prim_count_sum) + (0))) /\ ((((exists fs_h_pc_prim_count_sum_body_terminal. fs_h_pc_prim_count_sum_body_terminal + S (L) = S ((S (n)) * fs_v_pc_prim_count_sum)) /\ exists fs_q_pc_prim_count_sum_body_terminal. fs_u_pc_prim_count_sum = fs_q_pc_prim_count_sum_body_terminal * S ((S (n)) * fs_v_pc_prim_count_sum) + (L))) /\ forall fs_i_pc_prim_count_sum_body_steps. (exists fs_lt_pc_prim_count_sum_body_steps_bound. fs_lt_pc_prim_count_sum_body_steps_bound + S fs_i_pc_prim_count_sum_body_steps = n) -> exists fs_a_pc_prim_count_sum_body_steps fs_r_pc_prim_count_sum_body_steps fs_s_pc_prim_count_sum_body_steps. ((((exists fs_h_pc_prim_count_sum_body_steps_summand. fs_h_pc_prim_count_sum_body_steps_summand + S (fs_a_pc_prim_count_sum_body_steps) = S ((S (fs_i_pc_prim_count_sum_body_steps)) * f)) /\ exists fs_q_pc_prim_count_sum_body_steps_summand. d = fs_q_pc_prim_count_sum_body_steps_summand * S ((S (fs_i_pc_prim_count_sum_body_steps)) * f) + (fs_a_pc_prim_count_sum_body_steps))) /\ ((((exists fs_h_pc_prim_count_sum_body_steps_partial. fs_h_pc_prim_count_sum_body_steps_partial + S (fs_r_pc_prim_count_sum_body_steps) = S ((S (fs_i_pc_prim_count_sum_body_steps)) * fs_v_pc_prim_count_sum)) /\ exists fs_q_pc_prim_count_sum_body_steps_partial. fs_u_pc_prim_count_sum = fs_q_pc_prim_count_sum_body_steps_partial * S ((S (fs_i_pc_prim_count_sum_body_steps)) * fs_v_pc_prim_count_sum) + (fs_r_pc_prim_count_sum_body_steps))) /\ ((((exists fs_h_pc_prim_count_sum_body_steps_successor. fs_h_pc_prim_count_sum_body_steps_successor + S (fs_s_pc_prim_count_sum_body_steps) = S ((S (S fs_i_pc_prim_count_sum_body_steps)) * fs_v_pc_prim_count_sum)) /\ exists fs_q_pc_prim_count_sum_body_steps_successor. fs_u_pc_prim_count_sum = fs_q_pc_prim_count_sum_body_steps_successor * S ((S (S fs_i_pc_prim_count_sum_body_steps)) * fs_v_pc_prim_count_sum) + (fs_s_pc_prim_count_sum_body_steps))) /\ fs_s_pc_prim_count_sum_body_steps = fs_r_pc_prim_count_sum_body_steps + fs_a_pc_prim_count_sum_body_steps)))))) -> (exists bpr_code_pc_prim_count_primorial bpr_scale_pc_prim_count_primorial. ((forall bpr_index_pc_prim_count_primorial_mask. (exists bpr_gap_pc_prim_count_primorial_mask_bound. bpr_gap_pc_prim_count_primorial_mask_bound + S (bpr_index_pc_prim_count_primorial_mask) = n) -> exists bpr_value_pc_prim_count_primorial_mask. ((((exists bpr_height_pc_prim_count_primorial_mask_decoded. bpr_height_pc_prim_count_primorial_mask_decoded + S (bpr_value_pc_prim_count_primorial_mask) = S ((S (bpr_index_pc_prim_count_primorial_mask)) * bpr_scale_pc_prim_count_primorial)) /\ exists bpr_quotient_pc_prim_count_primorial_mask_decoded. bpr_code_pc_prim_count_primorial = bpr_quotient_pc_prim_count_primorial_mask_decoded * S ((S (bpr_index_pc_prim_count_primorial_mask)) * bpr_scale_pc_prim_count_primorial) + (bpr_value_pc_prim_count_primorial_mask))) /\ (((((~(S (bpr_index_pc_prim_count_primorial_mask) = 1) /\ forall bpr_left_pc_prim_count_primorial_mask_choice_prime bpr_right_pc_prim_count_primorial_mask_choice_prime. S (bpr_index_pc_prim_count_primorial_mask) = bpr_left_pc_prim_count_primorial_mask_choice_prime * bpr_right_pc_prim_count_primorial_mask_choice_prime -> bpr_left_pc_prim_count_primorial_mask_choice_prime = 1 \/ bpr_right_pc_prim_count_primorial_mask_choice_prime = 1)) /\ bpr_value_pc_prim_count_primorial_mask = S (bpr_index_pc_prim_count_primorial_mask)) \/ (~((~(S (bpr_index_pc_prim_count_primorial_mask) = 1) /\ forall bpr_left_pc_prim_count_primorial_mask_choice_prime bpr_right_pc_prim_count_primorial_mask_choice_prime. S (bpr_index_pc_prim_count_primorial_mask) = bpr_left_pc_prim_count_primorial_mask_choice_prime * bpr_right_pc_prim_count_primorial_mask_choice_prime -> bpr_left_pc_prim_count_primorial_mask_choice_prime = 1 \/ bpr_right_pc_prim_count_primorial_mask_choice_prime = 1)) /\ bpr_value_pc_prim_count_primorial_mask = 1))))) /\ (exists ff_u_pc_prim_count_primorial_product ff_v_pc_prim_count_primorial_product. ((((exists ff_h_pc_prim_count_primorial_product_start. ff_h_pc_prim_count_primorial_product_start + S (1) = S ((S (0)) * ff_v_pc_prim_count_primorial_product)) /\ exists ff_q_pc_prim_count_primorial_product_start. ff_u_pc_prim_count_primorial_product = ff_q_pc_prim_count_primorial_product_start * S ((S (0)) * ff_v_pc_prim_count_primorial_product) + (1))) /\ ((((exists ff_h_pc_prim_count_primorial_product_terminal. ff_h_pc_prim_count_primorial_product_terminal + S (P) = S ((S (n)) * ff_v_pc_prim_count_primorial_product)) /\ exists ff_q_pc_prim_count_primorial_product_terminal. ff_u_pc_prim_count_primorial_product = ff_q_pc_prim_count_primorial_product_terminal * S ((S (n)) * ff_v_pc_prim_count_primorial_product) + (P))) /\ forall ff_i_pc_prim_count_primorial_product. (exists ff_lt_pc_prim_count_primorial_product_bound. ff_lt_pc_prim_count_primorial_product_bound + S ff_i_pc_prim_count_primorial_product = n) -> exists ff_p_pc_prim_count_primorial_product ff_r_pc_prim_count_primorial_product ff_s_pc_prim_count_primorial_product. ((((exists ff_h_pc_prim_count_primorial_product_factor. ff_h_pc_prim_count_primorial_product_factor + S (ff_p_pc_prim_count_primorial_product) = S ((S (ff_i_pc_prim_count_primorial_product)) * bpr_scale_pc_prim_count_primorial)) /\ exists ff_q_pc_prim_count_primorial_product_factor. bpr_code_pc_prim_count_primorial = ff_q_pc_prim_count_primorial_product_factor * S ((S (ff_i_pc_prim_count_primorial_product)) * bpr_scale_pc_prim_count_primorial) + (ff_p_pc_prim_count_primorial_product))) /\ ((((exists ff_h_pc_prim_count_primorial_product_partial. ff_h_pc_prim_count_primorial_product_partial + S (ff_r_pc_prim_count_primorial_product) = S ((S (ff_i_pc_prim_count_primorial_product)) * ff_v_pc_prim_count_primorial_product)) /\ exists ff_q_pc_prim_count_primorial_product_partial. ff_u_pc_prim_count_primorial_product = ff_q_pc_prim_count_primorial_product_partial * S ((S (ff_i_pc_prim_count_primorial_product)) * ff_v_pc_prim_count_primorial_product) + (ff_r_pc_prim_count_primorial_product))) /\ ((((exists ff_h_pc_prim_count_primorial_product_successor. ff_h_pc_prim_count_primorial_product_successor + S (ff_s_pc_prim_count_primorial_product) = S ((S (S ff_i_pc_prim_count_primorial_product)) * ff_v_pc_prim_count_primorial_product)) /\ exists ff_q_pc_prim_count_primorial_product_successor. ff_u_pc_prim_count_primorial_product = ff_q_pc_prim_count_primorial_product_successor * S ((S (S ff_i_pc_prim_count_primorial_product)) * ff_v_pc_prim_count_primorial_product) + (ff_s_pc_prim_count_primorial_product))) /\ ff_s_pc_prim_count_primorial_product = ff_r_pc_prim_count_primorial_product * ff_p_pc_prim_count_primorial_product)))))))) -> (exists pa_b_pc_prim_count_power pa_c_pc_prim_count_power. ((forall pa_i_pc_prim_count_power_repeat. (exists pa_lt_pc_prim_count_power_repeat_bound. pa_lt_pc_prim_count_power_repeat_bound + S pa_i_pc_prim_count_power_repeat = L) -> (((exists pa_h_pc_prim_count_power_repeat_decoded. pa_h_pc_prim_count_power_repeat_decoded + S (u) = S ((S (pa_i_pc_prim_count_power_repeat)) * pa_c_pc_prim_count_power)) /\ exists pa_q_pc_prim_count_power_repeat_decoded. pa_b_pc_prim_count_power = pa_q_pc_prim_count_power_repeat_decoded * S ((S (pa_i_pc_prim_count_power_repeat)) * pa_c_pc_prim_count_power) + (u)))) /\ (exists pa_u_pc_prim_count_power_product pa_v_pc_prim_count_power_product. ((((exists pa_h_pc_prim_count_power_product_start. pa_h_pc_prim_count_power_product_start + S (1) = S ((S (0)) * pa_v_pc_prim_count_power_product)) /\ exists pa_q_pc_prim_count_power_product_start. pa_u_pc_prim_count_power_product = pa_q_pc_prim_count_power_product_start * S ((S (0)) * pa_v_pc_prim_count_power_product) + (1))) /\ ((((exists pa_h_pc_prim_count_power_product_terminal. pa_h_pc_prim_count_power_product_terminal + S (Q) = S ((S (L)) * pa_v_pc_prim_count_power_product)) /\ exists pa_q_pc_prim_count_power_product_terminal. pa_u_pc_prim_count_power_product = pa_q_pc_prim_count_power_product_terminal * S ((S (L)) * pa_v_pc_prim_count_power_product) + (Q))) /\ forall pa_i_pc_prim_count_power_product. (exists pa_lt_pc_prim_count_power_product_bound. pa_lt_pc_prim_count_power_product_bound + S pa_i_pc_prim_count_power_product = L) -> exists pa_p_pc_prim_count_power_product pa_r_pc_prim_count_power_product pa_s_pc_prim_count_power_product. ((((exists pa_h_pc_prim_count_power_product_factor. pa_h_pc_prim_count_power_product_factor + S (pa_p_pc_prim_count_power_product) = S ((S (pa_i_pc_prim_count_power_product)) * pa_c_pc_prim_count_power)) /\ exists pa_q_pc_prim_count_power_product_factor. pa_b_pc_prim_count_power = pa_q_pc_prim_count_power_product_factor * S ((S (pa_i_pc_prim_count_power_product)) * pa_c_pc_prim_count_power) + (pa_p_pc_prim_count_power_product))) /\ ((((exists pa_h_pc_prim_count_power_product_partial. pa_h_pc_prim_count_power_product_partial + S (pa_r_pc_prim_count_power_product) = S ((S (pa_i_pc_prim_count_power_product)) * pa_v_pc_prim_count_power_product)) /\ exists pa_q_pc_prim_count_power_product_partial. pa_u_pc_prim_count_power_product = pa_q_pc_prim_count_power_product_partial * S ((S (pa_i_pc_prim_count_power_product)) * pa_v_pc_prim_count_power_product) + (pa_r_pc_prim_count_power_product))) /\ ((((exists pa_h_pc_prim_count_power_product_successor. pa_h_pc_prim_count_power_product_successor + S (pa_s_pc_prim_count_power_product) = S ((S (S pa_i_pc_prim_count_power_product)) * pa_v_pc_prim_count_power_product)) /\ exists pa_q_pc_prim_count_power_product_successor. pa_u_pc_prim_count_power_product = pa_q_pc_prim_count_power_product_successor * S ((S (S pa_i_pc_prim_count_power_product)) * pa_v_pc_prim_count_power_product) + (pa_s_pc_prim_count_power_product))) /\ pa_s_pc_prim_count_power_product = pa_r_pc_prim_count_power_product * pa_p_pc_prim_count_power_product)))))))) -> (exists pc_le_prim_count_result. pc_le_prim_count_result + (Q) = (P))

Complete tactic proof in conservative notation

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

42 script commands · 6 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.

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 (2)
01Fix variables and assumptionsL1–10

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

  1. L1
    intro n
  2. L2
    intro u
  3. L3
    intro b
  4. L4
    intro c
  5. L5
    intro d
  6. L6
    intro f
  7. L7
    intro L
  8. L8
    intro P
  9. L9
    intro Q
  10. L10
    intro hm
02Fix variables and assumptionsL11–14

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

  1. L11
    intro hc
  2. L12
    intro hL
  3. L13
    intro hP
  4. L14
    intro hQ
03Separate the logical casesL15–17

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

  1. L15
    cases hP
  2. L16
    cases hP_witness
  3. L17
    cases hP_witness_witness
04Use earlier factsL18–27

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

  1. L18
    specialize beta_product_bit_weighted_lower_power x
  2. L19
    specialize beta_product_bit_weighted_lower_power x1
  3. L20
    specialize beta_product_bit_weighted_lower_power d
  4. L21
    specialize beta_product_bit_weighted_lower_power f
  5. L22
    specialize beta_product_bit_weighted_lower_power u
  6. L23
    specialize beta_product_bit_weighted_lower_power n
  7. L24
    specialize beta_product_bit_weighted_lower_power P
  8. L25
    specialize beta_product_bit_weighted_lower_power L
  9. L26
    specialize beta_product_bit_weighted_lower_power Q
  10. L27
    apply beta_product_bit_weighted_lower_power
05Use earlier factsL28–37

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

  1. L28
    specialize primorial_cutoff_weighted_lower u
  2. L29
    specialize primorial_cutoff_weighted_lower x
  3. L30
    specialize primorial_cutoff_weighted_lower x1
  4. L31
    specialize primorial_cutoff_weighted_lower b
  5. L32
    specialize primorial_cutoff_weighted_lower c
  6. L33
    specialize primorial_cutoff_weighted_lower d
  7. L34
    specialize primorial_cutoff_weighted_lower f
  8. L35
    specialize primorial_cutoff_weighted_lower n
  9. L36
    apply primorial_cutoff_weighted_lower
  10. L37
    exact hP_witness_witness_left
06Use earlier factsL38–42

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

  1. L38
    exact hm
  2. L39
    exact hc
  3. L40
    exact hP_witness_witness_right
  4. L41
    exact hL
  5. L42
    exact hQ

Library-wide reading audit

Original defined command ledger · 42 lines
  1. 0001intro n
  2. 0002intro u
  3. 0003intro b
  4. 0004intro c
  5. 0005intro d
  6. 0006intro f
  7. 0007intro L
  8. 0008intro P
  9. 0009intro Q
  10. 0010intro hm
  11. 0011intro hc
  12. 0012intro hL
  13. 0013intro hP
  14. 0014intro hQ
  15. 0015cases hP
  16. 0016cases hP_witness
  17. 0017cases hP_witness_witness
  18. 0018specialize beta_product_bit_weighted_lower_power x
  19. 0019specialize beta_product_bit_weighted_lower_power x1
  20. 0020specialize beta_product_bit_weighted_lower_power d
  21. 0021specialize beta_product_bit_weighted_lower_power f
  22. 0022specialize beta_product_bit_weighted_lower_power u
  23. 0023specialize beta_product_bit_weighted_lower_power n
  24. 0024specialize beta_product_bit_weighted_lower_power P
  25. 0025specialize beta_product_bit_weighted_lower_power L
  26. 0026specialize beta_product_bit_weighted_lower_power Q
  27. 0027apply beta_product_bit_weighted_lower_power
  28. 0028specialize primorial_cutoff_weighted_lower u
  29. 0029specialize primorial_cutoff_weighted_lower x
  30. 0030specialize primorial_cutoff_weighted_lower x1
  31. 0031specialize primorial_cutoff_weighted_lower b
  32. 0032specialize primorial_cutoff_weighted_lower c
  33. 0033specialize primorial_cutoff_weighted_lower d
  34. 0034specialize primorial_cutoff_weighted_lower f
  35. 0035specialize primorial_cutoff_weighted_lower n
  36. 0036apply primorial_cutoff_weighted_lower
  37. 0037exact hP_witness_witness_left
  38. 0038exact hm
  39. 0039exact hc
  40. 0040exact hP_witness_witness_right
  41. 0041exact hL
  42. 0042exact hQ