BT00JA · Bertrand theorem

eisenstein_initial_segment_prefix_all_bits

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

Every exact threshold prefix is an AllBits prefix.

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. ∀ b. ∀ c. ∀ k. (∀ x. Lt(x,k) → ∃ y. BetaAt(b,c,x,y) ∧ (y = 1 ∧ Lt(x,q) ∨ y = 0 ∧ Lt(q,S x))) → AllBits(b,c,k)

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

5 occurrences

In local proof propositions

3 occurrences

Exact expanded native-PA statement
forall q b c k. (forall eis_index_initial_segment_bits_source. (exists eis_lt_gap_initial_segment_bits_source_bound. eis_lt_gap_initial_segment_bits_source_bound + S (eis_index_initial_segment_bits_source) = k) -> exists eis_bit_initial_segment_bits_source. ((((exists ff_h_eis_initial_segment_bits_source_decoded. ff_h_eis_initial_segment_bits_source_decoded + S (eis_bit_initial_segment_bits_source) = S ((S (eis_index_initial_segment_bits_source)) * c)) /\ exists ff_q_eis_initial_segment_bits_source_decoded. b = ff_q_eis_initial_segment_bits_source_decoded * S ((S (eis_index_initial_segment_bits_source)) * c) + (eis_bit_initial_segment_bits_source))) /\ (((eis_bit_initial_segment_bits_source = 1 /\ (exists eis_le_gap_initial_segment_bits_source_choice_inside. eis_le_gap_initial_segment_bits_source_choice_inside + (S eis_index_initial_segment_bits_source) = q)) \/ (eis_bit_initial_segment_bits_source = 0 /\ (exists eis_lt_gap_initial_segment_bits_source_choice_outside. eis_lt_gap_initial_segment_bits_source_choice_outside + S (q) = S eis_index_initial_segment_bits_source)))))) -> (forall ff_i_initial_segment_bits_result. (exists ff_lt_initial_segment_bits_result_bound. ff_lt_initial_segment_bits_result_bound + S ff_i_initial_segment_bits_result = k) -> exists ff_bit_initial_segment_bits_result. ((((exists ff_h_initial_segment_bits_result_decoded. ff_h_initial_segment_bits_result_decoded + S (ff_bit_initial_segment_bits_result) = S ((S (ff_i_initial_segment_bits_result)) * c)) /\ exists ff_q_initial_segment_bits_result_decoded. b = ff_q_initial_segment_bits_result_decoded * S ((S (ff_i_initial_segment_bits_result)) * c) + (ff_bit_initial_segment_bits_result))) /\ (ff_bit_initial_segment_bits_result = 0 \/ ff_bit_initial_segment_bits_result = 1)))

Proof neighborhood

Direct theorem prerequisites

none

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 · 11 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.

01Fix variables and assumptionsL1–7

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

  1. L1
    intro q
  2. L2
    intro b
  3. L3
    intro c
  4. L4
    intro k
  5. L5
    intro hprefix
  6. L6
    intro j
  7. L7
    intro hj
02Use earlier factsL8–8

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

  1. L8
    specialize hprefix j
03Establish hstoredL9–11

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.

  1. L9
    have hstored : ∃ bit. BetaAt(b,c,j,bit) ∧ (bit = 1 ∧ Lt(j,q) ∨ bit = 0 ∧ Lt(q,S j))Definitions: BetaAt(b,c,j,bit)Lt(j,q)Lt(q,S j)Original native command in the exact edition
  2. L10
    apply hprefix
  3. L11
    exact hj
04Separate the logical casesL12–13

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

  1. L12
    cases hstored
  2. L13
    cases hstored_witness
05Construct an explicit witnessL14–14

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

  1. L14
    exists x
06Separate the logical casesL15–15

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

  1. L15
    split
07Use earlier factsL16–16

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

  1. L16
    exact hstored_witness_left
08Separate the logical casesL17–19

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

  1. L17
    cases hstored_witness_right
  2. L18
    cases hstored_witness_right_left
  3. L19
    right
09Use earlier factsL20–20

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

  1. L20
    exact hstored_witness_right_left_left
10Separate the logical casesL21–22

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

  1. L21
    cases hstored_witness_right_right
  2. L22
    left
11Use earlier factsL23–23

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

  1. L23
    exact hstored_witness_right_right_left

Library-wide reading audit

Original defined command ledger · 23 lines
  1. 0001intro q
  2. 0002intro b
  3. 0003intro c
  4. 0004intro k
  5. 0005intro hprefix
  6. 0006intro j
  7. 0007intro hj
  8. 0008specialize hprefix j
  9. 0009have hstored : ∃ bit. BetaAt(b,c,j,bit) ∧ (bit = 1 ∧ Lt(j,q) ∨ bit = 0 ∧ Lt(q,S j))
    Exact native replay linehave hstored : exists bit. ((((exists ff_h_initial_segment_bits_stored. ff_h_initial_segment_bits_stored + S (bit) = S ((S (j)) * c)) /\ exists ff_q_initial_segment_bits_stored. b = ff_q_initial_segment_bits_stored * S ((S (j)) * c) + (bit))) /\ (((bit = 1 /\ (exists eis_le_gap_initial_segment_bits_choice_inside. eis_le_gap_initial_segment_bits_choice_inside + (S j) = q)) \/ (bit = 0 /\ (exists eis_lt_gap_initial_segment_bits_choice_outside. eis_lt_gap_initial_segment_bits_choice_outside + S (q) = S j)))))
  10. 0010apply hprefix
  11. 0011exact hj
  12. 0012cases hstored
  13. 0013cases hstored_witness
  14. 0014exists x
  15. 0015split
  16. 0016exact hstored_witness_left
  17. 0017cases hstored_witness_right
  18. 0018cases hstored_witness_right_left
  19. 0019right
  20. 0020exact hstored_witness_right_left_left
  21. 0021cases hstored_witness_right_right
  22. 0022left
  23. 0023exact hstored_witness_right_right_left