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 p ab ac L bb bc M BB BC t i r. (((forall pfp_repeat_index_coefficient_padding_rightzeros. (exists pfa_gap_coefficient_padding_rightzerosindex. pfa_gap_coefficient_padding_rightzerosindex + S (pfp_repeat_index_coefficient_padding_rightzeros) = (t)) -> (((exists ff_h_pfp_coefficient_padding_rightzerosentry. ff_h_pfp_coefficient_padding_rightzerosentry + S (0) = S ((S (pfp_repeat_index_coefficient_padding_rightzeros)) * BC)) /\ exists ff_q_pfp_coefficient_padding_rightzerosentry. BB = ff_q_pfp_coefficient_padding_rightzerosentry * S ((S (pfp_repeat_index_coefficient_padding_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_coefficient_padding_right pfrep_value_coefficient_padding_right. (exists pfa_gap_coefficient_padding_rightbound. pfa_gap_coefficient_padding_rightbound + S (pfrep_index_coefficient_padding_right) = (M)) -> (((exists ff_h_pfp_coefficient_padding_rightinput. ff_h_pfp_coefficient_padding_rightinput + S (pfrep_value_coefficient_padding_right) = S ((S (pfrep_index_coefficient_padding_right)) * bc)) /\ exists ff_q_pfp_coefficient_padding_rightinput. bb = ff_q_pfp_coefficient_padding_rightinput * S ((S (pfrep_index_coefficient_padding_right)) * bc) + (pfrep_value_coefficient_padding_right))) -> (((exists ff_h_pfp_coefficient_padding_rightoutput. ff_h_pfp_coefficient_padding_rightoutput + S (pfrep_value_coefficient_padding_right) = S ((S ((t)+pfrep_index_coefficient_padding_right)) * BC)) /\ exists ff_q_pfp_coefficient_padding_rightoutput. BB = ff_q_pfp_coefficient_padding_rightoutput * S ((S ((t)+pfrep_index_coefficient_padding_right)) * BC) + (pfrep_value_coefficient_padding_right))))))) -> (exists pfc_terms_code_coefficient_original_right pfc_terms_scale_coefficient_original_right pfc_natural_sum_coefficient_original_right. ((forall pfc_index_coefficient_original_rightdiagonal. (exists pfa_gap_coefficient_original_rightdiagonalbound. pfa_gap_coefficient_original_rightdiagonalbound + S (pfc_index_coefficient_original_rightdiagonal) = (S (i))) -> exists pfc_value_coefficient_original_rightdiagonal. ((((exists ff_h_pfp_coefficient_original_rightdiagonalentry. ff_h_pfp_coefficient_original_rightdiagonalentry + S (pfc_value_coefficient_original_rightdiagonal) = S ((S (pfc_index_coefficient_original_rightdiagonal)) * pfc_terms_scale_coefficient_original_right)) /\ exists ff_q_pfp_coefficient_original_rightdiagonalentry. pfc_terms_code_coefficient_original_right = ff_q_pfp_coefficient_original_rightdiagonalentry * S ((S (pfc_index_coefficient_original_rightdiagonal)) * pfc_terms_scale_coefficient_original_right) + (pfc_value_coefficient_original_rightdiagonal))) /\ ((exists pfc_complement_coefficient_original_rightdiagonalterm pfc_left_coefficient_original_rightdiagonalterm pfc_right_coefficient_original_rightdiagonalterm. (((pfc_index_coefficient_original_rightdiagonal)+pfc_complement_coefficient_original_rightdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_original_rightdiagonaltermleftinside. pfa_gap_coefficient_original_rightdiagonaltermleftinside + S (pfc_index_coefficient_original_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_original_rightdiagonaltermleftentry. ff_h_pfp_coefficient_original_rightdiagonaltermleftentry + S (pfc_left_coefficient_original_rightdiagonalterm) = S ((S (pfc_index_coefficient_original_rightdiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_original_rightdiagonaltermleftentry. ab = ff_q_pfp_coefficient_original_rightdiagonaltermleftentry * S ((S (pfc_index_coefficient_original_rightdiagonal)) * ac) + (pfc_left_coefficient_original_rightdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_original_rightdiagonaltermleftoutside. pfc_gap_coefficient_original_rightdiagonaltermleftoutside+(L)=(pfc_index_coefficient_original_rightdiagonal)) /\ (((pfc_left_coefficient_original_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_original_rightdiagonaltermrightinside. pfa_gap_coefficient_original_rightdiagonaltermrightinside + S (pfc_complement_coefficient_original_rightdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_original_rightdiagonaltermrightentry. ff_h_pfp_coefficient_original_rightdiagonaltermrightentry + S (pfc_right_coefficient_original_rightdiagonalterm) = S ((S (pfc_complement_coefficient_original_rightdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_original_rightdiagonaltermrightentry. bb = ff_q_pfp_coefficient_original_rightdiagonaltermrightentry * S ((S (pfc_complement_coefficient_original_rightdiagonalterm)) * bc) + (pfc_right_coefficient_original_rightdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_original_rightdiagonaltermrightoutside. pfc_gap_coefficient_original_rightdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_original_rightdiagonalterm)) /\ (((pfc_right_coefficient_original_rightdiagonalterm)=0))))) /\ (((pfc_value_coefficient_original_rightdiagonal)=pfc_left_coefficient_original_rightdiagonalterm*pfc_right_coefficient_original_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_original_rightsum fs_v_pfc_coefficient_original_rightsum. ((((exists fs_h_pfc_coefficient_original_rightsum_body_start. fs_h_pfc_coefficient_original_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_original_rightsum)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_start. fs_u_pfc_coefficient_original_rightsum = fs_q_pfc_coefficient_original_rightsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_original_rightsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_original_rightsum_body_terminal. fs_h_pfc_coefficient_original_rightsum_body_terminal + S (pfc_natural_sum_coefficient_original_right) = S ((S (S (i))) * fs_v_pfc_coefficient_original_rightsum)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_terminal. fs_u_pfc_coefficient_original_rightsum = fs_q_pfc_coefficient_original_rightsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_original_rightsum) + (pfc_natural_sum_coefficient_original_right))) /\ forall fs_i_pfc_coefficient_original_rightsum_body_steps. (exists fs_lt_pfc_coefficient_original_rightsum_body_steps_bound. fs_lt_pfc_coefficient_original_rightsum_body_steps_bound + S fs_i_pfc_coefficient_original_rightsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_original_rightsum_body_steps fs_r_pfc_coefficient_original_rightsum_body_steps fs_s_pfc_coefficient_original_rightsum_body_steps. ((((exists fs_h_pfc_coefficient_original_rightsum_body_steps_summand. fs_h_pfc_coefficient_original_rightsum_body_steps_summand + S (fs_a_pfc_coefficient_original_rightsum_body_steps) = S ((S (fs_i_pfc_coefficient_original_rightsum_body_steps)) * pfc_terms_scale_coefficient_original_right)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_steps_summand. pfc_terms_code_coefficient_original_right = fs_q_pfc_coefficient_original_rightsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_original_rightsum_body_steps)) * pfc_terms_scale_coefficient_original_right) + (fs_a_pfc_coefficient_original_rightsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_original_rightsum_body_steps_partial. fs_h_pfc_coefficient_original_rightsum_body_steps_partial + S (fs_r_pfc_coefficient_original_rightsum_body_steps) = S ((S (fs_i_pfc_coefficient_original_rightsum_body_steps)) * fs_v_pfc_coefficient_original_rightsum)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_steps_partial. fs_u_pfc_coefficient_original_rightsum = fs_q_pfc_coefficient_original_rightsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_original_rightsum_body_steps)) * fs_v_pfc_coefficient_original_rightsum) + (fs_r_pfc_coefficient_original_rightsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_original_rightsum_body_steps_successor. fs_h_pfc_coefficient_original_rightsum_body_steps_successor + S (fs_s_pfc_coefficient_original_rightsum_body_steps) = S ((S (S fs_i_pfc_coefficient_original_rightsum_body_steps)) * fs_v_pfc_coefficient_original_rightsum)) /\ exists fs_q_pfc_coefficient_original_rightsum_body_steps_successor. fs_u_pfc_coefficient_original_rightsum = fs_q_pfc_coefficient_original_rightsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_original_rightsum_body_steps)) * fs_v_pfc_coefficient_original_rightsum) + (fs_s_pfc_coefficient_original_rightsum_body_steps))) /\ fs_s_pfc_coefficient_original_rightsum_body_steps = fs_r_pfc_coefficient_original_rightsum_body_steps + fs_a_pfc_coefficient_original_rightsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_original_rightresiduebound. pfa_gap_coefficient_original_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_original_rightresiduecongruence pfa_offset_right_coefficient_original_rightresiduecongruence. (pfc_natural_sum_coefficient_original_right) + (p) * pfa_offset_left_coefficient_original_rightresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_original_rightresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_shifted_right pfc_terms_scale_coefficient_shifted_right pfc_natural_sum_coefficient_shifted_right. ((forall pfc_index_coefficient_shifted_rightdiagonal. (exists pfa_gap_coefficient_shifted_rightdiagonalbound. pfa_gap_coefficient_shifted_rightdiagonalbound + S (pfc_index_coefficient_shifted_rightdiagonal) = (S (t+i))) -> exists pfc_value_coefficient_shifted_rightdiagonal. ((((exists ff_h_pfp_coefficient_shifted_rightdiagonalentry. ff_h_pfp_coefficient_shifted_rightdiagonalentry + S (pfc_value_coefficient_shifted_rightdiagonal) = S ((S (pfc_index_coefficient_shifted_rightdiagonal)) * pfc_terms_scale_coefficient_shifted_right)) /\ exists ff_q_pfp_coefficient_shifted_rightdiagonalentry. pfc_terms_code_coefficient_shifted_right = ff_q_pfp_coefficient_shifted_rightdiagonalentry * S ((S (pfc_index_coefficient_shifted_rightdiagonal)) * pfc_terms_scale_coefficient_shifted_right) + (pfc_value_coefficient_shifted_rightdiagonal))) /\ ((exists pfc_complement_coefficient_shifted_rightdiagonalterm pfc_left_coefficient_shifted_rightdiagonalterm pfc_right_coefficient_shifted_rightdiagonalterm. (((pfc_index_coefficient_shifted_rightdiagonal)+pfc_complement_coefficient_shifted_rightdiagonalterm=(t+i)) /\ ((((((exists pfa_gap_coefficient_shifted_rightdiagonaltermleftinside. pfa_gap_coefficient_shifted_rightdiagonaltermleftinside + S (pfc_index_coefficient_shifted_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_shifted_rightdiagonaltermleftentry. ff_h_pfp_coefficient_shifted_rightdiagonaltermleftentry + S (pfc_left_coefficient_shifted_rightdiagonalterm) = S ((S (pfc_index_coefficient_shifted_rightdiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_shifted_rightdiagonaltermleftentry. ab = ff_q_pfp_coefficient_shifted_rightdiagonaltermleftentry * S ((S (pfc_index_coefficient_shifted_rightdiagonal)) * ac) + (pfc_left_coefficient_shifted_rightdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_shifted_rightdiagonaltermleftoutside. pfc_gap_coefficient_shifted_rightdiagonaltermleftoutside+(L)=(pfc_index_coefficient_shifted_rightdiagonal)) /\ (((pfc_left_coefficient_shifted_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_shifted_rightdiagonaltermrightinside. pfa_gap_coefficient_shifted_rightdiagonaltermrightinside + S (pfc_complement_coefficient_shifted_rightdiagonalterm) = (t+M)) /\ ((((exists ff_h_pfp_coefficient_shifted_rightdiagonaltermrightentry. ff_h_pfp_coefficient_shifted_rightdiagonaltermrightentry + S (pfc_right_coefficient_shifted_rightdiagonalterm) = S ((S (pfc_complement_coefficient_shifted_rightdiagonalterm)) * BC)) /\ exists ff_q_pfp_coefficient_shifted_rightdiagonaltermrightentry. BB = ff_q_pfp_coefficient_shifted_rightdiagonaltermrightentry * S ((S (pfc_complement_coefficient_shifted_rightdiagonalterm)) * BC) + (pfc_right_coefficient_shifted_rightdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_shifted_rightdiagonaltermrightoutside. pfc_gap_coefficient_shifted_rightdiagonaltermrightoutside+(t+M)=(pfc_complement_coefficient_shifted_rightdiagonalterm)) /\ (((pfc_right_coefficient_shifted_rightdiagonalterm)=0))))) /\ (((pfc_value_coefficient_shifted_rightdiagonal)=pfc_left_coefficient_shifted_rightdiagonalterm*pfc_right_coefficient_shifted_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_shifted_rightsum fs_v_pfc_coefficient_shifted_rightsum. ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_start. fs_h_pfc_coefficient_shifted_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_shifted_rightsum)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_start. fs_u_pfc_coefficient_shifted_rightsum = fs_q_pfc_coefficient_shifted_rightsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_shifted_rightsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_terminal. fs_h_pfc_coefficient_shifted_rightsum_body_terminal + S (pfc_natural_sum_coefficient_shifted_right) = S ((S (S (t+i))) * fs_v_pfc_coefficient_shifted_rightsum)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_terminal. fs_u_pfc_coefficient_shifted_rightsum = fs_q_pfc_coefficient_shifted_rightsum_body_terminal * S ((S (S (t+i))) * fs_v_pfc_coefficient_shifted_rightsum) + (pfc_natural_sum_coefficient_shifted_right))) /\ forall fs_i_pfc_coefficient_shifted_rightsum_body_steps. (exists fs_lt_pfc_coefficient_shifted_rightsum_body_steps_bound. fs_lt_pfc_coefficient_shifted_rightsum_body_steps_bound + S fs_i_pfc_coefficient_shifted_rightsum_body_steps = S (t+i)) -> exists fs_a_pfc_coefficient_shifted_rightsum_body_steps fs_r_pfc_coefficient_shifted_rightsum_body_steps fs_s_pfc_coefficient_shifted_rightsum_body_steps. ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_steps_summand. fs_h_pfc_coefficient_shifted_rightsum_body_steps_summand + S (fs_a_pfc_coefficient_shifted_rightsum_body_steps) = S ((S (fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * pfc_terms_scale_coefficient_shifted_right)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_steps_summand. pfc_terms_code_coefficient_shifted_right = fs_q_pfc_coefficient_shifted_rightsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * pfc_terms_scale_coefficient_shifted_right) + (fs_a_pfc_coefficient_shifted_rightsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_steps_partial. fs_h_pfc_coefficient_shifted_rightsum_body_steps_partial + S (fs_r_pfc_coefficient_shifted_rightsum_body_steps) = S ((S (fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * fs_v_pfc_coefficient_shifted_rightsum)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_steps_partial. fs_u_pfc_coefficient_shifted_rightsum = fs_q_pfc_coefficient_shifted_rightsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * fs_v_pfc_coefficient_shifted_rightsum) + (fs_r_pfc_coefficient_shifted_rightsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_shifted_rightsum_body_steps_successor. fs_h_pfc_coefficient_shifted_rightsum_body_steps_successor + S (fs_s_pfc_coefficient_shifted_rightsum_body_steps) = S ((S (S fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * fs_v_pfc_coefficient_shifted_rightsum)) /\ exists fs_q_pfc_coefficient_shifted_rightsum_body_steps_successor. fs_u_pfc_coefficient_shifted_rightsum = fs_q_pfc_coefficient_shifted_rightsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_shifted_rightsum_body_steps)) * fs_v_pfc_coefficient_shifted_rightsum) + (fs_s_pfc_coefficient_shifted_rightsum_body_steps))) /\ fs_s_pfc_coefficient_shifted_rightsum_body_steps = fs_r_pfc_coefficient_shifted_rightsum_body_steps + fs_a_pfc_coefficient_shifted_rightsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_shifted_rightresiduebound. pfa_gap_coefficient_shifted_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_shifted_rightresiduecongruence pfa_offset_right_coefficient_shifted_rightresiduecongruence. (pfc_natural_sum_coefficient_shifted_right) + (p) * pfa_offset_left_coefficient_shifted_rightresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_shifted_rightresiduecongruence)))))))))Constructive proof overview
Generated structural guide
Construct an actual padded antidiagonal table and actual sum trace, proving the shifted coefficient has the same canonical residue without assuming an equality of sums.
The unchanged tactic script uses 6 declared prerequisites and contains 85 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_exists Alpha theorem; checked-use authorized beta_sum_exists Alpha theorem; checked-use authorized PX0065 polynomial_diagonal_left_padding_right PX005F polynomial_zero_tail_natural_sum_invariant add_succ_left Alpha theorem; checked-use authorized add_comm 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–14
03Separate the logical casesL15–19
04Establish hdL20–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial diagonal prefix exists.
- L20
have hd : ∃ eb. ∃ ec. PolynomialDiagonalPrefix(ab,ac,L,BB,BC,t + M,t + i,eb,ec,S (t + i))Definitions: PolynomialDiagonalPrefix - L21
specialize polynomial_diagonal_prefix_exists (ab) - L22
specialize polynomial_diagonal_prefix_exists (ac) - L23
specialize polynomial_diagonal_prefix_exists (L) - L24
specialize polynomial_diagonal_prefix_exists (BB) - L25
specialize polynomial_diagonal_prefix_exists (BC) - L26
specialize polynomial_diagonal_prefix_exists (t+M) - L27
specialize polynomial_diagonal_prefix_exists (t+i) - L28
apply polynomial_diagonal_prefix_exists
05Separate the logical casesL29–30
06Establish hsL31–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum exists.
07Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
cases hs
08Establish hdataL37–46
Establish this local claim before using it. It is not an additional assumption.
- L37
have hdata : BetaPrefixEqual(x,x1,x3,x4,S i) ∧ (∀ y. Lt(y,t) → BetaAt(x3,x4,S i + y,0))Definitions: BetaPrefixEqualLtBetaAt - L38
specialize polynomial_diagonal_left_padding_right (ab) - L39
specialize polynomial_diagonal_left_padding_right (ac) - L40
specialize polynomial_diagonal_left_padding_right (L) - L41
specialize polynomial_diagonal_left_padding_right (bb) - L42
specialize polynomial_diagonal_left_padding_right (bc) - L43
specialize polynomial_diagonal_left_padding_right (M) - L44
specialize polynomial_diagonal_left_padding_right (BB) - L45
specialize polynomial_diagonal_left_padding_right (BC) - L46
specialize polynomial_diagonal_left_padding_right (t)
09Use earlier factsL47–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
specialize polynomial_diagonal_left_padding_right (i) - L48
specialize polynomial_diagonal_left_padding_right (x) - L49
specialize polynomial_diagonal_left_padding_right (x1) - L50
specialize polynomial_diagonal_left_padding_right (x3) - L51
specialize polynomial_diagonal_left_padding_right (x4) - L52
apply polynomial_diagonal_left_padding_right - L53
exact hpad - L54
exact hc_witness_witness_witness_left - L55
exact hd_witness_witness
10Establish heqL56–56
Establish this local claim before using it. It is not an additional assumption.
- L56
have heq : x5=x2
11Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
cases hdata
12Use earlier factsL58–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
specialize polynomial_zero_tail_natural_sum_invariant (x) - L59
specialize polynomial_zero_tail_natural_sum_invariant (x1) - L60
specialize polynomial_zero_tail_natural_sum_invariant (x3) - L61
specialize polynomial_zero_tail_natural_sum_invariant (x4) - L62
specialize polynomial_zero_tail_natural_sum_invariant (S i) - L63
specialize polynomial_zero_tail_natural_sum_invariant (t) - L64
specialize polynomial_zero_tail_natural_sum_invariant (x2) - L65
specialize polynomial_zero_tail_natural_sum_invariant (x5) - L66
apply polynomial_zero_tail_natural_sum_invariant - L67
exact hdata_left
13Use earlier factsL68–69
14Establish hlengthL70–75
15Construct an explicit witnessL76–78
16Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
17Use earlier factsL80–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L80
exact hd_witness_witness
18Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
split
19Calculate and transport equalitiesL82–83
Original exact command ledger · 85 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro M - 0008
intro BB - 0009
intro BC - 0010
intro t - 0011
intro i - 0012
intro r - 0013
intro hpad - 0014
intro hc - 0015
cases hc - 0016
cases hc_witness - 0017
cases hc_witness_witness - 0018
cases hc_witness_witness_witness - 0019
cases hc_witness_witness_witness_right - 0020
have hd : exists eb ec. forall pfc_index_coefficient_padded_diagonal_right. (exists pfa_gap_coefficient_padded_diagonal_rightbound. pfa_gap_coefficient_padded_diagonal_rightbound + S (pfc_index_coefficient_padded_diagonal_right) = (S (t+i))) -> exists pfc_value_coefficient_padded_diagonal_right. ((((exists ff_h_pfp_coefficient_padded_diagonal_rightentry. ff_h_pfp_coefficient_padded_diagonal_rightentry + S (pfc_value_coefficient_padded_diagonal_right) = S ((S (pfc_index_coefficient_padded_diagonal_right)) * ec)) /\ exists ff_q_pfp_coefficient_padded_diagonal_rightentry. eb = ff_q_pfp_coefficient_padded_diagonal_rightentry * S ((S (pfc_index_coefficient_padded_diagonal_right)) * ec) + (pfc_value_coefficient_padded_diagonal_right))) /\ ((exists pfc_complement_coefficient_padded_diagonal_rightterm pfc_left_coefficient_padded_diagonal_rightterm pfc_right_coefficient_padded_diagonal_rightterm. (((pfc_index_coefficient_padded_diagonal_right)+pfc_complement_coefficient_padded_diagonal_rightterm=(t+i)) /\ ((((((exists pfa_gap_coefficient_padded_diagonal_righttermleftinside. pfa_gap_coefficient_padded_diagonal_righttermleftinside + S (pfc_index_coefficient_padded_diagonal_right) = (L)) /\ ((((exists ff_h_pfp_coefficient_padded_diagonal_righttermleftentry. ff_h_pfp_coefficient_padded_diagonal_righttermleftentry + S (pfc_left_coefficient_padded_diagonal_rightterm) = S ((S (pfc_index_coefficient_padded_diagonal_right)) * ac)) /\ exists ff_q_pfp_coefficient_padded_diagonal_righttermleftentry. ab = ff_q_pfp_coefficient_padded_diagonal_righttermleftentry * S ((S (pfc_index_coefficient_padded_diagonal_right)) * ac) + (pfc_left_coefficient_padded_diagonal_rightterm)))))) \/ (((exists pfc_gap_coefficient_padded_diagonal_righttermleftoutside. pfc_gap_coefficient_padded_diagonal_righttermleftoutside+(L)=(pfc_index_coefficient_padded_diagonal_right)) /\ (((pfc_left_coefficient_padded_diagonal_rightterm)=0))))) /\ ((((((exists pfa_gap_coefficient_padded_diagonal_righttermrightinside. pfa_gap_coefficient_padded_diagonal_righttermrightinside + S (pfc_complement_coefficient_padded_diagonal_rightterm) = (t+M)) /\ ((((exists ff_h_pfp_coefficient_padded_diagonal_righttermrightentry. ff_h_pfp_coefficient_padded_diagonal_righttermrightentry + S (pfc_right_coefficient_padded_diagonal_rightterm) = S ((S (pfc_complement_coefficient_padded_diagonal_rightterm)) * BC)) /\ exists ff_q_pfp_coefficient_padded_diagonal_righttermrightentry. BB = ff_q_pfp_coefficient_padded_diagonal_righttermrightentry * S ((S (pfc_complement_coefficient_padded_diagonal_rightterm)) * BC) + (pfc_right_coefficient_padded_diagonal_rightterm)))))) \/ (((exists pfc_gap_coefficient_padded_diagonal_righttermrightoutside. pfc_gap_coefficient_padded_diagonal_righttermrightoutside+(t+M)=(pfc_complement_coefficient_padded_diagonal_rightterm)) /\ (((pfc_right_coefficient_padded_diagonal_rightterm)=0))))) /\ (((pfc_value_coefficient_padded_diagonal_right)=pfc_left_coefficient_padded_diagonal_rightterm*pfc_right_coefficient_padded_diagonal_rightterm)))))))))) - 0021
specialize polynomial_diagonal_prefix_exists (ab) - 0022
specialize polynomial_diagonal_prefix_exists (ac) - 0023
specialize polynomial_diagonal_prefix_exists (L) - 0024
specialize polynomial_diagonal_prefix_exists (BB) - 0025
specialize polynomial_diagonal_prefix_exists (BC) - 0026
specialize polynomial_diagonal_prefix_exists (t+M) - 0027
specialize polynomial_diagonal_prefix_exists (t+i) - 0028
apply polynomial_diagonal_prefix_exists - 0029
cases hd - 0030
cases hd_witness - 0031
have hs : exists n. exists fs_u_pfc_coefficient_padded_sum_right fs_v_pfc_coefficient_padded_sum_right. ((((exists fs_h_pfc_coefficient_padded_sum_right_body_start. fs_h_pfc_coefficient_padded_sum_right_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_padded_sum_right)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_start. fs_u_pfc_coefficient_padded_sum_right = fs_q_pfc_coefficient_padded_sum_right_body_start * S ((S (0)) * fs_v_pfc_coefficient_padded_sum_right) + (0))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_right_body_terminal. fs_h_pfc_coefficient_padded_sum_right_body_terminal + S (n) = S ((S (S (t+i))) * fs_v_pfc_coefficient_padded_sum_right)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_terminal. fs_u_pfc_coefficient_padded_sum_right = fs_q_pfc_coefficient_padded_sum_right_body_terminal * S ((S (S (t+i))) * fs_v_pfc_coefficient_padded_sum_right) + (n))) /\ forall fs_i_pfc_coefficient_padded_sum_right_body_steps. (exists fs_lt_pfc_coefficient_padded_sum_right_body_steps_bound. fs_lt_pfc_coefficient_padded_sum_right_body_steps_bound + S fs_i_pfc_coefficient_padded_sum_right_body_steps = S (t+i)) -> exists fs_a_pfc_coefficient_padded_sum_right_body_steps fs_r_pfc_coefficient_padded_sum_right_body_steps fs_s_pfc_coefficient_padded_sum_right_body_steps. ((((exists fs_h_pfc_coefficient_padded_sum_right_body_steps_summand. fs_h_pfc_coefficient_padded_sum_right_body_steps_summand + S (fs_a_pfc_coefficient_padded_sum_right_body_steps) = S ((S (fs_i_pfc_coefficient_padded_sum_right_body_steps)) * x4)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_steps_summand. x3 = fs_q_pfc_coefficient_padded_sum_right_body_steps_summand * S ((S (fs_i_pfc_coefficient_padded_sum_right_body_steps)) * x4) + (fs_a_pfc_coefficient_padded_sum_right_body_steps))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_right_body_steps_partial. fs_h_pfc_coefficient_padded_sum_right_body_steps_partial + S (fs_r_pfc_coefficient_padded_sum_right_body_steps) = S ((S (fs_i_pfc_coefficient_padded_sum_right_body_steps)) * fs_v_pfc_coefficient_padded_sum_right)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_steps_partial. fs_u_pfc_coefficient_padded_sum_right = fs_q_pfc_coefficient_padded_sum_right_body_steps_partial * S ((S (fs_i_pfc_coefficient_padded_sum_right_body_steps)) * fs_v_pfc_coefficient_padded_sum_right) + (fs_r_pfc_coefficient_padded_sum_right_body_steps))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_right_body_steps_successor. fs_h_pfc_coefficient_padded_sum_right_body_steps_successor + S (fs_s_pfc_coefficient_padded_sum_right_body_steps) = S ((S (S fs_i_pfc_coefficient_padded_sum_right_body_steps)) * fs_v_pfc_coefficient_padded_sum_right)) /\ exists fs_q_pfc_coefficient_padded_sum_right_body_steps_successor. fs_u_pfc_coefficient_padded_sum_right = fs_q_pfc_coefficient_padded_sum_right_body_steps_successor * S ((S (S fs_i_pfc_coefficient_padded_sum_right_body_steps)) * fs_v_pfc_coefficient_padded_sum_right) + (fs_s_pfc_coefficient_padded_sum_right_body_steps))) /\ fs_s_pfc_coefficient_padded_sum_right_body_steps = fs_r_pfc_coefficient_padded_sum_right_body_steps + fs_a_pfc_coefficient_padded_sum_right_body_steps))))) - 0032
specialize beta_sum_exists (x3) - 0033
specialize beta_sum_exists (x4) - 0034
specialize beta_sum_exists (S (t+i)) - 0035
apply beta_sum_exists - 0036
cases hs - 0037
have hdata : ((forall mdr_i_pfp_coefficient_diagonal_equal mdr_a_pfp_coefficient_diagonal_equal. (exists mdr_gap_pfp_coefficient_diagonal_equalb. mdr_gap_pfp_coefficient_diagonal_equalb + S (mdr_i_pfp_coefficient_diagonal_equal) = (S i)) -> (((exists ff_h_mdr_pfp_coefficient_diagonal_equalo. ff_h_mdr_pfp_coefficient_diagonal_equalo + S (mdr_a_pfp_coefficient_diagonal_equal) = S ((S (mdr_i_pfp_coefficient_diagonal_equal)) * x1)) /\ exists ff_q_mdr_pfp_coefficient_diagonal_equalo. x = ff_q_mdr_pfp_coefficient_diagonal_equalo * S ((S (mdr_i_pfp_coefficient_diagonal_equal)) * x1) + (mdr_a_pfp_coefficient_diagonal_equal))) -> (((exists ff_h_mdr_pfp_coefficient_diagonal_equaln. ff_h_mdr_pfp_coefficient_diagonal_equaln + S (mdr_a_pfp_coefficient_diagonal_equal) = S ((S (mdr_i_pfp_coefficient_diagonal_equal)) * x4)) /\ exists ff_q_mdr_pfp_coefficient_diagonal_equaln. x3 = ff_q_mdr_pfp_coefficient_diagonal_equaln * S ((S (mdr_i_pfp_coefficient_diagonal_equal)) * x4) + (mdr_a_pfp_coefficient_diagonal_equal)))) /\ ((forall pfpad_tail_index_coefficient_diagonal_tail. (exists pfa_gap_coefficient_diagonal_tailbound. pfa_gap_coefficient_diagonal_tailbound + S (pfpad_tail_index_coefficient_diagonal_tail) = (t)) -> (((exists ff_h_pfp_coefficient_diagonal_tailzero. ff_h_pfp_coefficient_diagonal_tailzero + S (0) = S ((S ((S i)+pfpad_tail_index_coefficient_diagonal_tail)) * x4)) /\ exists ff_q_pfp_coefficient_diagonal_tailzero. x3 = ff_q_pfp_coefficient_diagonal_tailzero * S ((S ((S i)+pfpad_tail_index_coefficient_diagonal_tail)) * x4) + (0)))))) - 0038
specialize polynomial_diagonal_left_padding_right (ab) - 0039
specialize polynomial_diagonal_left_padding_right (ac) - 0040
specialize polynomial_diagonal_left_padding_right (L) - 0041
specialize polynomial_diagonal_left_padding_right (bb) - 0042
specialize polynomial_diagonal_left_padding_right (bc) - 0043
specialize polynomial_diagonal_left_padding_right (M) - 0044
specialize polynomial_diagonal_left_padding_right (BB) - 0045
specialize polynomial_diagonal_left_padding_right (BC) - 0046
specialize polynomial_diagonal_left_padding_right (t) - 0047
specialize polynomial_diagonal_left_padding_right (i) - 0048
specialize polynomial_diagonal_left_padding_right (x) - 0049
specialize polynomial_diagonal_left_padding_right (x1) - 0050
specialize polynomial_diagonal_left_padding_right (x3) - 0051
specialize polynomial_diagonal_left_padding_right (x4) - 0052
apply polynomial_diagonal_left_padding_right - 0053
exact hpad - 0054
exact hc_witness_witness_witness_left - 0055
exact hd_witness_witness - 0056
have heq : x5=x2 - 0057
cases hdata - 0058
specialize polynomial_zero_tail_natural_sum_invariant (x) - 0059
specialize polynomial_zero_tail_natural_sum_invariant (x1) - 0060
specialize polynomial_zero_tail_natural_sum_invariant (x3) - 0061
specialize polynomial_zero_tail_natural_sum_invariant (x4) - 0062
specialize polynomial_zero_tail_natural_sum_invariant (S i) - 0063
specialize polynomial_zero_tail_natural_sum_invariant (t) - 0064
specialize polynomial_zero_tail_natural_sum_invariant (x2) - 0065
specialize polynomial_zero_tail_natural_sum_invariant (x5) - 0066
apply polynomial_zero_tail_natural_sum_invariant - 0067
exact hdata_left - 0068
exact hdata_right - 0069
exact hc_witness_witness_witness_right_left - 0070
have hlength : S i+t=S (t+i) - 0071
simp [add_succ_left,add_comm] - 0072
rewrite hlength - 0073
rewrite hlength - 0074
rewrite hlength - 0075
exact hs_witness - 0076
exists x3 - 0077
exists x4 - 0078
exists x2 - 0079
split - 0080
exact hd_witness_witness - 0081
split - 0082
rewrite heq at hs_witness - 0083
rewrite heq at hs_witness - 0084
exact hs_witness - 0085
exact hc_witness_witness_witness_right_right