DF0011

dirichlet_grid_entry_from_convolution_entry

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Multiplying an actual inner convolution summand gives the exact factor cell, including zero and omitted inner divisors.

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 F G H n a q u e v z. ~(a=0) -> n=a*q -> (exists dst_positive_code_row_lift_first dst_positive_scale_row_lift_first dst_negative_code_row_lift_first dst_negative_scale_row_lift_first dst_positive_row_lift_first dst_negative_row_lift_first. (((F) = (((((dst_positive_code_row_lift_first) + (dst_positive_scale_row_lift_first)) * S ((dst_positive_code_row_lift_first) + (dst_positive_scale_row_lift_first)) + ((dst_positive_scale_row_lift_first) + (dst_positive_scale_row_lift_first))) + (((dst_negative_code_row_lift_first) + (dst_negative_scale_row_lift_first)) * S ((dst_negative_code_row_lift_first) + (dst_negative_scale_row_lift_first)) + ((dst_negative_scale_row_lift_first) + (dst_negative_scale_row_lift_first)))) * S ((((dst_positive_code_row_lift_first) + (dst_positive_scale_row_lift_first)) * S ((dst_positive_code_row_lift_first) + (dst_positive_scale_row_lift_first)) + ((dst_positive_scale_row_lift_first) + (dst_positive_scale_row_lift_first))) + (((dst_negative_code_row_lift_first) + (dst_negative_scale_row_lift_first)) * S ((dst_negative_code_row_lift_first) + (dst_negative_scale_row_lift_first)) + ((dst_negative_scale_row_lift_first) + (dst_negative_scale_row_lift_first)))) + ((((dst_negative_code_row_lift_first) + (dst_negative_scale_row_lift_first)) * S ((dst_negative_code_row_lift_first) + (dst_negative_scale_row_lift_first)) + ((dst_negative_scale_row_lift_first) + (dst_negative_scale_row_lift_first))) + (((dst_negative_code_row_lift_first) + (dst_negative_scale_row_lift_first)) * S ((dst_negative_code_row_lift_first) + (dst_negative_scale_row_lift_first)) + ((dst_negative_scale_row_lift_first) + (dst_negative_scale_row_lift_first)))))) /\ (((((exists ff_h_pvs_row_lift_firstpositive. ff_h_pvs_row_lift_firstpositive + S (dst_positive_row_lift_first) = S ((S (a)) * dst_positive_scale_row_lift_first)) /\ exists ff_q_pvs_row_lift_firstpositive. dst_positive_code_row_lift_first = ff_q_pvs_row_lift_firstpositive * S ((S (a)) * dst_positive_scale_row_lift_first) + (dst_positive_row_lift_first))) /\ (((((exists ff_h_pvs_row_lift_firstnegative. ff_h_pvs_row_lift_firstnegative + S (dst_negative_row_lift_first) = S ((S (a)) * dst_negative_scale_row_lift_first)) /\ exists ff_q_pvs_row_lift_firstnegative. dst_negative_code_row_lift_first = ff_q_pvs_row_lift_firstnegative * S ((S (a)) * dst_negative_scale_row_lift_first) + (dst_negative_row_lift_first))) /\ (exists ge_balance_positive_row_lift_firstvalue ge_balance_negative_row_lift_firstvalue. (((((u) = 2 * (ge_balance_positive_row_lift_firstvalue) /\ (ge_balance_negative_row_lift_firstvalue) = 0) \/ exists ge_signed_half_row_lift_firstvaluedecode. (((u) = 2 * ge_signed_half_row_lift_firstvaluedecode + 1 /\ (ge_balance_positive_row_lift_firstvalue) = 0) /\ (ge_balance_negative_row_lift_firstvalue) = S ge_signed_half_row_lift_firstvaluedecode))) /\ ((dst_positive_row_lift_first) + ge_balance_negative_row_lift_firstvalue = (dst_negative_row_lift_first) + ge_balance_positive_row_lift_firstvalue))))))))) -> ((((~((e)=0)) /\ (exists dc_quotient_row_lift_inner dc_left_row_lift_inner dc_right_row_lift_inner. (((q)=(e)*dc_quotient_row_lift_inner) /\ (((exists dst_positive_code_row_lift_innerleft dst_positive_scale_row_lift_innerleft dst_negative_code_row_lift_innerleft dst_negative_scale_row_lift_innerleft dst_positive_row_lift_innerleft dst_negative_row_lift_innerleft. (((H) = (((((dst_positive_code_row_lift_innerleft) + (dst_positive_scale_row_lift_innerleft)) * S ((dst_positive_code_row_lift_innerleft) + (dst_positive_scale_row_lift_innerleft)) + ((dst_positive_scale_row_lift_innerleft) + (dst_positive_scale_row_lift_innerleft))) + (((dst_negative_code_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)) * S ((dst_negative_code_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)) + ((dst_negative_scale_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)))) * S ((((dst_positive_code_row_lift_innerleft) + (dst_positive_scale_row_lift_innerleft)) * S ((dst_positive_code_row_lift_innerleft) + (dst_positive_scale_row_lift_innerleft)) + ((dst_positive_scale_row_lift_innerleft) + (dst_positive_scale_row_lift_innerleft))) + (((dst_negative_code_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)) * S ((dst_negative_code_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)) + ((dst_negative_scale_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)))) + ((((dst_negative_code_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)) * S ((dst_negative_code_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)) + ((dst_negative_scale_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft))) + (((dst_negative_code_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)) * S ((dst_negative_code_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)) + ((dst_negative_scale_row_lift_innerleft) + (dst_negative_scale_row_lift_innerleft)))))) /\ (((((exists ff_h_pvs_row_lift_innerleftpositive. ff_h_pvs_row_lift_innerleftpositive + S (dst_positive_row_lift_innerleft) = S ((S (e)) * dst_positive_scale_row_lift_innerleft)) /\ exists ff_q_pvs_row_lift_innerleftpositive. dst_positive_code_row_lift_innerleft = ff_q_pvs_row_lift_innerleftpositive * S ((S (e)) * dst_positive_scale_row_lift_innerleft) + (dst_positive_row_lift_innerleft))) /\ (((((exists ff_h_pvs_row_lift_innerleftnegative. ff_h_pvs_row_lift_innerleftnegative + S (dst_negative_row_lift_innerleft) = S ((S (e)) * dst_negative_scale_row_lift_innerleft)) /\ exists ff_q_pvs_row_lift_innerleftnegative. dst_negative_code_row_lift_innerleft = ff_q_pvs_row_lift_innerleftnegative * S ((S (e)) * dst_negative_scale_row_lift_innerleft) + (dst_negative_row_lift_innerleft))) /\ (exists ge_balance_positive_row_lift_innerleftvalue ge_balance_negative_row_lift_innerleftvalue. (((((dc_left_row_lift_inner) = 2 * (ge_balance_positive_row_lift_innerleftvalue) /\ (ge_balance_negative_row_lift_innerleftvalue) = 0) \/ exists ge_signed_half_row_lift_innerleftvaluedecode. (((dc_left_row_lift_inner) = 2 * ge_signed_half_row_lift_innerleftvaluedecode + 1 /\ (ge_balance_positive_row_lift_innerleftvalue) = 0) /\ (ge_balance_negative_row_lift_innerleftvalue) = S ge_signed_half_row_lift_innerleftvaluedecode))) /\ ((dst_positive_row_lift_innerleft) + ge_balance_negative_row_lift_innerleftvalue = (dst_negative_row_lift_innerleft) + ge_balance_positive_row_lift_innerleftvalue))))))))) /\ (((exists dst_positive_code_row_lift_innerright dst_positive_scale_row_lift_innerright dst_negative_code_row_lift_innerright dst_negative_scale_row_lift_innerright dst_positive_row_lift_innerright dst_negative_row_lift_innerright. (((G) = (((((dst_positive_code_row_lift_innerright) + (dst_positive_scale_row_lift_innerright)) * S ((dst_positive_code_row_lift_innerright) + (dst_positive_scale_row_lift_innerright)) + ((dst_positive_scale_row_lift_innerright) + (dst_positive_scale_row_lift_innerright))) + (((dst_negative_code_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)) * S ((dst_negative_code_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)) + ((dst_negative_scale_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)))) * S ((((dst_positive_code_row_lift_innerright) + (dst_positive_scale_row_lift_innerright)) * S ((dst_positive_code_row_lift_innerright) + (dst_positive_scale_row_lift_innerright)) + ((dst_positive_scale_row_lift_innerright) + (dst_positive_scale_row_lift_innerright))) + (((dst_negative_code_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)) * S ((dst_negative_code_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)) + ((dst_negative_scale_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)))) + ((((dst_negative_code_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)) * S ((dst_negative_code_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)) + ((dst_negative_scale_row_lift_innerright) + (dst_negative_scale_row_lift_innerright))) + (((dst_negative_code_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)) * S ((dst_negative_code_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)) + ((dst_negative_scale_row_lift_innerright) + (dst_negative_scale_row_lift_innerright)))))) /\ (((((exists ff_h_pvs_row_lift_innerrightpositive. ff_h_pvs_row_lift_innerrightpositive + S (dst_positive_row_lift_innerright) = S ((S (dc_quotient_row_lift_inner)) * dst_positive_scale_row_lift_innerright)) /\ exists ff_q_pvs_row_lift_innerrightpositive. dst_positive_code_row_lift_innerright = ff_q_pvs_row_lift_innerrightpositive * S ((S (dc_quotient_row_lift_inner)) * dst_positive_scale_row_lift_innerright) + (dst_positive_row_lift_innerright))) /\ (((((exists ff_h_pvs_row_lift_innerrightnegative. ff_h_pvs_row_lift_innerrightnegative + S (dst_negative_row_lift_innerright) = S ((S (dc_quotient_row_lift_inner)) * dst_negative_scale_row_lift_innerright)) /\ exists ff_q_pvs_row_lift_innerrightnegative. dst_negative_code_row_lift_innerright = ff_q_pvs_row_lift_innerrightnegative * S ((S (dc_quotient_row_lift_inner)) * dst_negative_scale_row_lift_innerright) + (dst_negative_row_lift_innerright))) /\ (exists ge_balance_positive_row_lift_innerrightvalue ge_balance_negative_row_lift_innerrightvalue. (((((dc_right_row_lift_inner) = 2 * (ge_balance_positive_row_lift_innerrightvalue) /\ (ge_balance_negative_row_lift_innerrightvalue) = 0) \/ exists ge_signed_half_row_lift_innerrightvaluedecode. (((dc_right_row_lift_inner) = 2 * ge_signed_half_row_lift_innerrightvaluedecode + 1 /\ (ge_balance_positive_row_lift_innerrightvalue) = 0) /\ (ge_balance_negative_row_lift_innerrightvalue) = S ge_signed_half_row_lift_innerrightvaluedecode))) /\ ((dst_positive_row_lift_innerright) + ge_balance_negative_row_lift_innerrightvalue = (dst_negative_row_lift_innerright) + ge_balance_positive_row_lift_innerrightvalue))))))))) /\ (exists sto_ap_row_lift_innerproduct sto_an_row_lift_innerproduct sto_bp_row_lift_innerproduct sto_bn_row_lift_innerproduct sto_cp_row_lift_innerproduct sto_cn_row_lift_innerproduct. (((((dc_left_row_lift_inner) = 2 * (sto_ap_row_lift_innerproduct) /\ (sto_an_row_lift_innerproduct) = 0) \/ exists ge_signed_half_row_lift_innerproductleft. (((dc_left_row_lift_inner) = 2 * ge_signed_half_row_lift_innerproductleft + 1 /\ (sto_ap_row_lift_innerproduct) = 0) /\ (sto_an_row_lift_innerproduct) = S ge_signed_half_row_lift_innerproductleft))) /\ ((((((dc_right_row_lift_inner) = 2 * (sto_bp_row_lift_innerproduct) /\ (sto_bn_row_lift_innerproduct) = 0) \/ exists ge_signed_half_row_lift_innerproductright. (((dc_right_row_lift_inner) = 2 * ge_signed_half_row_lift_innerproductright + 1 /\ (sto_bp_row_lift_innerproduct) = 0) /\ (sto_bn_row_lift_innerproduct) = S ge_signed_half_row_lift_innerproductright))) /\ ((((((v) = 2 * (sto_cp_row_lift_innerproduct) /\ (sto_cn_row_lift_innerproduct) = 0) \/ exists ge_signed_half_row_lift_innerproductoutput. (((v) = 2 * ge_signed_half_row_lift_innerproductoutput + 1 /\ (sto_cp_row_lift_innerproduct) = 0) /\ (sto_cn_row_lift_innerproduct) = S ge_signed_half_row_lift_innerproductoutput))) /\ ((sto_ap_row_lift_innerproduct * sto_bp_row_lift_innerproduct + sto_an_row_lift_innerproduct * sto_bn_row_lift_innerproduct) + sto_cn_row_lift_innerproduct = (sto_ap_row_lift_innerproduct * sto_bn_row_lift_innerproduct + sto_an_row_lift_innerproduct * sto_bp_row_lift_innerproduct) + sto_cp_row_lift_innerproduct))))))))))))))) \/ ((((e)=0 \/ ~(exists pvs_factor_row_lift_innernondivisor. (q) = (e) * pvs_factor_row_lift_innernondivisor)) /\ ((v)=0)))) -> (exists sto_ap_row_lift_product sto_an_row_lift_product sto_bp_row_lift_product sto_bn_row_lift_product sto_cp_row_lift_product sto_cn_row_lift_product. (((((u) = 2 * (sto_ap_row_lift_product) /\ (sto_an_row_lift_product) = 0) \/ exists ge_signed_half_row_lift_productleft. (((u) = 2 * ge_signed_half_row_lift_productleft + 1 /\ (sto_ap_row_lift_product) = 0) /\ (sto_an_row_lift_product) = S ge_signed_half_row_lift_productleft))) /\ ((((((v) = 2 * (sto_bp_row_lift_product) /\ (sto_bn_row_lift_product) = 0) \/ exists ge_signed_half_row_lift_productright. (((v) = 2 * ge_signed_half_row_lift_productright + 1 /\ (sto_bp_row_lift_product) = 0) /\ (sto_bn_row_lift_product) = S ge_signed_half_row_lift_productright))) /\ ((((((z) = 2 * (sto_cp_row_lift_product) /\ (sto_cn_row_lift_product) = 0) \/ exists ge_signed_half_row_lift_productoutput. (((z) = 2 * ge_signed_half_row_lift_productoutput + 1 /\ (sto_cp_row_lift_product) = 0) /\ (sto_cn_row_lift_product) = S ge_signed_half_row_lift_productoutput))) /\ ((sto_ap_row_lift_product * sto_bp_row_lift_product + sto_an_row_lift_product * sto_bn_row_lift_product) + sto_cn_row_lift_product = (sto_ap_row_lift_product * sto_bn_row_lift_product + sto_an_row_lift_product * sto_bp_row_lift_product) + sto_cp_row_lift_product))))))) -> ((((~((a)=0)) /\ (((~((e)=0)) /\ (exists dfg_middle_row_lift_result dfg_first_row_lift_result dfg_last_row_lift_result dfg_value_row_lift_result. (((n)=((a)*(e))*dfg_middle_row_lift_result) /\ (((exists dst_positive_code_row_lift_resultfirst dst_positive_scale_row_lift_resultfirst dst_negative_code_row_lift_resultfirst dst_negative_scale_row_lift_resultfirst dst_positive_row_lift_resultfirst dst_negative_row_lift_resultfirst. (((F) = (((((dst_positive_code_row_lift_resultfirst) + (dst_positive_scale_row_lift_resultfirst)) * S ((dst_positive_code_row_lift_resultfirst) + (dst_positive_scale_row_lift_resultfirst)) + ((dst_positive_scale_row_lift_resultfirst) + (dst_positive_scale_row_lift_resultfirst))) + (((dst_negative_code_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)) * S ((dst_negative_code_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)) + ((dst_negative_scale_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)))) * S ((((dst_positive_code_row_lift_resultfirst) + (dst_positive_scale_row_lift_resultfirst)) * S ((dst_positive_code_row_lift_resultfirst) + (dst_positive_scale_row_lift_resultfirst)) + ((dst_positive_scale_row_lift_resultfirst) + (dst_positive_scale_row_lift_resultfirst))) + (((dst_negative_code_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)) * S ((dst_negative_code_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)) + ((dst_negative_scale_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)))) + ((((dst_negative_code_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)) * S ((dst_negative_code_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)) + ((dst_negative_scale_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst))) + (((dst_negative_code_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)) * S ((dst_negative_code_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)) + ((dst_negative_scale_row_lift_resultfirst) + (dst_negative_scale_row_lift_resultfirst)))))) /\ (((((exists ff_h_pvs_row_lift_resultfirstpositive. ff_h_pvs_row_lift_resultfirstpositive + S (dst_positive_row_lift_resultfirst) = S ((S (a)) * dst_positive_scale_row_lift_resultfirst)) /\ exists ff_q_pvs_row_lift_resultfirstpositive. dst_positive_code_row_lift_resultfirst = ff_q_pvs_row_lift_resultfirstpositive * S ((S (a)) * dst_positive_scale_row_lift_resultfirst) + (dst_positive_row_lift_resultfirst))) /\ (((((exists ff_h_pvs_row_lift_resultfirstnegative. ff_h_pvs_row_lift_resultfirstnegative + S (dst_negative_row_lift_resultfirst) = S ((S (a)) * dst_negative_scale_row_lift_resultfirst)) /\ exists ff_q_pvs_row_lift_resultfirstnegative. dst_negative_code_row_lift_resultfirst = ff_q_pvs_row_lift_resultfirstnegative * S ((S (a)) * dst_negative_scale_row_lift_resultfirst) + (dst_negative_row_lift_resultfirst))) /\ (exists ge_balance_positive_row_lift_resultfirstvalue ge_balance_negative_row_lift_resultfirstvalue. (((((dfg_first_row_lift_result) = 2 * (ge_balance_positive_row_lift_resultfirstvalue) /\ (ge_balance_negative_row_lift_resultfirstvalue) = 0) \/ exists ge_signed_half_row_lift_resultfirstvaluedecode. (((dfg_first_row_lift_result) = 2 * ge_signed_half_row_lift_resultfirstvaluedecode + 1 /\ (ge_balance_positive_row_lift_resultfirstvalue) = 0) /\ (ge_balance_negative_row_lift_resultfirstvalue) = S ge_signed_half_row_lift_resultfirstvaluedecode))) /\ ((dst_positive_row_lift_resultfirst) + ge_balance_negative_row_lift_resultfirstvalue = (dst_negative_row_lift_resultfirst) + ge_balance_positive_row_lift_resultfirstvalue))))))))) /\ (((exists dst_positive_code_row_lift_resultlast dst_positive_scale_row_lift_resultlast dst_negative_code_row_lift_resultlast dst_negative_scale_row_lift_resultlast dst_positive_row_lift_resultlast dst_negative_row_lift_resultlast. (((H) = (((((dst_positive_code_row_lift_resultlast) + (dst_positive_scale_row_lift_resultlast)) * S ((dst_positive_code_row_lift_resultlast) + (dst_positive_scale_row_lift_resultlast)) + ((dst_positive_scale_row_lift_resultlast) + (dst_positive_scale_row_lift_resultlast))) + (((dst_negative_code_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)) * S ((dst_negative_code_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)) + ((dst_negative_scale_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)))) * S ((((dst_positive_code_row_lift_resultlast) + (dst_positive_scale_row_lift_resultlast)) * S ((dst_positive_code_row_lift_resultlast) + (dst_positive_scale_row_lift_resultlast)) + ((dst_positive_scale_row_lift_resultlast) + (dst_positive_scale_row_lift_resultlast))) + (((dst_negative_code_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)) * S ((dst_negative_code_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)) + ((dst_negative_scale_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)))) + ((((dst_negative_code_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)) * S ((dst_negative_code_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)) + ((dst_negative_scale_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast))) + (((dst_negative_code_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)) * S ((dst_negative_code_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)) + ((dst_negative_scale_row_lift_resultlast) + (dst_negative_scale_row_lift_resultlast)))))) /\ (((((exists ff_h_pvs_row_lift_resultlastpositive. ff_h_pvs_row_lift_resultlastpositive + S (dst_positive_row_lift_resultlast) = S ((S (e)) * dst_positive_scale_row_lift_resultlast)) /\ exists ff_q_pvs_row_lift_resultlastpositive. dst_positive_code_row_lift_resultlast = ff_q_pvs_row_lift_resultlastpositive * S ((S (e)) * dst_positive_scale_row_lift_resultlast) + (dst_positive_row_lift_resultlast))) /\ (((((exists ff_h_pvs_row_lift_resultlastnegative. ff_h_pvs_row_lift_resultlastnegative + S (dst_negative_row_lift_resultlast) = S ((S (e)) * dst_negative_scale_row_lift_resultlast)) /\ exists ff_q_pvs_row_lift_resultlastnegative. dst_negative_code_row_lift_resultlast = ff_q_pvs_row_lift_resultlastnegative * S ((S (e)) * dst_negative_scale_row_lift_resultlast) + (dst_negative_row_lift_resultlast))) /\ (exists ge_balance_positive_row_lift_resultlastvalue ge_balance_negative_row_lift_resultlastvalue. (((((dfg_last_row_lift_result) = 2 * (ge_balance_positive_row_lift_resultlastvalue) /\ (ge_balance_negative_row_lift_resultlastvalue) = 0) \/ exists ge_signed_half_row_lift_resultlastvaluedecode. (((dfg_last_row_lift_result) = 2 * ge_signed_half_row_lift_resultlastvaluedecode + 1 /\ (ge_balance_positive_row_lift_resultlastvalue) = 0) /\ (ge_balance_negative_row_lift_resultlastvalue) = S ge_signed_half_row_lift_resultlastvaluedecode))) /\ ((dst_positive_row_lift_resultlast) + ge_balance_negative_row_lift_resultlastvalue = (dst_negative_row_lift_resultlast) + ge_balance_positive_row_lift_resultlastvalue))))))))) /\ (((exists dst_positive_code_row_lift_resultmiddle dst_positive_scale_row_lift_resultmiddle dst_negative_code_row_lift_resultmiddle dst_negative_scale_row_lift_resultmiddle dst_positive_row_lift_resultmiddle dst_negative_row_lift_resultmiddle. (((G) = (((((dst_positive_code_row_lift_resultmiddle) + (dst_positive_scale_row_lift_resultmiddle)) * S ((dst_positive_code_row_lift_resultmiddle) + (dst_positive_scale_row_lift_resultmiddle)) + ((dst_positive_scale_row_lift_resultmiddle) + (dst_positive_scale_row_lift_resultmiddle))) + (((dst_negative_code_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)) * S ((dst_negative_code_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)) + ((dst_negative_scale_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)))) * S ((((dst_positive_code_row_lift_resultmiddle) + (dst_positive_scale_row_lift_resultmiddle)) * S ((dst_positive_code_row_lift_resultmiddle) + (dst_positive_scale_row_lift_resultmiddle)) + ((dst_positive_scale_row_lift_resultmiddle) + (dst_positive_scale_row_lift_resultmiddle))) + (((dst_negative_code_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)) * S ((dst_negative_code_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)) + ((dst_negative_scale_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)))) + ((((dst_negative_code_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)) * S ((dst_negative_code_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)) + ((dst_negative_scale_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle))) + (((dst_negative_code_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)) * S ((dst_negative_code_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)) + ((dst_negative_scale_row_lift_resultmiddle) + (dst_negative_scale_row_lift_resultmiddle)))))) /\ (((((exists ff_h_pvs_row_lift_resultmiddlepositive. ff_h_pvs_row_lift_resultmiddlepositive + S (dst_positive_row_lift_resultmiddle) = S ((S (dfg_middle_row_lift_result)) * dst_positive_scale_row_lift_resultmiddle)) /\ exists ff_q_pvs_row_lift_resultmiddlepositive. dst_positive_code_row_lift_resultmiddle = ff_q_pvs_row_lift_resultmiddlepositive * S ((S (dfg_middle_row_lift_result)) * dst_positive_scale_row_lift_resultmiddle) + (dst_positive_row_lift_resultmiddle))) /\ (((((exists ff_h_pvs_row_lift_resultmiddlenegative. ff_h_pvs_row_lift_resultmiddlenegative + S (dst_negative_row_lift_resultmiddle) = S ((S (dfg_middle_row_lift_result)) * dst_negative_scale_row_lift_resultmiddle)) /\ exists ff_q_pvs_row_lift_resultmiddlenegative. dst_negative_code_row_lift_resultmiddle = ff_q_pvs_row_lift_resultmiddlenegative * S ((S (dfg_middle_row_lift_result)) * dst_negative_scale_row_lift_resultmiddle) + (dst_negative_row_lift_resultmiddle))) /\ (exists ge_balance_positive_row_lift_resultmiddlevalue ge_balance_negative_row_lift_resultmiddlevalue. (((((dfg_value_row_lift_result) = 2 * (ge_balance_positive_row_lift_resultmiddlevalue) /\ (ge_balance_negative_row_lift_resultmiddlevalue) = 0) \/ exists ge_signed_half_row_lift_resultmiddlevaluedecode. (((dfg_value_row_lift_result) = 2 * ge_signed_half_row_lift_resultmiddlevaluedecode + 1 /\ (ge_balance_positive_row_lift_resultmiddlevalue) = 0) /\ (ge_balance_negative_row_lift_resultmiddlevalue) = S ge_signed_half_row_lift_resultmiddlevaluedecode))) /\ ((dst_positive_row_lift_resultmiddle) + ge_balance_negative_row_lift_resultmiddlevalue = (dst_negative_row_lift_resultmiddle) + ge_balance_positive_row_lift_resultmiddlevalue))))))))) /\ (exists dfg_inner_row_lift_resultproduct. ((exists sto_ap_row_lift_resultproductinner sto_an_row_lift_resultproductinner sto_bp_row_lift_resultproductinner sto_bn_row_lift_resultproductinner sto_cp_row_lift_resultproductinner sto_cn_row_lift_resultproductinner. (((((dfg_last_row_lift_result) = 2 * (sto_ap_row_lift_resultproductinner) /\ (sto_an_row_lift_resultproductinner) = 0) \/ exists ge_signed_half_row_lift_resultproductinnerleft. (((dfg_last_row_lift_result) = 2 * ge_signed_half_row_lift_resultproductinnerleft + 1 /\ (sto_ap_row_lift_resultproductinner) = 0) /\ (sto_an_row_lift_resultproductinner) = S ge_signed_half_row_lift_resultproductinnerleft))) /\ ((((((dfg_value_row_lift_result) = 2 * (sto_bp_row_lift_resultproductinner) /\ (sto_bn_row_lift_resultproductinner) = 0) \/ exists ge_signed_half_row_lift_resultproductinnerright. (((dfg_value_row_lift_result) = 2 * ge_signed_half_row_lift_resultproductinnerright + 1 /\ (sto_bp_row_lift_resultproductinner) = 0) /\ (sto_bn_row_lift_resultproductinner) = S ge_signed_half_row_lift_resultproductinnerright))) /\ ((((((dfg_inner_row_lift_resultproduct) = 2 * (sto_cp_row_lift_resultproductinner) /\ (sto_cn_row_lift_resultproductinner) = 0) \/ exists ge_signed_half_row_lift_resultproductinneroutput. (((dfg_inner_row_lift_resultproduct) = 2 * ge_signed_half_row_lift_resultproductinneroutput + 1 /\ (sto_cp_row_lift_resultproductinner) = 0) /\ (sto_cn_row_lift_resultproductinner) = S ge_signed_half_row_lift_resultproductinneroutput))) /\ ((sto_ap_row_lift_resultproductinner * sto_bp_row_lift_resultproductinner + sto_an_row_lift_resultproductinner * sto_bn_row_lift_resultproductinner) + sto_cn_row_lift_resultproductinner = (sto_ap_row_lift_resultproductinner * sto_bn_row_lift_resultproductinner + sto_an_row_lift_resultproductinner * sto_bp_row_lift_resultproductinner) + sto_cp_row_lift_resultproductinner))))))) /\ (exists sto_ap_row_lift_resultproductouter sto_an_row_lift_resultproductouter sto_bp_row_lift_resultproductouter sto_bn_row_lift_resultproductouter sto_cp_row_lift_resultproductouter sto_cn_row_lift_resultproductouter. (((((dfg_first_row_lift_result) = 2 * (sto_ap_row_lift_resultproductouter) /\ (sto_an_row_lift_resultproductouter) = 0) \/ exists ge_signed_half_row_lift_resultproductouterleft. (((dfg_first_row_lift_result) = 2 * ge_signed_half_row_lift_resultproductouterleft + 1 /\ (sto_ap_row_lift_resultproductouter) = 0) /\ (sto_an_row_lift_resultproductouter) = S ge_signed_half_row_lift_resultproductouterleft))) /\ ((((((dfg_inner_row_lift_resultproduct) = 2 * (sto_bp_row_lift_resultproductouter) /\ (sto_bn_row_lift_resultproductouter) = 0) \/ exists ge_signed_half_row_lift_resultproductouterright. (((dfg_inner_row_lift_resultproduct) = 2 * ge_signed_half_row_lift_resultproductouterright + 1 /\ (sto_bp_row_lift_resultproductouter) = 0) /\ (sto_bn_row_lift_resultproductouter) = S ge_signed_half_row_lift_resultproductouterright))) /\ ((((((z) = 2 * (sto_cp_row_lift_resultproductouter) /\ (sto_cn_row_lift_resultproductouter) = 0) \/ exists ge_signed_half_row_lift_resultproductouteroutput. (((z) = 2 * ge_signed_half_row_lift_resultproductouteroutput + 1 /\ (sto_cp_row_lift_resultproductouter) = 0) /\ (sto_cn_row_lift_resultproductouter) = S ge_signed_half_row_lift_resultproductouteroutput))) /\ ((sto_ap_row_lift_resultproductouter * sto_bp_row_lift_resultproductouter + sto_an_row_lift_resultproductouter * sto_bn_row_lift_resultproductouter) + sto_cn_row_lift_resultproductouter = (sto_ap_row_lift_resultproductouter * sto_bn_row_lift_resultproductouter + sto_an_row_lift_resultproductouter * sto_bp_row_lift_resultproductouter) + sto_cp_row_lift_resultproductouter))))))))))))))))))))) \/ ((((a)=0 \/ ((e)=0 \/ ~(exists pvs_factor_row_lift_resultomittednondivisor. (n) = ((a)*(e)) * pvs_factor_row_lift_resultomittednondivisor))) /\ ((z)=0))))

