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. (~(p=0)) -> (((forall pfp_repeat_index_before_coefficient_pad_leftzeros. (exists pfa_gap_before_coefficient_pad_leftzerosindex. pfa_gap_before_coefficient_pad_leftzerosindex + S (pfp_repeat_index_before_coefficient_pad_leftzeros) = (t)) -> (((exists ff_h_pfp_before_coefficient_pad_leftzerosentry. ff_h_pfp_before_coefficient_pad_leftzerosentry + S (0) = S ((S (pfp_repeat_index_before_coefficient_pad_leftzeros)) * AC)) /\ exists ff_q_pfp_before_coefficient_pad_leftzerosentry. AB = ff_q_pfp_before_coefficient_pad_leftzerosentry * S ((S (pfp_repeat_index_before_coefficient_pad_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_before_coefficient_pad_left pfrep_value_before_coefficient_pad_left. (exists pfa_gap_before_coefficient_pad_leftbound. pfa_gap_before_coefficient_pad_leftbound + S (pfrep_index_before_coefficient_pad_left) = (L)) -> (((exists ff_h_pfp_before_coefficient_pad_leftinput. ff_h_pfp_before_coefficient_pad_leftinput + S (pfrep_value_before_coefficient_pad_left) = S ((S (pfrep_index_before_coefficient_pad_left)) * ac)) /\ exists ff_q_pfp_before_coefficient_pad_leftinput. ab = ff_q_pfp_before_coefficient_pad_leftinput * S ((S (pfrep_index_before_coefficient_pad_left)) * ac) + (pfrep_value_before_coefficient_pad_left))) -> (((exists ff_h_pfp_before_coefficient_pad_leftoutput. ff_h_pfp_before_coefficient_pad_leftoutput + S (pfrep_value_before_coefficient_pad_left) = S ((S ((t)+pfrep_index_before_coefficient_pad_left)) * AC)) /\ exists ff_q_pfp_before_coefficient_pad_leftoutput. AB = ff_q_pfp_before_coefficient_pad_leftoutput * S ((S ((t)+pfrep_index_before_coefficient_pad_left)) * AC) + (pfrep_value_before_coefficient_pad_left))))))) -> (exists pfa_gap_before_coefficient_index_left. pfa_gap_before_coefficient_index_left + S (i) = (t)) -> (exists pfc_terms_code_before_coefficient_actual_left pfc_terms_scale_before_coefficient_actual_left pfc_natural_sum_before_coefficient_actual_left. ((forall pfc_index_before_coefficient_actual_leftdiagonal. (exists pfa_gap_before_coefficient_actual_leftdiagonalbound. pfa_gap_before_coefficient_actual_leftdiagonalbound + S (pfc_index_before_coefficient_actual_leftdiagonal) = (S (i))) -> exists pfc_value_before_coefficient_actual_leftdiagonal. ((((exists ff_h_pfp_before_coefficient_actual_leftdiagonalentry. ff_h_pfp_before_coefficient_actual_leftdiagonalentry + S (pfc_value_before_coefficient_actual_leftdiagonal) = S ((S (pfc_index_before_coefficient_actual_leftdiagonal)) * pfc_terms_scale_before_coefficient_actual_left)) /\ exists ff_q_pfp_before_coefficient_actual_leftdiagonalentry. pfc_terms_code_before_coefficient_actual_left = ff_q_pfp_before_coefficient_actual_leftdiagonalentry * S ((S (pfc_index_before_coefficient_actual_leftdiagonal)) * pfc_terms_scale_before_coefficient_actual_left) + (pfc_value_before_coefficient_actual_leftdiagonal))) /\ ((exists pfc_complement_before_coefficient_actual_leftdiagonalterm pfc_left_before_coefficient_actual_leftdiagonalterm pfc_right_before_coefficient_actual_leftdiagonalterm. (((pfc_index_before_coefficient_actual_leftdiagonal)+pfc_complement_before_coefficient_actual_leftdiagonalterm=(i)) /\ ((((((exists pfa_gap_before_coefficient_actual_leftdiagonaltermleftinside. pfa_gap_before_coefficient_actual_leftdiagonaltermleftinside + S (pfc_index_before_coefficient_actual_leftdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_before_coefficient_actual_leftdiagonaltermleftentry. ff_h_pfp_before_coefficient_actual_leftdiagonaltermleftentry + S (pfc_left_before_coefficient_actual_leftdiagonalterm) = S ((S (pfc_index_before_coefficient_actual_leftdiagonal)) * AC)) /\ exists ff_q_pfp_before_coefficient_actual_leftdiagonaltermleftentry. AB = ff_q_pfp_before_coefficient_actual_leftdiagonaltermleftentry * S ((S (pfc_index_before_coefficient_actual_leftdiagonal)) * AC) + (pfc_left_before_coefficient_actual_leftdiagonalterm)))))) \/ (((exists pfc_gap_before_coefficient_actual_leftdiagonaltermleftoutside. pfc_gap_before_coefficient_actual_leftdiagonaltermleftoutside+(t+L)=(pfc_index_before_coefficient_actual_leftdiagonal)) /\ (((pfc_left_before_coefficient_actual_leftdiagonalterm)=0))))) /\ ((((((exists pfa_gap_before_coefficient_actual_leftdiagonaltermrightinside. pfa_gap_before_coefficient_actual_leftdiagonaltermrightinside + S (pfc_complement_before_coefficient_actual_leftdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_before_coefficient_actual_leftdiagonaltermrightentry. ff_h_pfp_before_coefficient_actual_leftdiagonaltermrightentry + S (pfc_right_before_coefficient_actual_leftdiagonalterm) = S ((S (pfc_complement_before_coefficient_actual_leftdiagonalterm)) * bc)) /\ exists ff_q_pfp_before_coefficient_actual_leftdiagonaltermrightentry. bb = ff_q_pfp_before_coefficient_actual_leftdiagonaltermrightentry * S ((S (pfc_complement_before_coefficient_actual_leftdiagonalterm)) * bc) + (pfc_right_before_coefficient_actual_leftdiagonalterm)))))) \/ (((exists pfc_gap_before_coefficient_actual_leftdiagonaltermrightoutside. pfc_gap_before_coefficient_actual_leftdiagonaltermrightoutside+(M)=(pfc_complement_before_coefficient_actual_leftdiagonalterm)) /\ (((pfc_right_before_coefficient_actual_leftdiagonalterm)=0))))) /\ (((pfc_value_before_coefficient_actual_leftdiagonal)=pfc_left_before_coefficient_actual_leftdiagonalterm*pfc_right_before_coefficient_actual_leftdiagonalterm))))))))))) /\ (((exists fs_u_pfc_before_coefficient_actual_leftsum fs_v_pfc_before_coefficient_actual_leftsum. ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_start. fs_h_pfc_before_coefficient_actual_leftsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_before_coefficient_actual_leftsum)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_start. fs_u_pfc_before_coefficient_actual_leftsum = fs_q_pfc_before_coefficient_actual_leftsum_body_start * S ((S (0)) * fs_v_pfc_before_coefficient_actual_leftsum) + (0))) /\ ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_terminal. fs_h_pfc_before_coefficient_actual_leftsum_body_terminal + S (pfc_natural_sum_before_coefficient_actual_left) = S ((S (S (i))) * fs_v_pfc_before_coefficient_actual_leftsum)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_terminal. fs_u_pfc_before_coefficient_actual_leftsum = fs_q_pfc_before_coefficient_actual_leftsum_body_terminal * S ((S (S (i))) * fs_v_pfc_before_coefficient_actual_leftsum) + (pfc_natural_sum_before_coefficient_actual_left))) /\ forall fs_i_pfc_before_coefficient_actual_leftsum_body_steps. (exists fs_lt_pfc_before_coefficient_actual_leftsum_body_steps_bound. fs_lt_pfc_before_coefficient_actual_leftsum_body_steps_bound + S fs_i_pfc_before_coefficient_actual_leftsum_body_steps = S (i)) -> exists fs_a_pfc_before_coefficient_actual_leftsum_body_steps fs_r_pfc_before_coefficient_actual_leftsum_body_steps fs_s_pfc_before_coefficient_actual_leftsum_body_steps. ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_steps_summand. fs_h_pfc_before_coefficient_actual_leftsum_body_steps_summand + S (fs_a_pfc_before_coefficient_actual_leftsum_body_steps) = S ((S (fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * pfc_terms_scale_before_coefficient_actual_left)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_steps_summand. pfc_terms_code_before_coefficient_actual_left = fs_q_pfc_before_coefficient_actual_leftsum_body_steps_summand * S ((S (fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * pfc_terms_scale_before_coefficient_actual_left) + (fs_a_pfc_before_coefficient_actual_leftsum_body_steps))) /\ ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_steps_partial. fs_h_pfc_before_coefficient_actual_leftsum_body_steps_partial + S (fs_r_pfc_before_coefficient_actual_leftsum_body_steps) = S ((S (fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * fs_v_pfc_before_coefficient_actual_leftsum)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_steps_partial. fs_u_pfc_before_coefficient_actual_leftsum = fs_q_pfc_before_coefficient_actual_leftsum_body_steps_partial * S ((S (fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * fs_v_pfc_before_coefficient_actual_leftsum) + (fs_r_pfc_before_coefficient_actual_leftsum_body_steps))) /\ ((((exists fs_h_pfc_before_coefficient_actual_leftsum_body_steps_successor. fs_h_pfc_before_coefficient_actual_leftsum_body_steps_successor + S (fs_s_pfc_before_coefficient_actual_leftsum_body_steps) = S ((S (S fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * fs_v_pfc_before_coefficient_actual_leftsum)) /\ exists fs_q_pfc_before_coefficient_actual_leftsum_body_steps_successor. fs_u_pfc_before_coefficient_actual_leftsum = fs_q_pfc_before_coefficient_actual_leftsum_body_steps_successor * S ((S (S fs_i_pfc_before_coefficient_actual_leftsum_body_steps)) * fs_v_pfc_before_coefficient_actual_leftsum) + (fs_s_pfc_before_coefficient_actual_leftsum_body_steps))) /\ fs_s_pfc_before_coefficient_actual_leftsum_body_steps = fs_r_pfc_before_coefficient_actual_leftsum_body_steps + fs_a_pfc_before_coefficient_actual_leftsum_body_steps)))))) /\ ((((exists pfa_gap_before_coefficient_actual_leftresiduebound. pfa_gap_before_coefficient_actual_leftresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_before_coefficient_actual_leftresiduecongruence pfa_offset_right_before_coefficient_actual_leftresiduecongruence. (pfc_natural_sum_before_coefficient_actual_left) + (p) * pfa_offset_left_before_coefficient_actual_leftresiduecongruence = (r) + (p) * pfa_offset_right_before_coefficient_actual_leftresiduecongruence))))))))) -> (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 5 declared prerequisites and contains 75 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PX0062 polynomial_diagonal_term_left_padding_zero_left 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 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_left (ab) - L33
specialize polynomial_diagonal_term_left_padding_zero_left (ac) - L34
specialize polynomial_diagonal_term_left_padding_zero_left (L) - L35
specialize polynomial_diagonal_term_left_padding_zero_left (bb) - L36
specialize polynomial_diagonal_term_left_padding_zero_left (bc) - L37
specialize polynomial_diagonal_term_left_padding_zero_left (M) - 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 (t)
08Use earlier factsL41–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
specialize polynomial_diagonal_term_left_padding_zero_left (i) - L42
specialize polynomial_diagonal_term_left_padding_zero_left (j) - L43
specialize polynomial_diagonal_term_left_padding_zero_left (x3) - L44
apply polynomial_diagonal_term_left_padding_zero_left - L45
exact hpad - L46
specialize le_trans (S j) - L47
specialize le_trans (S i) - L48
specialize le_trans (t) - L49
apply le_trans - L50
exact hj
09Use earlier factsL51–52
10Calculate and transport equalitiesL53–54
11Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
exact ht_witness_left
12Establish hsumL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta repeat sum exact.
- L56
have hsum : x2=0 - L57
trans (S i)*0 - L58
specialize beta_repeat_sum_exact (x) - L59
specialize beta_repeat_sum_exact (x1) - L60
specialize beta_repeat_sum_exact (0) - L61
specialize beta_repeat_sum_exact (S i) - L62
specialize beta_repeat_sum_exact (x2) - L63
apply beta_repeat_sum_exact - L64
exact hz - L65
exact hc_witness_witness_witness_right_left
13Calculate and transport equalitiesL66–67
14Use earlier factsL68–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
specialize prime_field_residue_bounded_value (p) - L69
specialize prime_field_residue_bounded_value (0) - L70
specialize prime_field_residue_bounded_value (r) - L71
apply prime_field_residue_bounded_value - L72
specialize one_le_of_ne_zero (p) - L73
apply one_le_of_ne_zero - L74
exact hp - L75
exact hc_witness_witness_witness_right_right
Original exact command ledger · 75 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 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_left. (exists pfa_gap_before_coefficient_zero_diagonal_leftindex. pfa_gap_before_coefficient_zero_diagonal_leftindex + S (pfp_repeat_index_before_coefficient_zero_diagonal_left) = (S i)) -> (((exists ff_h_pfp_before_coefficient_zero_diagonal_leftentry. ff_h_pfp_before_coefficient_zero_diagonal_leftentry + S (0) = S ((S (pfp_repeat_index_before_coefficient_zero_diagonal_left)) * x1)) /\ exists ff_q_pfp_before_coefficient_zero_diagonal_leftentry. x = ff_q_pfp_before_coefficient_zero_diagonal_leftentry * S ((S (pfp_repeat_index_before_coefficient_zero_diagonal_left)) * x1) + (0))) - 0023
intro j - 0024
intro hj - 0025
have ht : exists z. ((((exists ff_h_pfp_before_coefficient_entry_left. ff_h_pfp_before_coefficient_entry_left + S (z) = S ((S (j)) * x1)) /\ exists ff_q_pfp_before_coefficient_entry_left. x = ff_q_pfp_before_coefficient_entry_left * S ((S (j)) * x1) + (z))) /\ ((exists pfc_complement_before_coefficient_term_left pfc_left_before_coefficient_term_left pfc_right_before_coefficient_term_left. (((j)+pfc_complement_before_coefficient_term_left=(i)) /\ ((((((exists pfa_gap_before_coefficient_term_leftleftinside. pfa_gap_before_coefficient_term_leftleftinside + S (j) = (t+L)) /\ ((((exists ff_h_pfp_before_coefficient_term_leftleftentry. ff_h_pfp_before_coefficient_term_leftleftentry + S (pfc_left_before_coefficient_term_left) = S ((S (j)) * AC)) /\ exists ff_q_pfp_before_coefficient_term_leftleftentry. AB = ff_q_pfp_before_coefficient_term_leftleftentry * S ((S (j)) * AC) + (pfc_left_before_coefficient_term_left)))))) \/ (((exists pfc_gap_before_coefficient_term_leftleftoutside. pfc_gap_before_coefficient_term_leftleftoutside+(t+L)=(j)) /\ (((pfc_left_before_coefficient_term_left)=0))))) /\ ((((((exists pfa_gap_before_coefficient_term_leftrightinside. pfa_gap_before_coefficient_term_leftrightinside + S (pfc_complement_before_coefficient_term_left) = (M)) /\ ((((exists ff_h_pfp_before_coefficient_term_leftrightentry. ff_h_pfp_before_coefficient_term_leftrightentry + S (pfc_right_before_coefficient_term_left) = S ((S (pfc_complement_before_coefficient_term_left)) * bc)) /\ exists ff_q_pfp_before_coefficient_term_leftrightentry. bb = ff_q_pfp_before_coefficient_term_leftrightentry * S ((S (pfc_complement_before_coefficient_term_left)) * bc) + (pfc_right_before_coefficient_term_left)))))) \/ (((exists pfc_gap_before_coefficient_term_leftrightoutside. pfc_gap_before_coefficient_term_leftrightoutside+(M)=(pfc_complement_before_coefficient_term_left)) /\ (((pfc_right_before_coefficient_term_left)=0))))) /\ (((z)=pfc_left_before_coefficient_term_left*pfc_right_before_coefficient_term_left)))))))))) - 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_left (ab) - 0033
specialize polynomial_diagonal_term_left_padding_zero_left (ac) - 0034
specialize polynomial_diagonal_term_left_padding_zero_left (L) - 0035
specialize polynomial_diagonal_term_left_padding_zero_left (bb) - 0036
specialize polynomial_diagonal_term_left_padding_zero_left (bc) - 0037
specialize polynomial_diagonal_term_left_padding_zero_left (M) - 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 (t) - 0041
specialize polynomial_diagonal_term_left_padding_zero_left (i) - 0042
specialize polynomial_diagonal_term_left_padding_zero_left (j) - 0043
specialize polynomial_diagonal_term_left_padding_zero_left (x3) - 0044
apply polynomial_diagonal_term_left_padding_zero_left - 0045
exact hpad - 0046
specialize le_trans (S j) - 0047
specialize le_trans (S i) - 0048
specialize le_trans (t) - 0049
apply le_trans - 0050
exact hj - 0051
exact hi - 0052
exact ht_witness_right - 0053
rewrite heq at ht_witness_left - 0054
rewrite heq at ht_witness_left - 0055
exact ht_witness_left - 0056
have hsum : x2=0 - 0057
trans (S i)*0 - 0058
specialize beta_repeat_sum_exact (x) - 0059
specialize beta_repeat_sum_exact (x1) - 0060
specialize beta_repeat_sum_exact (0) - 0061
specialize beta_repeat_sum_exact (S i) - 0062
specialize beta_repeat_sum_exact (x2) - 0063
apply beta_repeat_sum_exact - 0064
exact hz - 0065
exact hc_witness_witness_witness_right_left - 0066
simp - 0067
rewrite hsum at hc_witness_witness_witness_right_right - 0068
specialize prime_field_residue_bounded_value (p) - 0069
specialize prime_field_residue_bounded_value (0) - 0070
specialize prime_field_residue_bounded_value (r) - 0071
apply prime_field_residue_bounded_value - 0072
specialize one_le_of_ne_zero (p) - 0073
apply one_le_of_ne_zero - 0074
exact hp - 0075
exact hc_witness_witness_witness_right_right