WS001F

signed_weighted_sum_exists

Construct the actual pointwise product table and both natural prefix-sum histories, then their canonical signed weighted-sum value.

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.

Operation tables contain actual beta-coded entries and compare represented signed values, not encodings. The strict sum window is i<l and the separately certified endpoint i=l is unused. Rectangular Fubini and full finite signed Möbius inversion are separate, now-admitted families.

Exact theorem in conservative defined notation

∀ l. ∀ W. ∀ F. ArithTable(l,W)ArithTable(l,F) → ∃ x. SignedWeightedSum(W,F,l,x)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall l W F. (exists dst_positive_code_weighted_exists_weights dst_positive_scale_weighted_exists_weights dst_negative_code_weighted_exists_weights dst_negative_scale_weighted_exists_weights. (((W) = (((((dst_positive_code_weighted_exists_weights) + (dst_positive_scale_weighted_exists_weights)) * S ((dst_positive_code_weighted_exists_weights) + (dst_positive_scale_weighted_exists_weights)) + ((dst_positive_scale_weighted_exists_weights) + (dst_positive_scale_weighted_exists_weights))) + (((dst_negative_code_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)) * S ((dst_negative_code_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)) + ((dst_negative_scale_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)))) * S ((((dst_positive_code_weighted_exists_weights) + (dst_positive_scale_weighted_exists_weights)) * S ((dst_positive_code_weighted_exists_weights) + (dst_positive_scale_weighted_exists_weights)) + ((dst_positive_scale_weighted_exists_weights) + (dst_positive_scale_weighted_exists_weights))) + (((dst_negative_code_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)) * S ((dst_negative_code_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)) + ((dst_negative_scale_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)))) + ((((dst_negative_code_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)) * S ((dst_negative_code_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)) + ((dst_negative_scale_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights))) + (((dst_negative_code_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)) * S ((dst_negative_code_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)) + ((dst_negative_scale_weighted_exists_weights) + (dst_negative_scale_weighted_exists_weights)))))) /\ (forall dst_index_weighted_exists_weights. (exists pvs_le_gap_weighted_exists_weightsdomain. pvs_le_gap_weighted_exists_weightsdomain + (dst_index_weighted_exists_weights) = (l)) -> exists dst_positive_weighted_exists_weights dst_negative_weighted_exists_weights dst_value_weighted_exists_weights. ((((exists ff_h_pvs_weighted_exists_weightsentrypositive. ff_h_pvs_weighted_exists_weightsentrypositive + S (dst_positive_weighted_exists_weights) = S ((S (dst_index_weighted_exists_weights)) * dst_positive_scale_weighted_exists_weights)) /\ exists ff_q_pvs_weighted_exists_weightsentrypositive. dst_positive_code_weighted_exists_weights = ff_q_pvs_weighted_exists_weightsentrypositive * S ((S (dst_index_weighted_exists_weights)) * dst_positive_scale_weighted_exists_weights) + (dst_positive_weighted_exists_weights))) /\ (((((exists ff_h_pvs_weighted_exists_weightsentrynegative. ff_h_pvs_weighted_exists_weightsentrynegative + S (dst_negative_weighted_exists_weights) = S ((S (dst_index_weighted_exists_weights)) * dst_negative_scale_weighted_exists_weights)) /\ exists ff_q_pvs_weighted_exists_weightsentrynegative. dst_negative_code_weighted_exists_weights = ff_q_pvs_weighted_exists_weightsentrynegative * S ((S (dst_index_weighted_exists_weights)) * dst_negative_scale_weighted_exists_weights) + (dst_negative_weighted_exists_weights))) /\ (exists ge_balance_positive_weighted_exists_weightsentryvalue ge_balance_negative_weighted_exists_weightsentryvalue. (((((dst_value_weighted_exists_weights) = 2 * (ge_balance_positive_weighted_exists_weightsentryvalue) /\ (ge_balance_negative_weighted_exists_weightsentryvalue) = 0) \/ exists ge_signed_half_weighted_exists_weightsentryvaluedecode. (((dst_value_weighted_exists_weights) = 2 * ge_signed_half_weighted_exists_weightsentryvaluedecode + 1 /\ (ge_balance_positive_weighted_exists_weightsentryvalue) = 0) /\ (ge_balance_negative_weighted_exists_weightsentryvalue) = S ge_signed_half_weighted_exists_weightsentryvaluedecode))) /\ ((dst_positive_weighted_exists_weights) + ge_balance_negative_weighted_exists_weightsentryvalue = (dst_negative_weighted_exists_weights) + ge_balance_positive_weighted_exists_weightsentryvalue))))))))) -> (exists dst_positive_code_weighted_exists_values dst_positive_scale_weighted_exists_values dst_negative_code_weighted_exists_values dst_negative_scale_weighted_exists_values. (((F) = (((((dst_positive_code_weighted_exists_values) + (dst_positive_scale_weighted_exists_values)) * S ((dst_positive_code_weighted_exists_values) + (dst_positive_scale_weighted_exists_values)) + ((dst_positive_scale_weighted_exists_values) + (dst_positive_scale_weighted_exists_values))) + (((dst_negative_code_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)) * S ((dst_negative_code_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)) + ((dst_negative_scale_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)))) * S ((((dst_positive_code_weighted_exists_values) + (dst_positive_scale_weighted_exists_values)) * S ((dst_positive_code_weighted_exists_values) + (dst_positive_scale_weighted_exists_values)) + ((dst_positive_scale_weighted_exists_values) + (dst_positive_scale_weighted_exists_values))) + (((dst_negative_code_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)) * S ((dst_negative_code_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)) + ((dst_negative_scale_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)))) + ((((dst_negative_code_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)) * S ((dst_negative_code_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)) + ((dst_negative_scale_weighted_exists_values) + (dst_negative_scale_weighted_exists_values))) + (((dst_negative_code_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)) * S ((dst_negative_code_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)) + ((dst_negative_scale_weighted_exists_values) + (dst_negative_scale_weighted_exists_values)))))) /\ (forall dst_index_weighted_exists_values. (exists pvs_le_gap_weighted_exists_valuesdomain. pvs_le_gap_weighted_exists_valuesdomain + (dst_index_weighted_exists_values) = (l)) -> exists dst_positive_weighted_exists_values dst_negative_weighted_exists_values dst_value_weighted_exists_values. ((((exists ff_h_pvs_weighted_exists_valuesentrypositive. ff_h_pvs_weighted_exists_valuesentrypositive + S (dst_positive_weighted_exists_values) = S ((S (dst_index_weighted_exists_values)) * dst_positive_scale_weighted_exists_values)) /\ exists ff_q_pvs_weighted_exists_valuesentrypositive. dst_positive_code_weighted_exists_values = ff_q_pvs_weighted_exists_valuesentrypositive * S ((S (dst_index_weighted_exists_values)) * dst_positive_scale_weighted_exists_values) + (dst_positive_weighted_exists_values))) /\ (((((exists ff_h_pvs_weighted_exists_valuesentrynegative. ff_h_pvs_weighted_exists_valuesentrynegative + S (dst_negative_weighted_exists_values) = S ((S (dst_index_weighted_exists_values)) * dst_negative_scale_weighted_exists_values)) /\ exists ff_q_pvs_weighted_exists_valuesentrynegative. dst_negative_code_weighted_exists_values = ff_q_pvs_weighted_exists_valuesentrynegative * S ((S (dst_index_weighted_exists_values)) * dst_negative_scale_weighted_exists_values) + (dst_negative_weighted_exists_values))) /\ (exists ge_balance_positive_weighted_exists_valuesentryvalue ge_balance_negative_weighted_exists_valuesentryvalue. (((((dst_value_weighted_exists_values) = 2 * (ge_balance_positive_weighted_exists_valuesentryvalue) /\ (ge_balance_negative_weighted_exists_valuesentryvalue) = 0) \/ exists ge_signed_half_weighted_exists_valuesentryvaluedecode. (((dst_value_weighted_exists_values) = 2 * ge_signed_half_weighted_exists_valuesentryvaluedecode + 1 /\ (ge_balance_positive_weighted_exists_valuesentryvalue) = 0) /\ (ge_balance_negative_weighted_exists_valuesentryvalue) = S ge_signed_half_weighted_exists_valuesentryvaluedecode))) /\ ((dst_positive_weighted_exists_values) + ge_balance_negative_weighted_exists_valuesentryvalue = (dst_negative_weighted_exists_values) + ge_balance_positive_weighted_exists_valuesentryvalue))))))))) -> exists z. (exists sws_product_table_weighted_exists_result. ((((exists dst_positive_code_weighted_exists_resultproductsleft_table dst_positive_scale_weighted_exists_resultproductsleft_table dst_negative_code_weighted_exists_resultproductsleft_table dst_negative_scale_weighted_exists_resultproductsleft_table. (((W) = (((((dst_positive_code_weighted_exists_resultproductsleft_table) + (dst_positive_scale_weighted_exists_resultproductsleft_table)) * S ((dst_positive_code_weighted_exists_resultproductsleft_table) + (dst_positive_scale_weighted_exists_resultproductsleft_table)) + ((dst_positive_scale_weighted_exists_resultproductsleft_table) + (dst_positive_scale_weighted_exists_resultproductsleft_table))) + (((dst_negative_code_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)) * S ((dst_negative_code_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)) + ((dst_negative_scale_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)))) * S ((((dst_positive_code_weighted_exists_resultproductsleft_table) + (dst_positive_scale_weighted_exists_resultproductsleft_table)) * S ((dst_positive_code_weighted_exists_resultproductsleft_table) + (dst_positive_scale_weighted_exists_resultproductsleft_table)) + ((dst_positive_scale_weighted_exists_resultproductsleft_table) + (dst_positive_scale_weighted_exists_resultproductsleft_table))) + (((dst_negative_code_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)) * S ((dst_negative_code_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)) + ((dst_negative_scale_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)))) + ((((dst_negative_code_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)) * S ((dst_negative_code_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)) + ((dst_negative_scale_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table))) + (((dst_negative_code_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)) * S ((dst_negative_code_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)) + ((dst_negative_scale_weighted_exists_resultproductsleft_table) + (dst_negative_scale_weighted_exists_resultproductsleft_table)))))) /\ (forall dst_index_weighted_exists_resultproductsleft_table. (exists pvs_le_gap_weighted_exists_resultproductsleft_tabledomain. pvs_le_gap_weighted_exists_resultproductsleft_tabledomain + (dst_index_weighted_exists_resultproductsleft_table) = (l)) -> exists dst_positive_weighted_exists_resultproductsleft_table dst_negative_weighted_exists_resultproductsleft_table dst_value_weighted_exists_resultproductsleft_table. ((((exists ff_h_pvs_weighted_exists_resultproductsleft_tableentrypositive. ff_h_pvs_weighted_exists_resultproductsleft_tableentrypositive + S (dst_positive_weighted_exists_resultproductsleft_table) = S ((S (dst_index_weighted_exists_resultproductsleft_table)) * dst_positive_scale_weighted_exists_resultproductsleft_table)) /\ exists ff_q_pvs_weighted_exists_resultproductsleft_tableentrypositive. dst_positive_code_weighted_exists_resultproductsleft_table = ff_q_pvs_weighted_exists_resultproductsleft_tableentrypositive * S ((S (dst_index_weighted_exists_resultproductsleft_table)) * dst_positive_scale_weighted_exists_resultproductsleft_table) + (dst_positive_weighted_exists_resultproductsleft_table))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsleft_tableentrynegative. ff_h_pvs_weighted_exists_resultproductsleft_tableentrynegative + S (dst_negative_weighted_exists_resultproductsleft_table) = S ((S (dst_index_weighted_exists_resultproductsleft_table)) * dst_negative_scale_weighted_exists_resultproductsleft_table)) /\ exists ff_q_pvs_weighted_exists_resultproductsleft_tableentrynegative. dst_negative_code_weighted_exists_resultproductsleft_table = ff_q_pvs_weighted_exists_resultproductsleft_tableentrynegative * S ((S (dst_index_weighted_exists_resultproductsleft_table)) * dst_negative_scale_weighted_exists_resultproductsleft_table) + (dst_negative_weighted_exists_resultproductsleft_table))) /\ (exists ge_balance_positive_weighted_exists_resultproductsleft_tableentryvalue ge_balance_negative_weighted_exists_resultproductsleft_tableentryvalue. (((((dst_value_weighted_exists_resultproductsleft_table) = 2 * (ge_balance_positive_weighted_exists_resultproductsleft_tableentryvalue) /\ (ge_balance_negative_weighted_exists_resultproductsleft_tableentryvalue) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsleft_tableentryvaluedecode. (((dst_value_weighted_exists_resultproductsleft_table) = 2 * ge_signed_half_weighted_exists_resultproductsleft_tableentryvaluedecode + 1 /\ (ge_balance_positive_weighted_exists_resultproductsleft_tableentryvalue) = 0) /\ (ge_balance_negative_weighted_exists_resultproductsleft_tableentryvalue) = S ge_signed_half_weighted_exists_resultproductsleft_tableentryvaluedecode))) /\ ((dst_positive_weighted_exists_resultproductsleft_table) + ge_balance_negative_weighted_exists_resultproductsleft_tableentryvalue = (dst_negative_weighted_exists_resultproductsleft_table) + ge_balance_positive_weighted_exists_resultproductsleft_tableentryvalue))))))))) /\ (((exists dst_positive_code_weighted_exists_resultproductsright_table dst_positive_scale_weighted_exists_resultproductsright_table dst_negative_code_weighted_exists_resultproductsright_table dst_negative_scale_weighted_exists_resultproductsright_table. (((F) = (((((dst_positive_code_weighted_exists_resultproductsright_table) + (dst_positive_scale_weighted_exists_resultproductsright_table)) * S ((dst_positive_code_weighted_exists_resultproductsright_table) + (dst_positive_scale_weighted_exists_resultproductsright_table)) + ((dst_positive_scale_weighted_exists_resultproductsright_table) + (dst_positive_scale_weighted_exists_resultproductsright_table))) + (((dst_negative_code_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)) * S ((dst_negative_code_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)) + ((dst_negative_scale_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)))) * S ((((dst_positive_code_weighted_exists_resultproductsright_table) + (dst_positive_scale_weighted_exists_resultproductsright_table)) * S ((dst_positive_code_weighted_exists_resultproductsright_table) + (dst_positive_scale_weighted_exists_resultproductsright_table)) + ((dst_positive_scale_weighted_exists_resultproductsright_table) + (dst_positive_scale_weighted_exists_resultproductsright_table))) + (((dst_negative_code_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)) * S ((dst_negative_code_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)) + ((dst_negative_scale_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)))) + ((((dst_negative_code_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)) * S ((dst_negative_code_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)) + ((dst_negative_scale_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table))) + (((dst_negative_code_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)) * S ((dst_negative_code_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)) + ((dst_negative_scale_weighted_exists_resultproductsright_table) + (dst_negative_scale_weighted_exists_resultproductsright_table)))))) /\ (forall dst_index_weighted_exists_resultproductsright_table. (exists pvs_le_gap_weighted_exists_resultproductsright_tabledomain. pvs_le_gap_weighted_exists_resultproductsright_tabledomain + (dst_index_weighted_exists_resultproductsright_table) = (l)) -> exists dst_positive_weighted_exists_resultproductsright_table dst_negative_weighted_exists_resultproductsright_table dst_value_weighted_exists_resultproductsright_table. ((((exists ff_h_pvs_weighted_exists_resultproductsright_tableentrypositive. ff_h_pvs_weighted_exists_resultproductsright_tableentrypositive + S (dst_positive_weighted_exists_resultproductsright_table) = S ((S (dst_index_weighted_exists_resultproductsright_table)) * dst_positive_scale_weighted_exists_resultproductsright_table)) /\ exists ff_q_pvs_weighted_exists_resultproductsright_tableentrypositive. dst_positive_code_weighted_exists_resultproductsright_table = ff_q_pvs_weighted_exists_resultproductsright_tableentrypositive * S ((S (dst_index_weighted_exists_resultproductsright_table)) * dst_positive_scale_weighted_exists_resultproductsright_table) + (dst_positive_weighted_exists_resultproductsright_table))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsright_tableentrynegative. ff_h_pvs_weighted_exists_resultproductsright_tableentrynegative + S (dst_negative_weighted_exists_resultproductsright_table) = S ((S (dst_index_weighted_exists_resultproductsright_table)) * dst_negative_scale_weighted_exists_resultproductsright_table)) /\ exists ff_q_pvs_weighted_exists_resultproductsright_tableentrynegative. dst_negative_code_weighted_exists_resultproductsright_table = ff_q_pvs_weighted_exists_resultproductsright_tableentrynegative * S ((S (dst_index_weighted_exists_resultproductsright_table)) * dst_negative_scale_weighted_exists_resultproductsright_table) + (dst_negative_weighted_exists_resultproductsright_table))) /\ (exists ge_balance_positive_weighted_exists_resultproductsright_tableentryvalue ge_balance_negative_weighted_exists_resultproductsright_tableentryvalue. (((((dst_value_weighted_exists_resultproductsright_table) = 2 * (ge_balance_positive_weighted_exists_resultproductsright_tableentryvalue) /\ (ge_balance_negative_weighted_exists_resultproductsright_tableentryvalue) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsright_tableentryvaluedecode. (((dst_value_weighted_exists_resultproductsright_table) = 2 * ge_signed_half_weighted_exists_resultproductsright_tableentryvaluedecode + 1 /\ (ge_balance_positive_weighted_exists_resultproductsright_tableentryvalue) = 0) /\ (ge_balance_negative_weighted_exists_resultproductsright_tableentryvalue) = S ge_signed_half_weighted_exists_resultproductsright_tableentryvaluedecode))) /\ ((dst_positive_weighted_exists_resultproductsright_table) + ge_balance_negative_weighted_exists_resultproductsright_tableentryvalue = (dst_negative_weighted_exists_resultproductsright_table) + ge_balance_positive_weighted_exists_resultproductsright_tableentryvalue))))))))) /\ (((exists dst_positive_code_weighted_exists_resultproductsoutput_table dst_positive_scale_weighted_exists_resultproductsoutput_table dst_negative_code_weighted_exists_resultproductsoutput_table dst_negative_scale_weighted_exists_resultproductsoutput_table. (((sws_product_table_weighted_exists_result) = (((((dst_positive_code_weighted_exists_resultproductsoutput_table) + (dst_positive_scale_weighted_exists_resultproductsoutput_table)) * S ((dst_positive_code_weighted_exists_resultproductsoutput_table) + (dst_positive_scale_weighted_exists_resultproductsoutput_table)) + ((dst_positive_scale_weighted_exists_resultproductsoutput_table) + (dst_positive_scale_weighted_exists_resultproductsoutput_table))) + (((dst_negative_code_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)) * S ((dst_negative_code_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)) + ((dst_negative_scale_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)))) * S ((((dst_positive_code_weighted_exists_resultproductsoutput_table) + (dst_positive_scale_weighted_exists_resultproductsoutput_table)) * S ((dst_positive_code_weighted_exists_resultproductsoutput_table) + (dst_positive_scale_weighted_exists_resultproductsoutput_table)) + ((dst_positive_scale_weighted_exists_resultproductsoutput_table) + (dst_positive_scale_weighted_exists_resultproductsoutput_table))) + (((dst_negative_code_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)) * S ((dst_negative_code_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)) + ((dst_negative_scale_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)))) + ((((dst_negative_code_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)) * S ((dst_negative_code_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)) + ((dst_negative_scale_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table))) + (((dst_negative_code_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)) * S ((dst_negative_code_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)) + ((dst_negative_scale_weighted_exists_resultproductsoutput_table) + (dst_negative_scale_weighted_exists_resultproductsoutput_table)))))) /\ (forall dst_index_weighted_exists_resultproductsoutput_table. (exists pvs_le_gap_weighted_exists_resultproductsoutput_tabledomain. pvs_le_gap_weighted_exists_resultproductsoutput_tabledomain + (dst_index_weighted_exists_resultproductsoutput_table) = (l)) -> exists dst_positive_weighted_exists_resultproductsoutput_table dst_negative_weighted_exists_resultproductsoutput_table dst_value_weighted_exists_resultproductsoutput_table. ((((exists ff_h_pvs_weighted_exists_resultproductsoutput_tableentrypositive. ff_h_pvs_weighted_exists_resultproductsoutput_tableentrypositive + S (dst_positive_weighted_exists_resultproductsoutput_table) = S ((S (dst_index_weighted_exists_resultproductsoutput_table)) * dst_positive_scale_weighted_exists_resultproductsoutput_table)) /\ exists ff_q_pvs_weighted_exists_resultproductsoutput_tableentrypositive. dst_positive_code_weighted_exists_resultproductsoutput_table = ff_q_pvs_weighted_exists_resultproductsoutput_tableentrypositive * S ((S (dst_index_weighted_exists_resultproductsoutput_table)) * dst_positive_scale_weighted_exists_resultproductsoutput_table) + (dst_positive_weighted_exists_resultproductsoutput_table))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsoutput_tableentrynegative. ff_h_pvs_weighted_exists_resultproductsoutput_tableentrynegative + S (dst_negative_weighted_exists_resultproductsoutput_table) = S ((S (dst_index_weighted_exists_resultproductsoutput_table)) * dst_negative_scale_weighted_exists_resultproductsoutput_table)) /\ exists ff_q_pvs_weighted_exists_resultproductsoutput_tableentrynegative. dst_negative_code_weighted_exists_resultproductsoutput_table = ff_q_pvs_weighted_exists_resultproductsoutput_tableentrynegative * S ((S (dst_index_weighted_exists_resultproductsoutput_table)) * dst_negative_scale_weighted_exists_resultproductsoutput_table) + (dst_negative_weighted_exists_resultproductsoutput_table))) /\ (exists ge_balance_positive_weighted_exists_resultproductsoutput_tableentryvalue ge_balance_negative_weighted_exists_resultproductsoutput_tableentryvalue. (((((dst_value_weighted_exists_resultproductsoutput_table) = 2 * (ge_balance_positive_weighted_exists_resultproductsoutput_tableentryvalue) /\ (ge_balance_negative_weighted_exists_resultproductsoutput_tableentryvalue) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsoutput_tableentryvaluedecode. (((dst_value_weighted_exists_resultproductsoutput_table) = 2 * ge_signed_half_weighted_exists_resultproductsoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_weighted_exists_resultproductsoutput_tableentryvalue) = 0) /\ (ge_balance_negative_weighted_exists_resultproductsoutput_tableentryvalue) = S ge_signed_half_weighted_exists_resultproductsoutput_tableentryvaluedecode))) /\ ((dst_positive_weighted_exists_resultproductsoutput_table) + ge_balance_negative_weighted_exists_resultproductsoutput_tableentryvalue = (dst_negative_weighted_exists_resultproductsoutput_table) + ge_balance_positive_weighted_exists_resultproductsoutput_tableentryvalue))))))))) /\ (forall sto_index_weighted_exists_resultproductsentries. (exists pvs_gap_weighted_exists_resultproductsentriesbound. pvs_gap_weighted_exists_resultproductsentriesbound + S (sto_index_weighted_exists_resultproductsentries) = (l)) -> exists sto_left_weighted_exists_resultproductsentries sto_right_weighted_exists_resultproductsentries sto_output_weighted_exists_resultproductsentries. ((exists dst_positive_code_weighted_exists_resultproductsentriesentryleft dst_positive_scale_weighted_exists_resultproductsentriesentryleft dst_negative_code_weighted_exists_resultproductsentriesentryleft dst_negative_scale_weighted_exists_resultproductsentriesentryleft dst_positive_weighted_exists_resultproductsentriesentryleft dst_negative_weighted_exists_resultproductsentriesentryleft. (((W) = (((((dst_positive_code_weighted_exists_resultproductsentriesentryleft) + (dst_positive_scale_weighted_exists_resultproductsentriesentryleft)) * S ((dst_positive_code_weighted_exists_resultproductsentriesentryleft) + (dst_positive_scale_weighted_exists_resultproductsentriesentryleft)) + ((dst_positive_scale_weighted_exists_resultproductsentriesentryleft) + (dst_positive_scale_weighted_exists_resultproductsentriesentryleft))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)))) * S ((((dst_positive_code_weighted_exists_resultproductsentriesentryleft) + (dst_positive_scale_weighted_exists_resultproductsentriesentryleft)) * S ((dst_positive_code_weighted_exists_resultproductsentriesentryleft) + (dst_positive_scale_weighted_exists_resultproductsentriesentryleft)) + ((dst_positive_scale_weighted_exists_resultproductsentriesentryleft) + (dst_positive_scale_weighted_exists_resultproductsentriesentryleft))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)))) + ((((dst_negative_code_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryleft) + (dst_negative_scale_weighted_exists_resultproductsentriesentryleft)))))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsentriesentryleftpositive. ff_h_pvs_weighted_exists_resultproductsentriesentryleftpositive + S (dst_positive_weighted_exists_resultproductsentriesentryleft) = S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_positive_scale_weighted_exists_resultproductsentriesentryleft)) /\ exists ff_q_pvs_weighted_exists_resultproductsentriesentryleftpositive. dst_positive_code_weighted_exists_resultproductsentriesentryleft = ff_q_pvs_weighted_exists_resultproductsentriesentryleftpositive * S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_positive_scale_weighted_exists_resultproductsentriesentryleft) + (dst_positive_weighted_exists_resultproductsentriesentryleft))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsentriesentryleftnegative. ff_h_pvs_weighted_exists_resultproductsentriesentryleftnegative + S (dst_negative_weighted_exists_resultproductsentriesentryleft) = S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_negative_scale_weighted_exists_resultproductsentriesentryleft)) /\ exists ff_q_pvs_weighted_exists_resultproductsentriesentryleftnegative. dst_negative_code_weighted_exists_resultproductsentriesentryleft = ff_q_pvs_weighted_exists_resultproductsentriesentryleftnegative * S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_negative_scale_weighted_exists_resultproductsentriesentryleft) + (dst_negative_weighted_exists_resultproductsentriesentryleft))) /\ (exists ge_balance_positive_weighted_exists_resultproductsentriesentryleftvalue ge_balance_negative_weighted_exists_resultproductsentriesentryleftvalue. (((((sto_left_weighted_exists_resultproductsentries) = 2 * (ge_balance_positive_weighted_exists_resultproductsentriesentryleftvalue) /\ (ge_balance_negative_weighted_exists_resultproductsentriesentryleftvalue) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsentriesentryleftvaluedecode. (((sto_left_weighted_exists_resultproductsentries) = 2 * ge_signed_half_weighted_exists_resultproductsentriesentryleftvaluedecode + 1 /\ (ge_balance_positive_weighted_exists_resultproductsentriesentryleftvalue) = 0) /\ (ge_balance_negative_weighted_exists_resultproductsentriesentryleftvalue) = S ge_signed_half_weighted_exists_resultproductsentriesentryleftvaluedecode))) /\ ((dst_positive_weighted_exists_resultproductsentriesentryleft) + ge_balance_negative_weighted_exists_resultproductsentriesentryleftvalue = (dst_negative_weighted_exists_resultproductsentriesentryleft) + ge_balance_positive_weighted_exists_resultproductsentriesentryleftvalue))))))))) /\ (((exists dst_positive_code_weighted_exists_resultproductsentriesentryright dst_positive_scale_weighted_exists_resultproductsentriesentryright dst_negative_code_weighted_exists_resultproductsentriesentryright dst_negative_scale_weighted_exists_resultproductsentriesentryright dst_positive_weighted_exists_resultproductsentriesentryright dst_negative_weighted_exists_resultproductsentriesentryright. (((F) = (((((dst_positive_code_weighted_exists_resultproductsentriesentryright) + (dst_positive_scale_weighted_exists_resultproductsentriesentryright)) * S ((dst_positive_code_weighted_exists_resultproductsentriesentryright) + (dst_positive_scale_weighted_exists_resultproductsentriesentryright)) + ((dst_positive_scale_weighted_exists_resultproductsentriesentryright) + (dst_positive_scale_weighted_exists_resultproductsentriesentryright))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)))) * S ((((dst_positive_code_weighted_exists_resultproductsentriesentryright) + (dst_positive_scale_weighted_exists_resultproductsentriesentryright)) * S ((dst_positive_code_weighted_exists_resultproductsentriesentryright) + (dst_positive_scale_weighted_exists_resultproductsentriesentryright)) + ((dst_positive_scale_weighted_exists_resultproductsentriesentryright) + (dst_positive_scale_weighted_exists_resultproductsentriesentryright))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)))) + ((((dst_negative_code_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryright) + (dst_negative_scale_weighted_exists_resultproductsentriesentryright)))))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsentriesentryrightpositive. ff_h_pvs_weighted_exists_resultproductsentriesentryrightpositive + S (dst_positive_weighted_exists_resultproductsentriesentryright) = S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_positive_scale_weighted_exists_resultproductsentriesentryright)) /\ exists ff_q_pvs_weighted_exists_resultproductsentriesentryrightpositive. dst_positive_code_weighted_exists_resultproductsentriesentryright = ff_q_pvs_weighted_exists_resultproductsentriesentryrightpositive * S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_positive_scale_weighted_exists_resultproductsentriesentryright) + (dst_positive_weighted_exists_resultproductsentriesentryright))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsentriesentryrightnegative. ff_h_pvs_weighted_exists_resultproductsentriesentryrightnegative + S (dst_negative_weighted_exists_resultproductsentriesentryright) = S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_negative_scale_weighted_exists_resultproductsentriesentryright)) /\ exists ff_q_pvs_weighted_exists_resultproductsentriesentryrightnegative. dst_negative_code_weighted_exists_resultproductsentriesentryright = ff_q_pvs_weighted_exists_resultproductsentriesentryrightnegative * S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_negative_scale_weighted_exists_resultproductsentriesentryright) + (dst_negative_weighted_exists_resultproductsentriesentryright))) /\ (exists ge_balance_positive_weighted_exists_resultproductsentriesentryrightvalue ge_balance_negative_weighted_exists_resultproductsentriesentryrightvalue. (((((sto_right_weighted_exists_resultproductsentries) = 2 * (ge_balance_positive_weighted_exists_resultproductsentriesentryrightvalue) /\ (ge_balance_negative_weighted_exists_resultproductsentriesentryrightvalue) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsentriesentryrightvaluedecode. (((sto_right_weighted_exists_resultproductsentries) = 2 * ge_signed_half_weighted_exists_resultproductsentriesentryrightvaluedecode + 1 /\ (ge_balance_positive_weighted_exists_resultproductsentriesentryrightvalue) = 0) /\ (ge_balance_negative_weighted_exists_resultproductsentriesentryrightvalue) = S ge_signed_half_weighted_exists_resultproductsentriesentryrightvaluedecode))) /\ ((dst_positive_weighted_exists_resultproductsentriesentryright) + ge_balance_negative_weighted_exists_resultproductsentriesentryrightvalue = (dst_negative_weighted_exists_resultproductsentriesentryright) + ge_balance_positive_weighted_exists_resultproductsentriesentryrightvalue))))))))) /\ (((exists dst_positive_code_weighted_exists_resultproductsentriesentryoutput dst_positive_scale_weighted_exists_resultproductsentriesentryoutput dst_negative_code_weighted_exists_resultproductsentriesentryoutput dst_negative_scale_weighted_exists_resultproductsentriesentryoutput dst_positive_weighted_exists_resultproductsentriesentryoutput dst_negative_weighted_exists_resultproductsentriesentryoutput. (((sws_product_table_weighted_exists_result) = (((((dst_positive_code_weighted_exists_resultproductsentriesentryoutput) + (dst_positive_scale_weighted_exists_resultproductsentriesentryoutput)) * S ((dst_positive_code_weighted_exists_resultproductsentriesentryoutput) + (dst_positive_scale_weighted_exists_resultproductsentriesentryoutput)) + ((dst_positive_scale_weighted_exists_resultproductsentriesentryoutput) + (dst_positive_scale_weighted_exists_resultproductsentriesentryoutput))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)))) * S ((((dst_positive_code_weighted_exists_resultproductsentriesentryoutput) + (dst_positive_scale_weighted_exists_resultproductsentriesentryoutput)) * S ((dst_positive_code_weighted_exists_resultproductsentriesentryoutput) + (dst_positive_scale_weighted_exists_resultproductsentriesentryoutput)) + ((dst_positive_scale_weighted_exists_resultproductsentriesentryoutput) + (dst_positive_scale_weighted_exists_resultproductsentriesentryoutput))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)))) + ((((dst_negative_code_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput))) + (((dst_negative_code_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) * S ((dst_negative_code_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) + ((dst_negative_scale_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)))))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsentriesentryoutputpositive. ff_h_pvs_weighted_exists_resultproductsentriesentryoutputpositive + S (dst_positive_weighted_exists_resultproductsentriesentryoutput) = S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_positive_scale_weighted_exists_resultproductsentriesentryoutput)) /\ exists ff_q_pvs_weighted_exists_resultproductsentriesentryoutputpositive. dst_positive_code_weighted_exists_resultproductsentriesentryoutput = ff_q_pvs_weighted_exists_resultproductsentriesentryoutputpositive * S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_positive_scale_weighted_exists_resultproductsentriesentryoutput) + (dst_positive_weighted_exists_resultproductsentriesentryoutput))) /\ (((((exists ff_h_pvs_weighted_exists_resultproductsentriesentryoutputnegative. ff_h_pvs_weighted_exists_resultproductsentriesentryoutputnegative + S (dst_negative_weighted_exists_resultproductsentriesentryoutput) = S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_negative_scale_weighted_exists_resultproductsentriesentryoutput)) /\ exists ff_q_pvs_weighted_exists_resultproductsentriesentryoutputnegative. dst_negative_code_weighted_exists_resultproductsentriesentryoutput = ff_q_pvs_weighted_exists_resultproductsentriesentryoutputnegative * S ((S (sto_index_weighted_exists_resultproductsentries)) * dst_negative_scale_weighted_exists_resultproductsentriesentryoutput) + (dst_negative_weighted_exists_resultproductsentriesentryoutput))) /\ (exists ge_balance_positive_weighted_exists_resultproductsentriesentryoutputvalue ge_balance_negative_weighted_exists_resultproductsentriesentryoutputvalue. (((((sto_output_weighted_exists_resultproductsentries) = 2 * (ge_balance_positive_weighted_exists_resultproductsentriesentryoutputvalue) /\ (ge_balance_negative_weighted_exists_resultproductsentriesentryoutputvalue) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsentriesentryoutputvaluedecode. (((sto_output_weighted_exists_resultproductsentries) = 2 * ge_signed_half_weighted_exists_resultproductsentriesentryoutputvaluedecode + 1 /\ (ge_balance_positive_weighted_exists_resultproductsentriesentryoutputvalue) = 0) /\ (ge_balance_negative_weighted_exists_resultproductsentriesentryoutputvalue) = S ge_signed_half_weighted_exists_resultproductsentriesentryoutputvaluedecode))) /\ ((dst_positive_weighted_exists_resultproductsentriesentryoutput) + ge_balance_negative_weighted_exists_resultproductsentriesentryoutputvalue = (dst_negative_weighted_exists_resultproductsentriesentryoutput) + ge_balance_positive_weighted_exists_resultproductsentriesentryoutputvalue))))))))) /\ (exists sto_ap_weighted_exists_resultproductsentriesentryoperation sto_an_weighted_exists_resultproductsentriesentryoperation sto_bp_weighted_exists_resultproductsentriesentryoperation sto_bn_weighted_exists_resultproductsentriesentryoperation sto_cp_weighted_exists_resultproductsentriesentryoperation sto_cn_weighted_exists_resultproductsentriesentryoperation. (((((sto_left_weighted_exists_resultproductsentries) = 2 * (sto_ap_weighted_exists_resultproductsentriesentryoperation) /\ (sto_an_weighted_exists_resultproductsentriesentryoperation) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsentriesentryoperationleft. (((sto_left_weighted_exists_resultproductsentries) = 2 * ge_signed_half_weighted_exists_resultproductsentriesentryoperationleft + 1 /\ (sto_ap_weighted_exists_resultproductsentriesentryoperation) = 0) /\ (sto_an_weighted_exists_resultproductsentriesentryoperation) = S ge_signed_half_weighted_exists_resultproductsentriesentryoperationleft))) /\ ((((((sto_right_weighted_exists_resultproductsentries) = 2 * (sto_bp_weighted_exists_resultproductsentriesentryoperation) /\ (sto_bn_weighted_exists_resultproductsentriesentryoperation) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsentriesentryoperationright. (((sto_right_weighted_exists_resultproductsentries) = 2 * ge_signed_half_weighted_exists_resultproductsentriesentryoperationright + 1 /\ (sto_bp_weighted_exists_resultproductsentriesentryoperation) = 0) /\ (sto_bn_weighted_exists_resultproductsentriesentryoperation) = S ge_signed_half_weighted_exists_resultproductsentriesentryoperationright))) /\ ((((((sto_output_weighted_exists_resultproductsentries) = 2 * (sto_cp_weighted_exists_resultproductsentriesentryoperation) /\ (sto_cn_weighted_exists_resultproductsentriesentryoperation) = 0) \/ exists ge_signed_half_weighted_exists_resultproductsentriesentryoperationoutput. (((sto_output_weighted_exists_resultproductsentries) = 2 * ge_signed_half_weighted_exists_resultproductsentriesentryoperationoutput + 1 /\ (sto_cp_weighted_exists_resultproductsentriesentryoperation) = 0) /\ (sto_cn_weighted_exists_resultproductsentriesentryoperation) = S ge_signed_half_weighted_exists_resultproductsentriesentryoperationoutput))) /\ ((sto_ap_weighted_exists_resultproductsentriesentryoperation * sto_bp_weighted_exists_resultproductsentriesentryoperation + sto_an_weighted_exists_resultproductsentriesentryoperation * sto_bn_weighted_exists_resultproductsentriesentryoperation) + sto_cn_weighted_exists_resultproductsentriesentryoperation = (sto_ap_weighted_exists_resultproductsentriesentryoperation * sto_bn_weighted_exists_resultproductsentriesentryoperation + sto_an_weighted_exists_resultproductsentriesentryoperation * sto_bp_weighted_exists_resultproductsentriesentryoperation) + sto_cp_weighted_exists_resultproductsentriesentryoperation))))))))))))))))))) /\ (exists dst_positive_code_weighted_exists_resultsum dst_positive_scale_weighted_exists_resultsum dst_negative_code_weighted_exists_resultsum dst_negative_scale_weighted_exists_resultsum dst_positive_sum_weighted_exists_resultsum dst_negative_sum_weighted_exists_resultsum. (((sws_product_table_weighted_exists_result) = (((((dst_positive_code_weighted_exists_resultsum) + (dst_positive_scale_weighted_exists_resultsum)) * S ((dst_positive_code_weighted_exists_resultsum) + (dst_positive_scale_weighted_exists_resultsum)) + ((dst_positive_scale_weighted_exists_resultsum) + (dst_positive_scale_weighted_exists_resultsum))) + (((dst_negative_code_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)) * S ((dst_negative_code_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)) + ((dst_negative_scale_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)))) * S ((((dst_positive_code_weighted_exists_resultsum) + (dst_positive_scale_weighted_exists_resultsum)) * S ((dst_positive_code_weighted_exists_resultsum) + (dst_positive_scale_weighted_exists_resultsum)) + ((dst_positive_scale_weighted_exists_resultsum) + (dst_positive_scale_weighted_exists_resultsum))) + (((dst_negative_code_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)) * S ((dst_negative_code_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)) + ((dst_negative_scale_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)))) + ((((dst_negative_code_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)) * S ((dst_negative_code_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)) + ((dst_negative_scale_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum))) + (((dst_negative_code_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)) * S ((dst_negative_code_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)) + ((dst_negative_scale_weighted_exists_resultsum) + (dst_negative_scale_weighted_exists_resultsum)))))) /\ (((exists fs_u_dst_weighted_exists_resultsumpositive fs_v_dst_weighted_exists_resultsumpositive. ((((exists fs_h_dst_weighted_exists_resultsumpositive_body_start. fs_h_dst_weighted_exists_resultsumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_weighted_exists_resultsumpositive)) /\ exists fs_q_dst_weighted_exists_resultsumpositive_body_start. fs_u_dst_weighted_exists_resultsumpositive = fs_q_dst_weighted_exists_resultsumpositive_body_start * S ((S (0)) * fs_v_dst_weighted_exists_resultsumpositive) + (0))) /\ ((((exists fs_h_dst_weighted_exists_resultsumpositive_body_terminal. fs_h_dst_weighted_exists_resultsumpositive_body_terminal + S (dst_positive_sum_weighted_exists_resultsum) = S ((S (l)) * fs_v_dst_weighted_exists_resultsumpositive)) /\ exists fs_q_dst_weighted_exists_resultsumpositive_body_terminal. fs_u_dst_weighted_exists_resultsumpositive = fs_q_dst_weighted_exists_resultsumpositive_body_terminal * S ((S (l)) * fs_v_dst_weighted_exists_resultsumpositive) + (dst_positive_sum_weighted_exists_resultsum))) /\ forall fs_i_dst_weighted_exists_resultsumpositive_body_steps. (exists fs_lt_dst_weighted_exists_resultsumpositive_body_steps_bound. fs_lt_dst_weighted_exists_resultsumpositive_body_steps_bound + S fs_i_dst_weighted_exists_resultsumpositive_body_steps = l) -> exists fs_a_dst_weighted_exists_resultsumpositive_body_steps fs_r_dst_weighted_exists_resultsumpositive_body_steps fs_s_dst_weighted_exists_resultsumpositive_body_steps. ((((exists fs_h_dst_weighted_exists_resultsumpositive_body_steps_summand. fs_h_dst_weighted_exists_resultsumpositive_body_steps_summand + S (fs_a_dst_weighted_exists_resultsumpositive_body_steps) = S ((S (fs_i_dst_weighted_exists_resultsumpositive_body_steps)) * dst_positive_scale_weighted_exists_resultsum)) /\ exists fs_q_dst_weighted_exists_resultsumpositive_body_steps_summand. dst_positive_code_weighted_exists_resultsum = fs_q_dst_weighted_exists_resultsumpositive_body_steps_summand * S ((S (fs_i_dst_weighted_exists_resultsumpositive_body_steps)) * dst_positive_scale_weighted_exists_resultsum) + (fs_a_dst_weighted_exists_resultsumpositive_body_steps))) /\ ((((exists fs_h_dst_weighted_exists_resultsumpositive_body_steps_partial. fs_h_dst_weighted_exists_resultsumpositive_body_steps_partial + S (fs_r_dst_weighted_exists_resultsumpositive_body_steps) = S ((S (fs_i_dst_weighted_exists_resultsumpositive_body_steps)) * fs_v_dst_weighted_exists_resultsumpositive)) /\ exists fs_q_dst_weighted_exists_resultsumpositive_body_steps_partial. fs_u_dst_weighted_exists_resultsumpositive = fs_q_dst_weighted_exists_resultsumpositive_body_steps_partial * S ((S (fs_i_dst_weighted_exists_resultsumpositive_body_steps)) * fs_v_dst_weighted_exists_resultsumpositive) + (fs_r_dst_weighted_exists_resultsumpositive_body_steps))) /\ ((((exists fs_h_dst_weighted_exists_resultsumpositive_body_steps_successor. fs_h_dst_weighted_exists_resultsumpositive_body_steps_successor + S (fs_s_dst_weighted_exists_resultsumpositive_body_steps) = S ((S (S fs_i_dst_weighted_exists_resultsumpositive_body_steps)) * fs_v_dst_weighted_exists_resultsumpositive)) /\ exists fs_q_dst_weighted_exists_resultsumpositive_body_steps_successor. fs_u_dst_weighted_exists_resultsumpositive = fs_q_dst_weighted_exists_resultsumpositive_body_steps_successor * S ((S (S fs_i_dst_weighted_exists_resultsumpositive_body_steps)) * fs_v_dst_weighted_exists_resultsumpositive) + (fs_s_dst_weighted_exists_resultsumpositive_body_steps))) /\ fs_s_dst_weighted_exists_resultsumpositive_body_steps = fs_r_dst_weighted_exists_resultsumpositive_body_steps + fs_a_dst_weighted_exists_resultsumpositive_body_steps)))))) /\ (((exists fs_u_dst_weighted_exists_resultsumnegative fs_v_dst_weighted_exists_resultsumnegative. ((((exists fs_h_dst_weighted_exists_resultsumnegative_body_start. fs_h_dst_weighted_exists_resultsumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_weighted_exists_resultsumnegative)) /\ exists fs_q_dst_weighted_exists_resultsumnegative_body_start. fs_u_dst_weighted_exists_resultsumnegative = fs_q_dst_weighted_exists_resultsumnegative_body_start * S ((S (0)) * fs_v_dst_weighted_exists_resultsumnegative) + (0))) /\ ((((exists fs_h_dst_weighted_exists_resultsumnegative_body_terminal. fs_h_dst_weighted_exists_resultsumnegative_body_terminal + S (dst_negative_sum_weighted_exists_resultsum) = S ((S (l)) * fs_v_dst_weighted_exists_resultsumnegative)) /\ exists fs_q_dst_weighted_exists_resultsumnegative_body_terminal. fs_u_dst_weighted_exists_resultsumnegative = fs_q_dst_weighted_exists_resultsumnegative_body_terminal * S ((S (l)) * fs_v_dst_weighted_exists_resultsumnegative) + (dst_negative_sum_weighted_exists_resultsum))) /\ forall fs_i_dst_weighted_exists_resultsumnegative_body_steps. (exists fs_lt_dst_weighted_exists_resultsumnegative_body_steps_bound. fs_lt_dst_weighted_exists_resultsumnegative_body_steps_bound + S fs_i_dst_weighted_exists_resultsumnegative_body_steps = l) -> exists fs_a_dst_weighted_exists_resultsumnegative_body_steps fs_r_dst_weighted_exists_resultsumnegative_body_steps fs_s_dst_weighted_exists_resultsumnegative_body_steps. ((((exists fs_h_dst_weighted_exists_resultsumnegative_body_steps_summand. fs_h_dst_weighted_exists_resultsumnegative_body_steps_summand + S (fs_a_dst_weighted_exists_resultsumnegative_body_steps) = S ((S (fs_i_dst_weighted_exists_resultsumnegative_body_steps)) * dst_negative_scale_weighted_exists_resultsum)) /\ exists fs_q_dst_weighted_exists_resultsumnegative_body_steps_summand. dst_negative_code_weighted_exists_resultsum = fs_q_dst_weighted_exists_resultsumnegative_body_steps_summand * S ((S (fs_i_dst_weighted_exists_resultsumnegative_body_steps)) * dst_negative_scale_weighted_exists_resultsum) + (fs_a_dst_weighted_exists_resultsumnegative_body_steps))) /\ ((((exists fs_h_dst_weighted_exists_resultsumnegative_body_steps_partial. fs_h_dst_weighted_exists_resultsumnegative_body_steps_partial + S (fs_r_dst_weighted_exists_resultsumnegative_body_steps) = S ((S (fs_i_dst_weighted_exists_resultsumnegative_body_steps)) * fs_v_dst_weighted_exists_resultsumnegative)) /\ exists fs_q_dst_weighted_exists_resultsumnegative_body_steps_partial. fs_u_dst_weighted_exists_resultsumnegative = fs_q_dst_weighted_exists_resultsumnegative_body_steps_partial * S ((S (fs_i_dst_weighted_exists_resultsumnegative_body_steps)) * fs_v_dst_weighted_exists_resultsumnegative) + (fs_r_dst_weighted_exists_resultsumnegative_body_steps))) /\ ((((exists fs_h_dst_weighted_exists_resultsumnegative_body_steps_successor. fs_h_dst_weighted_exists_resultsumnegative_body_steps_successor + S (fs_s_dst_weighted_exists_resultsumnegative_body_steps) = S ((S (S fs_i_dst_weighted_exists_resultsumnegative_body_steps)) * fs_v_dst_weighted_exists_resultsumnegative)) /\ exists fs_q_dst_weighted_exists_resultsumnegative_body_steps_successor. fs_u_dst_weighted_exists_resultsumnegative = fs_q_dst_weighted_exists_resultsumnegative_body_steps_successor * S ((S (S fs_i_dst_weighted_exists_resultsumnegative_body_steps)) * fs_v_dst_weighted_exists_resultsumnegative) + (fs_s_dst_weighted_exists_resultsumnegative_body_steps))) /\ fs_s_dst_weighted_exists_resultsumnegative_body_steps = fs_r_dst_weighted_exists_resultsumnegative_body_steps + fs_a_dst_weighted_exists_resultsumnegative_body_steps)))))) /\ (exists ge_balance_positive_weighted_exists_resultsumresult ge_balance_negative_weighted_exists_resultsumresult. (((((z) = 2 * (ge_balance_positive_weighted_exists_resultsumresult) /\ (ge_balance_negative_weighted_exists_resultsumresult) = 0) \/ exists ge_signed_half_weighted_exists_resultsumresultdecode. (((z) = 2 * ge_signed_half_weighted_exists_resultsumresultdecode + 1 /\ (ge_balance_positive_weighted_exists_resultsumresult) = 0) /\ (ge_balance_negative_weighted_exists_resultsumresult) = S ge_signed_half_weighted_exists_resultsumresultdecode))) /\ ((dst_positive_sum_weighted_exists_resultsum) + ge_balance_negative_weighted_exists_resultsumresult = (dst_negative_sum_weighted_exists_resultsum) + ge_balance_positive_weighted_exists_resultsumresult)))))))))))

