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 d e m. (((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 ((m)) = 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) + ((m)))) /\ 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)) * (e))) /\ exists ff_q_fms_count_summand. (d) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (e)) + (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)) * (e))) /\ exists ff_q_fms_count_decoded. (d) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (e)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) /\ ((forall fms_i_complement fms_a_complement fms_v_complement. (exists fms_gap_complement. fms_gap_complement + S (fms_i_complement) = (l)) -> (((exists fs_h_fms_complement_a. fs_h_fms_complement_a + S (fms_a_complement) = S ((S (fms_i_complement)) * c)) /\ exists fs_q_fms_complement_a. b = fs_q_fms_complement_a * S ((S (fms_i_complement)) * c) + (fms_a_complement))) -> (((exists fs_h_fms_complement_b. fs_h_fms_complement_b + S (fms_v_complement) = S ((S (fms_i_complement)) * e)) /\ exists fs_q_fms_complement_b. d = fs_q_fms_complement_b * S ((S (fms_i_complement)) * e) + (fms_v_complement))) -> ((fms_a_complement=0 /\ fms_v_complement=1) \/ (fms_a_complement=1 /\ fms_v_complement=0))) /\ n+m=l)Constructive proof overview
Generated structural guide
Construct the genuine characteristic complement and prove its count adds to the ambient size.
The unchanged tactic script uses 5 declared prerequisites and contains 106 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_sign_factor_prefix_exists Alpha theorem; checked-use authorized beta_at_exists Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized bit_count_exists Stable theorem; checked-use authorized complementary_bit_counts_add_length 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–5
02Establish hcodeL6–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sign factor prefix exists.
03Separate the logical casesL14–15
04Establish hbitsL16–18
Establish this local claim before using it. It is not an additional assumption.
- L16
have hbits : forall ff_i_fms_bits. (exists ff_lt_fms_bits_bound. ff_lt_fms_bits_bound + S ff_i_fms_bits = (l)) -> exists ff_bit_fms_bits. ((((exists ff_h_fms_bits_decoded. ff_h_fms_bits_decoded + S (ff_bit_fms_bits) = S ((S (ff_i_fms_bits)) * (x1))) /\ exists ff_q_fms_bits_decoded. (x) = ff_q_fms_bits_decoded * S ((S (ff_i_fms_bits)) * (x1)) + (ff_bit_fms_bits))) /\ (ff_bit_fms_bits = 0 \/ ff_bit_fms_bits = 1)) - L17
intro i - L18
intro hi
05Establish haL19–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
06Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases ha
07Establish hcL25–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hcode witness witness.
- L25
have hc : (x2=0 /\ (((exists fs_h_fms_comp_one. fs_h_fms_comp_one + S (1) = S ((S (i)) * x1)) /\ exists fs_q_fms_comp_one. x = fs_q_fms_comp_one * S ((S (i)) * x1) + (1)))) \/ (x2=1 /\ (((exists fs_h_fms_comp_zero. fs_h_fms_comp_zero + S (0) = S ((S (i)) * x1)) /\ exists fs_q_fms_comp_zero. x = fs_q_fms_comp_zero * S ((S (i)) * x1) + (0)))) - L26
specialize hcode_witness_witness i - L27
specialize hcode_witness_witness x2 - L28
apply hcode_witness_witness - L29
exact hi - L30
exact ha_witness
08Separate the logical casesL31–32
09Construct an explicit witnessL33–33
Supply the displayed value, then prove that it has the required property.
- L33
exists 1
10Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
split
11Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hc_left_right
12Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
right
13Calculate and transport equalitiesL37–37
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L37
refl
14Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases hc_right
15Construct an explicit witnessL39–39
Supply the displayed value, then prove that it has the required property.
- L39
exists 0
16Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
split
17Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hc_right_right
18Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
left
19Calculate and transport equalitiesL43–43
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L43
refl
20Establish hcompL44–50
Establish this local claim before using it. It is not an additional assumption.
- L44
have hcomp : ∀ fms_i_complement. ∀ fms_a_complement. ∀ fms_v_complement. Lt(fms_i_complement,l) → BetaAt(b,c,fms_i_complement,fms_a_complement) → BetaAt(x,x1,fms_i_complement,fms_v_complement) → fms_a_complement = 0 ∧ fms_v_complement = 1 ∨ fms_a_complement = 1 ∧ fms_v_complement = 0Definitions: LtBetaAt - L45
intro i - L46
intro a - L47
intro v - L48
intro hi - L49
intro ha - L50
intro hv
21Establish hcL51–56
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hcode witness witness.
- L51
have hc : (a=0 /\ (((exists fs_h_fms_comp_univ_one. fs_h_fms_comp_univ_one + S (1) = S ((S (i)) * x1)) /\ exists fs_q_fms_comp_univ_one. x = fs_q_fms_comp_univ_one * S ((S (i)) * x1) + (1)))) \/ (a=1 /\ (((exists fs_h_fms_comp_univ_zero. fs_h_fms_comp_univ_zero + S (0) = S ((S (i)) * x1)) /\ exists fs_q_fms_comp_univ_zero. x = fs_q_fms_comp_univ_zero * S ((S (i)) * x1) + (0)))) - L52
specialize hcode_witness_witness i - L53
specialize hcode_witness_witness a - L54
apply hcode_witness_witness - L55
exact hi - L56
exact ha
22Separate the logical casesL57–60
23Use earlier factsL61–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
24Separate the logical casesL70–72
25Use earlier factsL73–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
26Establish hcountL82–87
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bit count exists.
27Separate the logical casesL88–88
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L88
cases hcount
28Construct an explicit witnessL89–91
29Separate the logical casesL92–92
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L92
split
30Use earlier factsL93–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L93
exact hcount_witness
31Separate the logical casesL94–94
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L94
split
32Use earlier factsL95–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L95
exact hcomp - L96
specialize complementary_bit_counts_add_length b - L97
specialize complementary_bit_counts_add_length c - L98
specialize complementary_bit_counts_add_length x - L99
specialize complementary_bit_counts_add_length x1 - L100
specialize complementary_bit_counts_add_length l - L101
specialize complementary_bit_counts_add_length n - L102
specialize complementary_bit_counts_add_length x2 - L103
apply complementary_bit_counts_add_length - L104
exact hn
Original exact command ledger · 106 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro hn - 0006
have hcode : exists d e. forall fms_i_sign fms_a_sign. (exists fms_gap_sign. fms_gap_sign + S (fms_i_sign) = (l)) -> (((exists fs_h_fms_sign_a. fs_h_fms_sign_a + S (fms_a_sign) = S ((S (fms_i_sign)) * c)) /\ exists fs_q_fms_sign_a. b = fs_q_fms_sign_a * S ((S (fms_i_sign)) * c) + (fms_a_sign))) -> ((fms_a_sign=0 /\ (((exists fs_h_fms_sign_one. fs_h_fms_sign_one + S (1) = S ((S (fms_i_sign)) * e)) /\ exists fs_q_fms_sign_one. d = fs_q_fms_sign_one * S ((S (fms_i_sign)) * e) + (1)))) \/ (fms_a_sign=1 /\ (((exists fs_h_fms_sign_zero. fs_h_fms_sign_zero + S (0) = S ((S (fms_i_sign)) * e)) /\ exists fs_q_fms_sign_zero. d = fs_q_fms_sign_zero * S ((S (fms_i_sign)) * e) + (0))))) - 0007
specialize beta_sign_factor_prefix_exists b - 0008
specialize beta_sign_factor_prefix_exists c - 0009
specialize beta_sign_factor_prefix_exists 0 - 0010
specialize beta_sign_factor_prefix_exists l - 0011
specialize beta_sign_factor_prefix_exists n - 0012
apply beta_sign_factor_prefix_exists - 0013
exact hn - 0014
cases hcode - 0015
cases hcode_witness - 0016
have hbits : forall ff_i_fms_bits. (exists ff_lt_fms_bits_bound. ff_lt_fms_bits_bound + S ff_i_fms_bits = (l)) -> exists ff_bit_fms_bits. ((((exists ff_h_fms_bits_decoded. ff_h_fms_bits_decoded + S (ff_bit_fms_bits) = S ((S (ff_i_fms_bits)) * (x1))) /\ exists ff_q_fms_bits_decoded. (x) = ff_q_fms_bits_decoded * S ((S (ff_i_fms_bits)) * (x1)) + (ff_bit_fms_bits))) /\ (ff_bit_fms_bits = 0 \/ ff_bit_fms_bits = 1)) - 0017
intro i - 0018
intro hi - 0019
have ha : exists a. ((exists fs_h_fms_comp_source. fs_h_fms_comp_source + S (a) = S ((S (i)) * c)) /\ exists fs_q_fms_comp_source. b = fs_q_fms_comp_source * S ((S (i)) * c) + (a)) - 0020
specialize beta_at_exists b - 0021
specialize beta_at_exists c - 0022
specialize beta_at_exists i - 0023
apply beta_at_exists - 0024
cases ha - 0025
have hc : (x2=0 /\ (((exists fs_h_fms_comp_one. fs_h_fms_comp_one + S (1) = S ((S (i)) * x1)) /\ exists fs_q_fms_comp_one. x = fs_q_fms_comp_one * S ((S (i)) * x1) + (1)))) \/ (x2=1 /\ (((exists fs_h_fms_comp_zero. fs_h_fms_comp_zero + S (0) = S ((S (i)) * x1)) /\ exists fs_q_fms_comp_zero. x = fs_q_fms_comp_zero * S ((S (i)) * x1) + (0)))) - 0026
specialize hcode_witness_witness i - 0027
specialize hcode_witness_witness x2 - 0028
apply hcode_witness_witness - 0029
exact hi - 0030
exact ha_witness - 0031
cases hc - 0032
cases hc_left - 0033
exists 1 - 0034
split - 0035
exact hc_left_right - 0036
right - 0037
refl - 0038
cases hc_right - 0039
exists 0 - 0040
split - 0041
exact hc_right_right - 0042
left - 0043
refl - 0044
have hcomp : forall fms_i_complement fms_a_complement fms_v_complement. (exists fms_gap_complement. fms_gap_complement + S (fms_i_complement) = (l)) -> (((exists fs_h_fms_complement_a. fs_h_fms_complement_a + S (fms_a_complement) = S ((S (fms_i_complement)) * c)) /\ exists fs_q_fms_complement_a. b = fs_q_fms_complement_a * S ((S (fms_i_complement)) * c) + (fms_a_complement))) -> (((exists fs_h_fms_complement_b. fs_h_fms_complement_b + S (fms_v_complement) = S ((S (fms_i_complement)) * x1)) /\ exists fs_q_fms_complement_b. x = fs_q_fms_complement_b * S ((S (fms_i_complement)) * x1) + (fms_v_complement))) -> ((fms_a_complement=0 /\ fms_v_complement=1) \/ (fms_a_complement=1 /\ fms_v_complement=0)) - 0045
intro i - 0046
intro a - 0047
intro v - 0048
intro hi - 0049
intro ha - 0050
intro hv - 0051
have hc : (a=0 /\ (((exists fs_h_fms_comp_univ_one. fs_h_fms_comp_univ_one + S (1) = S ((S (i)) * x1)) /\ exists fs_q_fms_comp_univ_one. x = fs_q_fms_comp_univ_one * S ((S (i)) * x1) + (1)))) \/ (a=1 /\ (((exists fs_h_fms_comp_univ_zero. fs_h_fms_comp_univ_zero + S (0) = S ((S (i)) * x1)) /\ exists fs_q_fms_comp_univ_zero. x = fs_q_fms_comp_univ_zero * S ((S (i)) * x1) + (0)))) - 0052
specialize hcode_witness_witness i - 0053
specialize hcode_witness_witness a - 0054
apply hcode_witness_witness - 0055
exact hi - 0056
exact ha - 0057
cases hc - 0058
cases hc_left - 0059
left - 0060
split - 0061
exact hc_left_left - 0062
specialize beta_at_unique x - 0063
specialize beta_at_unique x1 - 0064
specialize beta_at_unique i - 0065
specialize beta_at_unique v - 0066
specialize beta_at_unique 1 - 0067
apply beta_at_unique - 0068
exact hv - 0069
exact hc_left_right - 0070
cases hc_right - 0071
right - 0072
split - 0073
exact hc_right_left - 0074
specialize beta_at_unique x - 0075
specialize beta_at_unique x1 - 0076
specialize beta_at_unique i - 0077
specialize beta_at_unique v - 0078
specialize beta_at_unique 0 - 0079
apply beta_at_unique - 0080
exact hv - 0081
exact hc_right_right - 0082
have hcount : exists m. ((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 ((m)) = 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) + ((m)))) /\ 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)) * (x1))) /\ exists ff_q_fms_count_summand. (x) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (x1)) + (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)) * (x1))) /\ exists ff_q_fms_count_decoded. (x) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (x1)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1)))) - 0083
specialize bit_count_exists x - 0084
specialize bit_count_exists x1 - 0085
specialize bit_count_exists l - 0086
apply bit_count_exists - 0087
exact hbits - 0088
cases hcount - 0089
exists x - 0090
exists x1 - 0091
exists x2 - 0092
split - 0093
exact hcount_witness - 0094
split - 0095
exact hcomp - 0096
specialize complementary_bit_counts_add_length b - 0097
specialize complementary_bit_counts_add_length c - 0098
specialize complementary_bit_counts_add_length x - 0099
specialize complementary_bit_counts_add_length x1 - 0100
specialize complementary_bit_counts_add_length l - 0101
specialize complementary_bit_counts_add_length n - 0102
specialize complementary_bit_counts_add_length x2 - 0103
apply complementary_bit_counts_add_length - 0104
exact hn - 0105
exact hcount_witness - 0106
exact hcomp