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. (~(p=0)) -> (((forall pfp_repeat_index_before_coefficient_pad_rightzeros. (exists pfa_gap_before_coefficient_pad_rightzerosindex. pfa_gap_before_coefficient_pad_rightzerosindex + S (pfp_repeat_index_before_coefficient_pad_rightzeros) = (t)) -> (((exists ff_h_pfp_before_coefficient_pad_rightzerosentry. ff_h_pfp_before_coefficient_pad_rightzerosentry + S (0) = S ((S (pfp_repeat_index_before_coefficient_pad_rightzeros)) * BC)) /\ exists ff_q_pfp_before_coefficient_pad_rightzerosentry. BB = ff_q_pfp_before_coefficient_pad_rightzerosentry * S ((S (pfp_repeat_index_before_coefficient_pad_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_before_coefficient_pad_right pfrep_value_before_coefficient_pad_right. (exists pfa_gap_before_coefficient_pad_rightbound. pfa_gap_before_coefficient_pad_rightbound + S (pfrep_index_before_coefficient_pad_right) = (M)) -> (((exists ff_h_pfp_before_coefficient_pad_rightinput. ff_h_pfp_before_coefficient_pad_rightinput + S (pfrep_value_before_coefficient_pad_right) = S ((S (pfrep_index_before_coefficient_pad_right)) * bc)) /\ exists ff_q_pfp_before_coefficient_pad_rightinput. bb = ff_q_pfp_before_coefficient_pad_rightinput * S ((S (pfrep_index_before_coefficient_pad_right)) * bc) + (pfrep_value_before_coefficient_pad_right))) -> (((exists ff_h_pfp_before_coefficient_pad_rightoutput. ff_h_pfp_before_coefficient_pad_rightoutput + S (pfrep_value_before_coefficient_pad_right) = S ((S ((t)+pfrep_index_before_coefficient_pad_right)) * BC)) /\ exists ff_q_pfp_before_coefficient_pad_rightoutput. BB = ff_q_pfp_before_coefficient_pad_rightoutput * S ((S ((t)+pfrep_index_before_coefficient_pad_right)) * BC) + (pfrep_value_before_coefficient_pad_right))))))) -> (exists pfa_gap_before_coefficient_index_right. pfa_gap_before_coefficient_index_right + S (i) = (t)) -> (exists pfc_terms_code_before_coefficient_actual_right pfc_terms_scale_before_coefficient_actual_right pfc_natural_sum_before_coefficient_actual_right. ((forall pfc_index_before_coefficient_actual_rightdiagonal. (exists pfa_gap_before_coefficient_actual_rightdiagonalbound. pfa_gap_before_coefficient_actual_rightdiagonalbound + S (pfc_index_before_coefficient_actual_rightdiagonal) = (S (i))) -> exists pfc_value_before_coefficient_actual_rightdiagonal. ((((exists ff_h_pfp_before_coefficient_actual_rightdiagonalentry. ff_h_pfp_before_coefficient_actual_rightdiagonalentry + S (pfc_value_before_coefficient_actual_rightdiagonal) = S ((S (pfc_index_before_coefficient_actual_rightdiagonal)) * pfc_terms_scale_before_coefficient_actual_right)) /\ exists ff_q_pfp_before_coefficient_actual_rightdiagonalentry. pfc_terms_code_before_coefficient_actual_right = ff_q_pfp_before_coefficient_actual_rightdiagonalentry * S ((S (pfc_index_before_coefficient_actual_rightdiagonal)) * pfc_terms_scale_before_coefficient_actual_right) + (pfc_value_before_coefficient_actual_rightdiagonal))) /\ ((exists pfc_complement_before_coefficient_actual_rightdiagonalterm pfc_left_before_coefficient_actual_rightdiagonalterm pfc_right_before_coefficient_actual_rightdiagonalterm. (((pfc_index_before_coefficient_actual_rightdiagonal)+pfc_complement_before_coefficient_actual_rightdiagonalterm=(i)) /\ ((((((exists pfa_gap_before_coefficient_actual_rightdiagonaltermleftinside. pfa_gap_before_coefficient_actual_rightdiagonaltermleftinside + S (pfc_index_before_coefficient_actual_rightdiagonal) = (L)) /\ ((((exists ff_h_pfp_before_coefficient_actual_rightdiagonaltermleftentry. ff_h_pfp_before_coefficient_actual_rightdiagonaltermleftentry + S (pfc_left_before_coefficient_actual_rightdiagonalterm) = S ((S (pfc_index_before_coefficient_actual_rightdiagonal)) * ac)) /\ exists ff_q_pfp_before_coefficient_actual_rightdiagonaltermleftentry. ab = ff_q_pfp_before_coefficient_actual_rightdiagonaltermleftentry * S ((S (pfc_index_before_coefficient_actual_rightdiagonal)) * ac) + (pfc_left_before_coefficient_actual_rightdiagonalterm)))))) \/ (((exists pfc_gap_before_coefficient_actual_rightdiagonaltermleftoutside. pfc_gap_before_coefficient_actual_rightdiagonaltermleftoutside+(L)=(pfc_index_before_coefficient_actual_rightdiagonal)) /\ (((pfc_left_before_coefficient_actual_rightdiagonalterm)=0))))) /\ ((((((exists pfa_gap_before_coefficient_actual_rightdiagonaltermrightinside. pfa_gap_before_coefficient_actual_rightdiagonaltermrightinside + S (pfc_complement_before_coefficient_actual_rightdiagonalterm) = (t+M)) /\ ((((exists ff_h_pfp_before_coefficient_actual_rightdiagonaltermrightentry. ff_h_pfp_before_coefficient_actual_rightdiagonaltermrightentry + S (pfc_right_before_coefficient_actual_rightdiagonalterm) = S ((S (pfc_complement_before_coefficient_actual_rightdiagonalterm)) * BC)) /\ exists ff_q_pfp_before_coefficient_actual_rightdiagonaltermrightentry. BB = ff_q_pfp_before_coefficient_actual_rightdiagonaltermrightentry * S ((S (pfc_complement_before_coefficient_actual_rightdiagonalterm)) * BC) + (pfc_right_before_coefficient_actual_rightdiagonalterm)))))) \/ (((exists pfc_gap_before_coefficient_actual_rightdiagonaltermrightoutside. pfc_gap_before_coefficient_actual_rightdiagonaltermrightoutside+(t+M)=(pfc_complement_before_coefficient_actual_rightdiagonalterm)) /\ (((pfc_right_before_coefficient_actual_rightdiagonalterm)=0))))) /\ (((pfc_value_before_coefficient_actual_rightdiagonal)=pfc_left_before_coefficient_actual_rightdiagonalterm*pfc_right_before_coefficient_actual_rightdiagonalterm))))))))))) /\ (((exists fs_u_pfc_before_coefficient_actual_rightsum fs_v_pfc_before_coefficient_actual_rightsum. ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_start. fs_h_pfc_before_coefficient_actual_rightsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_before_coefficient_actual_rightsum)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_start. fs_u_pfc_before_coefficient_actual_rightsum = fs_q_pfc_before_coefficient_actual_rightsum_body_start * S ((S (0)) * fs_v_pfc_before_coefficient_actual_rightsum) + (0))) /\ ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_terminal. fs_h_pfc_before_coefficient_actual_rightsum_body_terminal + S (pfc_natural_sum_before_coefficient_actual_right) = S ((S (S (i))) * fs_v_pfc_before_coefficient_actual_rightsum)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_terminal. fs_u_pfc_before_coefficient_actual_rightsum = fs_q_pfc_before_coefficient_actual_rightsum_body_terminal * S ((S (S (i))) * fs_v_pfc_before_coefficient_actual_rightsum) + (pfc_natural_sum_before_coefficient_actual_right))) /\ forall fs_i_pfc_before_coefficient_actual_rightsum_body_steps. (exists fs_lt_pfc_before_coefficient_actual_rightsum_body_steps_bound. fs_lt_pfc_before_coefficient_actual_rightsum_body_steps_bound + S fs_i_pfc_before_coefficient_actual_rightsum_body_steps = S (i)) -> exists fs_a_pfc_before_coefficient_actual_rightsum_body_steps fs_r_pfc_before_coefficient_actual_rightsum_body_steps fs_s_pfc_before_coefficient_actual_rightsum_body_steps. ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_steps_summand. fs_h_pfc_before_coefficient_actual_rightsum_body_steps_summand + S (fs_a_pfc_before_coefficient_actual_rightsum_body_steps) = S ((S (fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * pfc_terms_scale_before_coefficient_actual_right)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_steps_summand. pfc_terms_code_before_coefficient_actual_right = fs_q_pfc_before_coefficient_actual_rightsum_body_steps_summand * S ((S (fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * pfc_terms_scale_before_coefficient_actual_right) + (fs_a_pfc_before_coefficient_actual_rightsum_body_steps))) /\ ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_steps_partial. fs_h_pfc_before_coefficient_actual_rightsum_body_steps_partial + S (fs_r_pfc_before_coefficient_actual_rightsum_body_steps) = S ((S (fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * fs_v_pfc_before_coefficient_actual_rightsum)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_steps_partial. fs_u_pfc_before_coefficient_actual_rightsum = fs_q_pfc_before_coefficient_actual_rightsum_body_steps_partial * S ((S (fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * fs_v_pfc_before_coefficient_actual_rightsum) + (fs_r_pfc_before_coefficient_actual_rightsum_body_steps))) /\ ((((exists fs_h_pfc_before_coefficient_actual_rightsum_body_steps_successor. fs_h_pfc_before_coefficient_actual_rightsum_body_steps_successor + S (fs_s_pfc_before_coefficient_actual_rightsum_body_steps) = S ((S (S fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * fs_v_pfc_before_coefficient_actual_rightsum)) /\ exists fs_q_pfc_before_coefficient_actual_rightsum_body_steps_successor. fs_u_pfc_before_coefficient_actual_rightsum = fs_q_pfc_before_coefficient_actual_rightsum_body_steps_successor * S ((S (S fs_i_pfc_before_coefficient_actual_rightsum_body_steps)) * fs_v_pfc_before_coefficient_actual_rightsum) + (fs_s_pfc_before_coefficient_actual_rightsum_body_steps))) /\ fs_s_pfc_before_coefficient_actual_rightsum_body_steps = fs_r_pfc_before_coefficient_actual_rightsum_body_steps + fs_a_pfc_before_coefficient_actual_rightsum_body_steps)))))) /\ ((((exists pfa_gap_before_coefficient_actual_rightresiduebound. pfa_gap_before_coefficient_actual_rightresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_before_coefficient_actual_rightresiduecongruence pfa_offset_right_before_coefficient_actual_rightresiduecongruence. (pfc_natural_sum_before_coefficient_actual_right) + (p) * pfa_offset_left_before_coefficient_actual_rightresiduecongruence = (r) + (p) * pfa_offset_right_before_coefficient_actual_rightresiduecongruence))))))))) -> (r=0)Constructive proof overview
Generated structural guide
Every actual convolution coefficient before the added leading block is zero at a nonzero modulus.
The unchanged tactic script uses 6 declared prerequisites and contains 77 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PX0063 polynomial_diagonal_term_left_padding_zero_right le_trans Alpha theorem; checked-use authorized beta_repeat_sum_exact Alpha theorem; checked-use authorized prime_field_residue_bounded_value Alpha theorem; checked-use authorized one_le_of_ne_zero Alpha theorem; checked-use authorized le_add_right 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–16
03Separate the logical casesL17–21
04Establish hzL22–24
05Establish htL25–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hc witness witness witness left.
06Separate the logical casesL29–30
07Establish heqL31–40
Establish this local claim before using it. It is not an additional assumption.
- L31
have heq : x3=0 - L32
specialize polynomial_diagonal_term_left_padding_zero_right (ab) - L33
specialize polynomial_diagonal_term_left_padding_zero_right (ac) - L34
specialize polynomial_diagonal_term_left_padding_zero_right (L) - L35
specialize polynomial_diagonal_term_left_padding_zero_right (bb) - L36
specialize polynomial_diagonal_term_left_padding_zero_right (bc) - L37
specialize polynomial_diagonal_term_left_padding_zero_right (M) - L38
specialize polynomial_diagonal_term_left_padding_zero_right (BB) - L39
specialize polynomial_diagonal_term_left_padding_zero_right (BC) - L40
specialize polynomial_diagonal_term_left_padding_zero_right (t)
08Use earlier factsL41–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
specialize polynomial_diagonal_term_left_padding_zero_right (i) - L42
specialize polynomial_diagonal_term_left_padding_zero_right (j) - L43
specialize polynomial_diagonal_term_left_padding_zero_right (x3) - L44
apply polynomial_diagonal_term_left_padding_zero_right - L45
exact hpad - L46
specialize le_trans (S i) - L47
specialize le_trans (t) - L48
specialize le_trans (t+j) - L49
apply le_trans - L50
exact hi
09Use earlier factsL51–54
10Calculate and transport equalitiesL55–56
11Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact ht_witness_left
12Establish hsumL58–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta repeat sum exact.
- L58
have hsum : x2=0 - L59
trans (S i)*0 - L60
specialize beta_repeat_sum_exact (x) - L61
specialize beta_repeat_sum_exact (x1) - L62
specialize beta_repeat_sum_exact (0) - L63
specialize beta_repeat_sum_exact (S i) - L64
specialize beta_repeat_sum_exact (x2) - L65
apply beta_repeat_sum_exact - L66
exact hz - L67
exact hc_witness_witness_witness_right_left
13Calculate and transport equalitiesL68–69
14Use earlier factsL70–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
specialize prime_field_residue_bounded_value (p) - L71
specialize prime_field_residue_bounded_value (0) - L72
specialize prime_field_residue_bounded_value (r) - L73
apply prime_field_residue_bounded_value - L74
specialize one_le_of_ne_zero (p) - L75
apply one_le_of_ne_zero - L76
exact hp - L77
exact hc_witness_witness_witness_right_right
Original exact command ledger · 77 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 hp - 0014
intro hpad - 0015
intro hi - 0016
intro hc - 0017
cases hc - 0018
cases hc_witness - 0019
cases hc_witness_witness - 0020
cases hc_witness_witness_witness - 0021
cases hc_witness_witness_witness_right - 0022
have hz : forall pfp_repeat_index_before_coefficient_zero_diagonal_right. (exists pfa_gap_before_coefficient_zero_diagonal_rightindex. pfa_gap_before_coefficient_zero_diagonal_rightindex + S (pfp_repeat_index_before_coefficient_zero_diagonal_right) = (S i)) -> (((exists ff_h_pfp_before_coefficient_zero_diagonal_rightentry. ff_h_pfp_before_coefficient_zero_diagonal_rightentry + S (0) = S ((S (pfp_repeat_index_before_coefficient_zero_diagonal_right)) * x1)) /\ exists ff_q_pfp_before_coefficient_zero_diagonal_rightentry. x = ff_q_pfp_before_coefficient_zero_diagonal_rightentry * S ((S (pfp_repeat_index_before_coefficient_zero_diagonal_right)) * x1) + (0))) - 0023
intro j - 0024
intro hj - 0025
have ht : exists z. ((((exists ff_h_pfp_before_coefficient_entry_right. ff_h_pfp_before_coefficient_entry_right + S (z) = S ((S (j)) * x1)) /\ exists ff_q_pfp_before_coefficient_entry_right. x = ff_q_pfp_before_coefficient_entry_right * S ((S (j)) * x1) + (z))) /\ ((exists pfc_complement_before_coefficient_term_right pfc_left_before_coefficient_term_right pfc_right_before_coefficient_term_right. (((j)+pfc_complement_before_coefficient_term_right=(i)) /\ ((((((exists pfa_gap_before_coefficient_term_rightleftinside. pfa_gap_before_coefficient_term_rightleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_before_coefficient_term_rightleftentry. ff_h_pfp_before_coefficient_term_rightleftentry + S (pfc_left_before_coefficient_term_right) = S ((S (j)) * ac)) /\ exists ff_q_pfp_before_coefficient_term_rightleftentry. ab = ff_q_pfp_before_coefficient_term_rightleftentry * S ((S (j)) * ac) + (pfc_left_before_coefficient_term_right)))))) \/ (((exists pfc_gap_before_coefficient_term_rightleftoutside. pfc_gap_before_coefficient_term_rightleftoutside+(L)=(j)) /\ (((pfc_left_before_coefficient_term_right)=0))))) /\ ((((((exists pfa_gap_before_coefficient_term_rightrightinside. pfa_gap_before_coefficient_term_rightrightinside + S (pfc_complement_before_coefficient_term_right) = (t+M)) /\ ((((exists ff_h_pfp_before_coefficient_term_rightrightentry. ff_h_pfp_before_coefficient_term_rightrightentry + S (pfc_right_before_coefficient_term_right) = S ((S (pfc_complement_before_coefficient_term_right)) * BC)) /\ exists ff_q_pfp_before_coefficient_term_rightrightentry. BB = ff_q_pfp_before_coefficient_term_rightrightentry * S ((S (pfc_complement_before_coefficient_term_right)) * BC) + (pfc_right_before_coefficient_term_right)))))) \/ (((exists pfc_gap_before_coefficient_term_rightrightoutside. pfc_gap_before_coefficient_term_rightrightoutside+(t+M)=(pfc_complement_before_coefficient_term_right)) /\ (((pfc_right_before_coefficient_term_right)=0))))) /\ (((z)=pfc_left_before_coefficient_term_right*pfc_right_before_coefficient_term_right)))))))))) - 0026
specialize hc_witness_witness_witness_left (j) - 0027
apply hc_witness_witness_witness_left - 0028
exact hj - 0029
cases ht - 0030
cases ht_witness - 0031
have heq : x3=0 - 0032
specialize polynomial_diagonal_term_left_padding_zero_right (ab) - 0033
specialize polynomial_diagonal_term_left_padding_zero_right (ac) - 0034
specialize polynomial_diagonal_term_left_padding_zero_right (L) - 0035
specialize polynomial_diagonal_term_left_padding_zero_right (bb) - 0036
specialize polynomial_diagonal_term_left_padding_zero_right (bc) - 0037
specialize polynomial_diagonal_term_left_padding_zero_right (M) - 0038
specialize polynomial_diagonal_term_left_padding_zero_right (BB) - 0039
specialize polynomial_diagonal_term_left_padding_zero_right (BC) - 0040
specialize polynomial_diagonal_term_left_padding_zero_right (t) - 0041
specialize polynomial_diagonal_term_left_padding_zero_right (i) - 0042
specialize polynomial_diagonal_term_left_padding_zero_right (j) - 0043
specialize polynomial_diagonal_term_left_padding_zero_right (x3) - 0044
apply polynomial_diagonal_term_left_padding_zero_right - 0045
exact hpad - 0046
specialize le_trans (S i) - 0047
specialize le_trans (t) - 0048
specialize le_trans (t+j) - 0049
apply le_trans - 0050
exact hi - 0051
specialize le_add_right (t) - 0052
specialize le_add_right (j) - 0053
apply le_add_right - 0054
exact ht_witness_right - 0055
rewrite heq at ht_witness_left - 0056
rewrite heq at ht_witness_left - 0057
exact ht_witness_left - 0058
have hsum : x2=0 - 0059
trans (S i)*0 - 0060
specialize beta_repeat_sum_exact (x) - 0061
specialize beta_repeat_sum_exact (x1) - 0062
specialize beta_repeat_sum_exact (0) - 0063
specialize beta_repeat_sum_exact (S i) - 0064
specialize beta_repeat_sum_exact (x2) - 0065
apply beta_repeat_sum_exact - 0066
exact hz - 0067
exact hc_witness_witness_witness_right_left - 0068
simp - 0069
rewrite hsum at hc_witness_witness_witness_right_right - 0070
specialize prime_field_residue_bounded_value (p) - 0071
specialize prime_field_residue_bounded_value (0) - 0072
specialize prime_field_residue_bounded_value (r) - 0073
apply prime_field_residue_bounded_value - 0074
specialize one_le_of_ne_zero (p) - 0075
apply one_le_of_ne_zero - 0076
exact hp - 0077
exact hc_witness_witness_witness_right_right