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 cb cc N BB BC db dc K eb ec. (~(p=0)) -> (((forall mdr_i_pfp_shift_equivalent_factorprefix mdr_a_pfp_shift_equivalent_factorprefix. (exists mdr_gap_pfp_shift_equivalent_factorprefixb. mdr_gap_pfp_shift_equivalent_factorprefixb + S (mdr_i_pfp_shift_equivalent_factorprefix) = (M)) -> (((exists ff_h_mdr_pfp_shift_equivalent_factorprefixo. ff_h_mdr_pfp_shift_equivalent_factorprefixo + S (mdr_a_pfp_shift_equivalent_factorprefix) = S ((S (mdr_i_pfp_shift_equivalent_factorprefix)) * bc)) /\ exists ff_q_mdr_pfp_shift_equivalent_factorprefixo. bb = ff_q_mdr_pfp_shift_equivalent_factorprefixo * S ((S (mdr_i_pfp_shift_equivalent_factorprefix)) * bc) + (mdr_a_pfp_shift_equivalent_factorprefix))) -> (((exists ff_h_mdr_pfp_shift_equivalent_factorprefixn. ff_h_mdr_pfp_shift_equivalent_factorprefixn + S (mdr_a_pfp_shift_equivalent_factorprefix) = S ((S (mdr_i_pfp_shift_equivalent_factorprefix)) * BC)) /\ exists ff_q_mdr_pfp_shift_equivalent_factorprefixn. BB = ff_q_mdr_pfp_shift_equivalent_factorprefixn * S ((S (mdr_i_pfp_shift_equivalent_factorprefix)) * BC) + (mdr_a_pfp_shift_equivalent_factorprefix)))) /\ ((((exists ff_h_pfp_shift_equivalent_factorlast. ff_h_pfp_shift_equivalent_factorlast + S (0) = S ((S (M)) * BC)) /\ exists ff_q_pfp_shift_equivalent_factorlast. BB = ff_q_pfp_shift_equivalent_factorlast * S ((S (M)) * BC) + (0)))))) -> (((forall fom_index_pfp_shift_equivalent_oldleft. (exists fom_gap_pfp_shift_equivalent_oldleft_index_bound. fom_gap_pfp_shift_equivalent_oldleft_index_bound + S (fom_index_pfp_shift_equivalent_oldleft) = L) -> exists fom_value_pfp_shift_equivalent_oldleft. ((((exists fom_beta_height_pfp_shift_equivalent_oldleft_entry. fom_beta_height_pfp_shift_equivalent_oldleft_entry + S (fom_value_pfp_shift_equivalent_oldleft) = S ((S (fom_index_pfp_shift_equivalent_oldleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_equivalent_oldleft_entry. ab = fom_beta_quotient_pfp_shift_equivalent_oldleft_entry * S ((S (fom_index_pfp_shift_equivalent_oldleft)) * ac) + (fom_value_pfp_shift_equivalent_oldleft))) /\ (exists fom_gap_pfp_shift_equivalent_oldleft_value_bound. fom_gap_pfp_shift_equivalent_oldleft_value_bound + S (fom_value_pfp_shift_equivalent_oldleft) = p))) /\ (((forall fom_index_pfp_shift_equivalent_oldright. (exists fom_gap_pfp_shift_equivalent_oldright_index_bound. fom_gap_pfp_shift_equivalent_oldright_index_bound + S (fom_index_pfp_shift_equivalent_oldright) = M) -> exists fom_value_pfp_shift_equivalent_oldright. ((((exists fom_beta_height_pfp_shift_equivalent_oldright_entry. fom_beta_height_pfp_shift_equivalent_oldright_entry + S (fom_value_pfp_shift_equivalent_oldright) = S ((S (fom_index_pfp_shift_equivalent_oldright)) * bc)) /\ exists fom_beta_quotient_pfp_shift_equivalent_oldright_entry. bb = fom_beta_quotient_pfp_shift_equivalent_oldright_entry * S ((S (fom_index_pfp_shift_equivalent_oldright)) * bc) + (fom_value_pfp_shift_equivalent_oldright))) /\ (exists fom_gap_pfp_shift_equivalent_oldright_value_bound. fom_gap_pfp_shift_equivalent_oldright_value_bound + S (fom_value_pfp_shift_equivalent_oldright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_shift_equivalent_oldcoefficients. (exists pfa_gap_shift_equivalent_oldcoefficientsbound. pfa_gap_shift_equivalent_oldcoefficientsbound + S (pfc_index_shift_equivalent_oldcoefficients) = (N)) -> exists pfc_value_shift_equivalent_oldcoefficients. ((((exists ff_h_pfp_shift_equivalent_oldcoefficientsentry. ff_h_pfp_shift_equivalent_oldcoefficientsentry + S (pfc_value_shift_equivalent_oldcoefficients) = S ((S (pfc_index_shift_equivalent_oldcoefficients)) * cc)) /\ exists ff_q_pfp_shift_equivalent_oldcoefficientsentry. cb = ff_q_pfp_shift_equivalent_oldcoefficientsentry * S ((S (pfc_index_shift_equivalent_oldcoefficients)) * cc) + (pfc_value_shift_equivalent_oldcoefficients))) /\ ((exists pfc_terms_code_shift_equivalent_oldcoefficientscoefficient pfc_terms_scale_shift_equivalent_oldcoefficientscoefficient pfc_natural_sum_shift_equivalent_oldcoefficientscoefficient. ((forall pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal. (exists pfa_gap_shift_equivalent_oldcoefficientscoefficientdiagonalbound. pfa_gap_shift_equivalent_oldcoefficientscoefficientdiagonalbound + S (pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal) = (S (pfc_index_shift_equivalent_oldcoefficients))) -> exists pfc_value_shift_equivalent_oldcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_equivalent_oldcoefficientscoefficientdiagonalentry. ff_h_pfp_shift_equivalent_oldcoefficientscoefficientdiagonalentry + S (pfc_value_shift_equivalent_oldcoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_equivalent_oldcoefficientscoefficient)) /\ exists ff_q_pfp_shift_equivalent_oldcoefficientscoefficientdiagonalentry. pfc_terms_code_shift_equivalent_oldcoefficientscoefficient = ff_q_pfp_shift_equivalent_oldcoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_equivalent_oldcoefficientscoefficient) + (pfc_value_shift_equivalent_oldcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_equivalent_oldcoefficientscoefficientdiagonalterm pfc_left_shift_equivalent_oldcoefficientscoefficientdiagonalterm pfc_right_shift_equivalent_oldcoefficientscoefficientdiagonalterm. (((pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal)+pfc_complement_shift_equivalent_oldcoefficientscoefficientdiagonalterm=(pfc_index_shift_equivalent_oldcoefficients)) /\ ((((((exists pfa_gap_shift_equivalent_oldcoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_equivalent_oldcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_equivalent_oldcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_equivalent_oldcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_equivalent_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_equivalent_oldcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_equivalent_oldcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_equivalent_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_equivalent_oldcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_equivalent_oldcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_equivalent_oldcoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_equivalent_oldcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_equivalent_oldcoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_equivalent_oldcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_equivalent_oldcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_equivalent_oldcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_equivalent_oldcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_equivalent_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_equivalent_oldcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_equivalent_oldcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_shift_equivalent_oldcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_equivalent_oldcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_shift_equivalent_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_equivalent_oldcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_equivalent_oldcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_shift_equivalent_oldcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_equivalent_oldcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_equivalent_oldcoefficientscoefficientdiagonal)=pfc_left_shift_equivalent_oldcoefficientscoefficientdiagonalterm*pfc_right_shift_equivalent_oldcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_equivalent_oldcoefficientscoefficientsum fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum. ((((exists fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_start. fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_start. fs_u_pfc_shift_equivalent_oldcoefficientscoefficientsum = fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_equivalent_oldcoefficientscoefficient) = S ((S (S (pfc_index_shift_equivalent_oldcoefficients))) * fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_equivalent_oldcoefficientscoefficientsum = fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_equivalent_oldcoefficients))) * fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum) + (pfc_natural_sum_shift_equivalent_oldcoefficientscoefficient))) /\ forall fs_i_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps = S (pfc_index_shift_equivalent_oldcoefficients)) -> exists fs_a_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps fs_r_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps fs_s_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_equivalent_oldcoefficientscoefficient)) /\ exists fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_equivalent_oldcoefficientscoefficient = fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_equivalent_oldcoefficientscoefficient) + (fs_a_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_equivalent_oldcoefficientscoefficientsum = fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum) + (fs_r_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_equivalent_oldcoefficientscoefficientsum = fs_q_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_equivalent_oldcoefficientscoefficientsum) + (fs_s_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps = fs_r_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps + fs_a_pfc_shift_equivalent_oldcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_equivalent_oldcoefficientscoefficientresiduebound. pfa_gap_shift_equivalent_oldcoefficientscoefficientresiduebound + S (pfc_value_shift_equivalent_oldcoefficients) = (p)) /\ ((exists pfa_offset_left_shift_equivalent_oldcoefficientscoefficientresiduecongruence pfa_offset_right_shift_equivalent_oldcoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_equivalent_oldcoefficientscoefficient) + (p) * pfa_offset_left_shift_equivalent_oldcoefficientscoefficientresiduecongruence = (pfc_value_shift_equivalent_oldcoefficients) + (p) * pfa_offset_right_shift_equivalent_oldcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_shift_equivalent_newleft. (exists fom_gap_pfp_shift_equivalent_newleft_index_bound. fom_gap_pfp_shift_equivalent_newleft_index_bound + S (fom_index_pfp_shift_equivalent_newleft) = L) -> exists fom_value_pfp_shift_equivalent_newleft. ((((exists fom_beta_height_pfp_shift_equivalent_newleft_entry. fom_beta_height_pfp_shift_equivalent_newleft_entry + S (fom_value_pfp_shift_equivalent_newleft) = S ((S (fom_index_pfp_shift_equivalent_newleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_equivalent_newleft_entry. ab = fom_beta_quotient_pfp_shift_equivalent_newleft_entry * S ((S (fom_index_pfp_shift_equivalent_newleft)) * ac) + (fom_value_pfp_shift_equivalent_newleft))) /\ (exists fom_gap_pfp_shift_equivalent_newleft_value_bound. fom_gap_pfp_shift_equivalent_newleft_value_bound + S (fom_value_pfp_shift_equivalent_newleft) = p))) /\ (((forall fom_index_pfp_shift_equivalent_newright. (exists fom_gap_pfp_shift_equivalent_newright_index_bound. fom_gap_pfp_shift_equivalent_newright_index_bound + S (fom_index_pfp_shift_equivalent_newright) = S M) -> exists fom_value_pfp_shift_equivalent_newright. ((((exists fom_beta_height_pfp_shift_equivalent_newright_entry. fom_beta_height_pfp_shift_equivalent_newright_entry + S (fom_value_pfp_shift_equivalent_newright) = S ((S (fom_index_pfp_shift_equivalent_newright)) * BC)) /\ exists fom_beta_quotient_pfp_shift_equivalent_newright_entry. BB = fom_beta_quotient_pfp_shift_equivalent_newright_entry * S ((S (fom_index_pfp_shift_equivalent_newright)) * BC) + (fom_value_pfp_shift_equivalent_newright))) /\ (exists fom_gap_pfp_shift_equivalent_newright_value_bound. fom_gap_pfp_shift_equivalent_newright_value_bound + S (fom_value_pfp_shift_equivalent_newright) = p))) /\ (((((((L)=0 \/ (S M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((S M)=0)) /\ (((L)+(S M)=S (K)))))))) /\ ((forall pfc_index_shift_equivalent_newcoefficients. (exists pfa_gap_shift_equivalent_newcoefficientsbound. pfa_gap_shift_equivalent_newcoefficientsbound + S (pfc_index_shift_equivalent_newcoefficients) = (K)) -> exists pfc_value_shift_equivalent_newcoefficients. ((((exists ff_h_pfp_shift_equivalent_newcoefficientsentry. ff_h_pfp_shift_equivalent_newcoefficientsentry + S (pfc_value_shift_equivalent_newcoefficients) = S ((S (pfc_index_shift_equivalent_newcoefficients)) * dc)) /\ exists ff_q_pfp_shift_equivalent_newcoefficientsentry. db = ff_q_pfp_shift_equivalent_newcoefficientsentry * S ((S (pfc_index_shift_equivalent_newcoefficients)) * dc) + (pfc_value_shift_equivalent_newcoefficients))) /\ ((exists pfc_terms_code_shift_equivalent_newcoefficientscoefficient pfc_terms_scale_shift_equivalent_newcoefficientscoefficient pfc_natural_sum_shift_equivalent_newcoefficientscoefficient. ((forall pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal. (exists pfa_gap_shift_equivalent_newcoefficientscoefficientdiagonalbound. pfa_gap_shift_equivalent_newcoefficientscoefficientdiagonalbound + S (pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal) = (S (pfc_index_shift_equivalent_newcoefficients))) -> exists pfc_value_shift_equivalent_newcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_equivalent_newcoefficientscoefficientdiagonalentry. ff_h_pfp_shift_equivalent_newcoefficientscoefficientdiagonalentry + S (pfc_value_shift_equivalent_newcoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_equivalent_newcoefficientscoefficient)) /\ exists ff_q_pfp_shift_equivalent_newcoefficientscoefficientdiagonalentry. pfc_terms_code_shift_equivalent_newcoefficientscoefficient = ff_q_pfp_shift_equivalent_newcoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_equivalent_newcoefficientscoefficient) + (pfc_value_shift_equivalent_newcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_equivalent_newcoefficientscoefficientdiagonalterm pfc_left_shift_equivalent_newcoefficientscoefficientdiagonalterm pfc_right_shift_equivalent_newcoefficientscoefficientdiagonalterm. (((pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal)+pfc_complement_shift_equivalent_newcoefficientscoefficientdiagonalterm=(pfc_index_shift_equivalent_newcoefficients)) /\ ((((((exists pfa_gap_shift_equivalent_newcoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_equivalent_newcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_equivalent_newcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_equivalent_newcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_equivalent_newcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_equivalent_newcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_equivalent_newcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_equivalent_newcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_equivalent_newcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_equivalent_newcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_equivalent_newcoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_equivalent_newcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_equivalent_newcoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_equivalent_newcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_equivalent_newcoefficientscoefficientdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_equivalent_newcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_equivalent_newcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_equivalent_newcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_equivalent_newcoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_equivalent_newcoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_shift_equivalent_newcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_equivalent_newcoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_shift_equivalent_newcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_equivalent_newcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_equivalent_newcoefficientscoefficientdiagonaltermrightoutside+(S M)=(pfc_complement_shift_equivalent_newcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_equivalent_newcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_equivalent_newcoefficientscoefficientdiagonal)=pfc_left_shift_equivalent_newcoefficientscoefficientdiagonalterm*pfc_right_shift_equivalent_newcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_equivalent_newcoefficientscoefficientsum fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum. ((((exists fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_start. fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_start. fs_u_pfc_shift_equivalent_newcoefficientscoefficientsum = fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_equivalent_newcoefficientscoefficient) = S ((S (S (pfc_index_shift_equivalent_newcoefficients))) * fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_equivalent_newcoefficientscoefficientsum = fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_equivalent_newcoefficients))) * fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum) + (pfc_natural_sum_shift_equivalent_newcoefficientscoefficient))) /\ forall fs_i_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps = S (pfc_index_shift_equivalent_newcoefficients)) -> exists fs_a_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps fs_r_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps fs_s_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_equivalent_newcoefficientscoefficient)) /\ exists fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_equivalent_newcoefficientscoefficient = fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_equivalent_newcoefficientscoefficient) + (fs_a_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_equivalent_newcoefficientscoefficientsum = fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum) + (fs_r_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_equivalent_newcoefficientscoefficientsum = fs_q_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_equivalent_newcoefficientscoefficientsum) + (fs_s_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps = fs_r_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps + fs_a_pfc_shift_equivalent_newcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_equivalent_newcoefficientscoefficientresiduebound. pfa_gap_shift_equivalent_newcoefficientscoefficientresiduebound + S (pfc_value_shift_equivalent_newcoefficients) = (p)) /\ ((exists pfa_offset_left_shift_equivalent_newcoefficientscoefficientresiduecongruence pfa_offset_right_shift_equivalent_newcoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_equivalent_newcoefficientscoefficient) + (p) * pfa_offset_left_shift_equivalent_newcoefficientscoefficientresiduecongruence = (pfc_value_shift_equivalent_newcoefficients) + (p) * pfa_offset_right_shift_equivalent_newcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall mdr_i_pfp_shift_equivalent_comparisonprefix mdr_a_pfp_shift_equivalent_comparisonprefix. (exists mdr_gap_pfp_shift_equivalent_comparisonprefixb. mdr_gap_pfp_shift_equivalent_comparisonprefixb + S (mdr_i_pfp_shift_equivalent_comparisonprefix) = (N)) -> (((exists ff_h_mdr_pfp_shift_equivalent_comparisonprefixo. ff_h_mdr_pfp_shift_equivalent_comparisonprefixo + S (mdr_a_pfp_shift_equivalent_comparisonprefix) = S ((S (mdr_i_pfp_shift_equivalent_comparisonprefix)) * cc)) /\ exists ff_q_mdr_pfp_shift_equivalent_comparisonprefixo. cb = ff_q_mdr_pfp_shift_equivalent_comparisonprefixo * S ((S (mdr_i_pfp_shift_equivalent_comparisonprefix)) * cc) + (mdr_a_pfp_shift_equivalent_comparisonprefix))) -> (((exists ff_h_mdr_pfp_shift_equivalent_comparisonprefixn. ff_h_mdr_pfp_shift_equivalent_comparisonprefixn + S (mdr_a_pfp_shift_equivalent_comparisonprefix) = S ((S (mdr_i_pfp_shift_equivalent_comparisonprefix)) * ec)) /\ exists ff_q_mdr_pfp_shift_equivalent_comparisonprefixn. eb = ff_q_mdr_pfp_shift_equivalent_comparisonprefixn * S ((S (mdr_i_pfp_shift_equivalent_comparisonprefix)) * ec) + (mdr_a_pfp_shift_equivalent_comparisonprefix)))) /\ ((((exists ff_h_pfp_shift_equivalent_comparisonlast. ff_h_pfp_shift_equivalent_comparisonlast + S (0) = S ((S (N)) * ec)) /\ exists ff_q_pfp_shift_equivalent_comparisonlast. eb = ff_q_pfp_shift_equivalent_comparisonlast * S ((S (N)) * ec) + (0)))))) -> (forall pfrep_power_shift_equivalent_result pfrep_left_shift_equivalent_result pfrep_right_shift_equivalent_result. ((exists pfrep_position_shift_equivalent_resultfirst. ((pfrep_position_shift_equivalent_resultfirst+S (pfrep_power_shift_equivalent_result)=(K)) /\ ((((exists ff_h_pfp_shift_equivalent_resultfirstentry. ff_h_pfp_shift_equivalent_resultfirstentry + S (pfrep_left_shift_equivalent_result) = S ((S (pfrep_position_shift_equivalent_resultfirst)) * dc)) /\ exists ff_q_pfp_shift_equivalent_resultfirstentry. db = ff_q_pfp_shift_equivalent_resultfirstentry * S ((S (pfrep_position_shift_equivalent_resultfirst)) * dc) + (pfrep_left_shift_equivalent_result)))))) \/ (((exists pfrep_gap_shift_equivalent_resultfirstoutside. pfrep_gap_shift_equivalent_resultfirstoutside+(K)=(pfrep_power_shift_equivalent_result)) /\ (((pfrep_left_shift_equivalent_result)=0))))) -> ((exists pfrep_position_shift_equivalent_resultsecond. ((pfrep_position_shift_equivalent_resultsecond+S (pfrep_power_shift_equivalent_result)=(S N)) /\ ((((exists ff_h_pfp_shift_equivalent_resultsecondentry. ff_h_pfp_shift_equivalent_resultsecondentry + S (pfrep_right_shift_equivalent_result) = S ((S (pfrep_position_shift_equivalent_resultsecond)) * ec)) /\ exists ff_q_pfp_shift_equivalent_resultsecondentry. eb = ff_q_pfp_shift_equivalent_resultsecondentry * S ((S (pfrep_position_shift_equivalent_resultsecond)) * ec) + (pfrep_right_shift_equivalent_result)))))) \/ (((exists pfrep_gap_shift_equivalent_resultsecondoutside. pfrep_gap_shift_equivalent_resultsecondoutside+(S N)=(pfrep_power_shift_equivalent_result)) /\ (((pfrep_right_shift_equivalent_result)=0))))) -> pfrep_left_shift_equivalent_result=pfrep_right_shift_equivalent_result)Constructive proof overview
Generated structural guide
At every nonzero modulus, the actual product with a shifted right factor is formally coefficient-equivalent to every actual shift of the original product, including both empty-factor cases.
The unchanged tactic script uses 9 declared prerequisites and contains 194 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
eq_decidable Alpha theorem; checked-use authorized PG000B prime_field_polynomial_convolution_shift_right_empty PG0004 prime_field_polynomial_shift_zero_prefix prime_field_polynomial_equivalent_transitive Alpha theorem; checked-use authorized prime_field_polynomial_zero_prefix_equivalent_empty Alpha theorem; checked-use authorized prime_field_polynomial_equivalent_symmetric Alpha theorem; checked-use authorized PG000A prime_field_polynomial_convolution_shift_right_nonempty prime_field_polynomial_equal_implies_equivalent Alpha theorem; checked-use authorized PG0003 prime_field_polynomial_shift_functionalDirect 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 (4)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–22
04Establish hLL23–26
05Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hL
06Establish hzL28–37
Establish this local claim before using it. It is not an additional assumption.
- L28
have hz : Repeat(cb,cc,0,N) ∧ Repeat(db,dc,0,K)Definitions: Repeat - L29
specialize prime_field_polynomial_convolution_shift_right_empty (p) - L30
specialize prime_field_polynomial_convolution_shift_right_empty (ab) - L31
specialize prime_field_polynomial_convolution_shift_right_empty (ac) - L32
specialize prime_field_polynomial_convolution_shift_right_empty (L) - L33
specialize prime_field_polynomial_convolution_shift_right_empty (bb) - L34
specialize prime_field_polynomial_convolution_shift_right_empty (bc) - L35
specialize prime_field_polynomial_convolution_shift_right_empty (M) - L36
specialize prime_field_polynomial_convolution_shift_right_empty (cb) - L37
specialize prime_field_polynomial_convolution_shift_right_empty (cc)
07Use earlier factsL38–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
specialize prime_field_polynomial_convolution_shift_right_empty (N) - L39
specialize prime_field_polynomial_convolution_shift_right_empty (BB) - L40
specialize prime_field_polynomial_convolution_shift_right_empty (BC) - L41
specialize prime_field_polynomial_convolution_shift_right_empty (db) - L42
specialize prime_field_polynomial_convolution_shift_right_empty (dc) - L43
specialize prime_field_polynomial_convolution_shift_right_empty (K) - L44
apply prime_field_polynomial_convolution_shift_right_empty - L45
exact hp - L46
exact hs - L47
exact hc
08Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hd
09Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
left
10Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hL_left
11Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
cases hz
12Establish hezeroL52–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial shift zero prefix.
- L52
have hezero : Repeat(eb,ec,0,S N)Definitions: Repeat - L53
specialize prime_field_polynomial_shift_zero_prefix (cb) - L54
specialize prime_field_polynomial_shift_zero_prefix (cc) - L55
specialize prime_field_polynomial_shift_zero_prefix (N) - L56
specialize prime_field_polynomial_shift_zero_prefix (eb) - L57
specialize prime_field_polynomial_shift_zero_prefix (ec) - L58
apply prime_field_polynomial_shift_zero_prefix - L59
exact hz_left - L60
exact he - L61
specialize prime_field_polynomial_equivalent_transitive (db)
13Use earlier factsL62–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L62
specialize prime_field_polynomial_equivalent_transitive (dc) - L63
specialize prime_field_polynomial_equivalent_transitive (K) - L64
specialize prime_field_polynomial_equivalent_transitive (0) - L65
specialize prime_field_polynomial_equivalent_transitive (0) - L66
specialize prime_field_polynomial_equivalent_transitive (0) - L67
specialize prime_field_polynomial_equivalent_transitive (eb) - L68
specialize prime_field_polynomial_equivalent_transitive (ec) - L69
specialize prime_field_polynomial_equivalent_transitive (S N) - L70
apply prime_field_polynomial_equivalent_transitive - L71
specialize prime_field_polynomial_zero_prefix_equivalent_empty (db)
14Use earlier factsL72–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
specialize prime_field_polynomial_zero_prefix_equivalent_empty (dc) - L73
specialize prime_field_polynomial_zero_prefix_equivalent_empty (K) - L74
apply prime_field_polynomial_zero_prefix_equivalent_empty - L75
exact hz_right - L76
specialize prime_field_polynomial_equivalent_symmetric (eb) - L77
specialize prime_field_polynomial_equivalent_symmetric (ec) - L78
specialize prime_field_polynomial_equivalent_symmetric (S N) - L79
specialize prime_field_polynomial_equivalent_symmetric (0) - L80
specialize prime_field_polynomial_equivalent_symmetric (0) - L81
specialize prime_field_polynomial_equivalent_symmetric (0)
15Use earlier factsL82–87
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
apply prime_field_polynomial_equivalent_symmetric - L83
specialize prime_field_polynomial_zero_prefix_equivalent_empty (eb) - L84
specialize prime_field_polynomial_zero_prefix_equivalent_empty (ec) - L85
specialize prime_field_polynomial_zero_prefix_equivalent_empty (S N) - L86
apply prime_field_polynomial_zero_prefix_equivalent_empty - L87
exact hezero
16Establish hML88–91
17Separate the logical casesL92–92
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L92
cases hM
18Establish hzL93–102
Establish this local claim before using it. It is not an additional assumption.
- L93
have hz : Repeat(cb,cc,0,N) ∧ Repeat(db,dc,0,K)Definitions: Repeat - L94
specialize prime_field_polynomial_convolution_shift_right_empty (p) - L95
specialize prime_field_polynomial_convolution_shift_right_empty (ab) - L96
specialize prime_field_polynomial_convolution_shift_right_empty (ac) - L97
specialize prime_field_polynomial_convolution_shift_right_empty (L) - L98
specialize prime_field_polynomial_convolution_shift_right_empty (bb) - L99
specialize prime_field_polynomial_convolution_shift_right_empty (bc) - L100
specialize prime_field_polynomial_convolution_shift_right_empty (M) - L101
specialize prime_field_polynomial_convolution_shift_right_empty (cb) - L102
specialize prime_field_polynomial_convolution_shift_right_empty (cc)
19Use earlier factsL103–112
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
specialize prime_field_polynomial_convolution_shift_right_empty (N) - L104
specialize prime_field_polynomial_convolution_shift_right_empty (BB) - L105
specialize prime_field_polynomial_convolution_shift_right_empty (BC) - L106
specialize prime_field_polynomial_convolution_shift_right_empty (db) - L107
specialize prime_field_polynomial_convolution_shift_right_empty (dc) - L108
specialize prime_field_polynomial_convolution_shift_right_empty (K) - L109
apply prime_field_polynomial_convolution_shift_right_empty - L110
exact hp - L111
exact hs - L112
exact hc
20Use earlier factsL113–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
exact hd
21Separate the logical casesL114–114
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L114
right
22Use earlier factsL115–115
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L115
exact hM_left
23Separate the logical casesL116–116
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L116
cases hz
24Establish hezeroL117–126
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial shift zero prefix.
- L117
have hezero : Repeat(eb,ec,0,S N)Definitions: Repeat - L118
specialize prime_field_polynomial_shift_zero_prefix (cb) - L119
specialize prime_field_polynomial_shift_zero_prefix (cc) - L120
specialize prime_field_polynomial_shift_zero_prefix (N) - L121
specialize prime_field_polynomial_shift_zero_prefix (eb) - L122
specialize prime_field_polynomial_shift_zero_prefix (ec) - L123
apply prime_field_polynomial_shift_zero_prefix - L124
exact hz_left - L125
exact he - L126
specialize prime_field_polynomial_equivalent_transitive (db)
25Use earlier factsL127–136
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L127
specialize prime_field_polynomial_equivalent_transitive (dc) - L128
specialize prime_field_polynomial_equivalent_transitive (K) - L129
specialize prime_field_polynomial_equivalent_transitive (0) - L130
specialize prime_field_polynomial_equivalent_transitive (0) - L131
specialize prime_field_polynomial_equivalent_transitive (0) - L132
specialize prime_field_polynomial_equivalent_transitive (eb) - L133
specialize prime_field_polynomial_equivalent_transitive (ec) - L134
specialize prime_field_polynomial_equivalent_transitive (S N) - L135
apply prime_field_polynomial_equivalent_transitive - L136
specialize prime_field_polynomial_zero_prefix_equivalent_empty (db)
26Use earlier factsL137–146
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L137
specialize prime_field_polynomial_zero_prefix_equivalent_empty (dc) - L138
specialize prime_field_polynomial_zero_prefix_equivalent_empty (K) - L139
apply prime_field_polynomial_zero_prefix_equivalent_empty - L140
exact hz_right - L141
specialize prime_field_polynomial_equivalent_symmetric (eb) - L142
specialize prime_field_polynomial_equivalent_symmetric (ec) - L143
specialize prime_field_polynomial_equivalent_symmetric (S N) - L144
specialize prime_field_polynomial_equivalent_symmetric (0) - L145
specialize prime_field_polynomial_equivalent_symmetric (0) - L146
specialize prime_field_polynomial_equivalent_symmetric (0)
27Use earlier factsL147–152
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L147
apply prime_field_polynomial_equivalent_symmetric - L148
specialize prime_field_polynomial_zero_prefix_equivalent_empty (eb) - L149
specialize prime_field_polynomial_zero_prefix_equivalent_empty (ec) - L150
specialize prime_field_polynomial_zero_prefix_equivalent_empty (S N) - L151
apply prime_field_polynomial_zero_prefix_equivalent_empty - L152
exact hezero
28Establish hdataL153–162
Establish this local claim before using it. It is not an additional assumption.
- L153
have hdata : K = S N ∧ PolynomialShift(cb,cc,N,db,dc)Definitions: PolynomialShift - L154
specialize prime_field_polynomial_convolution_shift_right_nonempty (p) - L155
specialize prime_field_polynomial_convolution_shift_right_nonempty (ab) - L156
specialize prime_field_polynomial_convolution_shift_right_nonempty (ac) - L157
specialize prime_field_polynomial_convolution_shift_right_nonempty (L) - L158
specialize prime_field_polynomial_convolution_shift_right_nonempty (bb) - L159
specialize prime_field_polynomial_convolution_shift_right_nonempty (bc) - L160
specialize prime_field_polynomial_convolution_shift_right_nonempty (M) - L161
specialize prime_field_polynomial_convolution_shift_right_nonempty (cb) - L162
specialize prime_field_polynomial_convolution_shift_right_nonempty (cc)
29Use earlier factsL163–172
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L163
specialize prime_field_polynomial_convolution_shift_right_nonempty (N) - L164
specialize prime_field_polynomial_convolution_shift_right_nonempty (BB) - L165
specialize prime_field_polynomial_convolution_shift_right_nonempty (BC) - L166
specialize prime_field_polynomial_convolution_shift_right_nonempty (db) - L167
specialize prime_field_polynomial_convolution_shift_right_nonempty (dc) - L168
specialize prime_field_polynomial_convolution_shift_right_nonempty (K) - L169
apply prime_field_polynomial_convolution_shift_right_nonempty - L170
exact hp - L171
exact hL_right - L172
exact hM_right
30Use earlier factsL173–175
31Separate the logical casesL176–176
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L176
cases hdata
32Calculate and transport equalitiesL177–178
33Use earlier factsL179–188
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L179
specialize prime_field_polynomial_equal_implies_equivalent (db) - L180
specialize prime_field_polynomial_equal_implies_equivalent (dc) - L181
specialize prime_field_polynomial_equal_implies_equivalent (eb) - L182
specialize prime_field_polynomial_equal_implies_equivalent (ec) - L183
specialize prime_field_polynomial_equal_implies_equivalent (S N) - L184
apply prime_field_polynomial_equal_implies_equivalent - L185
specialize prime_field_polynomial_shift_functional (cb) - L186
specialize prime_field_polynomial_shift_functional (cc) - L187
specialize prime_field_polynomial_shift_functional (N) - L188
specialize prime_field_polynomial_shift_functional (db)
34Use earlier factsL189–194
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 194 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro M - 0008
intro cb - 0009
intro cc - 0010
intro N - 0011
intro BB - 0012
intro BC - 0013
intro db - 0014
intro dc - 0015
intro K - 0016
intro eb - 0017
intro ec - 0018
intro hp - 0019
intro hs - 0020
intro hc - 0021
intro hd - 0022
intro he - 0023
have hL : L=0 \/ ~(L=0) - 0024
specialize eq_decidable (L) - 0025
specialize eq_decidable (0) - 0026
apply eq_decidable - 0027
cases hL - 0028
have hz : ((forall pfp_repeat_index_shift_equivalent_empty_left_old_zero. (exists pfa_gap_shift_equivalent_empty_left_old_zeroindex. pfa_gap_shift_equivalent_empty_left_old_zeroindex + S (pfp_repeat_index_shift_equivalent_empty_left_old_zero) = (N)) -> (((exists ff_h_pfp_shift_equivalent_empty_left_old_zeroentry. ff_h_pfp_shift_equivalent_empty_left_old_zeroentry + S (0) = S ((S (pfp_repeat_index_shift_equivalent_empty_left_old_zero)) * cc)) /\ exists ff_q_pfp_shift_equivalent_empty_left_old_zeroentry. cb = ff_q_pfp_shift_equivalent_empty_left_old_zeroentry * S ((S (pfp_repeat_index_shift_equivalent_empty_left_old_zero)) * cc) + (0)))) /\ ((forall pfp_repeat_index_shift_equivalent_empty_left_new_zero. (exists pfa_gap_shift_equivalent_empty_left_new_zeroindex. pfa_gap_shift_equivalent_empty_left_new_zeroindex + S (pfp_repeat_index_shift_equivalent_empty_left_new_zero) = (K)) -> (((exists ff_h_pfp_shift_equivalent_empty_left_new_zeroentry. ff_h_pfp_shift_equivalent_empty_left_new_zeroentry + S (0) = S ((S (pfp_repeat_index_shift_equivalent_empty_left_new_zero)) * dc)) /\ exists ff_q_pfp_shift_equivalent_empty_left_new_zeroentry. db = ff_q_pfp_shift_equivalent_empty_left_new_zeroentry * S ((S (pfp_repeat_index_shift_equivalent_empty_left_new_zero)) * dc) + (0)))))) - 0029
specialize prime_field_polynomial_convolution_shift_right_empty (p) - 0030
specialize prime_field_polynomial_convolution_shift_right_empty (ab) - 0031
specialize prime_field_polynomial_convolution_shift_right_empty (ac) - 0032
specialize prime_field_polynomial_convolution_shift_right_empty (L) - 0033
specialize prime_field_polynomial_convolution_shift_right_empty (bb) - 0034
specialize prime_field_polynomial_convolution_shift_right_empty (bc) - 0035
specialize prime_field_polynomial_convolution_shift_right_empty (M) - 0036
specialize prime_field_polynomial_convolution_shift_right_empty (cb) - 0037
specialize prime_field_polynomial_convolution_shift_right_empty (cc) - 0038
specialize prime_field_polynomial_convolution_shift_right_empty (N) - 0039
specialize prime_field_polynomial_convolution_shift_right_empty (BB) - 0040
specialize prime_field_polynomial_convolution_shift_right_empty (BC) - 0041
specialize prime_field_polynomial_convolution_shift_right_empty (db) - 0042
specialize prime_field_polynomial_convolution_shift_right_empty (dc) - 0043
specialize prime_field_polynomial_convolution_shift_right_empty (K) - 0044
apply prime_field_polynomial_convolution_shift_right_empty - 0045
exact hp - 0046
exact hs - 0047
exact hc - 0048
exact hd - 0049
left - 0050
exact hL_left - 0051
cases hz - 0052
have hezero : forall pfp_repeat_index_shift_equivalent_empty_left_shifted_zero. (exists pfa_gap_shift_equivalent_empty_left_shifted_zeroindex. pfa_gap_shift_equivalent_empty_left_shifted_zeroindex + S (pfp_repeat_index_shift_equivalent_empty_left_shifted_zero) = (S N)) -> (((exists ff_h_pfp_shift_equivalent_empty_left_shifted_zeroentry. ff_h_pfp_shift_equivalent_empty_left_shifted_zeroentry + S (0) = S ((S (pfp_repeat_index_shift_equivalent_empty_left_shifted_zero)) * ec)) /\ exists ff_q_pfp_shift_equivalent_empty_left_shifted_zeroentry. eb = ff_q_pfp_shift_equivalent_empty_left_shifted_zeroentry * S ((S (pfp_repeat_index_shift_equivalent_empty_left_shifted_zero)) * ec) + (0))) - 0053
specialize prime_field_polynomial_shift_zero_prefix (cb) - 0054
specialize prime_field_polynomial_shift_zero_prefix (cc) - 0055
specialize prime_field_polynomial_shift_zero_prefix (N) - 0056
specialize prime_field_polynomial_shift_zero_prefix (eb) - 0057
specialize prime_field_polynomial_shift_zero_prefix (ec) - 0058
apply prime_field_polynomial_shift_zero_prefix - 0059
exact hz_left - 0060
exact he - 0061
specialize prime_field_polynomial_equivalent_transitive (db) - 0062
specialize prime_field_polynomial_equivalent_transitive (dc) - 0063
specialize prime_field_polynomial_equivalent_transitive (K) - 0064
specialize prime_field_polynomial_equivalent_transitive (0) - 0065
specialize prime_field_polynomial_equivalent_transitive (0) - 0066
specialize prime_field_polynomial_equivalent_transitive (0) - 0067
specialize prime_field_polynomial_equivalent_transitive (eb) - 0068
specialize prime_field_polynomial_equivalent_transitive (ec) - 0069
specialize prime_field_polynomial_equivalent_transitive (S N) - 0070
apply prime_field_polynomial_equivalent_transitive - 0071
specialize prime_field_polynomial_zero_prefix_equivalent_empty (db) - 0072
specialize prime_field_polynomial_zero_prefix_equivalent_empty (dc) - 0073
specialize prime_field_polynomial_zero_prefix_equivalent_empty (K) - 0074
apply prime_field_polynomial_zero_prefix_equivalent_empty - 0075
exact hz_right - 0076
specialize prime_field_polynomial_equivalent_symmetric (eb) - 0077
specialize prime_field_polynomial_equivalent_symmetric (ec) - 0078
specialize prime_field_polynomial_equivalent_symmetric (S N) - 0079
specialize prime_field_polynomial_equivalent_symmetric (0) - 0080
specialize prime_field_polynomial_equivalent_symmetric (0) - 0081
specialize prime_field_polynomial_equivalent_symmetric (0) - 0082
apply prime_field_polynomial_equivalent_symmetric - 0083
specialize prime_field_polynomial_zero_prefix_equivalent_empty (eb) - 0084
specialize prime_field_polynomial_zero_prefix_equivalent_empty (ec) - 0085
specialize prime_field_polynomial_zero_prefix_equivalent_empty (S N) - 0086
apply prime_field_polynomial_zero_prefix_equivalent_empty - 0087
exact hezero - 0088
have hM : M=0 \/ ~(M=0) - 0089
specialize eq_decidable (M) - 0090
specialize eq_decidable (0) - 0091
apply eq_decidable - 0092
cases hM - 0093
have hz : ((forall pfp_repeat_index_shift_equivalent_empty_right_old_zero. (exists pfa_gap_shift_equivalent_empty_right_old_zeroindex. pfa_gap_shift_equivalent_empty_right_old_zeroindex + S (pfp_repeat_index_shift_equivalent_empty_right_old_zero) = (N)) -> (((exists ff_h_pfp_shift_equivalent_empty_right_old_zeroentry. ff_h_pfp_shift_equivalent_empty_right_old_zeroentry + S (0) = S ((S (pfp_repeat_index_shift_equivalent_empty_right_old_zero)) * cc)) /\ exists ff_q_pfp_shift_equivalent_empty_right_old_zeroentry. cb = ff_q_pfp_shift_equivalent_empty_right_old_zeroentry * S ((S (pfp_repeat_index_shift_equivalent_empty_right_old_zero)) * cc) + (0)))) /\ ((forall pfp_repeat_index_shift_equivalent_empty_right_new_zero. (exists pfa_gap_shift_equivalent_empty_right_new_zeroindex. pfa_gap_shift_equivalent_empty_right_new_zeroindex + S (pfp_repeat_index_shift_equivalent_empty_right_new_zero) = (K)) -> (((exists ff_h_pfp_shift_equivalent_empty_right_new_zeroentry. ff_h_pfp_shift_equivalent_empty_right_new_zeroentry + S (0) = S ((S (pfp_repeat_index_shift_equivalent_empty_right_new_zero)) * dc)) /\ exists ff_q_pfp_shift_equivalent_empty_right_new_zeroentry. db = ff_q_pfp_shift_equivalent_empty_right_new_zeroentry * S ((S (pfp_repeat_index_shift_equivalent_empty_right_new_zero)) * dc) + (0)))))) - 0094
specialize prime_field_polynomial_convolution_shift_right_empty (p) - 0095
specialize prime_field_polynomial_convolution_shift_right_empty (ab) - 0096
specialize prime_field_polynomial_convolution_shift_right_empty (ac) - 0097
specialize prime_field_polynomial_convolution_shift_right_empty (L) - 0098
specialize prime_field_polynomial_convolution_shift_right_empty (bb) - 0099
specialize prime_field_polynomial_convolution_shift_right_empty (bc) - 0100
specialize prime_field_polynomial_convolution_shift_right_empty (M) - 0101
specialize prime_field_polynomial_convolution_shift_right_empty (cb) - 0102
specialize prime_field_polynomial_convolution_shift_right_empty (cc) - 0103
specialize prime_field_polynomial_convolution_shift_right_empty (N) - 0104
specialize prime_field_polynomial_convolution_shift_right_empty (BB) - 0105
specialize prime_field_polynomial_convolution_shift_right_empty (BC) - 0106
specialize prime_field_polynomial_convolution_shift_right_empty (db) - 0107
specialize prime_field_polynomial_convolution_shift_right_empty (dc) - 0108
specialize prime_field_polynomial_convolution_shift_right_empty (K) - 0109
apply prime_field_polynomial_convolution_shift_right_empty - 0110
exact hp - 0111
exact hs - 0112
exact hc - 0113
exact hd - 0114
right - 0115
exact hM_left - 0116
cases hz - 0117
have hezero : forall pfp_repeat_index_shift_equivalent_empty_right_shifted_zero. (exists pfa_gap_shift_equivalent_empty_right_shifted_zeroindex. pfa_gap_shift_equivalent_empty_right_shifted_zeroindex + S (pfp_repeat_index_shift_equivalent_empty_right_shifted_zero) = (S N)) -> (((exists ff_h_pfp_shift_equivalent_empty_right_shifted_zeroentry. ff_h_pfp_shift_equivalent_empty_right_shifted_zeroentry + S (0) = S ((S (pfp_repeat_index_shift_equivalent_empty_right_shifted_zero)) * ec)) /\ exists ff_q_pfp_shift_equivalent_empty_right_shifted_zeroentry. eb = ff_q_pfp_shift_equivalent_empty_right_shifted_zeroentry * S ((S (pfp_repeat_index_shift_equivalent_empty_right_shifted_zero)) * ec) + (0))) - 0118
specialize prime_field_polynomial_shift_zero_prefix (cb) - 0119
specialize prime_field_polynomial_shift_zero_prefix (cc) - 0120
specialize prime_field_polynomial_shift_zero_prefix (N) - 0121
specialize prime_field_polynomial_shift_zero_prefix (eb) - 0122
specialize prime_field_polynomial_shift_zero_prefix (ec) - 0123
apply prime_field_polynomial_shift_zero_prefix - 0124
exact hz_left - 0125
exact he - 0126
specialize prime_field_polynomial_equivalent_transitive (db) - 0127
specialize prime_field_polynomial_equivalent_transitive (dc) - 0128
specialize prime_field_polynomial_equivalent_transitive (K) - 0129
specialize prime_field_polynomial_equivalent_transitive (0) - 0130
specialize prime_field_polynomial_equivalent_transitive (0) - 0131
specialize prime_field_polynomial_equivalent_transitive (0) - 0132
specialize prime_field_polynomial_equivalent_transitive (eb) - 0133
specialize prime_field_polynomial_equivalent_transitive (ec) - 0134
specialize prime_field_polynomial_equivalent_transitive (S N) - 0135
apply prime_field_polynomial_equivalent_transitive - 0136
specialize prime_field_polynomial_zero_prefix_equivalent_empty (db) - 0137
specialize prime_field_polynomial_zero_prefix_equivalent_empty (dc) - 0138
specialize prime_field_polynomial_zero_prefix_equivalent_empty (K) - 0139
apply prime_field_polynomial_zero_prefix_equivalent_empty - 0140
exact hz_right - 0141
specialize prime_field_polynomial_equivalent_symmetric (eb) - 0142
specialize prime_field_polynomial_equivalent_symmetric (ec) - 0143
specialize prime_field_polynomial_equivalent_symmetric (S N) - 0144
specialize prime_field_polynomial_equivalent_symmetric (0) - 0145
specialize prime_field_polynomial_equivalent_symmetric (0) - 0146
specialize prime_field_polynomial_equivalent_symmetric (0) - 0147
apply prime_field_polynomial_equivalent_symmetric - 0148
specialize prime_field_polynomial_zero_prefix_equivalent_empty (eb) - 0149
specialize prime_field_polynomial_zero_prefix_equivalent_empty (ec) - 0150
specialize prime_field_polynomial_zero_prefix_equivalent_empty (S N) - 0151
apply prime_field_polynomial_zero_prefix_equivalent_empty - 0152
exact hezero - 0153
have hdata : ((K=S N) /\ ((((forall mdr_i_pfp_shift_equivalent_nonempty_dataprefix mdr_a_pfp_shift_equivalent_nonempty_dataprefix. (exists mdr_gap_pfp_shift_equivalent_nonempty_dataprefixb. mdr_gap_pfp_shift_equivalent_nonempty_dataprefixb + S (mdr_i_pfp_shift_equivalent_nonempty_dataprefix) = (N)) -> (((exists ff_h_mdr_pfp_shift_equivalent_nonempty_dataprefixo. ff_h_mdr_pfp_shift_equivalent_nonempty_dataprefixo + S (mdr_a_pfp_shift_equivalent_nonempty_dataprefix) = S ((S (mdr_i_pfp_shift_equivalent_nonempty_dataprefix)) * cc)) /\ exists ff_q_mdr_pfp_shift_equivalent_nonempty_dataprefixo. cb = ff_q_mdr_pfp_shift_equivalent_nonempty_dataprefixo * S ((S (mdr_i_pfp_shift_equivalent_nonempty_dataprefix)) * cc) + (mdr_a_pfp_shift_equivalent_nonempty_dataprefix))) -> (((exists ff_h_mdr_pfp_shift_equivalent_nonempty_dataprefixn. ff_h_mdr_pfp_shift_equivalent_nonempty_dataprefixn + S (mdr_a_pfp_shift_equivalent_nonempty_dataprefix) = S ((S (mdr_i_pfp_shift_equivalent_nonempty_dataprefix)) * dc)) /\ exists ff_q_mdr_pfp_shift_equivalent_nonempty_dataprefixn. db = ff_q_mdr_pfp_shift_equivalent_nonempty_dataprefixn * S ((S (mdr_i_pfp_shift_equivalent_nonempty_dataprefix)) * dc) + (mdr_a_pfp_shift_equivalent_nonempty_dataprefix)))) /\ ((((exists ff_h_pfp_shift_equivalent_nonempty_datalast. ff_h_pfp_shift_equivalent_nonempty_datalast + S (0) = S ((S (N)) * dc)) /\ exists ff_q_pfp_shift_equivalent_nonempty_datalast. db = ff_q_pfp_shift_equivalent_nonempty_datalast * S ((S (N)) * dc) + (0)))))))) - 0154
specialize prime_field_polynomial_convolution_shift_right_nonempty (p) - 0155
specialize prime_field_polynomial_convolution_shift_right_nonempty (ab) - 0156
specialize prime_field_polynomial_convolution_shift_right_nonempty (ac) - 0157
specialize prime_field_polynomial_convolution_shift_right_nonempty (L) - 0158
specialize prime_field_polynomial_convolution_shift_right_nonempty (bb) - 0159
specialize prime_field_polynomial_convolution_shift_right_nonempty (bc) - 0160
specialize prime_field_polynomial_convolution_shift_right_nonempty (M) - 0161
specialize prime_field_polynomial_convolution_shift_right_nonempty (cb) - 0162
specialize prime_field_polynomial_convolution_shift_right_nonempty (cc) - 0163
specialize prime_field_polynomial_convolution_shift_right_nonempty (N) - 0164
specialize prime_field_polynomial_convolution_shift_right_nonempty (BB) - 0165
specialize prime_field_polynomial_convolution_shift_right_nonempty (BC) - 0166
specialize prime_field_polynomial_convolution_shift_right_nonempty (db) - 0167
specialize prime_field_polynomial_convolution_shift_right_nonempty (dc) - 0168
specialize prime_field_polynomial_convolution_shift_right_nonempty (K) - 0169
apply prime_field_polynomial_convolution_shift_right_nonempty - 0170
exact hp - 0171
exact hL_right - 0172
exact hM_right - 0173
exact hs - 0174
exact hc - 0175
exact hd - 0176
cases hdata - 0177
rewrite hdata_left - 0178
rewrite hdata_left - 0179
specialize prime_field_polynomial_equal_implies_equivalent (db) - 0180
specialize prime_field_polynomial_equal_implies_equivalent (dc) - 0181
specialize prime_field_polynomial_equal_implies_equivalent (eb) - 0182
specialize prime_field_polynomial_equal_implies_equivalent (ec) - 0183
specialize prime_field_polynomial_equal_implies_equivalent (S N) - 0184
apply prime_field_polynomial_equal_implies_equivalent - 0185
specialize prime_field_polynomial_shift_functional (cb) - 0186
specialize prime_field_polynomial_shift_functional (cc) - 0187
specialize prime_field_polynomial_shift_functional (N) - 0188
specialize prime_field_polynomial_shift_functional (db) - 0189
specialize prime_field_polynomial_shift_functional (dc) - 0190
specialize prime_field_polynomial_shift_functional (eb) - 0191
specialize prime_field_polynomial_shift_functional (ec) - 0192
apply prime_field_polynomial_shift_functional - 0193
exact hdata_right - 0194
exact he