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 expanded first-order arithmetic statement
forall n k. (exists bcf_lt_gap_bpc_chain_initial. bcf_lt_gap_bpc_chain_initial + S (1) = n) -> exists b c a. ((((((exists bcf_height_bpc_old_start. bcf_height_bpc_old_start + S (n) = S ((S (0)) * c)) /\ exists bcf_quotient_bpc_old_start. b = bcf_quotient_bpc_old_start * S ((S (0)) * c) + (n))) /\ forall bcf_index_bpc_old_chain. (exists bcf_lt_gap_bpc_old_index. bcf_lt_gap_bpc_old_index + S (bcf_index_bpc_old_chain) = k) -> exists bcf_previous_bpc_old_chain bcf_following_bpc_old_chain. ((((exists bcf_height_bpc_old_previous. bcf_height_bpc_old_previous + S (bcf_previous_bpc_old_chain) = S ((S (bcf_index_bpc_old_chain)) * c)) /\ exists bcf_quotient_bpc_old_previous. b = bcf_quotient_bpc_old_previous * S ((S (bcf_index_bpc_old_chain)) * c) + (bcf_previous_bpc_old_chain))) /\ ((((exists bcf_height_bpc_old_following. bcf_height_bpc_old_following + S (bcf_following_bpc_old_chain) = S ((S (S bcf_index_bpc_old_chain)) * c)) /\ exists bcf_quotient_bpc_old_following. b = bcf_quotient_bpc_old_following * S ((S (S bcf_index_bpc_old_chain)) * c) + (bcf_following_bpc_old_chain))) /\ ((((~(bcf_following_bpc_old_chain = 1) /\ forall frm_prime_left_bpc_old_successor_prime frm_prime_right_bpc_old_successor_prime. bcf_following_bpc_old_chain = frm_prime_left_bpc_old_successor_prime * frm_prime_right_bpc_old_successor_prime -> frm_prime_left_bpc_old_successor_prime = 1 \/ frm_prime_right_bpc_old_successor_prime = 1)) /\ ((exists bcf_lt_gap_bpc_old_successor_lower. bcf_lt_gap_bpc_old_successor_lower + S (bcf_previous_bpc_old_chain) = bcf_following_bpc_old_chain) /\ (exists bcf_lt_gap_bpc_old_successor_upper. bcf_lt_gap_bpc_old_successor_upper + S (bcf_following_bpc_old_chain) = bcf_previous_bpc_old_chain + bcf_previous_bpc_old_chain)))))))) /\ ((((exists bcf_height_bpc_old_terminal. bcf_height_bpc_old_terminal + S (a) = S ((S (k)) * c)) /\ exists bcf_quotient_bpc_old_terminal. b = bcf_quotient_bpc_old_terminal * S ((S (k)) * c) + (a))) /\ (exists bcf_lt_gap_bpc_chain_terminal. bcf_lt_gap_bpc_chain_terminal + S (1) = a)))Constructive proof overview
Generated structural guide
Induction constructs arbitrary strict prime chains and their guarded terminal values.
The unchanged tactic script uses 4 declared prerequisites and contains 55 exact native proof lines.
Alpha v34 checked-use · first admitted v20 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
BP0009 bertrand_chain_singleton_exists bertrand_strict Alpha theorem; checked-use authorized BP000B bertrand_chain_prefix_extend BP000A bertrand_chain_successor_preserves_guardDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
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.
Named ingredients (3)
01Fix variables and assumptionsL1–1
Work with arbitrary variables or the premises of the current implication.
- L1
intro n
02Induction on kL2–4
03Separate the logical casesL5–6
04Construct an explicit witnessL7–9
05Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
split
06Use earlier factsL11–11
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
exact bertrand_chain_singleton_exists_witness_witness
07Separate the logical casesL12–13
08Use earlier factsL14–15
09Fix variables and assumptionsL16–16
Work with arbitrary variables or the premises of the current implication.
- L16
intro hguard
10Establish hpreviousL17–19
11Separate the logical casesL20–24
12Establish hnextL25–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bertrand strict.
- L25
have hnext : exists p. ((((~(p = 1) /\ forall frm_prime_left_bpc_induction_next_prime frm_prime_right_bpc_induction_next_prime. p = frm_prime_left_bpc_induction_next_prime * frm_prime_right_bpc_induction_next_prime -> frm_prime_left_bpc_induction_next_prime = 1 \/ frm_prime_right_bpc_induction_next_prime = 1)) /\ ((exists bcf_lt_gap_bpc_induction_next_lower. bcf_lt_gap_bpc_induction_next_lower + S (x2) = p) /\ (exists bcf_lt_gap_bpc_induction_next_upper. bcf_lt_gap_bpc_induction_next_upper + S (p) = x2 + x2)))) - L26
specialize bertrand_strict x2 - L27
apply bertrand_strict - L28
exact hprevious_witness_witness_witness_right_right
13Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
cases hnext
14Establish hextendedL30–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bertrand chain prefix extend.
- L30
have hextended : ∃ z. ∃ d. BertrandChain(z,d,n,S k) ∧ Beta(z,d,S k,x3)Definitions: BetaBertrandChain - L31
specialize bertrand_chain_prefix_extend n - L32
specialize bertrand_chain_prefix_extend k - L33
specialize bertrand_chain_prefix_extend x - L34
specialize bertrand_chain_prefix_extend x1 - L35
specialize bertrand_chain_prefix_extend x2 - L36
specialize bertrand_chain_prefix_extend x3 - L37
apply bertrand_chain_prefix_extend - L38
exact hprevious_witness_witness_witness_left - L39
exact hprevious_witness_witness_witness_right_left
15Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hnext_witness
16Separate the logical casesL41–43
17Construct an explicit witnessL44–46
18Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
split
19Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hextended_witness_witness_left
20Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
split
21Use earlier factsL50–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 55 lines
- 0001
intro n - 0002
induction k - 0003
intro hguard - 0004
specialize bertrand_chain_singleton_exists n - 0005
cases bertrand_chain_singleton_exists - 0006
cases bertrand_chain_singleton_exists_witness - 0007
exists x - 0008
exists x1 - 0009
exists n - 0010
split - 0011
exact bertrand_chain_singleton_exists_witness_witness - 0012
split - 0013
cases bertrand_chain_singleton_exists_witness_witness - 0014
exact bertrand_chain_singleton_exists_witness_witness_left - 0015
exact hguard - 0016
intro hguard - 0017
have hprevious : exists b c a. ((((((exists bcf_height_bpc_old_start. bcf_height_bpc_old_start + S (n) = S ((S (0)) * c)) /\ exists bcf_quotient_bpc_old_start. b = bcf_quotient_bpc_old_start * S ((S (0)) * c) + (n))) /\ forall bcf_index_bpc_old_chain. (exists bcf_lt_gap_bpc_old_index. bcf_lt_gap_bpc_old_index + S (bcf_index_bpc_old_chain) = k) -> exists bcf_previous_bpc_old_chain bcf_following_bpc_old_chain. ((((exists bcf_height_bpc_old_previous. bcf_height_bpc_old_previous + S (bcf_previous_bpc_old_chain) = S ((S (bcf_index_bpc_old_chain)) * c)) /\ exists bcf_quotient_bpc_old_previous. b = bcf_quotient_bpc_old_previous * S ((S (bcf_index_bpc_old_chain)) * c) + (bcf_previous_bpc_old_chain))) /\ ((((exists bcf_height_bpc_old_following. bcf_height_bpc_old_following + S (bcf_following_bpc_old_chain) = S ((S (S bcf_index_bpc_old_chain)) * c)) /\ exists bcf_quotient_bpc_old_following. b = bcf_quotient_bpc_old_following * S ((S (S bcf_index_bpc_old_chain)) * c) + (bcf_following_bpc_old_chain))) /\ ((((~(bcf_following_bpc_old_chain = 1) /\ forall frm_prime_left_bpc_old_successor_prime frm_prime_right_bpc_old_successor_prime. bcf_following_bpc_old_chain = frm_prime_left_bpc_old_successor_prime * frm_prime_right_bpc_old_successor_prime -> frm_prime_left_bpc_old_successor_prime = 1 \/ frm_prime_right_bpc_old_successor_prime = 1)) /\ ((exists bcf_lt_gap_bpc_old_successor_lower. bcf_lt_gap_bpc_old_successor_lower + S (bcf_previous_bpc_old_chain) = bcf_following_bpc_old_chain) /\ (exists bcf_lt_gap_bpc_old_successor_upper. bcf_lt_gap_bpc_old_successor_upper + S (bcf_following_bpc_old_chain) = bcf_previous_bpc_old_chain + bcf_previous_bpc_old_chain)))))))) /\ ((((exists bcf_height_bpc_old_terminal. bcf_height_bpc_old_terminal + S (a) = S ((S (k)) * c)) /\ exists bcf_quotient_bpc_old_terminal. b = bcf_quotient_bpc_old_terminal * S ((S (k)) * c) + (a))) /\ (exists bcf_lt_gap_bpc_chain_terminal. bcf_lt_gap_bpc_chain_terminal + S (1) = a))) - 0018
apply IH - 0019
exact hguard - 0020
cases hprevious - 0021
cases hprevious_witness - 0022
cases hprevious_witness_witness - 0023
cases hprevious_witness_witness_witness - 0024
cases hprevious_witness_witness_witness_right - 0025
have hnext : exists p. ((((~(p = 1) /\ forall frm_prime_left_bpc_induction_next_prime frm_prime_right_bpc_induction_next_prime. p = frm_prime_left_bpc_induction_next_prime * frm_prime_right_bpc_induction_next_prime -> frm_prime_left_bpc_induction_next_prime = 1 \/ frm_prime_right_bpc_induction_next_prime = 1)) /\ ((exists bcf_lt_gap_bpc_induction_next_lower. bcf_lt_gap_bpc_induction_next_lower + S (x2) = p) /\ (exists bcf_lt_gap_bpc_induction_next_upper. bcf_lt_gap_bpc_induction_next_upper + S (p) = x2 + x2)))) - 0026
specialize bertrand_strict x2 - 0027
apply bertrand_strict - 0028
exact hprevious_witness_witness_witness_right_right - 0029
cases hnext - 0030
have hextended : exists z d. ((((((exists bcf_height_bpc_induction_new_start. bcf_height_bpc_induction_new_start + S (n) = S ((S (0)) * d)) /\ exists bcf_quotient_bpc_induction_new_start. z = bcf_quotient_bpc_induction_new_start * S ((S (0)) * d) + (n))) /\ forall bcf_index_bpc_induction_new_chain. (exists bcf_lt_gap_bpc_induction_new_index. bcf_lt_gap_bpc_induction_new_index + S (bcf_index_bpc_induction_new_chain) = S k) -> exists bcf_previous_bpc_induction_new_chain bcf_following_bpc_induction_new_chain. ((((exists bcf_height_bpc_induction_new_previous. bcf_height_bpc_induction_new_previous + S (bcf_previous_bpc_induction_new_chain) = S ((S (bcf_index_bpc_induction_new_chain)) * d)) /\ exists bcf_quotient_bpc_induction_new_previous. z = bcf_quotient_bpc_induction_new_previous * S ((S (bcf_index_bpc_induction_new_chain)) * d) + (bcf_previous_bpc_induction_new_chain))) /\ ((((exists bcf_height_bpc_induction_new_following. bcf_height_bpc_induction_new_following + S (bcf_following_bpc_induction_new_chain) = S ((S (S bcf_index_bpc_induction_new_chain)) * d)) /\ exists bcf_quotient_bpc_induction_new_following. z = bcf_quotient_bpc_induction_new_following * S ((S (S bcf_index_bpc_induction_new_chain)) * d) + (bcf_following_bpc_induction_new_chain))) /\ ((((~(bcf_following_bpc_induction_new_chain = 1) /\ forall frm_prime_left_bpc_induction_new_successor_prime frm_prime_right_bpc_induction_new_successor_prime. bcf_following_bpc_induction_new_chain = frm_prime_left_bpc_induction_new_successor_prime * frm_prime_right_bpc_induction_new_successor_prime -> frm_prime_left_bpc_induction_new_successor_prime = 1 \/ frm_prime_right_bpc_induction_new_successor_prime = 1)) /\ ((exists bcf_lt_gap_bpc_induction_new_successor_lower. bcf_lt_gap_bpc_induction_new_successor_lower + S (bcf_previous_bpc_induction_new_chain) = bcf_following_bpc_induction_new_chain) /\ (exists bcf_lt_gap_bpc_induction_new_successor_upper. bcf_lt_gap_bpc_induction_new_successor_upper + S (bcf_following_bpc_induction_new_chain) = bcf_previous_bpc_induction_new_chain + bcf_previous_bpc_induction_new_chain)))))))) /\ (((exists bcf_height_bpc_induction_terminal. bcf_height_bpc_induction_terminal + S (x3) = S ((S (S k)) * d)) /\ exists bcf_quotient_bpc_induction_terminal. z = bcf_quotient_bpc_induction_terminal * S ((S (S k)) * d) + (x3)))) - 0031
specialize bertrand_chain_prefix_extend n - 0032
specialize bertrand_chain_prefix_extend k - 0033
specialize bertrand_chain_prefix_extend x - 0034
specialize bertrand_chain_prefix_extend x1 - 0035
specialize bertrand_chain_prefix_extend x2 - 0036
specialize bertrand_chain_prefix_extend x3 - 0037
apply bertrand_chain_prefix_extend - 0038
exact hprevious_witness_witness_witness_left - 0039
exact hprevious_witness_witness_witness_right_left - 0040
exact hnext_witness - 0041
cases hextended - 0042
cases hextended_witness - 0043
cases hextended_witness_witness - 0044
exists x4 - 0045
exists x5 - 0046
exists x3 - 0047
split - 0048
exact hextended_witness_witness_left - 0049
split - 0050
exact hextended_witness_witness_right - 0051
specialize bertrand_chain_successor_preserves_guard x2 - 0052
specialize bertrand_chain_successor_preserves_guard x3 - 0053
apply bertrand_chain_successor_preserves_guard - 0054
exact hprevious_witness_witness_witness_right_right - 0055
exact hnext_witness