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 d e f g h t l n m q r. (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 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 ((m)) = 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) + ((m)))) /\ 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)) * (e))) /\ exists ff_q_fms_sum_summand. (d) = ff_q_fms_sum_summand * S ((S (ff_i_fms_sum)) * (e)) + (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 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 ((q)) = 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) + ((q)))) /\ 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)) * (g))) /\ exists ff_q_fms_sum_summand. (f) = ff_q_fms_sum_summand * S ((S (ff_i_fms_sum)) * (g)) + (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 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 ((r)) = 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) + ((r)))) /\ 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)) * (t))) /\ exists ff_q_fms_sum_summand. (h) = ff_q_fms_sum_summand * S ((S (ff_i_fms_sum)) * (t)) + (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)))))) -> (forall fms_i_balance fms_a_balance fms_v_balance fms_w_balance fms_z_balance. (exists fms_gap_balance. fms_gap_balance + S (fms_i_balance) = (l)) -> (((exists fs_h_fms_balance_a. fs_h_fms_balance_a + S (fms_a_balance) = S ((S (fms_i_balance)) * c)) /\ exists fs_q_fms_balance_a. b = fs_q_fms_balance_a * S ((S (fms_i_balance)) * c) + (fms_a_balance))) -> (((exists fs_h_fms_balance_b. fs_h_fms_balance_b + S (fms_v_balance) = S ((S (fms_i_balance)) * e)) /\ exists fs_q_fms_balance_b. d = fs_q_fms_balance_b * S ((S (fms_i_balance)) * e) + (fms_v_balance))) -> (((exists fs_h_fms_balance_c. fs_h_fms_balance_c + S (fms_w_balance) = S ((S (fms_i_balance)) * g)) /\ exists fs_q_fms_balance_c. f = fs_q_fms_balance_c * S ((S (fms_i_balance)) * g) + (fms_w_balance))) -> (((exists fs_h_fms_balance_d. fs_h_fms_balance_d + S (fms_z_balance) = S ((S (fms_i_balance)) * t)) /\ exists fs_q_fms_balance_d. h = fs_q_fms_balance_d * S ((S (fms_i_balance)) * t) + (fms_z_balance))) -> fms_a_balance+fms_v_balance=fms_w_balance+fms_z_balance) -> n+m=q+rConstructive proof overview
Generated structural guide
A pointwise four-prefix balance gives the exact corresponding balance of all four finite sums.
The unchanged tactic script uses 6 declared prerequisites and contains 156 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_sum_zero Stable theorem; checked-use authorized beta_sum_succ_decompose Stable theorem; checked-use authorized le_succ Stable theorem; checked-use authorized le_refl Stable theorem; checked-use authorized add_assoc Stable theorem; checked-use authorized add_comm 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–8
02Induction on lL9–18
03Establish hzero_nL19–24
04Establish hzero_mL25–30
05Establish hzero_qL31–36
06Establish hzero_rL37–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum zero.
07Calculate and transport equalitiesL47–47
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L47
refl
08Fix variables and assumptionsL48–56
09Establish hdAL57–63
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
10Separate the logical casesL64–67
11Establish hdBL68–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
12Separate the logical casesL75–78
13Establish hdCL79–85
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
14Separate the logical casesL86–89
15Establish hdDL90–96
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
16Separate the logical casesL97–100
17Establish hprefixL101–110
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
18Fix variables and assumptionsL111–120
19Use earlier factsL121–130
Instantiate or apply named facts and discharge the corresponding proof obligations.
20Use earlier factsL131–134
21Establish hlastL135–144
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hbalance.
22Use earlier factsL145–147
23Calculate and transport equalitiesL148–156
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
Original exact command ledger · 156 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro f - 0006
intro g - 0007
intro h - 0008
intro t - 0009
induction l - 0010
intro n - 0011
intro m - 0012
intro q - 0013
intro r - 0014
intro hn - 0015
intro hm - 0016
intro hq - 0017
intro hr - 0018
intro hbalance - 0019
have hzero_n : n=0 - 0020
specialize beta_sum_zero b - 0021
specialize beta_sum_zero c - 0022
specialize beta_sum_zero n - 0023
apply beta_sum_zero - 0024
exact hn - 0025
have hzero_m : m=0 - 0026
specialize beta_sum_zero d - 0027
specialize beta_sum_zero e - 0028
specialize beta_sum_zero m - 0029
apply beta_sum_zero - 0030
exact hm - 0031
have hzero_q : q=0 - 0032
specialize beta_sum_zero f - 0033
specialize beta_sum_zero g - 0034
specialize beta_sum_zero q - 0035
apply beta_sum_zero - 0036
exact hq - 0037
have hzero_r : r=0 - 0038
specialize beta_sum_zero h - 0039
specialize beta_sum_zero t - 0040
specialize beta_sum_zero r - 0041
apply beta_sum_zero - 0042
exact hr - 0043
rewrite hzero_n - 0044
rewrite hzero_m - 0045
rewrite hzero_q - 0046
rewrite hzero_r - 0047
refl - 0048
intro n - 0049
intro m - 0050
intro q - 0051
intro r - 0052
intro hn - 0053
intro hm - 0054
intro hq - 0055
intro hr - 0056
intro hbalance - 0057
have hdA : exists fms_term_hdA fms_sum_hdA. (((exists fs_h_fms_hdA. fs_h_fms_hdA + S (fms_term_hdA) = S ((S (l)) * c)) /\ exists fs_q_fms_hdA. b = fs_q_fms_hdA * S ((S (l)) * c) + (fms_term_hdA))) /\ ((exists ff_u_fms_hdA ff_v_fms_hdA. ((((exists ff_h_fms_hdA_start. ff_h_fms_hdA_start + S (0) = S ((S (0)) * ff_v_fms_hdA)) /\ exists ff_q_fms_hdA_start. ff_u_fms_hdA = ff_q_fms_hdA_start * S ((S (0)) * ff_v_fms_hdA) + (0))) /\ ((((exists ff_h_fms_hdA_terminal. ff_h_fms_hdA_terminal + S ((fms_sum_hdA)) = S ((S ((l))) * ff_v_fms_hdA)) /\ exists ff_q_fms_hdA_terminal. ff_u_fms_hdA = ff_q_fms_hdA_terminal * S ((S ((l))) * ff_v_fms_hdA) + ((fms_sum_hdA)))) /\ forall ff_i_fms_hdA. (exists ff_lt_fms_hdA_bound. ff_lt_fms_hdA_bound + S ff_i_fms_hdA = (l)) -> exists ff_a_fms_hdA ff_r_fms_hdA ff_s_fms_hdA. ((((exists ff_h_fms_hdA_summand. ff_h_fms_hdA_summand + S (ff_a_fms_hdA) = S ((S (ff_i_fms_hdA)) * (c))) /\ exists ff_q_fms_hdA_summand. (b) = ff_q_fms_hdA_summand * S ((S (ff_i_fms_hdA)) * (c)) + (ff_a_fms_hdA))) /\ ((((exists ff_h_fms_hdA_partial. ff_h_fms_hdA_partial + S (ff_r_fms_hdA) = S ((S (ff_i_fms_hdA)) * ff_v_fms_hdA)) /\ exists ff_q_fms_hdA_partial. ff_u_fms_hdA = ff_q_fms_hdA_partial * S ((S (ff_i_fms_hdA)) * ff_v_fms_hdA) + (ff_r_fms_hdA))) /\ ((((exists ff_h_fms_hdA_successor. ff_h_fms_hdA_successor + S (ff_s_fms_hdA) = S ((S (S ff_i_fms_hdA)) * ff_v_fms_hdA)) /\ exists ff_q_fms_hdA_successor. ff_u_fms_hdA = ff_q_fms_hdA_successor * S ((S (S ff_i_fms_hdA)) * ff_v_fms_hdA) + (ff_s_fms_hdA))) /\ ff_s_fms_hdA = ff_r_fms_hdA + ff_a_fms_hdA)))))) /\ n=fms_sum_hdA+fms_term_hdA) - 0058
specialize beta_sum_succ_decompose b - 0059
specialize beta_sum_succ_decompose c - 0060
specialize beta_sum_succ_decompose l - 0061
specialize beta_sum_succ_decompose n - 0062
apply beta_sum_succ_decompose - 0063
exact hn - 0064
cases hdA - 0065
cases hdA_witness - 0066
cases hdA_witness_witness - 0067
cases hdA_witness_witness_right - 0068
have hdB : exists fms_term_hdB fms_sum_hdB. (((exists fs_h_fms_hdB. fs_h_fms_hdB + S (fms_term_hdB) = S ((S (l)) * e)) /\ exists fs_q_fms_hdB. d = fs_q_fms_hdB * S ((S (l)) * e) + (fms_term_hdB))) /\ ((exists ff_u_fms_hdB ff_v_fms_hdB. ((((exists ff_h_fms_hdB_start. ff_h_fms_hdB_start + S (0) = S ((S (0)) * ff_v_fms_hdB)) /\ exists ff_q_fms_hdB_start. ff_u_fms_hdB = ff_q_fms_hdB_start * S ((S (0)) * ff_v_fms_hdB) + (0))) /\ ((((exists ff_h_fms_hdB_terminal. ff_h_fms_hdB_terminal + S ((fms_sum_hdB)) = S ((S ((l))) * ff_v_fms_hdB)) /\ exists ff_q_fms_hdB_terminal. ff_u_fms_hdB = ff_q_fms_hdB_terminal * S ((S ((l))) * ff_v_fms_hdB) + ((fms_sum_hdB)))) /\ forall ff_i_fms_hdB. (exists ff_lt_fms_hdB_bound. ff_lt_fms_hdB_bound + S ff_i_fms_hdB = (l)) -> exists ff_a_fms_hdB ff_r_fms_hdB ff_s_fms_hdB. ((((exists ff_h_fms_hdB_summand. ff_h_fms_hdB_summand + S (ff_a_fms_hdB) = S ((S (ff_i_fms_hdB)) * (e))) /\ exists ff_q_fms_hdB_summand. (d) = ff_q_fms_hdB_summand * S ((S (ff_i_fms_hdB)) * (e)) + (ff_a_fms_hdB))) /\ ((((exists ff_h_fms_hdB_partial. ff_h_fms_hdB_partial + S (ff_r_fms_hdB) = S ((S (ff_i_fms_hdB)) * ff_v_fms_hdB)) /\ exists ff_q_fms_hdB_partial. ff_u_fms_hdB = ff_q_fms_hdB_partial * S ((S (ff_i_fms_hdB)) * ff_v_fms_hdB) + (ff_r_fms_hdB))) /\ ((((exists ff_h_fms_hdB_successor. ff_h_fms_hdB_successor + S (ff_s_fms_hdB) = S ((S (S ff_i_fms_hdB)) * ff_v_fms_hdB)) /\ exists ff_q_fms_hdB_successor. ff_u_fms_hdB = ff_q_fms_hdB_successor * S ((S (S ff_i_fms_hdB)) * ff_v_fms_hdB) + (ff_s_fms_hdB))) /\ ff_s_fms_hdB = ff_r_fms_hdB + ff_a_fms_hdB)))))) /\ m=fms_sum_hdB+fms_term_hdB) - 0069
specialize beta_sum_succ_decompose d - 0070
specialize beta_sum_succ_decompose e - 0071
specialize beta_sum_succ_decompose l - 0072
specialize beta_sum_succ_decompose m - 0073
apply beta_sum_succ_decompose - 0074
exact hm - 0075
cases hdB - 0076
cases hdB_witness - 0077
cases hdB_witness_witness - 0078
cases hdB_witness_witness_right - 0079
have hdC : exists fms_term_hdC fms_sum_hdC. (((exists fs_h_fms_hdC. fs_h_fms_hdC + S (fms_term_hdC) = S ((S (l)) * g)) /\ exists fs_q_fms_hdC. f = fs_q_fms_hdC * S ((S (l)) * g) + (fms_term_hdC))) /\ ((exists ff_u_fms_hdC ff_v_fms_hdC. ((((exists ff_h_fms_hdC_start. ff_h_fms_hdC_start + S (0) = S ((S (0)) * ff_v_fms_hdC)) /\ exists ff_q_fms_hdC_start. ff_u_fms_hdC = ff_q_fms_hdC_start * S ((S (0)) * ff_v_fms_hdC) + (0))) /\ ((((exists ff_h_fms_hdC_terminal. ff_h_fms_hdC_terminal + S ((fms_sum_hdC)) = S ((S ((l))) * ff_v_fms_hdC)) /\ exists ff_q_fms_hdC_terminal. ff_u_fms_hdC = ff_q_fms_hdC_terminal * S ((S ((l))) * ff_v_fms_hdC) + ((fms_sum_hdC)))) /\ forall ff_i_fms_hdC. (exists ff_lt_fms_hdC_bound. ff_lt_fms_hdC_bound + S ff_i_fms_hdC = (l)) -> exists ff_a_fms_hdC ff_r_fms_hdC ff_s_fms_hdC. ((((exists ff_h_fms_hdC_summand. ff_h_fms_hdC_summand + S (ff_a_fms_hdC) = S ((S (ff_i_fms_hdC)) * (g))) /\ exists ff_q_fms_hdC_summand. (f) = ff_q_fms_hdC_summand * S ((S (ff_i_fms_hdC)) * (g)) + (ff_a_fms_hdC))) /\ ((((exists ff_h_fms_hdC_partial. ff_h_fms_hdC_partial + S (ff_r_fms_hdC) = S ((S (ff_i_fms_hdC)) * ff_v_fms_hdC)) /\ exists ff_q_fms_hdC_partial. ff_u_fms_hdC = ff_q_fms_hdC_partial * S ((S (ff_i_fms_hdC)) * ff_v_fms_hdC) + (ff_r_fms_hdC))) /\ ((((exists ff_h_fms_hdC_successor. ff_h_fms_hdC_successor + S (ff_s_fms_hdC) = S ((S (S ff_i_fms_hdC)) * ff_v_fms_hdC)) /\ exists ff_q_fms_hdC_successor. ff_u_fms_hdC = ff_q_fms_hdC_successor * S ((S (S ff_i_fms_hdC)) * ff_v_fms_hdC) + (ff_s_fms_hdC))) /\ ff_s_fms_hdC = ff_r_fms_hdC + ff_a_fms_hdC)))))) /\ q=fms_sum_hdC+fms_term_hdC) - 0080
specialize beta_sum_succ_decompose f - 0081
specialize beta_sum_succ_decompose g - 0082
specialize beta_sum_succ_decompose l - 0083
specialize beta_sum_succ_decompose q - 0084
apply beta_sum_succ_decompose - 0085
exact hq - 0086
cases hdC - 0087
cases hdC_witness - 0088
cases hdC_witness_witness - 0089
cases hdC_witness_witness_right - 0090
have hdD : exists fms_term_hdD fms_sum_hdD. (((exists fs_h_fms_hdD. fs_h_fms_hdD + S (fms_term_hdD) = S ((S (l)) * t)) /\ exists fs_q_fms_hdD. h = fs_q_fms_hdD * S ((S (l)) * t) + (fms_term_hdD))) /\ ((exists ff_u_fms_hdD ff_v_fms_hdD. ((((exists ff_h_fms_hdD_start. ff_h_fms_hdD_start + S (0) = S ((S (0)) * ff_v_fms_hdD)) /\ exists ff_q_fms_hdD_start. ff_u_fms_hdD = ff_q_fms_hdD_start * S ((S (0)) * ff_v_fms_hdD) + (0))) /\ ((((exists ff_h_fms_hdD_terminal. ff_h_fms_hdD_terminal + S ((fms_sum_hdD)) = S ((S ((l))) * ff_v_fms_hdD)) /\ exists ff_q_fms_hdD_terminal. ff_u_fms_hdD = ff_q_fms_hdD_terminal * S ((S ((l))) * ff_v_fms_hdD) + ((fms_sum_hdD)))) /\ forall ff_i_fms_hdD. (exists ff_lt_fms_hdD_bound. ff_lt_fms_hdD_bound + S ff_i_fms_hdD = (l)) -> exists ff_a_fms_hdD ff_r_fms_hdD ff_s_fms_hdD. ((((exists ff_h_fms_hdD_summand. ff_h_fms_hdD_summand + S (ff_a_fms_hdD) = S ((S (ff_i_fms_hdD)) * (t))) /\ exists ff_q_fms_hdD_summand. (h) = ff_q_fms_hdD_summand * S ((S (ff_i_fms_hdD)) * (t)) + (ff_a_fms_hdD))) /\ ((((exists ff_h_fms_hdD_partial. ff_h_fms_hdD_partial + S (ff_r_fms_hdD) = S ((S (ff_i_fms_hdD)) * ff_v_fms_hdD)) /\ exists ff_q_fms_hdD_partial. ff_u_fms_hdD = ff_q_fms_hdD_partial * S ((S (ff_i_fms_hdD)) * ff_v_fms_hdD) + (ff_r_fms_hdD))) /\ ((((exists ff_h_fms_hdD_successor. ff_h_fms_hdD_successor + S (ff_s_fms_hdD) = S ((S (S ff_i_fms_hdD)) * ff_v_fms_hdD)) /\ exists ff_q_fms_hdD_successor. ff_u_fms_hdD = ff_q_fms_hdD_successor * S ((S (S ff_i_fms_hdD)) * ff_v_fms_hdD) + (ff_s_fms_hdD))) /\ ff_s_fms_hdD = ff_r_fms_hdD + ff_a_fms_hdD)))))) /\ r=fms_sum_hdD+fms_term_hdD) - 0091
specialize beta_sum_succ_decompose h - 0092
specialize beta_sum_succ_decompose t - 0093
specialize beta_sum_succ_decompose l - 0094
specialize beta_sum_succ_decompose r - 0095
apply beta_sum_succ_decompose - 0096
exact hr - 0097
cases hdD - 0098
cases hdD_witness - 0099
cases hdD_witness_witness - 0100
cases hdD_witness_witness_right - 0101
have hprefix : x1+x3=x5+x7 - 0102
specialize IH x1 - 0103
specialize IH x3 - 0104
specialize IH x5 - 0105
specialize IH x7 - 0106
apply IH - 0107
exact hdA_witness_witness_right_left - 0108
exact hdB_witness_witness_right_left - 0109
exact hdC_witness_witness_right_left - 0110
exact hdD_witness_witness_right_left - 0111
intro i - 0112
intro a - 0113
intro v - 0114
intro w - 0115
intro z - 0116
intro hi - 0117
intro ha - 0118
intro hv - 0119
intro hw - 0120
intro hz - 0121
specialize hbalance i - 0122
specialize hbalance a - 0123
specialize hbalance v - 0124
specialize hbalance w - 0125
specialize hbalance z - 0126
apply hbalance - 0127
specialize le_succ S i - 0128
specialize le_succ l - 0129
apply le_succ - 0130
exact hi - 0131
exact ha - 0132
exact hv - 0133
exact hw - 0134
exact hz - 0135
have hlast : x+x2=x4+x6 - 0136
specialize hbalance l - 0137
specialize hbalance x - 0138
specialize hbalance x2 - 0139
specialize hbalance x4 - 0140
specialize hbalance x6 - 0141
apply hbalance - 0142
specialize le_refl S l - 0143
apply le_refl - 0144
exact hdA_witness_witness_left - 0145
exact hdB_witness_witness_left - 0146
exact hdC_witness_witness_left - 0147
exact hdD_witness_witness_left - 0148
rewrite hdA_witness_witness_right_right - 0149
rewrite hdB_witness_witness_right_right - 0150
rewrite hdC_witness_witness_right_right - 0151
rewrite hdD_witness_witness_right_right - 0152
trans (x1+x3)+(x+x2) - 0153
simp [add_assoc, add_comm] - 0154
rewrite hprefix - 0155
rewrite hlast - 0156
simp [add_assoc, add_comm]