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 k kb kc ab ac L i a db dc n. (((exists ff_h_pfp_left_constant_sum_K. ff_h_pfp_left_constant_sum_K + S (k) = S ((S (0)) * kc)) /\ exists ff_q_pfp_left_constant_sum_K. kb = ff_q_pfp_left_constant_sum_K * S ((S (0)) * kc) + (k))) -> (exists pfa_gap_left_constant_sum_index. pfa_gap_left_constant_sum_index + S (i) = (L)) -> (((exists ff_h_pfp_left_constant_sum_A. ff_h_pfp_left_constant_sum_A + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_left_constant_sum_A. ab = ff_q_pfp_left_constant_sum_A * S ((S (i)) * ac) + (a))) -> (forall pfc_index_left_constant_sum_diagonal. (exists pfa_gap_left_constant_sum_diagonalbound. pfa_gap_left_constant_sum_diagonalbound + S (pfc_index_left_constant_sum_diagonal) = (S i)) -> exists pfc_value_left_constant_sum_diagonal. ((((exists ff_h_pfp_left_constant_sum_diagonalentry. ff_h_pfp_left_constant_sum_diagonalentry + S (pfc_value_left_constant_sum_diagonal) = S ((S (pfc_index_left_constant_sum_diagonal)) * dc)) /\ exists ff_q_pfp_left_constant_sum_diagonalentry. db = ff_q_pfp_left_constant_sum_diagonalentry * S ((S (pfc_index_left_constant_sum_diagonal)) * dc) + (pfc_value_left_constant_sum_diagonal))) /\ ((exists pfc_complement_left_constant_sum_diagonalterm pfc_left_left_constant_sum_diagonalterm pfc_right_left_constant_sum_diagonalterm. (((pfc_index_left_constant_sum_diagonal)+pfc_complement_left_constant_sum_diagonalterm=(i)) /\ ((((((exists pfa_gap_left_constant_sum_diagonaltermleftinside. pfa_gap_left_constant_sum_diagonaltermleftinside + S (pfc_index_left_constant_sum_diagonal) = (1)) /\ ((((exists ff_h_pfp_left_constant_sum_diagonaltermleftentry. ff_h_pfp_left_constant_sum_diagonaltermleftentry + S (pfc_left_left_constant_sum_diagonalterm) = S ((S (pfc_index_left_constant_sum_diagonal)) * kc)) /\ exists ff_q_pfp_left_constant_sum_diagonaltermleftentry. kb = ff_q_pfp_left_constant_sum_diagonaltermleftentry * S ((S (pfc_index_left_constant_sum_diagonal)) * kc) + (pfc_left_left_constant_sum_diagonalterm)))))) \/ (((exists pfc_gap_left_constant_sum_diagonaltermleftoutside. pfc_gap_left_constant_sum_diagonaltermleftoutside+(1)=(pfc_index_left_constant_sum_diagonal)) /\ (((pfc_left_left_constant_sum_diagonalterm)=0))))) /\ ((((((exists pfa_gap_left_constant_sum_diagonaltermrightinside. pfa_gap_left_constant_sum_diagonaltermrightinside + S (pfc_complement_left_constant_sum_diagonalterm) = (L)) /\ ((((exists ff_h_pfp_left_constant_sum_diagonaltermrightentry. ff_h_pfp_left_constant_sum_diagonaltermrightentry + S (pfc_right_left_constant_sum_diagonalterm) = S ((S (pfc_complement_left_constant_sum_diagonalterm)) * ac)) /\ exists ff_q_pfp_left_constant_sum_diagonaltermrightentry. ab = ff_q_pfp_left_constant_sum_diagonaltermrightentry * S ((S (pfc_complement_left_constant_sum_diagonalterm)) * ac) + (pfc_right_left_constant_sum_diagonalterm)))))) \/ (((exists pfc_gap_left_constant_sum_diagonaltermrightoutside. pfc_gap_left_constant_sum_diagonaltermrightoutside+(L)=(pfc_complement_left_constant_sum_diagonalterm)) /\ (((pfc_right_left_constant_sum_diagonalterm)=0))))) /\ (((pfc_value_left_constant_sum_diagonal)=pfc_left_left_constant_sum_diagonalterm*pfc_right_left_constant_sum_diagonalterm))))))))))) -> (exists fs_u_pfc_left_constant_sum_actual fs_v_pfc_left_constant_sum_actual. ((((exists fs_h_pfc_left_constant_sum_actual_body_start. fs_h_pfc_left_constant_sum_actual_body_start + S (0) = S ((S (0)) * fs_v_pfc_left_constant_sum_actual)) /\ exists fs_q_pfc_left_constant_sum_actual_body_start. fs_u_pfc_left_constant_sum_actual = fs_q_pfc_left_constant_sum_actual_body_start * S ((S (0)) * fs_v_pfc_left_constant_sum_actual) + (0))) /\ ((((exists fs_h_pfc_left_constant_sum_actual_body_terminal. fs_h_pfc_left_constant_sum_actual_body_terminal + S (n) = S ((S (S i)) * fs_v_pfc_left_constant_sum_actual)) /\ exists fs_q_pfc_left_constant_sum_actual_body_terminal. fs_u_pfc_left_constant_sum_actual = fs_q_pfc_left_constant_sum_actual_body_terminal * S ((S (S i)) * fs_v_pfc_left_constant_sum_actual) + (n))) /\ forall fs_i_pfc_left_constant_sum_actual_body_steps. (exists fs_lt_pfc_left_constant_sum_actual_body_steps_bound. fs_lt_pfc_left_constant_sum_actual_body_steps_bound + S fs_i_pfc_left_constant_sum_actual_body_steps = S i) -> exists fs_a_pfc_left_constant_sum_actual_body_steps fs_r_pfc_left_constant_sum_actual_body_steps fs_s_pfc_left_constant_sum_actual_body_steps. ((((exists fs_h_pfc_left_constant_sum_actual_body_steps_summand. fs_h_pfc_left_constant_sum_actual_body_steps_summand + S (fs_a_pfc_left_constant_sum_actual_body_steps) = S ((S (fs_i_pfc_left_constant_sum_actual_body_steps)) * dc)) /\ exists fs_q_pfc_left_constant_sum_actual_body_steps_summand. db = fs_q_pfc_left_constant_sum_actual_body_steps_summand * S ((S (fs_i_pfc_left_constant_sum_actual_body_steps)) * dc) + (fs_a_pfc_left_constant_sum_actual_body_steps))) /\ ((((exists fs_h_pfc_left_constant_sum_actual_body_steps_partial. fs_h_pfc_left_constant_sum_actual_body_steps_partial + S (fs_r_pfc_left_constant_sum_actual_body_steps) = S ((S (fs_i_pfc_left_constant_sum_actual_body_steps)) * fs_v_pfc_left_constant_sum_actual)) /\ exists fs_q_pfc_left_constant_sum_actual_body_steps_partial. fs_u_pfc_left_constant_sum_actual = fs_q_pfc_left_constant_sum_actual_body_steps_partial * S ((S (fs_i_pfc_left_constant_sum_actual_body_steps)) * fs_v_pfc_left_constant_sum_actual) + (fs_r_pfc_left_constant_sum_actual_body_steps))) /\ ((((exists fs_h_pfc_left_constant_sum_actual_body_steps_successor. fs_h_pfc_left_constant_sum_actual_body_steps_successor + S (fs_s_pfc_left_constant_sum_actual_body_steps) = S ((S (S fs_i_pfc_left_constant_sum_actual_body_steps)) * fs_v_pfc_left_constant_sum_actual)) /\ exists fs_q_pfc_left_constant_sum_actual_body_steps_successor. fs_u_pfc_left_constant_sum_actual = fs_q_pfc_left_constant_sum_actual_body_steps_successor * S ((S (S fs_i_pfc_left_constant_sum_actual_body_steps)) * fs_v_pfc_left_constant_sum_actual) + (fs_s_pfc_left_constant_sum_actual_body_steps))) /\ fs_s_pfc_left_constant_sum_actual_body_steps = fs_r_pfc_left_constant_sum_actual_body_steps + fs_a_pfc_left_constant_sum_actual_body_steps)))))) -> (n=k*a)Constructive proof overview
Generated structural guide
The actual finite natural sum equals k*a: construct its one-term sum and use the existing zero-tail invariant for every subsequent summand. The total need not itself be a canonical field coefficient.
The unchanged tactic script uses 11 declared prerequisites and contains 137 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PG004D polynomial_diagonal_left_constant_first_term PG002E polynomial_diagonal_left_unit_tail_term add_succ_left Alpha theorem; checked-use authorized zero_add Alpha theorem; checked-use authorized succ_le_succ Alpha theorem; checked-use authorized le_add_right Alpha theorem; checked-use authorized beta_sum_exists Alpha theorem; checked-use authorized beta_sum_succ_decompose Alpha theorem; checked-use authorized beta_sum_zero Alpha theorem; checked-use authorized beta_at_unique Alpha theorem; checked-use authorized polynomial_zero_tail_natural_sum_invariant 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.
Named ingredients (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–16
03Establish hheadL17–17
Establish this local claim before using it. It is not an additional assumption.
- L17
have hhead : ((exists ff_h_pfp_left_constant_sum_head. ff_h_pfp_left_constant_sum_head + S (k*a) = S ((S (0)) * dc)) /\ exists ff_q_pfp_left_constant_sum_head. db = ff_q_pfp_left_constant_sum_head * S ((S (0)) * dc) + (k*a))
04Establish hvL18–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hd.
- L18
have hv : ∃ t. BetaAt(db,dc,0,t) ∧ PolynomialDiagonalTerm(kb,kc,1,ab,ac,L,i,0,t)Definitions: PolynomialDiagonalTermBetaAt - L19
specialize hd (0) - L20
apply hd
05Construct an explicit witnessL21–21
Supply the displayed value, then prove that it has the required property.
- L21
exists i
06Calculate and transport equalitiesL22–22
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L22
simp
07Separate the logical casesL23–24
08Establish heqL25–34
Establish this local claim before using it. It is not an additional assumption.
- L25
have heq : x=k*a - L26
specialize polynomial_diagonal_left_constant_first_term (k) - L27
specialize polynomial_diagonal_left_constant_first_term (kb) - L28
specialize polynomial_diagonal_left_constant_first_term (kc) - L29
specialize polynomial_diagonal_left_constant_first_term (ab) - L30
specialize polynomial_diagonal_left_constant_first_term (ac) - L31
specialize polynomial_diagonal_left_constant_first_term (L) - L32
specialize polynomial_diagonal_left_constant_first_term (i) - L33
specialize polynomial_diagonal_left_constant_first_term (a) - L34
specialize polynomial_diagonal_left_constant_first_term (x)
09Use earlier factsL35–39
10Calculate and transport equalitiesL40–41
11Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hv_witness_left
12Establish htailL43–45
Establish this local claim before using it. It is not an additional assumption.
- L43
have htail : forall pfpad_tail_index_left_constant_sum_tail. (exists pfa_gap_left_constant_sum_tailbound. pfa_gap_left_constant_sum_tailbound + S (pfpad_tail_index_left_constant_sum_tail) = (i)) -> (((exists ff_h_pfp_left_constant_sum_tailzero. ff_h_pfp_left_constant_sum_tailzero + S (0) = S ((S ((1)+pfpad_tail_index_left_constant_sum_tail)) * dc)) /\ exists ff_q_pfp_left_constant_sum_tailzero. db = ff_q_pfp_left_constant_sum_tailzero * S ((S ((1)+pfpad_tail_index_left_constant_sum_tail)) * dc) + (0))) - L44
intro j - L45
intro hj
13Establish hvL46–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hd.
- L46
have hv : ∃ t. BetaAt(db,dc,1 + j,t) ∧ PolynomialDiagonalTerm(kb,kc,1,ab,ac,L,i,1 + j,t)Definitions: PolynomialDiagonalTermBetaAt - L47
specialize hd (1+j) - L48
apply hd
14Establish hindexL49–55
15Separate the logical casesL56–57
16Establish heqL58–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial diagonal left unit tail term.
- L58
have heq : x=0 - L59
specialize polynomial_diagonal_left_unit_tail_term (kb) - L60
specialize polynomial_diagonal_left_unit_tail_term (kc) - L61
specialize polynomial_diagonal_left_unit_tail_term (ab) - L62
specialize polynomial_diagonal_left_unit_tail_term (ac) - L63
specialize polynomial_diagonal_left_unit_tail_term (L) - L64
specialize polynomial_diagonal_left_unit_tail_term (i) - L65
specialize polynomial_diagonal_left_unit_tail_term (1+j) - L66
specialize polynomial_diagonal_left_unit_tail_term (x) - L67
apply polynomial_diagonal_left_unit_tail_term
17Use earlier factsL68–71
18Calculate and transport equalitiesL72–73
19Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact hv_witness_left
20Establish hsingleL75–79
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum exists.
21Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
cases hsingle
22Establish hdecompL81–87
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
23Separate the logical casesL88–91
24Establish hzeroL92–97
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum zero.
25Establish hentryL98–106
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
26Establish hvalueL107–116
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply zero add.
27Use earlier factsL117–123
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L117
specialize polynomial_zero_tail_natural_sum_invariant (db) - L118
specialize polynomial_zero_tail_natural_sum_invariant (dc) - L119
specialize polynomial_zero_tail_natural_sum_invariant (1) - L120
specialize polynomial_zero_tail_natural_sum_invariant (i) - L121
specialize polynomial_zero_tail_natural_sum_invariant (x) - L122
specialize polynomial_zero_tail_natural_sum_invariant (n) - L123
apply polynomial_zero_tail_natural_sum_invariant
28Fix variables and assumptionsL124–127
29Use earlier factsL128–130
Original exact command ledger · 137 lines
- 0001
intro k - 0002
intro kb - 0003
intro kc - 0004
intro ab - 0005
intro ac - 0006
intro L - 0007
intro i - 0008
intro a - 0009
intro db - 0010
intro dc - 0011
intro n - 0012
intro hk - 0013
intro hi - 0014
intro ha - 0015
intro hd - 0016
intro hs - 0017
have hhead : ((exists ff_h_pfp_left_constant_sum_head. ff_h_pfp_left_constant_sum_head + S (k*a) = S ((S (0)) * dc)) /\ exists ff_q_pfp_left_constant_sum_head. db = ff_q_pfp_left_constant_sum_head * S ((S (0)) * dc) + (k*a)) - 0018
have hv : exists t. ((((exists ff_h_pfp_left_constant_sum_first_entry. ff_h_pfp_left_constant_sum_first_entry + S (t) = S ((S (0)) * dc)) /\ exists ff_q_pfp_left_constant_sum_first_entry. db = ff_q_pfp_left_constant_sum_first_entry * S ((S (0)) * dc) + (t))) /\ ((exists pfc_complement_left_constant_sum_first_term pfc_left_left_constant_sum_first_term pfc_right_left_constant_sum_first_term. (((0)+pfc_complement_left_constant_sum_first_term=(i)) /\ ((((((exists pfa_gap_left_constant_sum_first_termleftinside. pfa_gap_left_constant_sum_first_termleftinside + S (0) = (1)) /\ ((((exists ff_h_pfp_left_constant_sum_first_termleftentry. ff_h_pfp_left_constant_sum_first_termleftentry + S (pfc_left_left_constant_sum_first_term) = S ((S (0)) * kc)) /\ exists ff_q_pfp_left_constant_sum_first_termleftentry. kb = ff_q_pfp_left_constant_sum_first_termleftentry * S ((S (0)) * kc) + (pfc_left_left_constant_sum_first_term)))))) \/ (((exists pfc_gap_left_constant_sum_first_termleftoutside. pfc_gap_left_constant_sum_first_termleftoutside+(1)=(0)) /\ (((pfc_left_left_constant_sum_first_term)=0))))) /\ ((((((exists pfa_gap_left_constant_sum_first_termrightinside. pfa_gap_left_constant_sum_first_termrightinside + S (pfc_complement_left_constant_sum_first_term) = (L)) /\ ((((exists ff_h_pfp_left_constant_sum_first_termrightentry. ff_h_pfp_left_constant_sum_first_termrightentry + S (pfc_right_left_constant_sum_first_term) = S ((S (pfc_complement_left_constant_sum_first_term)) * ac)) /\ exists ff_q_pfp_left_constant_sum_first_termrightentry. ab = ff_q_pfp_left_constant_sum_first_termrightentry * S ((S (pfc_complement_left_constant_sum_first_term)) * ac) + (pfc_right_left_constant_sum_first_term)))))) \/ (((exists pfc_gap_left_constant_sum_first_termrightoutside. pfc_gap_left_constant_sum_first_termrightoutside+(L)=(pfc_complement_left_constant_sum_first_term)) /\ (((pfc_right_left_constant_sum_first_term)=0))))) /\ (((t)=pfc_left_left_constant_sum_first_term*pfc_right_left_constant_sum_first_term)))))))))) - 0019
specialize hd (0) - 0020
apply hd - 0021
exists i - 0022
simp - 0023
cases hv - 0024
cases hv_witness - 0025
have heq : x=k*a - 0026
specialize polynomial_diagonal_left_constant_first_term (k) - 0027
specialize polynomial_diagonal_left_constant_first_term (kb) - 0028
specialize polynomial_diagonal_left_constant_first_term (kc) - 0029
specialize polynomial_diagonal_left_constant_first_term (ab) - 0030
specialize polynomial_diagonal_left_constant_first_term (ac) - 0031
specialize polynomial_diagonal_left_constant_first_term (L) - 0032
specialize polynomial_diagonal_left_constant_first_term (i) - 0033
specialize polynomial_diagonal_left_constant_first_term (a) - 0034
specialize polynomial_diagonal_left_constant_first_term (x) - 0035
apply polynomial_diagonal_left_constant_first_term - 0036
exact hk - 0037
exact hi - 0038
exact ha - 0039
exact hv_witness_right - 0040
rewrite heq at hv_witness_left - 0041
rewrite heq at hv_witness_left - 0042
exact hv_witness_left - 0043
have htail : forall pfpad_tail_index_left_constant_sum_tail. (exists pfa_gap_left_constant_sum_tailbound. pfa_gap_left_constant_sum_tailbound + S (pfpad_tail_index_left_constant_sum_tail) = (i)) -> (((exists ff_h_pfp_left_constant_sum_tailzero. ff_h_pfp_left_constant_sum_tailzero + S (0) = S ((S ((1)+pfpad_tail_index_left_constant_sum_tail)) * dc)) /\ exists ff_q_pfp_left_constant_sum_tailzero. db = ff_q_pfp_left_constant_sum_tailzero * S ((S ((1)+pfpad_tail_index_left_constant_sum_tail)) * dc) + (0))) - 0044
intro j - 0045
intro hj - 0046
have hv : exists t. ((((exists ff_h_pfp_left_constant_sum_tail_entry. ff_h_pfp_left_constant_sum_tail_entry + S (t) = S ((S (1+j)) * dc)) /\ exists ff_q_pfp_left_constant_sum_tail_entry. db = ff_q_pfp_left_constant_sum_tail_entry * S ((S (1+j)) * dc) + (t))) /\ ((exists pfc_complement_left_constant_sum_tail_term pfc_left_left_constant_sum_tail_term pfc_right_left_constant_sum_tail_term. (((1+j)+pfc_complement_left_constant_sum_tail_term=(i)) /\ ((((((exists pfa_gap_left_constant_sum_tail_termleftinside. pfa_gap_left_constant_sum_tail_termleftinside + S (1+j) = (1)) /\ ((((exists ff_h_pfp_left_constant_sum_tail_termleftentry. ff_h_pfp_left_constant_sum_tail_termleftentry + S (pfc_left_left_constant_sum_tail_term) = S ((S (1+j)) * kc)) /\ exists ff_q_pfp_left_constant_sum_tail_termleftentry. kb = ff_q_pfp_left_constant_sum_tail_termleftentry * S ((S (1+j)) * kc) + (pfc_left_left_constant_sum_tail_term)))))) \/ (((exists pfc_gap_left_constant_sum_tail_termleftoutside. pfc_gap_left_constant_sum_tail_termleftoutside+(1)=(1+j)) /\ (((pfc_left_left_constant_sum_tail_term)=0))))) /\ ((((((exists pfa_gap_left_constant_sum_tail_termrightinside. pfa_gap_left_constant_sum_tail_termrightinside + S (pfc_complement_left_constant_sum_tail_term) = (L)) /\ ((((exists ff_h_pfp_left_constant_sum_tail_termrightentry. ff_h_pfp_left_constant_sum_tail_termrightentry + S (pfc_right_left_constant_sum_tail_term) = S ((S (pfc_complement_left_constant_sum_tail_term)) * ac)) /\ exists ff_q_pfp_left_constant_sum_tail_termrightentry. ab = ff_q_pfp_left_constant_sum_tail_termrightentry * S ((S (pfc_complement_left_constant_sum_tail_term)) * ac) + (pfc_right_left_constant_sum_tail_term)))))) \/ (((exists pfc_gap_left_constant_sum_tail_termrightoutside. pfc_gap_left_constant_sum_tail_termrightoutside+(L)=(pfc_complement_left_constant_sum_tail_term)) /\ (((pfc_right_left_constant_sum_tail_term)=0))))) /\ (((t)=pfc_left_left_constant_sum_tail_term*pfc_right_left_constant_sum_tail_term)))))))))) - 0047
specialize hd (1+j) - 0048
apply hd - 0049
have hindex : 1+j=S j - 0050
simp [add_succ_left,zero_add] - 0051
rewrite hindex - 0052
specialize succ_le_succ (S j) - 0053
specialize succ_le_succ (i) - 0054
apply succ_le_succ - 0055
exact hj - 0056
cases hv - 0057
cases hv_witness - 0058
have heq : x=0 - 0059
specialize polynomial_diagonal_left_unit_tail_term (kb) - 0060
specialize polynomial_diagonal_left_unit_tail_term (kc) - 0061
specialize polynomial_diagonal_left_unit_tail_term (ab) - 0062
specialize polynomial_diagonal_left_unit_tail_term (ac) - 0063
specialize polynomial_diagonal_left_unit_tail_term (L) - 0064
specialize polynomial_diagonal_left_unit_tail_term (i) - 0065
specialize polynomial_diagonal_left_unit_tail_term (1+j) - 0066
specialize polynomial_diagonal_left_unit_tail_term (x) - 0067
apply polynomial_diagonal_left_unit_tail_term - 0068
specialize le_add_right (1) - 0069
specialize le_add_right (j) - 0070
apply le_add_right - 0071
exact hv_witness_right - 0072
rewrite heq at hv_witness_left - 0073
rewrite heq at hv_witness_left - 0074
exact hv_witness_left - 0075
have hsingle : exists m. (exists fs_u_pfc_left_constant_single_sum fs_v_pfc_left_constant_single_sum. ((((exists fs_h_pfc_left_constant_single_sum_body_start. fs_h_pfc_left_constant_single_sum_body_start + S (0) = S ((S (0)) * fs_v_pfc_left_constant_single_sum)) /\ exists fs_q_pfc_left_constant_single_sum_body_start. fs_u_pfc_left_constant_single_sum = fs_q_pfc_left_constant_single_sum_body_start * S ((S (0)) * fs_v_pfc_left_constant_single_sum) + (0))) /\ ((((exists fs_h_pfc_left_constant_single_sum_body_terminal. fs_h_pfc_left_constant_single_sum_body_terminal + S (m) = S ((S (1)) * fs_v_pfc_left_constant_single_sum)) /\ exists fs_q_pfc_left_constant_single_sum_body_terminal. fs_u_pfc_left_constant_single_sum = fs_q_pfc_left_constant_single_sum_body_terminal * S ((S (1)) * fs_v_pfc_left_constant_single_sum) + (m))) /\ forall fs_i_pfc_left_constant_single_sum_body_steps. (exists fs_lt_pfc_left_constant_single_sum_body_steps_bound. fs_lt_pfc_left_constant_single_sum_body_steps_bound + S fs_i_pfc_left_constant_single_sum_body_steps = 1) -> exists fs_a_pfc_left_constant_single_sum_body_steps fs_r_pfc_left_constant_single_sum_body_steps fs_s_pfc_left_constant_single_sum_body_steps. ((((exists fs_h_pfc_left_constant_single_sum_body_steps_summand. fs_h_pfc_left_constant_single_sum_body_steps_summand + S (fs_a_pfc_left_constant_single_sum_body_steps) = S ((S (fs_i_pfc_left_constant_single_sum_body_steps)) * dc)) /\ exists fs_q_pfc_left_constant_single_sum_body_steps_summand. db = fs_q_pfc_left_constant_single_sum_body_steps_summand * S ((S (fs_i_pfc_left_constant_single_sum_body_steps)) * dc) + (fs_a_pfc_left_constant_single_sum_body_steps))) /\ ((((exists fs_h_pfc_left_constant_single_sum_body_steps_partial. fs_h_pfc_left_constant_single_sum_body_steps_partial + S (fs_r_pfc_left_constant_single_sum_body_steps) = S ((S (fs_i_pfc_left_constant_single_sum_body_steps)) * fs_v_pfc_left_constant_single_sum)) /\ exists fs_q_pfc_left_constant_single_sum_body_steps_partial. fs_u_pfc_left_constant_single_sum = fs_q_pfc_left_constant_single_sum_body_steps_partial * S ((S (fs_i_pfc_left_constant_single_sum_body_steps)) * fs_v_pfc_left_constant_single_sum) + (fs_r_pfc_left_constant_single_sum_body_steps))) /\ ((((exists fs_h_pfc_left_constant_single_sum_body_steps_successor. fs_h_pfc_left_constant_single_sum_body_steps_successor + S (fs_s_pfc_left_constant_single_sum_body_steps) = S ((S (S fs_i_pfc_left_constant_single_sum_body_steps)) * fs_v_pfc_left_constant_single_sum)) /\ exists fs_q_pfc_left_constant_single_sum_body_steps_successor. fs_u_pfc_left_constant_single_sum = fs_q_pfc_left_constant_single_sum_body_steps_successor * S ((S (S fs_i_pfc_left_constant_single_sum_body_steps)) * fs_v_pfc_left_constant_single_sum) + (fs_s_pfc_left_constant_single_sum_body_steps))) /\ fs_s_pfc_left_constant_single_sum_body_steps = fs_r_pfc_left_constant_single_sum_body_steps + fs_a_pfc_left_constant_single_sum_body_steps)))))) - 0076
specialize beta_sum_exists (db) - 0077
specialize beta_sum_exists (dc) - 0078
specialize beta_sum_exists (1) - 0079
apply beta_sum_exists - 0080
cases hsingle - 0081
have hdecomp : exists t s. ((((exists ff_h_pfp_left_constant_single_entry. ff_h_pfp_left_constant_single_entry + S (t) = S ((S (0)) * dc)) /\ exists ff_q_pfp_left_constant_single_entry. db = ff_q_pfp_left_constant_single_entry * S ((S (0)) * dc) + (t))) /\ (((exists fs_u_pfc_left_constant_single_empty fs_v_pfc_left_constant_single_empty. ((((exists fs_h_pfc_left_constant_single_empty_body_start. fs_h_pfc_left_constant_single_empty_body_start + S (0) = S ((S (0)) * fs_v_pfc_left_constant_single_empty)) /\ exists fs_q_pfc_left_constant_single_empty_body_start. fs_u_pfc_left_constant_single_empty = fs_q_pfc_left_constant_single_empty_body_start * S ((S (0)) * fs_v_pfc_left_constant_single_empty) + (0))) /\ ((((exists fs_h_pfc_left_constant_single_empty_body_terminal. fs_h_pfc_left_constant_single_empty_body_terminal + S (s) = S ((S (0)) * fs_v_pfc_left_constant_single_empty)) /\ exists fs_q_pfc_left_constant_single_empty_body_terminal. fs_u_pfc_left_constant_single_empty = fs_q_pfc_left_constant_single_empty_body_terminal * S ((S (0)) * fs_v_pfc_left_constant_single_empty) + (s))) /\ forall fs_i_pfc_left_constant_single_empty_body_steps. (exists fs_lt_pfc_left_constant_single_empty_body_steps_bound. fs_lt_pfc_left_constant_single_empty_body_steps_bound + S fs_i_pfc_left_constant_single_empty_body_steps = 0) -> exists fs_a_pfc_left_constant_single_empty_body_steps fs_r_pfc_left_constant_single_empty_body_steps fs_s_pfc_left_constant_single_empty_body_steps. ((((exists fs_h_pfc_left_constant_single_empty_body_steps_summand. fs_h_pfc_left_constant_single_empty_body_steps_summand + S (fs_a_pfc_left_constant_single_empty_body_steps) = S ((S (fs_i_pfc_left_constant_single_empty_body_steps)) * dc)) /\ exists fs_q_pfc_left_constant_single_empty_body_steps_summand. db = fs_q_pfc_left_constant_single_empty_body_steps_summand * S ((S (fs_i_pfc_left_constant_single_empty_body_steps)) * dc) + (fs_a_pfc_left_constant_single_empty_body_steps))) /\ ((((exists fs_h_pfc_left_constant_single_empty_body_steps_partial. fs_h_pfc_left_constant_single_empty_body_steps_partial + S (fs_r_pfc_left_constant_single_empty_body_steps) = S ((S (fs_i_pfc_left_constant_single_empty_body_steps)) * fs_v_pfc_left_constant_single_empty)) /\ exists fs_q_pfc_left_constant_single_empty_body_steps_partial. fs_u_pfc_left_constant_single_empty = fs_q_pfc_left_constant_single_empty_body_steps_partial * S ((S (fs_i_pfc_left_constant_single_empty_body_steps)) * fs_v_pfc_left_constant_single_empty) + (fs_r_pfc_left_constant_single_empty_body_steps))) /\ ((((exists fs_h_pfc_left_constant_single_empty_body_steps_successor. fs_h_pfc_left_constant_single_empty_body_steps_successor + S (fs_s_pfc_left_constant_single_empty_body_steps) = S ((S (S fs_i_pfc_left_constant_single_empty_body_steps)) * fs_v_pfc_left_constant_single_empty)) /\ exists fs_q_pfc_left_constant_single_empty_body_steps_successor. fs_u_pfc_left_constant_single_empty = fs_q_pfc_left_constant_single_empty_body_steps_successor * S ((S (S fs_i_pfc_left_constant_single_empty_body_steps)) * fs_v_pfc_left_constant_single_empty) + (fs_s_pfc_left_constant_single_empty_body_steps))) /\ fs_s_pfc_left_constant_single_empty_body_steps = fs_r_pfc_left_constant_single_empty_body_steps + fs_a_pfc_left_constant_single_empty_body_steps)))))) /\ ((x=s+t))))) - 0082
specialize beta_sum_succ_decompose (db) - 0083
specialize beta_sum_succ_decompose (dc) - 0084
specialize beta_sum_succ_decompose (0) - 0085
specialize beta_sum_succ_decompose (x) - 0086
apply beta_sum_succ_decompose - 0087
exact hsingle_witness - 0088
cases hdecomp - 0089
cases hdecomp_witness - 0090
cases hdecomp_witness_witness - 0091
cases hdecomp_witness_witness_right - 0092
have hzero : x2=0 - 0093
specialize beta_sum_zero (db) - 0094
specialize beta_sum_zero (dc) - 0095
specialize beta_sum_zero (x2) - 0096
apply beta_sum_zero - 0097
exact hdecomp_witness_witness_right_left - 0098
have hentry : x1=k*a - 0099
specialize beta_at_unique (db) - 0100
specialize beta_at_unique (dc) - 0101
specialize beta_at_unique (0) - 0102
specialize beta_at_unique (x1) - 0103
specialize beta_at_unique (k*a) - 0104
apply beta_at_unique - 0105
exact hdecomp_witness_witness_left - 0106
exact hhead - 0107
have hvalue : x=k*a - 0108
trans x2+x1 - 0109
exact hdecomp_witness_witness_right_right - 0110
rewrite hzero - 0111
trans x1 - 0112
apply zero_add - 0113
exact hentry - 0114
trans x - 0115
specialize polynomial_zero_tail_natural_sum_invariant (db) - 0116
specialize polynomial_zero_tail_natural_sum_invariant (dc) - 0117
specialize polynomial_zero_tail_natural_sum_invariant (db) - 0118
specialize polynomial_zero_tail_natural_sum_invariant (dc) - 0119
specialize polynomial_zero_tail_natural_sum_invariant (1) - 0120
specialize polynomial_zero_tail_natural_sum_invariant (i) - 0121
specialize polynomial_zero_tail_natural_sum_invariant (x) - 0122
specialize polynomial_zero_tail_natural_sum_invariant (n) - 0123
apply polynomial_zero_tail_natural_sum_invariant - 0124
intro j0 - 0125
intro v0 - 0126
intro hj0 - 0127
intro hv0 - 0128
exact hv0 - 0129
exact htail - 0130
exact hsingle_witness - 0131
have hlength : 1+i=S i - 0132
simp [add_succ_left,zero_add] - 0133
rewrite hlength - 0134
rewrite hlength - 0135
rewrite hlength - 0136
exact hs - 0137
exact hvalue