DF000D

dirichlet_grid_from_flat_prefix

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

The actual flat prefix supplies every bounded grid cell; the old checked matrix index bound and unique division prove the row-major decoding.

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 T. (((exists dst_positive_code_grid_sourcetable dst_positive_scale_grid_sourcetable dst_negative_code_grid_sourcetable dst_negative_scale_grid_sourcetable. (((T) = (((((dst_positive_code_grid_sourcetable) + (dst_positive_scale_grid_sourcetable)) * S ((dst_positive_code_grid_sourcetable) + (dst_positive_scale_grid_sourcetable)) + ((dst_positive_scale_grid_sourcetable) + (dst_positive_scale_grid_sourcetable))) + (((dst_negative_code_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)) * S ((dst_negative_code_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)) + ((dst_negative_scale_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)))) * S ((((dst_positive_code_grid_sourcetable) + (dst_positive_scale_grid_sourcetable)) * S ((dst_positive_code_grid_sourcetable) + (dst_positive_scale_grid_sourcetable)) + ((dst_positive_scale_grid_sourcetable) + (dst_positive_scale_grid_sourcetable))) + (((dst_negative_code_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)) * S ((dst_negative_code_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)) + ((dst_negative_scale_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)))) + ((((dst_negative_code_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)) * S ((dst_negative_code_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)) + ((dst_negative_scale_grid_sourcetable) + (dst_negative_scale_grid_sourcetable))) + (((dst_negative_code_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)) * S ((dst_negative_code_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)) + ((dst_negative_scale_grid_sourcetable) + (dst_negative_scale_grid_sourcetable)))))) /\ (forall dst_index_grid_sourcetable. (exists pvs_le_gap_grid_sourcetabledomain. pvs_le_gap_grid_sourcetabledomain + (dst_index_grid_sourcetable) = ((S n)*(S n))) -> exists dst_positive_grid_sourcetable dst_negative_grid_sourcetable dst_value_grid_sourcetable. ((((exists ff_h_pvs_grid_sourcetableentrypositive. ff_h_pvs_grid_sourcetableentrypositive + S (dst_positive_grid_sourcetable) = S ((S (dst_index_grid_sourcetable)) * dst_positive_scale_grid_sourcetable)) /\ exists ff_q_pvs_grid_sourcetableentrypositive. dst_positive_code_grid_sourcetable = ff_q_pvs_grid_sourcetableentrypositive * S ((S (dst_index_grid_sourcetable)) * dst_positive_scale_grid_sourcetable) + (dst_positive_grid_sourcetable))) /\ (((((exists ff_h_pvs_grid_sourcetableentrynegative. ff_h_pvs_grid_sourcetableentrynegative + S (dst_negative_grid_sourcetable) = S ((S (dst_index_grid_sourcetable)) * dst_negative_scale_grid_sourcetable)) /\ exists ff_q_pvs_grid_sourcetableentrynegative. dst_negative_code_grid_sourcetable = ff_q_pvs_grid_sourcetableentrynegative * S ((S (dst_index_grid_sourcetable)) * dst_negative_scale_grid_sourcetable) + (dst_negative_grid_sourcetable))) /\ (exists ge_balance_positive_grid_sourcetableentryvalue ge_balance_negative_grid_sourcetableentryvalue. (((((dst_value_grid_sourcetable) = 2 * (ge_balance_positive_grid_sourcetableentryvalue) /\ (ge_balance_negative_grid_sourcetableentryvalue) = 0) \/ exists ge_signed_half_grid_sourcetableentryvaluedecode. (((dst_value_grid_sourcetable) = 2 * ge_signed_half_grid_sourcetableentryvaluedecode + 1 /\ (ge_balance_positive_grid_sourcetableentryvalue) = 0) /\ (ge_balance_negative_grid_sourcetableentryvalue) = S ge_signed_half_grid_sourcetableentryvaluedecode))) /\ ((dst_positive_grid_sourcetable) + ge_balance_negative_grid_sourcetableentryvalue = (dst_negative_grid_sourcetable) + ge_balance_positive_grid_sourcetableentryvalue))))))))) /\ (forall dfg_flat_index_grid_source dfg_flat_value_grid_source. (exists pvs_le_gap_grid_sourcebound. pvs_le_gap_grid_sourcebound + (dfg_flat_index_grid_source) = ((S n)*(S n))) -> (exists dst_positive_code_grid_sourcelookup dst_positive_scale_grid_sourcelookup dst_negative_code_grid_sourcelookup dst_negative_scale_grid_sourcelookup dst_positive_grid_sourcelookup dst_negative_grid_sourcelookup. (((T) = (((((dst_positive_code_grid_sourcelookup) + (dst_positive_scale_grid_sourcelookup)) * S ((dst_positive_code_grid_sourcelookup) + (dst_positive_scale_grid_sourcelookup)) + ((dst_positive_scale_grid_sourcelookup) + (dst_positive_scale_grid_sourcelookup))) + (((dst_negative_code_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)) * S ((dst_negative_code_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)) + ((dst_negative_scale_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)))) * S ((((dst_positive_code_grid_sourcelookup) + (dst_positive_scale_grid_sourcelookup)) * S ((dst_positive_code_grid_sourcelookup) + (dst_positive_scale_grid_sourcelookup)) + ((dst_positive_scale_grid_sourcelookup) + (dst_positive_scale_grid_sourcelookup))) + (((dst_negative_code_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)) * S ((dst_negative_code_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)) + ((dst_negative_scale_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)))) + ((((dst_negative_code_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)) * S ((dst_negative_code_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)) + ((dst_negative_scale_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup))) + (((dst_negative_code_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)) * S ((dst_negative_code_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)) + ((dst_negative_scale_grid_sourcelookup) + (dst_negative_scale_grid_sourcelookup)))))) /\ (((((exists ff_h_pvs_grid_sourcelookuppositive. ff_h_pvs_grid_sourcelookuppositive + S (dst_positive_grid_sourcelookup) = S ((S (dfg_flat_index_grid_source)) * dst_positive_scale_grid_sourcelookup)) /\ exists ff_q_pvs_grid_sourcelookuppositive. dst_positive_code_grid_sourcelookup = ff_q_pvs_grid_sourcelookuppositive * S ((S (dfg_flat_index_grid_source)) * dst_positive_scale_grid_sourcelookup) + (dst_positive_grid_sourcelookup))) /\ (((((exists ff_h_pvs_grid_sourcelookupnegative. ff_h_pvs_grid_sourcelookupnegative + S (dst_negative_grid_sourcelookup) = S ((S (dfg_flat_index_grid_source)) * dst_negative_scale_grid_sourcelookup)) /\ exists ff_q_pvs_grid_sourcelookupnegative. dst_negative_code_grid_sourcelookup = ff_q_pvs_grid_sourcelookupnegative * S ((S (dfg_flat_index_grid_source)) * dst_negative_scale_grid_sourcelookup) + (dst_negative_grid_sourcelookup))) /\ (exists ge_balance_positive_grid_sourcelookupvalue ge_balance_negative_grid_sourcelookupvalue. (((((dfg_flat_value_grid_source) = 2 * (ge_balance_positive_grid_sourcelookupvalue) /\ (ge_balance_negative_grid_sourcelookupvalue) = 0) \/ exists ge_signed_half_grid_sourcelookupvaluedecode. (((dfg_flat_value_grid_source) = 2 * ge_signed_half_grid_sourcelookupvaluedecode + 1 /\ (ge_balance_positive_grid_sourcelookupvalue) = 0) /\ (ge_balance_negative_grid_sourcelookupvalue) = S ge_signed_half_grid_sourcelookupvaluedecode))) /\ ((dst_positive_grid_sourcelookup) + ge_balance_negative_grid_sourcelookupvalue = (dst_negative_grid_sourcelookup) + ge_balance_positive_grid_sourcelookupvalue))))))))) -> (exists dfg_flat_row_grid_sourceentry dfg_flat_column_grid_sourceentry. (((dfg_flat_index_grid_source)=((S (n))*(dfg_flat_row_grid_sourceentry)+(dfg_flat_column_grid_sourceentry))) /\ (((exists pvs_gap_grid_sourceentryremainder. pvs_gap_grid_sourceentryremainder + S (dfg_flat_column_grid_sourceentry) = (S (n))) /\ ((((~((dfg_flat_row_grid_sourceentry)=0)) /\ (((~((dfg_flat_column_grid_sourceentry)=0)) /\ (exists dfg_middle_grid_sourceentrycell dfg_first_grid_sourceentrycell dfg_last_grid_sourceentrycell dfg_value_grid_sourceentrycell. (((n)=((dfg_flat_row_grid_sourceentry)*(dfg_flat_column_grid_sourceentry))*dfg_middle_grid_sourceentrycell) /\ (((exists dst_positive_code_grid_sourceentrycellfirst dst_positive_scale_grid_sourceentrycellfirst dst_negative_code_grid_sourceentrycellfirst dst_negative_scale_grid_sourceentrycellfirst dst_positive_grid_sourceentrycellfirst dst_negative_grid_sourceentrycellfirst. (((F) = (((((dst_positive_code_grid_sourceentrycellfirst) + (dst_positive_scale_grid_sourceentrycellfirst)) * S ((dst_positive_code_grid_sourceentrycellfirst) + (dst_positive_scale_grid_sourceentrycellfirst)) + ((dst_positive_scale_grid_sourceentrycellfirst) + (dst_positive_scale_grid_sourceentrycellfirst))) + (((dst_negative_code_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)) * S ((dst_negative_code_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)) + ((dst_negative_scale_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)))) * S ((((dst_positive_code_grid_sourceentrycellfirst) + (dst_positive_scale_grid_sourceentrycellfirst)) * S ((dst_positive_code_grid_sourceentrycellfirst) + (dst_positive_scale_grid_sourceentrycellfirst)) + ((dst_positive_scale_grid_sourceentrycellfirst) + (dst_positive_scale_grid_sourceentrycellfirst))) + (((dst_negative_code_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)) * S ((dst_negative_code_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)) + ((dst_negative_scale_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)))) + ((((dst_negative_code_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)) * S ((dst_negative_code_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)) + ((dst_negative_scale_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst))) + (((dst_negative_code_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)) * S ((dst_negative_code_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)) + ((dst_negative_scale_grid_sourceentrycellfirst) + (dst_negative_scale_grid_sourceentrycellfirst)))))) /\ (((((exists ff_h_pvs_grid_sourceentrycellfirstpositive. ff_h_pvs_grid_sourceentrycellfirstpositive + S (dst_positive_grid_sourceentrycellfirst) = S ((S (dfg_flat_row_grid_sourceentry)) * dst_positive_scale_grid_sourceentrycellfirst)) /\ exists ff_q_pvs_grid_sourceentrycellfirstpositive. dst_positive_code_grid_sourceentrycellfirst = ff_q_pvs_grid_sourceentrycellfirstpositive * S ((S (dfg_flat_row_grid_sourceentry)) * dst_positive_scale_grid_sourceentrycellfirst) + (dst_positive_grid_sourceentrycellfirst))) /\ (((((exists ff_h_pvs_grid_sourceentrycellfirstnegative. ff_h_pvs_grid_sourceentrycellfirstnegative + S (dst_negative_grid_sourceentrycellfirst) = S ((S (dfg_flat_row_grid_sourceentry)) * dst_negative_scale_grid_sourceentrycellfirst)) /\ exists ff_q_pvs_grid_sourceentrycellfirstnegative. dst_negative_code_grid_sourceentrycellfirst = ff_q_pvs_grid_sourceentrycellfirstnegative * S ((S (dfg_flat_row_grid_sourceentry)) * dst_negative_scale_grid_sourceentrycellfirst) + (dst_negative_grid_sourceentrycellfirst))) /\ (exists ge_balance_positive_grid_sourceentrycellfirstvalue ge_balance_negative_grid_sourceentrycellfirstvalue. (((((dfg_first_grid_sourceentrycell) = 2 * (ge_balance_positive_grid_sourceentrycellfirstvalue) /\ (ge_balance_negative_grid_sourceentrycellfirstvalue) = 0) \/ exists ge_signed_half_grid_sourceentrycellfirstvaluedecode. (((dfg_first_grid_sourceentrycell) = 2 * ge_signed_half_grid_sourceentrycellfirstvaluedecode + 1 /\ (ge_balance_positive_grid_sourceentrycellfirstvalue) = 0) /\ (ge_balance_negative_grid_sourceentrycellfirstvalue) = S ge_signed_half_grid_sourceentrycellfirstvaluedecode))) /\ ((dst_positive_grid_sourceentrycellfirst) + ge_balance_negative_grid_sourceentrycellfirstvalue = (dst_negative_grid_sourceentrycellfirst) + ge_balance_positive_grid_sourceentrycellfirstvalue))))))))) /\ (((exists dst_positive_code_grid_sourceentrycelllast dst_positive_scale_grid_sourceentrycelllast dst_negative_code_grid_sourceentrycelllast dst_negative_scale_grid_sourceentrycelllast dst_positive_grid_sourceentrycelllast dst_negative_grid_sourceentrycelllast. (((H) = (((((dst_positive_code_grid_sourceentrycelllast) + (dst_positive_scale_grid_sourceentrycelllast)) * S ((dst_positive_code_grid_sourceentrycelllast) + (dst_positive_scale_grid_sourceentrycelllast)) + ((dst_positive_scale_grid_sourceentrycelllast) + (dst_positive_scale_grid_sourceentrycelllast))) + (((dst_negative_code_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)) * S ((dst_negative_code_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)) + ((dst_negative_scale_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)))) * S ((((dst_positive_code_grid_sourceentrycelllast) + (dst_positive_scale_grid_sourceentrycelllast)) * S ((dst_positive_code_grid_sourceentrycelllast) + (dst_positive_scale_grid_sourceentrycelllast)) + ((dst_positive_scale_grid_sourceentrycelllast) + (dst_positive_scale_grid_sourceentrycelllast))) + (((dst_negative_code_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)) * S ((dst_negative_code_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)) + ((dst_negative_scale_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)))) + ((((dst_negative_code_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)) * S ((dst_negative_code_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)) + ((dst_negative_scale_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast))) + (((dst_negative_code_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)) * S ((dst_negative_code_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)) + ((dst_negative_scale_grid_sourceentrycelllast) + (dst_negative_scale_grid_sourceentrycelllast)))))) /\ (((((exists ff_h_pvs_grid_sourceentrycelllastpositive. ff_h_pvs_grid_sourceentrycelllastpositive + S (dst_positive_grid_sourceentrycelllast) = S ((S (dfg_flat_column_grid_sourceentry)) * dst_positive_scale_grid_sourceentrycelllast)) /\ exists ff_q_pvs_grid_sourceentrycelllastpositive. dst_positive_code_grid_sourceentrycelllast = ff_q_pvs_grid_sourceentrycelllastpositive * S ((S (dfg_flat_column_grid_sourceentry)) * dst_positive_scale_grid_sourceentrycelllast) + (dst_positive_grid_sourceentrycelllast))) /\ (((((exists ff_h_pvs_grid_sourceentrycelllastnegative. ff_h_pvs_grid_sourceentrycelllastnegative + S (dst_negative_grid_sourceentrycelllast) = S ((S (dfg_flat_column_grid_sourceentry)) * dst_negative_scale_grid_sourceentrycelllast)) /\ exists ff_q_pvs_grid_sourceentrycelllastnegative. dst_negative_code_grid_sourceentrycelllast = ff_q_pvs_grid_sourceentrycelllastnegative * S ((S (dfg_flat_column_grid_sourceentry)) * dst_negative_scale_grid_sourceentrycelllast) + (dst_negative_grid_sourceentrycelllast))) /\ (exists ge_balance_positive_grid_sourceentrycelllastvalue ge_balance_negative_grid_sourceentrycelllastvalue. (((((dfg_last_grid_sourceentrycell) = 2 * (ge_balance_positive_grid_sourceentrycelllastvalue) /\ (ge_balance_negative_grid_sourceentrycelllastvalue) = 0) \/ exists ge_signed_half_grid_sourceentrycelllastvaluedecode. (((dfg_last_grid_sourceentrycell) = 2 * ge_signed_half_grid_sourceentrycelllastvaluedecode + 1 /\ (ge_balance_positive_grid_sourceentrycelllastvalue) = 0) /\ (ge_balance_negative_grid_sourceentrycelllastvalue) = S ge_signed_half_grid_sourceentrycelllastvaluedecode))) /\ ((dst_positive_grid_sourceentrycelllast) + ge_balance_negative_grid_sourceentrycelllastvalue = (dst_negative_grid_sourceentrycelllast) + ge_balance_positive_grid_sourceentrycelllastvalue))))))))) /\ (((exists dst_positive_code_grid_sourceentrycellmiddle dst_positive_scale_grid_sourceentrycellmiddle dst_negative_code_grid_sourceentrycellmiddle dst_negative_scale_grid_sourceentrycellmiddle dst_positive_grid_sourceentrycellmiddle dst_negative_grid_sourceentrycellmiddle. (((G) = (((((dst_positive_code_grid_sourceentrycellmiddle) + (dst_positive_scale_grid_sourceentrycellmiddle)) * S ((dst_positive_code_grid_sourceentrycellmiddle) + (dst_positive_scale_grid_sourceentrycellmiddle)) + ((dst_positive_scale_grid_sourceentrycellmiddle) + (dst_positive_scale_grid_sourceentrycellmiddle))) + (((dst_negative_code_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)) * S ((dst_negative_code_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)) + ((dst_negative_scale_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)))) * S ((((dst_positive_code_grid_sourceentrycellmiddle) + (dst_positive_scale_grid_sourceentrycellmiddle)) * S ((dst_positive_code_grid_sourceentrycellmiddle) + (dst_positive_scale_grid_sourceentrycellmiddle)) + ((dst_positive_scale_grid_sourceentrycellmiddle) + (dst_positive_scale_grid_sourceentrycellmiddle))) + (((dst_negative_code_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)) * S ((dst_negative_code_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)) + ((dst_negative_scale_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)))) + ((((dst_negative_code_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)) * S ((dst_negative_code_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)) + ((dst_negative_scale_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle))) + (((dst_negative_code_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)) * S ((dst_negative_code_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)) + ((dst_negative_scale_grid_sourceentrycellmiddle) + (dst_negative_scale_grid_sourceentrycellmiddle)))))) /\ (((((exists ff_h_pvs_grid_sourceentrycellmiddlepositive. ff_h_pvs_grid_sourceentrycellmiddlepositive + S (dst_positive_grid_sourceentrycellmiddle) = S ((S (dfg_middle_grid_sourceentrycell)) * dst_positive_scale_grid_sourceentrycellmiddle)) /\ exists ff_q_pvs_grid_sourceentrycellmiddlepositive. dst_positive_code_grid_sourceentrycellmiddle = ff_q_pvs_grid_sourceentrycellmiddlepositive * S ((S (dfg_middle_grid_sourceentrycell)) * dst_positive_scale_grid_sourceentrycellmiddle) + (dst_positive_grid_sourceentrycellmiddle))) /\ (((((exists ff_h_pvs_grid_sourceentrycellmiddlenegative. ff_h_pvs_grid_sourceentrycellmiddlenegative + S (dst_negative_grid_sourceentrycellmiddle) = S ((S (dfg_middle_grid_sourceentrycell)) * dst_negative_scale_grid_sourceentrycellmiddle)) /\ exists ff_q_pvs_grid_sourceentrycellmiddlenegative. dst_negative_code_grid_sourceentrycellmiddle = ff_q_pvs_grid_sourceentrycellmiddlenegative * S ((S (dfg_middle_grid_sourceentrycell)) * dst_negative_scale_grid_sourceentrycellmiddle) + (dst_negative_grid_sourceentrycellmiddle))) /\ (exists ge_balance_positive_grid_sourceentrycellmiddlevalue ge_balance_negative_grid_sourceentrycellmiddlevalue. (((((dfg_value_grid_sourceentrycell) = 2 * (ge_balance_positive_grid_sourceentrycellmiddlevalue) /\ (ge_balance_negative_grid_sourceentrycellmiddlevalue) = 0) \/ exists ge_signed_half_grid_sourceentrycellmiddlevaluedecode. (((dfg_value_grid_sourceentrycell) = 2 * ge_signed_half_grid_sourceentrycellmiddlevaluedecode + 1 /\ (ge_balance_positive_grid_sourceentrycellmiddlevalue) = 0) /\ (ge_balance_negative_grid_sourceentrycellmiddlevalue) = S ge_signed_half_grid_sourceentrycellmiddlevaluedecode))) /\ ((dst_positive_grid_sourceentrycellmiddle) + ge_balance_negative_grid_sourceentrycellmiddlevalue = (dst_negative_grid_sourceentrycellmiddle) + ge_balance_positive_grid_sourceentrycellmiddlevalue))))))))) /\ (exists dfg_inner_grid_sourceentrycellproduct. ((exists sto_ap_grid_sourceentrycellproductinner sto_an_grid_sourceentrycellproductinner sto_bp_grid_sourceentrycellproductinner sto_bn_grid_sourceentrycellproductinner sto_cp_grid_sourceentrycellproductinner sto_cn_grid_sourceentrycellproductinner. (((((dfg_last_grid_sourceentrycell) = 2 * (sto_ap_grid_sourceentrycellproductinner) /\ (sto_an_grid_sourceentrycellproductinner) = 0) \/ exists ge_signed_half_grid_sourceentrycellproductinnerleft. (((dfg_last_grid_sourceentrycell) = 2 * ge_signed_half_grid_sourceentrycellproductinnerleft + 1 /\ (sto_ap_grid_sourceentrycellproductinner) = 0) /\ (sto_an_grid_sourceentrycellproductinner) = S ge_signed_half_grid_sourceentrycellproductinnerleft))) /\ ((((((dfg_value_grid_sourceentrycell) = 2 * (sto_bp_grid_sourceentrycellproductinner) /\ (sto_bn_grid_sourceentrycellproductinner) = 0) \/ exists ge_signed_half_grid_sourceentrycellproductinnerright. (((dfg_value_grid_sourceentrycell) = 2 * ge_signed_half_grid_sourceentrycellproductinnerright + 1 /\ (sto_bp_grid_sourceentrycellproductinner) = 0) /\ (sto_bn_grid_sourceentrycellproductinner) = S ge_signed_half_grid_sourceentrycellproductinnerright))) /\ ((((((dfg_inner_grid_sourceentrycellproduct) = 2 * (sto_cp_grid_sourceentrycellproductinner) /\ (sto_cn_grid_sourceentrycellproductinner) = 0) \/ exists ge_signed_half_grid_sourceentrycellproductinneroutput. (((dfg_inner_grid_sourceentrycellproduct) = 2 * ge_signed_half_grid_sourceentrycellproductinneroutput + 1 /\ (sto_cp_grid_sourceentrycellproductinner) = 0) /\ (sto_cn_grid_sourceentrycellproductinner) = S ge_signed_half_grid_sourceentrycellproductinneroutput))) /\ ((sto_ap_grid_sourceentrycellproductinner * sto_bp_grid_sourceentrycellproductinner + sto_an_grid_sourceentrycellproductinner * sto_bn_grid_sourceentrycellproductinner) + sto_cn_grid_sourceentrycellproductinner = (sto_ap_grid_sourceentrycellproductinner * sto_bn_grid_sourceentrycellproductinner + sto_an_grid_sourceentrycellproductinner * sto_bp_grid_sourceentrycellproductinner) + sto_cp_grid_sourceentrycellproductinner))))))) /\ (exists sto_ap_grid_sourceentrycellproductouter sto_an_grid_sourceentrycellproductouter sto_bp_grid_sourceentrycellproductouter sto_bn_grid_sourceentrycellproductouter sto_cp_grid_sourceentrycellproductouter sto_cn_grid_sourceentrycellproductouter. (((((dfg_first_grid_sourceentrycell) = 2 * (sto_ap_grid_sourceentrycellproductouter) /\ (sto_an_grid_sourceentrycellproductouter) = 0) \/ exists ge_signed_half_grid_sourceentrycellproductouterleft. (((dfg_first_grid_sourceentrycell) = 2 * ge_signed_half_grid_sourceentrycellproductouterleft + 1 /\ (sto_ap_grid_sourceentrycellproductouter) = 0) /\ (sto_an_grid_sourceentrycellproductouter) = S ge_signed_half_grid_sourceentrycellproductouterleft))) /\ ((((((dfg_inner_grid_sourceentrycellproduct) = 2 * (sto_bp_grid_sourceentrycellproductouter) /\ (sto_bn_grid_sourceentrycellproductouter) = 0) \/ exists ge_signed_half_grid_sourceentrycellproductouterright. (((dfg_inner_grid_sourceentrycellproduct) = 2 * ge_signed_half_grid_sourceentrycellproductouterright + 1 /\ (sto_bp_grid_sourceentrycellproductouter) = 0) /\ (sto_bn_grid_sourceentrycellproductouter) = S ge_signed_half_grid_sourceentrycellproductouterright))) /\ ((((((dfg_flat_value_grid_source) = 2 * (sto_cp_grid_sourceentrycellproductouter) /\ (sto_cn_grid_sourceentrycellproductouter) = 0) \/ exists ge_signed_half_grid_sourceentrycellproductouteroutput. (((dfg_flat_value_grid_source) = 2 * ge_signed_half_grid_sourceentrycellproductouteroutput + 1 /\ (sto_cp_grid_sourceentrycellproductouter) = 0) /\ (sto_cn_grid_sourceentrycellproductouter) = S ge_signed_half_grid_sourceentrycellproductouteroutput))) /\ ((sto_ap_grid_sourceentrycellproductouter * sto_bp_grid_sourceentrycellproductouter + sto_an_grid_sourceentrycellproductouter * sto_bn_grid_sourceentrycellproductouter) + sto_cn_grid_sourceentrycellproductouter = (sto_ap_grid_sourceentrycellproductouter * sto_bn_grid_sourceentrycellproductouter + sto_an_grid_sourceentrycellproductouter * sto_bp_grid_sourceentrycellproductouter) + sto_cp_grid_sourceentrycellproductouter))))))))))))))))))))) \/ ((((dfg_flat_row_grid_sourceentry)=0 \/ ((dfg_flat_column_grid_sourceentry)=0 \/ ~(exists pvs_factor_grid_sourceentrycellomittednondivisor. (n) = ((dfg_flat_row_grid_sourceentry)*(dfg_flat_column_grid_sourceentry)) * pvs_factor_grid_sourceentrycellomittednondivisor))) /\ ((dfg_flat_value_grid_source)=0))))))))))) -> (((exists dst_positive_code_grid_resulttable dst_positive_scale_grid_resulttable dst_negative_code_grid_resulttable dst_negative_scale_grid_resulttable. (((T) = (((((dst_positive_code_grid_resulttable) + (dst_positive_scale_grid_resulttable)) * S ((dst_positive_code_grid_resulttable) + (dst_positive_scale_grid_resulttable)) + ((dst_positive_scale_grid_resulttable) + (dst_positive_scale_grid_resulttable))) + (((dst_negative_code_grid_resulttable) + (dst_negative_scale_grid_resulttable)) * S ((dst_negative_code_grid_resulttable) + (dst_negative_scale_grid_resulttable)) + ((dst_negative_scale_grid_resulttable) + (dst_negative_scale_grid_resulttable)))) * S ((((dst_positive_code_grid_resulttable) + (dst_positive_scale_grid_resulttable)) * S ((dst_positive_code_grid_resulttable) + (dst_positive_scale_grid_resulttable)) + ((dst_positive_scale_grid_resulttable) + (dst_positive_scale_grid_resulttable))) + (((dst_negative_code_grid_resulttable) + (dst_negative_scale_grid_resulttable)) * S ((dst_negative_code_grid_resulttable) + (dst_negative_scale_grid_resulttable)) + ((dst_negative_scale_grid_resulttable) + (dst_negative_scale_grid_resulttable)))) + ((((dst_negative_code_grid_resulttable) + (dst_negative_scale_grid_resulttable)) * S ((dst_negative_code_grid_resulttable) + (dst_negative_scale_grid_resulttable)) + ((dst_negative_scale_grid_resulttable) + (dst_negative_scale_grid_resulttable))) + (((dst_negative_code_grid_resulttable) + (dst_negative_scale_grid_resulttable)) * S ((dst_negative_code_grid_resulttable) + (dst_negative_scale_grid_resulttable)) + ((dst_negative_scale_grid_resulttable) + (dst_negative_scale_grid_resulttable)))))) /\ (forall dst_index_grid_resulttable. (exists pvs_le_gap_grid_resulttabledomain. pvs_le_gap_grid_resulttabledomain + (dst_index_grid_resulttable) = ((S (n))*(S (n)))) -> exists dst_positive_grid_resulttable dst_negative_grid_resulttable dst_value_grid_resulttable. ((((exists ff_h_pvs_grid_resulttableentrypositive. ff_h_pvs_grid_resulttableentrypositive + S (dst_positive_grid_resulttable) = S ((S (dst_index_grid_resulttable)) * dst_positive_scale_grid_resulttable)) /\ exists ff_q_pvs_grid_resulttableentrypositive. dst_positive_code_grid_resulttable = ff_q_pvs_grid_resulttableentrypositive * S ((S (dst_index_grid_resulttable)) * dst_positive_scale_grid_resulttable) + (dst_positive_grid_resulttable))) /\ (((((exists ff_h_pvs_grid_resulttableentrynegative. ff_h_pvs_grid_resulttableentrynegative + S (dst_negative_grid_resulttable) = S ((S (dst_index_grid_resulttable)) * dst_negative_scale_grid_resulttable)) /\ exists ff_q_pvs_grid_resulttableentrynegative. dst_negative_code_grid_resulttable = ff_q_pvs_grid_resulttableentrynegative * S ((S (dst_index_grid_resulttable)) * dst_negative_scale_grid_resulttable) + (dst_negative_grid_resulttable))) /\ (exists ge_balance_positive_grid_resulttableentryvalue ge_balance_negative_grid_resulttableentryvalue. (((((dst_value_grid_resulttable) = 2 * (ge_balance_positive_grid_resulttableentryvalue) /\ (ge_balance_negative_grid_resulttableentryvalue) = 0) \/ exists ge_signed_half_grid_resulttableentryvaluedecode. (((dst_value_grid_resulttable) = 2 * ge_signed_half_grid_resulttableentryvaluedecode + 1 /\ (ge_balance_positive_grid_resulttableentryvalue) = 0) /\ (ge_balance_negative_grid_resulttableentryvalue) = S ge_signed_half_grid_resulttableentryvaluedecode))) /\ ((dst_positive_grid_resulttable) + ge_balance_negative_grid_resulttableentryvalue = (dst_negative_grid_resulttable) + ge_balance_positive_grid_resulttableentryvalue))))))))) /\ (forall dfg_grid_row_grid_result dfg_grid_column_grid_result dfg_grid_value_grid_result. (exists pvs_le_gap_grid_resultrow. pvs_le_gap_grid_resultrow + (dfg_grid_row_grid_result) = (n)) -> (exists pvs_le_gap_grid_resultcolumn. pvs_le_gap_grid_resultcolumn + (dfg_grid_column_grid_result) = (n)) -> (exists dst_positive_code_grid_resultlookup dst_positive_scale_grid_resultlookup dst_negative_code_grid_resultlookup dst_negative_scale_grid_resultlookup dst_positive_grid_resultlookup dst_negative_grid_resultlookup. (((T) = (((((dst_positive_code_grid_resultlookup) + (dst_positive_scale_grid_resultlookup)) * S ((dst_positive_code_grid_resultlookup) + (dst_positive_scale_grid_resultlookup)) + ((dst_positive_scale_grid_resultlookup) + (dst_positive_scale_grid_resultlookup))) + (((dst_negative_code_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)) * S ((dst_negative_code_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)) + ((dst_negative_scale_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)))) * S ((((dst_positive_code_grid_resultlookup) + (dst_positive_scale_grid_resultlookup)) * S ((dst_positive_code_grid_resultlookup) + (dst_positive_scale_grid_resultlookup)) + ((dst_positive_scale_grid_resultlookup) + (dst_positive_scale_grid_resultlookup))) + (((dst_negative_code_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)) * S ((dst_negative_code_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)) + ((dst_negative_scale_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)))) + ((((dst_negative_code_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)) * S ((dst_negative_code_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)) + ((dst_negative_scale_grid_resultlookup) + (dst_negative_scale_grid_resultlookup))) + (((dst_negative_code_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)) * S ((dst_negative_code_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)) + ((dst_negative_scale_grid_resultlookup) + (dst_negative_scale_grid_resultlookup)))))) /\ (((((exists ff_h_pvs_grid_resultlookuppositive. ff_h_pvs_grid_resultlookuppositive + S (dst_positive_grid_resultlookup) = S ((S ((S (n))*(dfg_grid_row_grid_result)+(dfg_grid_column_grid_result))) * dst_positive_scale_grid_resultlookup)) /\ exists ff_q_pvs_grid_resultlookuppositive. dst_positive_code_grid_resultlookup = ff_q_pvs_grid_resultlookuppositive * S ((S ((S (n))*(dfg_grid_row_grid_result)+(dfg_grid_column_grid_result))) * dst_positive_scale_grid_resultlookup) + (dst_positive_grid_resultlookup))) /\ (((((exists ff_h_pvs_grid_resultlookupnegative. ff_h_pvs_grid_resultlookupnegative + S (dst_negative_grid_resultlookup) = S ((S ((S (n))*(dfg_grid_row_grid_result)+(dfg_grid_column_grid_result))) * dst_negative_scale_grid_resultlookup)) /\ exists ff_q_pvs_grid_resultlookupnegative. dst_negative_code_grid_resultlookup = ff_q_pvs_grid_resultlookupnegative * S ((S ((S (n))*(dfg_grid_row_grid_result)+(dfg_grid_column_grid_result))) * dst_negative_scale_grid_resultlookup) + (dst_negative_grid_resultlookup))) /\ (exists ge_balance_positive_grid_resultlookupvalue ge_balance_negative_grid_resultlookupvalue. (((((dfg_grid_value_grid_result) = 2 * (ge_balance_positive_grid_resultlookupvalue) /\ (ge_balance_negative_grid_resultlookupvalue) = 0) \/ exists ge_signed_half_grid_resultlookupvaluedecode. (((dfg_grid_value_grid_result) = 2 * ge_signed_half_grid_resultlookupvaluedecode + 1 /\ (ge_balance_positive_grid_resultlookupvalue) = 0) /\ (ge_balance_negative_grid_resultlookupvalue) = S ge_signed_half_grid_resultlookupvaluedecode))) /\ ((dst_positive_grid_resultlookup) + ge_balance_negative_grid_resultlookupvalue = (dst_negative_grid_resultlookup) + ge_balance_positive_grid_resultlookupvalue))))))))) -> ((((~((dfg_grid_row_grid_result)=0)) /\ (((~((dfg_grid_column_grid_result)=0)) /\ (exists dfg_middle_grid_resultentry dfg_first_grid_resultentry dfg_last_grid_resultentry dfg_value_grid_resultentry. (((n)=((dfg_grid_row_grid_result)*(dfg_grid_column_grid_result))*dfg_middle_grid_resultentry) /\ (((exists dst_positive_code_grid_resultentryfirst dst_positive_scale_grid_resultentryfirst dst_negative_code_grid_resultentryfirst dst_negative_scale_grid_resultentryfirst dst_positive_grid_resultentryfirst dst_negative_grid_resultentryfirst. (((F) = (((((dst_positive_code_grid_resultentryfirst) + (dst_positive_scale_grid_resultentryfirst)) * S ((dst_positive_code_grid_resultentryfirst) + (dst_positive_scale_grid_resultentryfirst)) + ((dst_positive_scale_grid_resultentryfirst) + (dst_positive_scale_grid_resultentryfirst))) + (((dst_negative_code_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)) * S ((dst_negative_code_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)) + ((dst_negative_scale_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)))) * S ((((dst_positive_code_grid_resultentryfirst) + (dst_positive_scale_grid_resultentryfirst)) * S ((dst_positive_code_grid_resultentryfirst) + (dst_positive_scale_grid_resultentryfirst)) + ((dst_positive_scale_grid_resultentryfirst) + (dst_positive_scale_grid_resultentryfirst))) + (((dst_negative_code_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)) * S ((dst_negative_code_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)) + ((dst_negative_scale_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)))) + ((((dst_negative_code_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)) * S ((dst_negative_code_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)) + ((dst_negative_scale_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst))) + (((dst_negative_code_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)) * S ((dst_negative_code_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)) + ((dst_negative_scale_grid_resultentryfirst) + (dst_negative_scale_grid_resultentryfirst)))))) /\ (((((exists ff_h_pvs_grid_resultentryfirstpositive. ff_h_pvs_grid_resultentryfirstpositive + S (dst_positive_grid_resultentryfirst) = S ((S (dfg_grid_row_grid_result)) * dst_positive_scale_grid_resultentryfirst)) /\ exists ff_q_pvs_grid_resultentryfirstpositive. dst_positive_code_grid_resultentryfirst = ff_q_pvs_grid_resultentryfirstpositive * S ((S (dfg_grid_row_grid_result)) * dst_positive_scale_grid_resultentryfirst) + (dst_positive_grid_resultentryfirst))) /\ (((((exists ff_h_pvs_grid_resultentryfirstnegative. ff_h_pvs_grid_resultentryfirstnegative + S (dst_negative_grid_resultentryfirst) = S ((S (dfg_grid_row_grid_result)) * dst_negative_scale_grid_resultentryfirst)) /\ exists ff_q_pvs_grid_resultentryfirstnegative. dst_negative_code_grid_resultentryfirst = ff_q_pvs_grid_resultentryfirstnegative * S ((S (dfg_grid_row_grid_result)) * dst_negative_scale_grid_resultentryfirst) + (dst_negative_grid_resultentryfirst))) /\ (exists ge_balance_positive_grid_resultentryfirstvalue ge_balance_negative_grid_resultentryfirstvalue. (((((dfg_first_grid_resultentry) = 2 * (ge_balance_positive_grid_resultentryfirstvalue) /\ (ge_balance_negative_grid_resultentryfirstvalue) = 0) \/ exists ge_signed_half_grid_resultentryfirstvaluedecode. (((dfg_first_grid_resultentry) = 2 * ge_signed_half_grid_resultentryfirstvaluedecode + 1 /\ (ge_balance_positive_grid_resultentryfirstvalue) = 0) /\ (ge_balance_negative_grid_resultentryfirstvalue) = S ge_signed_half_grid_resultentryfirstvaluedecode))) /\ ((dst_positive_grid_resultentryfirst) + ge_balance_negative_grid_resultentryfirstvalue = (dst_negative_grid_resultentryfirst) + ge_balance_positive_grid_resultentryfirstvalue))))))))) /\ (((exists dst_positive_code_grid_resultentrylast dst_positive_scale_grid_resultentrylast dst_negative_code_grid_resultentrylast dst_negative_scale_grid_resultentrylast dst_positive_grid_resultentrylast dst_negative_grid_resultentrylast. (((H) = (((((dst_positive_code_grid_resultentrylast) + (dst_positive_scale_grid_resultentrylast)) * S ((dst_positive_code_grid_resultentrylast) + (dst_positive_scale_grid_resultentrylast)) + ((dst_positive_scale_grid_resultentrylast) + (dst_positive_scale_grid_resultentrylast))) + (((dst_negative_code_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)) * S ((dst_negative_code_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)) + ((dst_negative_scale_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)))) * S ((((dst_positive_code_grid_resultentrylast) + (dst_positive_scale_grid_resultentrylast)) * S ((dst_positive_code_grid_resultentrylast) + (dst_positive_scale_grid_resultentrylast)) + ((dst_positive_scale_grid_resultentrylast) + (dst_positive_scale_grid_resultentrylast))) + (((dst_negative_code_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)) * S ((dst_negative_code_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)) + ((dst_negative_scale_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)))) + ((((dst_negative_code_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)) * S ((dst_negative_code_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)) + ((dst_negative_scale_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast))) + (((dst_negative_code_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)) * S ((dst_negative_code_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)) + ((dst_negative_scale_grid_resultentrylast) + (dst_negative_scale_grid_resultentrylast)))))) /\ (((((exists ff_h_pvs_grid_resultentrylastpositive. ff_h_pvs_grid_resultentrylastpositive + S (dst_positive_grid_resultentrylast) = S ((S (dfg_grid_column_grid_result)) * dst_positive_scale_grid_resultentrylast)) /\ exists ff_q_pvs_grid_resultentrylastpositive. dst_positive_code_grid_resultentrylast = ff_q_pvs_grid_resultentrylastpositive * S ((S (dfg_grid_column_grid_result)) * dst_positive_scale_grid_resultentrylast) + (dst_positive_grid_resultentrylast))) /\ (((((exists ff_h_pvs_grid_resultentrylastnegative. ff_h_pvs_grid_resultentrylastnegative + S (dst_negative_grid_resultentrylast) = S ((S (dfg_grid_column_grid_result)) * dst_negative_scale_grid_resultentrylast)) /\ exists ff_q_pvs_grid_resultentrylastnegative. dst_negative_code_grid_resultentrylast = ff_q_pvs_grid_resultentrylastnegative * S ((S (dfg_grid_column_grid_result)) * dst_negative_scale_grid_resultentrylast) + (dst_negative_grid_resultentrylast))) /\ (exists ge_balance_positive_grid_resultentrylastvalue ge_balance_negative_grid_resultentrylastvalue. (((((dfg_last_grid_resultentry) = 2 * (ge_balance_positive_grid_resultentrylastvalue) /\ (ge_balance_negative_grid_resultentrylastvalue) = 0) \/ exists ge_signed_half_grid_resultentrylastvaluedecode. (((dfg_last_grid_resultentry) = 2 * ge_signed_half_grid_resultentrylastvaluedecode + 1 /\ (ge_balance_positive_grid_resultentrylastvalue) = 0) /\ (ge_balance_negative_grid_resultentrylastvalue) = S ge_signed_half_grid_resultentrylastvaluedecode))) /\ ((dst_positive_grid_resultentrylast) + ge_balance_negative_grid_resultentrylastvalue = (dst_negative_grid_resultentrylast) + ge_balance_positive_grid_resultentrylastvalue))))))))) /\ (((exists dst_positive_code_grid_resultentrymiddle dst_positive_scale_grid_resultentrymiddle dst_negative_code_grid_resultentrymiddle dst_negative_scale_grid_resultentrymiddle dst_positive_grid_resultentrymiddle dst_negative_grid_resultentrymiddle. (((G) = (((((dst_positive_code_grid_resultentrymiddle) + (dst_positive_scale_grid_resultentrymiddle)) * S ((dst_positive_code_grid_resultentrymiddle) + (dst_positive_scale_grid_resultentrymiddle)) + ((dst_positive_scale_grid_resultentrymiddle) + (dst_positive_scale_grid_resultentrymiddle))) + (((dst_negative_code_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)) * S ((dst_negative_code_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)) + ((dst_negative_scale_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)))) * S ((((dst_positive_code_grid_resultentrymiddle) + (dst_positive_scale_grid_resultentrymiddle)) * S ((dst_positive_code_grid_resultentrymiddle) + (dst_positive_scale_grid_resultentrymiddle)) + ((dst_positive_scale_grid_resultentrymiddle) + (dst_positive_scale_grid_resultentrymiddle))) + (((dst_negative_code_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)) * S ((dst_negative_code_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)) + ((dst_negative_scale_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)))) + ((((dst_negative_code_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)) * S ((dst_negative_code_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)) + ((dst_negative_scale_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle))) + (((dst_negative_code_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)) * S ((dst_negative_code_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)) + ((dst_negative_scale_grid_resultentrymiddle) + (dst_negative_scale_grid_resultentrymiddle)))))) /\ (((((exists ff_h_pvs_grid_resultentrymiddlepositive. ff_h_pvs_grid_resultentrymiddlepositive + S (dst_positive_grid_resultentrymiddle) = S ((S (dfg_middle_grid_resultentry)) * dst_positive_scale_grid_resultentrymiddle)) /\ exists ff_q_pvs_grid_resultentrymiddlepositive. dst_positive_code_grid_resultentrymiddle = ff_q_pvs_grid_resultentrymiddlepositive * S ((S (dfg_middle_grid_resultentry)) * dst_positive_scale_grid_resultentrymiddle) + (dst_positive_grid_resultentrymiddle))) /\ (((((exists ff_h_pvs_grid_resultentrymiddlenegative. ff_h_pvs_grid_resultentrymiddlenegative + S (dst_negative_grid_resultentrymiddle) = S ((S (dfg_middle_grid_resultentry)) * dst_negative_scale_grid_resultentrymiddle)) /\ exists ff_q_pvs_grid_resultentrymiddlenegative. dst_negative_code_grid_resultentrymiddle = ff_q_pvs_grid_resultentrymiddlenegative * S ((S (dfg_middle_grid_resultentry)) * dst_negative_scale_grid_resultentrymiddle) + (dst_negative_grid_resultentrymiddle))) /\ (exists ge_balance_positive_grid_resultentrymiddlevalue ge_balance_negative_grid_resultentrymiddlevalue. (((((dfg_value_grid_resultentry) = 2 * (ge_balance_positive_grid_resultentrymiddlevalue) /\ (ge_balance_negative_grid_resultentrymiddlevalue) = 0) \/ exists ge_signed_half_grid_resultentrymiddlevaluedecode. (((dfg_value_grid_resultentry) = 2 * ge_signed_half_grid_resultentrymiddlevaluedecode + 1 /\ (ge_balance_positive_grid_resultentrymiddlevalue) = 0) /\ (ge_balance_negative_grid_resultentrymiddlevalue) = S ge_signed_half_grid_resultentrymiddlevaluedecode))) /\ ((dst_positive_grid_resultentrymiddle) + ge_balance_negative_grid_resultentrymiddlevalue = (dst_negative_grid_resultentrymiddle) + ge_balance_positive_grid_resultentrymiddlevalue))))))))) /\ (exists dfg_inner_grid_resultentryproduct. ((exists sto_ap_grid_resultentryproductinner sto_an_grid_resultentryproductinner sto_bp_grid_resultentryproductinner sto_bn_grid_resultentryproductinner sto_cp_grid_resultentryproductinner sto_cn_grid_resultentryproductinner. (((((dfg_last_grid_resultentry) = 2 * (sto_ap_grid_resultentryproductinner) /\ (sto_an_grid_resultentryproductinner) = 0) \/ exists ge_signed_half_grid_resultentryproductinnerleft. (((dfg_last_grid_resultentry) = 2 * ge_signed_half_grid_resultentryproductinnerleft + 1 /\ (sto_ap_grid_resultentryproductinner) = 0) /\ (sto_an_grid_resultentryproductinner) = S ge_signed_half_grid_resultentryproductinnerleft))) /\ ((((((dfg_value_grid_resultentry) = 2 * (sto_bp_grid_resultentryproductinner) /\ (sto_bn_grid_resultentryproductinner) = 0) \/ exists ge_signed_half_grid_resultentryproductinnerright. (((dfg_value_grid_resultentry) = 2 * ge_signed_half_grid_resultentryproductinnerright + 1 /\ (sto_bp_grid_resultentryproductinner) = 0) /\ (sto_bn_grid_resultentryproductinner) = S ge_signed_half_grid_resultentryproductinnerright))) /\ ((((((dfg_inner_grid_resultentryproduct) = 2 * (sto_cp_grid_resultentryproductinner) /\ (sto_cn_grid_resultentryproductinner) = 0) \/ exists ge_signed_half_grid_resultentryproductinneroutput. (((dfg_inner_grid_resultentryproduct) = 2 * ge_signed_half_grid_resultentryproductinneroutput + 1 /\ (sto_cp_grid_resultentryproductinner) = 0) /\ (sto_cn_grid_resultentryproductinner) = S ge_signed_half_grid_resultentryproductinneroutput))) /\ ((sto_ap_grid_resultentryproductinner * sto_bp_grid_resultentryproductinner + sto_an_grid_resultentryproductinner * sto_bn_grid_resultentryproductinner) + sto_cn_grid_resultentryproductinner = (sto_ap_grid_resultentryproductinner * sto_bn_grid_resultentryproductinner + sto_an_grid_resultentryproductinner * sto_bp_grid_resultentryproductinner) + sto_cp_grid_resultentryproductinner))))))) /\ (exists sto_ap_grid_resultentryproductouter sto_an_grid_resultentryproductouter sto_bp_grid_resultentryproductouter sto_bn_grid_resultentryproductouter sto_cp_grid_resultentryproductouter sto_cn_grid_resultentryproductouter. (((((dfg_first_grid_resultentry) = 2 * (sto_ap_grid_resultentryproductouter) /\ (sto_an_grid_resultentryproductouter) = 0) \/ exists ge_signed_half_grid_resultentryproductouterleft. (((dfg_first_grid_resultentry) = 2 * ge_signed_half_grid_resultentryproductouterleft + 1 /\ (sto_ap_grid_resultentryproductouter) = 0) /\ (sto_an_grid_resultentryproductouter) = S ge_signed_half_grid_resultentryproductouterleft))) /\ ((((((dfg_inner_grid_resultentryproduct) = 2 * (sto_bp_grid_resultentryproductouter) /\ (sto_bn_grid_resultentryproductouter) = 0) \/ exists ge_signed_half_grid_resultentryproductouterright. (((dfg_inner_grid_resultentryproduct) = 2 * ge_signed_half_grid_resultentryproductouterright + 1 /\ (sto_bp_grid_resultentryproductouter) = 0) /\ (sto_bn_grid_resultentryproductouter) = S ge_signed_half_grid_resultentryproductouterright))) /\ ((((((dfg_grid_value_grid_result) = 2 * (sto_cp_grid_resultentryproductouter) /\ (sto_cn_grid_resultentryproductouter) = 0) \/ exists ge_signed_half_grid_resultentryproductouteroutput. (((dfg_grid_value_grid_result) = 2 * ge_signed_half_grid_resultentryproductouteroutput + 1 /\ (sto_cp_grid_resultentryproductouter) = 0) /\ (sto_cn_grid_resultentryproductouter) = S ge_signed_half_grid_resultentryproductouteroutput))) /\ ((sto_ap_grid_resultentryproductouter * sto_bp_grid_resultentryproductouter + sto_an_grid_resultentryproductouter * sto_bn_grid_resultentryproductouter) + sto_cn_grid_resultentryproductouter = (sto_ap_grid_resultentryproductouter * sto_bn_grid_resultentryproductouter + sto_an_grid_resultentryproductouter * sto_bp_grid_resultentryproductouter) + sto_cp_grid_resultentryproductouter))))))))))))))))))))) \/ ((((dfg_grid_row_grid_result)=0 \/ ((dfg_grid_column_grid_result)=0 \/ ~(exists pvs_factor_grid_resultentryomittednondivisor. (n) = ((dfg_grid_row_grid_result)*(dfg_grid_column_grid_result)) * pvs_factor_grid_resultentryomittednondivisor))) /\ ((dfg_grid_value_grid_result)=0)))))))