Constructive proof overview

Generated structural guide

Multiplying an actual inner convolution summand gives the exact factor cell, including zero and omitted inner divisors.

The unchanged tactic script uses 6 declared prerequisites and contains 89 exact native proof lines.

Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

DF0002 dirichlet_grid_entry_from_factorization mul_assoc Stable theorem; checked-use authorized signed_mul_functional Alpha theorem; checked-use authorized signed_mul_zero_right Alpha theorem; checked-use authorized DF0001 dirichlet_grid_entry_omitted DF0010 dirichlet_grid_middle_factor_equation

Direct 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

89 script commands · 22 reading checkpoints · 1 local claims

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 (3)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro F
  2. L2
    intro G
  3. L3
    intro H
  4. L4
    intro n
  5. L5
    intro a
  6. L6
    intro q
  7. L7
    intro u
  8. L8
    intro e
  9. L9
    intro v
  10. L10
    intro z
02Fix variables and assumptionsL11–15

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro ha
  2. L12
    intro hq
  3. L13
    intro hu
  4. L14
    intro hv
  5. L15
    intro hz
03Separate the logical casesL16–23

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L16
    cases hv
  2. L17
    cases hv_left
  3. L18
    cases hv_left_right
  4. L19
    cases hv_left_right_witness
  5. L20
    cases hv_left_right_witness_witness
  6. L21
    cases hv_left_right_witness_witness_witness
  7. L22
    cases hv_left_right_witness_witness_witness_right
  8. L23
    cases hv_left_right_witness_witness_witness_right_right
