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. ∀ V. ∀ z. DirichletFactorRow(F,G,H,n,a,V) → a = 0 ∨ ¬Dvd(a,n) → SignedPrefixSum(V,S n,z) → z = 0
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 V z. (((exists dst_positive_code_row_zero_valuestable dst_positive_scale_row_zero_valuestable dst_negative_code_row_zero_valuestable dst_negative_scale_row_zero_valuestable. (((V) = (((((dst_positive_code_row_zero_valuestable) + (dst_positive_scale_row_zero_valuestable)) * S ((dst_positive_code_row_zero_valuestable) + (dst_positive_scale_row_zero_valuestable)) + ((dst_positive_scale_row_zero_valuestable) + (dst_positive_scale_row_zero_valuestable))) + (((dst_negative_code_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)) * S ((dst_negative_code_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)) + ((dst_negative_scale_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)))) * S ((((dst_positive_code_row_zero_valuestable) + (dst_positive_scale_row_zero_valuestable)) * S ((dst_positive_code_row_zero_valuestable) + (dst_positive_scale_row_zero_valuestable)) + ((dst_positive_scale_row_zero_valuestable) + (dst_positive_scale_row_zero_valuestable))) + (((dst_negative_code_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)) * S ((dst_negative_code_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)) + ((dst_negative_scale_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)))) + ((((dst_negative_code_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)) * S ((dst_negative_code_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)) + ((dst_negative_scale_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable))) + (((dst_negative_code_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)) * S ((dst_negative_code_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)) + ((dst_negative_scale_row_zero_valuestable) + (dst_negative_scale_row_zero_valuestable)))))) /\ (forall dst_index_row_zero_valuestable. (exists pvs_le_gap_row_zero_valuestabledomain. pvs_le_gap_row_zero_valuestabledomain + (dst_index_row_zero_valuestable) = (S (n))) -> exists dst_positive_row_zero_valuestable dst_negative_row_zero_valuestable dst_value_row_zero_valuestable. ((((exists ff_h_pvs_row_zero_valuestableentrypositive. ff_h_pvs_row_zero_valuestableentrypositive + S (dst_positive_row_zero_valuestable) = S ((S (dst_index_row_zero_valuestable)) * dst_positive_scale_row_zero_valuestable)) /\ exists ff_q_pvs_row_zero_valuestableentrypositive. dst_positive_code_row_zero_valuestable = ff_q_pvs_row_zero_valuestableentrypositive * S ((S (dst_index_row_zero_valuestable)) * dst_positive_scale_row_zero_valuestable) + (dst_positive_row_zero_valuestable))) /\ (((((exists ff_h_pvs_row_zero_valuestableentrynegative. ff_h_pvs_row_zero_valuestableentrynegative + S (dst_negative_row_zero_valuestable) = S ((S (dst_index_row_zero_valuestable)) * dst_negative_scale_row_zero_valuestable)) /\ exists ff_q_pvs_row_zero_valuestableentrynegative. dst_negative_code_row_zero_valuestable = ff_q_pvs_row_zero_valuestableentrynegative * S ((S (dst_index_row_zero_valuestable)) * dst_negative_scale_row_zero_valuestable) + (dst_negative_row_zero_valuestable))) /\ (exists ge_balance_positive_row_zero_valuestableentryvalue ge_balance_negative_row_zero_valuestableentryvalue. (((((dst_value_row_zero_valuestable) = 2 * (ge_balance_positive_row_zero_valuestableentryvalue) /\ (ge_balance_negative_row_zero_valuestableentryvalue) = 0) \/ exists ge_signed_half_row_zero_valuestableentryvaluedecode. (((dst_value_row_zero_valuestable) = 2 * ge_signed_half_row_zero_valuestableentryvaluedecode + 1 /\ (ge_balance_positive_row_zero_valuestableentryvalue) = 0) /\ (ge_balance_negative_row_zero_valuestableentryvalue) = S ge_signed_half_row_zero_valuestableentryvaluedecode))) /\ ((dst_positive_row_zero_valuestable) + ge_balance_negative_row_zero_valuestableentryvalue = (dst_negative_row_zero_valuestable) + ge_balance_positive_row_zero_valuestableentryvalue))))))))) /\ (forall dfg_factor_column_row_zero_values dfg_factor_value_row_zero_values. (exists pvs_le_gap_row_zero_valuesbound. pvs_le_gap_row_zero_valuesbound + (dfg_factor_column_row_zero_values) = (n)) -> (exists dst_positive_code_row_zero_valueslookup dst_positive_scale_row_zero_valueslookup dst_negative_code_row_zero_valueslookup dst_negative_scale_row_zero_valueslookup dst_positive_row_zero_valueslookup dst_negative_row_zero_valueslookup. (((V) = (((((dst_positive_code_row_zero_valueslookup) + (dst_positive_scale_row_zero_valueslookup)) * S ((dst_positive_code_row_zero_valueslookup) + (dst_positive_scale_row_zero_valueslookup)) + ((dst_positive_scale_row_zero_valueslookup) + (dst_positive_scale_row_zero_valueslookup))) + (((dst_negative_code_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)) * S ((dst_negative_code_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)) + ((dst_negative_scale_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)))) * S ((((dst_positive_code_row_zero_valueslookup) + (dst_positive_scale_row_zero_valueslookup)) * S ((dst_positive_code_row_zero_valueslookup) + (dst_positive_scale_row_zero_valueslookup)) + ((dst_positive_scale_row_zero_valueslookup) + (dst_positive_scale_row_zero_valueslookup))) + (((dst_negative_code_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)) * S ((dst_negative_code_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)) + ((dst_negative_scale_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)))) + ((((dst_negative_code_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)) * S ((dst_negative_code_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)) + ((dst_negative_scale_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup))) + (((dst_negative_code_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)) * S ((dst_negative_code_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)) + ((dst_negative_scale_row_zero_valueslookup) + (dst_negative_scale_row_zero_valueslookup)))))) /\ (((((exists ff_h_pvs_row_zero_valueslookuppositive. ff_h_pvs_row_zero_valueslookuppositive + S (dst_positive_row_zero_valueslookup) = S ((S (dfg_factor_column_row_zero_values)) * dst_positive_scale_row_zero_valueslookup)) /\ exists ff_q_pvs_row_zero_valueslookuppositive. dst_positive_code_row_zero_valueslookup = ff_q_pvs_row_zero_valueslookuppositive * S ((S (dfg_factor_column_row_zero_values)) * dst_positive_scale_row_zero_valueslookup) + (dst_positive_row_zero_valueslookup))) /\ (((((exists ff_h_pvs_row_zero_valueslookupnegative. ff_h_pvs_row_zero_valueslookupnegative + S (dst_negative_row_zero_valueslookup) = S ((S (dfg_factor_column_row_zero_values)) * dst_negative_scale_row_zero_valueslookup)) /\ exists ff_q_pvs_row_zero_valueslookupnegative. dst_negative_code_row_zero_valueslookup = ff_q_pvs_row_zero_valueslookupnegative * S ((S (dfg_factor_column_row_zero_values)) * dst_negative_scale_row_zero_valueslookup) + (dst_negative_row_zero_valueslookup))) /\ (exists ge_balance_positive_row_zero_valueslookupvalue ge_balance_negative_row_zero_valueslookupvalue. (((((dfg_factor_value_row_zero_values) = 2 * (ge_balance_positive_row_zero_valueslookupvalue) /\ (ge_balance_negative_row_zero_valueslookupvalue) = 0) \/ exists ge_signed_half_row_zero_valueslookupvaluedecode. (((dfg_factor_value_row_zero_values) = 2 * ge_signed_half_row_zero_valueslookupvaluedecode + 1 /\ (ge_balance_positive_row_zero_valueslookupvalue) = 0) /\ (ge_balance_negative_row_zero_valueslookupvalue) = S ge_signed_half_row_zero_valueslookupvaluedecode))) /\ ((dst_positive_row_zero_valueslookup) + ge_balance_negative_row_zero_valueslookupvalue = (dst_negative_row_zero_valueslookup) + ge_balance_positive_row_zero_valueslookupvalue))))))))) -> ((((~((a)=0)) /\ (((~((dfg_factor_column_row_zero_values)=0)) /\ (exists dfg_middle_row_zero_valuesentry dfg_first_row_zero_valuesentry dfg_last_row_zero_valuesentry dfg_value_row_zero_valuesentry. (((n)=((a)*(dfg_factor_column_row_zero_values))*dfg_middle_row_zero_valuesentry) /\ (((exists dst_positive_code_row_zero_valuesentryfirst dst_positive_scale_row_zero_valuesentryfirst dst_negative_code_row_zero_valuesentryfirst dst_negative_scale_row_zero_valuesentryfirst dst_positive_row_zero_valuesentryfirst dst_negative_row_zero_valuesentryfirst. (((F) = (((((dst_positive_code_row_zero_valuesentryfirst) + (dst_positive_scale_row_zero_valuesentryfirst)) * S ((dst_positive_code_row_zero_valuesentryfirst) + (dst_positive_scale_row_zero_valuesentryfirst)) + ((dst_positive_scale_row_zero_valuesentryfirst) + (dst_positive_scale_row_zero_valuesentryfirst))) + (((dst_negative_code_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)) * S ((dst_negative_code_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)) + ((dst_negative_scale_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)))) * S ((((dst_positive_code_row_zero_valuesentryfirst) + (dst_positive_scale_row_zero_valuesentryfirst)) * S ((dst_positive_code_row_zero_valuesentryfirst) + (dst_positive_scale_row_zero_valuesentryfirst)) + ((dst_positive_scale_row_zero_valuesentryfirst) + (dst_positive_scale_row_zero_valuesentryfirst))) + (((dst_negative_code_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)) * S ((dst_negative_code_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)) + ((dst_negative_scale_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)))) + ((((dst_negative_code_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)) * S ((dst_negative_code_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)) + ((dst_negative_scale_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst))) + (((dst_negative_code_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)) * S ((dst_negative_code_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)) + ((dst_negative_scale_row_zero_valuesentryfirst) + (dst_negative_scale_row_zero_valuesentryfirst)))))) /\ (((((exists ff_h_pvs_row_zero_valuesentryfirstpositive. ff_h_pvs_row_zero_valuesentryfirstpositive + S (dst_positive_row_zero_valuesentryfirst) = S ((S (a)) * dst_positive_scale_row_zero_valuesentryfirst)) /\ exists ff_q_pvs_row_zero_valuesentryfirstpositive. dst_positive_code_row_zero_valuesentryfirst = ff_q_pvs_row_zero_valuesentryfirstpositive * S ((S (a)) * dst_positive_scale_row_zero_valuesentryfirst) + (dst_positive_row_zero_valuesentryfirst))) /\ (((((exists ff_h_pvs_row_zero_valuesentryfirstnegative. ff_h_pvs_row_zero_valuesentryfirstnegative + S (dst_negative_row_zero_valuesentryfirst) = S ((S (a)) * dst_negative_scale_row_zero_valuesentryfirst)) /\ exists ff_q_pvs_row_zero_valuesentryfirstnegative. dst_negative_code_row_zero_valuesentryfirst = ff_q_pvs_row_zero_valuesentryfirstnegative * S ((S (a)) * dst_negative_scale_row_zero_valuesentryfirst) + (dst_negative_row_zero_valuesentryfirst))) /\ (exists ge_balance_positive_row_zero_valuesentryfirstvalue ge_balance_negative_row_zero_valuesentryfirstvalue. (((((dfg_first_row_zero_valuesentry) = 2 * (ge_balance_positive_row_zero_valuesentryfirstvalue) /\ (ge_balance_negative_row_zero_valuesentryfirstvalue) = 0) \/ exists ge_signed_half_row_zero_valuesentryfirstvaluedecode. (((dfg_first_row_zero_valuesentry) = 2 * ge_signed_half_row_zero_valuesentryfirstvaluedecode + 1 /\ (ge_balance_positive_row_zero_valuesentryfirstvalue) = 0) /\ (ge_balance_negative_row_zero_valuesentryfirstvalue) = S ge_signed_half_row_zero_valuesentryfirstvaluedecode))) /\ ((dst_positive_row_zero_valuesentryfirst) + ge_balance_negative_row_zero_valuesentryfirstvalue = (dst_negative_row_zero_valuesentryfirst) + ge_balance_positive_row_zero_valuesentryfirstvalue))))))))) /\ (((exists dst_positive_code_row_zero_valuesentrylast dst_positive_scale_row_zero_valuesentrylast dst_negative_code_row_zero_valuesentrylast dst_negative_scale_row_zero_valuesentrylast dst_positive_row_zero_valuesentrylast dst_negative_row_zero_valuesentrylast. (((H) = (((((dst_positive_code_row_zero_valuesentrylast) + (dst_positive_scale_row_zero_valuesentrylast)) * S ((dst_positive_code_row_zero_valuesentrylast) + (dst_positive_scale_row_zero_valuesentrylast)) + ((dst_positive_scale_row_zero_valuesentrylast) + (dst_positive_scale_row_zero_valuesentrylast))) + (((dst_negative_code_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)) * S ((dst_negative_code_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)) + ((dst_negative_scale_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)))) * S ((((dst_positive_code_row_zero_valuesentrylast) + (dst_positive_scale_row_zero_valuesentrylast)) * S ((dst_positive_code_row_zero_valuesentrylast) + (dst_positive_scale_row_zero_valuesentrylast)) + ((dst_positive_scale_row_zero_valuesentrylast) + (dst_positive_scale_row_zero_valuesentrylast))) + (((dst_negative_code_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)) * S ((dst_negative_code_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)) + ((dst_negative_scale_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)))) + ((((dst_negative_code_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)) * S ((dst_negative_code_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)) + ((dst_negative_scale_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast))) + (((dst_negative_code_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)) * S ((dst_negative_code_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)) + ((dst_negative_scale_row_zero_valuesentrylast) + (dst_negative_scale_row_zero_valuesentrylast)))))) /\ (((((exists ff_h_pvs_row_zero_valuesentrylastpositive. ff_h_pvs_row_zero_valuesentrylastpositive + S (dst_positive_row_zero_valuesentrylast) = S ((S (dfg_factor_column_row_zero_values)) * dst_positive_scale_row_zero_valuesentrylast)) /\ exists ff_q_pvs_row_zero_valuesentrylastpositive. dst_positive_code_row_zero_valuesentrylast = ff_q_pvs_row_zero_valuesentrylastpositive * S ((S (dfg_factor_column_row_zero_values)) * dst_positive_scale_row_zero_valuesentrylast) + (dst_positive_row_zero_valuesentrylast))) /\ (((((exists ff_h_pvs_row_zero_valuesentrylastnegative. ff_h_pvs_row_zero_valuesentrylastnegative + S (dst_negative_row_zero_valuesentrylast) = S ((S (dfg_factor_column_row_zero_values)) * dst_negative_scale_row_zero_valuesentrylast)) /\ exists ff_q_pvs_row_zero_valuesentrylastnegative. dst_negative_code_row_zero_valuesentrylast = ff_q_pvs_row_zero_valuesentrylastnegative * S ((S (dfg_factor_column_row_zero_values)) * dst_negative_scale_row_zero_valuesentrylast) + (dst_negative_row_zero_valuesentrylast))) /\ (exists ge_balance_positive_row_zero_valuesentrylastvalue ge_balance_negative_row_zero_valuesentrylastvalue. (((((dfg_last_row_zero_valuesentry) = 2 * (ge_balance_positive_row_zero_valuesentrylastvalue) /\ (ge_balance_negative_row_zero_valuesentrylastvalue) = 0) \/ exists ge_signed_half_row_zero_valuesentrylastvaluedecode. (((dfg_last_row_zero_valuesentry) = 2 * ge_signed_half_row_zero_valuesentrylastvaluedecode + 1 /\ (ge_balance_positive_row_zero_valuesentrylastvalue) = 0) /\ (ge_balance_negative_row_zero_valuesentrylastvalue) = S ge_signed_half_row_zero_valuesentrylastvaluedecode))) /\ ((dst_positive_row_zero_valuesentrylast) + ge_balance_negative_row_zero_valuesentrylastvalue = (dst_negative_row_zero_valuesentrylast) + ge_balance_positive_row_zero_valuesentrylastvalue))))))))) /\ (((exists dst_positive_code_row_zero_valuesentrymiddle dst_positive_scale_row_zero_valuesentrymiddle dst_negative_code_row_zero_valuesentrymiddle dst_negative_scale_row_zero_valuesentrymiddle dst_positive_row_zero_valuesentrymiddle dst_negative_row_zero_valuesentrymiddle. (((G) = (((((dst_positive_code_row_zero_valuesentrymiddle) + (dst_positive_scale_row_zero_valuesentrymiddle)) * S ((dst_positive_code_row_zero_valuesentrymiddle) + (dst_positive_scale_row_zero_valuesentrymiddle)) + ((dst_positive_scale_row_zero_valuesentrymiddle) + (dst_positive_scale_row_zero_valuesentrymiddle))) + (((dst_negative_code_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)) * S ((dst_negative_code_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)) + ((dst_negative_scale_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)))) * S ((((dst_positive_code_row_zero_valuesentrymiddle) + (dst_positive_scale_row_zero_valuesentrymiddle)) * S ((dst_positive_code_row_zero_valuesentrymiddle) + (dst_positive_scale_row_zero_valuesentrymiddle)) + ((dst_positive_scale_row_zero_valuesentrymiddle) + (dst_positive_scale_row_zero_valuesentrymiddle))) + (((dst_negative_code_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)) * S ((dst_negative_code_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)) + ((dst_negative_scale_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)))) + ((((dst_negative_code_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)) * S ((dst_negative_code_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)) + ((dst_negative_scale_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle))) + (((dst_negative_code_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)) * S ((dst_negative_code_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)) + ((dst_negative_scale_row_zero_valuesentrymiddle) + (dst_negative_scale_row_zero_valuesentrymiddle)))))) /\ (((((exists ff_h_pvs_row_zero_valuesentrymiddlepositive. ff_h_pvs_row_zero_valuesentrymiddlepositive + S (dst_positive_row_zero_valuesentrymiddle) = S ((S (dfg_middle_row_zero_valuesentry)) * dst_positive_scale_row_zero_valuesentrymiddle)) /\ exists ff_q_pvs_row_zero_valuesentrymiddlepositive. dst_positive_code_row_zero_valuesentrymiddle = ff_q_pvs_row_zero_valuesentrymiddlepositive * S ((S (dfg_middle_row_zero_valuesentry)) * dst_positive_scale_row_zero_valuesentrymiddle) + (dst_positive_row_zero_valuesentrymiddle))) /\ (((((exists ff_h_pvs_row_zero_valuesentrymiddlenegative. ff_h_pvs_row_zero_valuesentrymiddlenegative + S (dst_negative_row_zero_valuesentrymiddle) = S ((S (dfg_middle_row_zero_valuesentry)) * dst_negative_scale_row_zero_valuesentrymiddle)) /\ exists ff_q_pvs_row_zero_valuesentrymiddlenegative. dst_negative_code_row_zero_valuesentrymiddle = ff_q_pvs_row_zero_valuesentrymiddlenegative * S ((S (dfg_middle_row_zero_valuesentry)) * dst_negative_scale_row_zero_valuesentrymiddle) + (dst_negative_row_zero_valuesentrymiddle))) /\ (exists ge_balance_positive_row_zero_valuesentrymiddlevalue ge_balance_negative_row_zero_valuesentrymiddlevalue. (((((dfg_value_row_zero_valuesentry) = 2 * (ge_balance_positive_row_zero_valuesentrymiddlevalue) /\ (ge_balance_negative_row_zero_valuesentrymiddlevalue) = 0) \/ exists ge_signed_half_row_zero_valuesentrymiddlevaluedecode. (((dfg_value_row_zero_valuesentry) = 2 * ge_signed_half_row_zero_valuesentrymiddlevaluedecode + 1 /\ (ge_balance_positive_row_zero_valuesentrymiddlevalue) = 0) /\ (ge_balance_negative_row_zero_valuesentrymiddlevalue) = S ge_signed_half_row_zero_valuesentrymiddlevaluedecode))) /\ ((dst_positive_row_zero_valuesentrymiddle) + ge_balance_negative_row_zero_valuesentrymiddlevalue = (dst_negative_row_zero_valuesentrymiddle) + ge_balance_positive_row_zero_valuesentrymiddlevalue))))))))) /\ (exists dfg_inner_row_zero_valuesentryproduct. ((exists sto_ap_row_zero_valuesentryproductinner sto_an_row_zero_valuesentryproductinner sto_bp_row_zero_valuesentryproductinner sto_bn_row_zero_valuesentryproductinner sto_cp_row_zero_valuesentryproductinner sto_cn_row_zero_valuesentryproductinner. (((((dfg_last_row_zero_valuesentry) = 2 * (sto_ap_row_zero_valuesentryproductinner) /\ (sto_an_row_zero_valuesentryproductinner) = 0) \/ exists ge_signed_half_row_zero_valuesentryproductinnerleft. (((dfg_last_row_zero_valuesentry) = 2 * ge_signed_half_row_zero_valuesentryproductinnerleft + 1 /\ (sto_ap_row_zero_valuesentryproductinner) = 0) /\ (sto_an_row_zero_valuesentryproductinner) = S ge_signed_half_row_zero_valuesentryproductinnerleft))) /\ ((((((dfg_value_row_zero_valuesentry) = 2 * (sto_bp_row_zero_valuesentryproductinner) /\ (sto_bn_row_zero_valuesentryproductinner) = 0) \/ exists ge_signed_half_row_zero_valuesentryproductinnerright. (((dfg_value_row_zero_valuesentry) = 2 * ge_signed_half_row_zero_valuesentryproductinnerright + 1 /\ (sto_bp_row_zero_valuesentryproductinner) = 0) /\ (sto_bn_row_zero_valuesentryproductinner) = S ge_signed_half_row_zero_valuesentryproductinnerright))) /\ ((((((dfg_inner_row_zero_valuesentryproduct) = 2 * (sto_cp_row_zero_valuesentryproductinner) /\ (sto_cn_row_zero_valuesentryproductinner) = 0) \/ exists ge_signed_half_row_zero_valuesentryproductinneroutput. (((dfg_inner_row_zero_valuesentryproduct) = 2 * ge_signed_half_row_zero_valuesentryproductinneroutput + 1 /\ (sto_cp_row_zero_valuesentryproductinner) = 0) /\ (sto_cn_row_zero_valuesentryproductinner) = S ge_signed_half_row_zero_valuesentryproductinneroutput))) /\ ((sto_ap_row_zero_valuesentryproductinner * sto_bp_row_zero_valuesentryproductinner + sto_an_row_zero_valuesentryproductinner * sto_bn_row_zero_valuesentryproductinner) + sto_cn_row_zero_valuesentryproductinner = (sto_ap_row_zero_valuesentryproductinner * sto_bn_row_zero_valuesentryproductinner + sto_an_row_zero_valuesentryproductinner * sto_bp_row_zero_valuesentryproductinner) + sto_cp_row_zero_valuesentryproductinner))))))) /\ (exists sto_ap_row_zero_valuesentryproductouter sto_an_row_zero_valuesentryproductouter sto_bp_row_zero_valuesentryproductouter sto_bn_row_zero_valuesentryproductouter sto_cp_row_zero_valuesentryproductouter sto_cn_row_zero_valuesentryproductouter. (((((dfg_first_row_zero_valuesentry) = 2 * (sto_ap_row_zero_valuesentryproductouter) /\ (sto_an_row_zero_valuesentryproductouter) = 0) \/ exists ge_signed_half_row_zero_valuesentryproductouterleft. (((dfg_first_row_zero_valuesentry) = 2 * ge_signed_half_row_zero_valuesentryproductouterleft + 1 /\ (sto_ap_row_zero_valuesentryproductouter) = 0) /\ (sto_an_row_zero_valuesentryproductouter) = S ge_signed_half_row_zero_valuesentryproductouterleft))) /\ ((((((dfg_inner_row_zero_valuesentryproduct) = 2 * (sto_bp_row_zero_valuesentryproductouter) /\ (sto_bn_row_zero_valuesentryproductouter) = 0) \/ exists ge_signed_half_row_zero_valuesentryproductouterright. (((dfg_inner_row_zero_valuesentryproduct) = 2 * ge_signed_half_row_zero_valuesentryproductouterright + 1 /\ (sto_bp_row_zero_valuesentryproductouter) = 0) /\ (sto_bn_row_zero_valuesentryproductouter) = S ge_signed_half_row_zero_valuesentryproductouterright))) /\ ((((((dfg_factor_value_row_zero_values) = 2 * (sto_cp_row_zero_valuesentryproductouter) /\ (sto_cn_row_zero_valuesentryproductouter) = 0) \/ exists ge_signed_half_row_zero_valuesentryproductouteroutput. (((dfg_factor_value_row_zero_values) = 2 * ge_signed_half_row_zero_valuesentryproductouteroutput + 1 /\ (sto_cp_row_zero_valuesentryproductouter) = 0) /\ (sto_cn_row_zero_valuesentryproductouter) = S ge_signed_half_row_zero_valuesentryproductouteroutput))) /\ ((sto_ap_row_zero_valuesentryproductouter * sto_bp_row_zero_valuesentryproductouter + sto_an_row_zero_valuesentryproductouter * sto_bn_row_zero_valuesentryproductouter) + sto_cn_row_zero_valuesentryproductouter = (sto_ap_row_zero_valuesentryproductouter * sto_bn_row_zero_valuesentryproductouter + sto_an_row_zero_valuesentryproductouter * sto_bp_row_zero_valuesentryproductouter) + sto_cp_row_zero_valuesentryproductouter))))))))))))))))))))) \/ ((((a)=0 \/ ((dfg_factor_column_row_zero_values)=0 \/ ~(exists pvs_factor_row_zero_valuesentryomittednondivisor. (n) = ((a)*(dfg_factor_column_row_zero_values)) * pvs_factor_row_zero_valuesentryomittednondivisor))) /\ ((dfg_factor_value_row_zero_values)=0))))))) -> (a=0 \/ ~(exists pvs_factor_row_zero_guard. (n) = (a) * pvs_factor_row_zero_guard)) -> (exists dst_positive_code_row_zero_sum dst_positive_scale_row_zero_sum dst_negative_code_row_zero_sum dst_negative_scale_row_zero_sum dst_positive_sum_row_zero_sum dst_negative_sum_row_zero_sum. (((V) = (((((dst_positive_code_row_zero_sum) + (dst_positive_scale_row_zero_sum)) * S ((dst_positive_code_row_zero_sum) + (dst_positive_scale_row_zero_sum)) + ((dst_positive_scale_row_zero_sum) + (dst_positive_scale_row_zero_sum))) + (((dst_negative_code_row_zero_sum) + (dst_negative_scale_row_zero_sum)) * S ((dst_negative_code_row_zero_sum) + (dst_negative_scale_row_zero_sum)) + ((dst_negative_scale_row_zero_sum) + (dst_negative_scale_row_zero_sum)))) * S ((((dst_positive_code_row_zero_sum) + (dst_positive_scale_row_zero_sum)) * S ((dst_positive_code_row_zero_sum) + (dst_positive_scale_row_zero_sum)) + ((dst_positive_scale_row_zero_sum) + (dst_positive_scale_row_zero_sum))) + (((dst_negative_code_row_zero_sum) + (dst_negative_scale_row_zero_sum)) * S ((dst_negative_code_row_zero_sum) + (dst_negative_scale_row_zero_sum)) + ((dst_negative_scale_row_zero_sum) + (dst_negative_scale_row_zero_sum)))) + ((((dst_negative_code_row_zero_sum) + (dst_negative_scale_row_zero_sum)) * S ((dst_negative_code_row_zero_sum) + (dst_negative_scale_row_zero_sum)) + ((dst_negative_scale_row_zero_sum) + (dst_negative_scale_row_zero_sum))) + (((dst_negative_code_row_zero_sum) + (dst_negative_scale_row_zero_sum)) * S ((dst_negative_code_row_zero_sum) + (dst_negative_scale_row_zero_sum)) + ((dst_negative_scale_row_zero_sum) + (dst_negative_scale_row_zero_sum)))))) /\ (((exists fs_u_dst_row_zero_sumpositive fs_v_dst_row_zero_sumpositive. ((((exists fs_h_dst_row_zero_sumpositive_body_start. fs_h_dst_row_zero_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_row_zero_sumpositive)) /\ exists fs_q_dst_row_zero_sumpositive_body_start. fs_u_dst_row_zero_sumpositive = fs_q_dst_row_zero_sumpositive_body_start * S ((S (0)) * fs_v_dst_row_zero_sumpositive) + (0))) /\ ((((exists fs_h_dst_row_zero_sumpositive_body_terminal. fs_h_dst_row_zero_sumpositive_body_terminal + S (dst_positive_sum_row_zero_sum) = S ((S (S n)) * fs_v_dst_row_zero_sumpositive)) /\ exists fs_q_dst_row_zero_sumpositive_body_terminal. fs_u_dst_row_zero_sumpositive = fs_q_dst_row_zero_sumpositive_body_terminal * S ((S (S n)) * fs_v_dst_row_zero_sumpositive) + (dst_positive_sum_row_zero_sum))) /\ forall fs_i_dst_row_zero_sumpositive_body_steps. (exists fs_lt_dst_row_zero_sumpositive_body_steps_bound. fs_lt_dst_row_zero_sumpositive_body_steps_bound + S fs_i_dst_row_zero_sumpositive_body_steps = S n) -> exists fs_a_dst_row_zero_sumpositive_body_steps fs_r_dst_row_zero_sumpositive_body_steps fs_s_dst_row_zero_sumpositive_body_steps. ((((exists fs_h_dst_row_zero_sumpositive_body_steps_summand. fs_h_dst_row_zero_sumpositive_body_steps_summand + S (fs_a_dst_row_zero_sumpositive_body_steps) = S ((S (fs_i_dst_row_zero_sumpositive_body_steps)) * dst_positive_scale_row_zero_sum)) /\ exists fs_q_dst_row_zero_sumpositive_body_steps_summand. dst_positive_code_row_zero_sum = fs_q_dst_row_zero_sumpositive_body_steps_summand * S ((S (fs_i_dst_row_zero_sumpositive_body_steps)) * dst_positive_scale_row_zero_sum) + (fs_a_dst_row_zero_sumpositive_body_steps))) /\ ((((exists fs_h_dst_row_zero_sumpositive_body_steps_partial. fs_h_dst_row_zero_sumpositive_body_steps_partial + S (fs_r_dst_row_zero_sumpositive_body_steps) = S ((S (fs_i_dst_row_zero_sumpositive_body_steps)) * fs_v_dst_row_zero_sumpositive)) /\ exists fs_q_dst_row_zero_sumpositive_body_steps_partial. fs_u_dst_row_zero_sumpositive = fs_q_dst_row_zero_sumpositive_body_steps_partial * S ((S (fs_i_dst_row_zero_sumpositive_body_steps)) * fs_v_dst_row_zero_sumpositive) + (fs_r_dst_row_zero_sumpositive_body_steps))) /\ ((((exists fs_h_dst_row_zero_sumpositive_body_steps_successor. fs_h_dst_row_zero_sumpositive_body_steps_successor + S (fs_s_dst_row_zero_sumpositive_body_steps) = S ((S (S fs_i_dst_row_zero_sumpositive_body_steps)) * fs_v_dst_row_zero_sumpositive)) /\ exists fs_q_dst_row_zero_sumpositive_body_steps_successor. fs_u_dst_row_zero_sumpositive = fs_q_dst_row_zero_sumpositive_body_steps_successor * S ((S (S fs_i_dst_row_zero_sumpositive_body_steps)) * fs_v_dst_row_zero_sumpositive) + (fs_s_dst_row_zero_sumpositive_body_steps))) /\ fs_s_dst_row_zero_sumpositive_body_steps = fs_r_dst_row_zero_sumpositive_body_steps + fs_a_dst_row_zero_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_row_zero_sumnegative fs_v_dst_row_zero_sumnegative. ((((exists fs_h_dst_row_zero_sumnegative_body_start. fs_h_dst_row_zero_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_row_zero_sumnegative)) /\ exists fs_q_dst_row_zero_sumnegative_body_start. fs_u_dst_row_zero_sumnegative = fs_q_dst_row_zero_sumnegative_body_start * S ((S (0)) * fs_v_dst_row_zero_sumnegative) + (0))) /\ ((((exists fs_h_dst_row_zero_sumnegative_body_terminal. fs_h_dst_row_zero_sumnegative_body_terminal + S (dst_negative_sum_row_zero_sum) = S ((S (S n)) * fs_v_dst_row_zero_sumnegative)) /\ exists fs_q_dst_row_zero_sumnegative_body_terminal. fs_u_dst_row_zero_sumnegative = fs_q_dst_row_zero_sumnegative_body_terminal * S ((S (S n)) * fs_v_dst_row_zero_sumnegative) + (dst_negative_sum_row_zero_sum))) /\ forall fs_i_dst_row_zero_sumnegative_body_steps. (exists fs_lt_dst_row_zero_sumnegative_body_steps_bound. fs_lt_dst_row_zero_sumnegative_body_steps_bound + S fs_i_dst_row_zero_sumnegative_body_steps = S n) -> exists fs_a_dst_row_zero_sumnegative_body_steps fs_r_dst_row_zero_sumnegative_body_steps fs_s_dst_row_zero_sumnegative_body_steps. ((((exists fs_h_dst_row_zero_sumnegative_body_steps_summand. fs_h_dst_row_zero_sumnegative_body_steps_summand + S (fs_a_dst_row_zero_sumnegative_body_steps) = S ((S (fs_i_dst_row_zero_sumnegative_body_steps)) * dst_negative_scale_row_zero_sum)) /\ exists fs_q_dst_row_zero_sumnegative_body_steps_summand. dst_negative_code_row_zero_sum = fs_q_dst_row_zero_sumnegative_body_steps_summand * S ((S (fs_i_dst_row_zero_sumnegative_body_steps)) * dst_negative_scale_row_zero_sum) + (fs_a_dst_row_zero_sumnegative_body_steps))) /\ ((((exists fs_h_dst_row_zero_sumnegative_body_steps_partial. fs_h_dst_row_zero_sumnegative_body_steps_partial + S (fs_r_dst_row_zero_sumnegative_body_steps) = S ((S (fs_i_dst_row_zero_sumnegative_body_steps)) * fs_v_dst_row_zero_sumnegative)) /\ exists fs_q_dst_row_zero_sumnegative_body_steps_partial. fs_u_dst_row_zero_sumnegative = fs_q_dst_row_zero_sumnegative_body_steps_partial * S ((S (fs_i_dst_row_zero_sumnegative_body_steps)) * fs_v_dst_row_zero_sumnegative) + (fs_r_dst_row_zero_sumnegative_body_steps))) /\ ((((exists fs_h_dst_row_zero_sumnegative_body_steps_successor. fs_h_dst_row_zero_sumnegative_body_steps_successor + S (fs_s_dst_row_zero_sumnegative_body_steps) = S ((S (S fs_i_dst_row_zero_sumnegative_body_steps)) * fs_v_dst_row_zero_sumnegative)) /\ exists fs_q_dst_row_zero_sumnegative_body_steps_successor. fs_u_dst_row_zero_sumnegative = fs_q_dst_row_zero_sumnegative_body_steps_successor * S ((S (S fs_i_dst_row_zero_sumnegative_body_steps)) * fs_v_dst_row_zero_sumnegative) + (fs_s_dst_row_zero_sumnegative_body_steps))) /\ fs_s_dst_row_zero_sumnegative_body_steps = fs_r_dst_row_zero_sumnegative_body_steps + fs_a_dst_row_zero_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_row_zero_sumresult ge_balance_negative_row_zero_sumresult. (((((z) = 2 * (ge_balance_positive_row_zero_sumresult) /\ (ge_balance_negative_row_zero_sumresult) = 0) \/ exists ge_signed_half_row_zero_sumresultdecode. (((z) = 2 * ge_signed_half_row_zero_sumresultdecode + 1 /\ (ge_balance_positive_row_zero_sumresult) = 0) /\ (ge_balance_negative_row_zero_sumresult) = S ge_signed_half_row_zero_sumresultdecode))) /\ ((dst_positive_sum_row_zero_sum) + ge_balance_negative_row_zero_sumresult = (dst_negative_sum_row_zero_sum) + ge_balance_positive_row_zero_sumresult))))))))) -> z=0Complete tactic proof in conservative notation
All 38 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
38 script commands · 6 reading checkpoints · 0 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 (1)
01Fix variables and assumptionsL1–10
02Use earlier factsL11–14
03Fix variables and assumptionsL15–19
04Use earlier factsL20–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
specialize dirichlet_grid_nondivisor_row_value_zero (F) - L21
specialize dirichlet_grid_nondivisor_row_value_zero (G) - L22
specialize dirichlet_grid_nondivisor_row_value_zero (H) - L23
specialize dirichlet_grid_nondivisor_row_value_zero (n) - L24
specialize dirichlet_grid_nondivisor_row_value_zero (a) - L25
specialize dirichlet_grid_nondivisor_row_value_zero (i) - L26
specialize dirichlet_grid_nondivisor_row_value_zero (w) - L27
apply dirichlet_grid_nondivisor_row_value_zero - L28
exact ho
05Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
cases hr
06Use earlier factsL30–38
Original defined command ledger · 38 lines
- 0001
intro F - 0002
intro G - 0003
intro H - 0004
intro n - 0005
intro a - 0006
intro V - 0007
intro z - 0008
intro hr - 0009
intro ho - 0010
intro hs - 0011
specialize signed_prefix_sum_zero_value (V) - 0012
specialize signed_prefix_sum_zero_value (S n) - 0013
specialize signed_prefix_sum_zero_value (z) - 0014
apply signed_prefix_sum_zero_value - 0015
intro i - 0016
intro w - 0017
intro hzero - 0018
intro hi - 0019
intro hw - 0020
specialize dirichlet_grid_nondivisor_row_value_zero (F) - 0021
specialize dirichlet_grid_nondivisor_row_value_zero (G) - 0022
specialize dirichlet_grid_nondivisor_row_value_zero (H) - 0023
specialize dirichlet_grid_nondivisor_row_value_zero (n) - 0024
specialize dirichlet_grid_nondivisor_row_value_zero (a) - 0025
specialize dirichlet_grid_nondivisor_row_value_zero (i) - 0026
specialize dirichlet_grid_nondivisor_row_value_zero (w) - 0027
apply dirichlet_grid_nondivisor_row_value_zero - 0028
exact ho - 0029
cases hr - 0030
specialize hr_right (i) - 0031
specialize hr_right (w) - 0032
apply hr_right - 0033
specialize le_of_succ_le_succ (i) - 0034
specialize le_of_succ_le_succ (n) - 0035
apply le_of_succ_le_succ - 0036
exact hi - 0037
exact hw - 0038
exact hs