Constructive proof overview

Generated structural guide

The actual flat prefix supplies every bounded grid cell; the old checked matrix index bound and unique division prove the row-major decoding.

The unchanged tactic script uses 5 declared prerequisites and contains 49 exact native proof lines.

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

Proof neighborhood

Direct dependencies

DF0009 dirichlet_grid_flat_entry_coordinates succ_le_succ Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized lt_to_le Stable theorem; checked-use authorized matrix_recursive_flattened_index_bound Alpha theorem; checked-use authorized

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

49 script commands · 8 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 (1)
01Fix variables and assumptionsL1–6

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 T
  6. L6
    intro hp
02Separate the logical casesL7–8

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

  1. L7
    cases hp
  2. L8
    split
03Use earlier factsL9–9

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

  1. L9
    exact hp_left
04Fix variables and assumptionsL10–15

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

  1. L10
    intro a
  2. L11
    intro e
  3. L12
    intro z
  4. L13
    intro ha
  5. L14
    intro he
  6. L15
    intro hz
05Use earlier factsL16–25

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

  1. L16
    specialize dirichlet_grid_flat_entry_coordinates (F)
  2. L17
    specialize dirichlet_grid_flat_entry_coordinates (G)
  3. L18
    specialize dirichlet_grid_flat_entry_coordinates (H)
  4. L19
    specialize dirichlet_grid_flat_entry_coordinates (n)
  5. L20
    specialize dirichlet_grid_flat_entry_coordinates (a)
  6. L21
    specialize dirichlet_grid_flat_entry_coordinates (e)
  7. L22
    specialize dirichlet_grid_flat_entry_coordinates (z)
  8. L23
    apply dirichlet_grid_flat_entry_coordinates
  9. L24
    specialize succ_le_succ (e)
  10. L25
    specialize succ_le_succ (n)