04Use earlier factsL24–33

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L24
    specialize dirichlet_grid_entry_from_factorization (F)
  2. L25
    specialize dirichlet_grid_entry_from_factorization (G)
  3. L26
    specialize dirichlet_grid_entry_from_factorization (H)
  4. L27
    specialize dirichlet_grid_entry_from_factorization (n)
  5. L28
    specialize dirichlet_grid_entry_from_factorization (a)
  6. L29
    specialize dirichlet_grid_entry_from_factorization (e)
  7. L30
    specialize dirichlet_grid_entry_from_factorization (x)
  8. L31
    specialize dirichlet_grid_entry_from_factorization (u)
  9. L32
    specialize dirichlet_grid_entry_from_factorization (x1)
  10. L33
    specialize dirichlet_grid_entry_from_factorization (x2)
05Use earlier factsL34–38

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L34
    specialize dirichlet_grid_entry_from_factorization (v)
  2. L35
    specialize dirichlet_grid_entry_from_factorization (z)
  3. L36
    apply dirichlet_grid_entry_from_factorization
  4. L37
    exact ha
  5. L38
    exact hv_left_left
06Calculate and transport equalitiesL39–39

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L39
    trans a*q
07Use earlier factsL40–40

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L40
    exact hq
08Calculate and transport equalitiesL41–42

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L41
    rewrite hv_left_right_witness_witness_witness_left
  2. L42
    symm
