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 ab ac L bb bc M AB AC t i db dc eb ec. (((forall pfp_repeat_index_diagonal_actual_padding_leftzeros. (exists pfa_gap_diagonal_actual_padding_leftzerosindex. pfa_gap_diagonal_actual_padding_leftzerosindex + S (pfp_repeat_index_diagonal_actual_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_diagonal_actual_padding_leftzerosentry. ff_h_pfp_diagonal_actual_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_diagonal_actual_padding_leftzeros)) * AC)) /\ exists ff_q_pfp_diagonal_actual_padding_leftzerosentry. AB = ff_q_pfp_diagonal_actual_padding_leftzerosentry * S ((S (pfp_repeat_index_diagonal_actual_padding_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_diagonal_actual_padding_left pfrep_value_diagonal_actual_padding_left. (exists pfa_gap_diagonal_actual_padding_leftbound. pfa_gap_diagonal_actual_padding_leftbound + S (pfrep_index_diagonal_actual_padding_left) = (L)) -> (((exists ff_h_pfp_diagonal_actual_padding_leftinput. ff_h_pfp_diagonal_actual_padding_leftinput + S (pfrep_value_diagonal_actual_padding_left) = S ((S (pfrep_index_diagonal_actual_padding_left)) * ac)) /\ exists ff_q_pfp_diagonal_actual_padding_leftinput. ab = ff_q_pfp_diagonal_actual_padding_leftinput * S ((S (pfrep_index_diagonal_actual_padding_left)) * ac) + (pfrep_value_diagonal_actual_padding_left))) -> (((exists ff_h_pfp_diagonal_actual_padding_leftoutput. ff_h_pfp_diagonal_actual_padding_leftoutput + S (pfrep_value_diagonal_actual_padding_left) = S ((S ((t)+pfrep_index_diagonal_actual_padding_left)) * AC)) /\ exists ff_q_pfp_diagonal_actual_padding_leftoutput. AB = ff_q_pfp_diagonal_actual_padding_leftoutput * S ((S ((t)+pfrep_index_diagonal_actual_padding_left)) * AC) + (pfrep_value_diagonal_actual_padding_left))))))) -> (forall pfc_index_diagonal_pad_old_left. (exists pfa_gap_diagonal_pad_old_leftbound. pfa_gap_diagonal_pad_old_leftbound + S (pfc_index_diagonal_pad_old_left) = (S i)) -> exists pfc_value_diagonal_pad_old_left. ((((exists ff_h_pfp_diagonal_pad_old_leftentry. ff_h_pfp_diagonal_pad_old_leftentry + S (pfc_value_diagonal_pad_old_left) = S ((S (pfc_index_diagonal_pad_old_left)) * dc)) /\ exists ff_q_pfp_diagonal_pad_old_leftentry. db = ff_q_pfp_diagonal_pad_old_leftentry * S ((S (pfc_index_diagonal_pad_old_left)) * dc) + (pfc_value_diagonal_pad_old_left))) /\ ((exists pfc_complement_diagonal_pad_old_leftterm pfc_left_diagonal_pad_old_leftterm pfc_right_diagonal_pad_old_leftterm. (((pfc_index_diagonal_pad_old_left)+pfc_complement_diagonal_pad_old_leftterm=(i)) /\ ((((((exists pfa_gap_diagonal_pad_old_lefttermleftinside. pfa_gap_diagonal_pad_old_lefttermleftinside + S (pfc_index_diagonal_pad_old_left) = (L)) /\ ((((exists ff_h_pfp_diagonal_pad_old_lefttermleftentry. ff_h_pfp_diagonal_pad_old_lefttermleftentry + S (pfc_left_diagonal_pad_old_leftterm) = S ((S (pfc_index_diagonal_pad_old_left)) * ac)) /\ exists ff_q_pfp_diagonal_pad_old_lefttermleftentry. ab = ff_q_pfp_diagonal_pad_old_lefttermleftentry * S ((S (pfc_index_diagonal_pad_old_left)) * ac) + (pfc_left_diagonal_pad_old_leftterm)))))) \/ (((exists pfc_gap_diagonal_pad_old_lefttermleftoutside. pfc_gap_diagonal_pad_old_lefttermleftoutside+(L)=(pfc_index_diagonal_pad_old_left)) /\ (((pfc_left_diagonal_pad_old_leftterm)=0))))) /\ ((((((exists pfa_gap_diagonal_pad_old_lefttermrightinside. pfa_gap_diagonal_pad_old_lefttermrightinside + S (pfc_complement_diagonal_pad_old_leftterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_pad_old_lefttermrightentry. ff_h_pfp_diagonal_pad_old_lefttermrightentry + S (pfc_right_diagonal_pad_old_leftterm) = S ((S (pfc_complement_diagonal_pad_old_leftterm)) * bc)) /\ exists ff_q_pfp_diagonal_pad_old_lefttermrightentry. bb = ff_q_pfp_diagonal_pad_old_lefttermrightentry * S ((S (pfc_complement_diagonal_pad_old_leftterm)) * bc) + (pfc_right_diagonal_pad_old_leftterm)))))) \/ (((exists pfc_gap_diagonal_pad_old_lefttermrightoutside. pfc_gap_diagonal_pad_old_lefttermrightoutside+(M)=(pfc_complement_diagonal_pad_old_leftterm)) /\ (((pfc_right_diagonal_pad_old_leftterm)=0))))) /\ (((pfc_value_diagonal_pad_old_left)=pfc_left_diagonal_pad_old_leftterm*pfc_right_diagonal_pad_old_leftterm))))))))))) -> (forall pfc_index_diagonal_pad_new_left. (exists pfa_gap_diagonal_pad_new_leftbound. pfa_gap_diagonal_pad_new_leftbound + S (pfc_index_diagonal_pad_new_left) = (S (t+i))) -> exists pfc_value_diagonal_pad_new_left. ((((exists ff_h_pfp_diagonal_pad_new_leftentry. ff_h_pfp_diagonal_pad_new_leftentry + S (pfc_value_diagonal_pad_new_left) = S ((S (pfc_index_diagonal_pad_new_left)) * ec)) /\ exists ff_q_pfp_diagonal_pad_new_leftentry. eb = ff_q_pfp_diagonal_pad_new_leftentry * S ((S (pfc_index_diagonal_pad_new_left)) * ec) + (pfc_value_diagonal_pad_new_left))) /\ ((exists pfc_complement_diagonal_pad_new_leftterm pfc_left_diagonal_pad_new_leftterm pfc_right_diagonal_pad_new_leftterm. (((pfc_index_diagonal_pad_new_left)+pfc_complement_diagonal_pad_new_leftterm=(t+i)) /\ ((((((exists pfa_gap_diagonal_pad_new_lefttermleftinside. pfa_gap_diagonal_pad_new_lefttermleftinside + S (pfc_index_diagonal_pad_new_left) = (t+L)) /\ ((((exists ff_h_pfp_diagonal_pad_new_lefttermleftentry. ff_h_pfp_diagonal_pad_new_lefttermleftentry + S (pfc_left_diagonal_pad_new_leftterm) = S ((S (pfc_index_diagonal_pad_new_left)) * AC)) /\ exists ff_q_pfp_diagonal_pad_new_lefttermleftentry. AB = ff_q_pfp_diagonal_pad_new_lefttermleftentry * S ((S (pfc_index_diagonal_pad_new_left)) * AC) + (pfc_left_diagonal_pad_new_leftterm)))))) \/ (((exists pfc_gap_diagonal_pad_new_lefttermleftoutside. pfc_gap_diagonal_pad_new_lefttermleftoutside+(t+L)=(pfc_index_diagonal_pad_new_left)) /\ (((pfc_left_diagonal_pad_new_leftterm)=0))))) /\ ((((((exists pfa_gap_diagonal_pad_new_lefttermrightinside. pfa_gap_diagonal_pad_new_lefttermrightinside + S (pfc_complement_diagonal_pad_new_leftterm) = (M)) /\ ((((exists ff_h_pfp_diagonal_pad_new_lefttermrightentry. ff_h_pfp_diagonal_pad_new_lefttermrightentry + S (pfc_right_diagonal_pad_new_leftterm) = S ((S (pfc_complement_diagonal_pad_new_leftterm)) * bc)) /\ exists ff_q_pfp_diagonal_pad_new_lefttermrightentry. bb = ff_q_pfp_diagonal_pad_new_lefttermrightentry * S ((S (pfc_complement_diagonal_pad_new_leftterm)) * bc) + (pfc_right_diagonal_pad_new_leftterm)))))) \/ (((exists pfc_gap_diagonal_pad_new_lefttermrightoutside. pfc_gap_diagonal_pad_new_lefttermrightoutside+(M)=(pfc_complement_diagonal_pad_new_leftterm)) /\ (((pfc_right_diagonal_pad_new_leftterm)=0))))) /\ (((pfc_value_diagonal_pad_new_left)=pfc_left_diagonal_pad_new_leftterm*pfc_right_diagonal_pad_new_leftterm))))))))))) -> (((forall pfp_repeat_index_diagonal_pad_result_leftzeros. (exists pfa_gap_diagonal_pad_result_leftzerosindex. pfa_gap_diagonal_pad_result_leftzerosindex + S (pfp_repeat_index_diagonal_pad_result_leftzeros) = (t)) -> (((exists ff_h_pfp_diagonal_pad_result_leftzerosentry. ff_h_pfp_diagonal_pad_result_leftzerosentry + S (0) = S ((S (pfp_repeat_index_diagonal_pad_result_leftzeros)) * ec)) /\ exists ff_q_pfp_diagonal_pad_result_leftzerosentry. eb = ff_q_pfp_diagonal_pad_result_leftzerosentry * S ((S (pfp_repeat_index_diagonal_pad_result_leftzeros)) * ec) + (0)))) /\ ((forall pfrep_index_diagonal_pad_result_left pfrep_value_diagonal_pad_result_left. (exists pfa_gap_diagonal_pad_result_leftbound. pfa_gap_diagonal_pad_result_leftbound + S (pfrep_index_diagonal_pad_result_left) = (S i)) -> (((exists ff_h_pfp_diagonal_pad_result_leftinput. ff_h_pfp_diagonal_pad_result_leftinput + S (pfrep_value_diagonal_pad_result_left) = S ((S (pfrep_index_diagonal_pad_result_left)) * dc)) /\ exists ff_q_pfp_diagonal_pad_result_leftinput. db = ff_q_pfp_diagonal_pad_result_leftinput * S ((S (pfrep_index_diagonal_pad_result_left)) * dc) + (pfrep_value_diagonal_pad_result_left))) -> (((exists ff_h_pfp_diagonal_pad_result_leftoutput. ff_h_pfp_diagonal_pad_result_leftoutput + S (pfrep_value_diagonal_pad_result_left) = S ((S ((t)+pfrep_index_diagonal_pad_result_left)) * ec)) /\ exists ff_q_pfp_diagonal_pad_result_leftoutput. eb = ff_q_pfp_diagonal_pad_result_leftoutput * S ((S ((t)+pfrep_index_diagonal_pad_result_left)) * ec) + (pfrep_value_diagonal_pad_result_left)))))))Constructive proof overview
Generated structural guide
The two actual antidiagonal tables differ by a proved leading zero block and exact copied natural summands.
The unchanged tactic script uses 10 declared prerequisites and contains 124 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
polynomial_diagonal_prefix_entry Alpha theorem; checked-use authorized le_trans Alpha theorem; checked-use authorized succ_le_succ Alpha theorem; checked-use authorized polynomial_diagonal_term_functional Alpha theorem; checked-use authorized PX0060 polynomial_diagonal_term_left_padding_left PX0062 polynomial_diagonal_term_left_padding_zero_left le_succ Alpha theorem; checked-use authorized le_add_right Alpha theorem; checked-use authorized add_le_add_left Alpha theorem; checked-use authorized le_of_succ_le_succ 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–17
03Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
split
04Fix variables and assumptionsL19–20
05Establish hvL21–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hnew.
- L21
have hv : ∃ z. BetaAt(eb,ec,j,z) ∧ PolynomialDiagonalTerm(AB,AC,t + L,bb,bc,M,t + i,j,z)Definitions: PolynomialDiagonalTermBetaAt - L22
specialize hnew (j) - L23
apply hnew - L24
specialize le_trans (S j) - L25
specialize le_trans (t) - L26
specialize le_trans (S (t+i)) - L27
apply le_trans - L28
exact hj - L29
specialize le_succ (t) - L30
specialize le_succ (t+i)
06Use earlier factsL31–34
07Separate the logical casesL35–36
08Establish hzL37–46
Establish this local claim before using it. It is not an additional assumption.
- L37
have hz : x=0 - L38
specialize polynomial_diagonal_term_left_padding_zero_left (ab) - L39
specialize polynomial_diagonal_term_left_padding_zero_left (ac) - L40
specialize polynomial_diagonal_term_left_padding_zero_left (L) - L41
specialize polynomial_diagonal_term_left_padding_zero_left (bb) - L42
specialize polynomial_diagonal_term_left_padding_zero_left (bc) - L43
specialize polynomial_diagonal_term_left_padding_zero_left (M) - L44
specialize polynomial_diagonal_term_left_padding_zero_left (AB) - L45
specialize polynomial_diagonal_term_left_padding_zero_left (AC) - L46
specialize polynomial_diagonal_term_left_padding_zero_left (t)
09Use earlier factsL47–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
specialize polynomial_diagonal_term_left_padding_zero_left (t+i) - L48
specialize polynomial_diagonal_term_left_padding_zero_left (j) - L49
specialize polynomial_diagonal_term_left_padding_zero_left (x) - L50
apply polynomial_diagonal_term_left_padding_zero_left - L51
exact hpad - L52
exact hj - L53
exact hv_witness_right
10Calculate and transport equalitiesL54–55
11Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hv_witness_left
12Fix variables and assumptionsL57–60
13Establish htermL61–70
Establish this local claim before using it. It is not an additional assumption.
- L61
have hterm : PolynomialDiagonalTerm(ab,ac,L,bb,bc,M,i,j,a)Definitions: PolynomialDiagonalTerm - L62
specialize polynomial_diagonal_prefix_entry (ab) - L63
specialize polynomial_diagonal_prefix_entry (ac) - L64
specialize polynomial_diagonal_prefix_entry (L) - L65
specialize polynomial_diagonal_prefix_entry (bb) - L66
specialize polynomial_diagonal_prefix_entry (bc) - L67
specialize polynomial_diagonal_prefix_entry (M) - L68
specialize polynomial_diagonal_prefix_entry (i) - L69
specialize polynomial_diagonal_prefix_entry (db) - L70
specialize polynomial_diagonal_prefix_entry (dc)
14Use earlier factsL71–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
15Establish hvL78–87
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hnew.
- L78
have hv : ∃ z. BetaAt(eb,ec,t + j,z) ∧ PolynomialDiagonalTerm(AB,AC,t + L,bb,bc,M,t + i,t + j,z)Definitions: PolynomialDiagonalTermBetaAt - L79
specialize hnew (t+j) - L80
apply hnew - L81
specialize succ_le_succ (t+j) - L82
specialize succ_le_succ (t+i) - L83
apply succ_le_succ - L84
specialize add_le_add_left (j) - L85
specialize add_le_add_left (i) - L86
specialize add_le_add_left (t) - L87
apply add_le_add_left
16Use earlier factsL88–91
17Separate the logical casesL92–93
18Establish heqL94–103
Establish this local claim before using it. It is not an additional assumption.
- L94
have heq : x=a - L95
specialize polynomial_diagonal_term_functional (AB) - L96
specialize polynomial_diagonal_term_functional (AC) - L97
specialize polynomial_diagonal_term_functional (t+L) - L98
specialize polynomial_diagonal_term_functional (bb) - L99
specialize polynomial_diagonal_term_functional (bc) - L100
specialize polynomial_diagonal_term_functional (M) - L101
specialize polynomial_diagonal_term_functional (t+i) - L102
specialize polynomial_diagonal_term_functional (t+j) - L103
specialize polynomial_diagonal_term_functional (x)
19Use earlier factsL104–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
specialize polynomial_diagonal_term_functional (a) - L105
apply polynomial_diagonal_term_functional - L106
exact hv_witness_right - L107
specialize polynomial_diagonal_term_left_padding_left (ab) - L108
specialize polynomial_diagonal_term_left_padding_left (ac) - L109
specialize polynomial_diagonal_term_left_padding_left (L) - L110
specialize polynomial_diagonal_term_left_padding_left (bb) - L111
specialize polynomial_diagonal_term_left_padding_left (bc) - L112
specialize polynomial_diagonal_term_left_padding_left (M) - L113
specialize polynomial_diagonal_term_left_padding_left (AB)
20Use earlier factsL114–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
specialize polynomial_diagonal_term_left_padding_left (AC) - L115
specialize polynomial_diagonal_term_left_padding_left (t) - L116
specialize polynomial_diagonal_term_left_padding_left (i) - L117
specialize polynomial_diagonal_term_left_padding_left (j) - L118
specialize polynomial_diagonal_term_left_padding_left (a) - L119
apply polynomial_diagonal_term_left_padding_left - L120
exact hpad - L121
exact hterm
21Calculate and transport equalitiesL122–123
22Use earlier factsL124–124
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L124
exact hv_witness_left
Original exact command ledger · 124 lines
- 0001
intro ab - 0002
intro ac - 0003
intro L - 0004
intro bb - 0005
intro bc - 0006
intro M - 0007
intro AB - 0008
intro AC - 0009
intro t - 0010
intro i - 0011
intro db - 0012
intro dc - 0013
intro eb - 0014
intro ec - 0015
intro hpad - 0016
intro hold - 0017
intro hnew - 0018
split - 0019
intro j - 0020
intro hj - 0021
have hv : exists z. ((((exists ff_h_pfp_diagonal_zero_entry. ff_h_pfp_diagonal_zero_entry + S (z) = S ((S (j)) * ec)) /\ exists ff_q_pfp_diagonal_zero_entry. eb = ff_q_pfp_diagonal_zero_entry * S ((S (j)) * ec) + (z))) /\ ((exists pfc_complement_diagonal_zero_term pfc_left_diagonal_zero_term pfc_right_diagonal_zero_term. (((j)+pfc_complement_diagonal_zero_term=(t+i)) /\ ((((((exists pfa_gap_diagonal_zero_termleftinside. pfa_gap_diagonal_zero_termleftinside + S (j) = (t+L)) /\ ((((exists ff_h_pfp_diagonal_zero_termleftentry. ff_h_pfp_diagonal_zero_termleftentry + S (pfc_left_diagonal_zero_term) = S ((S (j)) * AC)) /\ exists ff_q_pfp_diagonal_zero_termleftentry. AB = ff_q_pfp_diagonal_zero_termleftentry * S ((S (j)) * AC) + (pfc_left_diagonal_zero_term)))))) \/ (((exists pfc_gap_diagonal_zero_termleftoutside. pfc_gap_diagonal_zero_termleftoutside+(t+L)=(j)) /\ (((pfc_left_diagonal_zero_term)=0))))) /\ ((((((exists pfa_gap_diagonal_zero_termrightinside. pfa_gap_diagonal_zero_termrightinside + S (pfc_complement_diagonal_zero_term) = (M)) /\ ((((exists ff_h_pfp_diagonal_zero_termrightentry. ff_h_pfp_diagonal_zero_termrightentry + S (pfc_right_diagonal_zero_term) = S ((S (pfc_complement_diagonal_zero_term)) * bc)) /\ exists ff_q_pfp_diagonal_zero_termrightentry. bb = ff_q_pfp_diagonal_zero_termrightentry * S ((S (pfc_complement_diagonal_zero_term)) * bc) + (pfc_right_diagonal_zero_term)))))) \/ (((exists pfc_gap_diagonal_zero_termrightoutside. pfc_gap_diagonal_zero_termrightoutside+(M)=(pfc_complement_diagonal_zero_term)) /\ (((pfc_right_diagonal_zero_term)=0))))) /\ (((z)=pfc_left_diagonal_zero_term*pfc_right_diagonal_zero_term)))))))))) - 0022
specialize hnew (j) - 0023
apply hnew - 0024
specialize le_trans (S j) - 0025
specialize le_trans (t) - 0026
specialize le_trans (S (t+i)) - 0027
apply le_trans - 0028
exact hj - 0029
specialize le_succ (t) - 0030
specialize le_succ (t+i) - 0031
apply le_succ - 0032
specialize le_add_right (t) - 0033
specialize le_add_right (i) - 0034
apply le_add_right - 0035
cases hv - 0036
cases hv_witness - 0037
have hz : x=0 - 0038
specialize polynomial_diagonal_term_left_padding_zero_left (ab) - 0039
specialize polynomial_diagonal_term_left_padding_zero_left (ac) - 0040
specialize polynomial_diagonal_term_left_padding_zero_left (L) - 0041
specialize polynomial_diagonal_term_left_padding_zero_left (bb) - 0042
specialize polynomial_diagonal_term_left_padding_zero_left (bc) - 0043
specialize polynomial_diagonal_term_left_padding_zero_left (M) - 0044
specialize polynomial_diagonal_term_left_padding_zero_left (AB) - 0045
specialize polynomial_diagonal_term_left_padding_zero_left (AC) - 0046
specialize polynomial_diagonal_term_left_padding_zero_left (t) - 0047
specialize polynomial_diagonal_term_left_padding_zero_left (t+i) - 0048
specialize polynomial_diagonal_term_left_padding_zero_left (j) - 0049
specialize polynomial_diagonal_term_left_padding_zero_left (x) - 0050
apply polynomial_diagonal_term_left_padding_zero_left - 0051
exact hpad - 0052
exact hj - 0053
exact hv_witness_right - 0054
rewrite hz at hv_witness_left - 0055
rewrite hz at hv_witness_left - 0056
exact hv_witness_left - 0057
intro j - 0058
intro a - 0059
intro hj - 0060
intro ha - 0061
have hterm : exists pfc_complement_diagonal_copy_old pfc_left_diagonal_copy_old pfc_right_diagonal_copy_old. (((j)+pfc_complement_diagonal_copy_old=(i)) /\ ((((((exists pfa_gap_diagonal_copy_oldleftinside. pfa_gap_diagonal_copy_oldleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_diagonal_copy_oldleftentry. ff_h_pfp_diagonal_copy_oldleftentry + S (pfc_left_diagonal_copy_old) = S ((S (j)) * ac)) /\ exists ff_q_pfp_diagonal_copy_oldleftentry. ab = ff_q_pfp_diagonal_copy_oldleftentry * S ((S (j)) * ac) + (pfc_left_diagonal_copy_old)))))) \/ (((exists pfc_gap_diagonal_copy_oldleftoutside. pfc_gap_diagonal_copy_oldleftoutside+(L)=(j)) /\ (((pfc_left_diagonal_copy_old)=0))))) /\ ((((((exists pfa_gap_diagonal_copy_oldrightinside. pfa_gap_diagonal_copy_oldrightinside + S (pfc_complement_diagonal_copy_old) = (M)) /\ ((((exists ff_h_pfp_diagonal_copy_oldrightentry. ff_h_pfp_diagonal_copy_oldrightentry + S (pfc_right_diagonal_copy_old) = S ((S (pfc_complement_diagonal_copy_old)) * bc)) /\ exists ff_q_pfp_diagonal_copy_oldrightentry. bb = ff_q_pfp_diagonal_copy_oldrightentry * S ((S (pfc_complement_diagonal_copy_old)) * bc) + (pfc_right_diagonal_copy_old)))))) \/ (((exists pfc_gap_diagonal_copy_oldrightoutside. pfc_gap_diagonal_copy_oldrightoutside+(M)=(pfc_complement_diagonal_copy_old)) /\ (((pfc_right_diagonal_copy_old)=0))))) /\ (((a)=pfc_left_diagonal_copy_old*pfc_right_diagonal_copy_old))))))) - 0062
specialize polynomial_diagonal_prefix_entry (ab) - 0063
specialize polynomial_diagonal_prefix_entry (ac) - 0064
specialize polynomial_diagonal_prefix_entry (L) - 0065
specialize polynomial_diagonal_prefix_entry (bb) - 0066
specialize polynomial_diagonal_prefix_entry (bc) - 0067
specialize polynomial_diagonal_prefix_entry (M) - 0068
specialize polynomial_diagonal_prefix_entry (i) - 0069
specialize polynomial_diagonal_prefix_entry (db) - 0070
specialize polynomial_diagonal_prefix_entry (dc) - 0071
specialize polynomial_diagonal_prefix_entry (S i) - 0072
specialize polynomial_diagonal_prefix_entry (j) - 0073
specialize polynomial_diagonal_prefix_entry (a) - 0074
apply polynomial_diagonal_prefix_entry - 0075
exact hold - 0076
exact hj - 0077
exact ha - 0078
have hv : exists z. ((((exists ff_h_pfp_diagonal_copy_entry. ff_h_pfp_diagonal_copy_entry + S (z) = S ((S (t+j)) * ec)) /\ exists ff_q_pfp_diagonal_copy_entry. eb = ff_q_pfp_diagonal_copy_entry * S ((S (t+j)) * ec) + (z))) /\ ((exists pfc_complement_diagonal_copy_actual pfc_left_diagonal_copy_actual pfc_right_diagonal_copy_actual. (((t+j)+pfc_complement_diagonal_copy_actual=(t+i)) /\ ((((((exists pfa_gap_diagonal_copy_actualleftinside. pfa_gap_diagonal_copy_actualleftinside + S (t+j) = (t+L)) /\ ((((exists ff_h_pfp_diagonal_copy_actualleftentry. ff_h_pfp_diagonal_copy_actualleftentry + S (pfc_left_diagonal_copy_actual) = S ((S (t+j)) * AC)) /\ exists ff_q_pfp_diagonal_copy_actualleftentry. AB = ff_q_pfp_diagonal_copy_actualleftentry * S ((S (t+j)) * AC) + (pfc_left_diagonal_copy_actual)))))) \/ (((exists pfc_gap_diagonal_copy_actualleftoutside. pfc_gap_diagonal_copy_actualleftoutside+(t+L)=(t+j)) /\ (((pfc_left_diagonal_copy_actual)=0))))) /\ ((((((exists pfa_gap_diagonal_copy_actualrightinside. pfa_gap_diagonal_copy_actualrightinside + S (pfc_complement_diagonal_copy_actual) = (M)) /\ ((((exists ff_h_pfp_diagonal_copy_actualrightentry. ff_h_pfp_diagonal_copy_actualrightentry + S (pfc_right_diagonal_copy_actual) = S ((S (pfc_complement_diagonal_copy_actual)) * bc)) /\ exists ff_q_pfp_diagonal_copy_actualrightentry. bb = ff_q_pfp_diagonal_copy_actualrightentry * S ((S (pfc_complement_diagonal_copy_actual)) * bc) + (pfc_right_diagonal_copy_actual)))))) \/ (((exists pfc_gap_diagonal_copy_actualrightoutside. pfc_gap_diagonal_copy_actualrightoutside+(M)=(pfc_complement_diagonal_copy_actual)) /\ (((pfc_right_diagonal_copy_actual)=0))))) /\ (((z)=pfc_left_diagonal_copy_actual*pfc_right_diagonal_copy_actual)))))))))) - 0079
specialize hnew (t+j) - 0080
apply hnew - 0081
specialize succ_le_succ (t+j) - 0082
specialize succ_le_succ (t+i) - 0083
apply succ_le_succ - 0084
specialize add_le_add_left (j) - 0085
specialize add_le_add_left (i) - 0086
specialize add_le_add_left (t) - 0087
apply add_le_add_left - 0088
specialize le_of_succ_le_succ (j) - 0089
specialize le_of_succ_le_succ (i) - 0090
apply le_of_succ_le_succ - 0091
exact hj - 0092
cases hv - 0093
cases hv_witness - 0094
have heq : x=a - 0095
specialize polynomial_diagonal_term_functional (AB) - 0096
specialize polynomial_diagonal_term_functional (AC) - 0097
specialize polynomial_diagonal_term_functional (t+L) - 0098
specialize polynomial_diagonal_term_functional (bb) - 0099
specialize polynomial_diagonal_term_functional (bc) - 0100
specialize polynomial_diagonal_term_functional (M) - 0101
specialize polynomial_diagonal_term_functional (t+i) - 0102
specialize polynomial_diagonal_term_functional (t+j) - 0103
specialize polynomial_diagonal_term_functional (x) - 0104
specialize polynomial_diagonal_term_functional (a) - 0105
apply polynomial_diagonal_term_functional - 0106
exact hv_witness_right - 0107
specialize polynomial_diagonal_term_left_padding_left (ab) - 0108
specialize polynomial_diagonal_term_left_padding_left (ac) - 0109
specialize polynomial_diagonal_term_left_padding_left (L) - 0110
specialize polynomial_diagonal_term_left_padding_left (bb) - 0111
specialize polynomial_diagonal_term_left_padding_left (bc) - 0112
specialize polynomial_diagonal_term_left_padding_left (M) - 0113
specialize polynomial_diagonal_term_left_padding_left (AB) - 0114
specialize polynomial_diagonal_term_left_padding_left (AC) - 0115
specialize polynomial_diagonal_term_left_padding_left (t) - 0116
specialize polynomial_diagonal_term_left_padding_left (i) - 0117
specialize polynomial_diagonal_term_left_padding_left (j) - 0118
specialize polynomial_diagonal_term_left_padding_left (a) - 0119
apply polynomial_diagonal_term_left_padding_left - 0120
exact hpad - 0121
exact hterm - 0122
rewrite heq at hv_witness_left - 0123
rewrite heq at hv_witness_left - 0124
exact hv_witness_left