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 AB AC t i r. (((forall pfp_repeat_index_coefficient_padding_leftzeros. (exists pfa_gap_coefficient_padding_leftzerosindex. pfa_gap_coefficient_padding_leftzerosindex + S (pfp_repeat_index_coefficient_padding_leftzeros) = (t)) -> (((exists ff_h_pfp_coefficient_padding_leftzerosentry. ff_h_pfp_coefficient_padding_leftzerosentry + S (0) = S ((S (pfp_repeat_index_coefficient_padding_leftzeros)) * AC)) /\ exists ff_q_pfp_coefficient_padding_leftzerosentry. AB = ff_q_pfp_coefficient_padding_leftzerosentry * S ((S (pfp_repeat_index_coefficient_padding_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_coefficient_padding_left pfrep_value_coefficient_padding_left. (exists pfa_gap_coefficient_padding_leftbound. pfa_gap_coefficient_padding_leftbound + S (pfrep_index_coefficient_padding_left) = (L)) -> (((exists ff_h_pfp_coefficient_padding_leftinput. ff_h_pfp_coefficient_padding_leftinput + S (pfrep_value_coefficient_padding_left) = S ((S (pfrep_index_coefficient_padding_left)) * ac)) /\ exists ff_q_pfp_coefficient_padding_leftinput. ab = ff_q_pfp_coefficient_padding_leftinput * S ((S (pfrep_index_coefficient_padding_left)) * ac) + (pfrep_value_coefficient_padding_left))) -> (((exists ff_h_pfp_coefficient_padding_leftoutput. ff_h_pfp_coefficient_padding_leftoutput + S (pfrep_value_coefficient_padding_left) = S ((S ((t)+pfrep_index_coefficient_padding_left)) * AC)) /\ exists ff_q_pfp_coefficient_padding_leftoutput. AB = ff_q_pfp_coefficient_padding_leftoutput * S ((S ((t)+pfrep_index_coefficient_padding_left)) * AC) + (pfrep_value_coefficient_padding_left))))))) -> (exists pfc_terms_code_coefficient_original_left pfc_terms_scale_coefficient_original_left pfc_natural_sum_coefficient_original_left. ((forall pfc_index_coefficient_original_leftdiagonal. (exists pfa_gap_coefficient_original_leftdiagonalbound. pfa_gap_coefficient_original_leftdiagonalbound + S (pfc_index_coefficient_original_leftdiagonal) = (S (i))) -> exists pfc_value_coefficient_original_leftdiagonal. ((((exists ff_h_pfp_coefficient_original_leftdiagonalentry. ff_h_pfp_coefficient_original_leftdiagonalentry + S (pfc_value_coefficient_original_leftdiagonal) = S ((S (pfc_index_coefficient_original_leftdiagonal)) * pfc_terms_scale_coefficient_original_left)) /\ exists ff_q_pfp_coefficient_original_leftdiagonalentry. pfc_terms_code_coefficient_original_left = ff_q_pfp_coefficient_original_leftdiagonalentry * S ((S (pfc_index_coefficient_original_leftdiagonal)) * pfc_terms_scale_coefficient_original_left) + (pfc_value_coefficient_original_leftdiagonal))) /\ ((exists pfc_complement_coefficient_original_leftdiagonalterm pfc_left_coefficient_original_leftdiagonalterm pfc_right_coefficient_original_leftdiagonalterm. (((pfc_index_coefficient_original_leftdiagonal)+pfc_complement_coefficient_original_leftdiagonalterm=(i)) /\ ((((((exists pfa_gap_coefficient_original_leftdiagonaltermleftinside. pfa_gap_coefficient_original_leftdiagonaltermleftinside + S (pfc_index_coefficient_original_leftdiagonal) = (L)) /\ ((((exists ff_h_pfp_coefficient_original_leftdiagonaltermleftentry. ff_h_pfp_coefficient_original_leftdiagonaltermleftentry + S (pfc_left_coefficient_original_leftdiagonalterm) = S ((S (pfc_index_coefficient_original_leftdiagonal)) * ac)) /\ exists ff_q_pfp_coefficient_original_leftdiagonaltermleftentry. ab = ff_q_pfp_coefficient_original_leftdiagonaltermleftentry * S ((S (pfc_index_coefficient_original_leftdiagonal)) * ac) + (pfc_left_coefficient_original_leftdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_original_leftdiagonaltermleftoutside. pfc_gap_coefficient_original_leftdiagonaltermleftoutside+(L)=(pfc_index_coefficient_original_leftdiagonal)) /\ (((pfc_left_coefficient_original_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_original_leftdiagonaltermrightinside. pfa_gap_coefficient_original_leftdiagonaltermrightinside + S (pfc_complement_coefficient_original_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_original_leftdiagonaltermrightentry. ff_h_pfp_coefficient_original_leftdiagonaltermrightentry + S (pfc_right_coefficient_original_leftdiagonalterm) = S ((S (pfc_complement_coefficient_original_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_original_leftdiagonaltermrightentry. bb = ff_q_pfp_coefficient_original_leftdiagonaltermrightentry * S ((S (pfc_complement_coefficient_original_leftdiagonalterm)) * bc) + (pfc_right_coefficient_original_leftdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_original_leftdiagonaltermrightoutside. pfc_gap_coefficient_original_leftdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_original_leftdiagonalterm)) /\ (((pfc_right_coefficient_original_leftdiagonalterm)=0))))) /\ (((pfc_value_coefficient_original_leftdiagonal)=pfc_left_coefficient_original_leftdiagonalterm*pfc_right_coefficient_original_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_original_leftsum fs_v_pfc_coefficient_original_leftsum. ((((exists fs_h_pfc_coefficient_original_leftsum_body_start. fs_h_pfc_coefficient_original_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_original_leftsum)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_start. fs_u_pfc_coefficient_original_leftsum = fs_q_pfc_coefficient_original_leftsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_original_leftsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_original_leftsum_body_terminal. fs_h_pfc_coefficient_original_leftsum_body_terminal + S (pfc_natural_sum_coefficient_original_left) = S ((S (S (i))) * fs_v_pfc_coefficient_original_leftsum)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_terminal. fs_u_pfc_coefficient_original_leftsum = fs_q_pfc_coefficient_original_leftsum_body_terminal * S ((S (S (i))) * fs_v_pfc_coefficient_original_leftsum) + (pfc_natural_sum_coefficient_original_left))) /\ forall fs_i_pfc_coefficient_original_leftsum_body_steps. (exists fs_lt_pfc_coefficient_original_leftsum_body_steps_bound. fs_lt_pfc_coefficient_original_leftsum_body_steps_bound + S fs_i_pfc_coefficient_original_leftsum_body_steps = S (i)) -> exists fs_a_pfc_coefficient_original_leftsum_body_steps fs_r_pfc_coefficient_original_leftsum_body_steps fs_s_pfc_coefficient_original_leftsum_body_steps. ((((exists fs_h_pfc_coefficient_original_leftsum_body_steps_summand. fs_h_pfc_coefficient_original_leftsum_body_steps_summand + S (fs_a_pfc_coefficient_original_leftsum_body_steps) = S ((S (fs_i_pfc_coefficient_original_leftsum_body_steps)) * pfc_terms_scale_coefficient_original_left)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_steps_summand. pfc_terms_code_coefficient_original_left = fs_q_pfc_coefficient_original_leftsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_original_leftsum_body_steps)) * pfc_terms_scale_coefficient_original_left) + (fs_a_pfc_coefficient_original_leftsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_original_leftsum_body_steps_partial. fs_h_pfc_coefficient_original_leftsum_body_steps_partial + S (fs_r_pfc_coefficient_original_leftsum_body_steps) = S ((S (fs_i_pfc_coefficient_original_leftsum_body_steps)) * fs_v_pfc_coefficient_original_leftsum)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_steps_partial. fs_u_pfc_coefficient_original_leftsum = fs_q_pfc_coefficient_original_leftsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_original_leftsum_body_steps)) * fs_v_pfc_coefficient_original_leftsum) + (fs_r_pfc_coefficient_original_leftsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_original_leftsum_body_steps_successor. fs_h_pfc_coefficient_original_leftsum_body_steps_successor + S (fs_s_pfc_coefficient_original_leftsum_body_steps) = S ((S (S fs_i_pfc_coefficient_original_leftsum_body_steps)) * fs_v_pfc_coefficient_original_leftsum)) /\ exists fs_q_pfc_coefficient_original_leftsum_body_steps_successor. fs_u_pfc_coefficient_original_leftsum = fs_q_pfc_coefficient_original_leftsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_original_leftsum_body_steps)) * fs_v_pfc_coefficient_original_leftsum) + (fs_s_pfc_coefficient_original_leftsum_body_steps))) /\ fs_s_pfc_coefficient_original_leftsum_body_steps = fs_r_pfc_coefficient_original_leftsum_body_steps + fs_a_pfc_coefficient_original_leftsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_original_leftresiduebound. pfa_gap_coefficient_original_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_original_leftresiduecongruence pfa_offset_right_coefficient_original_leftresiduecongruence. (pfc_natural_sum_coefficient_original_left) + (p) * pfa_offset_left_coefficient_original_leftresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_original_leftresiduecongruence))))))))) -> (exists pfc_terms_code_coefficient_shifted_left pfc_terms_scale_coefficient_shifted_left pfc_natural_sum_coefficient_shifted_left. ((forall pfc_index_coefficient_shifted_leftdiagonal. (exists pfa_gap_coefficient_shifted_leftdiagonalbound. pfa_gap_coefficient_shifted_leftdiagonalbound + S (pfc_index_coefficient_shifted_leftdiagonal) = (S (t+i))) -> exists pfc_value_coefficient_shifted_leftdiagonal. ((((exists ff_h_pfp_coefficient_shifted_leftdiagonalentry. ff_h_pfp_coefficient_shifted_leftdiagonalentry + S (pfc_value_coefficient_shifted_leftdiagonal) = S ((S (pfc_index_coefficient_shifted_leftdiagonal)) * pfc_terms_scale_coefficient_shifted_left)) /\ exists ff_q_pfp_coefficient_shifted_leftdiagonalentry. pfc_terms_code_coefficient_shifted_left = ff_q_pfp_coefficient_shifted_leftdiagonalentry * S ((S (pfc_index_coefficient_shifted_leftdiagonal)) * pfc_terms_scale_coefficient_shifted_left) + (pfc_value_coefficient_shifted_leftdiagonal))) /\ ((exists pfc_complement_coefficient_shifted_leftdiagonalterm pfc_left_coefficient_shifted_leftdiagonalterm pfc_right_coefficient_shifted_leftdiagonalterm. (((pfc_index_coefficient_shifted_leftdiagonal)+pfc_complement_coefficient_shifted_leftdiagonalterm=(t+i)) /\ ((((((exists pfa_gap_coefficient_shifted_leftdiagonaltermleftinside. pfa_gap_coefficient_shifted_leftdiagonaltermleftinside + S (pfc_index_coefficient_shifted_leftdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_coefficient_shifted_leftdiagonaltermleftentry. ff_h_pfp_coefficient_shifted_leftdiagonaltermleftentry + S (pfc_left_coefficient_shifted_leftdiagonalterm) = S ((S (pfc_index_coefficient_shifted_leftdiagonal)) * AC)) /\ exists ff_q_pfp_coefficient_shifted_leftdiagonaltermleftentry. AB = ff_q_pfp_coefficient_shifted_leftdiagonaltermleftentry * S ((S (pfc_index_coefficient_shifted_leftdiagonal)) * AC) + (pfc_left_coefficient_shifted_leftdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_shifted_leftdiagonaltermleftoutside. pfc_gap_coefficient_shifted_leftdiagonaltermleftoutside+(t+L)=(pfc_index_coefficient_shifted_leftdiagonal)) /\ (((pfc_left_coefficient_shifted_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_coefficient_shifted_leftdiagonaltermrightinside. pfa_gap_coefficient_shifted_leftdiagonaltermrightinside + S (pfc_complement_coefficient_shifted_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_shifted_leftdiagonaltermrightentry. ff_h_pfp_coefficient_shifted_leftdiagonaltermrightentry + S (pfc_right_coefficient_shifted_leftdiagonalterm) = S ((S (pfc_complement_coefficient_shifted_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_coefficient_shifted_leftdiagonaltermrightentry. bb = ff_q_pfp_coefficient_shifted_leftdiagonaltermrightentry * S ((S (pfc_complement_coefficient_shifted_leftdiagonalterm)) * bc) + (pfc_right_coefficient_shifted_leftdiagonalterm)))))) \/ (((exists pfc_gap_coefficient_shifted_leftdiagonaltermrightoutside. pfc_gap_coefficient_shifted_leftdiagonaltermrightoutside+(M)=(pfc_complement_coefficient_shifted_leftdiagonalterm)) /\ (((pfc_right_coefficient_shifted_leftdiagonalterm)=0))))) /\ (((pfc_value_coefficient_shifted_leftdiagonal)=pfc_left_coefficient_shifted_leftdiagonalterm*pfc_right_coefficient_shifted_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_coefficient_shifted_leftsum fs_v_pfc_coefficient_shifted_leftsum. ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_start. fs_h_pfc_coefficient_shifted_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_shifted_leftsum)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_start. fs_u_pfc_coefficient_shifted_leftsum = fs_q_pfc_coefficient_shifted_leftsum_body_start * S ((S (0)) * fs_v_pfc_coefficient_shifted_leftsum) + (0))) /\ ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_terminal. fs_h_pfc_coefficient_shifted_leftsum_body_terminal + S (pfc_natural_sum_coefficient_shifted_left) = S ((S (S (t+i))) * fs_v_pfc_coefficient_shifted_leftsum)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_terminal. fs_u_pfc_coefficient_shifted_leftsum = fs_q_pfc_coefficient_shifted_leftsum_body_terminal * S ((S (S (t+i))) * fs_v_pfc_coefficient_shifted_leftsum) + (pfc_natural_sum_coefficient_shifted_left))) /\ forall fs_i_pfc_coefficient_shifted_leftsum_body_steps. (exists fs_lt_pfc_coefficient_shifted_leftsum_body_steps_bound. fs_lt_pfc_coefficient_shifted_leftsum_body_steps_bound + S fs_i_pfc_coefficient_shifted_leftsum_body_steps = S (t+i)) -> exists fs_a_pfc_coefficient_shifted_leftsum_body_steps fs_r_pfc_coefficient_shifted_leftsum_body_steps fs_s_pfc_coefficient_shifted_leftsum_body_steps. ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_steps_summand. fs_h_pfc_coefficient_shifted_leftsum_body_steps_summand + S (fs_a_pfc_coefficient_shifted_leftsum_body_steps) = S ((S (fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * pfc_terms_scale_coefficient_shifted_left)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_steps_summand. pfc_terms_code_coefficient_shifted_left = fs_q_pfc_coefficient_shifted_leftsum_body_steps_summand * S ((S (fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * pfc_terms_scale_coefficient_shifted_left) + (fs_a_pfc_coefficient_shifted_leftsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_steps_partial. fs_h_pfc_coefficient_shifted_leftsum_body_steps_partial + S (fs_r_pfc_coefficient_shifted_leftsum_body_steps) = S ((S (fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * fs_v_pfc_coefficient_shifted_leftsum)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_steps_partial. fs_u_pfc_coefficient_shifted_leftsum = fs_q_pfc_coefficient_shifted_leftsum_body_steps_partial * S ((S (fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * fs_v_pfc_coefficient_shifted_leftsum) + (fs_r_pfc_coefficient_shifted_leftsum_body_steps))) /\ ((((exists fs_h_pfc_coefficient_shifted_leftsum_body_steps_successor. fs_h_pfc_coefficient_shifted_leftsum_body_steps_successor + S (fs_s_pfc_coefficient_shifted_leftsum_body_steps) = S ((S (S fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * fs_v_pfc_coefficient_shifted_leftsum)) /\ exists fs_q_pfc_coefficient_shifted_leftsum_body_steps_successor. fs_u_pfc_coefficient_shifted_leftsum = fs_q_pfc_coefficient_shifted_leftsum_body_steps_successor * S ((S (S fs_i_pfc_coefficient_shifted_leftsum_body_steps)) * fs_v_pfc_coefficient_shifted_leftsum) + (fs_s_pfc_coefficient_shifted_leftsum_body_steps))) /\ fs_s_pfc_coefficient_shifted_leftsum_body_steps = fs_r_pfc_coefficient_shifted_leftsum_body_steps + fs_a_pfc_coefficient_shifted_leftsum_body_steps)))))) /\ ((((exists pfa_gap_coefficient_shifted_leftresiduebound. pfa_gap_coefficient_shifted_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_coefficient_shifted_leftresiduecongruence pfa_offset_right_coefficient_shifted_leftresiduecongruence. (pfc_natural_sum_coefficient_shifted_left) + (p) * pfa_offset_left_coefficient_shifted_leftresiduecongruence = (r) + (p) * pfa_offset_right_coefficient_shifted_leftresiduecongruence)))))))))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 4 declared prerequisites and contains 83 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 PX0064 polynomial_diagonal_left_padding_left PX005E polynomial_left_pad_natural_sum_invariantDirect 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,t + L,bb,bc,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 (t+L) - L24
specialize polynomial_diagonal_prefix_exists (bb) - L25
specialize polynomial_diagonal_prefix_exists (bc) - L26
specialize polynomial_diagonal_prefix_exists (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 : PolynomialLeftPad(x,x1,S i,t,x3,x4)Definitions: PolynomialLeftPad - L38
specialize polynomial_diagonal_left_padding_left (ab) - L39
specialize polynomial_diagonal_left_padding_left (ac) - L40
specialize polynomial_diagonal_left_padding_left (L) - L41
specialize polynomial_diagonal_left_padding_left (bb) - L42
specialize polynomial_diagonal_left_padding_left (bc) - L43
specialize polynomial_diagonal_left_padding_left (M) - L44
specialize polynomial_diagonal_left_padding_left (AB) - L45
specialize polynomial_diagonal_left_padding_left (AC) - L46
specialize polynomial_diagonal_left_padding_left (t)
09Use earlier factsL47–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
specialize polynomial_diagonal_left_padding_left (i) - L48
specialize polynomial_diagonal_left_padding_left (x) - L49
specialize polynomial_diagonal_left_padding_left (x1) - L50
specialize polynomial_diagonal_left_padding_left (x3) - L51
specialize polynomial_diagonal_left_padding_left (x4) - L52
apply polynomial_diagonal_left_padding_left - L53
exact hpad - L54
exact hc_witness_witness_witness_left - L55
exact hd_witness_witness
10Establish heqL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial left pad natural sum invariant.
- L56
have heq : x5=x2 - L57
specialize polynomial_left_pad_natural_sum_invariant (x) - L58
specialize polynomial_left_pad_natural_sum_invariant (x1) - L59
specialize polynomial_left_pad_natural_sum_invariant (x3) - L60
specialize polynomial_left_pad_natural_sum_invariant (x4) - L61
specialize polynomial_left_pad_natural_sum_invariant (t) - L62
specialize polynomial_left_pad_natural_sum_invariant (S i) - L63
specialize polynomial_left_pad_natural_sum_invariant (x2) - L64
specialize polynomial_left_pad_natural_sum_invariant (x5) - L65
apply polynomial_left_pad_natural_sum_invariant
11Use earlier factsL66–67
12Establish hlengthL68–73
13Construct an explicit witnessL74–76
14Separate the logical casesL77–77
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L77
split
15Use earlier factsL78–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
exact hd_witness_witness
16Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
17Calculate and transport equalitiesL80–81
Original exact command ledger · 83 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro M - 0008
intro AB - 0009
intro AC - 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_left. (exists pfa_gap_coefficient_padded_diagonal_leftbound. pfa_gap_coefficient_padded_diagonal_leftbound + S (pfc_index_coefficient_padded_diagonal_left) = (S (t+i))) -> exists pfc_value_coefficient_padded_diagonal_left. ((((exists ff_h_pfp_coefficient_padded_diagonal_leftentry. ff_h_pfp_coefficient_padded_diagonal_leftentry + S (pfc_value_coefficient_padded_diagonal_left) = S ((S (pfc_index_coefficient_padded_diagonal_left)) * ec)) /\ exists ff_q_pfp_coefficient_padded_diagonal_leftentry. eb = ff_q_pfp_coefficient_padded_diagonal_leftentry * S ((S (pfc_index_coefficient_padded_diagonal_left)) * ec) + (pfc_value_coefficient_padded_diagonal_left))) /\ ((exists pfc_complement_coefficient_padded_diagonal_leftterm pfc_left_coefficient_padded_diagonal_leftterm pfc_right_coefficient_padded_diagonal_leftterm. (((pfc_index_coefficient_padded_diagonal_left)+pfc_complement_coefficient_padded_diagonal_leftterm=(t+i)) /\ ((((((exists pfa_gap_coefficient_padded_diagonal_lefttermleftinside. pfa_gap_coefficient_padded_diagonal_lefttermleftinside + S (pfc_index_coefficient_padded_diagonal_left) = (t+L)) /\ ((((exists ff_h_pfp_coefficient_padded_diagonal_lefttermleftentry. ff_h_pfp_coefficient_padded_diagonal_lefttermleftentry + S (pfc_left_coefficient_padded_diagonal_leftterm) = S ((S (pfc_index_coefficient_padded_diagonal_left)) * AC)) /\ exists ff_q_pfp_coefficient_padded_diagonal_lefttermleftentry. AB = ff_q_pfp_coefficient_padded_diagonal_lefttermleftentry * S ((S (pfc_index_coefficient_padded_diagonal_left)) * AC) + (pfc_left_coefficient_padded_diagonal_leftterm)))))) \/ (((exists pfc_gap_coefficient_padded_diagonal_lefttermleftoutside. pfc_gap_coefficient_padded_diagonal_lefttermleftoutside+(t+L)=(pfc_index_coefficient_padded_diagonal_left)) /\ (((pfc_left_coefficient_padded_diagonal_leftterm)=0))))) /\ ((((((exists pfa_gap_coefficient_padded_diagonal_lefttermrightinside. pfa_gap_coefficient_padded_diagonal_lefttermrightinside + S (pfc_complement_coefficient_padded_diagonal_leftterm) = (M)) /\ ((((exists ff_h_pfp_coefficient_padded_diagonal_lefttermrightentry. ff_h_pfp_coefficient_padded_diagonal_lefttermrightentry + S (pfc_right_coefficient_padded_diagonal_leftterm) = S ((S (pfc_complement_coefficient_padded_diagonal_leftterm)) * bc)) /\ exists ff_q_pfp_coefficient_padded_diagonal_lefttermrightentry. bb = ff_q_pfp_coefficient_padded_diagonal_lefttermrightentry * S ((S (pfc_complement_coefficient_padded_diagonal_leftterm)) * bc) + (pfc_right_coefficient_padded_diagonal_leftterm)))))) \/ (((exists pfc_gap_coefficient_padded_diagonal_lefttermrightoutside. pfc_gap_coefficient_padded_diagonal_lefttermrightoutside+(M)=(pfc_complement_coefficient_padded_diagonal_leftterm)) /\ (((pfc_right_coefficient_padded_diagonal_leftterm)=0))))) /\ (((pfc_value_coefficient_padded_diagonal_left)=pfc_left_coefficient_padded_diagonal_leftterm*pfc_right_coefficient_padded_diagonal_leftterm)))))))))) - 0021
specialize polynomial_diagonal_prefix_exists (AB) - 0022
specialize polynomial_diagonal_prefix_exists (AC) - 0023
specialize polynomial_diagonal_prefix_exists (t+L) - 0024
specialize polynomial_diagonal_prefix_exists (bb) - 0025
specialize polynomial_diagonal_prefix_exists (bc) - 0026
specialize polynomial_diagonal_prefix_exists (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_left fs_v_pfc_coefficient_padded_sum_left. ((((exists fs_h_pfc_coefficient_padded_sum_left_body_start. fs_h_pfc_coefficient_padded_sum_left_body_start + S (0) = S ((S (0)) * fs_v_pfc_coefficient_padded_sum_left)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_start. fs_u_pfc_coefficient_padded_sum_left = fs_q_pfc_coefficient_padded_sum_left_body_start * S ((S (0)) * fs_v_pfc_coefficient_padded_sum_left) + (0))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_left_body_terminal. fs_h_pfc_coefficient_padded_sum_left_body_terminal + S (n) = S ((S (S (t+i))) * fs_v_pfc_coefficient_padded_sum_left)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_terminal. fs_u_pfc_coefficient_padded_sum_left = fs_q_pfc_coefficient_padded_sum_left_body_terminal * S ((S (S (t+i))) * fs_v_pfc_coefficient_padded_sum_left) + (n))) /\ forall fs_i_pfc_coefficient_padded_sum_left_body_steps. (exists fs_lt_pfc_coefficient_padded_sum_left_body_steps_bound. fs_lt_pfc_coefficient_padded_sum_left_body_steps_bound + S fs_i_pfc_coefficient_padded_sum_left_body_steps = S (t+i)) -> exists fs_a_pfc_coefficient_padded_sum_left_body_steps fs_r_pfc_coefficient_padded_sum_left_body_steps fs_s_pfc_coefficient_padded_sum_left_body_steps. ((((exists fs_h_pfc_coefficient_padded_sum_left_body_steps_summand. fs_h_pfc_coefficient_padded_sum_left_body_steps_summand + S (fs_a_pfc_coefficient_padded_sum_left_body_steps) = S ((S (fs_i_pfc_coefficient_padded_sum_left_body_steps)) * x4)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_steps_summand. x3 = fs_q_pfc_coefficient_padded_sum_left_body_steps_summand * S ((S (fs_i_pfc_coefficient_padded_sum_left_body_steps)) * x4) + (fs_a_pfc_coefficient_padded_sum_left_body_steps))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_left_body_steps_partial. fs_h_pfc_coefficient_padded_sum_left_body_steps_partial + S (fs_r_pfc_coefficient_padded_sum_left_body_steps) = S ((S (fs_i_pfc_coefficient_padded_sum_left_body_steps)) * fs_v_pfc_coefficient_padded_sum_left)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_steps_partial. fs_u_pfc_coefficient_padded_sum_left = fs_q_pfc_coefficient_padded_sum_left_body_steps_partial * S ((S (fs_i_pfc_coefficient_padded_sum_left_body_steps)) * fs_v_pfc_coefficient_padded_sum_left) + (fs_r_pfc_coefficient_padded_sum_left_body_steps))) /\ ((((exists fs_h_pfc_coefficient_padded_sum_left_body_steps_successor. fs_h_pfc_coefficient_padded_sum_left_body_steps_successor + S (fs_s_pfc_coefficient_padded_sum_left_body_steps) = S ((S (S fs_i_pfc_coefficient_padded_sum_left_body_steps)) * fs_v_pfc_coefficient_padded_sum_left)) /\ exists fs_q_pfc_coefficient_padded_sum_left_body_steps_successor. fs_u_pfc_coefficient_padded_sum_left = fs_q_pfc_coefficient_padded_sum_left_body_steps_successor * S ((S (S fs_i_pfc_coefficient_padded_sum_left_body_steps)) * fs_v_pfc_coefficient_padded_sum_left) + (fs_s_pfc_coefficient_padded_sum_left_body_steps))) /\ fs_s_pfc_coefficient_padded_sum_left_body_steps = fs_r_pfc_coefficient_padded_sum_left_body_steps + fs_a_pfc_coefficient_padded_sum_left_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 pfp_repeat_index_coefficient_diagonal_paddingzeros. (exists pfa_gap_coefficient_diagonal_paddingzerosindex. pfa_gap_coefficient_diagonal_paddingzerosindex + S (pfp_repeat_index_coefficient_diagonal_paddingzeros) = (t)) -> (((exists ff_h_pfp_coefficient_diagonal_paddingzerosentry. ff_h_pfp_coefficient_diagonal_paddingzerosentry + S (0) = S ((S (pfp_repeat_index_coefficient_diagonal_paddingzeros)) * x4)) /\ exists ff_q_pfp_coefficient_diagonal_paddingzerosentry. x3 = ff_q_pfp_coefficient_diagonal_paddingzerosentry * S ((S (pfp_repeat_index_coefficient_diagonal_paddingzeros)) * x4) + (0)))) /\ ((forall pfrep_index_coefficient_diagonal_padding pfrep_value_coefficient_diagonal_padding. (exists pfa_gap_coefficient_diagonal_paddingbound. pfa_gap_coefficient_diagonal_paddingbound + S (pfrep_index_coefficient_diagonal_padding) = (S i)) -> (((exists ff_h_pfp_coefficient_diagonal_paddinginput. ff_h_pfp_coefficient_diagonal_paddinginput + S (pfrep_value_coefficient_diagonal_padding) = S ((S (pfrep_index_coefficient_diagonal_padding)) * x1)) /\ exists ff_q_pfp_coefficient_diagonal_paddinginput. x = ff_q_pfp_coefficient_diagonal_paddinginput * S ((S (pfrep_index_coefficient_diagonal_padding)) * x1) + (pfrep_value_coefficient_diagonal_padding))) -> (((exists ff_h_pfp_coefficient_diagonal_paddingoutput. ff_h_pfp_coefficient_diagonal_paddingoutput + S (pfrep_value_coefficient_diagonal_padding) = S ((S ((t)+pfrep_index_coefficient_diagonal_padding)) * x4)) /\ exists ff_q_pfp_coefficient_diagonal_paddingoutput. x3 = ff_q_pfp_coefficient_diagonal_paddingoutput * S ((S ((t)+pfrep_index_coefficient_diagonal_padding)) * x4) + (pfrep_value_coefficient_diagonal_padding)))))) - 0038
specialize polynomial_diagonal_left_padding_left (ab) - 0039
specialize polynomial_diagonal_left_padding_left (ac) - 0040
specialize polynomial_diagonal_left_padding_left (L) - 0041
specialize polynomial_diagonal_left_padding_left (bb) - 0042
specialize polynomial_diagonal_left_padding_left (bc) - 0043
specialize polynomial_diagonal_left_padding_left (M) - 0044
specialize polynomial_diagonal_left_padding_left (AB) - 0045
specialize polynomial_diagonal_left_padding_left (AC) - 0046
specialize polynomial_diagonal_left_padding_left (t) - 0047
specialize polynomial_diagonal_left_padding_left (i) - 0048
specialize polynomial_diagonal_left_padding_left (x) - 0049
specialize polynomial_diagonal_left_padding_left (x1) - 0050
specialize polynomial_diagonal_left_padding_left (x3) - 0051
specialize polynomial_diagonal_left_padding_left (x4) - 0052
apply polynomial_diagonal_left_padding_left - 0053
exact hpad - 0054
exact hc_witness_witness_witness_left - 0055
exact hd_witness_witness - 0056
have heq : x5=x2 - 0057
specialize polynomial_left_pad_natural_sum_invariant (x) - 0058
specialize polynomial_left_pad_natural_sum_invariant (x1) - 0059
specialize polynomial_left_pad_natural_sum_invariant (x3) - 0060
specialize polynomial_left_pad_natural_sum_invariant (x4) - 0061
specialize polynomial_left_pad_natural_sum_invariant (t) - 0062
specialize polynomial_left_pad_natural_sum_invariant (S i) - 0063
specialize polynomial_left_pad_natural_sum_invariant (x2) - 0064
specialize polynomial_left_pad_natural_sum_invariant (x5) - 0065
apply polynomial_left_pad_natural_sum_invariant - 0066
exact hdata - 0067
exact hc_witness_witness_witness_right_left - 0068
have hlength : t+S i=S (t+i) - 0069
simp - 0070
rewrite hlength - 0071
rewrite hlength - 0072
rewrite hlength - 0073
exact hs_witness - 0074
exists x3 - 0075
exists x4 - 0076
exists x2 - 0077
split - 0078
exact hd_witness_witness - 0079
split - 0080
rewrite heq at hs_witness - 0081
rewrite heq at hs_witness - 0082
exact hs_witness - 0083
exact hc_witness_witness_witness_right_right