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 b c l n. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((n)) = S ((S ((l))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((l))) * ff_v_fms_count) + ((n)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (l)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (c))) /\ exists ff_q_fms_count_summand. (b) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (c)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (l)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (c))) /\ exists ff_q_fms_count_decoded. (b) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (c)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> ~(n=0) -> exists i. (((exists fms_gap_member. fms_gap_member + S (i) = (l)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (i)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (i)) * c) + (1)))))Constructive proof overview
Generated structural guide
Every positive witnessed bit count supplies an actual bounded member.
The unchanged tactic script uses 2 declared prerequisites and contains 28 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
zero_or_succ Stable theorem; checked-use authorized bit_count_positive_last_one Alpha theorem; checked-use authorizedDirect 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.
01Fix variables and assumptionsL1–6
02Use earlier factsL7–7
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L7
specialize zero_or_succ n
03Separate the logical casesL8–9
04Use earlier factsL10–11
05Separate the logical casesL12–12
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L12
cases zero_or_succ_right
06Calculate and transport equalitiesL13–14
07Establish hwL15–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bit count positive last one.
- L15
have hw : exists i. (exists fms_gap_lt. fms_gap_lt + S (i) = (l)) /\ ((((exists fs_h_fms_last. fs_h_fms_last + S (1) = S ((S (i)) * c)) /\ exists fs_q_fms_last. b = fs_q_fms_last * S ((S (i)) * c) + (1))) /\ (exists fms_gap_le. fms_gap_le + (S x) = (S i))) - L16
specialize bit_count_positive_last_one b - L17
specialize bit_count_positive_last_one c - L18
specialize bit_count_positive_last_one l - L19
specialize bit_count_positive_last_one x - L20
apply bit_count_positive_last_one - L21
exact hcount
08Separate the logical casesL22–24
09Construct an explicit witnessL25–25
Supply the displayed value, then prove that it has the required property.
- L25
exists x1
10Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
split
Original exact command ledger · 28 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro hcount - 0006
intro hn - 0007
specialize zero_or_succ n - 0008
cases zero_or_succ - 0009
exfalso - 0010
apply hn - 0011
exact zero_or_succ_left - 0012
cases zero_or_succ_right - 0013
rewrite zero_or_succ_right_witness at hcount - 0014
rewrite zero_or_succ_right_witness at hcount - 0015
have hw : exists i. (exists fms_gap_lt. fms_gap_lt + S (i) = (l)) /\ ((((exists fs_h_fms_last. fs_h_fms_last + S (1) = S ((S (i)) * c)) /\ exists fs_q_fms_last. b = fs_q_fms_last * S ((S (i)) * c) + (1))) /\ (exists fms_gap_le. fms_gap_le + (S x) = (S i))) - 0016
specialize bit_count_positive_last_one b - 0017
specialize bit_count_positive_last_one c - 0018
specialize bit_count_positive_last_one l - 0019
specialize bit_count_positive_last_one x - 0020
apply bit_count_positive_last_one - 0021
exact hcount - 0022
cases hw - 0023
cases hw_witness - 0024
cases hw_witness_right - 0025
exists x1 - 0026
split - 0027
exact hw_witness_left - 0028
exact hw_witness_right_left