DF000E

dirichlet_grid_table_exists

Construct the entire real first/last-factor grid, including its harmless extra certified endpoint, from actual input tables.

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. ArithTable(0,F)ArithTable(0,G)ArithTable(0,H) → ∃ x. DirichletGrid(F,G,H,n,x)

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. (exists dst_positive_code_grid_F dst_positive_scale_grid_F dst_negative_code_grid_F dst_negative_scale_grid_F. (((F) = (((((dst_positive_code_grid_F) + (dst_positive_scale_grid_F)) * S ((dst_positive_code_grid_F) + (dst_positive_scale_grid_F)) + ((dst_positive_scale_grid_F) + (dst_positive_scale_grid_F))) + (((dst_negative_code_grid_F) + (dst_negative_scale_grid_F)) * S ((dst_negative_code_grid_F) + (dst_negative_scale_grid_F)) + ((dst_negative_scale_grid_F) + (dst_negative_scale_grid_F)))) * S ((((dst_positive_code_grid_F) + (dst_positive_scale_grid_F)) * S ((dst_positive_code_grid_F) + (dst_positive_scale_grid_F)) + ((dst_positive_scale_grid_F) + (dst_positive_scale_grid_F))) + (((dst_negative_code_grid_F) + (dst_negative_scale_grid_F)) * S ((dst_negative_code_grid_F) + (dst_negative_scale_grid_F)) + ((dst_negative_scale_grid_F) + (dst_negative_scale_grid_F)))) + ((((dst_negative_code_grid_F) + (dst_negative_scale_grid_F)) * S ((dst_negative_code_grid_F) + (dst_negative_scale_grid_F)) + ((dst_negative_scale_grid_F) + (dst_negative_scale_grid_F))) + (((dst_negative_code_grid_F) + (dst_negative_scale_grid_F)) * S ((dst_negative_code_grid_F) + (dst_negative_scale_grid_F)) + ((dst_negative_scale_grid_F) + (dst_negative_scale_grid_F)))))) /\ (forall dst_index_grid_F. (exists pvs_le_gap_grid_Fdomain. pvs_le_gap_grid_Fdomain + (dst_index_grid_F) = (0)) -> exists dst_positive_grid_F dst_negative_grid_F dst_value_grid_F. ((((exists ff_h_pvs_grid_Fentrypositive. ff_h_pvs_grid_Fentrypositive + S (dst_positive_grid_F) = S ((S (dst_index_grid_F)) * dst_positive_scale_grid_F)) /\ exists ff_q_pvs_grid_Fentrypositive. dst_positive_code_grid_F = ff_q_pvs_grid_Fentrypositive * S ((S (dst_index_grid_F)) * dst_positive_scale_grid_F) + (dst_positive_grid_F))) /\ (((((exists ff_h_pvs_grid_Fentrynegative. ff_h_pvs_grid_Fentrynegative + S (dst_negative_grid_F) = S ((S (dst_index_grid_F)) * dst_negative_scale_grid_F)) /\ exists ff_q_pvs_grid_Fentrynegative. dst_negative_code_grid_F = ff_q_pvs_grid_Fentrynegative * S ((S (dst_index_grid_F)) * dst_negative_scale_grid_F) + (dst_negative_grid_F))) /\ (exists ge_balance_positive_grid_Fentryvalue ge_balance_negative_grid_Fentryvalue. (((((dst_value_grid_F) = 2 * (ge_balance_positive_grid_Fentryvalue) /\ (ge_balance_negative_grid_Fentryvalue) = 0) \/ exists ge_signed_half_grid_Fentryvaluedecode. (((dst_value_grid_F) = 2 * ge_signed_half_grid_Fentryvaluedecode + 1 /\ (ge_balance_positive_grid_Fentryvalue) = 0) /\ (ge_balance_negative_grid_Fentryvalue) = S ge_signed_half_grid_Fentryvaluedecode))) /\ ((dst_positive_grid_F) + ge_balance_negative_grid_Fentryvalue = (dst_negative_grid_F) + ge_balance_positive_grid_Fentryvalue))))))))) -> (exists dst_positive_code_grid_G dst_positive_scale_grid_G dst_negative_code_grid_G dst_negative_scale_grid_G. (((G) = (((((dst_positive_code_grid_G) + (dst_positive_scale_grid_G)) * S ((dst_positive_code_grid_G) + (dst_positive_scale_grid_G)) + ((dst_positive_scale_grid_G) + (dst_positive_scale_grid_G))) + (((dst_negative_code_grid_G) + (dst_negative_scale_grid_G)) * S ((dst_negative_code_grid_G) + (dst_negative_scale_grid_G)) + ((dst_negative_scale_grid_G) + (dst_negative_scale_grid_G)))) * S ((((dst_positive_code_grid_G) + (dst_positive_scale_grid_G)) * S ((dst_positive_code_grid_G) + (dst_positive_scale_grid_G)) + ((dst_positive_scale_grid_G) + (dst_positive_scale_grid_G))) + (((dst_negative_code_grid_G) + (dst_negative_scale_grid_G)) * S ((dst_negative_code_grid_G) + (dst_negative_scale_grid_G)) + ((dst_negative_scale_grid_G) + (dst_negative_scale_grid_G)))) + ((((dst_negative_code_grid_G) + (dst_negative_scale_grid_G)) * S ((dst_negative_code_grid_G) + (dst_negative_scale_grid_G)) + ((dst_negative_scale_grid_G) + (dst_negative_scale_grid_G))) + (((dst_negative_code_grid_G) + (dst_negative_scale_grid_G)) * S ((dst_negative_code_grid_G) + (dst_negative_scale_grid_G)) + ((dst_negative_scale_grid_G) + (dst_negative_scale_grid_G)))))) /\ (forall dst_index_grid_G. (exists pvs_le_gap_grid_Gdomain. pvs_le_gap_grid_Gdomain + (dst_index_grid_G) = (0)) -> exists dst_positive_grid_G dst_negative_grid_G dst_value_grid_G. ((((exists ff_h_pvs_grid_Gentrypositive. ff_h_pvs_grid_Gentrypositive + S (dst_positive_grid_G) = S ((S (dst_index_grid_G)) * dst_positive_scale_grid_G)) /\ exists ff_q_pvs_grid_Gentrypositive. dst_positive_code_grid_G = ff_q_pvs_grid_Gentrypositive * S ((S (dst_index_grid_G)) * dst_positive_scale_grid_G) + (dst_positive_grid_G))) /\ (((((exists ff_h_pvs_grid_Gentrynegative. ff_h_pvs_grid_Gentrynegative + S (dst_negative_grid_G) = S ((S (dst_index_grid_G)) * dst_negative_scale_grid_G)) /\ exists ff_q_pvs_grid_Gentrynegative. dst_negative_code_grid_G = ff_q_pvs_grid_Gentrynegative * S ((S (dst_index_grid_G)) * dst_negative_scale_grid_G) + (dst_negative_grid_G))) /\ (exists ge_balance_positive_grid_Gentryvalue ge_balance_negative_grid_Gentryvalue. (((((dst_value_grid_G) = 2 * (ge_balance_positive_grid_Gentryvalue) /\ (ge_balance_negative_grid_Gentryvalue) = 0) \/ exists ge_signed_half_grid_Gentryvaluedecode. (((dst_value_grid_G) = 2 * ge_signed_half_grid_Gentryvaluedecode + 1 /\ (ge_balance_positive_grid_Gentryvalue) = 0) /\ (ge_balance_negative_grid_Gentryvalue) = S ge_signed_half_grid_Gentryvaluedecode))) /\ ((dst_positive_grid_G) + ge_balance_negative_grid_Gentryvalue = (dst_negative_grid_G) + ge_balance_positive_grid_Gentryvalue))))))))) -> (exists dst_positive_code_grid_H dst_positive_scale_grid_H dst_negative_code_grid_H dst_negative_scale_grid_H. (((H) = (((((dst_positive_code_grid_H) + (dst_positive_scale_grid_H)) * S ((dst_positive_code_grid_H) + (dst_positive_scale_grid_H)) + ((dst_positive_scale_grid_H) + (dst_positive_scale_grid_H))) + (((dst_negative_code_grid_H) + (dst_negative_scale_grid_H)) * S ((dst_negative_code_grid_H) + (dst_negative_scale_grid_H)) + ((dst_negative_scale_grid_H) + (dst_negative_scale_grid_H)))) * S ((((dst_positive_code_grid_H) + (dst_positive_scale_grid_H)) * S ((dst_positive_code_grid_H) + (dst_positive_scale_grid_H)) + ((dst_positive_scale_grid_H) + (dst_positive_scale_grid_H))) + (((dst_negative_code_grid_H) + (dst_negative_scale_grid_H)) * S ((dst_negative_code_grid_H) + (dst_negative_scale_grid_H)) + ((dst_negative_scale_grid_H) + (dst_negative_scale_grid_H)))) + ((((dst_negative_code_grid_H) + (dst_negative_scale_grid_H)) * S ((dst_negative_code_grid_H) + (dst_negative_scale_grid_H)) + ((dst_negative_scale_grid_H) + (dst_negative_scale_grid_H))) + (((dst_negative_code_grid_H) + (dst_negative_scale_grid_H)) * S ((dst_negative_code_grid_H) + (dst_negative_scale_grid_H)) + ((dst_negative_scale_grid_H) + (dst_negative_scale_grid_H)))))) /\ (forall dst_index_grid_H. (exists pvs_le_gap_grid_Hdomain. pvs_le_gap_grid_Hdomain + (dst_index_grid_H) = (0)) -> exists dst_positive_grid_H dst_negative_grid_H dst_value_grid_H. ((((exists ff_h_pvs_grid_Hentrypositive. ff_h_pvs_grid_Hentrypositive + S (dst_positive_grid_H) = S ((S (dst_index_grid_H)) * dst_positive_scale_grid_H)) /\ exists ff_q_pvs_grid_Hentrypositive. dst_positive_code_grid_H = ff_q_pvs_grid_Hentrypositive * S ((S (dst_index_grid_H)) * dst_positive_scale_grid_H) + (dst_positive_grid_H))) /\ (((((exists ff_h_pvs_grid_Hentrynegative. ff_h_pvs_grid_Hentrynegative + S (dst_negative_grid_H) = S ((S (dst_index_grid_H)) * dst_negative_scale_grid_H)) /\ exists ff_q_pvs_grid_Hentrynegative. dst_negative_code_grid_H = ff_q_pvs_grid_Hentrynegative * S ((S (dst_index_grid_H)) * dst_negative_scale_grid_H) + (dst_negative_grid_H))) /\ (exists ge_balance_positive_grid_Hentryvalue ge_balance_negative_grid_Hentryvalue. (((((dst_value_grid_H) = 2 * (ge_balance_positive_grid_Hentryvalue) /\ (ge_balance_negative_grid_Hentryvalue) = 0) \/ exists ge_signed_half_grid_Hentryvaluedecode. (((dst_value_grid_H) = 2 * ge_signed_half_grid_Hentryvaluedecode + 1 /\ (ge_balance_positive_grid_Hentryvalue) = 0) /\ (ge_balance_negative_grid_Hentryvalue) = S ge_signed_half_grid_Hentryvaluedecode))) /\ ((dst_positive_grid_H) + ge_balance_negative_grid_Hentryvalue = (dst_negative_grid_H) + ge_balance_positive_grid_Hentryvalue))))))))) -> exists T. (((exists dst_positive_code_grid_totaltable dst_positive_scale_grid_totaltable dst_negative_code_grid_totaltable dst_negative_scale_grid_totaltable. (((T) = (((((dst_positive_code_grid_totaltable) + (dst_positive_scale_grid_totaltable)) * S ((dst_positive_code_grid_totaltable) + (dst_positive_scale_grid_totaltable)) + ((dst_positive_scale_grid_totaltable) + (dst_positive_scale_grid_totaltable))) + (((dst_negative_code_grid_totaltable) + (dst_negative_scale_grid_totaltable)) * S ((dst_negative_code_grid_totaltable) + (dst_negative_scale_grid_totaltable)) + ((dst_negative_scale_grid_totaltable) + (dst_negative_scale_grid_totaltable)))) * S ((((dst_positive_code_grid_totaltable) + (dst_positive_scale_grid_totaltable)) * S ((dst_positive_code_grid_totaltable) + (dst_positive_scale_grid_totaltable)) + ((dst_positive_scale_grid_totaltable) + (dst_positive_scale_grid_totaltable))) + (((dst_negative_code_grid_totaltable) + (dst_negative_scale_grid_totaltable)) * S ((dst_negative_code_grid_totaltable) + (dst_negative_scale_grid_totaltable)) + ((dst_negative_scale_grid_totaltable) + (dst_negative_scale_grid_totaltable)))) + ((((dst_negative_code_grid_totaltable) + (dst_negative_scale_grid_totaltable)) * S ((dst_negative_code_grid_totaltable) + (dst_negative_scale_grid_totaltable)) + ((dst_negative_scale_grid_totaltable) + (dst_negative_scale_grid_totaltable))) + (((dst_negative_code_grid_totaltable) + (dst_negative_scale_grid_totaltable)) * S ((dst_negative_code_grid_totaltable) + (dst_negative_scale_grid_totaltable)) + ((dst_negative_scale_grid_totaltable) + (dst_negative_scale_grid_totaltable)))))) /\ (forall dst_index_grid_totaltable. (exists pvs_le_gap_grid_totaltabledomain. pvs_le_gap_grid_totaltabledomain + (dst_index_grid_totaltable) = ((S (n))*(S (n)))) -> exists dst_positive_grid_totaltable dst_negative_grid_totaltable dst_value_grid_totaltable. ((((exists ff_h_pvs_grid_totaltableentrypositive. ff_h_pvs_grid_totaltableentrypositive + S (dst_positive_grid_totaltable) = S ((S (dst_index_grid_totaltable)) * dst_positive_scale_grid_totaltable)) /\ exists ff_q_pvs_grid_totaltableentrypositive. dst_positive_code_grid_totaltable = ff_q_pvs_grid_totaltableentrypositive * S ((S (dst_index_grid_totaltable)) * dst_positive_scale_grid_totaltable) + (dst_positive_grid_totaltable))) /\ (((((exists ff_h_pvs_grid_totaltableentrynegative. ff_h_pvs_grid_totaltableentrynegative + S (dst_negative_grid_totaltable) = S ((S (dst_index_grid_totaltable)) * dst_negative_scale_grid_totaltable)) /\ exists ff_q_pvs_grid_totaltableentrynegative. dst_negative_code_grid_totaltable = ff_q_pvs_grid_totaltableentrynegative * S ((S (dst_index_grid_totaltable)) * dst_negative_scale_grid_totaltable) + (dst_negative_grid_totaltable))) /\ (exists ge_balance_positive_grid_totaltableentryvalue ge_balance_negative_grid_totaltableentryvalue. (((((dst_value_grid_totaltable) = 2 * (ge_balance_positive_grid_totaltableentryvalue) /\ (ge_balance_negative_grid_totaltableentryvalue) = 0) \/ exists ge_signed_half_grid_totaltableentryvaluedecode. (((dst_value_grid_totaltable) = 2 * ge_signed_half_grid_totaltableentryvaluedecode + 1 /\ (ge_balance_positive_grid_totaltableentryvalue) = 0) /\ (ge_balance_negative_grid_totaltableentryvalue) = S ge_signed_half_grid_totaltableentryvaluedecode))) /\ ((dst_positive_grid_totaltable) + ge_balance_negative_grid_totaltableentryvalue = (dst_negative_grid_totaltable) + ge_balance_positive_grid_totaltableentryvalue))))))))) /\ (forall dfg_grid_row_grid_total dfg_grid_column_grid_total dfg_grid_value_grid_total. (exists pvs_le_gap_grid_totalrow. pvs_le_gap_grid_totalrow + (dfg_grid_row_grid_total) = (n)) -> (exists pvs_le_gap_grid_totalcolumn. pvs_le_gap_grid_totalcolumn + (dfg_grid_column_grid_total) = (n)) -> (exists dst_positive_code_grid_totallookup dst_positive_scale_grid_totallookup dst_negative_code_grid_totallookup dst_negative_scale_grid_totallookup dst_positive_grid_totallookup dst_negative_grid_totallookup. (((T) = (((((dst_positive_code_grid_totallookup) + (dst_positive_scale_grid_totallookup)) * S ((dst_positive_code_grid_totallookup) + (dst_positive_scale_grid_totallookup)) + ((dst_positive_scale_grid_totallookup) + (dst_positive_scale_grid_totallookup))) + (((dst_negative_code_grid_totallookup) + (dst_negative_scale_grid_totallookup)) * S ((dst_negative_code_grid_totallookup) + (dst_negative_scale_grid_totallookup)) + ((dst_negative_scale_grid_totallookup) + (dst_negative_scale_grid_totallookup)))) * S ((((dst_positive_code_grid_totallookup) + (dst_positive_scale_grid_totallookup)) * S ((dst_positive_code_grid_totallookup) + (dst_positive_scale_grid_totallookup)) + ((dst_positive_scale_grid_totallookup) + (dst_positive_scale_grid_totallookup))) + (((dst_negative_code_grid_totallookup) + (dst_negative_scale_grid_totallookup)) * S ((dst_negative_code_grid_totallookup) + (dst_negative_scale_grid_totallookup)) + ((dst_negative_scale_grid_totallookup) + (dst_negative_scale_grid_totallookup)))) + ((((dst_negative_code_grid_totallookup) + (dst_negative_scale_grid_totallookup)) * S ((dst_negative_code_grid_totallookup) + (dst_negative_scale_grid_totallookup)) + ((dst_negative_scale_grid_totallookup) + (dst_negative_scale_grid_totallookup))) + (((dst_negative_code_grid_totallookup) + (dst_negative_scale_grid_totallookup)) * S ((dst_negative_code_grid_totallookup) + (dst_negative_scale_grid_totallookup)) + ((dst_negative_scale_grid_totallookup) + (dst_negative_scale_grid_totallookup)))))) /\ (((((exists ff_h_pvs_grid_totallookuppositive. ff_h_pvs_grid_totallookuppositive + S (dst_positive_grid_totallookup) = S ((S ((S (n))*(dfg_grid_row_grid_total)+(dfg_grid_column_grid_total))) * dst_positive_scale_grid_totallookup)) /\ exists ff_q_pvs_grid_totallookuppositive. dst_positive_code_grid_totallookup = ff_q_pvs_grid_totallookuppositive * S ((S ((S (n))*(dfg_grid_row_grid_total)+(dfg_grid_column_grid_total))) * dst_positive_scale_grid_totallookup) + (dst_positive_grid_totallookup))) /\ (((((exists ff_h_pvs_grid_totallookupnegative. ff_h_pvs_grid_totallookupnegative + S (dst_negative_grid_totallookup) = S ((S ((S (n))*(dfg_grid_row_grid_total)+(dfg_grid_column_grid_total))) * dst_negative_scale_grid_totallookup)) /\ exists ff_q_pvs_grid_totallookupnegative. dst_negative_code_grid_totallookup = ff_q_pvs_grid_totallookupnegative * S ((S ((S (n))*(dfg_grid_row_grid_total)+(dfg_grid_column_grid_total))) * dst_negative_scale_grid_totallookup) + (dst_negative_grid_totallookup))) /\ (exists ge_balance_positive_grid_totallookupvalue ge_balance_negative_grid_totallookupvalue. (((((dfg_grid_value_grid_total) = 2 * (ge_balance_positive_grid_totallookupvalue) /\ (ge_balance_negative_grid_totallookupvalue) = 0) \/ exists ge_signed_half_grid_totallookupvaluedecode. (((dfg_grid_value_grid_total) = 2 * ge_signed_half_grid_totallookupvaluedecode + 1 /\ (ge_balance_positive_grid_totallookupvalue) = 0) /\ (ge_balance_negative_grid_totallookupvalue) = S ge_signed_half_grid_totallookupvaluedecode))) /\ ((dst_positive_grid_totallookup) + ge_balance_negative_grid_totallookupvalue = (dst_negative_grid_totallookup) + ge_balance_positive_grid_totallookupvalue))))))))) -> ((((~((dfg_grid_row_grid_total)=0)) /\ (((~((dfg_grid_column_grid_total)=0)) /\ (exists dfg_middle_grid_totalentry dfg_first_grid_totalentry dfg_last_grid_totalentry dfg_value_grid_totalentry. (((n)=((dfg_grid_row_grid_total)*(dfg_grid_column_grid_total))*dfg_middle_grid_totalentry) /\ (((exists dst_positive_code_grid_totalentryfirst dst_positive_scale_grid_totalentryfirst dst_negative_code_grid_totalentryfirst dst_negative_scale_grid_totalentryfirst dst_positive_grid_totalentryfirst dst_negative_grid_totalentryfirst. (((F) = (((((dst_positive_code_grid_totalentryfirst) + (dst_positive_scale_grid_totalentryfirst)) * S ((dst_positive_code_grid_totalentryfirst) + (dst_positive_scale_grid_totalentryfirst)) + ((dst_positive_scale_grid_totalentryfirst) + (dst_positive_scale_grid_totalentryfirst))) + (((dst_negative_code_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)) * S ((dst_negative_code_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)) + ((dst_negative_scale_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)))) * S ((((dst_positive_code_grid_totalentryfirst) + (dst_positive_scale_grid_totalentryfirst)) * S ((dst_positive_code_grid_totalentryfirst) + (dst_positive_scale_grid_totalentryfirst)) + ((dst_positive_scale_grid_totalentryfirst) + (dst_positive_scale_grid_totalentryfirst))) + (((dst_negative_code_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)) * S ((dst_negative_code_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)) + ((dst_negative_scale_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)))) + ((((dst_negative_code_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)) * S ((dst_negative_code_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)) + ((dst_negative_scale_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst))) + (((dst_negative_code_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)) * S ((dst_negative_code_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)) + ((dst_negative_scale_grid_totalentryfirst) + (dst_negative_scale_grid_totalentryfirst)))))) /\ (((((exists ff_h_pvs_grid_totalentryfirstpositive. ff_h_pvs_grid_totalentryfirstpositive + S (dst_positive_grid_totalentryfirst) = S ((S (dfg_grid_row_grid_total)) * dst_positive_scale_grid_totalentryfirst)) /\ exists ff_q_pvs_grid_totalentryfirstpositive. dst_positive_code_grid_totalentryfirst = ff_q_pvs_grid_totalentryfirstpositive * S ((S (dfg_grid_row_grid_total)) * dst_positive_scale_grid_totalentryfirst) + (dst_positive_grid_totalentryfirst))) /\ (((((exists ff_h_pvs_grid_totalentryfirstnegative. ff_h_pvs_grid_totalentryfirstnegative + S (dst_negative_grid_totalentryfirst) = S ((S (dfg_grid_row_grid_total)) * dst_negative_scale_grid_totalentryfirst)) /\ exists ff_q_pvs_grid_totalentryfirstnegative. dst_negative_code_grid_totalentryfirst = ff_q_pvs_grid_totalentryfirstnegative * S ((S (dfg_grid_row_grid_total)) * dst_negative_scale_grid_totalentryfirst) + (dst_negative_grid_totalentryfirst))) /\ (exists ge_balance_positive_grid_totalentryfirstvalue ge_balance_negative_grid_totalentryfirstvalue. (((((dfg_first_grid_totalentry) = 2 * (ge_balance_positive_grid_totalentryfirstvalue) /\ (ge_balance_negative_grid_totalentryfirstvalue) = 0) \/ exists ge_signed_half_grid_totalentryfirstvaluedecode. (((dfg_first_grid_totalentry) = 2 * ge_signed_half_grid_totalentryfirstvaluedecode + 1 /\ (ge_balance_positive_grid_totalentryfirstvalue) = 0) /\ (ge_balance_negative_grid_totalentryfirstvalue) = S ge_signed_half_grid_totalentryfirstvaluedecode))) /\ ((dst_positive_grid_totalentryfirst) + ge_balance_negative_grid_totalentryfirstvalue = (dst_negative_grid_totalentryfirst) + ge_balance_positive_grid_totalentryfirstvalue))))))))) /\ (((exists dst_positive_code_grid_totalentrylast dst_positive_scale_grid_totalentrylast dst_negative_code_grid_totalentrylast dst_negative_scale_grid_totalentrylast dst_positive_grid_totalentrylast dst_negative_grid_totalentrylast. (((H) = (((((dst_positive_code_grid_totalentrylast) + (dst_positive_scale_grid_totalentrylast)) * S ((dst_positive_code_grid_totalentrylast) + (dst_positive_scale_grid_totalentrylast)) + ((dst_positive_scale_grid_totalentrylast) + (dst_positive_scale_grid_totalentrylast))) + (((dst_negative_code_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)) * S ((dst_negative_code_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)) + ((dst_negative_scale_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)))) * S ((((dst_positive_code_grid_totalentrylast) + (dst_positive_scale_grid_totalentrylast)) * S ((dst_positive_code_grid_totalentrylast) + (dst_positive_scale_grid_totalentrylast)) + ((dst_positive_scale_grid_totalentrylast) + (dst_positive_scale_grid_totalentrylast))) + (((dst_negative_code_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)) * S ((dst_negative_code_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)) + ((dst_negative_scale_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)))) + ((((dst_negative_code_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)) * S ((dst_negative_code_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)) + ((dst_negative_scale_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast))) + (((dst_negative_code_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)) * S ((dst_negative_code_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)) + ((dst_negative_scale_grid_totalentrylast) + (dst_negative_scale_grid_totalentrylast)))))) /\ (((((exists ff_h_pvs_grid_totalentrylastpositive. ff_h_pvs_grid_totalentrylastpositive + S (dst_positive_grid_totalentrylast) = S ((S (dfg_grid_column_grid_total)) * dst_positive_scale_grid_totalentrylast)) /\ exists ff_q_pvs_grid_totalentrylastpositive. dst_positive_code_grid_totalentrylast = ff_q_pvs_grid_totalentrylastpositive * S ((S (dfg_grid_column_grid_total)) * dst_positive_scale_grid_totalentrylast) + (dst_positive_grid_totalentrylast))) /\ (((((exists ff_h_pvs_grid_totalentrylastnegative. ff_h_pvs_grid_totalentrylastnegative + S (dst_negative_grid_totalentrylast) = S ((S (dfg_grid_column_grid_total)) * dst_negative_scale_grid_totalentrylast)) /\ exists ff_q_pvs_grid_totalentrylastnegative. dst_negative_code_grid_totalentrylast = ff_q_pvs_grid_totalentrylastnegative * S ((S (dfg_grid_column_grid_total)) * dst_negative_scale_grid_totalentrylast) + (dst_negative_grid_totalentrylast))) /\ (exists ge_balance_positive_grid_totalentrylastvalue ge_balance_negative_grid_totalentrylastvalue. (((((dfg_last_grid_totalentry) = 2 * (ge_balance_positive_grid_totalentrylastvalue) /\ (ge_balance_negative_grid_totalentrylastvalue) = 0) \/ exists ge_signed_half_grid_totalentrylastvaluedecode. (((dfg_last_grid_totalentry) = 2 * ge_signed_half_grid_totalentrylastvaluedecode + 1 /\ (ge_balance_positive_grid_totalentrylastvalue) = 0) /\ (ge_balance_negative_grid_totalentrylastvalue) = S ge_signed_half_grid_totalentrylastvaluedecode))) /\ ((dst_positive_grid_totalentrylast) + ge_balance_negative_grid_totalentrylastvalue = (dst_negative_grid_totalentrylast) + ge_balance_positive_grid_totalentrylastvalue))))))))) /\ (((exists dst_positive_code_grid_totalentrymiddle dst_positive_scale_grid_totalentrymiddle dst_negative_code_grid_totalentrymiddle dst_negative_scale_grid_totalentrymiddle dst_positive_grid_totalentrymiddle dst_negative_grid_totalentrymiddle. (((G) = (((((dst_positive_code_grid_totalentrymiddle) + (dst_positive_scale_grid_totalentrymiddle)) * S ((dst_positive_code_grid_totalentrymiddle) + (dst_positive_scale_grid_totalentrymiddle)) + ((dst_positive_scale_grid_totalentrymiddle) + (dst_positive_scale_grid_totalentrymiddle))) + (((dst_negative_code_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)) * S ((dst_negative_code_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)) + ((dst_negative_scale_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)))) * S ((((dst_positive_code_grid_totalentrymiddle) + (dst_positive_scale_grid_totalentrymiddle)) * S ((dst_positive_code_grid_totalentrymiddle) + (dst_positive_scale_grid_totalentrymiddle)) + ((dst_positive_scale_grid_totalentrymiddle) + (dst_positive_scale_grid_totalentrymiddle))) + (((dst_negative_code_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)) * S ((dst_negative_code_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)) + ((dst_negative_scale_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)))) + ((((dst_negative_code_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)) * S ((dst_negative_code_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)) + ((dst_negative_scale_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle))) + (((dst_negative_code_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)) * S ((dst_negative_code_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)) + ((dst_negative_scale_grid_totalentrymiddle) + (dst_negative_scale_grid_totalentrymiddle)))))) /\ (((((exists ff_h_pvs_grid_totalentrymiddlepositive. ff_h_pvs_grid_totalentrymiddlepositive + S (dst_positive_grid_totalentrymiddle) = S ((S (dfg_middle_grid_totalentry)) * dst_positive_scale_grid_totalentrymiddle)) /\ exists ff_q_pvs_grid_totalentrymiddlepositive. dst_positive_code_grid_totalentrymiddle = ff_q_pvs_grid_totalentrymiddlepositive * S ((S (dfg_middle_grid_totalentry)) * dst_positive_scale_grid_totalentrymiddle) + (dst_positive_grid_totalentrymiddle))) /\ (((((exists ff_h_pvs_grid_totalentrymiddlenegative. ff_h_pvs_grid_totalentrymiddlenegative + S (dst_negative_grid_totalentrymiddle) = S ((S (dfg_middle_grid_totalentry)) * dst_negative_scale_grid_totalentrymiddle)) /\ exists ff_q_pvs_grid_totalentrymiddlenegative. dst_negative_code_grid_totalentrymiddle = ff_q_pvs_grid_totalentrymiddlenegative * S ((S (dfg_middle_grid_totalentry)) * dst_negative_scale_grid_totalentrymiddle) + (dst_negative_grid_totalentrymiddle))) /\ (exists ge_balance_positive_grid_totalentrymiddlevalue ge_balance_negative_grid_totalentrymiddlevalue. (((((dfg_value_grid_totalentry) = 2 * (ge_balance_positive_grid_totalentrymiddlevalue) /\ (ge_balance_negative_grid_totalentrymiddlevalue) = 0) \/ exists ge_signed_half_grid_totalentrymiddlevaluedecode. (((dfg_value_grid_totalentry) = 2 * ge_signed_half_grid_totalentrymiddlevaluedecode + 1 /\ (ge_balance_positive_grid_totalentrymiddlevalue) = 0) /\ (ge_balance_negative_grid_totalentrymiddlevalue) = S ge_signed_half_grid_totalentrymiddlevaluedecode))) /\ ((dst_positive_grid_totalentrymiddle) + ge_balance_negative_grid_totalentrymiddlevalue = (dst_negative_grid_totalentrymiddle) + ge_balance_positive_grid_totalentrymiddlevalue))))))))) /\ (exists dfg_inner_grid_totalentryproduct. ((exists sto_ap_grid_totalentryproductinner sto_an_grid_totalentryproductinner sto_bp_grid_totalentryproductinner sto_bn_grid_totalentryproductinner sto_cp_grid_totalentryproductinner sto_cn_grid_totalentryproductinner. (((((dfg_last_grid_totalentry) = 2 * (sto_ap_grid_totalentryproductinner) /\ (sto_an_grid_totalentryproductinner) = 0) \/ exists ge_signed_half_grid_totalentryproductinnerleft. (((dfg_last_grid_totalentry) = 2 * ge_signed_half_grid_totalentryproductinnerleft + 1 /\ (sto_ap_grid_totalentryproductinner) = 0) /\ (sto_an_grid_totalentryproductinner) = S ge_signed_half_grid_totalentryproductinnerleft))) /\ ((((((dfg_value_grid_totalentry) = 2 * (sto_bp_grid_totalentryproductinner) /\ (sto_bn_grid_totalentryproductinner) = 0) \/ exists ge_signed_half_grid_totalentryproductinnerright. (((dfg_value_grid_totalentry) = 2 * ge_signed_half_grid_totalentryproductinnerright + 1 /\ (sto_bp_grid_totalentryproductinner) = 0) /\ (sto_bn_grid_totalentryproductinner) = S ge_signed_half_grid_totalentryproductinnerright))) /\ ((((((dfg_inner_grid_totalentryproduct) = 2 * (sto_cp_grid_totalentryproductinner) /\ (sto_cn_grid_totalentryproductinner) = 0) \/ exists ge_signed_half_grid_totalentryproductinneroutput. (((dfg_inner_grid_totalentryproduct) = 2 * ge_signed_half_grid_totalentryproductinneroutput + 1 /\ (sto_cp_grid_totalentryproductinner) = 0) /\ (sto_cn_grid_totalentryproductinner) = S ge_signed_half_grid_totalentryproductinneroutput))) /\ ((sto_ap_grid_totalentryproductinner * sto_bp_grid_totalentryproductinner + sto_an_grid_totalentryproductinner * sto_bn_grid_totalentryproductinner) + sto_cn_grid_totalentryproductinner = (sto_ap_grid_totalentryproductinner * sto_bn_grid_totalentryproductinner + sto_an_grid_totalentryproductinner * sto_bp_grid_totalentryproductinner) + sto_cp_grid_totalentryproductinner))))))) /\ (exists sto_ap_grid_totalentryproductouter sto_an_grid_totalentryproductouter sto_bp_grid_totalentryproductouter sto_bn_grid_totalentryproductouter sto_cp_grid_totalentryproductouter sto_cn_grid_totalentryproductouter. (((((dfg_first_grid_totalentry) = 2 * (sto_ap_grid_totalentryproductouter) /\ (sto_an_grid_totalentryproductouter) = 0) \/ exists ge_signed_half_grid_totalentryproductouterleft. (((dfg_first_grid_totalentry) = 2 * ge_signed_half_grid_totalentryproductouterleft + 1 /\ (sto_ap_grid_totalentryproductouter) = 0) /\ (sto_an_grid_totalentryproductouter) = S ge_signed_half_grid_totalentryproductouterleft))) /\ ((((((dfg_inner_grid_totalentryproduct) = 2 * (sto_bp_grid_totalentryproductouter) /\ (sto_bn_grid_totalentryproductouter) = 0) \/ exists ge_signed_half_grid_totalentryproductouterright. (((dfg_inner_grid_totalentryproduct) = 2 * ge_signed_half_grid_totalentryproductouterright + 1 /\ (sto_bp_grid_totalentryproductouter) = 0) /\ (sto_bn_grid_totalentryproductouter) = S ge_signed_half_grid_totalentryproductouterright))) /\ ((((((dfg_grid_value_grid_total) = 2 * (sto_cp_grid_totalentryproductouter) /\ (sto_cn_grid_totalentryproductouter) = 0) \/ exists ge_signed_half_grid_totalentryproductouteroutput. (((dfg_grid_value_grid_total) = 2 * ge_signed_half_grid_totalentryproductouteroutput + 1 /\ (sto_cp_grid_totalentryproductouter) = 0) /\ (sto_cn_grid_totalentryproductouter) = S ge_signed_half_grid_totalentryproductouteroutput))) /\ ((sto_ap_grid_totalentryproductouter * sto_bp_grid_totalentryproductouter + sto_an_grid_totalentryproductouter * sto_bn_grid_totalentryproductouter) + sto_cn_grid_totalentryproductouter = (sto_ap_grid_totalentryproductouter * sto_bn_grid_totalentryproductouter + sto_an_grid_totalentryproductouter * sto_bp_grid_totalentryproductouter) + sto_cp_grid_totalentryproductouter))))))))))))))))))))) \/ ((((dfg_grid_row_grid_total)=0 \/ ((dfg_grid_column_grid_total)=0 \/ ~(exists pvs_factor_grid_totalentryomittednondivisor. (n) = ((dfg_grid_row_grid_total)*(dfg_grid_column_grid_total)) * pvs_factor_grid_totalentryomittednondivisor))) /\ ((dfg_grid_value_grid_total)=0)))))))