09Use earlier factsL43–48

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L43
    apply mul_assoc
  2. L44
    exact hu
  3. L45
    exact hv_left_right_witness_witness_witness_right_left
  4. L46
    exact hv_left_right_witness_witness_witness_right_right_left
  5. L47
    exact hv_left_right_witness_witness_witness_right_right_right
  6. L48
    exact hz
10Separate the logical casesL49–49

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L49
    cases hv_right
11Calculate and transport equalitiesL50–51

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L50
    rewrite hv_right_right at hz
  2. L51
    rewrite hv_right_right at hz
12Establish hz0L52–61

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed mul functional.

  1. L52
    have hz0 : z=0
  2. L53
    specialize signed_mul_functional (u)
  3. L54
    specialize signed_mul_functional (0)
  4. L55
    specialize signed_mul_functional (z)
  5. L56
    specialize signed_mul_functional (0)
  6. L57
    apply signed_mul_functional
  7. L58
    exact hz
  8. L59
    specialize signed_mul_zero_right (u)
  9. L60
    apply signed_mul_zero_right
  10. L61
    rewrite hz0
13Calculate and transport equalitiesL62–63

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L62
    rewrite hz0
  2. L63
    rewrite hz0
14Use earlier factsL64–70

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L64
    specialize dirichlet_grid_entry_omitted (F)
  2. L65
    specialize dirichlet_grid_entry_omitted (G)
  3. L66
    specialize dirichlet_grid_entry_omitted (H)
  4. L67
    specialize dirichlet_grid_entry_omitted (n)
  5. L68
    specialize dirichlet_grid_entry_omitted (a)
  6. L69
    specialize dirichlet_grid_entry_omitted (e)
  7. L70
    apply dirichlet_grid_entry_omitted
