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))))) -> (exists fms_gap_le. fms_gap_le + (2) = (n)) -> 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))))) /\ ~(i=0)Constructive proof overview
Generated structural guide
A characteristic set with at least two elements has a genuine nonzero canonical member.
The unchanged tactic script uses 5 declared prerequisites and contains 56 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
le_trans Stable theorem; checked-use authorized ne_zero_of_one_le Stable theorem; checked-use authorized nonzero_is_succ Stable theorem; checked-use authorized bit_count_positive_last_one Alpha theorem; checked-use authorized le_of_succ_le_succ Stable 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
02Establish honeL7–11
03Construct an explicit witnessL12–12
Supply the displayed value, then prove that it has the required property.
- L12
exists 1
04Calculate and transport equalitiesL13–13
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L13
simp
05Use earlier factsL14–14
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L14
exact hn
06Establish hnonzeroL15–20
07Establish hsuccL21–24
08Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
cases hsucc
09Calculate and transport equalitiesL26–28
10Establish hwL29–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bit count positive last one.
- L29
have hw : exists i. (exists fms_gap_lt. fms_gap_lt + S (i) = (l)) /\ ((((exists fs_h_fms_two_member. fs_h_fms_two_member + S (1) = S ((S (i)) * c)) /\ exists fs_q_fms_two_member. b = fs_q_fms_two_member * S ((S (i)) * c) + (1))) /\ (exists fms_gap_le. fms_gap_le + (S x) = (S i))) - L30
specialize bit_count_positive_last_one b - L31
specialize bit_count_positive_last_one c - L32
specialize bit_count_positive_last_one l - L33
specialize bit_count_positive_last_one x - L34
apply bit_count_positive_last_one - L35
exact hcount
11Separate the logical casesL36–38
12Construct an explicit witnessL39–39
Supply the displayed value, then prove that it has the required property.
- L39
exists x1
13Separate the logical casesL40–41
14Use earlier factsL42–43
15Fix variables and assumptionsL44–44
Work with arbitrary variables or the premises of the current implication.
- L44
intro hz
16Use earlier factsL45–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 56 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro hcount - 0006
intro hn - 0007
have hone : exists fms_gap_le. fms_gap_le + (1) = (n) - 0008
specialize le_trans 1 - 0009
specialize le_trans 2 - 0010
specialize le_trans n - 0011
apply le_trans - 0012
exists 1 - 0013
simp - 0014
exact hn - 0015
have hnonzero : ~(n=0) - 0016
intro hz - 0017
specialize ne_zero_of_one_le n - 0018
apply ne_zero_of_one_le - 0019
exact hone - 0020
exact hz - 0021
have hsucc : exists q. n=S q - 0022
specialize nonzero_is_succ n - 0023
apply nonzero_is_succ - 0024
exact hnonzero - 0025
cases hsucc - 0026
rewrite hsucc_witness at hcount - 0027
rewrite hsucc_witness at hcount - 0028
rewrite hsucc_witness at hn - 0029
have hw : exists i. (exists fms_gap_lt. fms_gap_lt + S (i) = (l)) /\ ((((exists fs_h_fms_two_member. fs_h_fms_two_member + S (1) = S ((S (i)) * c)) /\ exists fs_q_fms_two_member. b = fs_q_fms_two_member * S ((S (i)) * c) + (1))) /\ (exists fms_gap_le. fms_gap_le + (S x) = (S i))) - 0030
specialize bit_count_positive_last_one b - 0031
specialize bit_count_positive_last_one c - 0032
specialize bit_count_positive_last_one l - 0033
specialize bit_count_positive_last_one x - 0034
apply bit_count_positive_last_one - 0035
exact hcount - 0036
cases hw - 0037
cases hw_witness - 0038
cases hw_witness_right - 0039
exists x1 - 0040
split - 0041
split - 0042
exact hw_witness_left - 0043
exact hw_witness_right_left - 0044
intro hz - 0045
specialize ne_zero_of_one_le x1 - 0046
apply ne_zero_of_one_le - 0047
specialize le_of_succ_le_succ 1 - 0048
specialize le_of_succ_le_succ x1 - 0049
apply le_of_succ_le_succ - 0050
specialize le_trans 2 - 0051
specialize le_trans S x - 0052
specialize le_trans S x1 - 0053
apply le_trans - 0054
exact hn - 0055
exact hw_witness_right_right - 0056
exact hz