BP0009

bertrand_chain_singleton_exists

A singleton beta code is a valid strict-Bertrand chain of zero steps.

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

Exact theorem in conservative defined notation

∀ n. ∃ b. ∃ c. BertrandChain(b,c,n,0)

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

Definition DAG

Actual proof prerequisites

bertrand_chain_singleton_code_existsadd_eq_zero_right · checked external prerequisite
Original expanded first-order statement
forall n. exists b c. (((((exists bcf_height_bpc_singleton_start. bcf_height_bpc_singleton_start + S (n) = S ((S (0)) * c)) /\ exists bcf_quotient_bpc_singleton_start. b = bcf_quotient_bpc_singleton_start * S ((S (0)) * c) + (n))) /\ forall bcf_index_bpc_singleton_chain. (exists bcf_lt_gap_bpc_singleton_index. bcf_lt_gap_bpc_singleton_index + S (bcf_index_bpc_singleton_chain) = 0) -> exists bcf_previous_bpc_singleton_chain bcf_following_bpc_singleton_chain. ((((exists bcf_height_bpc_singleton_previous. bcf_height_bpc_singleton_previous + S (bcf_previous_bpc_singleton_chain) = S ((S (bcf_index_bpc_singleton_chain)) * c)) /\ exists bcf_quotient_bpc_singleton_previous. b = bcf_quotient_bpc_singleton_previous * S ((S (bcf_index_bpc_singleton_chain)) * c) + (bcf_previous_bpc_singleton_chain))) /\ ((((exists bcf_height_bpc_singleton_following. bcf_height_bpc_singleton_following + S (bcf_following_bpc_singleton_chain) = S ((S (S bcf_index_bpc_singleton_chain)) * c)) /\ exists bcf_quotient_bpc_singleton_following. b = bcf_quotient_bpc_singleton_following * S ((S (S bcf_index_bpc_singleton_chain)) * c) + (bcf_following_bpc_singleton_chain))) /\ ((((~(bcf_following_bpc_singleton_chain = 1) /\ forall frm_prime_left_bpc_singleton_successor_prime frm_prime_right_bpc_singleton_successor_prime. bcf_following_bpc_singleton_chain = frm_prime_left_bpc_singleton_successor_prime * frm_prime_right_bpc_singleton_successor_prime -> frm_prime_left_bpc_singleton_successor_prime = 1 \/ frm_prime_right_bpc_singleton_successor_prime = 1)) /\ ((exists bcf_lt_gap_bpc_singleton_successor_lower. bcf_lt_gap_bpc_singleton_successor_lower + S (bcf_previous_bpc_singleton_chain) = bcf_following_bpc_singleton_chain) /\ (exists bcf_lt_gap_bpc_singleton_successor_upper. bcf_lt_gap_bpc_singleton_successor_upper + S (bcf_following_bpc_singleton_chain) = bcf_previous_bpc_singleton_chain + bcf_previous_bpc_singleton_chain))))))))

Complete unchanged native tactic proof

All 19 lines are the exact independently kernel-checked original script.

Read the argument

Proof checkpoints

19 script commands · 9 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 (1)
01Fix variables and assumptionsL1–1

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

  1. L1
    intro n
02Use earlier factsL2–2

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

  1. L2
    specialize bertrand_chain_singleton_code_exists n
03Separate the logical casesL3–4

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

  1. L3
    cases bertrand_chain_singleton_code_exists
  2. L4
    cases bertrand_chain_singleton_code_exists_witness
04Construct an explicit witnessL5–6

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

  1. L5
    exists x
  2. L6
    exists x1
05Separate the logical casesL7–7

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

  1. L7
    split
06Use earlier factsL8–8

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

  1. L8
    exact bertrand_chain_singleton_code_exists_witness_witness
07Fix variables and assumptionsL9–10

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

  1. L9
    intro i
  2. L10
    intro hbound
08Separate the logical casesL11–12

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

  1. L11
    exfalso
  2. L12
    cases hbound
09Establish hsuccessor_zeroL13–19

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.

  1. L13
    have hsuccessor_zero : S i = 0
  2. L14
    specialize add_eq_zero_right x2
  3. L15
    specialize add_eq_zero_right (S i)
  4. L16
    apply add_eq_zero_right
  5. L17
    exact hbound_witness
  6. L18
    apply PA1
  7. L19
    exact hsuccessor_zero

Library-wide reading audit

Original defined command ledger · 19 lines
  1. 0001intro n
  2. 0002specialize bertrand_chain_singleton_code_exists n
  3. 0003cases bertrand_chain_singleton_code_exists
  4. 0004cases bertrand_chain_singleton_code_exists_witness
  5. 0005exists x
  6. 0006exists x1
  7. 0007split
  8. 0008exact bertrand_chain_singleton_code_exists_witness_witness
  9. 0009intro i
  10. 0010intro hbound
  11. 0011exfalso
  12. 0012cases hbound
  13. 0013have hsuccessor_zero : S i = 0
  14. 0014specialize add_eq_zero_right x2
  15. 0015specialize add_eq_zero_right (S i)
  16. 0016apply add_eq_zero_right
  17. 0017exact hbound_witness
  18. 0018apply PA1
  19. 0019exact hsuccessor_zero