DF0012

dirichlet_grid_entry_convolution_product

Canonical factor-cell functionality identifies its value with the actual scalar multiple of any witnessed inner convolution summand.

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

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

Every grid, slice, row sum and intermediate table is constructed. Retained cells have witnessed n=(a*e)*c and value F(a)*(H(e)*G(c)). The flat endpoint is unused. Table associativity includes N=0 and compares only positive values, not encodings. Full G009 remains broader.

Exact theorem in conservative defined notation

∀ F. ∀ G. ∀ H. ∀ n. ∀ a. ∀ q. ∀ u. ∀ e. ∀ v. ∀ z. ¬a = 0 → n = a · q → ArithAt(F,a,u)DirichletEntry(H,G,q,e,v)DirichletGridEntry(F,G,H,n,a,e,z)SignedMul(u,v,z)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall F G H n a q u e v z. ~(a=0) -> n=a*q -> (exists dst_positive_code_row_product_first dst_positive_scale_row_product_first dst_negative_code_row_product_first dst_negative_scale_row_product_first dst_positive_row_product_first dst_negative_row_product_first. (((F) = (((((dst_positive_code_row_product_first) + (dst_positive_scale_row_product_first)) * S ((dst_positive_code_row_product_first) + (dst_positive_scale_row_product_first)) + ((dst_positive_scale_row_product_first) + (dst_positive_scale_row_product_first))) + (((dst_negative_code_row_product_first) + (dst_negative_scale_row_product_first)) * S ((dst_negative_code_row_product_first) + (dst_negative_scale_row_product_first)) + ((dst_negative_scale_row_product_first) + (dst_negative_scale_row_product_first)))) * S ((((dst_positive_code_row_product_first) + (dst_positive_scale_row_product_first)) * S ((dst_positive_code_row_product_first) + (dst_positive_scale_row_product_first)) + ((dst_positive_scale_row_product_first) + (dst_positive_scale_row_product_first))) + (((dst_negative_code_row_product_first) + (dst_negative_scale_row_product_first)) * S ((dst_negative_code_row_product_first) + (dst_negative_scale_row_product_first)) + ((dst_negative_scale_row_product_first) + (dst_negative_scale_row_product_first)))) + ((((dst_negative_code_row_product_first) + (dst_negative_scale_row_product_first)) * S ((dst_negative_code_row_product_first) + (dst_negative_scale_row_product_first)) + ((dst_negative_scale_row_product_first) + (dst_negative_scale_row_product_first))) + (((dst_negative_code_row_product_first) + (dst_negative_scale_row_product_first)) * S ((dst_negative_code_row_product_first) + (dst_negative_scale_row_product_first)) + ((dst_negative_scale_row_product_first) + (dst_negative_scale_row_product_first)))))) /\ (((((exists ff_h_pvs_row_product_firstpositive. ff_h_pvs_row_product_firstpositive + S (dst_positive_row_product_first) = S ((S (a)) * dst_positive_scale_row_product_first)) /\ exists ff_q_pvs_row_product_firstpositive. dst_positive_code_row_product_first = ff_q_pvs_row_product_firstpositive * S ((S (a)) * dst_positive_scale_row_product_first) + (dst_positive_row_product_first))) /\ (((((exists ff_h_pvs_row_product_firstnegative. ff_h_pvs_row_product_firstnegative + S (dst_negative_row_product_first) = S ((S (a)) * dst_negative_scale_row_product_first)) /\ exists ff_q_pvs_row_product_firstnegative. dst_negative_code_row_product_first = ff_q_pvs_row_product_firstnegative * S ((S (a)) * dst_negative_scale_row_product_first) + (dst_negative_row_product_first))) /\ (exists ge_balance_positive_row_product_firstvalue ge_balance_negative_row_product_firstvalue. (((((u) = 2 * (ge_balance_positive_row_product_firstvalue) /\ (ge_balance_negative_row_product_firstvalue) = 0) \/ exists ge_signed_half_row_product_firstvaluedecode. (((u) = 2 * ge_signed_half_row_product_firstvaluedecode + 1 /\ (ge_balance_positive_row_product_firstvalue) = 0) /\ (ge_balance_negative_row_product_firstvalue) = S ge_signed_half_row_product_firstvaluedecode))) /\ ((dst_positive_row_product_first) + ge_balance_negative_row_product_firstvalue = (dst_negative_row_product_first) + ge_balance_positive_row_product_firstvalue))))))))) -> ((((~((e)=0)) /\ (exists dc_quotient_row_product_inner dc_left_row_product_inner dc_right_row_product_inner. (((q)=(e)*dc_quotient_row_product_inner) /\ (((exists dst_positive_code_row_product_innerleft dst_positive_scale_row_product_innerleft dst_negative_code_row_product_innerleft dst_negative_scale_row_product_innerleft dst_positive_row_product_innerleft dst_negative_row_product_innerleft. (((H) = (((((dst_positive_code_row_product_innerleft) + (dst_positive_scale_row_product_innerleft)) * S ((dst_positive_code_row_product_innerleft) + (dst_positive_scale_row_product_innerleft)) + ((dst_positive_scale_row_product_innerleft) + (dst_positive_scale_row_product_innerleft))) + (((dst_negative_code_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)) * S ((dst_negative_code_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)) + ((dst_negative_scale_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)))) * S ((((dst_positive_code_row_product_innerleft) + (dst_positive_scale_row_product_innerleft)) * S ((dst_positive_code_row_product_innerleft) + (dst_positive_scale_row_product_innerleft)) + ((dst_positive_scale_row_product_innerleft) + (dst_positive_scale_row_product_innerleft))) + (((dst_negative_code_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)) * S ((dst_negative_code_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)) + ((dst_negative_scale_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)))) + ((((dst_negative_code_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)) * S ((dst_negative_code_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)) + ((dst_negative_scale_row_product_innerleft) + (dst_negative_scale_row_product_innerleft))) + (((dst_negative_code_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)) * S ((dst_negative_code_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)) + ((dst_negative_scale_row_product_innerleft) + (dst_negative_scale_row_product_innerleft)))))) /\ (((((exists ff_h_pvs_row_product_innerleftpositive. ff_h_pvs_row_product_innerleftpositive + S (dst_positive_row_product_innerleft) = S ((S (e)) * dst_positive_scale_row_product_innerleft)) /\ exists ff_q_pvs_row_product_innerleftpositive. dst_positive_code_row_product_innerleft = ff_q_pvs_row_product_innerleftpositive * S ((S (e)) * dst_positive_scale_row_product_innerleft) + (dst_positive_row_product_innerleft))) /\ (((((exists ff_h_pvs_row_product_innerleftnegative. ff_h_pvs_row_product_innerleftnegative + S (dst_negative_row_product_innerleft) = S ((S (e)) * dst_negative_scale_row_product_innerleft)) /\ exists ff_q_pvs_row_product_innerleftnegative. dst_negative_code_row_product_innerleft = ff_q_pvs_row_product_innerleftnegative * S ((S (e)) * dst_negative_scale_row_product_innerleft) + (dst_negative_row_product_innerleft))) /\ (exists ge_balance_positive_row_product_innerleftvalue ge_balance_negative_row_product_innerleftvalue. (((((dc_left_row_product_inner) = 2 * (ge_balance_positive_row_product_innerleftvalue) /\ (ge_balance_negative_row_product_innerleftvalue) = 0) \/ exists ge_signed_half_row_product_innerleftvaluedecode. (((dc_left_row_product_inner) = 2 * ge_signed_half_row_product_innerleftvaluedecode + 1 /\ (ge_balance_positive_row_product_innerleftvalue) = 0) /\ (ge_balance_negative_row_product_innerleftvalue) = S ge_signed_half_row_product_innerleftvaluedecode))) /\ ((dst_positive_row_product_innerleft) + ge_balance_negative_row_product_innerleftvalue = (dst_negative_row_product_innerleft) + ge_balance_positive_row_product_innerleftvalue))))))))) /\ (((exists dst_positive_code_row_product_innerright dst_positive_scale_row_product_innerright dst_negative_code_row_product_innerright dst_negative_scale_row_product_innerright dst_positive_row_product_innerright dst_negative_row_product_innerright. (((G) = (((((dst_positive_code_row_product_innerright) + (dst_positive_scale_row_product_innerright)) * S ((dst_positive_code_row_product_innerright) + (dst_positive_scale_row_product_innerright)) + ((dst_positive_scale_row_product_innerright) + (dst_positive_scale_row_product_innerright))) + (((dst_negative_code_row_product_innerright) + (dst_negative_scale_row_product_innerright)) * S ((dst_negative_code_row_product_innerright) + (dst_negative_scale_row_product_innerright)) + ((dst_negative_scale_row_product_innerright) + (dst_negative_scale_row_product_innerright)))) * S ((((dst_positive_code_row_product_innerright) + (dst_positive_scale_row_product_innerright)) * S ((dst_positive_code_row_product_innerright) + (dst_positive_scale_row_product_innerright)) + ((dst_positive_scale_row_product_innerright) + (dst_positive_scale_row_product_innerright))) + (((dst_negative_code_row_product_innerright) + (dst_negative_scale_row_product_innerright)) * S ((dst_negative_code_row_product_innerright) + (dst_negative_scale_row_product_innerright)) + ((dst_negative_scale_row_product_innerright) + (dst_negative_scale_row_product_innerright)))) + ((((dst_negative_code_row_product_innerright) + (dst_negative_scale_row_product_innerright)) * S ((dst_negative_code_row_product_innerright) + (dst_negative_scale_row_product_innerright)) + ((dst_negative_scale_row_product_innerright) + (dst_negative_scale_row_product_innerright))) + (((dst_negative_code_row_product_innerright) + (dst_negative_scale_row_product_innerright)) * S ((dst_negative_code_row_product_innerright) + (dst_negative_scale_row_product_innerright)) + ((dst_negative_scale_row_product_innerright) + (dst_negative_scale_row_product_innerright)))))) /\ (((((exists ff_h_pvs_row_product_innerrightpositive. ff_h_pvs_row_product_innerrightpositive + S (dst_positive_row_product_innerright) = S ((S (dc_quotient_row_product_inner)) * dst_positive_scale_row_product_innerright)) /\ exists ff_q_pvs_row_product_innerrightpositive. dst_positive_code_row_product_innerright = ff_q_pvs_row_product_innerrightpositive * S ((S (dc_quotient_row_product_inner)) * dst_positive_scale_row_product_innerright) + (dst_positive_row_product_innerright))) /\ (((((exists ff_h_pvs_row_product_innerrightnegative. ff_h_pvs_row_product_innerrightnegative + S (dst_negative_row_product_innerright) = S ((S (dc_quotient_row_product_inner)) * dst_negative_scale_row_product_innerright)) /\ exists ff_q_pvs_row_product_innerrightnegative. dst_negative_code_row_product_innerright = ff_q_pvs_row_product_innerrightnegative * S ((S (dc_quotient_row_product_inner)) * dst_negative_scale_row_product_innerright) + (dst_negative_row_product_innerright))) /\ (exists ge_balance_positive_row_product_innerrightvalue ge_balance_negative_row_product_innerrightvalue. (((((dc_right_row_product_inner) = 2 * (ge_balance_positive_row_product_innerrightvalue) /\ (ge_balance_negative_row_product_innerrightvalue) = 0) \/ exists ge_signed_half_row_product_innerrightvaluedecode. (((dc_right_row_product_inner) = 2 * ge_signed_half_row_product_innerrightvaluedecode + 1 /\ (ge_balance_positive_row_product_innerrightvalue) = 0) /\ (ge_balance_negative_row_product_innerrightvalue) = S ge_signed_half_row_product_innerrightvaluedecode))) /\ ((dst_positive_row_product_innerright) + ge_balance_negative_row_product_innerrightvalue = (dst_negative_row_product_innerright) + ge_balance_positive_row_product_innerrightvalue))))))))) /\ (exists sto_ap_row_product_innerproduct sto_an_row_product_innerproduct sto_bp_row_product_innerproduct sto_bn_row_product_innerproduct sto_cp_row_product_innerproduct sto_cn_row_product_innerproduct. (((((dc_left_row_product_inner) = 2 * (sto_ap_row_product_innerproduct) /\ (sto_an_row_product_innerproduct) = 0) \/ exists ge_signed_half_row_product_innerproductleft. (((dc_left_row_product_inner) = 2 * ge_signed_half_row_product_innerproductleft + 1 /\ (sto_ap_row_product_innerproduct) = 0) /\ (sto_an_row_product_innerproduct) = S ge_signed_half_row_product_innerproductleft))) /\ ((((((dc_right_row_product_inner) = 2 * (sto_bp_row_product_innerproduct) /\ (sto_bn_row_product_innerproduct) = 0) \/ exists ge_signed_half_row_product_innerproductright. (((dc_right_row_product_inner) = 2 * ge_signed_half_row_product_innerproductright + 1 /\ (sto_bp_row_product_innerproduct) = 0) /\ (sto_bn_row_product_innerproduct) = S ge_signed_half_row_product_innerproductright))) /\ ((((((v) = 2 * (sto_cp_row_product_innerproduct) /\ (sto_cn_row_product_innerproduct) = 0) \/ exists ge_signed_half_row_product_innerproductoutput. (((v) = 2 * ge_signed_half_row_product_innerproductoutput + 1 /\ (sto_cp_row_product_innerproduct) = 0) /\ (sto_cn_row_product_innerproduct) = S ge_signed_half_row_product_innerproductoutput))) /\ ((sto_ap_row_product_innerproduct * sto_bp_row_product_innerproduct + sto_an_row_product_innerproduct * sto_bn_row_product_innerproduct) + sto_cn_row_product_innerproduct = (sto_ap_row_product_innerproduct * sto_bn_row_product_innerproduct + sto_an_row_product_innerproduct * sto_bp_row_product_innerproduct) + sto_cp_row_product_innerproduct))))))))))))))) \/ ((((e)=0 \/ ~(exists pvs_factor_row_product_innernondivisor. (q) = (e) * pvs_factor_row_product_innernondivisor)) /\ ((v)=0)))) -> ((((~((a)=0)) /\ (((~((e)=0)) /\ (exists dfg_middle_row_product_cell dfg_first_row_product_cell dfg_last_row_product_cell dfg_value_row_product_cell. (((n)=((a)*(e))*dfg_middle_row_product_cell) /\ (((exists dst_positive_code_row_product_cellfirst dst_positive_scale_row_product_cellfirst dst_negative_code_row_product_cellfirst dst_negative_scale_row_product_cellfirst dst_positive_row_product_cellfirst dst_negative_row_product_cellfirst. (((F) = (((((dst_positive_code_row_product_cellfirst) + (dst_positive_scale_row_product_cellfirst)) * S ((dst_positive_code_row_product_cellfirst) + (dst_positive_scale_row_product_cellfirst)) + ((dst_positive_scale_row_product_cellfirst) + (dst_positive_scale_row_product_cellfirst))) + (((dst_negative_code_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)) * S ((dst_negative_code_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)) + ((dst_negative_scale_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)))) * S ((((dst_positive_code_row_product_cellfirst) + (dst_positive_scale_row_product_cellfirst)) * S ((dst_positive_code_row_product_cellfirst) + (dst_positive_scale_row_product_cellfirst)) + ((dst_positive_scale_row_product_cellfirst) + (dst_positive_scale_row_product_cellfirst))) + (((dst_negative_code_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)) * S ((dst_negative_code_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)) + ((dst_negative_scale_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)))) + ((((dst_negative_code_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)) * S ((dst_negative_code_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)) + ((dst_negative_scale_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst))) + (((dst_negative_code_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)) * S ((dst_negative_code_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)) + ((dst_negative_scale_row_product_cellfirst) + (dst_negative_scale_row_product_cellfirst)))))) /\ (((((exists ff_h_pvs_row_product_cellfirstpositive. ff_h_pvs_row_product_cellfirstpositive + S (dst_positive_row_product_cellfirst) = S ((S (a)) * dst_positive_scale_row_product_cellfirst)) /\ exists ff_q_pvs_row_product_cellfirstpositive. dst_positive_code_row_product_cellfirst = ff_q_pvs_row_product_cellfirstpositive * S ((S (a)) * dst_positive_scale_row_product_cellfirst) + (dst_positive_row_product_cellfirst))) /\ (((((exists ff_h_pvs_row_product_cellfirstnegative. ff_h_pvs_row_product_cellfirstnegative + S (dst_negative_row_product_cellfirst) = S ((S (a)) * dst_negative_scale_row_product_cellfirst)) /\ exists ff_q_pvs_row_product_cellfirstnegative. dst_negative_code_row_product_cellfirst = ff_q_pvs_row_product_cellfirstnegative * S ((S (a)) * dst_negative_scale_row_product_cellfirst) + (dst_negative_row_product_cellfirst))) /\ (exists ge_balance_positive_row_product_cellfirstvalue ge_balance_negative_row_product_cellfirstvalue. (((((dfg_first_row_product_cell) = 2 * (ge_balance_positive_row_product_cellfirstvalue) /\ (ge_balance_negative_row_product_cellfirstvalue) = 0) \/ exists ge_signed_half_row_product_cellfirstvaluedecode. (((dfg_first_row_product_cell) = 2 * ge_signed_half_row_product_cellfirstvaluedecode + 1 /\ (ge_balance_positive_row_product_cellfirstvalue) = 0) /\ (ge_balance_negative_row_product_cellfirstvalue) = S ge_signed_half_row_product_cellfirstvaluedecode))) /\ ((dst_positive_row_product_cellfirst) + ge_balance_negative_row_product_cellfirstvalue = (dst_negative_row_product_cellfirst) + ge_balance_positive_row_product_cellfirstvalue))))))))) /\ (((exists dst_positive_code_row_product_celllast dst_positive_scale_row_product_celllast dst_negative_code_row_product_celllast dst_negative_scale_row_product_celllast dst_positive_row_product_celllast dst_negative_row_product_celllast. (((H) = (((((dst_positive_code_row_product_celllast) + (dst_positive_scale_row_product_celllast)) * S ((dst_positive_code_row_product_celllast) + (dst_positive_scale_row_product_celllast)) + ((dst_positive_scale_row_product_celllast) + (dst_positive_scale_row_product_celllast))) + (((dst_negative_code_row_product_celllast) + (dst_negative_scale_row_product_celllast)) * S ((dst_negative_code_row_product_celllast) + (dst_negative_scale_row_product_celllast)) + ((dst_negative_scale_row_product_celllast) + (dst_negative_scale_row_product_celllast)))) * S ((((dst_positive_code_row_product_celllast) + (dst_positive_scale_row_product_celllast)) * S ((dst_positive_code_row_product_celllast) + (dst_positive_scale_row_product_celllast)) + ((dst_positive_scale_row_product_celllast) + (dst_positive_scale_row_product_celllast))) + (((dst_negative_code_row_product_celllast) + (dst_negative_scale_row_product_celllast)) * S ((dst_negative_code_row_product_celllast) + (dst_negative_scale_row_product_celllast)) + ((dst_negative_scale_row_product_celllast) + (dst_negative_scale_row_product_celllast)))) + ((((dst_negative_code_row_product_celllast) + (dst_negative_scale_row_product_celllast)) * S ((dst_negative_code_row_product_celllast) + (dst_negative_scale_row_product_celllast)) + ((dst_negative_scale_row_product_celllast) + (dst_negative_scale_row_product_celllast))) + (((dst_negative_code_row_product_celllast) + (dst_negative_scale_row_product_celllast)) * S ((dst_negative_code_row_product_celllast) + (dst_negative_scale_row_product_celllast)) + ((dst_negative_scale_row_product_celllast) + (dst_negative_scale_row_product_celllast)))))) /\ (((((exists ff_h_pvs_row_product_celllastpositive. ff_h_pvs_row_product_celllastpositive + S (dst_positive_row_product_celllast) = S ((S (e)) * dst_positive_scale_row_product_celllast)) /\ exists ff_q_pvs_row_product_celllastpositive. dst_positive_code_row_product_celllast = ff_q_pvs_row_product_celllastpositive * S ((S (e)) * dst_positive_scale_row_product_celllast) + (dst_positive_row_product_celllast))) /\ (((((exists ff_h_pvs_row_product_celllastnegative. ff_h_pvs_row_product_celllastnegative + S (dst_negative_row_product_celllast) = S ((S (e)) * dst_negative_scale_row_product_celllast)) /\ exists ff_q_pvs_row_product_celllastnegative. dst_negative_code_row_product_celllast = ff_q_pvs_row_product_celllastnegative * S ((S (e)) * dst_negative_scale_row_product_celllast) + (dst_negative_row_product_celllast))) /\ (exists ge_balance_positive_row_product_celllastvalue ge_balance_negative_row_product_celllastvalue. (((((dfg_last_row_product_cell) = 2 * (ge_balance_positive_row_product_celllastvalue) /\ (ge_balance_negative_row_product_celllastvalue) = 0) \/ exists ge_signed_half_row_product_celllastvaluedecode. (((dfg_last_row_product_cell) = 2 * ge_signed_half_row_product_celllastvaluedecode + 1 /\ (ge_balance_positive_row_product_celllastvalue) = 0) /\ (ge_balance_negative_row_product_celllastvalue) = S ge_signed_half_row_product_celllastvaluedecode))) /\ ((dst_positive_row_product_celllast) + ge_balance_negative_row_product_celllastvalue = (dst_negative_row_product_celllast) + ge_balance_positive_row_product_celllastvalue))))))))) /\ (((exists dst_positive_code_row_product_cellmiddle dst_positive_scale_row_product_cellmiddle dst_negative_code_row_product_cellmiddle dst_negative_scale_row_product_cellmiddle dst_positive_row_product_cellmiddle dst_negative_row_product_cellmiddle. (((G) = (((((dst_positive_code_row_product_cellmiddle) + (dst_positive_scale_row_product_cellmiddle)) * S ((dst_positive_code_row_product_cellmiddle) + (dst_positive_scale_row_product_cellmiddle)) + ((dst_positive_scale_row_product_cellmiddle) + (dst_positive_scale_row_product_cellmiddle))) + (((dst_negative_code_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)) * S ((dst_negative_code_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)) + ((dst_negative_scale_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)))) * S ((((dst_positive_code_row_product_cellmiddle) + (dst_positive_scale_row_product_cellmiddle)) * S ((dst_positive_code_row_product_cellmiddle) + (dst_positive_scale_row_product_cellmiddle)) + ((dst_positive_scale_row_product_cellmiddle) + (dst_positive_scale_row_product_cellmiddle))) + (((dst_negative_code_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)) * S ((dst_negative_code_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)) + ((dst_negative_scale_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)))) + ((((dst_negative_code_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)) * S ((dst_negative_code_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)) + ((dst_negative_scale_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle))) + (((dst_negative_code_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)) * S ((dst_negative_code_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)) + ((dst_negative_scale_row_product_cellmiddle) + (dst_negative_scale_row_product_cellmiddle)))))) /\ (((((exists ff_h_pvs_row_product_cellmiddlepositive. ff_h_pvs_row_product_cellmiddlepositive + S (dst_positive_row_product_cellmiddle) = S ((S (dfg_middle_row_product_cell)) * dst_positive_scale_row_product_cellmiddle)) /\ exists ff_q_pvs_row_product_cellmiddlepositive. dst_positive_code_row_product_cellmiddle = ff_q_pvs_row_product_cellmiddlepositive * S ((S (dfg_middle_row_product_cell)) * dst_positive_scale_row_product_cellmiddle) + (dst_positive_row_product_cellmiddle))) /\ (((((exists ff_h_pvs_row_product_cellmiddlenegative. ff_h_pvs_row_product_cellmiddlenegative + S (dst_negative_row_product_cellmiddle) = S ((S (dfg_middle_row_product_cell)) * dst_negative_scale_row_product_cellmiddle)) /\ exists ff_q_pvs_row_product_cellmiddlenegative. dst_negative_code_row_product_cellmiddle = ff_q_pvs_row_product_cellmiddlenegative * S ((S (dfg_middle_row_product_cell)) * dst_negative_scale_row_product_cellmiddle) + (dst_negative_row_product_cellmiddle))) /\ (exists ge_balance_positive_row_product_cellmiddlevalue ge_balance_negative_row_product_cellmiddlevalue. (((((dfg_value_row_product_cell) = 2 * (ge_balance_positive_row_product_cellmiddlevalue) /\ (ge_balance_negative_row_product_cellmiddlevalue) = 0) \/ exists ge_signed_half_row_product_cellmiddlevaluedecode. (((dfg_value_row_product_cell) = 2 * ge_signed_half_row_product_cellmiddlevaluedecode + 1 /\ (ge_balance_positive_row_product_cellmiddlevalue) = 0) /\ (ge_balance_negative_row_product_cellmiddlevalue) = S ge_signed_half_row_product_cellmiddlevaluedecode))) /\ ((dst_positive_row_product_cellmiddle) + ge_balance_negative_row_product_cellmiddlevalue = (dst_negative_row_product_cellmiddle) + ge_balance_positive_row_product_cellmiddlevalue))))))))) /\ (exists dfg_inner_row_product_cellproduct. ((exists sto_ap_row_product_cellproductinner sto_an_row_product_cellproductinner sto_bp_row_product_cellproductinner sto_bn_row_product_cellproductinner sto_cp_row_product_cellproductinner sto_cn_row_product_cellproductinner. (((((dfg_last_row_product_cell) = 2 * (sto_ap_row_product_cellproductinner) /\ (sto_an_row_product_cellproductinner) = 0) \/ exists ge_signed_half_row_product_cellproductinnerleft. (((dfg_last_row_product_cell) = 2 * ge_signed_half_row_product_cellproductinnerleft + 1 /\ (sto_ap_row_product_cellproductinner) = 0) /\ (sto_an_row_product_cellproductinner) = S ge_signed_half_row_product_cellproductinnerleft))) /\ ((((((dfg_value_row_product_cell) = 2 * (sto_bp_row_product_cellproductinner) /\ (sto_bn_row_product_cellproductinner) = 0) \/ exists ge_signed_half_row_product_cellproductinnerright. (((dfg_value_row_product_cell) = 2 * ge_signed_half_row_product_cellproductinnerright + 1 /\ (sto_bp_row_product_cellproductinner) = 0) /\ (sto_bn_row_product_cellproductinner) = S ge_signed_half_row_product_cellproductinnerright))) /\ ((((((dfg_inner_row_product_cellproduct) = 2 * (sto_cp_row_product_cellproductinner) /\ (sto_cn_row_product_cellproductinner) = 0) \/ exists ge_signed_half_row_product_cellproductinneroutput. (((dfg_inner_row_product_cellproduct) = 2 * ge_signed_half_row_product_cellproductinneroutput + 1 /\ (sto_cp_row_product_cellproductinner) = 0) /\ (sto_cn_row_product_cellproductinner) = S ge_signed_half_row_product_cellproductinneroutput))) /\ ((sto_ap_row_product_cellproductinner * sto_bp_row_product_cellproductinner + sto_an_row_product_cellproductinner * sto_bn_row_product_cellproductinner) + sto_cn_row_product_cellproductinner = (sto_ap_row_product_cellproductinner * sto_bn_row_product_cellproductinner + sto_an_row_product_cellproductinner * sto_bp_row_product_cellproductinner) + sto_cp_row_product_cellproductinner))))))) /\ (exists sto_ap_row_product_cellproductouter sto_an_row_product_cellproductouter sto_bp_row_product_cellproductouter sto_bn_row_product_cellproductouter sto_cp_row_product_cellproductouter sto_cn_row_product_cellproductouter. (((((dfg_first_row_product_cell) = 2 * (sto_ap_row_product_cellproductouter) /\ (sto_an_row_product_cellproductouter) = 0) \/ exists ge_signed_half_row_product_cellproductouterleft. (((dfg_first_row_product_cell) = 2 * ge_signed_half_row_product_cellproductouterleft + 1 /\ (sto_ap_row_product_cellproductouter) = 0) /\ (sto_an_row_product_cellproductouter) = S ge_signed_half_row_product_cellproductouterleft))) /\ ((((((dfg_inner_row_product_cellproduct) = 2 * (sto_bp_row_product_cellproductouter) /\ (sto_bn_row_product_cellproductouter) = 0) \/ exists ge_signed_half_row_product_cellproductouterright. (((dfg_inner_row_product_cellproduct) = 2 * ge_signed_half_row_product_cellproductouterright + 1 /\ (sto_bp_row_product_cellproductouter) = 0) /\ (sto_bn_row_product_cellproductouter) = S ge_signed_half_row_product_cellproductouterright))) /\ ((((((z) = 2 * (sto_cp_row_product_cellproductouter) /\ (sto_cn_row_product_cellproductouter) = 0) \/ exists ge_signed_half_row_product_cellproductouteroutput. (((z) = 2 * ge_signed_half_row_product_cellproductouteroutput + 1 /\ (sto_cp_row_product_cellproductouter) = 0) /\ (sto_cn_row_product_cellproductouter) = S ge_signed_half_row_product_cellproductouteroutput))) /\ ((sto_ap_row_product_cellproductouter * sto_bp_row_product_cellproductouter + sto_an_row_product_cellproductouter * sto_bn_row_product_cellproductouter) + sto_cn_row_product_cellproductouter = (sto_ap_row_product_cellproductouter * sto_bn_row_product_cellproductouter + sto_an_row_product_cellproductouter * sto_bp_row_product_cellproductouter) + sto_cp_row_product_cellproductouter))))))))))))))))))))) \/ ((((a)=0 \/ ((e)=0 \/ ~(exists pvs_factor_row_product_cellomittednondivisor. (n) = ((a)*(e)) * pvs_factor_row_product_cellomittednondivisor))) /\ ((z)=0)))) -> (exists sto_ap_row_product_result sto_an_row_product_result sto_bp_row_product_result sto_bn_row_product_result sto_cp_row_product_result sto_cn_row_product_result. (((((u) = 2 * (sto_ap_row_product_result) /\ (sto_an_row_product_result) = 0) \/ exists ge_signed_half_row_product_resultleft. (((u) = 2 * ge_signed_half_row_product_resultleft + 1 /\ (sto_ap_row_product_result) = 0) /\ (sto_an_row_product_result) = S ge_signed_half_row_product_resultleft))) /\ ((((((v) = 2 * (sto_bp_row_product_result) /\ (sto_bn_row_product_result) = 0) \/ exists ge_signed_half_row_product_resultright. (((v) = 2 * ge_signed_half_row_product_resultright + 1 /\ (sto_bp_row_product_result) = 0) /\ (sto_bn_row_product_result) = S ge_signed_half_row_product_resultright))) /\ ((((((z) = 2 * (sto_cp_row_product_result) /\ (sto_cn_row_product_result) = 0) \/ exists ge_signed_half_row_product_resultoutput. (((z) = 2 * ge_signed_half_row_product_resultoutput + 1 /\ (sto_cp_row_product_result) = 0) /\ (sto_cn_row_product_result) = S ge_signed_half_row_product_resultoutput))) /\ ((sto_ap_row_product_result * sto_bp_row_product_result + sto_an_row_product_result * sto_bn_row_product_result) + sto_cn_row_product_result = (sto_ap_row_product_result * sto_bn_row_product_result + sto_an_row_product_result * sto_bp_row_product_result) + sto_cp_row_product_result)))))))

