BT00XA · Bertrand theorem

beta_product_uniform_le_pow

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

A uniformly bounded finite product is at most the matching power.

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

∀ b. ∀ c. ∀ a. ∀ l. ∀ n. ∀ q. (∀ x. ∀ y. Lt(x,l)BetaAt(b,c,x,y)Le(y,a)) → Product(b,c,l,n)Pow(a,l,q)Le(n,q)

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

6 occurrences

In local proof propositions

none

0 occurrences

Exact expanded native-PA statement
forall b c a l n q. (forall i x. (exists bpulp_bound. bpulp_bound + S i = l) -> (((exists ff_h_bpulp_source. ff_h_bpulp_source + S (x) = S ((S (i)) * c)) /\ exists ff_q_bpulp_source. b = ff_q_bpulp_source * S ((S (i)) * c) + (x))) -> exists bpulp_factor_gap. bpulp_factor_gap + x = a) -> (exists ff_u_bpulp_source_product ff_v_bpulp_source_product. ((((exists ff_h_bpulp_source_product_start. ff_h_bpulp_source_product_start + S (1) = S ((S (0)) * ff_v_bpulp_source_product)) /\ exists ff_q_bpulp_source_product_start. ff_u_bpulp_source_product = ff_q_bpulp_source_product_start * S ((S (0)) * ff_v_bpulp_source_product) + (1))) /\ ((((exists ff_h_bpulp_source_product_terminal. ff_h_bpulp_source_product_terminal + S (n) = S ((S (l)) * ff_v_bpulp_source_product)) /\ exists ff_q_bpulp_source_product_terminal. ff_u_bpulp_source_product = ff_q_bpulp_source_product_terminal * S ((S (l)) * ff_v_bpulp_source_product) + (n))) /\ forall ff_i_bpulp_source_product. (exists ff_lt_bpulp_source_product_bound. ff_lt_bpulp_source_product_bound + S ff_i_bpulp_source_product = l) -> exists ff_p_bpulp_source_product ff_r_bpulp_source_product ff_s_bpulp_source_product. ((((exists ff_h_bpulp_source_product_factor. ff_h_bpulp_source_product_factor + S (ff_p_bpulp_source_product) = S ((S (ff_i_bpulp_source_product)) * c)) /\ exists ff_q_bpulp_source_product_factor. b = ff_q_bpulp_source_product_factor * S ((S (ff_i_bpulp_source_product)) * c) + (ff_p_bpulp_source_product))) /\ ((((exists ff_h_bpulp_source_product_partial. ff_h_bpulp_source_product_partial + S (ff_r_bpulp_source_product) = S ((S (ff_i_bpulp_source_product)) * ff_v_bpulp_source_product)) /\ exists ff_q_bpulp_source_product_partial. ff_u_bpulp_source_product = ff_q_bpulp_source_product_partial * S ((S (ff_i_bpulp_source_product)) * ff_v_bpulp_source_product) + (ff_r_bpulp_source_product))) /\ ((((exists ff_h_bpulp_source_product_successor. ff_h_bpulp_source_product_successor + S (ff_s_bpulp_source_product) = S ((S (S ff_i_bpulp_source_product)) * ff_v_bpulp_source_product)) /\ exists ff_q_bpulp_source_product_successor. ff_u_bpulp_source_product = ff_q_bpulp_source_product_successor * S ((S (S ff_i_bpulp_source_product)) * ff_v_bpulp_source_product) + (ff_s_bpulp_source_product))) /\ ff_s_bpulp_source_product = ff_r_bpulp_source_product * ff_p_bpulp_source_product)))))) -> (exists ff_b_bpulp_target_power ff_c_bpulp_target_power. ((forall ff_i_bpulp_target_power_repeat. (exists ff_lt_bpulp_target_power_repeat_bound. ff_lt_bpulp_target_power_repeat_bound + S ff_i_bpulp_target_power_repeat = l) -> (((exists ff_h_bpulp_target_power_repeat_decoded. ff_h_bpulp_target_power_repeat_decoded + S (a) = S ((S (ff_i_bpulp_target_power_repeat)) * ff_c_bpulp_target_power)) /\ exists ff_q_bpulp_target_power_repeat_decoded. ff_b_bpulp_target_power = ff_q_bpulp_target_power_repeat_decoded * S ((S (ff_i_bpulp_target_power_repeat)) * ff_c_bpulp_target_power) + (a)))) /\ (exists ff_u_bpulp_target_power_product ff_v_bpulp_target_power_product. ((((exists ff_h_bpulp_target_power_product_start. ff_h_bpulp_target_power_product_start + S (1) = S ((S (0)) * ff_v_bpulp_target_power_product)) /\ exists ff_q_bpulp_target_power_product_start. ff_u_bpulp_target_power_product = ff_q_bpulp_target_power_product_start * S ((S (0)) * ff_v_bpulp_target_power_product) + (1))) /\ ((((exists ff_h_bpulp_target_power_product_terminal. ff_h_bpulp_target_power_product_terminal + S (q) = S ((S (l)) * ff_v_bpulp_target_power_product)) /\ exists ff_q_bpulp_target_power_product_terminal. ff_u_bpulp_target_power_product = ff_q_bpulp_target_power_product_terminal * S ((S (l)) * ff_v_bpulp_target_power_product) + (q))) /\ forall ff_i_bpulp_target_power_product. (exists ff_lt_bpulp_target_power_product_bound. ff_lt_bpulp_target_power_product_bound + S ff_i_bpulp_target_power_product = l) -> exists ff_p_bpulp_target_power_product ff_r_bpulp_target_power_product ff_s_bpulp_target_power_product. ((((exists ff_h_bpulp_target_power_product_factor. ff_h_bpulp_target_power_product_factor + S (ff_p_bpulp_target_power_product) = S ((S (ff_i_bpulp_target_power_product)) * ff_c_bpulp_target_power)) /\ exists ff_q_bpulp_target_power_product_factor. ff_b_bpulp_target_power = ff_q_bpulp_target_power_product_factor * S ((S (ff_i_bpulp_target_power_product)) * ff_c_bpulp_target_power) + (ff_p_bpulp_target_power_product))) /\ ((((exists ff_h_bpulp_target_power_product_partial. ff_h_bpulp_target_power_product_partial + S (ff_r_bpulp_target_power_product) = S ((S (ff_i_bpulp_target_power_product)) * ff_v_bpulp_target_power_product)) /\ exists ff_q_bpulp_target_power_product_partial. ff_u_bpulp_target_power_product = ff_q_bpulp_target_power_product_partial * S ((S (ff_i_bpulp_target_power_product)) * ff_v_bpulp_target_power_product) + (ff_r_bpulp_target_power_product))) /\ ((((exists ff_h_bpulp_target_power_product_successor. ff_h_bpulp_target_power_product_successor + S (ff_s_bpulp_target_power_product) = S ((S (S ff_i_bpulp_target_power_product)) * ff_v_bpulp_target_power_product)) /\ exists ff_q_bpulp_target_power_product_successor. ff_u_bpulp_target_power_product = ff_q_bpulp_target_power_product_successor * S ((S (S ff_i_bpulp_target_power_product)) * ff_v_bpulp_target_power_product) + (ff_s_bpulp_target_power_product))) /\ ff_s_bpulp_target_power_product = ff_r_bpulp_target_power_product * ff_p_bpulp_target_power_product)))))))) -> exists bpulp_result_gap. bpulp_result_gap + n = q

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