Complete tactic proof in conservative notation

All 26 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

26 script commands · 5 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.

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–7

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 hF
  6. L6
    intro hG
  7. L7
    intro hH
02Establish hpL8–17

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

  1. L8
    have hp : ∃ T. DirichletFlatPrefix(F,G,H,n,S n · S n,T)Definitions: DirichletFlatPrefix(F,G,H,n,S n · S n,T)Original native command in the exact edition
  2. L9
    specialize dirichlet_grid_flat_prefix_exists (F)
  3. L10
    specialize dirichlet_grid_flat_prefix_exists (G)
  4. L11
    specialize dirichlet_grid_flat_prefix_exists (H)
  5. L12
    specialize dirichlet_grid_flat_prefix_exists (n)
  6. L13
    specialize dirichlet_grid_flat_prefix_exists ((S n)*(S n))
  7. L14
    apply dirichlet_grid_flat_prefix_exists
  8. L15
    exact hF
  9. L16
    exact hG
  10. L17
    exact hH
03Separate the logical casesL18–18

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

  1. L18
    cases hp
04Construct an explicit witnessL19–19

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

  1. L19
    exists x
05Use earlier factsL20–26

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

  1. L20
    specialize dirichlet_grid_from_flat_prefix (F)
  2. L21
    specialize dirichlet_grid_from_flat_prefix (G)
  3. L22
    specialize dirichlet_grid_from_flat_prefix (H)
  4. L23
    specialize dirichlet_grid_from_flat_prefix (n)
  5. L24
    specialize dirichlet_grid_from_flat_prefix (x)
  6. L25
    apply dirichlet_grid_from_flat_prefix
  7. L26
    exact hp_witness