Complete tactic proof in conservative notation

All 50 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

50 script commands · 9 reading checkpoints · 2 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (2)
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
03Establish hpL16–19

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

  1. L16
    have hp : ∃ w. SignedMul(u,v,w)Definitions: SignedMul(u,v,w)Original native command in the exact edition
  2. L17
    specialize signed_mul_total (u)
  3. L18
    specialize signed_mul_total (v)
  4. L19
    apply signed_mul_total
04Separate the logical casesL20–20

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

  1. L20
    cases hp
05Establish heqL21–30

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

  1. L21
    have heq : x=z
  2. L22
    specialize dirichlet_grid_entry_functional (F)
  3. L23
    specialize dirichlet_grid_entry_functional (G)
  4. L24
    specialize dirichlet_grid_entry_functional (H)
  5. L25
    specialize dirichlet_grid_entry_functional (n)
  6. L26
    specialize dirichlet_grid_entry_functional (a)
  7. L27
    specialize dirichlet_grid_entry_functional (e)
  8. L28
    specialize dirichlet_grid_entry_functional (x)
  9. L29
    specialize dirichlet_grid_entry_functional (z)
  10. L30
    apply dirichlet_grid_entry_functional
06Use earlier factsL31–40

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

  1. L31
    specialize dirichlet_grid_entry_from_convolution_entry (F)
  2. L32
    specialize dirichlet_grid_entry_from_convolution_entry (G)
  3. L33
    specialize dirichlet_grid_entry_from_convolution_entry (H)
  4. L34
    specialize dirichlet_grid_entry_from_convolution_entry (n)
  5. L35
    specialize dirichlet_grid_entry_from_convolution_entry (a)
  6. L36
    specialize dirichlet_grid_entry_from_convolution_entry (q)
  7. L37
    specialize dirichlet_grid_entry_from_convolution_entry (u)
  8. L38
    specialize dirichlet_grid_entry_from_convolution_entry (e)
  9. L39
    specialize dirichlet_grid_entry_from_convolution_entry (v)
  10. L40
    specialize dirichlet_grid_entry_from_convolution_entry (x)
