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 i a. (exists ff_u_fms_sum ff_v_fms_sum. ((((exists ff_h_fms_sum_start. ff_h_fms_sum_start + S (0) = S ((S (0)) * ff_v_fms_sum)) /\ exists ff_q_fms_sum_start. ff_u_fms_sum = ff_q_fms_sum_start * S ((S (0)) * ff_v_fms_sum) + (0))) /\ ((((exists ff_h_fms_sum_terminal. ff_h_fms_sum_terminal + S ((n)) = S ((S ((l))) * ff_v_fms_sum)) /\ exists ff_q_fms_sum_terminal. ff_u_fms_sum = ff_q_fms_sum_terminal * S ((S ((l))) * ff_v_fms_sum) + ((n)))) /\ forall ff_i_fms_sum. (exists ff_lt_fms_sum_bound. ff_lt_fms_sum_bound + S ff_i_fms_sum = (l)) -> exists ff_a_fms_sum ff_r_fms_sum ff_s_fms_sum. ((((exists ff_h_fms_sum_summand. ff_h_fms_sum_summand + S (ff_a_fms_sum) = S ((S (ff_i_fms_sum)) * (c))) /\ exists ff_q_fms_sum_summand. (b) = ff_q_fms_sum_summand * S ((S (ff_i_fms_sum)) * (c)) + (ff_a_fms_sum))) /\ ((((exists ff_h_fms_sum_partial. ff_h_fms_sum_partial + S (ff_r_fms_sum) = S ((S (ff_i_fms_sum)) * ff_v_fms_sum)) /\ exists ff_q_fms_sum_partial. ff_u_fms_sum = ff_q_fms_sum_partial * S ((S (ff_i_fms_sum)) * ff_v_fms_sum) + (ff_r_fms_sum))) /\ ((((exists ff_h_fms_sum_successor. ff_h_fms_sum_successor + S (ff_s_fms_sum) = S ((S (S ff_i_fms_sum)) * ff_v_fms_sum)) /\ exists ff_q_fms_sum_successor. ff_u_fms_sum = ff_q_fms_sum_successor * S ((S (S ff_i_fms_sum)) * ff_v_fms_sum) + (ff_s_fms_sum))) /\ ff_s_fms_sum = ff_r_fms_sum + ff_a_fms_sum)))))) -> (exists fms_gap_lt. fms_gap_lt + S (i) = (l)) -> (((exists fs_h_fms_entry_le. fs_h_fms_entry_le + S (a) = S ((S (i)) * c)) /\ exists fs_q_fms_entry_le. b = fs_q_fms_entry_le * S ((S (i)) * c) + (a))) -> (exists fms_gap_le. fms_gap_le + (a) = (n))Constructive proof overview
Generated structural guide
Every genuinely decoded summand is bounded by the exact finite sum containing it.
The unchanged tactic script uses 8 declared prerequisites and contains 73 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_sum_succ_decompose Stable theorem; checked-use authorized finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized le_add_left Stable theorem; checked-use authorized le_add_right Stable theorem; checked-use authorized le_trans Stable theorem; checked-use authorized add_eq_zero_right Stable theorem; checked-use authorized succ_ne_zero 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–2
02Induction on lL3–9
03Separate the logical casesL10–11
04Establish hzL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
05Fix variables and assumptionsL22–25
06Establish hdL26–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
07Separate the logical casesL33–36
08Establish hcaseL37–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
09Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
cases hcase
10Calculate and transport equalitiesL43–44
11Establish heL45–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
12Calculate and transport equalitiesL55–55
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L55
rewrite hd_witness_witness_right_right
13Use earlier factsL56–58
14Calculate and transport equalitiesL59–59
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L59
rewrite hd_witness_witness_right_right
15Use earlier factsL60–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 73 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro n - 0005
intro i - 0006
intro a - 0007
intro hsum - 0008
intro hi - 0009
intro ha - 0010
exfalso - 0011
cases hi - 0012
have hz : S i=0 - 0013
specialize add_eq_zero_right x - 0014
specialize add_eq_zero_right S i - 0015
apply add_eq_zero_right - 0016
exact hi_witness - 0017
specialize succ_ne_zero i - 0018
apply succ_ne_zero - 0019
exact hz - 0020
intro n - 0021
intro i - 0022
intro a - 0023
intro hsum - 0024
intro hi - 0025
intro ha - 0026
have hd : exists fms_term_hd fms_sum_hd. (((exists fs_h_fms_hd. fs_h_fms_hd + S (fms_term_hd) = S ((S (l)) * c)) /\ exists fs_q_fms_hd. b = fs_q_fms_hd * S ((S (l)) * c) + (fms_term_hd))) /\ ((exists ff_u_fms_hd ff_v_fms_hd. ((((exists ff_h_fms_hd_start. ff_h_fms_hd_start + S (0) = S ((S (0)) * ff_v_fms_hd)) /\ exists ff_q_fms_hd_start. ff_u_fms_hd = ff_q_fms_hd_start * S ((S (0)) * ff_v_fms_hd) + (0))) /\ ((((exists ff_h_fms_hd_terminal. ff_h_fms_hd_terminal + S ((fms_sum_hd)) = S ((S ((l))) * ff_v_fms_hd)) /\ exists ff_q_fms_hd_terminal. ff_u_fms_hd = ff_q_fms_hd_terminal * S ((S ((l))) * ff_v_fms_hd) + ((fms_sum_hd)))) /\ forall ff_i_fms_hd. (exists ff_lt_fms_hd_bound. ff_lt_fms_hd_bound + S ff_i_fms_hd = (l)) -> exists ff_a_fms_hd ff_r_fms_hd ff_s_fms_hd. ((((exists ff_h_fms_hd_summand. ff_h_fms_hd_summand + S (ff_a_fms_hd) = S ((S (ff_i_fms_hd)) * (c))) /\ exists ff_q_fms_hd_summand. (b) = ff_q_fms_hd_summand * S ((S (ff_i_fms_hd)) * (c)) + (ff_a_fms_hd))) /\ ((((exists ff_h_fms_hd_partial. ff_h_fms_hd_partial + S (ff_r_fms_hd) = S ((S (ff_i_fms_hd)) * ff_v_fms_hd)) /\ exists ff_q_fms_hd_partial. ff_u_fms_hd = ff_q_fms_hd_partial * S ((S (ff_i_fms_hd)) * ff_v_fms_hd) + (ff_r_fms_hd))) /\ ((((exists ff_h_fms_hd_successor. ff_h_fms_hd_successor + S (ff_s_fms_hd) = S ((S (S ff_i_fms_hd)) * ff_v_fms_hd)) /\ exists ff_q_fms_hd_successor. ff_u_fms_hd = ff_q_fms_hd_successor * S ((S (S ff_i_fms_hd)) * ff_v_fms_hd) + (ff_s_fms_hd))) /\ ff_s_fms_hd = ff_r_fms_hd + ff_a_fms_hd)))))) /\ n=fms_sum_hd+fms_term_hd) - 0027
specialize beta_sum_succ_decompose b - 0028
specialize beta_sum_succ_decompose c - 0029
specialize beta_sum_succ_decompose l - 0030
specialize beta_sum_succ_decompose n - 0031
apply beta_sum_succ_decompose - 0032
exact hsum - 0033
cases hd - 0034
cases hd_witness - 0035
cases hd_witness_witness - 0036
cases hd_witness_witness_right - 0037
have hcase : i=l \/ (exists fms_gap_lt. fms_gap_lt + S (i) = (l)) - 0038
specialize finite_lt_succ_eq_or_lt l - 0039
specialize finite_lt_succ_eq_or_lt i - 0040
apply finite_lt_succ_eq_or_lt - 0041
exact hi - 0042
cases hcase - 0043
rewrite hcase_left at ha - 0044
rewrite hcase_left at ha - 0045
have he : a=x - 0046
specialize beta_at_unique b - 0047
specialize beta_at_unique c - 0048
specialize beta_at_unique l - 0049
specialize beta_at_unique a - 0050
specialize beta_at_unique x - 0051
apply beta_at_unique - 0052
exact ha - 0053
exact hd_witness_witness_left - 0054
rewrite he - 0055
rewrite hd_witness_witness_right_right - 0056
specialize le_add_left x - 0057
specialize le_add_left x1 - 0058
apply le_add_left - 0059
rewrite hd_witness_witness_right_right - 0060
specialize le_trans a - 0061
specialize le_trans x1 - 0062
specialize le_trans x1+x - 0063
apply le_trans - 0064
specialize IH x1 - 0065
specialize IH i - 0066
specialize IH a - 0067
apply IH - 0068
exact hd_witness_witness_right_left - 0069
exact hcase_right - 0070
exact ha - 0071
specialize le_add_right x1 - 0072
specialize le_add_right x - 0073
apply le_add_right