Library-wide reading audit

Original defined command ledger · 26 lines
  1. 0001intro F
  2. 0002intro G
  3. 0003intro H
  4. 0004intro n
  5. 0005intro hF
  6. 0006intro hG
  7. 0007intro hH
  8. 0008have hp : ∃ T. DirichletFlatPrefix(F,G,H,n,S n · S n,T)
  9. 0009specialize dirichlet_grid_flat_prefix_exists (F)
  10. 0010specialize dirichlet_grid_flat_prefix_exists (G)
  11. 0011specialize dirichlet_grid_flat_prefix_exists (H)
  12. 0012specialize dirichlet_grid_flat_prefix_exists (n)
  13. 0013specialize dirichlet_grid_flat_prefix_exists ((S n)*(S n))
  14. 0014apply dirichlet_grid_flat_prefix_exists
  15. 0015exact hF
  16. 0016exact hG
  17. 0017exact hH
  18. 0018cases hp
  19. 0019exists x
  20. 0020specialize dirichlet_grid_from_flat_prefix (F)
  21. 0021specialize dirichlet_grid_from_flat_prefix (G)
  22. 0022specialize dirichlet_grid_from_flat_prefix (H)
  23. 0023specialize dirichlet_grid_from_flat_prefix (n)
  24. 0024specialize dirichlet_grid_from_flat_prefix (x)
  25. 0025apply dirichlet_grid_from_flat_prefix
  26. 0026exact hp_witness