MX001C

signed_row_sums_flatten

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

Actual row sums concatenate into the genuine flattened source sum by row-count induction, including either zero dimension.

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

Exact expanded first-order arithmetic statement

forall m F R n z. (((exists dst_positive_code_flatten_rowssource_table dst_positive_scale_flatten_rowssource_table dst_negative_code_flatten_rowssource_table dst_negative_scale_flatten_rowssource_table. (((F) = (((((dst_positive_code_flatten_rowssource_table) + (dst_positive_scale_flatten_rowssource_table)) * S ((dst_positive_code_flatten_rowssource_table) + (dst_positive_scale_flatten_rowssource_table)) + ((dst_positive_scale_flatten_rowssource_table) + (dst_positive_scale_flatten_rowssource_table))) + (((dst_negative_code_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)) * S ((dst_negative_code_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)) + ((dst_negative_scale_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)))) * S ((((dst_positive_code_flatten_rowssource_table) + (dst_positive_scale_flatten_rowssource_table)) * S ((dst_positive_code_flatten_rowssource_table) + (dst_positive_scale_flatten_rowssource_table)) + ((dst_positive_scale_flatten_rowssource_table) + (dst_positive_scale_flatten_rowssource_table))) + (((dst_negative_code_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)) * S ((dst_negative_code_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)) + ((dst_negative_scale_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)))) + ((((dst_negative_code_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)) * S ((dst_negative_code_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)) + ((dst_negative_scale_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table))) + (((dst_negative_code_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)) * S ((dst_negative_code_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)) + ((dst_negative_scale_flatten_rowssource_table) + (dst_negative_scale_flatten_rowssource_table)))))) /\ (forall dst_index_flatten_rowssource_table. (exists pvs_le_gap_flatten_rowssource_tabledomain. pvs_le_gap_flatten_rowssource_tabledomain + (dst_index_flatten_rowssource_table) = (0)) -> exists dst_positive_flatten_rowssource_table dst_negative_flatten_rowssource_table dst_value_flatten_rowssource_table. ((((exists ff_h_pvs_flatten_rowssource_tableentrypositive. ff_h_pvs_flatten_rowssource_tableentrypositive + S (dst_positive_flatten_rowssource_table) = S ((S (dst_index_flatten_rowssource_table)) * dst_positive_scale_flatten_rowssource_table)) /\ exists ff_q_pvs_flatten_rowssource_tableentrypositive. dst_positive_code_flatten_rowssource_table = ff_q_pvs_flatten_rowssource_tableentrypositive * S ((S (dst_index_flatten_rowssource_table)) * dst_positive_scale_flatten_rowssource_table) + (dst_positive_flatten_rowssource_table))) /\ (((((exists ff_h_pvs_flatten_rowssource_tableentrynegative. ff_h_pvs_flatten_rowssource_tableentrynegative + S (dst_negative_flatten_rowssource_table) = S ((S (dst_index_flatten_rowssource_table)) * dst_negative_scale_flatten_rowssource_table)) /\ exists ff_q_pvs_flatten_rowssource_tableentrynegative. dst_negative_code_flatten_rowssource_table = ff_q_pvs_flatten_rowssource_tableentrynegative * S ((S (dst_index_flatten_rowssource_table)) * dst_negative_scale_flatten_rowssource_table) + (dst_negative_flatten_rowssource_table))) /\ (exists ge_balance_positive_flatten_rowssource_tableentryvalue ge_balance_negative_flatten_rowssource_tableentryvalue. (((((dst_value_flatten_rowssource_table) = 2 * (ge_balance_positive_flatten_rowssource_tableentryvalue) /\ (ge_balance_negative_flatten_rowssource_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_rowssource_tableentryvaluedecode. (((dst_value_flatten_rowssource_table) = 2 * ge_signed_half_flatten_rowssource_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_rowssource_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_rowssource_tableentryvalue) = S ge_signed_half_flatten_rowssource_tableentryvaluedecode))) /\ ((dst_positive_flatten_rowssource_table) + ge_balance_negative_flatten_rowssource_tableentryvalue = (dst_negative_flatten_rowssource_table) + ge_balance_positive_flatten_rowssource_tableentryvalue))))))))) /\ (((exists dst_positive_code_flatten_rowsrow_table dst_positive_scale_flatten_rowsrow_table dst_negative_code_flatten_rowsrow_table dst_negative_scale_flatten_rowsrow_table. (((R) = (((((dst_positive_code_flatten_rowsrow_table) + (dst_positive_scale_flatten_rowsrow_table)) * S ((dst_positive_code_flatten_rowsrow_table) + (dst_positive_scale_flatten_rowsrow_table)) + ((dst_positive_scale_flatten_rowsrow_table) + (dst_positive_scale_flatten_rowsrow_table))) + (((dst_negative_code_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)) * S ((dst_negative_code_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)) + ((dst_negative_scale_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)))) * S ((((dst_positive_code_flatten_rowsrow_table) + (dst_positive_scale_flatten_rowsrow_table)) * S ((dst_positive_code_flatten_rowsrow_table) + (dst_positive_scale_flatten_rowsrow_table)) + ((dst_positive_scale_flatten_rowsrow_table) + (dst_positive_scale_flatten_rowsrow_table))) + (((dst_negative_code_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)) * S ((dst_negative_code_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)) + ((dst_negative_scale_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)))) + ((((dst_negative_code_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)) * S ((dst_negative_code_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)) + ((dst_negative_scale_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table))) + (((dst_negative_code_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)) * S ((dst_negative_code_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)) + ((dst_negative_scale_flatten_rowsrow_table) + (dst_negative_scale_flatten_rowsrow_table)))))) /\ (forall dst_index_flatten_rowsrow_table. (exists pvs_le_gap_flatten_rowsrow_tabledomain. pvs_le_gap_flatten_rowsrow_tabledomain + (dst_index_flatten_rowsrow_table) = (m)) -> exists dst_positive_flatten_rowsrow_table dst_negative_flatten_rowsrow_table dst_value_flatten_rowsrow_table. ((((exists ff_h_pvs_flatten_rowsrow_tableentrypositive. ff_h_pvs_flatten_rowsrow_tableentrypositive + S (dst_positive_flatten_rowsrow_table) = S ((S (dst_index_flatten_rowsrow_table)) * dst_positive_scale_flatten_rowsrow_table)) /\ exists ff_q_pvs_flatten_rowsrow_tableentrypositive. dst_positive_code_flatten_rowsrow_table = ff_q_pvs_flatten_rowsrow_tableentrypositive * S ((S (dst_index_flatten_rowsrow_table)) * dst_positive_scale_flatten_rowsrow_table) + (dst_positive_flatten_rowsrow_table))) /\ (((((exists ff_h_pvs_flatten_rowsrow_tableentrynegative. ff_h_pvs_flatten_rowsrow_tableentrynegative + S (dst_negative_flatten_rowsrow_table) = S ((S (dst_index_flatten_rowsrow_table)) * dst_negative_scale_flatten_rowsrow_table)) /\ exists ff_q_pvs_flatten_rowsrow_tableentrynegative. dst_negative_code_flatten_rowsrow_table = ff_q_pvs_flatten_rowsrow_tableentrynegative * S ((S (dst_index_flatten_rowsrow_table)) * dst_negative_scale_flatten_rowsrow_table) + (dst_negative_flatten_rowsrow_table))) /\ (exists ge_balance_positive_flatten_rowsrow_tableentryvalue ge_balance_negative_flatten_rowsrow_tableentryvalue. (((((dst_value_flatten_rowsrow_table) = 2 * (ge_balance_positive_flatten_rowsrow_tableentryvalue) /\ (ge_balance_negative_flatten_rowsrow_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_rowsrow_tableentryvaluedecode. (((dst_value_flatten_rowsrow_table) = 2 * ge_signed_half_flatten_rowsrow_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_rowsrow_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_rowsrow_tableentryvalue) = S ge_signed_half_flatten_rowsrow_tableentryvaluedecode))) /\ ((dst_positive_flatten_rowsrow_table) + ge_balance_negative_flatten_rowsrow_tableentryvalue = (dst_negative_flatten_rowsrow_table) + ge_balance_positive_flatten_rowsrow_tableentryvalue))))))))) /\ (forall srt_index_flatten_rows. (exists pvs_gap_flatten_rowsbound. pvs_gap_flatten_rowsbound + S (srt_index_flatten_rows) = (m)) -> exists srt_value_flatten_rows. (((exists dst_positive_code_flatten_rowsrowentry dst_positive_scale_flatten_rowsrowentry dst_negative_code_flatten_rowsrowentry dst_negative_scale_flatten_rowsrowentry dst_positive_flatten_rowsrowentry dst_negative_flatten_rowsrowentry. (((R) = (((((dst_positive_code_flatten_rowsrowentry) + (dst_positive_scale_flatten_rowsrowentry)) * S ((dst_positive_code_flatten_rowsrowentry) + (dst_positive_scale_flatten_rowsrowentry)) + ((dst_positive_scale_flatten_rowsrowentry) + (dst_positive_scale_flatten_rowsrowentry))) + (((dst_negative_code_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)) * S ((dst_negative_code_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)) + ((dst_negative_scale_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)))) * S ((((dst_positive_code_flatten_rowsrowentry) + (dst_positive_scale_flatten_rowsrowentry)) * S ((dst_positive_code_flatten_rowsrowentry) + (dst_positive_scale_flatten_rowsrowentry)) + ((dst_positive_scale_flatten_rowsrowentry) + (dst_positive_scale_flatten_rowsrowentry))) + (((dst_negative_code_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)) * S ((dst_negative_code_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)) + ((dst_negative_scale_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)))) + ((((dst_negative_code_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)) * S ((dst_negative_code_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)) + ((dst_negative_scale_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry))) + (((dst_negative_code_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)) * S ((dst_negative_code_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)) + ((dst_negative_scale_flatten_rowsrowentry) + (dst_negative_scale_flatten_rowsrowentry)))))) /\ (((((exists ff_h_pvs_flatten_rowsrowentrypositive. ff_h_pvs_flatten_rowsrowentrypositive + S (dst_positive_flatten_rowsrowentry) = S ((S (srt_index_flatten_rows)) * dst_positive_scale_flatten_rowsrowentry)) /\ exists ff_q_pvs_flatten_rowsrowentrypositive. dst_positive_code_flatten_rowsrowentry = ff_q_pvs_flatten_rowsrowentrypositive * S ((S (srt_index_flatten_rows)) * dst_positive_scale_flatten_rowsrowentry) + (dst_positive_flatten_rowsrowentry))) /\ (((((exists ff_h_pvs_flatten_rowsrowentrynegative. ff_h_pvs_flatten_rowsrowentrynegative + S (dst_negative_flatten_rowsrowentry) = S ((S (srt_index_flatten_rows)) * dst_negative_scale_flatten_rowsrowentry)) /\ exists ff_q_pvs_flatten_rowsrowentrynegative. dst_negative_code_flatten_rowsrowentry = ff_q_pvs_flatten_rowsrowentrynegative * S ((S (srt_index_flatten_rows)) * dst_negative_scale_flatten_rowsrowentry) + (dst_negative_flatten_rowsrowentry))) /\ (exists ge_balance_positive_flatten_rowsrowentryvalue ge_balance_negative_flatten_rowsrowentryvalue. (((((srt_value_flatten_rows) = 2 * (ge_balance_positive_flatten_rowsrowentryvalue) /\ (ge_balance_negative_flatten_rowsrowentryvalue) = 0) \/ exists ge_signed_half_flatten_rowsrowentryvaluedecode. (((srt_value_flatten_rows) = 2 * ge_signed_half_flatten_rowsrowentryvaluedecode + 1 /\ (ge_balance_positive_flatten_rowsrowentryvalue) = 0) /\ (ge_balance_negative_flatten_rowsrowentryvalue) = S ge_signed_half_flatten_rowsrowentryvaluedecode))) /\ ((dst_positive_flatten_rowsrowentry) + ge_balance_negative_flatten_rowsrowentryvalue = (dst_negative_flatten_rowsrowentry) + ge_balance_positive_flatten_rowsrowentryvalue))))))))) /\ (exists srs_slice_flatten_rowsrowrow_sum. ((((exists dst_positive_code_flatten_rowsrowrow_sumslicesource_table dst_positive_scale_flatten_rowsrowrow_sumslicesource_table dst_negative_code_flatten_rowsrowrow_sumslicesource_table dst_negative_scale_flatten_rowsrowrow_sumslicesource_table. (((F) = (((((dst_positive_code_flatten_rowsrowrow_sumslicesource_table) + (dst_positive_scale_flatten_rowsrowrow_sumslicesource_table)) * S ((dst_positive_code_flatten_rowsrowrow_sumslicesource_table) + (dst_positive_scale_flatten_rowsrowrow_sumslicesource_table)) + ((dst_positive_scale_flatten_rowsrowrow_sumslicesource_table) + (dst_positive_scale_flatten_rowsrowrow_sumslicesource_table))) + (((dst_negative_code_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) * S ((dst_negative_code_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) + ((dst_negative_scale_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)))) * S ((((dst_positive_code_flatten_rowsrowrow_sumslicesource_table) + (dst_positive_scale_flatten_rowsrowrow_sumslicesource_table)) * S ((dst_positive_code_flatten_rowsrowrow_sumslicesource_table) + (dst_positive_scale_flatten_rowsrowrow_sumslicesource_table)) + ((dst_positive_scale_flatten_rowsrowrow_sumslicesource_table) + (dst_positive_scale_flatten_rowsrowrow_sumslicesource_table))) + (((dst_negative_code_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) * S ((dst_negative_code_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) + ((dst_negative_scale_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)))) + ((((dst_negative_code_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) * S ((dst_negative_code_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) + ((dst_negative_scale_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table))) + (((dst_negative_code_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) * S ((dst_negative_code_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) + ((dst_negative_scale_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)))))) /\ (forall dst_index_flatten_rowsrowrow_sumslicesource_table. (exists pvs_le_gap_flatten_rowsrowrow_sumslicesource_tabledomain. pvs_le_gap_flatten_rowsrowrow_sumslicesource_tabledomain + (dst_index_flatten_rowsrowrow_sumslicesource_table) = (0)) -> exists dst_positive_flatten_rowsrowrow_sumslicesource_table dst_negative_flatten_rowsrowrow_sumslicesource_table dst_value_flatten_rowsrowrow_sumslicesource_table. ((((exists ff_h_pvs_flatten_rowsrowrow_sumslicesource_tableentrypositive. ff_h_pvs_flatten_rowsrowrow_sumslicesource_tableentrypositive + S (dst_positive_flatten_rowsrowrow_sumslicesource_table) = S ((S (dst_index_flatten_rowsrowrow_sumslicesource_table)) * dst_positive_scale_flatten_rowsrowrow_sumslicesource_table)) /\ exists ff_q_pvs_flatten_rowsrowrow_sumslicesource_tableentrypositive. dst_positive_code_flatten_rowsrowrow_sumslicesource_table = ff_q_pvs_flatten_rowsrowrow_sumslicesource_tableentrypositive * S ((S (dst_index_flatten_rowsrowrow_sumslicesource_table)) * dst_positive_scale_flatten_rowsrowrow_sumslicesource_table) + (dst_positive_flatten_rowsrowrow_sumslicesource_table))) /\ (((((exists ff_h_pvs_flatten_rowsrowrow_sumslicesource_tableentrynegative. ff_h_pvs_flatten_rowsrowrow_sumslicesource_tableentrynegative + S (dst_negative_flatten_rowsrowrow_sumslicesource_table) = S ((S (dst_index_flatten_rowsrowrow_sumslicesource_table)) * dst_negative_scale_flatten_rowsrowrow_sumslicesource_table)) /\ exists ff_q_pvs_flatten_rowsrowrow_sumslicesource_tableentrynegative. dst_negative_code_flatten_rowsrowrow_sumslicesource_table = ff_q_pvs_flatten_rowsrowrow_sumslicesource_tableentrynegative * S ((S (dst_index_flatten_rowsrowrow_sumslicesource_table)) * dst_negative_scale_flatten_rowsrowrow_sumslicesource_table) + (dst_negative_flatten_rowsrowrow_sumslicesource_table))) /\ (exists ge_balance_positive_flatten_rowsrowrow_sumslicesource_tableentryvalue ge_balance_negative_flatten_rowsrowrow_sumslicesource_tableentryvalue. (((((dst_value_flatten_rowsrowrow_sumslicesource_table) = 2 * (ge_balance_positive_flatten_rowsrowrow_sumslicesource_tableentryvalue) /\ (ge_balance_negative_flatten_rowsrowrow_sumslicesource_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_rowsrowrow_sumslicesource_tableentryvaluedecode. (((dst_value_flatten_rowsrowrow_sumslicesource_table) = 2 * ge_signed_half_flatten_rowsrowrow_sumslicesource_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_rowsrowrow_sumslicesource_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_rowsrowrow_sumslicesource_tableentryvalue) = S ge_signed_half_flatten_rowsrowrow_sumslicesource_tableentryvaluedecode))) /\ ((dst_positive_flatten_rowsrowrow_sumslicesource_table) + ge_balance_negative_flatten_rowsrowrow_sumslicesource_tableentryvalue = (dst_negative_flatten_rowsrowrow_sumslicesource_table) + ge_balance_positive_flatten_rowsrowrow_sumslicesource_tableentryvalue))))))))) /\ (((exists dst_positive_code_flatten_rowsrowrow_sumsliceoutput_table dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table. (((srs_slice_flatten_rowsrowrow_sum) = (((((dst_positive_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table)) * S ((dst_positive_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table)) + ((dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table) + (dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)))) * S ((((dst_positive_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table)) * S ((dst_positive_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table)) + ((dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table) + (dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)))) + ((((dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)))))) /\ (forall dst_index_flatten_rowsrowrow_sumsliceoutput_table. (exists pvs_le_gap_flatten_rowsrowrow_sumsliceoutput_tabledomain. pvs_le_gap_flatten_rowsrowrow_sumsliceoutput_tabledomain + (dst_index_flatten_rowsrowrow_sumsliceoutput_table) = (n)) -> exists dst_positive_flatten_rowsrowrow_sumsliceoutput_table dst_negative_flatten_rowsrowrow_sumsliceoutput_table dst_value_flatten_rowsrowrow_sumsliceoutput_table. ((((exists ff_h_pvs_flatten_rowsrowrow_sumsliceoutput_tableentrypositive. ff_h_pvs_flatten_rowsrowrow_sumsliceoutput_tableentrypositive + S (dst_positive_flatten_rowsrowrow_sumsliceoutput_table) = S ((S (dst_index_flatten_rowsrowrow_sumsliceoutput_table)) * dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table)) /\ exists ff_q_pvs_flatten_rowsrowrow_sumsliceoutput_tableentrypositive. dst_positive_code_flatten_rowsrowrow_sumsliceoutput_table = ff_q_pvs_flatten_rowsrowrow_sumsliceoutput_tableentrypositive * S ((S (dst_index_flatten_rowsrowrow_sumsliceoutput_table)) * dst_positive_scale_flatten_rowsrowrow_sumsliceoutput_table) + (dst_positive_flatten_rowsrowrow_sumsliceoutput_table))) /\ (((((exists ff_h_pvs_flatten_rowsrowrow_sumsliceoutput_tableentrynegative. ff_h_pvs_flatten_rowsrowrow_sumsliceoutput_tableentrynegative + S (dst_negative_flatten_rowsrowrow_sumsliceoutput_table) = S ((S (dst_index_flatten_rowsrowrow_sumsliceoutput_table)) * dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table)) /\ exists ff_q_pvs_flatten_rowsrowrow_sumsliceoutput_tableentrynegative. dst_negative_code_flatten_rowsrowrow_sumsliceoutput_table = ff_q_pvs_flatten_rowsrowrow_sumsliceoutput_tableentrynegative * S ((S (dst_index_flatten_rowsrowrow_sumsliceoutput_table)) * dst_negative_scale_flatten_rowsrowrow_sumsliceoutput_table) + (dst_negative_flatten_rowsrowrow_sumsliceoutput_table))) /\ (exists ge_balance_positive_flatten_rowsrowrow_sumsliceoutput_tableentryvalue ge_balance_negative_flatten_rowsrowrow_sumsliceoutput_tableentryvalue. (((((dst_value_flatten_rowsrowrow_sumsliceoutput_table) = 2 * (ge_balance_positive_flatten_rowsrowrow_sumsliceoutput_tableentryvalue) /\ (ge_balance_negative_flatten_rowsrowrow_sumsliceoutput_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_rowsrowrow_sumsliceoutput_tableentryvaluedecode. (((dst_value_flatten_rowsrowrow_sumsliceoutput_table) = 2 * ge_signed_half_flatten_rowsrowrow_sumsliceoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_rowsrowrow_sumsliceoutput_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_rowsrowrow_sumsliceoutput_tableentryvalue) = S ge_signed_half_flatten_rowsrowrow_sumsliceoutput_tableentryvaluedecode))) /\ ((dst_positive_flatten_rowsrowrow_sumsliceoutput_table) + ge_balance_negative_flatten_rowsrowrow_sumsliceoutput_tableentryvalue = (dst_negative_flatten_rowsrowrow_sumsliceoutput_table) + ge_balance_positive_flatten_rowsrowrow_sumsliceoutput_tableentryvalue))))))))) /\ (forall srs_index_flatten_rowsrowrow_sumslice. (exists pvs_gap_flatten_rowsrowrow_sumslicebound. pvs_gap_flatten_rowsrowrow_sumslicebound + S (srs_index_flatten_rowsrowrow_sumslice) = (n)) -> exists srs_value_flatten_rowsrowrow_sumslice. (((exists dst_positive_code_flatten_rowsrowrow_sumsliceentrysource dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource dst_negative_code_flatten_rowsrowrow_sumsliceentrysource dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource dst_positive_flatten_rowsrowrow_sumsliceentrysource dst_negative_flatten_rowsrowrow_sumsliceentrysource. (((F) = (((((dst_positive_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource)) * S ((dst_positive_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource)) + ((dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)))) * S ((((dst_positive_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource)) * S ((dst_positive_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource)) + ((dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)))) + ((((dst_negative_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)))))) /\ (((((exists ff_h_pvs_flatten_rowsrowrow_sumsliceentrysourcepositive. ff_h_pvs_flatten_rowsrowrow_sumsliceentrysourcepositive + S (dst_positive_flatten_rowsrowrow_sumsliceentrysource) = S ((S (((((0) + ((n) * (srt_index_flatten_rows)))) + ((1) * (srs_index_flatten_rowsrowrow_sumslice))))) * dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource)) /\ exists ff_q_pvs_flatten_rowsrowrow_sumsliceentrysourcepositive. dst_positive_code_flatten_rowsrowrow_sumsliceentrysource = ff_q_pvs_flatten_rowsrowrow_sumsliceentrysourcepositive * S ((S (((((0) + ((n) * (srt_index_flatten_rows)))) + ((1) * (srs_index_flatten_rowsrowrow_sumslice))))) * dst_positive_scale_flatten_rowsrowrow_sumsliceentrysource) + (dst_positive_flatten_rowsrowrow_sumsliceentrysource))) /\ (((((exists ff_h_pvs_flatten_rowsrowrow_sumsliceentrysourcenegative. ff_h_pvs_flatten_rowsrowrow_sumsliceentrysourcenegative + S (dst_negative_flatten_rowsrowrow_sumsliceentrysource) = S ((S (((((0) + ((n) * (srt_index_flatten_rows)))) + ((1) * (srs_index_flatten_rowsrowrow_sumslice))))) * dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource)) /\ exists ff_q_pvs_flatten_rowsrowrow_sumsliceentrysourcenegative. dst_negative_code_flatten_rowsrowrow_sumsliceentrysource = ff_q_pvs_flatten_rowsrowrow_sumsliceentrysourcenegative * S ((S (((((0) + ((n) * (srt_index_flatten_rows)))) + ((1) * (srs_index_flatten_rowsrowrow_sumslice))))) * dst_negative_scale_flatten_rowsrowrow_sumsliceentrysource) + (dst_negative_flatten_rowsrowrow_sumsliceentrysource))) /\ (exists ge_balance_positive_flatten_rowsrowrow_sumsliceentrysourcevalue ge_balance_negative_flatten_rowsrowrow_sumsliceentrysourcevalue. (((((srs_value_flatten_rowsrowrow_sumslice) = 2 * (ge_balance_positive_flatten_rowsrowrow_sumsliceentrysourcevalue) /\ (ge_balance_negative_flatten_rowsrowrow_sumsliceentrysourcevalue) = 0) \/ exists ge_signed_half_flatten_rowsrowrow_sumsliceentrysourcevaluedecode. (((srs_value_flatten_rowsrowrow_sumslice) = 2 * ge_signed_half_flatten_rowsrowrow_sumsliceentrysourcevaluedecode + 1 /\ (ge_balance_positive_flatten_rowsrowrow_sumsliceentrysourcevalue) = 0) /\ (ge_balance_negative_flatten_rowsrowrow_sumsliceentrysourcevalue) = S ge_signed_half_flatten_rowsrowrow_sumsliceentrysourcevaluedecode))) /\ ((dst_positive_flatten_rowsrowrow_sumsliceentrysource) + ge_balance_negative_flatten_rowsrowrow_sumsliceentrysourcevalue = (dst_negative_flatten_rowsrowrow_sumsliceentrysource) + ge_balance_positive_flatten_rowsrowrow_sumsliceentrysourcevalue))))))))) /\ (exists dst_positive_code_flatten_rowsrowrow_sumsliceentryoutput dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput dst_positive_flatten_rowsrowrow_sumsliceentryoutput dst_negative_flatten_rowsrowrow_sumsliceentryoutput. (((srs_slice_flatten_rowsrowrow_sum) = (((((dst_positive_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput)) * S ((dst_positive_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput)) + ((dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)))) * S ((((dst_positive_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput)) * S ((dst_positive_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput)) + ((dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput) + (dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)))) + ((((dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput))) + (((dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) * S ((dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) + ((dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)))))) /\ (((((exists ff_h_pvs_flatten_rowsrowrow_sumsliceentryoutputpositive. ff_h_pvs_flatten_rowsrowrow_sumsliceentryoutputpositive + S (dst_positive_flatten_rowsrowrow_sumsliceentryoutput) = S ((S (srs_index_flatten_rowsrowrow_sumslice)) * dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput)) /\ exists ff_q_pvs_flatten_rowsrowrow_sumsliceentryoutputpositive. dst_positive_code_flatten_rowsrowrow_sumsliceentryoutput = ff_q_pvs_flatten_rowsrowrow_sumsliceentryoutputpositive * S ((S (srs_index_flatten_rowsrowrow_sumslice)) * dst_positive_scale_flatten_rowsrowrow_sumsliceentryoutput) + (dst_positive_flatten_rowsrowrow_sumsliceentryoutput))) /\ (((((exists ff_h_pvs_flatten_rowsrowrow_sumsliceentryoutputnegative. ff_h_pvs_flatten_rowsrowrow_sumsliceentryoutputnegative + S (dst_negative_flatten_rowsrowrow_sumsliceentryoutput) = S ((S (srs_index_flatten_rowsrowrow_sumslice)) * dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput)) /\ exists ff_q_pvs_flatten_rowsrowrow_sumsliceentryoutputnegative. dst_negative_code_flatten_rowsrowrow_sumsliceentryoutput = ff_q_pvs_flatten_rowsrowrow_sumsliceentryoutputnegative * S ((S (srs_index_flatten_rowsrowrow_sumslice)) * dst_negative_scale_flatten_rowsrowrow_sumsliceentryoutput) + (dst_negative_flatten_rowsrowrow_sumsliceentryoutput))) /\ (exists ge_balance_positive_flatten_rowsrowrow_sumsliceentryoutputvalue ge_balance_negative_flatten_rowsrowrow_sumsliceentryoutputvalue. (((((srs_value_flatten_rowsrowrow_sumslice) = 2 * (ge_balance_positive_flatten_rowsrowrow_sumsliceentryoutputvalue) /\ (ge_balance_negative_flatten_rowsrowrow_sumsliceentryoutputvalue) = 0) \/ exists ge_signed_half_flatten_rowsrowrow_sumsliceentryoutputvaluedecode. (((srs_value_flatten_rowsrowrow_sumslice) = 2 * ge_signed_half_flatten_rowsrowrow_sumsliceentryoutputvaluedecode + 1 /\ (ge_balance_positive_flatten_rowsrowrow_sumsliceentryoutputvalue) = 0) /\ (ge_balance_negative_flatten_rowsrowrow_sumsliceentryoutputvalue) = S ge_signed_half_flatten_rowsrowrow_sumsliceentryoutputvaluedecode))) /\ ((dst_positive_flatten_rowsrowrow_sumsliceentryoutput) + ge_balance_negative_flatten_rowsrowrow_sumsliceentryoutputvalue = (dst_negative_flatten_rowsrowrow_sumsliceentryoutput) + ge_balance_positive_flatten_rowsrowrow_sumsliceentryoutputvalue)))))))))))))))) /\ (exists dst_positive_code_flatten_rowsrowrow_sumsum dst_positive_scale_flatten_rowsrowrow_sumsum dst_negative_code_flatten_rowsrowrow_sumsum dst_negative_scale_flatten_rowsrowrow_sumsum dst_positive_sum_flatten_rowsrowrow_sumsum dst_negative_sum_flatten_rowsrowrow_sumsum. (((srs_slice_flatten_rowsrowrow_sum) = (((((dst_positive_code_flatten_rowsrowrow_sumsum) + (dst_positive_scale_flatten_rowsrowrow_sumsum)) * S ((dst_positive_code_flatten_rowsrowrow_sumsum) + (dst_positive_scale_flatten_rowsrowrow_sumsum)) + ((dst_positive_scale_flatten_rowsrowrow_sumsum) + (dst_positive_scale_flatten_rowsrowrow_sumsum))) + (((dst_negative_code_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)) * S ((dst_negative_code_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)) + ((dst_negative_scale_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)))) * S ((((dst_positive_code_flatten_rowsrowrow_sumsum) + (dst_positive_scale_flatten_rowsrowrow_sumsum)) * S ((dst_positive_code_flatten_rowsrowrow_sumsum) + (dst_positive_scale_flatten_rowsrowrow_sumsum)) + ((dst_positive_scale_flatten_rowsrowrow_sumsum) + (dst_positive_scale_flatten_rowsrowrow_sumsum))) + (((dst_negative_code_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)) * S ((dst_negative_code_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)) + ((dst_negative_scale_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)))) + ((((dst_negative_code_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)) * S ((dst_negative_code_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)) + ((dst_negative_scale_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum))) + (((dst_negative_code_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)) * S ((dst_negative_code_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)) + ((dst_negative_scale_flatten_rowsrowrow_sumsum) + (dst_negative_scale_flatten_rowsrowrow_sumsum)))))) /\ (((exists fs_u_dst_flatten_rowsrowrow_sumsumpositive fs_v_dst_flatten_rowsrowrow_sumsumpositive. ((((exists fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_start. fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_rowsrowrow_sumsumpositive)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_start. fs_u_dst_flatten_rowsrowrow_sumsumpositive = fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_start * S ((S (0)) * fs_v_dst_flatten_rowsrowrow_sumsumpositive) + (0))) /\ ((((exists fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_terminal. fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_terminal + S (dst_positive_sum_flatten_rowsrowrow_sumsum) = S ((S (n)) * fs_v_dst_flatten_rowsrowrow_sumsumpositive)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_terminal. fs_u_dst_flatten_rowsrowrow_sumsumpositive = fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_terminal * S ((S (n)) * fs_v_dst_flatten_rowsrowrow_sumsumpositive) + (dst_positive_sum_flatten_rowsrowrow_sumsum))) /\ forall fs_i_dst_flatten_rowsrowrow_sumsumpositive_body_steps. (exists fs_lt_dst_flatten_rowsrowrow_sumsumpositive_body_steps_bound. fs_lt_dst_flatten_rowsrowrow_sumsumpositive_body_steps_bound + S fs_i_dst_flatten_rowsrowrow_sumsumpositive_body_steps = n) -> exists fs_a_dst_flatten_rowsrowrow_sumsumpositive_body_steps fs_r_dst_flatten_rowsrowrow_sumsumpositive_body_steps fs_s_dst_flatten_rowsrowrow_sumsumpositive_body_steps. ((((exists fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_steps_summand. fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_steps_summand + S (fs_a_dst_flatten_rowsrowrow_sumsumpositive_body_steps) = S ((S (fs_i_dst_flatten_rowsrowrow_sumsumpositive_body_steps)) * dst_positive_scale_flatten_rowsrowrow_sumsum)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_steps_summand. dst_positive_code_flatten_rowsrowrow_sumsum = fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_steps_summand * S ((S (fs_i_dst_flatten_rowsrowrow_sumsumpositive_body_steps)) * dst_positive_scale_flatten_rowsrowrow_sumsum) + (fs_a_dst_flatten_rowsrowrow_sumsumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_steps_partial. fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_steps_partial + S (fs_r_dst_flatten_rowsrowrow_sumsumpositive_body_steps) = S ((S (fs_i_dst_flatten_rowsrowrow_sumsumpositive_body_steps)) * fs_v_dst_flatten_rowsrowrow_sumsumpositive)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_steps_partial. fs_u_dst_flatten_rowsrowrow_sumsumpositive = fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_steps_partial * S ((S (fs_i_dst_flatten_rowsrowrow_sumsumpositive_body_steps)) * fs_v_dst_flatten_rowsrowrow_sumsumpositive) + (fs_r_dst_flatten_rowsrowrow_sumsumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_steps_successor. fs_h_dst_flatten_rowsrowrow_sumsumpositive_body_steps_successor + S (fs_s_dst_flatten_rowsrowrow_sumsumpositive_body_steps) = S ((S (S fs_i_dst_flatten_rowsrowrow_sumsumpositive_body_steps)) * fs_v_dst_flatten_rowsrowrow_sumsumpositive)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_steps_successor. fs_u_dst_flatten_rowsrowrow_sumsumpositive = fs_q_dst_flatten_rowsrowrow_sumsumpositive_body_steps_successor * S ((S (S fs_i_dst_flatten_rowsrowrow_sumsumpositive_body_steps)) * fs_v_dst_flatten_rowsrowrow_sumsumpositive) + (fs_s_dst_flatten_rowsrowrow_sumsumpositive_body_steps))) /\ fs_s_dst_flatten_rowsrowrow_sumsumpositive_body_steps = fs_r_dst_flatten_rowsrowrow_sumsumpositive_body_steps + fs_a_dst_flatten_rowsrowrow_sumsumpositive_body_steps)))))) /\ (((exists fs_u_dst_flatten_rowsrowrow_sumsumnegative fs_v_dst_flatten_rowsrowrow_sumsumnegative. ((((exists fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_start. fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_rowsrowrow_sumsumnegative)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_start. fs_u_dst_flatten_rowsrowrow_sumsumnegative = fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_start * S ((S (0)) * fs_v_dst_flatten_rowsrowrow_sumsumnegative) + (0))) /\ ((((exists fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_terminal. fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_terminal + S (dst_negative_sum_flatten_rowsrowrow_sumsum) = S ((S (n)) * fs_v_dst_flatten_rowsrowrow_sumsumnegative)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_terminal. fs_u_dst_flatten_rowsrowrow_sumsumnegative = fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_terminal * S ((S (n)) * fs_v_dst_flatten_rowsrowrow_sumsumnegative) + (dst_negative_sum_flatten_rowsrowrow_sumsum))) /\ forall fs_i_dst_flatten_rowsrowrow_sumsumnegative_body_steps. (exists fs_lt_dst_flatten_rowsrowrow_sumsumnegative_body_steps_bound. fs_lt_dst_flatten_rowsrowrow_sumsumnegative_body_steps_bound + S fs_i_dst_flatten_rowsrowrow_sumsumnegative_body_steps = n) -> exists fs_a_dst_flatten_rowsrowrow_sumsumnegative_body_steps fs_r_dst_flatten_rowsrowrow_sumsumnegative_body_steps fs_s_dst_flatten_rowsrowrow_sumsumnegative_body_steps. ((((exists fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_steps_summand. fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_steps_summand + S (fs_a_dst_flatten_rowsrowrow_sumsumnegative_body_steps) = S ((S (fs_i_dst_flatten_rowsrowrow_sumsumnegative_body_steps)) * dst_negative_scale_flatten_rowsrowrow_sumsum)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_steps_summand. dst_negative_code_flatten_rowsrowrow_sumsum = fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_steps_summand * S ((S (fs_i_dst_flatten_rowsrowrow_sumsumnegative_body_steps)) * dst_negative_scale_flatten_rowsrowrow_sumsum) + (fs_a_dst_flatten_rowsrowrow_sumsumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_steps_partial. fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_steps_partial + S (fs_r_dst_flatten_rowsrowrow_sumsumnegative_body_steps) = S ((S (fs_i_dst_flatten_rowsrowrow_sumsumnegative_body_steps)) * fs_v_dst_flatten_rowsrowrow_sumsumnegative)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_steps_partial. fs_u_dst_flatten_rowsrowrow_sumsumnegative = fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_steps_partial * S ((S (fs_i_dst_flatten_rowsrowrow_sumsumnegative_body_steps)) * fs_v_dst_flatten_rowsrowrow_sumsumnegative) + (fs_r_dst_flatten_rowsrowrow_sumsumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_steps_successor. fs_h_dst_flatten_rowsrowrow_sumsumnegative_body_steps_successor + S (fs_s_dst_flatten_rowsrowrow_sumsumnegative_body_steps) = S ((S (S fs_i_dst_flatten_rowsrowrow_sumsumnegative_body_steps)) * fs_v_dst_flatten_rowsrowrow_sumsumnegative)) /\ exists fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_steps_successor. fs_u_dst_flatten_rowsrowrow_sumsumnegative = fs_q_dst_flatten_rowsrowrow_sumsumnegative_body_steps_successor * S ((S (S fs_i_dst_flatten_rowsrowrow_sumsumnegative_body_steps)) * fs_v_dst_flatten_rowsrowrow_sumsumnegative) + (fs_s_dst_flatten_rowsrowrow_sumsumnegative_body_steps))) /\ fs_s_dst_flatten_rowsrowrow_sumsumnegative_body_steps = fs_r_dst_flatten_rowsrowrow_sumsumnegative_body_steps + fs_a_dst_flatten_rowsrowrow_sumsumnegative_body_steps)))))) /\ (exists ge_balance_positive_flatten_rowsrowrow_sumsumresult ge_balance_negative_flatten_rowsrowrow_sumsumresult. (((((srt_value_flatten_rows) = 2 * (ge_balance_positive_flatten_rowsrowrow_sumsumresult) /\ (ge_balance_negative_flatten_rowsrowrow_sumsumresult) = 0) \/ exists ge_signed_half_flatten_rowsrowrow_sumsumresultdecode. (((srt_value_flatten_rows) = 2 * ge_signed_half_flatten_rowsrowrow_sumsumresultdecode + 1 /\ (ge_balance_positive_flatten_rowsrowrow_sumsumresult) = 0) /\ (ge_balance_negative_flatten_rowsrowrow_sumsumresult) = S ge_signed_half_flatten_rowsrowrow_sumsumresultdecode))) /\ ((dst_positive_sum_flatten_rowsrowrow_sumsum) + ge_balance_negative_flatten_rowsrowrow_sumsumresult = (dst_negative_sum_flatten_rowsrowrow_sumsum) + ge_balance_positive_flatten_rowsrowrow_sumsumresult)))))))))))))))))) -> (exists dst_positive_code_flatten_sum dst_positive_scale_flatten_sum dst_negative_code_flatten_sum dst_negative_scale_flatten_sum dst_positive_sum_flatten_sum dst_negative_sum_flatten_sum. (((R) = (((((dst_positive_code_flatten_sum) + (dst_positive_scale_flatten_sum)) * S ((dst_positive_code_flatten_sum) + (dst_positive_scale_flatten_sum)) + ((dst_positive_scale_flatten_sum) + (dst_positive_scale_flatten_sum))) + (((dst_negative_code_flatten_sum) + (dst_negative_scale_flatten_sum)) * S ((dst_negative_code_flatten_sum) + (dst_negative_scale_flatten_sum)) + ((dst_negative_scale_flatten_sum) + (dst_negative_scale_flatten_sum)))) * S ((((dst_positive_code_flatten_sum) + (dst_positive_scale_flatten_sum)) * S ((dst_positive_code_flatten_sum) + (dst_positive_scale_flatten_sum)) + ((dst_positive_scale_flatten_sum) + (dst_positive_scale_flatten_sum))) + (((dst_negative_code_flatten_sum) + (dst_negative_scale_flatten_sum)) * S ((dst_negative_code_flatten_sum) + (dst_negative_scale_flatten_sum)) + ((dst_negative_scale_flatten_sum) + (dst_negative_scale_flatten_sum)))) + ((((dst_negative_code_flatten_sum) + (dst_negative_scale_flatten_sum)) * S ((dst_negative_code_flatten_sum) + (dst_negative_scale_flatten_sum)) + ((dst_negative_scale_flatten_sum) + (dst_negative_scale_flatten_sum))) + (((dst_negative_code_flatten_sum) + (dst_negative_scale_flatten_sum)) * S ((dst_negative_code_flatten_sum) + (dst_negative_scale_flatten_sum)) + ((dst_negative_scale_flatten_sum) + (dst_negative_scale_flatten_sum)))))) /\ (((exists fs_u_dst_flatten_sumpositive fs_v_dst_flatten_sumpositive. ((((exists fs_h_dst_flatten_sumpositive_body_start. fs_h_dst_flatten_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_sumpositive)) /\ exists fs_q_dst_flatten_sumpositive_body_start. fs_u_dst_flatten_sumpositive = fs_q_dst_flatten_sumpositive_body_start * S ((S (0)) * fs_v_dst_flatten_sumpositive) + (0))) /\ ((((exists fs_h_dst_flatten_sumpositive_body_terminal. fs_h_dst_flatten_sumpositive_body_terminal + S (dst_positive_sum_flatten_sum) = S ((S (m)) * fs_v_dst_flatten_sumpositive)) /\ exists fs_q_dst_flatten_sumpositive_body_terminal. fs_u_dst_flatten_sumpositive = fs_q_dst_flatten_sumpositive_body_terminal * S ((S (m)) * fs_v_dst_flatten_sumpositive) + (dst_positive_sum_flatten_sum))) /\ forall fs_i_dst_flatten_sumpositive_body_steps. (exists fs_lt_dst_flatten_sumpositive_body_steps_bound. fs_lt_dst_flatten_sumpositive_body_steps_bound + S fs_i_dst_flatten_sumpositive_body_steps = m) -> exists fs_a_dst_flatten_sumpositive_body_steps fs_r_dst_flatten_sumpositive_body_steps fs_s_dst_flatten_sumpositive_body_steps. ((((exists fs_h_dst_flatten_sumpositive_body_steps_summand. fs_h_dst_flatten_sumpositive_body_steps_summand + S (fs_a_dst_flatten_sumpositive_body_steps) = S ((S (fs_i_dst_flatten_sumpositive_body_steps)) * dst_positive_scale_flatten_sum)) /\ exists fs_q_dst_flatten_sumpositive_body_steps_summand. dst_positive_code_flatten_sum = fs_q_dst_flatten_sumpositive_body_steps_summand * S ((S (fs_i_dst_flatten_sumpositive_body_steps)) * dst_positive_scale_flatten_sum) + (fs_a_dst_flatten_sumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_sumpositive_body_steps_partial. fs_h_dst_flatten_sumpositive_body_steps_partial + S (fs_r_dst_flatten_sumpositive_body_steps) = S ((S (fs_i_dst_flatten_sumpositive_body_steps)) * fs_v_dst_flatten_sumpositive)) /\ exists fs_q_dst_flatten_sumpositive_body_steps_partial. fs_u_dst_flatten_sumpositive = fs_q_dst_flatten_sumpositive_body_steps_partial * S ((S (fs_i_dst_flatten_sumpositive_body_steps)) * fs_v_dst_flatten_sumpositive) + (fs_r_dst_flatten_sumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_sumpositive_body_steps_successor. fs_h_dst_flatten_sumpositive_body_steps_successor + S (fs_s_dst_flatten_sumpositive_body_steps) = S ((S (S fs_i_dst_flatten_sumpositive_body_steps)) * fs_v_dst_flatten_sumpositive)) /\ exists fs_q_dst_flatten_sumpositive_body_steps_successor. fs_u_dst_flatten_sumpositive = fs_q_dst_flatten_sumpositive_body_steps_successor * S ((S (S fs_i_dst_flatten_sumpositive_body_steps)) * fs_v_dst_flatten_sumpositive) + (fs_s_dst_flatten_sumpositive_body_steps))) /\ fs_s_dst_flatten_sumpositive_body_steps = fs_r_dst_flatten_sumpositive_body_steps + fs_a_dst_flatten_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_flatten_sumnegative fs_v_dst_flatten_sumnegative. ((((exists fs_h_dst_flatten_sumnegative_body_start. fs_h_dst_flatten_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_sumnegative)) /\ exists fs_q_dst_flatten_sumnegative_body_start. fs_u_dst_flatten_sumnegative = fs_q_dst_flatten_sumnegative_body_start * S ((S (0)) * fs_v_dst_flatten_sumnegative) + (0))) /\ ((((exists fs_h_dst_flatten_sumnegative_body_terminal. fs_h_dst_flatten_sumnegative_body_terminal + S (dst_negative_sum_flatten_sum) = S ((S (m)) * fs_v_dst_flatten_sumnegative)) /\ exists fs_q_dst_flatten_sumnegative_body_terminal. fs_u_dst_flatten_sumnegative = fs_q_dst_flatten_sumnegative_body_terminal * S ((S (m)) * fs_v_dst_flatten_sumnegative) + (dst_negative_sum_flatten_sum))) /\ forall fs_i_dst_flatten_sumnegative_body_steps. (exists fs_lt_dst_flatten_sumnegative_body_steps_bound. fs_lt_dst_flatten_sumnegative_body_steps_bound + S fs_i_dst_flatten_sumnegative_body_steps = m) -> exists fs_a_dst_flatten_sumnegative_body_steps fs_r_dst_flatten_sumnegative_body_steps fs_s_dst_flatten_sumnegative_body_steps. ((((exists fs_h_dst_flatten_sumnegative_body_steps_summand. fs_h_dst_flatten_sumnegative_body_steps_summand + S (fs_a_dst_flatten_sumnegative_body_steps) = S ((S (fs_i_dst_flatten_sumnegative_body_steps)) * dst_negative_scale_flatten_sum)) /\ exists fs_q_dst_flatten_sumnegative_body_steps_summand. dst_negative_code_flatten_sum = fs_q_dst_flatten_sumnegative_body_steps_summand * S ((S (fs_i_dst_flatten_sumnegative_body_steps)) * dst_negative_scale_flatten_sum) + (fs_a_dst_flatten_sumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_sumnegative_body_steps_partial. fs_h_dst_flatten_sumnegative_body_steps_partial + S (fs_r_dst_flatten_sumnegative_body_steps) = S ((S (fs_i_dst_flatten_sumnegative_body_steps)) * fs_v_dst_flatten_sumnegative)) /\ exists fs_q_dst_flatten_sumnegative_body_steps_partial. fs_u_dst_flatten_sumnegative = fs_q_dst_flatten_sumnegative_body_steps_partial * S ((S (fs_i_dst_flatten_sumnegative_body_steps)) * fs_v_dst_flatten_sumnegative) + (fs_r_dst_flatten_sumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_sumnegative_body_steps_successor. fs_h_dst_flatten_sumnegative_body_steps_successor + S (fs_s_dst_flatten_sumnegative_body_steps) = S ((S (S fs_i_dst_flatten_sumnegative_body_steps)) * fs_v_dst_flatten_sumnegative)) /\ exists fs_q_dst_flatten_sumnegative_body_steps_successor. fs_u_dst_flatten_sumnegative = fs_q_dst_flatten_sumnegative_body_steps_successor * S ((S (S fs_i_dst_flatten_sumnegative_body_steps)) * fs_v_dst_flatten_sumnegative) + (fs_s_dst_flatten_sumnegative_body_steps))) /\ fs_s_dst_flatten_sumnegative_body_steps = fs_r_dst_flatten_sumnegative_body_steps + fs_a_dst_flatten_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_flatten_sumresult ge_balance_negative_flatten_sumresult. (((((z) = 2 * (ge_balance_positive_flatten_sumresult) /\ (ge_balance_negative_flatten_sumresult) = 0) \/ exists ge_signed_half_flatten_sumresultdecode. (((z) = 2 * ge_signed_half_flatten_sumresultdecode + 1 /\ (ge_balance_positive_flatten_sumresult) = 0) /\ (ge_balance_negative_flatten_sumresult) = S ge_signed_half_flatten_sumresultdecode))) /\ ((dst_positive_sum_flatten_sum) + ge_balance_negative_flatten_sumresult = (dst_negative_sum_flatten_sum) + ge_balance_positive_flatten_sumresult))))))))) -> (exists srs_slice_flatten_result. ((((exists dst_positive_code_flatten_resultslicesource_table dst_positive_scale_flatten_resultslicesource_table dst_negative_code_flatten_resultslicesource_table dst_negative_scale_flatten_resultslicesource_table. (((F) = (((((dst_positive_code_flatten_resultslicesource_table) + (dst_positive_scale_flatten_resultslicesource_table)) * S ((dst_positive_code_flatten_resultslicesource_table) + (dst_positive_scale_flatten_resultslicesource_table)) + ((dst_positive_scale_flatten_resultslicesource_table) + (dst_positive_scale_flatten_resultslicesource_table))) + (((dst_negative_code_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)) * S ((dst_negative_code_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)) + ((dst_negative_scale_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)))) * S ((((dst_positive_code_flatten_resultslicesource_table) + (dst_positive_scale_flatten_resultslicesource_table)) * S ((dst_positive_code_flatten_resultslicesource_table) + (dst_positive_scale_flatten_resultslicesource_table)) + ((dst_positive_scale_flatten_resultslicesource_table) + (dst_positive_scale_flatten_resultslicesource_table))) + (((dst_negative_code_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)) * S ((dst_negative_code_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)) + ((dst_negative_scale_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)))) + ((((dst_negative_code_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)) * S ((dst_negative_code_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)) + ((dst_negative_scale_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table))) + (((dst_negative_code_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)) * S ((dst_negative_code_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)) + ((dst_negative_scale_flatten_resultslicesource_table) + (dst_negative_scale_flatten_resultslicesource_table)))))) /\ (forall dst_index_flatten_resultslicesource_table. (exists pvs_le_gap_flatten_resultslicesource_tabledomain. pvs_le_gap_flatten_resultslicesource_tabledomain + (dst_index_flatten_resultslicesource_table) = (0)) -> exists dst_positive_flatten_resultslicesource_table dst_negative_flatten_resultslicesource_table dst_value_flatten_resultslicesource_table. ((((exists ff_h_pvs_flatten_resultslicesource_tableentrypositive. ff_h_pvs_flatten_resultslicesource_tableentrypositive + S (dst_positive_flatten_resultslicesource_table) = S ((S (dst_index_flatten_resultslicesource_table)) * dst_positive_scale_flatten_resultslicesource_table)) /\ exists ff_q_pvs_flatten_resultslicesource_tableentrypositive. dst_positive_code_flatten_resultslicesource_table = ff_q_pvs_flatten_resultslicesource_tableentrypositive * S ((S (dst_index_flatten_resultslicesource_table)) * dst_positive_scale_flatten_resultslicesource_table) + (dst_positive_flatten_resultslicesource_table))) /\ (((((exists ff_h_pvs_flatten_resultslicesource_tableentrynegative. ff_h_pvs_flatten_resultslicesource_tableentrynegative + S (dst_negative_flatten_resultslicesource_table) = S ((S (dst_index_flatten_resultslicesource_table)) * dst_negative_scale_flatten_resultslicesource_table)) /\ exists ff_q_pvs_flatten_resultslicesource_tableentrynegative. dst_negative_code_flatten_resultslicesource_table = ff_q_pvs_flatten_resultslicesource_tableentrynegative * S ((S (dst_index_flatten_resultslicesource_table)) * dst_negative_scale_flatten_resultslicesource_table) + (dst_negative_flatten_resultslicesource_table))) /\ (exists ge_balance_positive_flatten_resultslicesource_tableentryvalue ge_balance_negative_flatten_resultslicesource_tableentryvalue. (((((dst_value_flatten_resultslicesource_table) = 2 * (ge_balance_positive_flatten_resultslicesource_tableentryvalue) /\ (ge_balance_negative_flatten_resultslicesource_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_resultslicesource_tableentryvaluedecode. (((dst_value_flatten_resultslicesource_table) = 2 * ge_signed_half_flatten_resultslicesource_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_resultslicesource_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_resultslicesource_tableentryvalue) = S ge_signed_half_flatten_resultslicesource_tableentryvaluedecode))) /\ ((dst_positive_flatten_resultslicesource_table) + ge_balance_negative_flatten_resultslicesource_tableentryvalue = (dst_negative_flatten_resultslicesource_table) + ge_balance_positive_flatten_resultslicesource_tableentryvalue))))))))) /\ (((exists dst_positive_code_flatten_resultsliceoutput_table dst_positive_scale_flatten_resultsliceoutput_table dst_negative_code_flatten_resultsliceoutput_table dst_negative_scale_flatten_resultsliceoutput_table. (((srs_slice_flatten_result) = (((((dst_positive_code_flatten_resultsliceoutput_table) + (dst_positive_scale_flatten_resultsliceoutput_table)) * S ((dst_positive_code_flatten_resultsliceoutput_table) + (dst_positive_scale_flatten_resultsliceoutput_table)) + ((dst_positive_scale_flatten_resultsliceoutput_table) + (dst_positive_scale_flatten_resultsliceoutput_table))) + (((dst_negative_code_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)) * S ((dst_negative_code_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)) + ((dst_negative_scale_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)))) * S ((((dst_positive_code_flatten_resultsliceoutput_table) + (dst_positive_scale_flatten_resultsliceoutput_table)) * S ((dst_positive_code_flatten_resultsliceoutput_table) + (dst_positive_scale_flatten_resultsliceoutput_table)) + ((dst_positive_scale_flatten_resultsliceoutput_table) + (dst_positive_scale_flatten_resultsliceoutput_table))) + (((dst_negative_code_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)) * S ((dst_negative_code_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)) + ((dst_negative_scale_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)))) + ((((dst_negative_code_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)) * S ((dst_negative_code_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)) + ((dst_negative_scale_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table))) + (((dst_negative_code_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)) * S ((dst_negative_code_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)) + ((dst_negative_scale_flatten_resultsliceoutput_table) + (dst_negative_scale_flatten_resultsliceoutput_table)))))) /\ (forall dst_index_flatten_resultsliceoutput_table. (exists pvs_le_gap_flatten_resultsliceoutput_tabledomain. pvs_le_gap_flatten_resultsliceoutput_tabledomain + (dst_index_flatten_resultsliceoutput_table) = (m*n)) -> exists dst_positive_flatten_resultsliceoutput_table dst_negative_flatten_resultsliceoutput_table dst_value_flatten_resultsliceoutput_table. ((((exists ff_h_pvs_flatten_resultsliceoutput_tableentrypositive. ff_h_pvs_flatten_resultsliceoutput_tableentrypositive + S (dst_positive_flatten_resultsliceoutput_table) = S ((S (dst_index_flatten_resultsliceoutput_table)) * dst_positive_scale_flatten_resultsliceoutput_table)) /\ exists ff_q_pvs_flatten_resultsliceoutput_tableentrypositive. dst_positive_code_flatten_resultsliceoutput_table = ff_q_pvs_flatten_resultsliceoutput_tableentrypositive * S ((S (dst_index_flatten_resultsliceoutput_table)) * dst_positive_scale_flatten_resultsliceoutput_table) + (dst_positive_flatten_resultsliceoutput_table))) /\ (((((exists ff_h_pvs_flatten_resultsliceoutput_tableentrynegative. ff_h_pvs_flatten_resultsliceoutput_tableentrynegative + S (dst_negative_flatten_resultsliceoutput_table) = S ((S (dst_index_flatten_resultsliceoutput_table)) * dst_negative_scale_flatten_resultsliceoutput_table)) /\ exists ff_q_pvs_flatten_resultsliceoutput_tableentrynegative. dst_negative_code_flatten_resultsliceoutput_table = ff_q_pvs_flatten_resultsliceoutput_tableentrynegative * S ((S (dst_index_flatten_resultsliceoutput_table)) * dst_negative_scale_flatten_resultsliceoutput_table) + (dst_negative_flatten_resultsliceoutput_table))) /\ (exists ge_balance_positive_flatten_resultsliceoutput_tableentryvalue ge_balance_negative_flatten_resultsliceoutput_tableentryvalue. (((((dst_value_flatten_resultsliceoutput_table) = 2 * (ge_balance_positive_flatten_resultsliceoutput_tableentryvalue) /\ (ge_balance_negative_flatten_resultsliceoutput_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_resultsliceoutput_tableentryvaluedecode. (((dst_value_flatten_resultsliceoutput_table) = 2 * ge_signed_half_flatten_resultsliceoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_resultsliceoutput_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_resultsliceoutput_tableentryvalue) = S ge_signed_half_flatten_resultsliceoutput_tableentryvaluedecode))) /\ ((dst_positive_flatten_resultsliceoutput_table) + ge_balance_negative_flatten_resultsliceoutput_tableentryvalue = (dst_negative_flatten_resultsliceoutput_table) + ge_balance_positive_flatten_resultsliceoutput_tableentryvalue))))))))) /\ (forall srs_index_flatten_resultslice. (exists pvs_gap_flatten_resultslicebound. pvs_gap_flatten_resultslicebound + S (srs_index_flatten_resultslice) = (m*n)) -> exists srs_value_flatten_resultslice. (((exists dst_positive_code_flatten_resultsliceentrysource dst_positive_scale_flatten_resultsliceentrysource dst_negative_code_flatten_resultsliceentrysource dst_negative_scale_flatten_resultsliceentrysource dst_positive_flatten_resultsliceentrysource dst_negative_flatten_resultsliceentrysource. (((F) = (((((dst_positive_code_flatten_resultsliceentrysource) + (dst_positive_scale_flatten_resultsliceentrysource)) * S ((dst_positive_code_flatten_resultsliceentrysource) + (dst_positive_scale_flatten_resultsliceentrysource)) + ((dst_positive_scale_flatten_resultsliceentrysource) + (dst_positive_scale_flatten_resultsliceentrysource))) + (((dst_negative_code_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)) * S ((dst_negative_code_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)) + ((dst_negative_scale_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)))) * S ((((dst_positive_code_flatten_resultsliceentrysource) + (dst_positive_scale_flatten_resultsliceentrysource)) * S ((dst_positive_code_flatten_resultsliceentrysource) + (dst_positive_scale_flatten_resultsliceentrysource)) + ((dst_positive_scale_flatten_resultsliceentrysource) + (dst_positive_scale_flatten_resultsliceentrysource))) + (((dst_negative_code_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)) * S ((dst_negative_code_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)) + ((dst_negative_scale_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)))) + ((((dst_negative_code_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)) * S ((dst_negative_code_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)) + ((dst_negative_scale_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource))) + (((dst_negative_code_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)) * S ((dst_negative_code_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)) + ((dst_negative_scale_flatten_resultsliceentrysource) + (dst_negative_scale_flatten_resultsliceentrysource)))))) /\ (((((exists ff_h_pvs_flatten_resultsliceentrysourcepositive. ff_h_pvs_flatten_resultsliceentrysourcepositive + S (dst_positive_flatten_resultsliceentrysource) = S ((S (((0) + ((1) * (srs_index_flatten_resultslice))))) * dst_positive_scale_flatten_resultsliceentrysource)) /\ exists ff_q_pvs_flatten_resultsliceentrysourcepositive. dst_positive_code_flatten_resultsliceentrysource = ff_q_pvs_flatten_resultsliceentrysourcepositive * S ((S (((0) + ((1) * (srs_index_flatten_resultslice))))) * dst_positive_scale_flatten_resultsliceentrysource) + (dst_positive_flatten_resultsliceentrysource))) /\ (((((exists ff_h_pvs_flatten_resultsliceentrysourcenegative. ff_h_pvs_flatten_resultsliceentrysourcenegative + S (dst_negative_flatten_resultsliceentrysource) = S ((S (((0) + ((1) * (srs_index_flatten_resultslice))))) * dst_negative_scale_flatten_resultsliceentrysource)) /\ exists ff_q_pvs_flatten_resultsliceentrysourcenegative. dst_negative_code_flatten_resultsliceentrysource = ff_q_pvs_flatten_resultsliceentrysourcenegative * S ((S (((0) + ((1) * (srs_index_flatten_resultslice))))) * dst_negative_scale_flatten_resultsliceentrysource) + (dst_negative_flatten_resultsliceentrysource))) /\ (exists ge_balance_positive_flatten_resultsliceentrysourcevalue ge_balance_negative_flatten_resultsliceentrysourcevalue. (((((srs_value_flatten_resultslice) = 2 * (ge_balance_positive_flatten_resultsliceentrysourcevalue) /\ (ge_balance_negative_flatten_resultsliceentrysourcevalue) = 0) \/ exists ge_signed_half_flatten_resultsliceentrysourcevaluedecode. (((srs_value_flatten_resultslice) = 2 * ge_signed_half_flatten_resultsliceentrysourcevaluedecode + 1 /\ (ge_balance_positive_flatten_resultsliceentrysourcevalue) = 0) /\ (ge_balance_negative_flatten_resultsliceentrysourcevalue) = S ge_signed_half_flatten_resultsliceentrysourcevaluedecode))) /\ ((dst_positive_flatten_resultsliceentrysource) + ge_balance_negative_flatten_resultsliceentrysourcevalue = (dst_negative_flatten_resultsliceentrysource) + ge_balance_positive_flatten_resultsliceentrysourcevalue))))))))) /\ (exists dst_positive_code_flatten_resultsliceentryoutput dst_positive_scale_flatten_resultsliceentryoutput dst_negative_code_flatten_resultsliceentryoutput dst_negative_scale_flatten_resultsliceentryoutput dst_positive_flatten_resultsliceentryoutput dst_negative_flatten_resultsliceentryoutput. (((srs_slice_flatten_result) = (((((dst_positive_code_flatten_resultsliceentryoutput) + (dst_positive_scale_flatten_resultsliceentryoutput)) * S ((dst_positive_code_flatten_resultsliceentryoutput) + (dst_positive_scale_flatten_resultsliceentryoutput)) + ((dst_positive_scale_flatten_resultsliceentryoutput) + (dst_positive_scale_flatten_resultsliceentryoutput))) + (((dst_negative_code_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)) * S ((dst_negative_code_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)) + ((dst_negative_scale_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)))) * S ((((dst_positive_code_flatten_resultsliceentryoutput) + (dst_positive_scale_flatten_resultsliceentryoutput)) * S ((dst_positive_code_flatten_resultsliceentryoutput) + (dst_positive_scale_flatten_resultsliceentryoutput)) + ((dst_positive_scale_flatten_resultsliceentryoutput) + (dst_positive_scale_flatten_resultsliceentryoutput))) + (((dst_negative_code_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)) * S ((dst_negative_code_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)) + ((dst_negative_scale_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)))) + ((((dst_negative_code_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)) * S ((dst_negative_code_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)) + ((dst_negative_scale_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput))) + (((dst_negative_code_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)) * S ((dst_negative_code_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)) + ((dst_negative_scale_flatten_resultsliceentryoutput) + (dst_negative_scale_flatten_resultsliceentryoutput)))))) /\ (((((exists ff_h_pvs_flatten_resultsliceentryoutputpositive. ff_h_pvs_flatten_resultsliceentryoutputpositive + S (dst_positive_flatten_resultsliceentryoutput) = S ((S (srs_index_flatten_resultslice)) * dst_positive_scale_flatten_resultsliceentryoutput)) /\ exists ff_q_pvs_flatten_resultsliceentryoutputpositive. dst_positive_code_flatten_resultsliceentryoutput = ff_q_pvs_flatten_resultsliceentryoutputpositive * S ((S (srs_index_flatten_resultslice)) * dst_positive_scale_flatten_resultsliceentryoutput) + (dst_positive_flatten_resultsliceentryoutput))) /\ (((((exists ff_h_pvs_flatten_resultsliceentryoutputnegative. ff_h_pvs_flatten_resultsliceentryoutputnegative + S (dst_negative_flatten_resultsliceentryoutput) = S ((S (srs_index_flatten_resultslice)) * dst_negative_scale_flatten_resultsliceentryoutput)) /\ exists ff_q_pvs_flatten_resultsliceentryoutputnegative. dst_negative_code_flatten_resultsliceentryoutput = ff_q_pvs_flatten_resultsliceentryoutputnegative * S ((S (srs_index_flatten_resultslice)) * dst_negative_scale_flatten_resultsliceentryoutput) + (dst_negative_flatten_resultsliceentryoutput))) /\ (exists ge_balance_positive_flatten_resultsliceentryoutputvalue ge_balance_negative_flatten_resultsliceentryoutputvalue. (((((srs_value_flatten_resultslice) = 2 * (ge_balance_positive_flatten_resultsliceentryoutputvalue) /\ (ge_balance_negative_flatten_resultsliceentryoutputvalue) = 0) \/ exists ge_signed_half_flatten_resultsliceentryoutputvaluedecode. (((srs_value_flatten_resultslice) = 2 * ge_signed_half_flatten_resultsliceentryoutputvaluedecode + 1 /\ (ge_balance_positive_flatten_resultsliceentryoutputvalue) = 0) /\ (ge_balance_negative_flatten_resultsliceentryoutputvalue) = S ge_signed_half_flatten_resultsliceentryoutputvaluedecode))) /\ ((dst_positive_flatten_resultsliceentryoutput) + ge_balance_negative_flatten_resultsliceentryoutputvalue = (dst_negative_flatten_resultsliceentryoutput) + ge_balance_positive_flatten_resultsliceentryoutputvalue)))))))))))))))) /\ (exists dst_positive_code_flatten_resultsum dst_positive_scale_flatten_resultsum dst_negative_code_flatten_resultsum dst_negative_scale_flatten_resultsum dst_positive_sum_flatten_resultsum dst_negative_sum_flatten_resultsum. (((srs_slice_flatten_result) = (((((dst_positive_code_flatten_resultsum) + (dst_positive_scale_flatten_resultsum)) * S ((dst_positive_code_flatten_resultsum) + (dst_positive_scale_flatten_resultsum)) + ((dst_positive_scale_flatten_resultsum) + (dst_positive_scale_flatten_resultsum))) + (((dst_negative_code_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)) * S ((dst_negative_code_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)) + ((dst_negative_scale_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)))) * S ((((dst_positive_code_flatten_resultsum) + (dst_positive_scale_flatten_resultsum)) * S ((dst_positive_code_flatten_resultsum) + (dst_positive_scale_flatten_resultsum)) + ((dst_positive_scale_flatten_resultsum) + (dst_positive_scale_flatten_resultsum))) + (((dst_negative_code_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)) * S ((dst_negative_code_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)) + ((dst_negative_scale_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)))) + ((((dst_negative_code_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)) * S ((dst_negative_code_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)) + ((dst_negative_scale_flatten_resultsum) + (dst_negative_scale_flatten_resultsum))) + (((dst_negative_code_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)) * S ((dst_negative_code_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)) + ((dst_negative_scale_flatten_resultsum) + (dst_negative_scale_flatten_resultsum)))))) /\ (((exists fs_u_dst_flatten_resultsumpositive fs_v_dst_flatten_resultsumpositive. ((((exists fs_h_dst_flatten_resultsumpositive_body_start. fs_h_dst_flatten_resultsumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_resultsumpositive)) /\ exists fs_q_dst_flatten_resultsumpositive_body_start. fs_u_dst_flatten_resultsumpositive = fs_q_dst_flatten_resultsumpositive_body_start * S ((S (0)) * fs_v_dst_flatten_resultsumpositive) + (0))) /\ ((((exists fs_h_dst_flatten_resultsumpositive_body_terminal. fs_h_dst_flatten_resultsumpositive_body_terminal + S (dst_positive_sum_flatten_resultsum) = S ((S (m*n)) * fs_v_dst_flatten_resultsumpositive)) /\ exists fs_q_dst_flatten_resultsumpositive_body_terminal. fs_u_dst_flatten_resultsumpositive = fs_q_dst_flatten_resultsumpositive_body_terminal * S ((S (m*n)) * fs_v_dst_flatten_resultsumpositive) + (dst_positive_sum_flatten_resultsum))) /\ forall fs_i_dst_flatten_resultsumpositive_body_steps. (exists fs_lt_dst_flatten_resultsumpositive_body_steps_bound. fs_lt_dst_flatten_resultsumpositive_body_steps_bound + S fs_i_dst_flatten_resultsumpositive_body_steps = m*n) -> exists fs_a_dst_flatten_resultsumpositive_body_steps fs_r_dst_flatten_resultsumpositive_body_steps fs_s_dst_flatten_resultsumpositive_body_steps. ((((exists fs_h_dst_flatten_resultsumpositive_body_steps_summand. fs_h_dst_flatten_resultsumpositive_body_steps_summand + S (fs_a_dst_flatten_resultsumpositive_body_steps) = S ((S (fs_i_dst_flatten_resultsumpositive_body_steps)) * dst_positive_scale_flatten_resultsum)) /\ exists fs_q_dst_flatten_resultsumpositive_body_steps_summand. dst_positive_code_flatten_resultsum = fs_q_dst_flatten_resultsumpositive_body_steps_summand * S ((S (fs_i_dst_flatten_resultsumpositive_body_steps)) * dst_positive_scale_flatten_resultsum) + (fs_a_dst_flatten_resultsumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_resultsumpositive_body_steps_partial. fs_h_dst_flatten_resultsumpositive_body_steps_partial + S (fs_r_dst_flatten_resultsumpositive_body_steps) = S ((S (fs_i_dst_flatten_resultsumpositive_body_steps)) * fs_v_dst_flatten_resultsumpositive)) /\ exists fs_q_dst_flatten_resultsumpositive_body_steps_partial. fs_u_dst_flatten_resultsumpositive = fs_q_dst_flatten_resultsumpositive_body_steps_partial * S ((S (fs_i_dst_flatten_resultsumpositive_body_steps)) * fs_v_dst_flatten_resultsumpositive) + (fs_r_dst_flatten_resultsumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_resultsumpositive_body_steps_successor. fs_h_dst_flatten_resultsumpositive_body_steps_successor + S (fs_s_dst_flatten_resultsumpositive_body_steps) = S ((S (S fs_i_dst_flatten_resultsumpositive_body_steps)) * fs_v_dst_flatten_resultsumpositive)) /\ exists fs_q_dst_flatten_resultsumpositive_body_steps_successor. fs_u_dst_flatten_resultsumpositive = fs_q_dst_flatten_resultsumpositive_body_steps_successor * S ((S (S fs_i_dst_flatten_resultsumpositive_body_steps)) * fs_v_dst_flatten_resultsumpositive) + (fs_s_dst_flatten_resultsumpositive_body_steps))) /\ fs_s_dst_flatten_resultsumpositive_body_steps = fs_r_dst_flatten_resultsumpositive_body_steps + fs_a_dst_flatten_resultsumpositive_body_steps)))))) /\ (((exists fs_u_dst_flatten_resultsumnegative fs_v_dst_flatten_resultsumnegative. ((((exists fs_h_dst_flatten_resultsumnegative_body_start. fs_h_dst_flatten_resultsumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_resultsumnegative)) /\ exists fs_q_dst_flatten_resultsumnegative_body_start. fs_u_dst_flatten_resultsumnegative = fs_q_dst_flatten_resultsumnegative_body_start * S ((S (0)) * fs_v_dst_flatten_resultsumnegative) + (0))) /\ ((((exists fs_h_dst_flatten_resultsumnegative_body_terminal. fs_h_dst_flatten_resultsumnegative_body_terminal + S (dst_negative_sum_flatten_resultsum) = S ((S (m*n)) * fs_v_dst_flatten_resultsumnegative)) /\ exists fs_q_dst_flatten_resultsumnegative_body_terminal. fs_u_dst_flatten_resultsumnegative = fs_q_dst_flatten_resultsumnegative_body_terminal * S ((S (m*n)) * fs_v_dst_flatten_resultsumnegative) + (dst_negative_sum_flatten_resultsum))) /\ forall fs_i_dst_flatten_resultsumnegative_body_steps. (exists fs_lt_dst_flatten_resultsumnegative_body_steps_bound. fs_lt_dst_flatten_resultsumnegative_body_steps_bound + S fs_i_dst_flatten_resultsumnegative_body_steps = m*n) -> exists fs_a_dst_flatten_resultsumnegative_body_steps fs_r_dst_flatten_resultsumnegative_body_steps fs_s_dst_flatten_resultsumnegative_body_steps. ((((exists fs_h_dst_flatten_resultsumnegative_body_steps_summand. fs_h_dst_flatten_resultsumnegative_body_steps_summand + S (fs_a_dst_flatten_resultsumnegative_body_steps) = S ((S (fs_i_dst_flatten_resultsumnegative_body_steps)) * dst_negative_scale_flatten_resultsum)) /\ exists fs_q_dst_flatten_resultsumnegative_body_steps_summand. dst_negative_code_flatten_resultsum = fs_q_dst_flatten_resultsumnegative_body_steps_summand * S ((S (fs_i_dst_flatten_resultsumnegative_body_steps)) * dst_negative_scale_flatten_resultsum) + (fs_a_dst_flatten_resultsumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_resultsumnegative_body_steps_partial. fs_h_dst_flatten_resultsumnegative_body_steps_partial + S (fs_r_dst_flatten_resultsumnegative_body_steps) = S ((S (fs_i_dst_flatten_resultsumnegative_body_steps)) * fs_v_dst_flatten_resultsumnegative)) /\ exists fs_q_dst_flatten_resultsumnegative_body_steps_partial. fs_u_dst_flatten_resultsumnegative = fs_q_dst_flatten_resultsumnegative_body_steps_partial * S ((S (fs_i_dst_flatten_resultsumnegative_body_steps)) * fs_v_dst_flatten_resultsumnegative) + (fs_r_dst_flatten_resultsumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_resultsumnegative_body_steps_successor. fs_h_dst_flatten_resultsumnegative_body_steps_successor + S (fs_s_dst_flatten_resultsumnegative_body_steps) = S ((S (S fs_i_dst_flatten_resultsumnegative_body_steps)) * fs_v_dst_flatten_resultsumnegative)) /\ exists fs_q_dst_flatten_resultsumnegative_body_steps_successor. fs_u_dst_flatten_resultsumnegative = fs_q_dst_flatten_resultsumnegative_body_steps_successor * S ((S (S fs_i_dst_flatten_resultsumnegative_body_steps)) * fs_v_dst_flatten_resultsumnegative) + (fs_s_dst_flatten_resultsumnegative_body_steps))) /\ fs_s_dst_flatten_resultsumnegative_body_steps = fs_r_dst_flatten_resultsumnegative_body_steps + fs_a_dst_flatten_resultsumnegative_body_steps)))))) /\ (exists ge_balance_positive_flatten_resultsumresult ge_balance_negative_flatten_resultsumresult. (((((z) = 2 * (ge_balance_positive_flatten_resultsumresult) /\ (ge_balance_negative_flatten_resultsumresult) = 0) \/ exists ge_signed_half_flatten_resultsumresultdecode. (((z) = 2 * ge_signed_half_flatten_resultsumresultdecode + 1 /\ (ge_balance_positive_flatten_resultsumresult) = 0) /\ (ge_balance_negative_flatten_resultsumresult) = S ge_signed_half_flatten_resultsumresultdecode))) /\ ((dst_positive_sum_flatten_resultsum) + ge_balance_negative_flatten_resultsumresult = (dst_negative_sum_flatten_resultsum) + ge_balance_positive_flatten_resultsumresult)))))))))))

Constructive proof overview

Generated structural guide

Actual row sums concatenate into the genuine flattened source sum by row-count induction, including either zero dimension.

The unchanged tactic script uses 12 declared prerequisites and contains 121 exact native proof lines.

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

Proof neighborhood

Direct dependencies

divisor_signed_sum_empty_value Alpha theorem; checked-use authorized mul_zero_left Stable theorem; checked-use authorized signed_rectangular_slice_sum_empty_exists Alpha theorem; checked-use authorized divisor_signed_sum_successor_decompose Alpha theorem; checked-use authorized signed_rectangular_row_sums_restrict_outer Alpha theorem; checked-use authorized signed_rectangular_row_sums_lookup Alpha theorem; checked-use authorized le_refl Stable theorem; checked-use authorized zero_add Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized one_mul Stable theorem; checked-use authorized mul_succ_left Stable theorem; checked-use authorized MX001A signed_slice_sum_concatenate

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

121 script commands · 20 reading checkpoints · 7 local claims

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

Named ingredients (1)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Induction on mL1–7

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L1
    induction m
  2. L2
    intro F
  3. L3
    intro R
  4. L4
    intro n
  5. L5
    intro z
  6. L6
    intro hr
  7. L7
    intro hs
02Separate the logical casesL8–9

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

  1. L8
    cases hr
  2. L9
    cases hr_right
03Establish hzL10–16

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

  1. L10
    have hz : z=0
  2. L11
    specialize divisor_signed_sum_empty_value (R)
  3. L12
    specialize divisor_signed_sum_empty_value (z)
  4. L13
    apply divisor_signed_sum_empty_value
  5. L14
    exact hs
  6. L15
    rewrite hz
  7. L16
    rewrite hz
04Establish hlengthL17–26

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

  1. L17
    have hlength : 0*n=0
  2. L18
    specialize mul_zero_left (n)
  3. L19
    apply mul_zero_left
  4. L20
    rewrite hlength
  5. L21
    rewrite hlength
  6. L22
    rewrite hlength
  7. L23
    rewrite hlength
  8. L24
    rewrite hlength
  9. L25
    rewrite hlength
  10. L26
    rewrite hlength
05Calculate and transport equalitiesL27–27

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

  1. L27
    rewrite hlength
06Use earlier factsL28–32

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

  1. L28
    specialize signed_rectangular_slice_sum_empty_exists (F)
  2. L29
    specialize signed_rectangular_slice_sum_empty_exists (0)
  3. L30
    specialize signed_rectangular_slice_sum_empty_exists (1)
  4. L31
    apply signed_rectangular_slice_sum_empty_exists
  5. L32
    exact hr_left
07Fix variables and assumptionsL33–38

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

  1. L33
    intro F
  2. L34
    intro R
  3. L35
    intro n
  4. L36
    intro z
  5. L37
    intro hr
  6. L38
    intro hs
08Establish hdL39–44

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

  1. L39
    have hd : ∃ a. ∃ b. SignedPrefixSum(R,m,a) ∧ (ArithAt(R,m,b) ∧ SignedAdd(a,b,z))Definitions: SignedAddArithAtSignedPrefixSum
  2. L40
    specialize divisor_signed_sum_successor_decompose (R)
  3. L41
    specialize divisor_signed_sum_successor_decompose (m)
  4. L42
    specialize divisor_signed_sum_successor_decompose (z)
  5. L43
    apply divisor_signed_sum_successor_decompose
  6. L44
    exact hs
09Separate the logical casesL45–48

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

  1. L45
    cases hd
  2. L46
    cases hd_witness
  3. L47
    cases hd_witness_witness
  4. L48
    cases hd_witness_witness_right
10Establish hpL49–58

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

  1. L49
    have hp : SignedSliceSum(F,0,1,m · n,x)Definitions: SignedSliceSum
  2. L50
    specialize IH (F)
  3. L51
    specialize IH (R)
  4. L52
    specialize IH (n)
  5. L53
    specialize IH (x)
  6. L54
    apply IH
  7. L55
    specialize signed_rectangular_row_sums_restrict_outer (F)
  8. L56
    specialize signed_rectangular_row_sums_restrict_outer (R)
  9. L57
    specialize signed_rectangular_row_sums_restrict_outer (0)
  10. L58
    specialize signed_rectangular_row_sums_restrict_outer (n)
11Use earlier factsL59–64

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

  1. L59
    specialize signed_rectangular_row_sums_restrict_outer (1)
  2. L60
    specialize signed_rectangular_row_sums_restrict_outer (m)
  3. L61
    specialize signed_rectangular_row_sums_restrict_outer (n)
  4. L62
    apply signed_rectangular_row_sums_restrict_outer
  5. L63
    exact hr
  6. L64
    exact hd_witness_witness_left
12Establish hlL65–74

Establish this local claim before using it. It is not an additional assumption.

  1. L65
    have hl : SignedSliceSum(F,0 + n · m,1,n,x1)Definitions: SignedSliceSum
  2. L66
    specialize signed_rectangular_row_sums_lookup (F)
  3. L67
    specialize signed_rectangular_row_sums_lookup (R)
  4. L68
    specialize signed_rectangular_row_sums_lookup (0)
  5. L69
    specialize signed_rectangular_row_sums_lookup (n)
  6. L70
    specialize signed_rectangular_row_sums_lookup (1)
  7. L71
    specialize signed_rectangular_row_sums_lookup (S m)
  8. L72
    specialize signed_rectangular_row_sums_lookup (n)
  9. L73
    specialize signed_rectangular_row_sums_lookup (m)
  10. L74
    specialize signed_rectangular_row_sums_lookup (x1)
13Use earlier factsL75–79

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

  1. L75
    apply signed_rectangular_row_sums_lookup
  2. L76
    exact hr
  3. L77
    specialize le_refl (S m)
  4. L78
    apply le_refl
  5. L79
    exact hd_witness_witness_right_left
14Establish hindexL80–89

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

  1. L80
    have hindex : ((0) + ((n) * (m))) = ((0) + ((1) * (m*n)))
  2. L81
    trans n*m
  3. L82
    specialize zero_add (n*m)
  4. L83
    apply zero_add
  5. L84
    trans m*n
  6. L85
    specialize mul_comm (n)
  7. L86
    specialize mul_comm (m)
  8. L87
    apply mul_comm
  9. L88
    symm
  10. L89
    trans 1*(m*n)
15Use earlier factsL90–93

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

  1. L90
    specialize zero_add (1*(m*n))
  2. L91
    apply zero_add
  3. L92
    specialize one_mul (m*n)
  4. L93
    apply one_mul
16Calculate and transport equalitiesL94–97

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

  1. L94
    rewrite hindex at hl
  2. L95
    rewrite hindex at hl
  3. L96
    rewrite hindex at hl
  4. L97
    rewrite hindex at hl
17Establish hlengthL98–107

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

  1. L98
    have hlength : (S m)*n=m*n+n
  2. L99
    specialize mul_succ_left (m)
  3. L100
    specialize mul_succ_left (n)
  4. L101
    apply mul_succ_left
  5. L102
    rewrite hlength
  6. L103
    rewrite hlength
  7. L104
    rewrite hlength
  8. L105
    rewrite hlength
  9. L106
    rewrite hlength
  10. L107
    rewrite hlength
18Calculate and transport equalitiesL108–109

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

  1. L108
    rewrite hlength
  2. L109
    rewrite hlength
19Use earlier factsL110–119

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

  1. L110
    specialize signed_slice_sum_concatenate (n)
  2. L111
    specialize signed_slice_sum_concatenate (F)
  3. L112
    specialize signed_slice_sum_concatenate (0)
  4. L113
    specialize signed_slice_sum_concatenate (1)
  5. L114
    specialize signed_slice_sum_concatenate (m*n)
  6. L115
    specialize signed_slice_sum_concatenate (x)
  7. L116
    specialize signed_slice_sum_concatenate (x1)
  8. L117
    specialize signed_slice_sum_concatenate (z)
  9. L118
    apply signed_slice_sum_concatenate
  10. L119
    exact hp
20Use earlier factsL120–121

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

  1. L120
    exact hl
  2. L121
    exact hd_witness_witness_right_right

Library-wide reading audit

Original exact command ledger · 121 lines
  1. 0001induction m
  2. 0002intro F
  3. 0003intro R
  4. 0004intro n
  5. 0005intro z
  6. 0006intro hr
  7. 0007intro hs
  8. 0008cases hr
  9. 0009cases hr_right
  10. 0010have hz : z=0
  11. 0011specialize divisor_signed_sum_empty_value (R)
  12. 0012specialize divisor_signed_sum_empty_value (z)
  13. 0013apply divisor_signed_sum_empty_value
  14. 0014exact hs
  15. 0015rewrite hz
  16. 0016rewrite hz
  17. 0017have hlength : 0*n=0
  18. 0018specialize mul_zero_left (n)
  19. 0019apply mul_zero_left
  20. 0020rewrite hlength
  21. 0021rewrite hlength
  22. 0022rewrite hlength
  23. 0023rewrite hlength
  24. 0024rewrite hlength
  25. 0025rewrite hlength
  26. 0026rewrite hlength
  27. 0027rewrite hlength
  28. 0028specialize signed_rectangular_slice_sum_empty_exists (F)
  29. 0029specialize signed_rectangular_slice_sum_empty_exists (0)
  30. 0030specialize signed_rectangular_slice_sum_empty_exists (1)
  31. 0031apply signed_rectangular_slice_sum_empty_exists
  32. 0032exact hr_left
  33. 0033intro F
  34. 0034intro R
  35. 0035intro n
  36. 0036intro z
  37. 0037intro hr
  38. 0038intro hs
  39. 0039have hd : exists a b. (((exists dst_positive_code_flatten_prefix_sum dst_positive_scale_flatten_prefix_sum dst_negative_code_flatten_prefix_sum dst_negative_scale_flatten_prefix_sum dst_positive_sum_flatten_prefix_sum dst_negative_sum_flatten_prefix_sum. (((R) = (((((dst_positive_code_flatten_prefix_sum) + (dst_positive_scale_flatten_prefix_sum)) * S ((dst_positive_code_flatten_prefix_sum) + (dst_positive_scale_flatten_prefix_sum)) + ((dst_positive_scale_flatten_prefix_sum) + (dst_positive_scale_flatten_prefix_sum))) + (((dst_negative_code_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)) * S ((dst_negative_code_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)) + ((dst_negative_scale_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)))) * S ((((dst_positive_code_flatten_prefix_sum) + (dst_positive_scale_flatten_prefix_sum)) * S ((dst_positive_code_flatten_prefix_sum) + (dst_positive_scale_flatten_prefix_sum)) + ((dst_positive_scale_flatten_prefix_sum) + (dst_positive_scale_flatten_prefix_sum))) + (((dst_negative_code_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)) * S ((dst_negative_code_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)) + ((dst_negative_scale_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)))) + ((((dst_negative_code_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)) * S ((dst_negative_code_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)) + ((dst_negative_scale_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum))) + (((dst_negative_code_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)) * S ((dst_negative_code_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)) + ((dst_negative_scale_flatten_prefix_sum) + (dst_negative_scale_flatten_prefix_sum)))))) /\ (((exists fs_u_dst_flatten_prefix_sumpositive fs_v_dst_flatten_prefix_sumpositive. ((((exists fs_h_dst_flatten_prefix_sumpositive_body_start. fs_h_dst_flatten_prefix_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_prefix_sumpositive)) /\ exists fs_q_dst_flatten_prefix_sumpositive_body_start. fs_u_dst_flatten_prefix_sumpositive = fs_q_dst_flatten_prefix_sumpositive_body_start * S ((S (0)) * fs_v_dst_flatten_prefix_sumpositive) + (0))) /\ ((((exists fs_h_dst_flatten_prefix_sumpositive_body_terminal. fs_h_dst_flatten_prefix_sumpositive_body_terminal + S (dst_positive_sum_flatten_prefix_sum) = S ((S (m)) * fs_v_dst_flatten_prefix_sumpositive)) /\ exists fs_q_dst_flatten_prefix_sumpositive_body_terminal. fs_u_dst_flatten_prefix_sumpositive = fs_q_dst_flatten_prefix_sumpositive_body_terminal * S ((S (m)) * fs_v_dst_flatten_prefix_sumpositive) + (dst_positive_sum_flatten_prefix_sum))) /\ forall fs_i_dst_flatten_prefix_sumpositive_body_steps. (exists fs_lt_dst_flatten_prefix_sumpositive_body_steps_bound. fs_lt_dst_flatten_prefix_sumpositive_body_steps_bound + S fs_i_dst_flatten_prefix_sumpositive_body_steps = m) -> exists fs_a_dst_flatten_prefix_sumpositive_body_steps fs_r_dst_flatten_prefix_sumpositive_body_steps fs_s_dst_flatten_prefix_sumpositive_body_steps. ((((exists fs_h_dst_flatten_prefix_sumpositive_body_steps_summand. fs_h_dst_flatten_prefix_sumpositive_body_steps_summand + S (fs_a_dst_flatten_prefix_sumpositive_body_steps) = S ((S (fs_i_dst_flatten_prefix_sumpositive_body_steps)) * dst_positive_scale_flatten_prefix_sum)) /\ exists fs_q_dst_flatten_prefix_sumpositive_body_steps_summand. dst_positive_code_flatten_prefix_sum = fs_q_dst_flatten_prefix_sumpositive_body_steps_summand * S ((S (fs_i_dst_flatten_prefix_sumpositive_body_steps)) * dst_positive_scale_flatten_prefix_sum) + (fs_a_dst_flatten_prefix_sumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_prefix_sumpositive_body_steps_partial. fs_h_dst_flatten_prefix_sumpositive_body_steps_partial + S (fs_r_dst_flatten_prefix_sumpositive_body_steps) = S ((S (fs_i_dst_flatten_prefix_sumpositive_body_steps)) * fs_v_dst_flatten_prefix_sumpositive)) /\ exists fs_q_dst_flatten_prefix_sumpositive_body_steps_partial. fs_u_dst_flatten_prefix_sumpositive = fs_q_dst_flatten_prefix_sumpositive_body_steps_partial * S ((S (fs_i_dst_flatten_prefix_sumpositive_body_steps)) * fs_v_dst_flatten_prefix_sumpositive) + (fs_r_dst_flatten_prefix_sumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_prefix_sumpositive_body_steps_successor. fs_h_dst_flatten_prefix_sumpositive_body_steps_successor + S (fs_s_dst_flatten_prefix_sumpositive_body_steps) = S ((S (S fs_i_dst_flatten_prefix_sumpositive_body_steps)) * fs_v_dst_flatten_prefix_sumpositive)) /\ exists fs_q_dst_flatten_prefix_sumpositive_body_steps_successor. fs_u_dst_flatten_prefix_sumpositive = fs_q_dst_flatten_prefix_sumpositive_body_steps_successor * S ((S (S fs_i_dst_flatten_prefix_sumpositive_body_steps)) * fs_v_dst_flatten_prefix_sumpositive) + (fs_s_dst_flatten_prefix_sumpositive_body_steps))) /\ fs_s_dst_flatten_prefix_sumpositive_body_steps = fs_r_dst_flatten_prefix_sumpositive_body_steps + fs_a_dst_flatten_prefix_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_flatten_prefix_sumnegative fs_v_dst_flatten_prefix_sumnegative. ((((exists fs_h_dst_flatten_prefix_sumnegative_body_start. fs_h_dst_flatten_prefix_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_prefix_sumnegative)) /\ exists fs_q_dst_flatten_prefix_sumnegative_body_start. fs_u_dst_flatten_prefix_sumnegative = fs_q_dst_flatten_prefix_sumnegative_body_start * S ((S (0)) * fs_v_dst_flatten_prefix_sumnegative) + (0))) /\ ((((exists fs_h_dst_flatten_prefix_sumnegative_body_terminal. fs_h_dst_flatten_prefix_sumnegative_body_terminal + S (dst_negative_sum_flatten_prefix_sum) = S ((S (m)) * fs_v_dst_flatten_prefix_sumnegative)) /\ exists fs_q_dst_flatten_prefix_sumnegative_body_terminal. fs_u_dst_flatten_prefix_sumnegative = fs_q_dst_flatten_prefix_sumnegative_body_terminal * S ((S (m)) * fs_v_dst_flatten_prefix_sumnegative) + (dst_negative_sum_flatten_prefix_sum))) /\ forall fs_i_dst_flatten_prefix_sumnegative_body_steps. (exists fs_lt_dst_flatten_prefix_sumnegative_body_steps_bound. fs_lt_dst_flatten_prefix_sumnegative_body_steps_bound + S fs_i_dst_flatten_prefix_sumnegative_body_steps = m) -> exists fs_a_dst_flatten_prefix_sumnegative_body_steps fs_r_dst_flatten_prefix_sumnegative_body_steps fs_s_dst_flatten_prefix_sumnegative_body_steps. ((((exists fs_h_dst_flatten_prefix_sumnegative_body_steps_summand. fs_h_dst_flatten_prefix_sumnegative_body_steps_summand + S (fs_a_dst_flatten_prefix_sumnegative_body_steps) = S ((S (fs_i_dst_flatten_prefix_sumnegative_body_steps)) * dst_negative_scale_flatten_prefix_sum)) /\ exists fs_q_dst_flatten_prefix_sumnegative_body_steps_summand. dst_negative_code_flatten_prefix_sum = fs_q_dst_flatten_prefix_sumnegative_body_steps_summand * S ((S (fs_i_dst_flatten_prefix_sumnegative_body_steps)) * dst_negative_scale_flatten_prefix_sum) + (fs_a_dst_flatten_prefix_sumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_prefix_sumnegative_body_steps_partial. fs_h_dst_flatten_prefix_sumnegative_body_steps_partial + S (fs_r_dst_flatten_prefix_sumnegative_body_steps) = S ((S (fs_i_dst_flatten_prefix_sumnegative_body_steps)) * fs_v_dst_flatten_prefix_sumnegative)) /\ exists fs_q_dst_flatten_prefix_sumnegative_body_steps_partial. fs_u_dst_flatten_prefix_sumnegative = fs_q_dst_flatten_prefix_sumnegative_body_steps_partial * S ((S (fs_i_dst_flatten_prefix_sumnegative_body_steps)) * fs_v_dst_flatten_prefix_sumnegative) + (fs_r_dst_flatten_prefix_sumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_prefix_sumnegative_body_steps_successor. fs_h_dst_flatten_prefix_sumnegative_body_steps_successor + S (fs_s_dst_flatten_prefix_sumnegative_body_steps) = S ((S (S fs_i_dst_flatten_prefix_sumnegative_body_steps)) * fs_v_dst_flatten_prefix_sumnegative)) /\ exists fs_q_dst_flatten_prefix_sumnegative_body_steps_successor. fs_u_dst_flatten_prefix_sumnegative = fs_q_dst_flatten_prefix_sumnegative_body_steps_successor * S ((S (S fs_i_dst_flatten_prefix_sumnegative_body_steps)) * fs_v_dst_flatten_prefix_sumnegative) + (fs_s_dst_flatten_prefix_sumnegative_body_steps))) /\ fs_s_dst_flatten_prefix_sumnegative_body_steps = fs_r_dst_flatten_prefix_sumnegative_body_steps + fs_a_dst_flatten_prefix_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_flatten_prefix_sumresult ge_balance_negative_flatten_prefix_sumresult. (((((a) = 2 * (ge_balance_positive_flatten_prefix_sumresult) /\ (ge_balance_negative_flatten_prefix_sumresult) = 0) \/ exists ge_signed_half_flatten_prefix_sumresultdecode. (((a) = 2 * ge_signed_half_flatten_prefix_sumresultdecode + 1 /\ (ge_balance_positive_flatten_prefix_sumresult) = 0) /\ (ge_balance_negative_flatten_prefix_sumresult) = S ge_signed_half_flatten_prefix_sumresultdecode))) /\ ((dst_positive_sum_flatten_prefix_sum) + ge_balance_negative_flatten_prefix_sumresult = (dst_negative_sum_flatten_prefix_sum) + ge_balance_positive_flatten_prefix_sumresult))))))))) /\ (((exists dst_positive_code_flatten_last_row dst_positive_scale_flatten_last_row dst_negative_code_flatten_last_row dst_negative_scale_flatten_last_row dst_positive_flatten_last_row dst_negative_flatten_last_row. (((R) = (((((dst_positive_code_flatten_last_row) + (dst_positive_scale_flatten_last_row)) * S ((dst_positive_code_flatten_last_row) + (dst_positive_scale_flatten_last_row)) + ((dst_positive_scale_flatten_last_row) + (dst_positive_scale_flatten_last_row))) + (((dst_negative_code_flatten_last_row) + (dst_negative_scale_flatten_last_row)) * S ((dst_negative_code_flatten_last_row) + (dst_negative_scale_flatten_last_row)) + ((dst_negative_scale_flatten_last_row) + (dst_negative_scale_flatten_last_row)))) * S ((((dst_positive_code_flatten_last_row) + (dst_positive_scale_flatten_last_row)) * S ((dst_positive_code_flatten_last_row) + (dst_positive_scale_flatten_last_row)) + ((dst_positive_scale_flatten_last_row) + (dst_positive_scale_flatten_last_row))) + (((dst_negative_code_flatten_last_row) + (dst_negative_scale_flatten_last_row)) * S ((dst_negative_code_flatten_last_row) + (dst_negative_scale_flatten_last_row)) + ((dst_negative_scale_flatten_last_row) + (dst_negative_scale_flatten_last_row)))) + ((((dst_negative_code_flatten_last_row) + (dst_negative_scale_flatten_last_row)) * S ((dst_negative_code_flatten_last_row) + (dst_negative_scale_flatten_last_row)) + ((dst_negative_scale_flatten_last_row) + (dst_negative_scale_flatten_last_row))) + (((dst_negative_code_flatten_last_row) + (dst_negative_scale_flatten_last_row)) * S ((dst_negative_code_flatten_last_row) + (dst_negative_scale_flatten_last_row)) + ((dst_negative_scale_flatten_last_row) + (dst_negative_scale_flatten_last_row)))))) /\ (((((exists ff_h_pvs_flatten_last_rowpositive. ff_h_pvs_flatten_last_rowpositive + S (dst_positive_flatten_last_row) = S ((S (m)) * dst_positive_scale_flatten_last_row)) /\ exists ff_q_pvs_flatten_last_rowpositive. dst_positive_code_flatten_last_row = ff_q_pvs_flatten_last_rowpositive * S ((S (m)) * dst_positive_scale_flatten_last_row) + (dst_positive_flatten_last_row))) /\ (((((exists ff_h_pvs_flatten_last_rownegative. ff_h_pvs_flatten_last_rownegative + S (dst_negative_flatten_last_row) = S ((S (m)) * dst_negative_scale_flatten_last_row)) /\ exists ff_q_pvs_flatten_last_rownegative. dst_negative_code_flatten_last_row = ff_q_pvs_flatten_last_rownegative * S ((S (m)) * dst_negative_scale_flatten_last_row) + (dst_negative_flatten_last_row))) /\ (exists ge_balance_positive_flatten_last_rowvalue ge_balance_negative_flatten_last_rowvalue. (((((b) = 2 * (ge_balance_positive_flatten_last_rowvalue) /\ (ge_balance_negative_flatten_last_rowvalue) = 0) \/ exists ge_signed_half_flatten_last_rowvaluedecode. (((b) = 2 * ge_signed_half_flatten_last_rowvaluedecode + 1 /\ (ge_balance_positive_flatten_last_rowvalue) = 0) /\ (ge_balance_negative_flatten_last_rowvalue) = S ge_signed_half_flatten_last_rowvaluedecode))) /\ ((dst_positive_flatten_last_row) + ge_balance_negative_flatten_last_rowvalue = (dst_negative_flatten_last_row) + ge_balance_positive_flatten_last_rowvalue))))))))) /\ (exists dsa_ap_flatten_addition dsa_an_flatten_addition dsa_bp_flatten_addition dsa_bn_flatten_addition dsa_cp_flatten_addition dsa_cn_flatten_addition. (((((a) = 2 * (dsa_ap_flatten_addition) /\ (dsa_an_flatten_addition) = 0) \/ exists ge_signed_half_flatten_additionleft. (((a) = 2 * ge_signed_half_flatten_additionleft + 1 /\ (dsa_ap_flatten_addition) = 0) /\ (dsa_an_flatten_addition) = S ge_signed_half_flatten_additionleft))) /\ ((((((b) = 2 * (dsa_bp_flatten_addition) /\ (dsa_bn_flatten_addition) = 0) \/ exists ge_signed_half_flatten_additionright. (((b) = 2 * ge_signed_half_flatten_additionright + 1 /\ (dsa_bp_flatten_addition) = 0) /\ (dsa_bn_flatten_addition) = S ge_signed_half_flatten_additionright))) /\ ((((((z) = 2 * (dsa_cp_flatten_addition) /\ (dsa_cn_flatten_addition) = 0) \/ exists ge_signed_half_flatten_additionoutput. (((z) = 2 * ge_signed_half_flatten_additionoutput + 1 /\ (dsa_cp_flatten_addition) = 0) /\ (dsa_cn_flatten_addition) = S ge_signed_half_flatten_additionoutput))) /\ ((dsa_ap_flatten_addition + dsa_bp_flatten_addition) + dsa_cn_flatten_addition = (dsa_an_flatten_addition + dsa_bn_flatten_addition) + dsa_cp_flatten_addition)))))))))))
  40. 0040specialize divisor_signed_sum_successor_decompose (R)
  41. 0041specialize divisor_signed_sum_successor_decompose (m)
  42. 0042specialize divisor_signed_sum_successor_decompose (z)
  43. 0043apply divisor_signed_sum_successor_decompose
  44. 0044exact hs
  45. 0045cases hd
  46. 0046cases hd_witness
  47. 0047cases hd_witness_witness
  48. 0048cases hd_witness_witness_right
  49. 0049have hp : exists srs_slice_flatten_prefix. ((((exists dst_positive_code_flatten_prefixslicesource_table dst_positive_scale_flatten_prefixslicesource_table dst_negative_code_flatten_prefixslicesource_table dst_negative_scale_flatten_prefixslicesource_table. (((F) = (((((dst_positive_code_flatten_prefixslicesource_table) + (dst_positive_scale_flatten_prefixslicesource_table)) * S ((dst_positive_code_flatten_prefixslicesource_table) + (dst_positive_scale_flatten_prefixslicesource_table)) + ((dst_positive_scale_flatten_prefixslicesource_table) + (dst_positive_scale_flatten_prefixslicesource_table))) + (((dst_negative_code_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)) * S ((dst_negative_code_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)) + ((dst_negative_scale_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)))) * S ((((dst_positive_code_flatten_prefixslicesource_table) + (dst_positive_scale_flatten_prefixslicesource_table)) * S ((dst_positive_code_flatten_prefixslicesource_table) + (dst_positive_scale_flatten_prefixslicesource_table)) + ((dst_positive_scale_flatten_prefixslicesource_table) + (dst_positive_scale_flatten_prefixslicesource_table))) + (((dst_negative_code_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)) * S ((dst_negative_code_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)) + ((dst_negative_scale_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)))) + ((((dst_negative_code_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)) * S ((dst_negative_code_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)) + ((dst_negative_scale_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table))) + (((dst_negative_code_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)) * S ((dst_negative_code_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)) + ((dst_negative_scale_flatten_prefixslicesource_table) + (dst_negative_scale_flatten_prefixslicesource_table)))))) /\ (forall dst_index_flatten_prefixslicesource_table. (exists pvs_le_gap_flatten_prefixslicesource_tabledomain. pvs_le_gap_flatten_prefixslicesource_tabledomain + (dst_index_flatten_prefixslicesource_table) = (0)) -> exists dst_positive_flatten_prefixslicesource_table dst_negative_flatten_prefixslicesource_table dst_value_flatten_prefixslicesource_table. ((((exists ff_h_pvs_flatten_prefixslicesource_tableentrypositive. ff_h_pvs_flatten_prefixslicesource_tableentrypositive + S (dst_positive_flatten_prefixslicesource_table) = S ((S (dst_index_flatten_prefixslicesource_table)) * dst_positive_scale_flatten_prefixslicesource_table)) /\ exists ff_q_pvs_flatten_prefixslicesource_tableentrypositive. dst_positive_code_flatten_prefixslicesource_table = ff_q_pvs_flatten_prefixslicesource_tableentrypositive * S ((S (dst_index_flatten_prefixslicesource_table)) * dst_positive_scale_flatten_prefixslicesource_table) + (dst_positive_flatten_prefixslicesource_table))) /\ (((((exists ff_h_pvs_flatten_prefixslicesource_tableentrynegative. ff_h_pvs_flatten_prefixslicesource_tableentrynegative + S (dst_negative_flatten_prefixslicesource_table) = S ((S (dst_index_flatten_prefixslicesource_table)) * dst_negative_scale_flatten_prefixslicesource_table)) /\ exists ff_q_pvs_flatten_prefixslicesource_tableentrynegative. dst_negative_code_flatten_prefixslicesource_table = ff_q_pvs_flatten_prefixslicesource_tableentrynegative * S ((S (dst_index_flatten_prefixslicesource_table)) * dst_negative_scale_flatten_prefixslicesource_table) + (dst_negative_flatten_prefixslicesource_table))) /\ (exists ge_balance_positive_flatten_prefixslicesource_tableentryvalue ge_balance_negative_flatten_prefixslicesource_tableentryvalue. (((((dst_value_flatten_prefixslicesource_table) = 2 * (ge_balance_positive_flatten_prefixslicesource_tableentryvalue) /\ (ge_balance_negative_flatten_prefixslicesource_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_prefixslicesource_tableentryvaluedecode. (((dst_value_flatten_prefixslicesource_table) = 2 * ge_signed_half_flatten_prefixslicesource_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_prefixslicesource_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_prefixslicesource_tableentryvalue) = S ge_signed_half_flatten_prefixslicesource_tableentryvaluedecode))) /\ ((dst_positive_flatten_prefixslicesource_table) + ge_balance_negative_flatten_prefixslicesource_tableentryvalue = (dst_negative_flatten_prefixslicesource_table) + ge_balance_positive_flatten_prefixslicesource_tableentryvalue))))))))) /\ (((exists dst_positive_code_flatten_prefixsliceoutput_table dst_positive_scale_flatten_prefixsliceoutput_table dst_negative_code_flatten_prefixsliceoutput_table dst_negative_scale_flatten_prefixsliceoutput_table. (((srs_slice_flatten_prefix) = (((((dst_positive_code_flatten_prefixsliceoutput_table) + (dst_positive_scale_flatten_prefixsliceoutput_table)) * S ((dst_positive_code_flatten_prefixsliceoutput_table) + (dst_positive_scale_flatten_prefixsliceoutput_table)) + ((dst_positive_scale_flatten_prefixsliceoutput_table) + (dst_positive_scale_flatten_prefixsliceoutput_table))) + (((dst_negative_code_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)) * S ((dst_negative_code_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)) + ((dst_negative_scale_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)))) * S ((((dst_positive_code_flatten_prefixsliceoutput_table) + (dst_positive_scale_flatten_prefixsliceoutput_table)) * S ((dst_positive_code_flatten_prefixsliceoutput_table) + (dst_positive_scale_flatten_prefixsliceoutput_table)) + ((dst_positive_scale_flatten_prefixsliceoutput_table) + (dst_positive_scale_flatten_prefixsliceoutput_table))) + (((dst_negative_code_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)) * S ((dst_negative_code_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)) + ((dst_negative_scale_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)))) + ((((dst_negative_code_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)) * S ((dst_negative_code_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)) + ((dst_negative_scale_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table))) + (((dst_negative_code_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)) * S ((dst_negative_code_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)) + ((dst_negative_scale_flatten_prefixsliceoutput_table) + (dst_negative_scale_flatten_prefixsliceoutput_table)))))) /\ (forall dst_index_flatten_prefixsliceoutput_table. (exists pvs_le_gap_flatten_prefixsliceoutput_tabledomain. pvs_le_gap_flatten_prefixsliceoutput_tabledomain + (dst_index_flatten_prefixsliceoutput_table) = (m*n)) -> exists dst_positive_flatten_prefixsliceoutput_table dst_negative_flatten_prefixsliceoutput_table dst_value_flatten_prefixsliceoutput_table. ((((exists ff_h_pvs_flatten_prefixsliceoutput_tableentrypositive. ff_h_pvs_flatten_prefixsliceoutput_tableentrypositive + S (dst_positive_flatten_prefixsliceoutput_table) = S ((S (dst_index_flatten_prefixsliceoutput_table)) * dst_positive_scale_flatten_prefixsliceoutput_table)) /\ exists ff_q_pvs_flatten_prefixsliceoutput_tableentrypositive. dst_positive_code_flatten_prefixsliceoutput_table = ff_q_pvs_flatten_prefixsliceoutput_tableentrypositive * S ((S (dst_index_flatten_prefixsliceoutput_table)) * dst_positive_scale_flatten_prefixsliceoutput_table) + (dst_positive_flatten_prefixsliceoutput_table))) /\ (((((exists ff_h_pvs_flatten_prefixsliceoutput_tableentrynegative. ff_h_pvs_flatten_prefixsliceoutput_tableentrynegative + S (dst_negative_flatten_prefixsliceoutput_table) = S ((S (dst_index_flatten_prefixsliceoutput_table)) * dst_negative_scale_flatten_prefixsliceoutput_table)) /\ exists ff_q_pvs_flatten_prefixsliceoutput_tableentrynegative. dst_negative_code_flatten_prefixsliceoutput_table = ff_q_pvs_flatten_prefixsliceoutput_tableentrynegative * S ((S (dst_index_flatten_prefixsliceoutput_table)) * dst_negative_scale_flatten_prefixsliceoutput_table) + (dst_negative_flatten_prefixsliceoutput_table))) /\ (exists ge_balance_positive_flatten_prefixsliceoutput_tableentryvalue ge_balance_negative_flatten_prefixsliceoutput_tableentryvalue. (((((dst_value_flatten_prefixsliceoutput_table) = 2 * (ge_balance_positive_flatten_prefixsliceoutput_tableentryvalue) /\ (ge_balance_negative_flatten_prefixsliceoutput_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_prefixsliceoutput_tableentryvaluedecode. (((dst_value_flatten_prefixsliceoutput_table) = 2 * ge_signed_half_flatten_prefixsliceoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_prefixsliceoutput_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_prefixsliceoutput_tableentryvalue) = S ge_signed_half_flatten_prefixsliceoutput_tableentryvaluedecode))) /\ ((dst_positive_flatten_prefixsliceoutput_table) + ge_balance_negative_flatten_prefixsliceoutput_tableentryvalue = (dst_negative_flatten_prefixsliceoutput_table) + ge_balance_positive_flatten_prefixsliceoutput_tableentryvalue))))))))) /\ (forall srs_index_flatten_prefixslice. (exists pvs_gap_flatten_prefixslicebound. pvs_gap_flatten_prefixslicebound + S (srs_index_flatten_prefixslice) = (m*n)) -> exists srs_value_flatten_prefixslice. (((exists dst_positive_code_flatten_prefixsliceentrysource dst_positive_scale_flatten_prefixsliceentrysource dst_negative_code_flatten_prefixsliceentrysource dst_negative_scale_flatten_prefixsliceentrysource dst_positive_flatten_prefixsliceentrysource dst_negative_flatten_prefixsliceentrysource. (((F) = (((((dst_positive_code_flatten_prefixsliceentrysource) + (dst_positive_scale_flatten_prefixsliceentrysource)) * S ((dst_positive_code_flatten_prefixsliceentrysource) + (dst_positive_scale_flatten_prefixsliceentrysource)) + ((dst_positive_scale_flatten_prefixsliceentrysource) + (dst_positive_scale_flatten_prefixsliceentrysource))) + (((dst_negative_code_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)) * S ((dst_negative_code_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)) + ((dst_negative_scale_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)))) * S ((((dst_positive_code_flatten_prefixsliceentrysource) + (dst_positive_scale_flatten_prefixsliceentrysource)) * S ((dst_positive_code_flatten_prefixsliceentrysource) + (dst_positive_scale_flatten_prefixsliceentrysource)) + ((dst_positive_scale_flatten_prefixsliceentrysource) + (dst_positive_scale_flatten_prefixsliceentrysource))) + (((dst_negative_code_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)) * S ((dst_negative_code_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)) + ((dst_negative_scale_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)))) + ((((dst_negative_code_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)) * S ((dst_negative_code_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)) + ((dst_negative_scale_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource))) + (((dst_negative_code_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)) * S ((dst_negative_code_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)) + ((dst_negative_scale_flatten_prefixsliceentrysource) + (dst_negative_scale_flatten_prefixsliceentrysource)))))) /\ (((((exists ff_h_pvs_flatten_prefixsliceentrysourcepositive. ff_h_pvs_flatten_prefixsliceentrysourcepositive + S (dst_positive_flatten_prefixsliceentrysource) = S ((S (((0) + ((1) * (srs_index_flatten_prefixslice))))) * dst_positive_scale_flatten_prefixsliceentrysource)) /\ exists ff_q_pvs_flatten_prefixsliceentrysourcepositive. dst_positive_code_flatten_prefixsliceentrysource = ff_q_pvs_flatten_prefixsliceentrysourcepositive * S ((S (((0) + ((1) * (srs_index_flatten_prefixslice))))) * dst_positive_scale_flatten_prefixsliceentrysource) + (dst_positive_flatten_prefixsliceentrysource))) /\ (((((exists ff_h_pvs_flatten_prefixsliceentrysourcenegative. ff_h_pvs_flatten_prefixsliceentrysourcenegative + S (dst_negative_flatten_prefixsliceentrysource) = S ((S (((0) + ((1) * (srs_index_flatten_prefixslice))))) * dst_negative_scale_flatten_prefixsliceentrysource)) /\ exists ff_q_pvs_flatten_prefixsliceentrysourcenegative. dst_negative_code_flatten_prefixsliceentrysource = ff_q_pvs_flatten_prefixsliceentrysourcenegative * S ((S (((0) + ((1) * (srs_index_flatten_prefixslice))))) * dst_negative_scale_flatten_prefixsliceentrysource) + (dst_negative_flatten_prefixsliceentrysource))) /\ (exists ge_balance_positive_flatten_prefixsliceentrysourcevalue ge_balance_negative_flatten_prefixsliceentrysourcevalue. (((((srs_value_flatten_prefixslice) = 2 * (ge_balance_positive_flatten_prefixsliceentrysourcevalue) /\ (ge_balance_negative_flatten_prefixsliceentrysourcevalue) = 0) \/ exists ge_signed_half_flatten_prefixsliceentrysourcevaluedecode. (((srs_value_flatten_prefixslice) = 2 * ge_signed_half_flatten_prefixsliceentrysourcevaluedecode + 1 /\ (ge_balance_positive_flatten_prefixsliceentrysourcevalue) = 0) /\ (ge_balance_negative_flatten_prefixsliceentrysourcevalue) = S ge_signed_half_flatten_prefixsliceentrysourcevaluedecode))) /\ ((dst_positive_flatten_prefixsliceentrysource) + ge_balance_negative_flatten_prefixsliceentrysourcevalue = (dst_negative_flatten_prefixsliceentrysource) + ge_balance_positive_flatten_prefixsliceentrysourcevalue))))))))) /\ (exists dst_positive_code_flatten_prefixsliceentryoutput dst_positive_scale_flatten_prefixsliceentryoutput dst_negative_code_flatten_prefixsliceentryoutput dst_negative_scale_flatten_prefixsliceentryoutput dst_positive_flatten_prefixsliceentryoutput dst_negative_flatten_prefixsliceentryoutput. (((srs_slice_flatten_prefix) = (((((dst_positive_code_flatten_prefixsliceentryoutput) + (dst_positive_scale_flatten_prefixsliceentryoutput)) * S ((dst_positive_code_flatten_prefixsliceentryoutput) + (dst_positive_scale_flatten_prefixsliceentryoutput)) + ((dst_positive_scale_flatten_prefixsliceentryoutput) + (dst_positive_scale_flatten_prefixsliceentryoutput))) + (((dst_negative_code_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)) * S ((dst_negative_code_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)) + ((dst_negative_scale_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)))) * S ((((dst_positive_code_flatten_prefixsliceentryoutput) + (dst_positive_scale_flatten_prefixsliceentryoutput)) * S ((dst_positive_code_flatten_prefixsliceentryoutput) + (dst_positive_scale_flatten_prefixsliceentryoutput)) + ((dst_positive_scale_flatten_prefixsliceentryoutput) + (dst_positive_scale_flatten_prefixsliceentryoutput))) + (((dst_negative_code_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)) * S ((dst_negative_code_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)) + ((dst_negative_scale_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)))) + ((((dst_negative_code_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)) * S ((dst_negative_code_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)) + ((dst_negative_scale_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput))) + (((dst_negative_code_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)) * S ((dst_negative_code_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)) + ((dst_negative_scale_flatten_prefixsliceentryoutput) + (dst_negative_scale_flatten_prefixsliceentryoutput)))))) /\ (((((exists ff_h_pvs_flatten_prefixsliceentryoutputpositive. ff_h_pvs_flatten_prefixsliceentryoutputpositive + S (dst_positive_flatten_prefixsliceentryoutput) = S ((S (srs_index_flatten_prefixslice)) * dst_positive_scale_flatten_prefixsliceentryoutput)) /\ exists ff_q_pvs_flatten_prefixsliceentryoutputpositive. dst_positive_code_flatten_prefixsliceentryoutput = ff_q_pvs_flatten_prefixsliceentryoutputpositive * S ((S (srs_index_flatten_prefixslice)) * dst_positive_scale_flatten_prefixsliceentryoutput) + (dst_positive_flatten_prefixsliceentryoutput))) /\ (((((exists ff_h_pvs_flatten_prefixsliceentryoutputnegative. ff_h_pvs_flatten_prefixsliceentryoutputnegative + S (dst_negative_flatten_prefixsliceentryoutput) = S ((S (srs_index_flatten_prefixslice)) * dst_negative_scale_flatten_prefixsliceentryoutput)) /\ exists ff_q_pvs_flatten_prefixsliceentryoutputnegative. dst_negative_code_flatten_prefixsliceentryoutput = ff_q_pvs_flatten_prefixsliceentryoutputnegative * S ((S (srs_index_flatten_prefixslice)) * dst_negative_scale_flatten_prefixsliceentryoutput) + (dst_negative_flatten_prefixsliceentryoutput))) /\ (exists ge_balance_positive_flatten_prefixsliceentryoutputvalue ge_balance_negative_flatten_prefixsliceentryoutputvalue. (((((srs_value_flatten_prefixslice) = 2 * (ge_balance_positive_flatten_prefixsliceentryoutputvalue) /\ (ge_balance_negative_flatten_prefixsliceentryoutputvalue) = 0) \/ exists ge_signed_half_flatten_prefixsliceentryoutputvaluedecode. (((srs_value_flatten_prefixslice) = 2 * ge_signed_half_flatten_prefixsliceentryoutputvaluedecode + 1 /\ (ge_balance_positive_flatten_prefixsliceentryoutputvalue) = 0) /\ (ge_balance_negative_flatten_prefixsliceentryoutputvalue) = S ge_signed_half_flatten_prefixsliceentryoutputvaluedecode))) /\ ((dst_positive_flatten_prefixsliceentryoutput) + ge_balance_negative_flatten_prefixsliceentryoutputvalue = (dst_negative_flatten_prefixsliceentryoutput) + ge_balance_positive_flatten_prefixsliceentryoutputvalue)))))))))))))))) /\ (exists dst_positive_code_flatten_prefixsum dst_positive_scale_flatten_prefixsum dst_negative_code_flatten_prefixsum dst_negative_scale_flatten_prefixsum dst_positive_sum_flatten_prefixsum dst_negative_sum_flatten_prefixsum. (((srs_slice_flatten_prefix) = (((((dst_positive_code_flatten_prefixsum) + (dst_positive_scale_flatten_prefixsum)) * S ((dst_positive_code_flatten_prefixsum) + (dst_positive_scale_flatten_prefixsum)) + ((dst_positive_scale_flatten_prefixsum) + (dst_positive_scale_flatten_prefixsum))) + (((dst_negative_code_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)) * S ((dst_negative_code_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)) + ((dst_negative_scale_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)))) * S ((((dst_positive_code_flatten_prefixsum) + (dst_positive_scale_flatten_prefixsum)) * S ((dst_positive_code_flatten_prefixsum) + (dst_positive_scale_flatten_prefixsum)) + ((dst_positive_scale_flatten_prefixsum) + (dst_positive_scale_flatten_prefixsum))) + (((dst_negative_code_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)) * S ((dst_negative_code_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)) + ((dst_negative_scale_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)))) + ((((dst_negative_code_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)) * S ((dst_negative_code_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)) + ((dst_negative_scale_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum))) + (((dst_negative_code_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)) * S ((dst_negative_code_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)) + ((dst_negative_scale_flatten_prefixsum) + (dst_negative_scale_flatten_prefixsum)))))) /\ (((exists fs_u_dst_flatten_prefixsumpositive fs_v_dst_flatten_prefixsumpositive. ((((exists fs_h_dst_flatten_prefixsumpositive_body_start. fs_h_dst_flatten_prefixsumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_prefixsumpositive)) /\ exists fs_q_dst_flatten_prefixsumpositive_body_start. fs_u_dst_flatten_prefixsumpositive = fs_q_dst_flatten_prefixsumpositive_body_start * S ((S (0)) * fs_v_dst_flatten_prefixsumpositive) + (0))) /\ ((((exists fs_h_dst_flatten_prefixsumpositive_body_terminal. fs_h_dst_flatten_prefixsumpositive_body_terminal + S (dst_positive_sum_flatten_prefixsum) = S ((S (m*n)) * fs_v_dst_flatten_prefixsumpositive)) /\ exists fs_q_dst_flatten_prefixsumpositive_body_terminal. fs_u_dst_flatten_prefixsumpositive = fs_q_dst_flatten_prefixsumpositive_body_terminal * S ((S (m*n)) * fs_v_dst_flatten_prefixsumpositive) + (dst_positive_sum_flatten_prefixsum))) /\ forall fs_i_dst_flatten_prefixsumpositive_body_steps. (exists fs_lt_dst_flatten_prefixsumpositive_body_steps_bound. fs_lt_dst_flatten_prefixsumpositive_body_steps_bound + S fs_i_dst_flatten_prefixsumpositive_body_steps = m*n) -> exists fs_a_dst_flatten_prefixsumpositive_body_steps fs_r_dst_flatten_prefixsumpositive_body_steps fs_s_dst_flatten_prefixsumpositive_body_steps. ((((exists fs_h_dst_flatten_prefixsumpositive_body_steps_summand. fs_h_dst_flatten_prefixsumpositive_body_steps_summand + S (fs_a_dst_flatten_prefixsumpositive_body_steps) = S ((S (fs_i_dst_flatten_prefixsumpositive_body_steps)) * dst_positive_scale_flatten_prefixsum)) /\ exists fs_q_dst_flatten_prefixsumpositive_body_steps_summand. dst_positive_code_flatten_prefixsum = fs_q_dst_flatten_prefixsumpositive_body_steps_summand * S ((S (fs_i_dst_flatten_prefixsumpositive_body_steps)) * dst_positive_scale_flatten_prefixsum) + (fs_a_dst_flatten_prefixsumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_prefixsumpositive_body_steps_partial. fs_h_dst_flatten_prefixsumpositive_body_steps_partial + S (fs_r_dst_flatten_prefixsumpositive_body_steps) = S ((S (fs_i_dst_flatten_prefixsumpositive_body_steps)) * fs_v_dst_flatten_prefixsumpositive)) /\ exists fs_q_dst_flatten_prefixsumpositive_body_steps_partial. fs_u_dst_flatten_prefixsumpositive = fs_q_dst_flatten_prefixsumpositive_body_steps_partial * S ((S (fs_i_dst_flatten_prefixsumpositive_body_steps)) * fs_v_dst_flatten_prefixsumpositive) + (fs_r_dst_flatten_prefixsumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_prefixsumpositive_body_steps_successor. fs_h_dst_flatten_prefixsumpositive_body_steps_successor + S (fs_s_dst_flatten_prefixsumpositive_body_steps) = S ((S (S fs_i_dst_flatten_prefixsumpositive_body_steps)) * fs_v_dst_flatten_prefixsumpositive)) /\ exists fs_q_dst_flatten_prefixsumpositive_body_steps_successor. fs_u_dst_flatten_prefixsumpositive = fs_q_dst_flatten_prefixsumpositive_body_steps_successor * S ((S (S fs_i_dst_flatten_prefixsumpositive_body_steps)) * fs_v_dst_flatten_prefixsumpositive) + (fs_s_dst_flatten_prefixsumpositive_body_steps))) /\ fs_s_dst_flatten_prefixsumpositive_body_steps = fs_r_dst_flatten_prefixsumpositive_body_steps + fs_a_dst_flatten_prefixsumpositive_body_steps)))))) /\ (((exists fs_u_dst_flatten_prefixsumnegative fs_v_dst_flatten_prefixsumnegative. ((((exists fs_h_dst_flatten_prefixsumnegative_body_start. fs_h_dst_flatten_prefixsumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_prefixsumnegative)) /\ exists fs_q_dst_flatten_prefixsumnegative_body_start. fs_u_dst_flatten_prefixsumnegative = fs_q_dst_flatten_prefixsumnegative_body_start * S ((S (0)) * fs_v_dst_flatten_prefixsumnegative) + (0))) /\ ((((exists fs_h_dst_flatten_prefixsumnegative_body_terminal. fs_h_dst_flatten_prefixsumnegative_body_terminal + S (dst_negative_sum_flatten_prefixsum) = S ((S (m*n)) * fs_v_dst_flatten_prefixsumnegative)) /\ exists fs_q_dst_flatten_prefixsumnegative_body_terminal. fs_u_dst_flatten_prefixsumnegative = fs_q_dst_flatten_prefixsumnegative_body_terminal * S ((S (m*n)) * fs_v_dst_flatten_prefixsumnegative) + (dst_negative_sum_flatten_prefixsum))) /\ forall fs_i_dst_flatten_prefixsumnegative_body_steps. (exists fs_lt_dst_flatten_prefixsumnegative_body_steps_bound. fs_lt_dst_flatten_prefixsumnegative_body_steps_bound + S fs_i_dst_flatten_prefixsumnegative_body_steps = m*n) -> exists fs_a_dst_flatten_prefixsumnegative_body_steps fs_r_dst_flatten_prefixsumnegative_body_steps fs_s_dst_flatten_prefixsumnegative_body_steps. ((((exists fs_h_dst_flatten_prefixsumnegative_body_steps_summand. fs_h_dst_flatten_prefixsumnegative_body_steps_summand + S (fs_a_dst_flatten_prefixsumnegative_body_steps) = S ((S (fs_i_dst_flatten_prefixsumnegative_body_steps)) * dst_negative_scale_flatten_prefixsum)) /\ exists fs_q_dst_flatten_prefixsumnegative_body_steps_summand. dst_negative_code_flatten_prefixsum = fs_q_dst_flatten_prefixsumnegative_body_steps_summand * S ((S (fs_i_dst_flatten_prefixsumnegative_body_steps)) * dst_negative_scale_flatten_prefixsum) + (fs_a_dst_flatten_prefixsumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_prefixsumnegative_body_steps_partial. fs_h_dst_flatten_prefixsumnegative_body_steps_partial + S (fs_r_dst_flatten_prefixsumnegative_body_steps) = S ((S (fs_i_dst_flatten_prefixsumnegative_body_steps)) * fs_v_dst_flatten_prefixsumnegative)) /\ exists fs_q_dst_flatten_prefixsumnegative_body_steps_partial. fs_u_dst_flatten_prefixsumnegative = fs_q_dst_flatten_prefixsumnegative_body_steps_partial * S ((S (fs_i_dst_flatten_prefixsumnegative_body_steps)) * fs_v_dst_flatten_prefixsumnegative) + (fs_r_dst_flatten_prefixsumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_prefixsumnegative_body_steps_successor. fs_h_dst_flatten_prefixsumnegative_body_steps_successor + S (fs_s_dst_flatten_prefixsumnegative_body_steps) = S ((S (S fs_i_dst_flatten_prefixsumnegative_body_steps)) * fs_v_dst_flatten_prefixsumnegative)) /\ exists fs_q_dst_flatten_prefixsumnegative_body_steps_successor. fs_u_dst_flatten_prefixsumnegative = fs_q_dst_flatten_prefixsumnegative_body_steps_successor * S ((S (S fs_i_dst_flatten_prefixsumnegative_body_steps)) * fs_v_dst_flatten_prefixsumnegative) + (fs_s_dst_flatten_prefixsumnegative_body_steps))) /\ fs_s_dst_flatten_prefixsumnegative_body_steps = fs_r_dst_flatten_prefixsumnegative_body_steps + fs_a_dst_flatten_prefixsumnegative_body_steps)))))) /\ (exists ge_balance_positive_flatten_prefixsumresult ge_balance_negative_flatten_prefixsumresult. (((((x) = 2 * (ge_balance_positive_flatten_prefixsumresult) /\ (ge_balance_negative_flatten_prefixsumresult) = 0) \/ exists ge_signed_half_flatten_prefixsumresultdecode. (((x) = 2 * ge_signed_half_flatten_prefixsumresultdecode + 1 /\ (ge_balance_positive_flatten_prefixsumresult) = 0) /\ (ge_balance_negative_flatten_prefixsumresult) = S ge_signed_half_flatten_prefixsumresultdecode))) /\ ((dst_positive_sum_flatten_prefixsum) + ge_balance_negative_flatten_prefixsumresult = (dst_negative_sum_flatten_prefixsum) + ge_balance_positive_flatten_prefixsumresult))))))))))
  50. 0050specialize IH (F)
  51. 0051specialize IH (R)
  52. 0052specialize IH (n)
  53. 0053specialize IH (x)
  54. 0054apply IH
  55. 0055specialize signed_rectangular_row_sums_restrict_outer (F)
  56. 0056specialize signed_rectangular_row_sums_restrict_outer (R)
  57. 0057specialize signed_rectangular_row_sums_restrict_outer (0)
  58. 0058specialize signed_rectangular_row_sums_restrict_outer (n)
  59. 0059specialize signed_rectangular_row_sums_restrict_outer (1)
  60. 0060specialize signed_rectangular_row_sums_restrict_outer (m)
  61. 0061specialize signed_rectangular_row_sums_restrict_outer (n)
  62. 0062apply signed_rectangular_row_sums_restrict_outer
  63. 0063exact hr
  64. 0064exact hd_witness_witness_left
  65. 0065have hl : exists srs_slice_flatten_last. ((((exists dst_positive_code_flatten_lastslicesource_table dst_positive_scale_flatten_lastslicesource_table dst_negative_code_flatten_lastslicesource_table dst_negative_scale_flatten_lastslicesource_table. (((F) = (((((dst_positive_code_flatten_lastslicesource_table) + (dst_positive_scale_flatten_lastslicesource_table)) * S ((dst_positive_code_flatten_lastslicesource_table) + (dst_positive_scale_flatten_lastslicesource_table)) + ((dst_positive_scale_flatten_lastslicesource_table) + (dst_positive_scale_flatten_lastslicesource_table))) + (((dst_negative_code_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)) * S ((dst_negative_code_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)) + ((dst_negative_scale_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)))) * S ((((dst_positive_code_flatten_lastslicesource_table) + (dst_positive_scale_flatten_lastslicesource_table)) * S ((dst_positive_code_flatten_lastslicesource_table) + (dst_positive_scale_flatten_lastslicesource_table)) + ((dst_positive_scale_flatten_lastslicesource_table) + (dst_positive_scale_flatten_lastslicesource_table))) + (((dst_negative_code_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)) * S ((dst_negative_code_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)) + ((dst_negative_scale_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)))) + ((((dst_negative_code_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)) * S ((dst_negative_code_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)) + ((dst_negative_scale_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table))) + (((dst_negative_code_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)) * S ((dst_negative_code_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)) + ((dst_negative_scale_flatten_lastslicesource_table) + (dst_negative_scale_flatten_lastslicesource_table)))))) /\ (forall dst_index_flatten_lastslicesource_table. (exists pvs_le_gap_flatten_lastslicesource_tabledomain. pvs_le_gap_flatten_lastslicesource_tabledomain + (dst_index_flatten_lastslicesource_table) = (0)) -> exists dst_positive_flatten_lastslicesource_table dst_negative_flatten_lastslicesource_table dst_value_flatten_lastslicesource_table. ((((exists ff_h_pvs_flatten_lastslicesource_tableentrypositive. ff_h_pvs_flatten_lastslicesource_tableentrypositive + S (dst_positive_flatten_lastslicesource_table) = S ((S (dst_index_flatten_lastslicesource_table)) * dst_positive_scale_flatten_lastslicesource_table)) /\ exists ff_q_pvs_flatten_lastslicesource_tableentrypositive. dst_positive_code_flatten_lastslicesource_table = ff_q_pvs_flatten_lastslicesource_tableentrypositive * S ((S (dst_index_flatten_lastslicesource_table)) * dst_positive_scale_flatten_lastslicesource_table) + (dst_positive_flatten_lastslicesource_table))) /\ (((((exists ff_h_pvs_flatten_lastslicesource_tableentrynegative. ff_h_pvs_flatten_lastslicesource_tableentrynegative + S (dst_negative_flatten_lastslicesource_table) = S ((S (dst_index_flatten_lastslicesource_table)) * dst_negative_scale_flatten_lastslicesource_table)) /\ exists ff_q_pvs_flatten_lastslicesource_tableentrynegative. dst_negative_code_flatten_lastslicesource_table = ff_q_pvs_flatten_lastslicesource_tableentrynegative * S ((S (dst_index_flatten_lastslicesource_table)) * dst_negative_scale_flatten_lastslicesource_table) + (dst_negative_flatten_lastslicesource_table))) /\ (exists ge_balance_positive_flatten_lastslicesource_tableentryvalue ge_balance_negative_flatten_lastslicesource_tableentryvalue. (((((dst_value_flatten_lastslicesource_table) = 2 * (ge_balance_positive_flatten_lastslicesource_tableentryvalue) /\ (ge_balance_negative_flatten_lastslicesource_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_lastslicesource_tableentryvaluedecode. (((dst_value_flatten_lastslicesource_table) = 2 * ge_signed_half_flatten_lastslicesource_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_lastslicesource_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_lastslicesource_tableentryvalue) = S ge_signed_half_flatten_lastslicesource_tableentryvaluedecode))) /\ ((dst_positive_flatten_lastslicesource_table) + ge_balance_negative_flatten_lastslicesource_tableentryvalue = (dst_negative_flatten_lastslicesource_table) + ge_balance_positive_flatten_lastslicesource_tableentryvalue))))))))) /\ (((exists dst_positive_code_flatten_lastsliceoutput_table dst_positive_scale_flatten_lastsliceoutput_table dst_negative_code_flatten_lastsliceoutput_table dst_negative_scale_flatten_lastsliceoutput_table. (((srs_slice_flatten_last) = (((((dst_positive_code_flatten_lastsliceoutput_table) + (dst_positive_scale_flatten_lastsliceoutput_table)) * S ((dst_positive_code_flatten_lastsliceoutput_table) + (dst_positive_scale_flatten_lastsliceoutput_table)) + ((dst_positive_scale_flatten_lastsliceoutput_table) + (dst_positive_scale_flatten_lastsliceoutput_table))) + (((dst_negative_code_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)) * S ((dst_negative_code_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)) + ((dst_negative_scale_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)))) * S ((((dst_positive_code_flatten_lastsliceoutput_table) + (dst_positive_scale_flatten_lastsliceoutput_table)) * S ((dst_positive_code_flatten_lastsliceoutput_table) + (dst_positive_scale_flatten_lastsliceoutput_table)) + ((dst_positive_scale_flatten_lastsliceoutput_table) + (dst_positive_scale_flatten_lastsliceoutput_table))) + (((dst_negative_code_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)) * S ((dst_negative_code_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)) + ((dst_negative_scale_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)))) + ((((dst_negative_code_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)) * S ((dst_negative_code_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)) + ((dst_negative_scale_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table))) + (((dst_negative_code_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)) * S ((dst_negative_code_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)) + ((dst_negative_scale_flatten_lastsliceoutput_table) + (dst_negative_scale_flatten_lastsliceoutput_table)))))) /\ (forall dst_index_flatten_lastsliceoutput_table. (exists pvs_le_gap_flatten_lastsliceoutput_tabledomain. pvs_le_gap_flatten_lastsliceoutput_tabledomain + (dst_index_flatten_lastsliceoutput_table) = (n)) -> exists dst_positive_flatten_lastsliceoutput_table dst_negative_flatten_lastsliceoutput_table dst_value_flatten_lastsliceoutput_table. ((((exists ff_h_pvs_flatten_lastsliceoutput_tableentrypositive. ff_h_pvs_flatten_lastsliceoutput_tableentrypositive + S (dst_positive_flatten_lastsliceoutput_table) = S ((S (dst_index_flatten_lastsliceoutput_table)) * dst_positive_scale_flatten_lastsliceoutput_table)) /\ exists ff_q_pvs_flatten_lastsliceoutput_tableentrypositive. dst_positive_code_flatten_lastsliceoutput_table = ff_q_pvs_flatten_lastsliceoutput_tableentrypositive * S ((S (dst_index_flatten_lastsliceoutput_table)) * dst_positive_scale_flatten_lastsliceoutput_table) + (dst_positive_flatten_lastsliceoutput_table))) /\ (((((exists ff_h_pvs_flatten_lastsliceoutput_tableentrynegative. ff_h_pvs_flatten_lastsliceoutput_tableentrynegative + S (dst_negative_flatten_lastsliceoutput_table) = S ((S (dst_index_flatten_lastsliceoutput_table)) * dst_negative_scale_flatten_lastsliceoutput_table)) /\ exists ff_q_pvs_flatten_lastsliceoutput_tableentrynegative. dst_negative_code_flatten_lastsliceoutput_table = ff_q_pvs_flatten_lastsliceoutput_tableentrynegative * S ((S (dst_index_flatten_lastsliceoutput_table)) * dst_negative_scale_flatten_lastsliceoutput_table) + (dst_negative_flatten_lastsliceoutput_table))) /\ (exists ge_balance_positive_flatten_lastsliceoutput_tableentryvalue ge_balance_negative_flatten_lastsliceoutput_tableentryvalue. (((((dst_value_flatten_lastsliceoutput_table) = 2 * (ge_balance_positive_flatten_lastsliceoutput_tableentryvalue) /\ (ge_balance_negative_flatten_lastsliceoutput_tableentryvalue) = 0) \/ exists ge_signed_half_flatten_lastsliceoutput_tableentryvaluedecode. (((dst_value_flatten_lastsliceoutput_table) = 2 * ge_signed_half_flatten_lastsliceoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_flatten_lastsliceoutput_tableentryvalue) = 0) /\ (ge_balance_negative_flatten_lastsliceoutput_tableentryvalue) = S ge_signed_half_flatten_lastsliceoutput_tableentryvaluedecode))) /\ ((dst_positive_flatten_lastsliceoutput_table) + ge_balance_negative_flatten_lastsliceoutput_tableentryvalue = (dst_negative_flatten_lastsliceoutput_table) + ge_balance_positive_flatten_lastsliceoutput_tableentryvalue))))))))) /\ (forall srs_index_flatten_lastslice. (exists pvs_gap_flatten_lastslicebound. pvs_gap_flatten_lastslicebound + S (srs_index_flatten_lastslice) = (n)) -> exists srs_value_flatten_lastslice. (((exists dst_positive_code_flatten_lastsliceentrysource dst_positive_scale_flatten_lastsliceentrysource dst_negative_code_flatten_lastsliceentrysource dst_negative_scale_flatten_lastsliceentrysource dst_positive_flatten_lastsliceentrysource dst_negative_flatten_lastsliceentrysource. (((F) = (((((dst_positive_code_flatten_lastsliceentrysource) + (dst_positive_scale_flatten_lastsliceentrysource)) * S ((dst_positive_code_flatten_lastsliceentrysource) + (dst_positive_scale_flatten_lastsliceentrysource)) + ((dst_positive_scale_flatten_lastsliceentrysource) + (dst_positive_scale_flatten_lastsliceentrysource))) + (((dst_negative_code_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)) * S ((dst_negative_code_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)) + ((dst_negative_scale_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)))) * S ((((dst_positive_code_flatten_lastsliceentrysource) + (dst_positive_scale_flatten_lastsliceentrysource)) * S ((dst_positive_code_flatten_lastsliceentrysource) + (dst_positive_scale_flatten_lastsliceentrysource)) + ((dst_positive_scale_flatten_lastsliceentrysource) + (dst_positive_scale_flatten_lastsliceentrysource))) + (((dst_negative_code_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)) * S ((dst_negative_code_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)) + ((dst_negative_scale_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)))) + ((((dst_negative_code_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)) * S ((dst_negative_code_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)) + ((dst_negative_scale_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource))) + (((dst_negative_code_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)) * S ((dst_negative_code_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)) + ((dst_negative_scale_flatten_lastsliceentrysource) + (dst_negative_scale_flatten_lastsliceentrysource)))))) /\ (((((exists ff_h_pvs_flatten_lastsliceentrysourcepositive. ff_h_pvs_flatten_lastsliceentrysourcepositive + S (dst_positive_flatten_lastsliceentrysource) = S ((S (((((0) + ((n) * (m)))) + ((1) * (srs_index_flatten_lastslice))))) * dst_positive_scale_flatten_lastsliceentrysource)) /\ exists ff_q_pvs_flatten_lastsliceentrysourcepositive. dst_positive_code_flatten_lastsliceentrysource = ff_q_pvs_flatten_lastsliceentrysourcepositive * S ((S (((((0) + ((n) * (m)))) + ((1) * (srs_index_flatten_lastslice))))) * dst_positive_scale_flatten_lastsliceentrysource) + (dst_positive_flatten_lastsliceentrysource))) /\ (((((exists ff_h_pvs_flatten_lastsliceentrysourcenegative. ff_h_pvs_flatten_lastsliceentrysourcenegative + S (dst_negative_flatten_lastsliceentrysource) = S ((S (((((0) + ((n) * (m)))) + ((1) * (srs_index_flatten_lastslice))))) * dst_negative_scale_flatten_lastsliceentrysource)) /\ exists ff_q_pvs_flatten_lastsliceentrysourcenegative. dst_negative_code_flatten_lastsliceentrysource = ff_q_pvs_flatten_lastsliceentrysourcenegative * S ((S (((((0) + ((n) * (m)))) + ((1) * (srs_index_flatten_lastslice))))) * dst_negative_scale_flatten_lastsliceentrysource) + (dst_negative_flatten_lastsliceentrysource))) /\ (exists ge_balance_positive_flatten_lastsliceentrysourcevalue ge_balance_negative_flatten_lastsliceentrysourcevalue. (((((srs_value_flatten_lastslice) = 2 * (ge_balance_positive_flatten_lastsliceentrysourcevalue) /\ (ge_balance_negative_flatten_lastsliceentrysourcevalue) = 0) \/ exists ge_signed_half_flatten_lastsliceentrysourcevaluedecode. (((srs_value_flatten_lastslice) = 2 * ge_signed_half_flatten_lastsliceentrysourcevaluedecode + 1 /\ (ge_balance_positive_flatten_lastsliceentrysourcevalue) = 0) /\ (ge_balance_negative_flatten_lastsliceentrysourcevalue) = S ge_signed_half_flatten_lastsliceentrysourcevaluedecode))) /\ ((dst_positive_flatten_lastsliceentrysource) + ge_balance_negative_flatten_lastsliceentrysourcevalue = (dst_negative_flatten_lastsliceentrysource) + ge_balance_positive_flatten_lastsliceentrysourcevalue))))))))) /\ (exists dst_positive_code_flatten_lastsliceentryoutput dst_positive_scale_flatten_lastsliceentryoutput dst_negative_code_flatten_lastsliceentryoutput dst_negative_scale_flatten_lastsliceentryoutput dst_positive_flatten_lastsliceentryoutput dst_negative_flatten_lastsliceentryoutput. (((srs_slice_flatten_last) = (((((dst_positive_code_flatten_lastsliceentryoutput) + (dst_positive_scale_flatten_lastsliceentryoutput)) * S ((dst_positive_code_flatten_lastsliceentryoutput) + (dst_positive_scale_flatten_lastsliceentryoutput)) + ((dst_positive_scale_flatten_lastsliceentryoutput) + (dst_positive_scale_flatten_lastsliceentryoutput))) + (((dst_negative_code_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)) * S ((dst_negative_code_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)) + ((dst_negative_scale_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)))) * S ((((dst_positive_code_flatten_lastsliceentryoutput) + (dst_positive_scale_flatten_lastsliceentryoutput)) * S ((dst_positive_code_flatten_lastsliceentryoutput) + (dst_positive_scale_flatten_lastsliceentryoutput)) + ((dst_positive_scale_flatten_lastsliceentryoutput) + (dst_positive_scale_flatten_lastsliceentryoutput))) + (((dst_negative_code_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)) * S ((dst_negative_code_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)) + ((dst_negative_scale_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)))) + ((((dst_negative_code_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)) * S ((dst_negative_code_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)) + ((dst_negative_scale_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput))) + (((dst_negative_code_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)) * S ((dst_negative_code_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)) + ((dst_negative_scale_flatten_lastsliceentryoutput) + (dst_negative_scale_flatten_lastsliceentryoutput)))))) /\ (((((exists ff_h_pvs_flatten_lastsliceentryoutputpositive. ff_h_pvs_flatten_lastsliceentryoutputpositive + S (dst_positive_flatten_lastsliceentryoutput) = S ((S (srs_index_flatten_lastslice)) * dst_positive_scale_flatten_lastsliceentryoutput)) /\ exists ff_q_pvs_flatten_lastsliceentryoutputpositive. dst_positive_code_flatten_lastsliceentryoutput = ff_q_pvs_flatten_lastsliceentryoutputpositive * S ((S (srs_index_flatten_lastslice)) * dst_positive_scale_flatten_lastsliceentryoutput) + (dst_positive_flatten_lastsliceentryoutput))) /\ (((((exists ff_h_pvs_flatten_lastsliceentryoutputnegative. ff_h_pvs_flatten_lastsliceentryoutputnegative + S (dst_negative_flatten_lastsliceentryoutput) = S ((S (srs_index_flatten_lastslice)) * dst_negative_scale_flatten_lastsliceentryoutput)) /\ exists ff_q_pvs_flatten_lastsliceentryoutputnegative. dst_negative_code_flatten_lastsliceentryoutput = ff_q_pvs_flatten_lastsliceentryoutputnegative * S ((S (srs_index_flatten_lastslice)) * dst_negative_scale_flatten_lastsliceentryoutput) + (dst_negative_flatten_lastsliceentryoutput))) /\ (exists ge_balance_positive_flatten_lastsliceentryoutputvalue ge_balance_negative_flatten_lastsliceentryoutputvalue. (((((srs_value_flatten_lastslice) = 2 * (ge_balance_positive_flatten_lastsliceentryoutputvalue) /\ (ge_balance_negative_flatten_lastsliceentryoutputvalue) = 0) \/ exists ge_signed_half_flatten_lastsliceentryoutputvaluedecode. (((srs_value_flatten_lastslice) = 2 * ge_signed_half_flatten_lastsliceentryoutputvaluedecode + 1 /\ (ge_balance_positive_flatten_lastsliceentryoutputvalue) = 0) /\ (ge_balance_negative_flatten_lastsliceentryoutputvalue) = S ge_signed_half_flatten_lastsliceentryoutputvaluedecode))) /\ ((dst_positive_flatten_lastsliceentryoutput) + ge_balance_negative_flatten_lastsliceentryoutputvalue = (dst_negative_flatten_lastsliceentryoutput) + ge_balance_positive_flatten_lastsliceentryoutputvalue)))))))))))))))) /\ (exists dst_positive_code_flatten_lastsum dst_positive_scale_flatten_lastsum dst_negative_code_flatten_lastsum dst_negative_scale_flatten_lastsum dst_positive_sum_flatten_lastsum dst_negative_sum_flatten_lastsum. (((srs_slice_flatten_last) = (((((dst_positive_code_flatten_lastsum) + (dst_positive_scale_flatten_lastsum)) * S ((dst_positive_code_flatten_lastsum) + (dst_positive_scale_flatten_lastsum)) + ((dst_positive_scale_flatten_lastsum) + (dst_positive_scale_flatten_lastsum))) + (((dst_negative_code_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)) * S ((dst_negative_code_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)) + ((dst_negative_scale_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)))) * S ((((dst_positive_code_flatten_lastsum) + (dst_positive_scale_flatten_lastsum)) * S ((dst_positive_code_flatten_lastsum) + (dst_positive_scale_flatten_lastsum)) + ((dst_positive_scale_flatten_lastsum) + (dst_positive_scale_flatten_lastsum))) + (((dst_negative_code_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)) * S ((dst_negative_code_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)) + ((dst_negative_scale_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)))) + ((((dst_negative_code_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)) * S ((dst_negative_code_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)) + ((dst_negative_scale_flatten_lastsum) + (dst_negative_scale_flatten_lastsum))) + (((dst_negative_code_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)) * S ((dst_negative_code_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)) + ((dst_negative_scale_flatten_lastsum) + (dst_negative_scale_flatten_lastsum)))))) /\ (((exists fs_u_dst_flatten_lastsumpositive fs_v_dst_flatten_lastsumpositive. ((((exists fs_h_dst_flatten_lastsumpositive_body_start. fs_h_dst_flatten_lastsumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_lastsumpositive)) /\ exists fs_q_dst_flatten_lastsumpositive_body_start. fs_u_dst_flatten_lastsumpositive = fs_q_dst_flatten_lastsumpositive_body_start * S ((S (0)) * fs_v_dst_flatten_lastsumpositive) + (0))) /\ ((((exists fs_h_dst_flatten_lastsumpositive_body_terminal. fs_h_dst_flatten_lastsumpositive_body_terminal + S (dst_positive_sum_flatten_lastsum) = S ((S (n)) * fs_v_dst_flatten_lastsumpositive)) /\ exists fs_q_dst_flatten_lastsumpositive_body_terminal. fs_u_dst_flatten_lastsumpositive = fs_q_dst_flatten_lastsumpositive_body_terminal * S ((S (n)) * fs_v_dst_flatten_lastsumpositive) + (dst_positive_sum_flatten_lastsum))) /\ forall fs_i_dst_flatten_lastsumpositive_body_steps. (exists fs_lt_dst_flatten_lastsumpositive_body_steps_bound. fs_lt_dst_flatten_lastsumpositive_body_steps_bound + S fs_i_dst_flatten_lastsumpositive_body_steps = n) -> exists fs_a_dst_flatten_lastsumpositive_body_steps fs_r_dst_flatten_lastsumpositive_body_steps fs_s_dst_flatten_lastsumpositive_body_steps. ((((exists fs_h_dst_flatten_lastsumpositive_body_steps_summand. fs_h_dst_flatten_lastsumpositive_body_steps_summand + S (fs_a_dst_flatten_lastsumpositive_body_steps) = S ((S (fs_i_dst_flatten_lastsumpositive_body_steps)) * dst_positive_scale_flatten_lastsum)) /\ exists fs_q_dst_flatten_lastsumpositive_body_steps_summand. dst_positive_code_flatten_lastsum = fs_q_dst_flatten_lastsumpositive_body_steps_summand * S ((S (fs_i_dst_flatten_lastsumpositive_body_steps)) * dst_positive_scale_flatten_lastsum) + (fs_a_dst_flatten_lastsumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_lastsumpositive_body_steps_partial. fs_h_dst_flatten_lastsumpositive_body_steps_partial + S (fs_r_dst_flatten_lastsumpositive_body_steps) = S ((S (fs_i_dst_flatten_lastsumpositive_body_steps)) * fs_v_dst_flatten_lastsumpositive)) /\ exists fs_q_dst_flatten_lastsumpositive_body_steps_partial. fs_u_dst_flatten_lastsumpositive = fs_q_dst_flatten_lastsumpositive_body_steps_partial * S ((S (fs_i_dst_flatten_lastsumpositive_body_steps)) * fs_v_dst_flatten_lastsumpositive) + (fs_r_dst_flatten_lastsumpositive_body_steps))) /\ ((((exists fs_h_dst_flatten_lastsumpositive_body_steps_successor. fs_h_dst_flatten_lastsumpositive_body_steps_successor + S (fs_s_dst_flatten_lastsumpositive_body_steps) = S ((S (S fs_i_dst_flatten_lastsumpositive_body_steps)) * fs_v_dst_flatten_lastsumpositive)) /\ exists fs_q_dst_flatten_lastsumpositive_body_steps_successor. fs_u_dst_flatten_lastsumpositive = fs_q_dst_flatten_lastsumpositive_body_steps_successor * S ((S (S fs_i_dst_flatten_lastsumpositive_body_steps)) * fs_v_dst_flatten_lastsumpositive) + (fs_s_dst_flatten_lastsumpositive_body_steps))) /\ fs_s_dst_flatten_lastsumpositive_body_steps = fs_r_dst_flatten_lastsumpositive_body_steps + fs_a_dst_flatten_lastsumpositive_body_steps)))))) /\ (((exists fs_u_dst_flatten_lastsumnegative fs_v_dst_flatten_lastsumnegative. ((((exists fs_h_dst_flatten_lastsumnegative_body_start. fs_h_dst_flatten_lastsumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_flatten_lastsumnegative)) /\ exists fs_q_dst_flatten_lastsumnegative_body_start. fs_u_dst_flatten_lastsumnegative = fs_q_dst_flatten_lastsumnegative_body_start * S ((S (0)) * fs_v_dst_flatten_lastsumnegative) + (0))) /\ ((((exists fs_h_dst_flatten_lastsumnegative_body_terminal. fs_h_dst_flatten_lastsumnegative_body_terminal + S (dst_negative_sum_flatten_lastsum) = S ((S (n)) * fs_v_dst_flatten_lastsumnegative)) /\ exists fs_q_dst_flatten_lastsumnegative_body_terminal. fs_u_dst_flatten_lastsumnegative = fs_q_dst_flatten_lastsumnegative_body_terminal * S ((S (n)) * fs_v_dst_flatten_lastsumnegative) + (dst_negative_sum_flatten_lastsum))) /\ forall fs_i_dst_flatten_lastsumnegative_body_steps. (exists fs_lt_dst_flatten_lastsumnegative_body_steps_bound. fs_lt_dst_flatten_lastsumnegative_body_steps_bound + S fs_i_dst_flatten_lastsumnegative_body_steps = n) -> exists fs_a_dst_flatten_lastsumnegative_body_steps fs_r_dst_flatten_lastsumnegative_body_steps fs_s_dst_flatten_lastsumnegative_body_steps. ((((exists fs_h_dst_flatten_lastsumnegative_body_steps_summand. fs_h_dst_flatten_lastsumnegative_body_steps_summand + S (fs_a_dst_flatten_lastsumnegative_body_steps) = S ((S (fs_i_dst_flatten_lastsumnegative_body_steps)) * dst_negative_scale_flatten_lastsum)) /\ exists fs_q_dst_flatten_lastsumnegative_body_steps_summand. dst_negative_code_flatten_lastsum = fs_q_dst_flatten_lastsumnegative_body_steps_summand * S ((S (fs_i_dst_flatten_lastsumnegative_body_steps)) * dst_negative_scale_flatten_lastsum) + (fs_a_dst_flatten_lastsumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_lastsumnegative_body_steps_partial. fs_h_dst_flatten_lastsumnegative_body_steps_partial + S (fs_r_dst_flatten_lastsumnegative_body_steps) = S ((S (fs_i_dst_flatten_lastsumnegative_body_steps)) * fs_v_dst_flatten_lastsumnegative)) /\ exists fs_q_dst_flatten_lastsumnegative_body_steps_partial. fs_u_dst_flatten_lastsumnegative = fs_q_dst_flatten_lastsumnegative_body_steps_partial * S ((S (fs_i_dst_flatten_lastsumnegative_body_steps)) * fs_v_dst_flatten_lastsumnegative) + (fs_r_dst_flatten_lastsumnegative_body_steps))) /\ ((((exists fs_h_dst_flatten_lastsumnegative_body_steps_successor. fs_h_dst_flatten_lastsumnegative_body_steps_successor + S (fs_s_dst_flatten_lastsumnegative_body_steps) = S ((S (S fs_i_dst_flatten_lastsumnegative_body_steps)) * fs_v_dst_flatten_lastsumnegative)) /\ exists fs_q_dst_flatten_lastsumnegative_body_steps_successor. fs_u_dst_flatten_lastsumnegative = fs_q_dst_flatten_lastsumnegative_body_steps_successor * S ((S (S fs_i_dst_flatten_lastsumnegative_body_steps)) * fs_v_dst_flatten_lastsumnegative) + (fs_s_dst_flatten_lastsumnegative_body_steps))) /\ fs_s_dst_flatten_lastsumnegative_body_steps = fs_r_dst_flatten_lastsumnegative_body_steps + fs_a_dst_flatten_lastsumnegative_body_steps)))))) /\ (exists ge_balance_positive_flatten_lastsumresult ge_balance_negative_flatten_lastsumresult. (((((x1) = 2 * (ge_balance_positive_flatten_lastsumresult) /\ (ge_balance_negative_flatten_lastsumresult) = 0) \/ exists ge_signed_half_flatten_lastsumresultdecode. (((x1) = 2 * ge_signed_half_flatten_lastsumresultdecode + 1 /\ (ge_balance_positive_flatten_lastsumresult) = 0) /\ (ge_balance_negative_flatten_lastsumresult) = S ge_signed_half_flatten_lastsumresultdecode))) /\ ((dst_positive_sum_flatten_lastsum) + ge_balance_negative_flatten_lastsumresult = (dst_negative_sum_flatten_lastsum) + ge_balance_positive_flatten_lastsumresult))))))))))
  66. 0066specialize signed_rectangular_row_sums_lookup (F)
  67. 0067specialize signed_rectangular_row_sums_lookup (R)
  68. 0068specialize signed_rectangular_row_sums_lookup (0)
  69. 0069specialize signed_rectangular_row_sums_lookup (n)
  70. 0070specialize signed_rectangular_row_sums_lookup (1)
  71. 0071specialize signed_rectangular_row_sums_lookup (S m)
  72. 0072specialize signed_rectangular_row_sums_lookup (n)
  73. 0073specialize signed_rectangular_row_sums_lookup (m)
  74. 0074specialize signed_rectangular_row_sums_lookup (x1)
  75. 0075apply signed_rectangular_row_sums_lookup
  76. 0076exact hr
  77. 0077specialize le_refl (S m)
  78. 0078apply le_refl
  79. 0079exact hd_witness_witness_right_left
  80. 0080have hindex : ((0) + ((n) * (m))) = ((0) + ((1) * (m*n)))
  81. 0081trans n*m
  82. 0082specialize zero_add (n*m)
  83. 0083apply zero_add
  84. 0084trans m*n
  85. 0085specialize mul_comm (n)
  86. 0086specialize mul_comm (m)
  87. 0087apply mul_comm
  88. 0088symm
  89. 0089trans 1*(m*n)
  90. 0090specialize zero_add (1*(m*n))
  91. 0091apply zero_add
  92. 0092specialize one_mul (m*n)
  93. 0093apply one_mul
  94. 0094rewrite hindex at hl
  95. 0095rewrite hindex at hl
  96. 0096rewrite hindex at hl
  97. 0097rewrite hindex at hl
  98. 0098have hlength : (S m)*n=m*n+n
  99. 0099specialize mul_succ_left (m)
  100. 0100specialize mul_succ_left (n)
  101. 0101apply mul_succ_left
  102. 0102rewrite hlength
  103. 0103rewrite hlength
  104. 0104rewrite hlength
  105. 0105rewrite hlength
  106. 0106rewrite hlength
  107. 0107rewrite hlength
  108. 0108rewrite hlength
  109. 0109rewrite hlength
  110. 0110specialize signed_slice_sum_concatenate (n)
  111. 0111specialize signed_slice_sum_concatenate (F)
  112. 0112specialize signed_slice_sum_concatenate (0)
  113. 0113specialize signed_slice_sum_concatenate (1)
  114. 0114specialize signed_slice_sum_concatenate (m*n)
  115. 0115specialize signed_slice_sum_concatenate (x)
  116. 0116specialize signed_slice_sum_concatenate (x1)
  117. 0117specialize signed_slice_sum_concatenate (z)
  118. 0118apply signed_slice_sum_concatenate
  119. 0119exact hp
  120. 0120exact hl
  121. 0121exact hd_witness_witness_right_right