BT00SU · Bertrand theorem

initial_segment_prefix_sum_exists

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

Every bounded threshold has a beta prefix whose exact sum is the threshold.

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

∀ q. ∀ k. Le(q,k) → ∃ x. ∃ y. (∀ z. Lt(z,k) → ∃ n. BetaAt(x,y,z,n) ∧ (n = 1 ∧ Lt(z,q) ∨ n = 0 ∧ Lt(q,S z))) ∧ Sum(x,y,k,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

5 occurrences

Exact expanded native-PA statement
forall q k. (exists blrr_le_gap_blrr_initial_bound. blrr_le_gap_blrr_initial_bound + (q) = (k)) -> (exists b c. ((forall eis_index_blrr_initial_prefix. (exists eis_lt_gap_blrr_initial_prefix_bound. eis_lt_gap_blrr_initial_prefix_bound + S (eis_index_blrr_initial_prefix) = k) -> exists eis_bit_blrr_initial_prefix. ((((exists ff_h_eis_blrr_initial_prefix_decoded. ff_h_eis_blrr_initial_prefix_decoded + S (eis_bit_blrr_initial_prefix) = S ((S (eis_index_blrr_initial_prefix)) * c)) /\ exists ff_q_eis_blrr_initial_prefix_decoded. b = ff_q_eis_blrr_initial_prefix_decoded * S ((S (eis_index_blrr_initial_prefix)) * c) + (eis_bit_blrr_initial_prefix))) /\ (((eis_bit_blrr_initial_prefix = 1 /\ (exists eis_le_gap_blrr_initial_prefix_choice_inside. eis_le_gap_blrr_initial_prefix_choice_inside + (S eis_index_blrr_initial_prefix) = q)) \/ (eis_bit_blrr_initial_prefix = 0 /\ (exists eis_lt_gap_blrr_initial_prefix_choice_outside. eis_lt_gap_blrr_initial_prefix_choice_outside + S (q) = S eis_index_blrr_initial_prefix)))))) /\ (exists ff_u_blrr_initial_sum ff_v_blrr_initial_sum. ((((exists ff_h_blrr_initial_sum_start. ff_h_blrr_initial_sum_start + S (0) = S ((S (0)) * ff_v_blrr_initial_sum)) /\ exists ff_q_blrr_initial_sum_start. ff_u_blrr_initial_sum = ff_q_blrr_initial_sum_start * S ((S (0)) * ff_v_blrr_initial_sum) + (0))) /\ ((((exists ff_h_blrr_initial_sum_terminal. ff_h_blrr_initial_sum_terminal + S (q) = S ((S (k)) * ff_v_blrr_initial_sum)) /\ exists ff_q_blrr_initial_sum_terminal. ff_u_blrr_initial_sum = ff_q_blrr_initial_sum_terminal * S ((S (k)) * ff_v_blrr_initial_sum) + (q))) /\ forall ff_i_blrr_initial_sum. (exists ff_lt_blrr_initial_sum_bound. ff_lt_blrr_initial_sum_bound + S ff_i_blrr_initial_sum = k) -> exists ff_a_blrr_initial_sum ff_r_blrr_initial_sum ff_s_blrr_initial_sum. ((((exists ff_h_blrr_initial_sum_summand. ff_h_blrr_initial_sum_summand + S (ff_a_blrr_initial_sum) = S ((S (ff_i_blrr_initial_sum)) * c)) /\ exists ff_q_blrr_initial_sum_summand. b = ff_q_blrr_initial_sum_summand * S ((S (ff_i_blrr_initial_sum)) * c) + (ff_a_blrr_initial_sum))) /\ ((((exists ff_h_blrr_initial_sum_partial. ff_h_blrr_initial_sum_partial + S (ff_r_blrr_initial_sum) = S ((S (ff_i_blrr_initial_sum)) * ff_v_blrr_initial_sum)) /\ exists ff_q_blrr_initial_sum_partial. ff_u_blrr_initial_sum = ff_q_blrr_initial_sum_partial * S ((S (ff_i_blrr_initial_sum)) * ff_v_blrr_initial_sum) + (ff_r_blrr_initial_sum))) /\ ((((exists ff_h_blrr_initial_sum_successor. ff_h_blrr_initial_sum_successor + S (ff_s_blrr_initial_sum) = S ((S (S ff_i_blrr_initial_sum)) * ff_v_blrr_initial_sum)) /\ exists ff_q_blrr_initial_sum_successor. ff_u_blrr_initial_sum = ff_q_blrr_initial_sum_successor * S ((S (S ff_i_blrr_initial_sum)) * ff_v_blrr_initial_sum) + (ff_s_blrr_initial_sum))) /\ ff_s_blrr_initial_sum = ff_r_blrr_initial_sum + ff_a_blrr_initial_sum))))))))

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

23 script commands · 8 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 (2)
01Fix variables and assumptionsL1–3

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

  1. L1
    intro q
  2. L2
    intro k
  3. L3
    intro hbound
02Establish hprefixL4–7

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

  1. L4
    have hprefix : ∃ b. ∃ c. ∀ x. Lt(x,k) → ∃ y. BetaAt(b,c,x,y) ∧ (y = 1 ∧ Lt(x,q) ∨ y = 0 ∧ Lt(q,S x))Definitions: Lt(x,k)BetaAt(b,c,x,y)Lt(x,q)Lt(q,S x)Original native command in the exact edition
  2. L5
    specialize eisenstein_initial_segment_prefix_exists q
  3. L6
    specialize eisenstein_initial_segment_prefix_exists k
  4. L7
    exact eisenstein_initial_segment_prefix_exists
03Separate the logical casesL8–9

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

  1. L8
    cases hprefix
  2. L9
    cases hprefix_witness
04Establish hcountL10–17

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein initial segment bit count exact.

  1. L10
    have hcount : BitCount(x,x1,k,q)Definitions: BitCount(x,x1,k,q)Original native command in the exact edition
  2. L11
    specialize eisenstein_initial_segment_bit_count_exact q
  3. L12
    specialize eisenstein_initial_segment_bit_count_exact x
  4. L13
    specialize eisenstein_initial_segment_bit_count_exact x1
  5. L14
    specialize eisenstein_initial_segment_bit_count_exact k
  6. L15
    apply eisenstein_initial_segment_bit_count_exact
  7. L16
    exact hprefix_witness_witness
  8. L17
    exact hbound
05Separate the logical casesL18–18

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

  1. L18
    cases hcount
06Construct an explicit witnessL19–20

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

  1. L19
    exists x
  2. L20
    exists x1
07Separate the logical casesL21–21

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

  1. L21
    split
08Use earlier factsL22–23

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

  1. L22
    exact hprefix_witness_witness
  2. L23
    exact hcount_left

Library-wide reading audit

Original defined command ledger · 23 lines
  1. 0001intro q
  2. 0002intro k
  3. 0003intro hbound
  4. 0004have hprefix : ∃ b. ∃ c. ∀ x. Lt(x,k) → ∃ y. BetaAt(b,c,x,y) ∧ (y = 1 ∧ Lt(x,q) ∨ y = 0 ∧ Lt(q,S x))
    Exact native replay linehave hprefix : exists b c. (forall eis_index_blrr_initial_prefix. (exists eis_lt_gap_blrr_initial_prefix_bound. eis_lt_gap_blrr_initial_prefix_bound + S (eis_index_blrr_initial_prefix) = k) -> exists eis_bit_blrr_initial_prefix. ((((exists ff_h_eis_blrr_initial_prefix_decoded. ff_h_eis_blrr_initial_prefix_decoded + S (eis_bit_blrr_initial_prefix) = S ((S (eis_index_blrr_initial_prefix)) * c)) /\ exists ff_q_eis_blrr_initial_prefix_decoded. b = ff_q_eis_blrr_initial_prefix_decoded * S ((S (eis_index_blrr_initial_prefix)) * c) + (eis_bit_blrr_initial_prefix))) /\ (((eis_bit_blrr_initial_prefix = 1 /\ (exists eis_le_gap_blrr_initial_prefix_choice_inside. eis_le_gap_blrr_initial_prefix_choice_inside + (S eis_index_blrr_initial_prefix) = q)) \/ (eis_bit_blrr_initial_prefix = 0 /\ (exists eis_lt_gap_blrr_initial_prefix_choice_outside. eis_lt_gap_blrr_initial_prefix_choice_outside + S (q) = S eis_index_blrr_initial_prefix))))))
  5. 0005specialize eisenstein_initial_segment_prefix_exists q
  6. 0006specialize eisenstein_initial_segment_prefix_exists k
  7. 0007exact eisenstein_initial_segment_prefix_exists
  8. 0008cases hprefix
  9. 0009cases hprefix_witness
  10. 0010have hcount : BitCount(x,x1,k,q)
    Exact native replay linehave hcount : ((exists ff_u_blrr_initial_exact_count_sum ff_v_blrr_initial_exact_count_sum. ((((exists ff_h_blrr_initial_exact_count_sum_start. ff_h_blrr_initial_exact_count_sum_start + S (0) = S ((S (0)) * ff_v_blrr_initial_exact_count_sum)) /\ exists ff_q_blrr_initial_exact_count_sum_start. ff_u_blrr_initial_exact_count_sum = ff_q_blrr_initial_exact_count_sum_start * S ((S (0)) * ff_v_blrr_initial_exact_count_sum) + (0))) /\ ((((exists ff_h_blrr_initial_exact_count_sum_terminal. ff_h_blrr_initial_exact_count_sum_terminal + S (q) = S ((S (k)) * ff_v_blrr_initial_exact_count_sum)) /\ exists ff_q_blrr_initial_exact_count_sum_terminal. ff_u_blrr_initial_exact_count_sum = ff_q_blrr_initial_exact_count_sum_terminal * S ((S (k)) * ff_v_blrr_initial_exact_count_sum) + (q))) /\ forall ff_i_blrr_initial_exact_count_sum. (exists ff_lt_blrr_initial_exact_count_sum_bound. ff_lt_blrr_initial_exact_count_sum_bound + S ff_i_blrr_initial_exact_count_sum = k) -> exists ff_a_blrr_initial_exact_count_sum ff_r_blrr_initial_exact_count_sum ff_s_blrr_initial_exact_count_sum. ((((exists ff_h_blrr_initial_exact_count_sum_summand. ff_h_blrr_initial_exact_count_sum_summand + S (ff_a_blrr_initial_exact_count_sum) = S ((S (ff_i_blrr_initial_exact_count_sum)) * x1)) /\ exists ff_q_blrr_initial_exact_count_sum_summand. x = ff_q_blrr_initial_exact_count_sum_summand * S ((S (ff_i_blrr_initial_exact_count_sum)) * x1) + (ff_a_blrr_initial_exact_count_sum))) /\ ((((exists ff_h_blrr_initial_exact_count_sum_partial. ff_h_blrr_initial_exact_count_sum_partial + S (ff_r_blrr_initial_exact_count_sum) = S ((S (ff_i_blrr_initial_exact_count_sum)) * ff_v_blrr_initial_exact_count_sum)) /\ exists ff_q_blrr_initial_exact_count_sum_partial. ff_u_blrr_initial_exact_count_sum = ff_q_blrr_initial_exact_count_sum_partial * S ((S (ff_i_blrr_initial_exact_count_sum)) * ff_v_blrr_initial_exact_count_sum) + (ff_r_blrr_initial_exact_count_sum))) /\ ((((exists ff_h_blrr_initial_exact_count_sum_successor. ff_h_blrr_initial_exact_count_sum_successor + S (ff_s_blrr_initial_exact_count_sum) = S ((S (S ff_i_blrr_initial_exact_count_sum)) * ff_v_blrr_initial_exact_count_sum)) /\ exists ff_q_blrr_initial_exact_count_sum_successor. ff_u_blrr_initial_exact_count_sum = ff_q_blrr_initial_exact_count_sum_successor * S ((S (S ff_i_blrr_initial_exact_count_sum)) * ff_v_blrr_initial_exact_count_sum) + (ff_s_blrr_initial_exact_count_sum))) /\ ff_s_blrr_initial_exact_count_sum = ff_r_blrr_initial_exact_count_sum + ff_a_blrr_initial_exact_count_sum)))))) /\ (forall ff_i_blrr_initial_exact_count_bits. (exists ff_lt_blrr_initial_exact_count_bits_bound. ff_lt_blrr_initial_exact_count_bits_bound + S ff_i_blrr_initial_exact_count_bits = k) -> exists ff_bit_blrr_initial_exact_count_bits. ((((exists ff_h_blrr_initial_exact_count_bits_decoded. ff_h_blrr_initial_exact_count_bits_decoded + S (ff_bit_blrr_initial_exact_count_bits) = S ((S (ff_i_blrr_initial_exact_count_bits)) * x1)) /\ exists ff_q_blrr_initial_exact_count_bits_decoded. x = ff_q_blrr_initial_exact_count_bits_decoded * S ((S (ff_i_blrr_initial_exact_count_bits)) * x1) + (ff_bit_blrr_initial_exact_count_bits))) /\ (ff_bit_blrr_initial_exact_count_bits = 0 \/ ff_bit_blrr_initial_exact_count_bits = 1))))
  11. 0011specialize eisenstein_initial_segment_bit_count_exact q
  12. 0012specialize eisenstein_initial_segment_bit_count_exact x
  13. 0013specialize eisenstein_initial_segment_bit_count_exact x1
  14. 0014specialize eisenstein_initial_segment_bit_count_exact k
  15. 0015apply eisenstein_initial_segment_bit_count_exact
  16. 0016exact hprefix_witness_witness
  17. 0017exact hbound
  18. 0018cases hcount
  19. 0019exists x
  20. 0020exists x1
  21. 0021split
  22. 0022exact hprefix_witness_witness
  23. 0023exact hcount_left