06Use earlier factsL26–30

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

  1. L26
    apply succ_le_succ
  2. L27
    exact he
  3. L28
    specialize hp_right ((S (n))*(a)+(e))
  4. L29
    specialize hp_right (z)
  5. L30
    apply hp_right
07Establish hcommL31–40

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

  1. L31
    have hcomm : (S n)*a=a*(S n)
  2. L32
    apply mul_comm
  3. L33
    rewrite hcomm
  4. L34
    specialize lt_to_le (a*(S n)+e)
  5. L35
    specialize lt_to_le ((S n)*(S n))
  6. L36
    apply lt_to_le
  7. L37
    specialize matrix_recursive_flattened_index_bound (S n)
  8. L38
    specialize matrix_recursive_flattened_index_bound (a)
  9. L39
    specialize matrix_recursive_flattened_index_bound (e)
  10. L40
    apply matrix_recursive_flattened_index_bound
08Use earlier factsL41–49

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

  1. L41
    specialize succ_le_succ (a)
  2. L42
    specialize succ_le_succ (n)
  3. L43
    apply succ_le_succ
  4. L44
    exact ha
  5. L45
    specialize succ_le_succ (e)
  6. L46
    specialize succ_le_succ (n)
  7. L47
    apply succ_le_succ
  8. L48
    exact he
  9. L49
    exact hz