Complete tactic proof in conservative notation

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

28 script commands · 10 reading checkpoints · 2 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

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

Named ingredients (1)
01Fix variables and assumptionsL1–5

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

  1. L1
    intro l
  2. L2
    intro W
  3. L3
    intro F
  4. L4
    intro hW
  5. L5
    intro hF
02Establish hpL6–12

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

  1. L6
    have hp : ∃ H. ArithMul(W,F,H,l)Definitions: ArithMul(W,F,H,l)Original native command in the exact edition
  2. L7
    specialize signed_table_multiply_exists (l)
  3. L8
    specialize signed_table_multiply_exists (W)
  4. L9
    specialize signed_table_multiply_exists (F)
  5. L10
    apply signed_table_multiply_exists
  6. L11
    exact hW
  7. L12
    exact hF
03Separate the logical casesL13–13

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

  1. L13
    cases hp
04Establish hsL14–18

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

  1. L14
    have hs : ∃ z. SignedPrefixSum(x,l,z)Definitions: SignedPrefixSum(x,l,z)Original native command in the exact edition
  2. L15
    specialize arithmetic_signed_sum_exists (l)
  3. L16
    specialize arithmetic_signed_sum_exists (x)
  4. L17
    specialize arithmetic_signed_sum_exists (l)
  5. L18
    apply arithmetic_signed_sum_exists
