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 expanded first-order arithmetic statement
forall b c B C L t n m. (forall mdr_i_pfp_sum_tail_equal mdr_a_pfp_sum_tail_equal. (exists mdr_gap_pfp_sum_tail_equalb. mdr_gap_pfp_sum_tail_equalb + S (mdr_i_pfp_sum_tail_equal) = (L)) -> (((exists ff_h_mdr_pfp_sum_tail_equalo. ff_h_mdr_pfp_sum_tail_equalo + S (mdr_a_pfp_sum_tail_equal) = S ((S (mdr_i_pfp_sum_tail_equal)) * c)) /\ exists ff_q_mdr_pfp_sum_tail_equalo. b = ff_q_mdr_pfp_sum_tail_equalo * S ((S (mdr_i_pfp_sum_tail_equal)) * c) + (mdr_a_pfp_sum_tail_equal))) -> (((exists ff_h_mdr_pfp_sum_tail_equaln. ff_h_mdr_pfp_sum_tail_equaln + S (mdr_a_pfp_sum_tail_equal) = S ((S (mdr_i_pfp_sum_tail_equal)) * C)) /\ exists ff_q_mdr_pfp_sum_tail_equaln. B = ff_q_mdr_pfp_sum_tail_equaln * S ((S (mdr_i_pfp_sum_tail_equal)) * C) + (mdr_a_pfp_sum_tail_equal)))) -> (forall pfpad_tail_index_sum_tail_zero. (exists pfa_gap_sum_tail_zerobound. pfa_gap_sum_tail_zerobound + S (pfpad_tail_index_sum_tail_zero) = (t)) -> (((exists ff_h_pfp_sum_tail_zerozero. ff_h_pfp_sum_tail_zerozero + S (0) = S ((S ((L)+pfpad_tail_index_sum_tail_zero)) * C)) /\ exists ff_q_pfp_sum_tail_zerozero. B = ff_q_pfp_sum_tail_zerozero * S ((S ((L)+pfpad_tail_index_sum_tail_zero)) * C) + (0)))) -> (exists fs_u_pfc_sum_tail_original fs_v_pfc_sum_tail_original. ((((exists fs_h_pfc_sum_tail_original_body_start. fs_h_pfc_sum_tail_original_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_tail_original)) /\ exists fs_q_pfc_sum_tail_original_body_start. fs_u_pfc_sum_tail_original = fs_q_pfc_sum_tail_original_body_start * S ((S (0)) * fs_v_pfc_sum_tail_original) + (0))) /\ ((((exists fs_h_pfc_sum_tail_original_body_terminal. fs_h_pfc_sum_tail_original_body_terminal + S (n) = S ((S (L)) * fs_v_pfc_sum_tail_original)) /\ exists fs_q_pfc_sum_tail_original_body_terminal. fs_u_pfc_sum_tail_original = fs_q_pfc_sum_tail_original_body_terminal * S ((S (L)) * fs_v_pfc_sum_tail_original) + (n))) /\ forall fs_i_pfc_sum_tail_original_body_steps. (exists fs_lt_pfc_sum_tail_original_body_steps_bound. fs_lt_pfc_sum_tail_original_body_steps_bound + S fs_i_pfc_sum_tail_original_body_steps = L) -> exists fs_a_pfc_sum_tail_original_body_steps fs_r_pfc_sum_tail_original_body_steps fs_s_pfc_sum_tail_original_body_steps. ((((exists fs_h_pfc_sum_tail_original_body_steps_summand. fs_h_pfc_sum_tail_original_body_steps_summand + S (fs_a_pfc_sum_tail_original_body_steps) = S ((S (fs_i_pfc_sum_tail_original_body_steps)) * c)) /\ exists fs_q_pfc_sum_tail_original_body_steps_summand. b = fs_q_pfc_sum_tail_original_body_steps_summand * S ((S (fs_i_pfc_sum_tail_original_body_steps)) * c) + (fs_a_pfc_sum_tail_original_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_original_body_steps_partial. fs_h_pfc_sum_tail_original_body_steps_partial + S (fs_r_pfc_sum_tail_original_body_steps) = S ((S (fs_i_pfc_sum_tail_original_body_steps)) * fs_v_pfc_sum_tail_original)) /\ exists fs_q_pfc_sum_tail_original_body_steps_partial. fs_u_pfc_sum_tail_original = fs_q_pfc_sum_tail_original_body_steps_partial * S ((S (fs_i_pfc_sum_tail_original_body_steps)) * fs_v_pfc_sum_tail_original) + (fs_r_pfc_sum_tail_original_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_original_body_steps_successor. fs_h_pfc_sum_tail_original_body_steps_successor + S (fs_s_pfc_sum_tail_original_body_steps) = S ((S (S fs_i_pfc_sum_tail_original_body_steps)) * fs_v_pfc_sum_tail_original)) /\ exists fs_q_pfc_sum_tail_original_body_steps_successor. fs_u_pfc_sum_tail_original = fs_q_pfc_sum_tail_original_body_steps_successor * S ((S (S fs_i_pfc_sum_tail_original_body_steps)) * fs_v_pfc_sum_tail_original) + (fs_s_pfc_sum_tail_original_body_steps))) /\ fs_s_pfc_sum_tail_original_body_steps = fs_r_pfc_sum_tail_original_body_steps + fs_a_pfc_sum_tail_original_body_steps)))))) -> (exists fs_u_pfc_sum_tail_actual fs_v_pfc_sum_tail_actual. ((((exists fs_h_pfc_sum_tail_actual_body_start. fs_h_pfc_sum_tail_actual_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_tail_actual)) /\ exists fs_q_pfc_sum_tail_actual_body_start. fs_u_pfc_sum_tail_actual = fs_q_pfc_sum_tail_actual_body_start * S ((S (0)) * fs_v_pfc_sum_tail_actual) + (0))) /\ ((((exists fs_h_pfc_sum_tail_actual_body_terminal. fs_h_pfc_sum_tail_actual_body_terminal + S (m) = S ((S (L+t)) * fs_v_pfc_sum_tail_actual)) /\ exists fs_q_pfc_sum_tail_actual_body_terminal. fs_u_pfc_sum_tail_actual = fs_q_pfc_sum_tail_actual_body_terminal * S ((S (L+t)) * fs_v_pfc_sum_tail_actual) + (m))) /\ forall fs_i_pfc_sum_tail_actual_body_steps. (exists fs_lt_pfc_sum_tail_actual_body_steps_bound. fs_lt_pfc_sum_tail_actual_body_steps_bound + S fs_i_pfc_sum_tail_actual_body_steps = L+t) -> exists fs_a_pfc_sum_tail_actual_body_steps fs_r_pfc_sum_tail_actual_body_steps fs_s_pfc_sum_tail_actual_body_steps. ((((exists fs_h_pfc_sum_tail_actual_body_steps_summand. fs_h_pfc_sum_tail_actual_body_steps_summand + S (fs_a_pfc_sum_tail_actual_body_steps) = S ((S (fs_i_pfc_sum_tail_actual_body_steps)) * C)) /\ exists fs_q_pfc_sum_tail_actual_body_steps_summand. B = fs_q_pfc_sum_tail_actual_body_steps_summand * S ((S (fs_i_pfc_sum_tail_actual_body_steps)) * C) + (fs_a_pfc_sum_tail_actual_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_actual_body_steps_partial. fs_h_pfc_sum_tail_actual_body_steps_partial + S (fs_r_pfc_sum_tail_actual_body_steps) = S ((S (fs_i_pfc_sum_tail_actual_body_steps)) * fs_v_pfc_sum_tail_actual)) /\ exists fs_q_pfc_sum_tail_actual_body_steps_partial. fs_u_pfc_sum_tail_actual = fs_q_pfc_sum_tail_actual_body_steps_partial * S ((S (fs_i_pfc_sum_tail_actual_body_steps)) * fs_v_pfc_sum_tail_actual) + (fs_r_pfc_sum_tail_actual_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_actual_body_steps_successor. fs_h_pfc_sum_tail_actual_body_steps_successor + S (fs_s_pfc_sum_tail_actual_body_steps) = S ((S (S fs_i_pfc_sum_tail_actual_body_steps)) * fs_v_pfc_sum_tail_actual)) /\ exists fs_q_pfc_sum_tail_actual_body_steps_successor. fs_u_pfc_sum_tail_actual = fs_q_pfc_sum_tail_actual_body_steps_successor * S ((S (S fs_i_pfc_sum_tail_actual_body_steps)) * fs_v_pfc_sum_tail_actual) + (fs_s_pfc_sum_tail_actual_body_steps))) /\ fs_s_pfc_sum_tail_actual_body_steps = fs_r_pfc_sum_tail_actual_body_steps + fs_a_pfc_sum_tail_actual_body_steps)))))) -> (m=n)Constructive proof overview
Generated structural guide
Appending a genuinely all-zero tail to an independently recoded natural summand prefix preserves its actual sum.
The unchanged tactic script uses 6 declared prerequisites and contains 88 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_sum_functional Alpha theorem; checked-use authorized beta_sum_transport_prefix Alpha theorem; checked-use authorized beta_sum_succ_decompose Alpha theorem; checked-use authorized le_succ Alpha theorem; checked-use authorized beta_at_unique Alpha theorem; checked-use authorized le_refl 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
02Induction on tL6–12
03Establish hlengthL13–22
Establish this local claim before using it. It is not an additional assumption.
04Use earlier factsL23–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
apply beta_sum_functional - L24
exact ht - L25
specialize beta_sum_transport_prefix (b) - L26
specialize beta_sum_transport_prefix (c) - L27
specialize beta_sum_transport_prefix (B) - L28
specialize beta_sum_transport_prefix (C) - L29
specialize beta_sum_transport_prefix (L) - L30
specialize beta_sum_transport_prefix (n) - L31
apply beta_sum_transport_prefix - L32
exact hs
05Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact he
06Fix variables and assumptionsL34–39
07Establish hlengthL40–44
08Establish hdL45–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
09Separate the logical casesL52–55
10Establish hprefixL56–65
11Use earlier factsL66–70
12Establish hzeroL71–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
13Use earlier factsL81–82
14Calculate and transport equalitiesL83–83
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L83
trans x1+x
15Use earlier factsL84–84
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L84
exact hd_witness_witness_right_right
16Calculate and transport equalitiesL85–87
17Use earlier factsL88–88
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L88
exact hprefix
Original exact command ledger · 88 lines
- 0001
intro b - 0002
intro c - 0003
intro B - 0004
intro C - 0005
intro L - 0006
induction t - 0007
intro n - 0008
intro m - 0009
intro he - 0010
intro hz - 0011
intro hs - 0012
intro ht - 0013
have hlength : L+0=L - 0014
simp - 0015
rewrite hlength at ht - 0016
rewrite hlength at ht - 0017
rewrite hlength at ht - 0018
specialize beta_sum_functional (B) - 0019
specialize beta_sum_functional (C) - 0020
specialize beta_sum_functional (L) - 0021
specialize beta_sum_functional (m) - 0022
specialize beta_sum_functional (n) - 0023
apply beta_sum_functional - 0024
exact ht - 0025
specialize beta_sum_transport_prefix (b) - 0026
specialize beta_sum_transport_prefix (c) - 0027
specialize beta_sum_transport_prefix (B) - 0028
specialize beta_sum_transport_prefix (C) - 0029
specialize beta_sum_transport_prefix (L) - 0030
specialize beta_sum_transport_prefix (n) - 0031
apply beta_sum_transport_prefix - 0032
exact hs - 0033
exact he - 0034
intro n - 0035
intro m - 0036
intro he - 0037
intro hz - 0038
intro hs - 0039
intro ht - 0040
have hlength : L+S t=S (L+t) - 0041
simp - 0042
rewrite hlength at ht - 0043
rewrite hlength at ht - 0044
rewrite hlength at ht - 0045
have hd : exists a u. ((((exists ff_h_pfp_sum_tail_decompositionentry. ff_h_pfp_sum_tail_decompositionentry + S (a) = S ((S (L+t)) * C)) /\ exists ff_q_pfp_sum_tail_decompositionentry. B = ff_q_pfp_sum_tail_decompositionentry * S ((S (L+t)) * C) + (a))) /\ (((exists fs_u_pfc_sum_tail_decompositionprefix fs_v_pfc_sum_tail_decompositionprefix. ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_start. fs_h_pfc_sum_tail_decompositionprefix_body_start + S (0) = S ((S (0)) * fs_v_pfc_sum_tail_decompositionprefix)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_start. fs_u_pfc_sum_tail_decompositionprefix = fs_q_pfc_sum_tail_decompositionprefix_body_start * S ((S (0)) * fs_v_pfc_sum_tail_decompositionprefix) + (0))) /\ ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_terminal. fs_h_pfc_sum_tail_decompositionprefix_body_terminal + S (u) = S ((S (L+t)) * fs_v_pfc_sum_tail_decompositionprefix)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_terminal. fs_u_pfc_sum_tail_decompositionprefix = fs_q_pfc_sum_tail_decompositionprefix_body_terminal * S ((S (L+t)) * fs_v_pfc_sum_tail_decompositionprefix) + (u))) /\ forall fs_i_pfc_sum_tail_decompositionprefix_body_steps. (exists fs_lt_pfc_sum_tail_decompositionprefix_body_steps_bound. fs_lt_pfc_sum_tail_decompositionprefix_body_steps_bound + S fs_i_pfc_sum_tail_decompositionprefix_body_steps = L+t) -> exists fs_a_pfc_sum_tail_decompositionprefix_body_steps fs_r_pfc_sum_tail_decompositionprefix_body_steps fs_s_pfc_sum_tail_decompositionprefix_body_steps. ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_steps_summand. fs_h_pfc_sum_tail_decompositionprefix_body_steps_summand + S (fs_a_pfc_sum_tail_decompositionprefix_body_steps) = S ((S (fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * C)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_steps_summand. B = fs_q_pfc_sum_tail_decompositionprefix_body_steps_summand * S ((S (fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * C) + (fs_a_pfc_sum_tail_decompositionprefix_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_steps_partial. fs_h_pfc_sum_tail_decompositionprefix_body_steps_partial + S (fs_r_pfc_sum_tail_decompositionprefix_body_steps) = S ((S (fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * fs_v_pfc_sum_tail_decompositionprefix)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_steps_partial. fs_u_pfc_sum_tail_decompositionprefix = fs_q_pfc_sum_tail_decompositionprefix_body_steps_partial * S ((S (fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * fs_v_pfc_sum_tail_decompositionprefix) + (fs_r_pfc_sum_tail_decompositionprefix_body_steps))) /\ ((((exists fs_h_pfc_sum_tail_decompositionprefix_body_steps_successor. fs_h_pfc_sum_tail_decompositionprefix_body_steps_successor + S (fs_s_pfc_sum_tail_decompositionprefix_body_steps) = S ((S (S fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * fs_v_pfc_sum_tail_decompositionprefix)) /\ exists fs_q_pfc_sum_tail_decompositionprefix_body_steps_successor. fs_u_pfc_sum_tail_decompositionprefix = fs_q_pfc_sum_tail_decompositionprefix_body_steps_successor * S ((S (S fs_i_pfc_sum_tail_decompositionprefix_body_steps)) * fs_v_pfc_sum_tail_decompositionprefix) + (fs_s_pfc_sum_tail_decompositionprefix_body_steps))) /\ fs_s_pfc_sum_tail_decompositionprefix_body_steps = fs_r_pfc_sum_tail_decompositionprefix_body_steps + fs_a_pfc_sum_tail_decompositionprefix_body_steps)))))) /\ (((m)=u+a))))) - 0046
specialize beta_sum_succ_decompose (B) - 0047
specialize beta_sum_succ_decompose (C) - 0048
specialize beta_sum_succ_decompose (L+t) - 0049
specialize beta_sum_succ_decompose (m) - 0050
apply beta_sum_succ_decompose - 0051
exact ht - 0052
cases hd - 0053
cases hd_witness - 0054
cases hd_witness_witness - 0055
cases hd_witness_witness_right - 0056
have hprefix : x1=n - 0057
specialize IH (n) - 0058
specialize IH (x1) - 0059
apply IH - 0060
exact he - 0061
intro i - 0062
intro hi - 0063
specialize hz (i) - 0064
apply hz - 0065
specialize le_succ (S i) - 0066
specialize le_succ (t) - 0067
apply le_succ - 0068
exact hi - 0069
exact hs - 0070
exact hd_witness_witness_right_left - 0071
have hzero : x=0 - 0072
specialize beta_at_unique (B) - 0073
specialize beta_at_unique (C) - 0074
specialize beta_at_unique (L+t) - 0075
specialize beta_at_unique (x) - 0076
specialize beta_at_unique (0) - 0077
apply beta_at_unique - 0078
exact hd_witness_witness_left - 0079
specialize hz (t) - 0080
apply hz - 0081
specialize le_refl (S t) - 0082
apply le_refl - 0083
trans x1+x - 0084
exact hd_witness_witness_right_right - 0085
trans x1 - 0086
rewrite hzero - 0087
simp - 0088
exact hprefix