Library-wide reading audit

Original exact command ledger · 49 lines
  1. 0001intro F
  2. 0002intro G
  3. 0003intro H
  4. 0004intro n
  5. 0005intro T
  6. 0006intro hp
  7. 0007cases hp
  8. 0008split
  9. 0009exact hp_left
  10. 0010intro a
  11. 0011intro e
  12. 0012intro z
  13. 0013intro ha
  14. 0014intro he
  15. 0015intro hz
  16. 0016specialize dirichlet_grid_flat_entry_coordinates (F)
  17. 0017specialize dirichlet_grid_flat_entry_coordinates (G)
  18. 0018specialize dirichlet_grid_flat_entry_coordinates (H)
  19. 0019specialize dirichlet_grid_flat_entry_coordinates (n)
  20. 0020specialize dirichlet_grid_flat_entry_coordinates (a)
  21. 0021specialize dirichlet_grid_flat_entry_coordinates (e)
  22. 0022specialize dirichlet_grid_flat_entry_coordinates (z)
  23. 0023apply dirichlet_grid_flat_entry_coordinates
  24. 0024specialize succ_le_succ (e)
  25. 0025specialize succ_le_succ (n)
  26. 0026apply succ_le_succ
  27. 0027exact he
  28. 0028specialize hp_right ((S (n))*(a)+(e))
  29. 0029specialize hp_right (z)
  30. 0030apply hp_right
  31. 0031have hcomm : (S n)*a=a*(S n)
  32. 0032apply mul_comm
  33. 0033rewrite hcomm
  34. 0034specialize lt_to_le (a*(S n)+e)
  35. 0035specialize lt_to_le ((S n)*(S n))
  36. 0036apply lt_to_le
  37. 0037specialize matrix_recursive_flattened_index_bound (S n)
  38. 0038specialize matrix_recursive_flattened_index_bound (a)
  39. 0039specialize matrix_recursive_flattened_index_bound (e)
  40. 0040apply matrix_recursive_flattened_index_bound
  41. 0041specialize succ_le_succ (a)
  42. 0042specialize succ_le_succ (n)
  43. 0043apply succ_le_succ
  44. 0044exact ha
  45. 0045specialize succ_le_succ (e)
  46. 0046specialize succ_le_succ (n)
  47. 0047apply succ_le_succ
  48. 0048exact he
  49. 0049exact hz