15Separate the logical casesL71–73

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L71
    cases hv_right_left
  2. L72
    right
  3. L73
    left
16Use earlier factsL74–74

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L74
    exact hv_right_left_left
17Separate the logical casesL75–76

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L75
    right
  2. L76
    right
18Fix variables and assumptionsL77–77

Work with arbitrary variables or the premises of the current implication.

  1. L77
    intro hdiv
19Separate the logical casesL78–78

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L78
    cases hdiv
20Use earlier factsL79–79

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L79
    apply hv_right_left_right
21Construct an explicit witnessL80–80

Supply the displayed value, then prove that it has the required property.

  1. L80
    exists x
22Use earlier factsL81–89

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L81
    specialize dirichlet_grid_middle_factor_equation (n)
  2. L82
    specialize dirichlet_grid_middle_factor_equation (a)
  3. L83
    specialize dirichlet_grid_middle_factor_equation (e)
  4. L84
    specialize dirichlet_grid_middle_factor_equation (x)
  5. L85
    specialize dirichlet_grid_middle_factor_equation (q)
  6. L86
    apply dirichlet_grid_middle_factor_equation
  7. L87
    exact ha
  8. L88
    exact hq
  9. L89
    exact hdiv_witness

Library-wide reading audit

Original exact command ledger · 89 lines
  1. 0001intro F
  2. 0002intro G
  3. 0003intro H
  4. 0004intro n
  5. 0005intro a
  6. 0006intro q
  7. 0007intro u
  8. 0008intro e
  9. 0009intro v
  10. 0010intro z
  11. 0011intro ha
  12. 0012intro hq
  13. 0013intro hu
  14. 0014intro hv
  15. 0015intro hz
  16. 0016cases hv
  17. 0017cases hv_left
  18. 0018cases hv_left_right
  19. 0019cases hv_left_right_witness
  20. 0020cases hv_left_right_witness_witness
  21. 0021cases hv_left_right_witness_witness_witness
  22. 0022cases hv_left_right_witness_witness_witness_right
  23. 0023cases hv_left_right_witness_witness_witness_right_right
  24. 0024specialize dirichlet_grid_entry_from_factorization (F)
  25. 0025specialize dirichlet_grid_entry_from_factorization (G)
  26. 0026specialize dirichlet_grid_entry_from_factorization (H)
  27. 0027specialize dirichlet_grid_entry_from_factorization (n)
  28. 0028specialize dirichlet_grid_entry_from_factorization (a)
  29. 0029specialize dirichlet_grid_entry_from_factorization (e)
  30. 0030specialize dirichlet_grid_entry_from_factorization (x)
  31. 0031specialize dirichlet_grid_entry_from_factorization (u)
  32. 0032specialize dirichlet_grid_entry_from_factorization (x1)
  33. 0033specialize dirichlet_grid_entry_from_factorization (x2)
  34. 0034specialize dirichlet_grid_entry_from_factorization (v)
  35. 0035specialize dirichlet_grid_entry_from_factorization (z)
  36. 0036apply dirichlet_grid_entry_from_factorization
  37. 0037exact ha
  38. 0038exact hv_left_left
  39. 0039trans a*q
  40. 0040exact hq
  41. 0041rewrite hv_left_right_witness_witness_witness_left
  42. 0042symm
  43. 0043apply mul_assoc
  44. 0044exact hu
  45. 0045exact hv_left_right_witness_witness_witness_right_left
  46. 0046exact hv_left_right_witness_witness_witness_right_right_left
  47. 0047exact hv_left_right_witness_witness_witness_right_right_right
  48. 0048exact hz
  49. 0049cases hv_right
  50. 0050rewrite hv_right_right at hz
  51. 0051rewrite hv_right_right at hz
  52. 0052have hz0 : z=0
  53. 0053specialize signed_mul_functional (u)
  54. 0054specialize signed_mul_functional (0)
  55. 0055specialize signed_mul_functional (z)
  56. 0056specialize signed_mul_functional (0)
  57. 0057apply signed_mul_functional
  58. 0058exact hz
  59. 0059specialize signed_mul_zero_right (u)
  60. 0060apply signed_mul_zero_right
  61. 0061rewrite hz0
  62. 0062rewrite hz0
  63. 0063rewrite hz0
  64. 0064specialize dirichlet_grid_entry_omitted (F)
  65. 0065specialize dirichlet_grid_entry_omitted (G)
  66. 0066specialize dirichlet_grid_entry_omitted (H)
  67. 0067specialize dirichlet_grid_entry_omitted (n)
  68. 0068specialize dirichlet_grid_entry_omitted (a)
  69. 0069specialize dirichlet_grid_entry_omitted (e)
  70. 0070apply dirichlet_grid_entry_omitted
  71. 0071cases hv_right_left
  72. 0072right
  73. 0073left
  74. 0074exact hv_right_left_left
  75. 0075right
  76. 0076right
  77. 0077intro hdiv
  78. 0078cases hdiv
  79. 0079apply hv_right_left_right
  80. 0080exists x
  81. 0081specialize dirichlet_grid_middle_factor_equation (n)
  82. 0082specialize dirichlet_grid_middle_factor_equation (a)
  83. 0083specialize dirichlet_grid_middle_factor_equation (e)
  84. 0084specialize dirichlet_grid_middle_factor_equation (x)
  85. 0085specialize dirichlet_grid_middle_factor_equation (q)
  86. 0086apply dirichlet_grid_middle_factor_equation
  87. 0087exact ha
  88. 0088exact hq
  89. 0089exact hdiv_witness