45 script commands · 8 reading checkpoints · 1 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–9

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro a
  4. L4
    intro l
  5. L5
    intro n
  6. L6
    intro q
  7. L7
    intro huniform
  8. L8
    intro hn
  9. L9
    intro hq
02Separate the logical casesL10–12

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

  1. L10
    cases hq
  2. L11
    cases hq_witness
  3. L12
    cases hq_witness_witness
03Use earlier factsL13–20

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

  1. L13
    specialize beta_product_pointwise_le b
  2. L14
    specialize beta_product_pointwise_le c
  3. L15
    specialize beta_product_pointwise_le x
  4. L16
    specialize beta_product_pointwise_le x1
  5. L17
    specialize beta_product_pointwise_le l
  6. L18
    specialize beta_product_pointwise_le n
  7. L19
    specialize beta_product_pointwise_le q
  8. L20
    apply beta_product_pointwise_le
04Fix variables and assumptionsL21–26

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

  1. L21
    intro i
  2. L22
    intro p
  3. L23
    intro z
  4. L24
    intro hi
  5. L25
    intro hp
  6. L26
    intro hz
05Establish hzaL27–36

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta repeat entry eq.

  1. L27
    have hza : z = a
  2. L28
    specialize beta_repeat_entry_eq x
  3. L29
    specialize beta_repeat_entry_eq x1
  4. L30
    specialize beta_repeat_entry_eq a
  5. L31
    specialize beta_repeat_entry_eq l
  6. L32
    specialize beta_repeat_entry_eq i
  7. L33
    specialize beta_repeat_entry_eq z
  8. L34
    apply beta_repeat_entry_eq
  9. L35
    exact hq_witness_witness_left
  10. L36
    exact hi
06Use earlier factsL37–37

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

  1. L37
    exact hz
07Calculate and transport equalitiesL38–38

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

  1. L38
    rewrite hza
08Use earlier factsL39–45

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

  1. L39
    specialize huniform i
  2. L40
    specialize huniform p
  3. L41
    apply huniform
  4. L42
    exact hi
  5. L43
    exact hp
  6. L44
    exact hn
  7. L45
    exact hq_witness_witness_right

Library-wide reading audit

Original defined command ledger · 45 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro a
  4. 0004intro l
  5. 0005intro n
  6. 0006intro q
  7. 0007intro huniform
  8. 0008intro hn
  9. 0009intro hq
  10. 0010cases hq
  11. 0011cases hq_witness
  12. 0012cases hq_witness_witness
  13. 0013specialize beta_product_pointwise_le b
  14. 0014specialize beta_product_pointwise_le c
  15. 0015specialize beta_product_pointwise_le x
  16. 0016specialize beta_product_pointwise_le x1
  17. 0017specialize beta_product_pointwise_le l
  18. 0018specialize beta_product_pointwise_le n
  19. 0019specialize beta_product_pointwise_le q
  20. 0020apply beta_product_pointwise_le
  21. 0021intro i
  22. 0022intro p
  23. 0023intro z
  24. 0024intro hi
  25. 0025intro hp
  26. 0026intro hz
  27. 0027have hza : z = a
  28. 0028specialize beta_repeat_entry_eq x
  29. 0029specialize beta_repeat_entry_eq x1
  30. 0030specialize beta_repeat_entry_eq a
  31. 0031specialize beta_repeat_entry_eq l
  32. 0032specialize beta_repeat_entry_eq i
  33. 0033specialize beta_repeat_entry_eq z
  34. 0034apply beta_repeat_entry_eq
  35. 0035exact hq_witness_witness_left
  36. 0036exact hi
  37. 0037exact hz
  38. 0038rewrite hza
  39. 0039specialize huniform i
  40. 0040specialize huniform p
  41. 0041apply huniform
  42. 0042exact hi
  43. 0043exact hp
  44. 0044exact hn
  45. 0045exact hq_witness_witness_right