07Use earlier factsL41–47

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

  1. L41
    apply dirichlet_grid_entry_from_convolution_entry
  2. L42
    exact ha
  3. L43
    exact hq
  4. L44
    exact hu
  5. L45
    exact hv
  6. L46
    exact hp_witness
  7. L47
    exact hz
08Calculate and transport equalitiesL48–49

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

  1. L48
    rewrite heq at hp_witness
  2. L49
    rewrite heq at hp_witness
09Use earlier factsL50–50

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

  1. L50
    exact hp_witness

Library-wide reading audit

Original defined command ledger · 50 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. 0016have hp : ∃ w. SignedMul(u,v,w)
  17. 0017specialize signed_mul_total (u)
  18. 0018specialize signed_mul_total (v)
  19. 0019apply signed_mul_total
  20. 0020cases hp
  21. 0021have heq : x=z
  22. 0022specialize dirichlet_grid_entry_functional (F)
  23. 0023specialize dirichlet_grid_entry_functional (G)
  24. 0024specialize dirichlet_grid_entry_functional (H)
  25. 0025specialize dirichlet_grid_entry_functional (n)
  26. 0026specialize dirichlet_grid_entry_functional (a)
  27. 0027specialize dirichlet_grid_entry_functional (e)
  28. 0028specialize dirichlet_grid_entry_functional (x)
  29. 0029specialize dirichlet_grid_entry_functional (z)
  30. 0030apply dirichlet_grid_entry_functional
  31. 0031specialize dirichlet_grid_entry_from_convolution_entry (F)
  32. 0032specialize dirichlet_grid_entry_from_convolution_entry (G)
  33. 0033specialize dirichlet_grid_entry_from_convolution_entry (H)
  34. 0034specialize dirichlet_grid_entry_from_convolution_entry (n)
  35. 0035specialize dirichlet_grid_entry_from_convolution_entry (a)
  36. 0036specialize dirichlet_grid_entry_from_convolution_entry (q)
  37. 0037specialize dirichlet_grid_entry_from_convolution_entry (u)
  38. 0038specialize dirichlet_grid_entry_from_convolution_entry (e)
  39. 0039specialize dirichlet_grid_entry_from_convolution_entry (v)
  40. 0040specialize dirichlet_grid_entry_from_convolution_entry (x)
  41. 0041apply dirichlet_grid_entry_from_convolution_entry
  42. 0042exact ha
  43. 0043exact hq
  44. 0044exact hu
  45. 0045exact hv
  46. 0046exact hp_witness
  47. 0047exact hz
  48. 0048rewrite heq at hp_witness
  49. 0049rewrite heq at hp_witness
  50. 0050exact hp_witness