BT00VT · Bertrand theorem

central_binom_nonzero_strong_upper

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

The strong central bound extends to every nonzero index.

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. ∀ q. ¬n = 0 → CentralBinom(n,c)Pow(4,n,q)Le(2 · c,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

3 occurrences

In local proof propositions

none

0 occurrences

Exact expanded native-PA statement
forall n c q. ~(n = 0) -> (((exists bcf_lt_gap_bcnzsu_central_out_of_range. bcf_lt_gap_bcnzsu_central_out_of_range + S (n + n) = n) /\ c = 0) \/ ((exists bcf_le_gap_bcnzsu_central_in_range. bcf_le_gap_bcnzsu_central_in_range + (n) = n + n) /\ (exists bcf_row_code_code_bcnzsu_central bcf_row_code_scale_bcnzsu_central bcf_row_scale_code_bcnzsu_central bcf_row_scale_scale_bcnzsu_central bcf_row_code_bcnzsu_central bcf_row_scale_bcnzsu_central. ((forall bcf_row_index_bcnzsu_central_table. (exists bcf_lt_gap_bcnzsu_central_table_row_bound. bcf_lt_gap_bcnzsu_central_table_row_bound + S (bcf_row_index_bcnzsu_central_table) = S (n + n)) -> exists bcf_row_code_bcnzsu_central_table bcf_row_scale_bcnzsu_central_table. ((((exists bcf_height_bcnzsu_central_table_decoded_row_code. bcf_height_bcnzsu_central_table_decoded_row_code + S (bcf_row_code_bcnzsu_central_table) = S ((S (bcf_row_index_bcnzsu_central_table)) * bcf_row_code_scale_bcnzsu_central)) /\ exists bcf_quotient_bcnzsu_central_table_decoded_row_code. bcf_row_code_code_bcnzsu_central = bcf_quotient_bcnzsu_central_table_decoded_row_code * S ((S (bcf_row_index_bcnzsu_central_table)) * bcf_row_code_scale_bcnzsu_central) + (bcf_row_code_bcnzsu_central_table))) /\ ((((exists bcf_height_bcnzsu_central_table_decoded_row_scale. bcf_height_bcnzsu_central_table_decoded_row_scale + S (bcf_row_scale_bcnzsu_central_table) = S ((S (bcf_row_index_bcnzsu_central_table)) * bcf_row_scale_scale_bcnzsu_central)) /\ exists bcf_quotient_bcnzsu_central_table_decoded_row_scale. bcf_row_scale_code_bcnzsu_central = bcf_quotient_bcnzsu_central_table_decoded_row_scale * S ((S (bcf_row_index_bcnzsu_central_table)) * bcf_row_scale_scale_bcnzsu_central) + (bcf_row_scale_bcnzsu_central_table))) /\ ((bcf_row_index_bcnzsu_central_table = 0 /\ (forall bcf_index_bcnzsu_central_table_zero_row. (exists bcf_lt_gap_bcnzsu_central_table_zero_row_bound. bcf_lt_gap_bcnzsu_central_table_zero_row_bound + S (bcf_index_bcnzsu_central_table_zero_row) = S (n + n)) -> exists bcf_value_bcnzsu_central_table_zero_row. ((((exists bcf_height_bcnzsu_central_table_zero_row_entry. bcf_height_bcnzsu_central_table_zero_row_entry + S (bcf_value_bcnzsu_central_table_zero_row) = S ((S (bcf_index_bcnzsu_central_table_zero_row)) * bcf_row_scale_bcnzsu_central_table)) /\ exists bcf_quotient_bcnzsu_central_table_zero_row_entry. bcf_row_code_bcnzsu_central_table = bcf_quotient_bcnzsu_central_table_zero_row_entry * S ((S (bcf_index_bcnzsu_central_table_zero_row)) * bcf_row_scale_bcnzsu_central_table) + (bcf_value_bcnzsu_central_table_zero_row))) /\ ((bcf_index_bcnzsu_central_table_zero_row = 0 /\ bcf_value_bcnzsu_central_table_zero_row = 1) \/ exists bcf_predecessor_bcnzsu_central_table_zero_row. bcf_index_bcnzsu_central_table_zero_row = S bcf_predecessor_bcnzsu_central_table_zero_row /\ bcf_value_bcnzsu_central_table_zero_row = 0)))) \/ exists bcf_predecessor_bcnzsu_central_table bcf_previous_code_bcnzsu_central_table bcf_previous_scale_bcnzsu_central_table. bcf_row_index_bcnzsu_central_table = S bcf_predecessor_bcnzsu_central_table /\ ((((exists bcf_height_bcnzsu_central_table_decoded_previous_code. bcf_height_bcnzsu_central_table_decoded_previous_code + S (bcf_previous_code_bcnzsu_central_table) = S ((S (bcf_predecessor_bcnzsu_central_table)) * bcf_row_code_scale_bcnzsu_central)) /\ exists bcf_quotient_bcnzsu_central_table_decoded_previous_code. bcf_row_code_code_bcnzsu_central = bcf_quotient_bcnzsu_central_table_decoded_previous_code * S ((S (bcf_predecessor_bcnzsu_central_table)) * bcf_row_code_scale_bcnzsu_central) + (bcf_previous_code_bcnzsu_central_table))) /\ ((((exists bcf_height_bcnzsu_central_table_decoded_previous_scale. bcf_height_bcnzsu_central_table_decoded_previous_scale + S (bcf_previous_scale_bcnzsu_central_table) = S ((S (bcf_predecessor_bcnzsu_central_table)) * bcf_row_scale_scale_bcnzsu_central)) /\ exists bcf_quotient_bcnzsu_central_table_decoded_previous_scale. bcf_row_scale_code_bcnzsu_central = bcf_quotient_bcnzsu_central_table_decoded_previous_scale * S ((S (bcf_predecessor_bcnzsu_central_table)) * bcf_row_scale_scale_bcnzsu_central) + (bcf_previous_scale_bcnzsu_central_table))) /\ (forall bcf_index_bcnzsu_central_table_row_step. (exists bcf_lt_gap_bcnzsu_central_table_row_step_bound. bcf_lt_gap_bcnzsu_central_table_row_step_bound + S (bcf_index_bcnzsu_central_table_row_step) = S (n + n)) -> exists bcf_value_bcnzsu_central_table_row_step. ((((exists bcf_height_bcnzsu_central_table_row_step_entry. bcf_height_bcnzsu_central_table_row_step_entry + S (bcf_value_bcnzsu_central_table_row_step) = S ((S (bcf_index_bcnzsu_central_table_row_step)) * bcf_row_scale_bcnzsu_central_table)) /\ exists bcf_quotient_bcnzsu_central_table_row_step_entry. bcf_row_code_bcnzsu_central_table = bcf_quotient_bcnzsu_central_table_row_step_entry * S ((S (bcf_index_bcnzsu_central_table_row_step)) * bcf_row_scale_bcnzsu_central_table) + (bcf_value_bcnzsu_central_table_row_step))) /\ ((bcf_index_bcnzsu_central_table_row_step = 0 /\ bcf_value_bcnzsu_central_table_row_step = 1) \/ exists bcf_predecessor_bcnzsu_central_table_row_step bcf_left_bcnzsu_central_table_row_step bcf_right_bcnzsu_central_table_row_step. bcf_index_bcnzsu_central_table_row_step = S bcf_predecessor_bcnzsu_central_table_row_step /\ ((((exists bcf_height_bcnzsu_central_table_row_step_previous_left. bcf_height_bcnzsu_central_table_row_step_previous_left + S (bcf_left_bcnzsu_central_table_row_step) = S ((S (bcf_predecessor_bcnzsu_central_table_row_step)) * bcf_previous_scale_bcnzsu_central_table)) /\ exists bcf_quotient_bcnzsu_central_table_row_step_previous_left. bcf_previous_code_bcnzsu_central_table = bcf_quotient_bcnzsu_central_table_row_step_previous_left * S ((S (bcf_predecessor_bcnzsu_central_table_row_step)) * bcf_previous_scale_bcnzsu_central_table) + (bcf_left_bcnzsu_central_table_row_step))) /\ ((((exists bcf_height_bcnzsu_central_table_row_step_previous_right. bcf_height_bcnzsu_central_table_row_step_previous_right + S (bcf_right_bcnzsu_central_table_row_step) = S ((S (S (bcf_predecessor_bcnzsu_central_table_row_step))) * bcf_previous_scale_bcnzsu_central_table)) /\ exists bcf_quotient_bcnzsu_central_table_row_step_previous_right. bcf_previous_code_bcnzsu_central_table = bcf_quotient_bcnzsu_central_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcnzsu_central_table_row_step))) * bcf_previous_scale_bcnzsu_central_table) + (bcf_right_bcnzsu_central_table_row_step))) /\ bcf_value_bcnzsu_central_table_row_step = bcf_left_bcnzsu_central_table_row_step + bcf_right_bcnzsu_central_table_row_step))))))))))) /\ ((((exists bcf_height_bcnzsu_central_decoded_row_code. bcf_height_bcnzsu_central_decoded_row_code + S (bcf_row_code_bcnzsu_central) = S ((S (n + n)) * bcf_row_code_scale_bcnzsu_central)) /\ exists bcf_quotient_bcnzsu_central_decoded_row_code. bcf_row_code_code_bcnzsu_central = bcf_quotient_bcnzsu_central_decoded_row_code * S ((S (n + n)) * bcf_row_code_scale_bcnzsu_central) + (bcf_row_code_bcnzsu_central))) /\ ((((exists bcf_height_bcnzsu_central_decoded_row_scale. bcf_height_bcnzsu_central_decoded_row_scale + S (bcf_row_scale_bcnzsu_central) = S ((S (n + n)) * bcf_row_scale_scale_bcnzsu_central)) /\ exists bcf_quotient_bcnzsu_central_decoded_row_scale. bcf_row_scale_code_bcnzsu_central = bcf_quotient_bcnzsu_central_decoded_row_scale * S ((S (n + n)) * bcf_row_scale_scale_bcnzsu_central) + (bcf_row_scale_bcnzsu_central))) /\ (((exists bcf_height_bcnzsu_central_decoded_value. bcf_height_bcnzsu_central_decoded_value + S (c) = S ((S (n)) * bcf_row_scale_bcnzsu_central)) /\ exists bcf_quotient_bcnzsu_central_decoded_value. bcf_row_code_bcnzsu_central = bcf_quotient_bcnzsu_central_decoded_value * S ((S (n)) * bcf_row_scale_bcnzsu_central) + (c))))))))) -> (exists pa_b_bcnzsu_power pa_c_bcnzsu_power. ((forall pa_i_bcnzsu_power_repeat. (exists pa_lt_bcnzsu_power_repeat_bound. pa_lt_bcnzsu_power_repeat_bound + S pa_i_bcnzsu_power_repeat = n) -> (((exists pa_h_bcnzsu_power_repeat_decoded. pa_h_bcnzsu_power_repeat_decoded + S (4) = S ((S (pa_i_bcnzsu_power_repeat)) * pa_c_bcnzsu_power)) /\ exists pa_q_bcnzsu_power_repeat_decoded. pa_b_bcnzsu_power = pa_q_bcnzsu_power_repeat_decoded * S ((S (pa_i_bcnzsu_power_repeat)) * pa_c_bcnzsu_power) + (4)))) /\ (exists pa_u_bcnzsu_power_product pa_v_bcnzsu_power_product. ((((exists pa_h_bcnzsu_power_product_start. pa_h_bcnzsu_power_product_start + S (1) = S ((S (0)) * pa_v_bcnzsu_power_product)) /\ exists pa_q_bcnzsu_power_product_start. pa_u_bcnzsu_power_product = pa_q_bcnzsu_power_product_start * S ((S (0)) * pa_v_bcnzsu_power_product) + (1))) /\ ((((exists pa_h_bcnzsu_power_product_terminal. pa_h_bcnzsu_power_product_terminal + S (q) = S ((S (n)) * pa_v_bcnzsu_power_product)) /\ exists pa_q_bcnzsu_power_product_terminal. pa_u_bcnzsu_power_product = pa_q_bcnzsu_power_product_terminal * S ((S (n)) * pa_v_bcnzsu_power_product) + (q))) /\ forall pa_i_bcnzsu_power_product. (exists pa_lt_bcnzsu_power_product_bound. pa_lt_bcnzsu_power_product_bound + S pa_i_bcnzsu_power_product = n) -> exists pa_p_bcnzsu_power_product pa_r_bcnzsu_power_product pa_s_bcnzsu_power_product. ((((exists pa_h_bcnzsu_power_product_factor. pa_h_bcnzsu_power_product_factor + S (pa_p_bcnzsu_power_product) = S ((S (pa_i_bcnzsu_power_product)) * pa_c_bcnzsu_power)) /\ exists pa_q_bcnzsu_power_product_factor. pa_b_bcnzsu_power = pa_q_bcnzsu_power_product_factor * S ((S (pa_i_bcnzsu_power_product)) * pa_c_bcnzsu_power) + (pa_p_bcnzsu_power_product))) /\ ((((exists pa_h_bcnzsu_power_product_partial. pa_h_bcnzsu_power_product_partial + S (pa_r_bcnzsu_power_product) = S ((S (pa_i_bcnzsu_power_product)) * pa_v_bcnzsu_power_product)) /\ exists pa_q_bcnzsu_power_product_partial. pa_u_bcnzsu_power_product = pa_q_bcnzsu_power_product_partial * S ((S (pa_i_bcnzsu_power_product)) * pa_v_bcnzsu_power_product) + (pa_r_bcnzsu_power_product))) /\ ((((exists pa_h_bcnzsu_power_product_successor. pa_h_bcnzsu_power_product_successor + S (pa_s_bcnzsu_power_product) = S ((S (S pa_i_bcnzsu_power_product)) * pa_v_bcnzsu_power_product)) /\ exists pa_q_bcnzsu_power_product_successor. pa_u_bcnzsu_power_product = pa_q_bcnzsu_power_product_successor * S ((S (S pa_i_bcnzsu_power_product)) * pa_v_bcnzsu_power_product) + (pa_s_bcnzsu_power_product))) /\ pa_s_bcnzsu_power_product = pa_r_bcnzsu_power_product * pa_p_bcnzsu_power_product)))))))) -> (exists bcf_le_gap_bcnzsu_result. bcf_le_gap_bcnzsu_result + (2 * c) = 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

20 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 (1)
01Induction on nL1–6

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L1
    induction n
  2. L2
    intro c
  3. L3
    intro q
  4. L4
    intro hnonzero
  5. L5
    intro hcentral
  6. L6
    intro hpower
02Separate the logical casesL7–7

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

  1. L7
    exfalso
03Use earlier factsL8–8

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

  1. L8
    apply hnonzero
04Calculate and transport equalitiesL9–9

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

  1. L9
    refl
05Fix variables and assumptionsL10–14

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

  1. L10
    intro c
  2. L11
    intro q
  3. L12
    intro hnonzero
  4. L13
    intro hcentral
  5. L14
    intro hpower
06Use earlier factsL15–20

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

  1. L15
    specialize central_binom_strong_upper n
  2. L16
    specialize central_binom_strong_upper c
  3. L17
    specialize central_binom_strong_upper q
  4. L18
    apply central_binom_strong_upper
  5. L19
    exact hcentral
  6. L20
    exact hpower

Library-wide reading audit

Original defined command ledger · 20 lines
  1. 0001induction n
  2. 0002intro c
  3. 0003intro q
  4. 0004intro hnonzero
  5. 0005intro hcentral
  6. 0006intro hpower
  7. 0007exfalso
  8. 0008apply hnonzero
  9. 0009refl
  10. 0010intro c
  11. 0011intro q
  12. 0012intro hnonzero
  13. 0013intro hcentral
  14. 0014intro hpower
  15. 0015specialize central_binom_strong_upper n
  16. 0016specialize central_binom_strong_upper c
  17. 0017specialize central_binom_strong_upper q
  18. 0018apply central_binom_strong_upper
  19. 0019exact hcentral
  20. 0020exact hpower