05Separate the logical casesL19–21

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

  1. L19
    cases hp_witness
  2. L20
    cases hp_witness_right
  3. L21
    cases hp_witness_right_right
06Use earlier factsL22–22

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

  1. L22
    exact hp_witness_right_right_left
07Separate the logical casesL23–23

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

  1. L23
    cases hs
08Construct an explicit witnessL24–25

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

  1. L24
    exists x1
  2. L25
    exists x
09Separate the logical casesL26–26

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

  1. L26
    split
10Use earlier factsL27–28

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

  1. L27
    exact hp_witness
  2. L28
    exact hs_witness

Library-wide reading audit

Original defined command ledger · 28 lines
  1. 0001intro l
  2. 0002intro W
  3. 0003intro F
  4. 0004intro hW
  5. 0005intro hF
  6. 0006have hp : ∃ H. ArithMul(W,F,H,l)
  7. 0007specialize signed_table_multiply_exists (l)
  8. 0008specialize signed_table_multiply_exists (W)
  9. 0009specialize signed_table_multiply_exists (F)
  10. 0010apply signed_table_multiply_exists
  11. 0011exact hW
  12. 0012exact hF
  13. 0013cases hp
  14. 0014have hs : ∃ z. SignedPrefixSum(x,l,z)
  15. 0015specialize arithmetic_signed_sum_exists (l)
  16. 0016specialize arithmetic_signed_sum_exists (x)
  17. 0017specialize arithmetic_signed_sum_exists (l)
  18. 0018apply arithmetic_signed_sum_exists
  19. 0019cases hp_witness
  20. 0020cases hp_witness_right
  21. 0021cases hp_witness_right_right
  22. 0022exact hp_witness_right_right_left
  23. 0023cases hs
  24. 0024exists x1
  25. 0025exists x
  26. 0026split
  27. 0027exact hp_witness
  28. 0028exact hs_witness