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 fs_u_pc_entry_le_sum fs_v_pc_entry_le_sum. ((((exists fs_h_pc_entry_le_sum_body_start. fs_h_pc_entry_le_sum_body_start + S (0) = S ((S (0)) * fs_v_pc_entry_le_sum)) /\ exists fs_q_pc_entry_le_sum_body_start. fs_u_pc_entry_le_sum = fs_q_pc_entry_le_sum_body_start * S ((S (0)) * fs_v_pc_entry_le_sum) + (0))) /\ ((((exists fs_h_pc_entry_le_sum_body_terminal. fs_h_pc_entry_le_sum_body_terminal + S (n) = S ((S (l)) * fs_v_pc_entry_le_sum)) /\ exists fs_q_pc_entry_le_sum_body_terminal. fs_u_pc_entry_le_sum = fs_q_pc_entry_le_sum_body_terminal * S ((S (l)) * fs_v_pc_entry_le_sum) + (n))) /\ forall fs_i_pc_entry_le_sum_body_steps. (exists fs_lt_pc_entry_le_sum_body_steps_bound. fs_lt_pc_entry_le_sum_body_steps_bound + S fs_i_pc_entry_le_sum_body_steps = l) -> exists fs_a_pc_entry_le_sum_body_steps fs_r_pc_entry_le_sum_body_steps fs_s_pc_entry_le_sum_body_steps. ((((exists fs_h_pc_entry_le_sum_body_steps_summand. fs_h_pc_entry_le_sum_body_steps_summand + S (fs_a_pc_entry_le_sum_body_steps) = S ((S (fs_i_pc_entry_le_sum_body_steps)) * c)) /\ exists fs_q_pc_entry_le_sum_body_steps_summand. b = fs_q_pc_entry_le_sum_body_steps_summand * S ((S (fs_i_pc_entry_le_sum_body_steps)) * c) + (fs_a_pc_entry_le_sum_body_steps))) /\ ((((exists fs_h_pc_entry_le_sum_body_steps_partial. fs_h_pc_entry_le_sum_body_steps_partial + S (fs_r_pc_entry_le_sum_body_steps) = S ((S (fs_i_pc_entry_le_sum_body_steps)) * fs_v_pc_entry_le_sum)) /\ exists fs_q_pc_entry_le_sum_body_steps_partial. fs_u_pc_entry_le_sum = fs_q_pc_entry_le_sum_body_steps_partial * S ((S (fs_i_pc_entry_le_sum_body_steps)) * fs_v_pc_entry_le_sum) + (fs_r_pc_entry_le_sum_body_steps))) /\ ((((exists fs_h_pc_entry_le_sum_body_steps_successor. fs_h_pc_entry_le_sum_body_steps_successor + S (fs_s_pc_entry_le_sum_body_steps) = S ((S (S fs_i_pc_entry_le_sum_body_steps)) * fs_v_pc_entry_le_sum)) /\ exists fs_q_pc_entry_le_sum_body_steps_successor. fs_u_pc_entry_le_sum = fs_q_pc_entry_le_sum_body_steps_successor * S ((S (S fs_i_pc_entry_le_sum_body_steps)) * fs_v_pc_entry_le_sum) + (fs_s_pc_entry_le_sum_body_steps))) /\ fs_s_pc_entry_le_sum_body_steps = fs_r_pc_entry_le_sum_body_steps + fs_a_pc_entry_le_sum_body_steps)))))) -> (exists pc_lt_entry_le_index. pc_lt_entry_le_index + S (i) = (l)) -> (((exists fs_h_pc_entry_le_value. fs_h_pc_entry_le_value + S (a) = S ((S (i)) * c)) /\ exists fs_q_pc_entry_le_value. b = fs_q_pc_entry_le_value * S ((S (i)) * c) + (a))) -> (exists pc_le_entry_le_result. pc_le_entry_le_result + (a) = (n))Constructive proof overview
Generated structural guide
Every actual nonnegative summand is at most its actual finite sum.
The unchanged tactic script uses 9 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
lt_not_le Stable theorem; checked-use authorized zero_le Stable theorem; checked-use authorized beta_sum_succ_decompose Stable theorem; checked-use authorized le_eq_or_lt Stable theorem; checked-use authorized le_of_succ_le_succ 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 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–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
exfalso
04Use earlier factsL11–16
05Fix variables and assumptionsL17–22
06Establish hdL23–29
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 casesL30–33
08Establish hcL34–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
09Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
cases hc
10Calculate and transport equalitiesL43–44
11Establish heqL45–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–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
14Use earlier factsL66–69
15Calculate and transport equalitiesL70–70
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L70
rewrite hd_witness_witness_right_right
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 hs - 0008
intro hi - 0009
intro ha - 0010
exfalso - 0011
specialize lt_not_le i - 0012
specialize lt_not_le 0 - 0013
apply lt_not_le - 0014
exact hi - 0015
specialize zero_le i - 0016
apply zero_le - 0017
intro n - 0018
intro i - 0019
intro a - 0020
intro hs - 0021
intro hi - 0022
intro ha - 0023
have hd : exists v w. (((exists fs_h_pc_entry_le_last. fs_h_pc_entry_le_last + S (v) = S ((S (l)) * c)) /\ exists fs_q_pc_entry_le_last. b = fs_q_pc_entry_le_last * S ((S (l)) * c) + (v))) /\ ((exists fs_u_pc_entry_le_prefix fs_v_pc_entry_le_prefix. ((((exists fs_h_pc_entry_le_prefix_body_start. fs_h_pc_entry_le_prefix_body_start + S (0) = S ((S (0)) * fs_v_pc_entry_le_prefix)) /\ exists fs_q_pc_entry_le_prefix_body_start. fs_u_pc_entry_le_prefix = fs_q_pc_entry_le_prefix_body_start * S ((S (0)) * fs_v_pc_entry_le_prefix) + (0))) /\ ((((exists fs_h_pc_entry_le_prefix_body_terminal. fs_h_pc_entry_le_prefix_body_terminal + S (w) = S ((S (l)) * fs_v_pc_entry_le_prefix)) /\ exists fs_q_pc_entry_le_prefix_body_terminal. fs_u_pc_entry_le_prefix = fs_q_pc_entry_le_prefix_body_terminal * S ((S (l)) * fs_v_pc_entry_le_prefix) + (w))) /\ forall fs_i_pc_entry_le_prefix_body_steps. (exists fs_lt_pc_entry_le_prefix_body_steps_bound. fs_lt_pc_entry_le_prefix_body_steps_bound + S fs_i_pc_entry_le_prefix_body_steps = l) -> exists fs_a_pc_entry_le_prefix_body_steps fs_r_pc_entry_le_prefix_body_steps fs_s_pc_entry_le_prefix_body_steps. ((((exists fs_h_pc_entry_le_prefix_body_steps_summand. fs_h_pc_entry_le_prefix_body_steps_summand + S (fs_a_pc_entry_le_prefix_body_steps) = S ((S (fs_i_pc_entry_le_prefix_body_steps)) * c)) /\ exists fs_q_pc_entry_le_prefix_body_steps_summand. b = fs_q_pc_entry_le_prefix_body_steps_summand * S ((S (fs_i_pc_entry_le_prefix_body_steps)) * c) + (fs_a_pc_entry_le_prefix_body_steps))) /\ ((((exists fs_h_pc_entry_le_prefix_body_steps_partial. fs_h_pc_entry_le_prefix_body_steps_partial + S (fs_r_pc_entry_le_prefix_body_steps) = S ((S (fs_i_pc_entry_le_prefix_body_steps)) * fs_v_pc_entry_le_prefix)) /\ exists fs_q_pc_entry_le_prefix_body_steps_partial. fs_u_pc_entry_le_prefix = fs_q_pc_entry_le_prefix_body_steps_partial * S ((S (fs_i_pc_entry_le_prefix_body_steps)) * fs_v_pc_entry_le_prefix) + (fs_r_pc_entry_le_prefix_body_steps))) /\ ((((exists fs_h_pc_entry_le_prefix_body_steps_successor. fs_h_pc_entry_le_prefix_body_steps_successor + S (fs_s_pc_entry_le_prefix_body_steps) = S ((S (S fs_i_pc_entry_le_prefix_body_steps)) * fs_v_pc_entry_le_prefix)) /\ exists fs_q_pc_entry_le_prefix_body_steps_successor. fs_u_pc_entry_le_prefix = fs_q_pc_entry_le_prefix_body_steps_successor * S ((S (S fs_i_pc_entry_le_prefix_body_steps)) * fs_v_pc_entry_le_prefix) + (fs_s_pc_entry_le_prefix_body_steps))) /\ fs_s_pc_entry_le_prefix_body_steps = fs_r_pc_entry_le_prefix_body_steps + fs_a_pc_entry_le_prefix_body_steps)))))) /\ n = w + v) - 0024
specialize beta_sum_succ_decompose b - 0025
specialize beta_sum_succ_decompose c - 0026
specialize beta_sum_succ_decompose l - 0027
specialize beta_sum_succ_decompose n - 0028
apply beta_sum_succ_decompose - 0029
exact hs - 0030
cases hd - 0031
cases hd_witness - 0032
cases hd_witness_witness - 0033
cases hd_witness_witness_right - 0034
have hc : i = l \/ exists g. g + S i = l - 0035
specialize le_eq_or_lt i - 0036
specialize le_eq_or_lt l - 0037
apply le_eq_or_lt - 0038
specialize le_of_succ_le_succ i - 0039
specialize le_of_succ_le_succ l - 0040
apply le_of_succ_le_succ - 0041
exact hi - 0042
cases hc - 0043
rewrite hc_left at ha - 0044
rewrite hc_left at ha - 0045
have heq : 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 heq - 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
specialize le_trans a - 0060
specialize le_trans x1 - 0061
specialize le_trans n - 0062
apply le_trans - 0063
specialize IH x1 - 0064
specialize IH i - 0065
specialize IH a - 0066
apply IH - 0067
exact hd_witness_witness_right_left - 0068
exact hc_right - 0069
exact ha - 0070
rewrite hd_witness_witness_right_right - 0071
specialize le_add_right x1 - 0072
specialize le_add_right x - 0073
apply le_add_right