MX0019

signed_slice_sum_unit_prefix_iff

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

An actual zero-origin, unit-stride slice sum is exactly the existing actual signed prefix sum, independently of slice encoding.

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

Exact expanded first-order arithmetic statement

forall F l z. (exists dst_positive_code_unit_source dst_positive_scale_unit_source dst_negative_code_unit_source dst_negative_scale_unit_source. (((F) = (((((dst_positive_code_unit_source) + (dst_positive_scale_unit_source)) * S ((dst_positive_code_unit_source) + (dst_positive_scale_unit_source)) + ((dst_positive_scale_unit_source) + (dst_positive_scale_unit_source))) + (((dst_negative_code_unit_source) + (dst_negative_scale_unit_source)) * S ((dst_negative_code_unit_source) + (dst_negative_scale_unit_source)) + ((dst_negative_scale_unit_source) + (dst_negative_scale_unit_source)))) * S ((((dst_positive_code_unit_source) + (dst_positive_scale_unit_source)) * S ((dst_positive_code_unit_source) + (dst_positive_scale_unit_source)) + ((dst_positive_scale_unit_source) + (dst_positive_scale_unit_source))) + (((dst_negative_code_unit_source) + (dst_negative_scale_unit_source)) * S ((dst_negative_code_unit_source) + (dst_negative_scale_unit_source)) + ((dst_negative_scale_unit_source) + (dst_negative_scale_unit_source)))) + ((((dst_negative_code_unit_source) + (dst_negative_scale_unit_source)) * S ((dst_negative_code_unit_source) + (dst_negative_scale_unit_source)) + ((dst_negative_scale_unit_source) + (dst_negative_scale_unit_source))) + (((dst_negative_code_unit_source) + (dst_negative_scale_unit_source)) * S ((dst_negative_code_unit_source) + (dst_negative_scale_unit_source)) + ((dst_negative_scale_unit_source) + (dst_negative_scale_unit_source)))))) /\ (forall dst_index_unit_source. (exists pvs_le_gap_unit_sourcedomain. pvs_le_gap_unit_sourcedomain + (dst_index_unit_source) = (0)) -> exists dst_positive_unit_source dst_negative_unit_source dst_value_unit_source. ((((exists ff_h_pvs_unit_sourceentrypositive. ff_h_pvs_unit_sourceentrypositive + S (dst_positive_unit_source) = S ((S (dst_index_unit_source)) * dst_positive_scale_unit_source)) /\ exists ff_q_pvs_unit_sourceentrypositive. dst_positive_code_unit_source = ff_q_pvs_unit_sourceentrypositive * S ((S (dst_index_unit_source)) * dst_positive_scale_unit_source) + (dst_positive_unit_source))) /\ (((((exists ff_h_pvs_unit_sourceentrynegative. ff_h_pvs_unit_sourceentrynegative + S (dst_negative_unit_source) = S ((S (dst_index_unit_source)) * dst_negative_scale_unit_source)) /\ exists ff_q_pvs_unit_sourceentrynegative. dst_negative_code_unit_source = ff_q_pvs_unit_sourceentrynegative * S ((S (dst_index_unit_source)) * dst_negative_scale_unit_source) + (dst_negative_unit_source))) /\ (exists ge_balance_positive_unit_sourceentryvalue ge_balance_negative_unit_sourceentryvalue. (((((dst_value_unit_source) = 2 * (ge_balance_positive_unit_sourceentryvalue) /\ (ge_balance_negative_unit_sourceentryvalue) = 0) \/ exists ge_signed_half_unit_sourceentryvaluedecode. (((dst_value_unit_source) = 2 * ge_signed_half_unit_sourceentryvaluedecode + 1 /\ (ge_balance_positive_unit_sourceentryvalue) = 0) /\ (ge_balance_negative_unit_sourceentryvalue) = S ge_signed_half_unit_sourceentryvaluedecode))) /\ ((dst_positive_unit_source) + ge_balance_negative_unit_sourceentryvalue = (dst_negative_unit_source) + ge_balance_positive_unit_sourceentryvalue))))))))) -> (((exists srs_slice_unit_slice. ((((exists dst_positive_code_unit_sliceslicesource_table dst_positive_scale_unit_sliceslicesource_table dst_negative_code_unit_sliceslicesource_table dst_negative_scale_unit_sliceslicesource_table. (((F) = (((((dst_positive_code_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table)) * S ((dst_positive_code_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table)) + ((dst_positive_scale_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table))) + (((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) * S ((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) + ((dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)))) * S ((((dst_positive_code_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table)) * S ((dst_positive_code_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table)) + ((dst_positive_scale_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table))) + (((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) * S ((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) + ((dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)))) + ((((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) * S ((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) + ((dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table))) + (((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) * S ((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) + ((dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)))))) /\ (forall dst_index_unit_sliceslicesource_table. (exists pvs_le_gap_unit_sliceslicesource_tabledomain. pvs_le_gap_unit_sliceslicesource_tabledomain + (dst_index_unit_sliceslicesource_table) = (0)) -> exists dst_positive_unit_sliceslicesource_table dst_negative_unit_sliceslicesource_table dst_value_unit_sliceslicesource_table. ((((exists ff_h_pvs_unit_sliceslicesource_tableentrypositive. ff_h_pvs_unit_sliceslicesource_tableentrypositive + S (dst_positive_unit_sliceslicesource_table) = S ((S (dst_index_unit_sliceslicesource_table)) * dst_positive_scale_unit_sliceslicesource_table)) /\ exists ff_q_pvs_unit_sliceslicesource_tableentrypositive. dst_positive_code_unit_sliceslicesource_table = ff_q_pvs_unit_sliceslicesource_tableentrypositive * S ((S (dst_index_unit_sliceslicesource_table)) * dst_positive_scale_unit_sliceslicesource_table) + (dst_positive_unit_sliceslicesource_table))) /\ (((((exists ff_h_pvs_unit_sliceslicesource_tableentrynegative. ff_h_pvs_unit_sliceslicesource_tableentrynegative + S (dst_negative_unit_sliceslicesource_table) = S ((S (dst_index_unit_sliceslicesource_table)) * dst_negative_scale_unit_sliceslicesource_table)) /\ exists ff_q_pvs_unit_sliceslicesource_tableentrynegative. dst_negative_code_unit_sliceslicesource_table = ff_q_pvs_unit_sliceslicesource_tableentrynegative * S ((S (dst_index_unit_sliceslicesource_table)) * dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_unit_sliceslicesource_table))) /\ (exists ge_balance_positive_unit_sliceslicesource_tableentryvalue ge_balance_negative_unit_sliceslicesource_tableentryvalue. (((((dst_value_unit_sliceslicesource_table) = 2 * (ge_balance_positive_unit_sliceslicesource_tableentryvalue) /\ (ge_balance_negative_unit_sliceslicesource_tableentryvalue) = 0) \/ exists ge_signed_half_unit_sliceslicesource_tableentryvaluedecode. (((dst_value_unit_sliceslicesource_table) = 2 * ge_signed_half_unit_sliceslicesource_tableentryvaluedecode + 1 /\ (ge_balance_positive_unit_sliceslicesource_tableentryvalue) = 0) /\ (ge_balance_negative_unit_sliceslicesource_tableentryvalue) = S ge_signed_half_unit_sliceslicesource_tableentryvaluedecode))) /\ ((dst_positive_unit_sliceslicesource_table) + ge_balance_negative_unit_sliceslicesource_tableentryvalue = (dst_negative_unit_sliceslicesource_table) + ge_balance_positive_unit_sliceslicesource_tableentryvalue))))))))) /\ (((exists dst_positive_code_unit_slicesliceoutput_table dst_positive_scale_unit_slicesliceoutput_table dst_negative_code_unit_slicesliceoutput_table dst_negative_scale_unit_slicesliceoutput_table. (((srs_slice_unit_slice) = (((((dst_positive_code_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table)) * S ((dst_positive_code_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table)) + ((dst_positive_scale_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table))) + (((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) * S ((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) + ((dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)))) * S ((((dst_positive_code_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table)) * S ((dst_positive_code_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table)) + ((dst_positive_scale_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table))) + (((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) * S ((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) + ((dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)))) + ((((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) * S ((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) + ((dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table))) + (((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) * S ((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) + ((dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)))))) /\ (forall dst_index_unit_slicesliceoutput_table. (exists pvs_le_gap_unit_slicesliceoutput_tabledomain. pvs_le_gap_unit_slicesliceoutput_tabledomain + (dst_index_unit_slicesliceoutput_table) = (l)) -> exists dst_positive_unit_slicesliceoutput_table dst_negative_unit_slicesliceoutput_table dst_value_unit_slicesliceoutput_table. ((((exists ff_h_pvs_unit_slicesliceoutput_tableentrypositive. ff_h_pvs_unit_slicesliceoutput_tableentrypositive + S (dst_positive_unit_slicesliceoutput_table) = S ((S (dst_index_unit_slicesliceoutput_table)) * dst_positive_scale_unit_slicesliceoutput_table)) /\ exists ff_q_pvs_unit_slicesliceoutput_tableentrypositive. dst_positive_code_unit_slicesliceoutput_table = ff_q_pvs_unit_slicesliceoutput_tableentrypositive * S ((S (dst_index_unit_slicesliceoutput_table)) * dst_positive_scale_unit_slicesliceoutput_table) + (dst_positive_unit_slicesliceoutput_table))) /\ (((((exists ff_h_pvs_unit_slicesliceoutput_tableentrynegative. ff_h_pvs_unit_slicesliceoutput_tableentrynegative + S (dst_negative_unit_slicesliceoutput_table) = S ((S (dst_index_unit_slicesliceoutput_table)) * dst_negative_scale_unit_slicesliceoutput_table)) /\ exists ff_q_pvs_unit_slicesliceoutput_tableentrynegative. dst_negative_code_unit_slicesliceoutput_table = ff_q_pvs_unit_slicesliceoutput_tableentrynegative * S ((S (dst_index_unit_slicesliceoutput_table)) * dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_unit_slicesliceoutput_table))) /\ (exists ge_balance_positive_unit_slicesliceoutput_tableentryvalue ge_balance_negative_unit_slicesliceoutput_tableentryvalue. (((((dst_value_unit_slicesliceoutput_table) = 2 * (ge_balance_positive_unit_slicesliceoutput_tableentryvalue) /\ (ge_balance_negative_unit_slicesliceoutput_tableentryvalue) = 0) \/ exists ge_signed_half_unit_slicesliceoutput_tableentryvaluedecode. (((dst_value_unit_slicesliceoutput_table) = 2 * ge_signed_half_unit_slicesliceoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_unit_slicesliceoutput_tableentryvalue) = 0) /\ (ge_balance_negative_unit_slicesliceoutput_tableentryvalue) = S ge_signed_half_unit_slicesliceoutput_tableentryvaluedecode))) /\ ((dst_positive_unit_slicesliceoutput_table) + ge_balance_negative_unit_slicesliceoutput_tableentryvalue = (dst_negative_unit_slicesliceoutput_table) + ge_balance_positive_unit_slicesliceoutput_tableentryvalue))))))))) /\ (forall srs_index_unit_sliceslice. (exists pvs_gap_unit_sliceslicebound. pvs_gap_unit_sliceslicebound + S (srs_index_unit_sliceslice) = (l)) -> exists srs_value_unit_sliceslice. (((exists dst_positive_code_unit_slicesliceentrysource dst_positive_scale_unit_slicesliceentrysource dst_negative_code_unit_slicesliceentrysource dst_negative_scale_unit_slicesliceentrysource dst_positive_unit_slicesliceentrysource dst_negative_unit_slicesliceentrysource. (((F) = (((((dst_positive_code_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource)) * S ((dst_positive_code_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource)) + ((dst_positive_scale_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource))) + (((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) * S ((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) + ((dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)))) * S ((((dst_positive_code_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource)) * S ((dst_positive_code_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource)) + ((dst_positive_scale_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource))) + (((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) * S ((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) + ((dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)))) + ((((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) * S ((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) + ((dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource))) + (((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) * S ((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) + ((dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)))))) /\ (((((exists ff_h_pvs_unit_slicesliceentrysourcepositive. ff_h_pvs_unit_slicesliceentrysourcepositive + S (dst_positive_unit_slicesliceentrysource) = S ((S (((0) + ((1) * (srs_index_unit_sliceslice))))) * dst_positive_scale_unit_slicesliceentrysource)) /\ exists ff_q_pvs_unit_slicesliceentrysourcepositive. dst_positive_code_unit_slicesliceentrysource = ff_q_pvs_unit_slicesliceentrysourcepositive * S ((S (((0) + ((1) * (srs_index_unit_sliceslice))))) * dst_positive_scale_unit_slicesliceentrysource) + (dst_positive_unit_slicesliceentrysource))) /\ (((((exists ff_h_pvs_unit_slicesliceentrysourcenegative. ff_h_pvs_unit_slicesliceentrysourcenegative + S (dst_negative_unit_slicesliceentrysource) = S ((S (((0) + ((1) * (srs_index_unit_sliceslice))))) * dst_negative_scale_unit_slicesliceentrysource)) /\ exists ff_q_pvs_unit_slicesliceentrysourcenegative. dst_negative_code_unit_slicesliceentrysource = ff_q_pvs_unit_slicesliceentrysourcenegative * S ((S (((0) + ((1) * (srs_index_unit_sliceslice))))) * dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_unit_slicesliceentrysource))) /\ (exists ge_balance_positive_unit_slicesliceentrysourcevalue ge_balance_negative_unit_slicesliceentrysourcevalue. (((((srs_value_unit_sliceslice) = 2 * (ge_balance_positive_unit_slicesliceentrysourcevalue) /\ (ge_balance_negative_unit_slicesliceentrysourcevalue) = 0) \/ exists ge_signed_half_unit_slicesliceentrysourcevaluedecode. (((srs_value_unit_sliceslice) = 2 * ge_signed_half_unit_slicesliceentrysourcevaluedecode + 1 /\ (ge_balance_positive_unit_slicesliceentrysourcevalue) = 0) /\ (ge_balance_negative_unit_slicesliceentrysourcevalue) = S ge_signed_half_unit_slicesliceentrysourcevaluedecode))) /\ ((dst_positive_unit_slicesliceentrysource) + ge_balance_negative_unit_slicesliceentrysourcevalue = (dst_negative_unit_slicesliceentrysource) + ge_balance_positive_unit_slicesliceentrysourcevalue))))))))) /\ (exists dst_positive_code_unit_slicesliceentryoutput dst_positive_scale_unit_slicesliceentryoutput dst_negative_code_unit_slicesliceentryoutput dst_negative_scale_unit_slicesliceentryoutput dst_positive_unit_slicesliceentryoutput dst_negative_unit_slicesliceentryoutput. (((srs_slice_unit_slice) = (((((dst_positive_code_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput)) * S ((dst_positive_code_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput)) + ((dst_positive_scale_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput))) + (((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) * S ((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) + ((dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)))) * S ((((dst_positive_code_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput)) * S ((dst_positive_code_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput)) + ((dst_positive_scale_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput))) + (((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) * S ((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) + ((dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)))) + ((((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) * S ((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) + ((dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput))) + (((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) * S ((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) + ((dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)))))) /\ (((((exists ff_h_pvs_unit_slicesliceentryoutputpositive. ff_h_pvs_unit_slicesliceentryoutputpositive + S (dst_positive_unit_slicesliceentryoutput) = S ((S (srs_index_unit_sliceslice)) * dst_positive_scale_unit_slicesliceentryoutput)) /\ exists ff_q_pvs_unit_slicesliceentryoutputpositive. dst_positive_code_unit_slicesliceentryoutput = ff_q_pvs_unit_slicesliceentryoutputpositive * S ((S (srs_index_unit_sliceslice)) * dst_positive_scale_unit_slicesliceentryoutput) + (dst_positive_unit_slicesliceentryoutput))) /\ (((((exists ff_h_pvs_unit_slicesliceentryoutputnegative. ff_h_pvs_unit_slicesliceentryoutputnegative + S (dst_negative_unit_slicesliceentryoutput) = S ((S (srs_index_unit_sliceslice)) * dst_negative_scale_unit_slicesliceentryoutput)) /\ exists ff_q_pvs_unit_slicesliceentryoutputnegative. dst_negative_code_unit_slicesliceentryoutput = ff_q_pvs_unit_slicesliceentryoutputnegative * S ((S (srs_index_unit_sliceslice)) * dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_unit_slicesliceentryoutput))) /\ (exists ge_balance_positive_unit_slicesliceentryoutputvalue ge_balance_negative_unit_slicesliceentryoutputvalue. (((((srs_value_unit_sliceslice) = 2 * (ge_balance_positive_unit_slicesliceentryoutputvalue) /\ (ge_balance_negative_unit_slicesliceentryoutputvalue) = 0) \/ exists ge_signed_half_unit_slicesliceentryoutputvaluedecode. (((srs_value_unit_sliceslice) = 2 * ge_signed_half_unit_slicesliceentryoutputvaluedecode + 1 /\ (ge_balance_positive_unit_slicesliceentryoutputvalue) = 0) /\ (ge_balance_negative_unit_slicesliceentryoutputvalue) = S ge_signed_half_unit_slicesliceentryoutputvaluedecode))) /\ ((dst_positive_unit_slicesliceentryoutput) + ge_balance_negative_unit_slicesliceentryoutputvalue = (dst_negative_unit_slicesliceentryoutput) + ge_balance_positive_unit_slicesliceentryoutputvalue)))))))))))))))) /\ (exists dst_positive_code_unit_slicesum dst_positive_scale_unit_slicesum dst_negative_code_unit_slicesum dst_negative_scale_unit_slicesum dst_positive_sum_unit_slicesum dst_negative_sum_unit_slicesum. (((srs_slice_unit_slice) = (((((dst_positive_code_unit_slicesum) + (dst_positive_scale_unit_slicesum)) * S ((dst_positive_code_unit_slicesum) + (dst_positive_scale_unit_slicesum)) + ((dst_positive_scale_unit_slicesum) + (dst_positive_scale_unit_slicesum))) + (((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) * S ((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) + ((dst_negative_scale_unit_slicesum) + (dst_negative_scale_unit_slicesum)))) * S ((((dst_positive_code_unit_slicesum) + (dst_positive_scale_unit_slicesum)) * S ((dst_positive_code_unit_slicesum) + (dst_positive_scale_unit_slicesum)) + ((dst_positive_scale_unit_slicesum) + (dst_positive_scale_unit_slicesum))) + (((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) * S ((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) + ((dst_negative_scale_unit_slicesum) + (dst_negative_scale_unit_slicesum)))) + ((((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) * S ((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) + ((dst_negative_scale_unit_slicesum) + (dst_negative_scale_unit_slicesum))) + (((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) * S ((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) + ((dst_negative_scale_unit_slicesum) + (dst_negative_scale_unit_slicesum)))))) /\ (((exists fs_u_dst_unit_slicesumpositive fs_v_dst_unit_slicesumpositive. ((((exists fs_h_dst_unit_slicesumpositive_body_start. fs_h_dst_unit_slicesumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_slicesumpositive)) /\ exists fs_q_dst_unit_slicesumpositive_body_start. fs_u_dst_unit_slicesumpositive = fs_q_dst_unit_slicesumpositive_body_start * S ((S (0)) * fs_v_dst_unit_slicesumpositive) + (0))) /\ ((((exists fs_h_dst_unit_slicesumpositive_body_terminal. fs_h_dst_unit_slicesumpositive_body_terminal + S (dst_positive_sum_unit_slicesum) = S ((S (l)) * fs_v_dst_unit_slicesumpositive)) /\ exists fs_q_dst_unit_slicesumpositive_body_terminal. fs_u_dst_unit_slicesumpositive = fs_q_dst_unit_slicesumpositive_body_terminal * S ((S (l)) * fs_v_dst_unit_slicesumpositive) + (dst_positive_sum_unit_slicesum))) /\ forall fs_i_dst_unit_slicesumpositive_body_steps. (exists fs_lt_dst_unit_slicesumpositive_body_steps_bound. fs_lt_dst_unit_slicesumpositive_body_steps_bound + S fs_i_dst_unit_slicesumpositive_body_steps = l) -> exists fs_a_dst_unit_slicesumpositive_body_steps fs_r_dst_unit_slicesumpositive_body_steps fs_s_dst_unit_slicesumpositive_body_steps. ((((exists fs_h_dst_unit_slicesumpositive_body_steps_summand. fs_h_dst_unit_slicesumpositive_body_steps_summand + S (fs_a_dst_unit_slicesumpositive_body_steps) = S ((S (fs_i_dst_unit_slicesumpositive_body_steps)) * dst_positive_scale_unit_slicesum)) /\ exists fs_q_dst_unit_slicesumpositive_body_steps_summand. dst_positive_code_unit_slicesum = fs_q_dst_unit_slicesumpositive_body_steps_summand * S ((S (fs_i_dst_unit_slicesumpositive_body_steps)) * dst_positive_scale_unit_slicesum) + (fs_a_dst_unit_slicesumpositive_body_steps))) /\ ((((exists fs_h_dst_unit_slicesumpositive_body_steps_partial. fs_h_dst_unit_slicesumpositive_body_steps_partial + S (fs_r_dst_unit_slicesumpositive_body_steps) = S ((S (fs_i_dst_unit_slicesumpositive_body_steps)) * fs_v_dst_unit_slicesumpositive)) /\ exists fs_q_dst_unit_slicesumpositive_body_steps_partial. fs_u_dst_unit_slicesumpositive = fs_q_dst_unit_slicesumpositive_body_steps_partial * S ((S (fs_i_dst_unit_slicesumpositive_body_steps)) * fs_v_dst_unit_slicesumpositive) + (fs_r_dst_unit_slicesumpositive_body_steps))) /\ ((((exists fs_h_dst_unit_slicesumpositive_body_steps_successor. fs_h_dst_unit_slicesumpositive_body_steps_successor + S (fs_s_dst_unit_slicesumpositive_body_steps) = S ((S (S fs_i_dst_unit_slicesumpositive_body_steps)) * fs_v_dst_unit_slicesumpositive)) /\ exists fs_q_dst_unit_slicesumpositive_body_steps_successor. fs_u_dst_unit_slicesumpositive = fs_q_dst_unit_slicesumpositive_body_steps_successor * S ((S (S fs_i_dst_unit_slicesumpositive_body_steps)) * fs_v_dst_unit_slicesumpositive) + (fs_s_dst_unit_slicesumpositive_body_steps))) /\ fs_s_dst_unit_slicesumpositive_body_steps = fs_r_dst_unit_slicesumpositive_body_steps + fs_a_dst_unit_slicesumpositive_body_steps)))))) /\ (((exists fs_u_dst_unit_slicesumnegative fs_v_dst_unit_slicesumnegative. ((((exists fs_h_dst_unit_slicesumnegative_body_start. fs_h_dst_unit_slicesumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_slicesumnegative)) /\ exists fs_q_dst_unit_slicesumnegative_body_start. fs_u_dst_unit_slicesumnegative = fs_q_dst_unit_slicesumnegative_body_start * S ((S (0)) * fs_v_dst_unit_slicesumnegative) + (0))) /\ ((((exists fs_h_dst_unit_slicesumnegative_body_terminal. fs_h_dst_unit_slicesumnegative_body_terminal + S (dst_negative_sum_unit_slicesum) = S ((S (l)) * fs_v_dst_unit_slicesumnegative)) /\ exists fs_q_dst_unit_slicesumnegative_body_terminal. fs_u_dst_unit_slicesumnegative = fs_q_dst_unit_slicesumnegative_body_terminal * S ((S (l)) * fs_v_dst_unit_slicesumnegative) + (dst_negative_sum_unit_slicesum))) /\ forall fs_i_dst_unit_slicesumnegative_body_steps. (exists fs_lt_dst_unit_slicesumnegative_body_steps_bound. fs_lt_dst_unit_slicesumnegative_body_steps_bound + S fs_i_dst_unit_slicesumnegative_body_steps = l) -> exists fs_a_dst_unit_slicesumnegative_body_steps fs_r_dst_unit_slicesumnegative_body_steps fs_s_dst_unit_slicesumnegative_body_steps. ((((exists fs_h_dst_unit_slicesumnegative_body_steps_summand. fs_h_dst_unit_slicesumnegative_body_steps_summand + S (fs_a_dst_unit_slicesumnegative_body_steps) = S ((S (fs_i_dst_unit_slicesumnegative_body_steps)) * dst_negative_scale_unit_slicesum)) /\ exists fs_q_dst_unit_slicesumnegative_body_steps_summand. dst_negative_code_unit_slicesum = fs_q_dst_unit_slicesumnegative_body_steps_summand * S ((S (fs_i_dst_unit_slicesumnegative_body_steps)) * dst_negative_scale_unit_slicesum) + (fs_a_dst_unit_slicesumnegative_body_steps))) /\ ((((exists fs_h_dst_unit_slicesumnegative_body_steps_partial. fs_h_dst_unit_slicesumnegative_body_steps_partial + S (fs_r_dst_unit_slicesumnegative_body_steps) = S ((S (fs_i_dst_unit_slicesumnegative_body_steps)) * fs_v_dst_unit_slicesumnegative)) /\ exists fs_q_dst_unit_slicesumnegative_body_steps_partial. fs_u_dst_unit_slicesumnegative = fs_q_dst_unit_slicesumnegative_body_steps_partial * S ((S (fs_i_dst_unit_slicesumnegative_body_steps)) * fs_v_dst_unit_slicesumnegative) + (fs_r_dst_unit_slicesumnegative_body_steps))) /\ ((((exists fs_h_dst_unit_slicesumnegative_body_steps_successor. fs_h_dst_unit_slicesumnegative_body_steps_successor + S (fs_s_dst_unit_slicesumnegative_body_steps) = S ((S (S fs_i_dst_unit_slicesumnegative_body_steps)) * fs_v_dst_unit_slicesumnegative)) /\ exists fs_q_dst_unit_slicesumnegative_body_steps_successor. fs_u_dst_unit_slicesumnegative = fs_q_dst_unit_slicesumnegative_body_steps_successor * S ((S (S fs_i_dst_unit_slicesumnegative_body_steps)) * fs_v_dst_unit_slicesumnegative) + (fs_s_dst_unit_slicesumnegative_body_steps))) /\ fs_s_dst_unit_slicesumnegative_body_steps = fs_r_dst_unit_slicesumnegative_body_steps + fs_a_dst_unit_slicesumnegative_body_steps)))))) /\ (exists ge_balance_positive_unit_slicesumresult ge_balance_negative_unit_slicesumresult. (((((z) = 2 * (ge_balance_positive_unit_slicesumresult) /\ (ge_balance_negative_unit_slicesumresult) = 0) \/ exists ge_signed_half_unit_slicesumresultdecode. (((z) = 2 * ge_signed_half_unit_slicesumresultdecode + 1 /\ (ge_balance_positive_unit_slicesumresult) = 0) /\ (ge_balance_negative_unit_slicesumresult) = S ge_signed_half_unit_slicesumresultdecode))) /\ ((dst_positive_sum_unit_slicesum) + ge_balance_negative_unit_slicesumresult = (dst_negative_sum_unit_slicesum) + ge_balance_positive_unit_slicesumresult))))))))))) -> (exists dst_positive_code_unit_prefix dst_positive_scale_unit_prefix dst_negative_code_unit_prefix dst_negative_scale_unit_prefix dst_positive_sum_unit_prefix dst_negative_sum_unit_prefix. (((F) = (((((dst_positive_code_unit_prefix) + (dst_positive_scale_unit_prefix)) * S ((dst_positive_code_unit_prefix) + (dst_positive_scale_unit_prefix)) + ((dst_positive_scale_unit_prefix) + (dst_positive_scale_unit_prefix))) + (((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) * S ((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) + ((dst_negative_scale_unit_prefix) + (dst_negative_scale_unit_prefix)))) * S ((((dst_positive_code_unit_prefix) + (dst_positive_scale_unit_prefix)) * S ((dst_positive_code_unit_prefix) + (dst_positive_scale_unit_prefix)) + ((dst_positive_scale_unit_prefix) + (dst_positive_scale_unit_prefix))) + (((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) * S ((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) + ((dst_negative_scale_unit_prefix) + (dst_negative_scale_unit_prefix)))) + ((((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) * S ((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) + ((dst_negative_scale_unit_prefix) + (dst_negative_scale_unit_prefix))) + (((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) * S ((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) + ((dst_negative_scale_unit_prefix) + (dst_negative_scale_unit_prefix)))))) /\ (((exists fs_u_dst_unit_prefixpositive fs_v_dst_unit_prefixpositive. ((((exists fs_h_dst_unit_prefixpositive_body_start. fs_h_dst_unit_prefixpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_prefixpositive)) /\ exists fs_q_dst_unit_prefixpositive_body_start. fs_u_dst_unit_prefixpositive = fs_q_dst_unit_prefixpositive_body_start * S ((S (0)) * fs_v_dst_unit_prefixpositive) + (0))) /\ ((((exists fs_h_dst_unit_prefixpositive_body_terminal. fs_h_dst_unit_prefixpositive_body_terminal + S (dst_positive_sum_unit_prefix) = S ((S (l)) * fs_v_dst_unit_prefixpositive)) /\ exists fs_q_dst_unit_prefixpositive_body_terminal. fs_u_dst_unit_prefixpositive = fs_q_dst_unit_prefixpositive_body_terminal * S ((S (l)) * fs_v_dst_unit_prefixpositive) + (dst_positive_sum_unit_prefix))) /\ forall fs_i_dst_unit_prefixpositive_body_steps. (exists fs_lt_dst_unit_prefixpositive_body_steps_bound. fs_lt_dst_unit_prefixpositive_body_steps_bound + S fs_i_dst_unit_prefixpositive_body_steps = l) -> exists fs_a_dst_unit_prefixpositive_body_steps fs_r_dst_unit_prefixpositive_body_steps fs_s_dst_unit_prefixpositive_body_steps. ((((exists fs_h_dst_unit_prefixpositive_body_steps_summand. fs_h_dst_unit_prefixpositive_body_steps_summand + S (fs_a_dst_unit_prefixpositive_body_steps) = S ((S (fs_i_dst_unit_prefixpositive_body_steps)) * dst_positive_scale_unit_prefix)) /\ exists fs_q_dst_unit_prefixpositive_body_steps_summand. dst_positive_code_unit_prefix = fs_q_dst_unit_prefixpositive_body_steps_summand * S ((S (fs_i_dst_unit_prefixpositive_body_steps)) * dst_positive_scale_unit_prefix) + (fs_a_dst_unit_prefixpositive_body_steps))) /\ ((((exists fs_h_dst_unit_prefixpositive_body_steps_partial. fs_h_dst_unit_prefixpositive_body_steps_partial + S (fs_r_dst_unit_prefixpositive_body_steps) = S ((S (fs_i_dst_unit_prefixpositive_body_steps)) * fs_v_dst_unit_prefixpositive)) /\ exists fs_q_dst_unit_prefixpositive_body_steps_partial. fs_u_dst_unit_prefixpositive = fs_q_dst_unit_prefixpositive_body_steps_partial * S ((S (fs_i_dst_unit_prefixpositive_body_steps)) * fs_v_dst_unit_prefixpositive) + (fs_r_dst_unit_prefixpositive_body_steps))) /\ ((((exists fs_h_dst_unit_prefixpositive_body_steps_successor. fs_h_dst_unit_prefixpositive_body_steps_successor + S (fs_s_dst_unit_prefixpositive_body_steps) = S ((S (S fs_i_dst_unit_prefixpositive_body_steps)) * fs_v_dst_unit_prefixpositive)) /\ exists fs_q_dst_unit_prefixpositive_body_steps_successor. fs_u_dst_unit_prefixpositive = fs_q_dst_unit_prefixpositive_body_steps_successor * S ((S (S fs_i_dst_unit_prefixpositive_body_steps)) * fs_v_dst_unit_prefixpositive) + (fs_s_dst_unit_prefixpositive_body_steps))) /\ fs_s_dst_unit_prefixpositive_body_steps = fs_r_dst_unit_prefixpositive_body_steps + fs_a_dst_unit_prefixpositive_body_steps)))))) /\ (((exists fs_u_dst_unit_prefixnegative fs_v_dst_unit_prefixnegative. ((((exists fs_h_dst_unit_prefixnegative_body_start. fs_h_dst_unit_prefixnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_prefixnegative)) /\ exists fs_q_dst_unit_prefixnegative_body_start. fs_u_dst_unit_prefixnegative = fs_q_dst_unit_prefixnegative_body_start * S ((S (0)) * fs_v_dst_unit_prefixnegative) + (0))) /\ ((((exists fs_h_dst_unit_prefixnegative_body_terminal. fs_h_dst_unit_prefixnegative_body_terminal + S (dst_negative_sum_unit_prefix) = S ((S (l)) * fs_v_dst_unit_prefixnegative)) /\ exists fs_q_dst_unit_prefixnegative_body_terminal. fs_u_dst_unit_prefixnegative = fs_q_dst_unit_prefixnegative_body_terminal * S ((S (l)) * fs_v_dst_unit_prefixnegative) + (dst_negative_sum_unit_prefix))) /\ forall fs_i_dst_unit_prefixnegative_body_steps. (exists fs_lt_dst_unit_prefixnegative_body_steps_bound. fs_lt_dst_unit_prefixnegative_body_steps_bound + S fs_i_dst_unit_prefixnegative_body_steps = l) -> exists fs_a_dst_unit_prefixnegative_body_steps fs_r_dst_unit_prefixnegative_body_steps fs_s_dst_unit_prefixnegative_body_steps. ((((exists fs_h_dst_unit_prefixnegative_body_steps_summand. fs_h_dst_unit_prefixnegative_body_steps_summand + S (fs_a_dst_unit_prefixnegative_body_steps) = S ((S (fs_i_dst_unit_prefixnegative_body_steps)) * dst_negative_scale_unit_prefix)) /\ exists fs_q_dst_unit_prefixnegative_body_steps_summand. dst_negative_code_unit_prefix = fs_q_dst_unit_prefixnegative_body_steps_summand * S ((S (fs_i_dst_unit_prefixnegative_body_steps)) * dst_negative_scale_unit_prefix) + (fs_a_dst_unit_prefixnegative_body_steps))) /\ ((((exists fs_h_dst_unit_prefixnegative_body_steps_partial. fs_h_dst_unit_prefixnegative_body_steps_partial + S (fs_r_dst_unit_prefixnegative_body_steps) = S ((S (fs_i_dst_unit_prefixnegative_body_steps)) * fs_v_dst_unit_prefixnegative)) /\ exists fs_q_dst_unit_prefixnegative_body_steps_partial. fs_u_dst_unit_prefixnegative = fs_q_dst_unit_prefixnegative_body_steps_partial * S ((S (fs_i_dst_unit_prefixnegative_body_steps)) * fs_v_dst_unit_prefixnegative) + (fs_r_dst_unit_prefixnegative_body_steps))) /\ ((((exists fs_h_dst_unit_prefixnegative_body_steps_successor. fs_h_dst_unit_prefixnegative_body_steps_successor + S (fs_s_dst_unit_prefixnegative_body_steps) = S ((S (S fs_i_dst_unit_prefixnegative_body_steps)) * fs_v_dst_unit_prefixnegative)) /\ exists fs_q_dst_unit_prefixnegative_body_steps_successor. fs_u_dst_unit_prefixnegative = fs_q_dst_unit_prefixnegative_body_steps_successor * S ((S (S fs_i_dst_unit_prefixnegative_body_steps)) * fs_v_dst_unit_prefixnegative) + (fs_s_dst_unit_prefixnegative_body_steps))) /\ fs_s_dst_unit_prefixnegative_body_steps = fs_r_dst_unit_prefixnegative_body_steps + fs_a_dst_unit_prefixnegative_body_steps)))))) /\ (exists ge_balance_positive_unit_prefixresult ge_balance_negative_unit_prefixresult. (((((z) = 2 * (ge_balance_positive_unit_prefixresult) /\ (ge_balance_negative_unit_prefixresult) = 0) \/ exists ge_signed_half_unit_prefixresultdecode. (((z) = 2 * ge_signed_half_unit_prefixresultdecode + 1 /\ (ge_balance_positive_unit_prefixresult) = 0) /\ (ge_balance_negative_unit_prefixresult) = S ge_signed_half_unit_prefixresultdecode))) /\ ((dst_positive_sum_unit_prefix) + ge_balance_negative_unit_prefixresult = (dst_negative_sum_unit_prefix) + ge_balance_positive_unit_prefixresult)))))))))) /\ ((exists dst_positive_code_unit_prefix dst_positive_scale_unit_prefix dst_negative_code_unit_prefix dst_negative_scale_unit_prefix dst_positive_sum_unit_prefix dst_negative_sum_unit_prefix. (((F) = (((((dst_positive_code_unit_prefix) + (dst_positive_scale_unit_prefix)) * S ((dst_positive_code_unit_prefix) + (dst_positive_scale_unit_prefix)) + ((dst_positive_scale_unit_prefix) + (dst_positive_scale_unit_prefix))) + (((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) * S ((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) + ((dst_negative_scale_unit_prefix) + (dst_negative_scale_unit_prefix)))) * S ((((dst_positive_code_unit_prefix) + (dst_positive_scale_unit_prefix)) * S ((dst_positive_code_unit_prefix) + (dst_positive_scale_unit_prefix)) + ((dst_positive_scale_unit_prefix) + (dst_positive_scale_unit_prefix))) + (((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) * S ((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) + ((dst_negative_scale_unit_prefix) + (dst_negative_scale_unit_prefix)))) + ((((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) * S ((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) + ((dst_negative_scale_unit_prefix) + (dst_negative_scale_unit_prefix))) + (((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) * S ((dst_negative_code_unit_prefix) + (dst_negative_scale_unit_prefix)) + ((dst_negative_scale_unit_prefix) + (dst_negative_scale_unit_prefix)))))) /\ (((exists fs_u_dst_unit_prefixpositive fs_v_dst_unit_prefixpositive. ((((exists fs_h_dst_unit_prefixpositive_body_start. fs_h_dst_unit_prefixpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_prefixpositive)) /\ exists fs_q_dst_unit_prefixpositive_body_start. fs_u_dst_unit_prefixpositive = fs_q_dst_unit_prefixpositive_body_start * S ((S (0)) * fs_v_dst_unit_prefixpositive) + (0))) /\ ((((exists fs_h_dst_unit_prefixpositive_body_terminal. fs_h_dst_unit_prefixpositive_body_terminal + S (dst_positive_sum_unit_prefix) = S ((S (l)) * fs_v_dst_unit_prefixpositive)) /\ exists fs_q_dst_unit_prefixpositive_body_terminal. fs_u_dst_unit_prefixpositive = fs_q_dst_unit_prefixpositive_body_terminal * S ((S (l)) * fs_v_dst_unit_prefixpositive) + (dst_positive_sum_unit_prefix))) /\ forall fs_i_dst_unit_prefixpositive_body_steps. (exists fs_lt_dst_unit_prefixpositive_body_steps_bound. fs_lt_dst_unit_prefixpositive_body_steps_bound + S fs_i_dst_unit_prefixpositive_body_steps = l) -> exists fs_a_dst_unit_prefixpositive_body_steps fs_r_dst_unit_prefixpositive_body_steps fs_s_dst_unit_prefixpositive_body_steps. ((((exists fs_h_dst_unit_prefixpositive_body_steps_summand. fs_h_dst_unit_prefixpositive_body_steps_summand + S (fs_a_dst_unit_prefixpositive_body_steps) = S ((S (fs_i_dst_unit_prefixpositive_body_steps)) * dst_positive_scale_unit_prefix)) /\ exists fs_q_dst_unit_prefixpositive_body_steps_summand. dst_positive_code_unit_prefix = fs_q_dst_unit_prefixpositive_body_steps_summand * S ((S (fs_i_dst_unit_prefixpositive_body_steps)) * dst_positive_scale_unit_prefix) + (fs_a_dst_unit_prefixpositive_body_steps))) /\ ((((exists fs_h_dst_unit_prefixpositive_body_steps_partial. fs_h_dst_unit_prefixpositive_body_steps_partial + S (fs_r_dst_unit_prefixpositive_body_steps) = S ((S (fs_i_dst_unit_prefixpositive_body_steps)) * fs_v_dst_unit_prefixpositive)) /\ exists fs_q_dst_unit_prefixpositive_body_steps_partial. fs_u_dst_unit_prefixpositive = fs_q_dst_unit_prefixpositive_body_steps_partial * S ((S (fs_i_dst_unit_prefixpositive_body_steps)) * fs_v_dst_unit_prefixpositive) + (fs_r_dst_unit_prefixpositive_body_steps))) /\ ((((exists fs_h_dst_unit_prefixpositive_body_steps_successor. fs_h_dst_unit_prefixpositive_body_steps_successor + S (fs_s_dst_unit_prefixpositive_body_steps) = S ((S (S fs_i_dst_unit_prefixpositive_body_steps)) * fs_v_dst_unit_prefixpositive)) /\ exists fs_q_dst_unit_prefixpositive_body_steps_successor. fs_u_dst_unit_prefixpositive = fs_q_dst_unit_prefixpositive_body_steps_successor * S ((S (S fs_i_dst_unit_prefixpositive_body_steps)) * fs_v_dst_unit_prefixpositive) + (fs_s_dst_unit_prefixpositive_body_steps))) /\ fs_s_dst_unit_prefixpositive_body_steps = fs_r_dst_unit_prefixpositive_body_steps + fs_a_dst_unit_prefixpositive_body_steps)))))) /\ (((exists fs_u_dst_unit_prefixnegative fs_v_dst_unit_prefixnegative. ((((exists fs_h_dst_unit_prefixnegative_body_start. fs_h_dst_unit_prefixnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_prefixnegative)) /\ exists fs_q_dst_unit_prefixnegative_body_start. fs_u_dst_unit_prefixnegative = fs_q_dst_unit_prefixnegative_body_start * S ((S (0)) * fs_v_dst_unit_prefixnegative) + (0))) /\ ((((exists fs_h_dst_unit_prefixnegative_body_terminal. fs_h_dst_unit_prefixnegative_body_terminal + S (dst_negative_sum_unit_prefix) = S ((S (l)) * fs_v_dst_unit_prefixnegative)) /\ exists fs_q_dst_unit_prefixnegative_body_terminal. fs_u_dst_unit_prefixnegative = fs_q_dst_unit_prefixnegative_body_terminal * S ((S (l)) * fs_v_dst_unit_prefixnegative) + (dst_negative_sum_unit_prefix))) /\ forall fs_i_dst_unit_prefixnegative_body_steps. (exists fs_lt_dst_unit_prefixnegative_body_steps_bound. fs_lt_dst_unit_prefixnegative_body_steps_bound + S fs_i_dst_unit_prefixnegative_body_steps = l) -> exists fs_a_dst_unit_prefixnegative_body_steps fs_r_dst_unit_prefixnegative_body_steps fs_s_dst_unit_prefixnegative_body_steps. ((((exists fs_h_dst_unit_prefixnegative_body_steps_summand. fs_h_dst_unit_prefixnegative_body_steps_summand + S (fs_a_dst_unit_prefixnegative_body_steps) = S ((S (fs_i_dst_unit_prefixnegative_body_steps)) * dst_negative_scale_unit_prefix)) /\ exists fs_q_dst_unit_prefixnegative_body_steps_summand. dst_negative_code_unit_prefix = fs_q_dst_unit_prefixnegative_body_steps_summand * S ((S (fs_i_dst_unit_prefixnegative_body_steps)) * dst_negative_scale_unit_prefix) + (fs_a_dst_unit_prefixnegative_body_steps))) /\ ((((exists fs_h_dst_unit_prefixnegative_body_steps_partial. fs_h_dst_unit_prefixnegative_body_steps_partial + S (fs_r_dst_unit_prefixnegative_body_steps) = S ((S (fs_i_dst_unit_prefixnegative_body_steps)) * fs_v_dst_unit_prefixnegative)) /\ exists fs_q_dst_unit_prefixnegative_body_steps_partial. fs_u_dst_unit_prefixnegative = fs_q_dst_unit_prefixnegative_body_steps_partial * S ((S (fs_i_dst_unit_prefixnegative_body_steps)) * fs_v_dst_unit_prefixnegative) + (fs_r_dst_unit_prefixnegative_body_steps))) /\ ((((exists fs_h_dst_unit_prefixnegative_body_steps_successor. fs_h_dst_unit_prefixnegative_body_steps_successor + S (fs_s_dst_unit_prefixnegative_body_steps) = S ((S (S fs_i_dst_unit_prefixnegative_body_steps)) * fs_v_dst_unit_prefixnegative)) /\ exists fs_q_dst_unit_prefixnegative_body_steps_successor. fs_u_dst_unit_prefixnegative = fs_q_dst_unit_prefixnegative_body_steps_successor * S ((S (S fs_i_dst_unit_prefixnegative_body_steps)) * fs_v_dst_unit_prefixnegative) + (fs_s_dst_unit_prefixnegative_body_steps))) /\ fs_s_dst_unit_prefixnegative_body_steps = fs_r_dst_unit_prefixnegative_body_steps + fs_a_dst_unit_prefixnegative_body_steps)))))) /\ (exists ge_balance_positive_unit_prefixresult ge_balance_negative_unit_prefixresult. (((((z) = 2 * (ge_balance_positive_unit_prefixresult) /\ (ge_balance_negative_unit_prefixresult) = 0) \/ exists ge_signed_half_unit_prefixresultdecode. (((z) = 2 * ge_signed_half_unit_prefixresultdecode + 1 /\ (ge_balance_positive_unit_prefixresult) = 0) /\ (ge_balance_negative_unit_prefixresult) = S ge_signed_half_unit_prefixresultdecode))) /\ ((dst_positive_sum_unit_prefix) + ge_balance_negative_unit_prefixresult = (dst_negative_sum_unit_prefix) + ge_balance_positive_unit_prefixresult))))))))) -> (exists srs_slice_unit_slice. ((((exists dst_positive_code_unit_sliceslicesource_table dst_positive_scale_unit_sliceslicesource_table dst_negative_code_unit_sliceslicesource_table dst_negative_scale_unit_sliceslicesource_table. (((F) = (((((dst_positive_code_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table)) * S ((dst_positive_code_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table)) + ((dst_positive_scale_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table))) + (((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) * S ((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) + ((dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)))) * S ((((dst_positive_code_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table)) * S ((dst_positive_code_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table)) + ((dst_positive_scale_unit_sliceslicesource_table) + (dst_positive_scale_unit_sliceslicesource_table))) + (((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) * S ((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) + ((dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)))) + ((((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) * S ((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) + ((dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table))) + (((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) * S ((dst_negative_code_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)) + ((dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_scale_unit_sliceslicesource_table)))))) /\ (forall dst_index_unit_sliceslicesource_table. (exists pvs_le_gap_unit_sliceslicesource_tabledomain. pvs_le_gap_unit_sliceslicesource_tabledomain + (dst_index_unit_sliceslicesource_table) = (0)) -> exists dst_positive_unit_sliceslicesource_table dst_negative_unit_sliceslicesource_table dst_value_unit_sliceslicesource_table. ((((exists ff_h_pvs_unit_sliceslicesource_tableentrypositive. ff_h_pvs_unit_sliceslicesource_tableentrypositive + S (dst_positive_unit_sliceslicesource_table) = S ((S (dst_index_unit_sliceslicesource_table)) * dst_positive_scale_unit_sliceslicesource_table)) /\ exists ff_q_pvs_unit_sliceslicesource_tableentrypositive. dst_positive_code_unit_sliceslicesource_table = ff_q_pvs_unit_sliceslicesource_tableentrypositive * S ((S (dst_index_unit_sliceslicesource_table)) * dst_positive_scale_unit_sliceslicesource_table) + (dst_positive_unit_sliceslicesource_table))) /\ (((((exists ff_h_pvs_unit_sliceslicesource_tableentrynegative. ff_h_pvs_unit_sliceslicesource_tableentrynegative + S (dst_negative_unit_sliceslicesource_table) = S ((S (dst_index_unit_sliceslicesource_table)) * dst_negative_scale_unit_sliceslicesource_table)) /\ exists ff_q_pvs_unit_sliceslicesource_tableentrynegative. dst_negative_code_unit_sliceslicesource_table = ff_q_pvs_unit_sliceslicesource_tableentrynegative * S ((S (dst_index_unit_sliceslicesource_table)) * dst_negative_scale_unit_sliceslicesource_table) + (dst_negative_unit_sliceslicesource_table))) /\ (exists ge_balance_positive_unit_sliceslicesource_tableentryvalue ge_balance_negative_unit_sliceslicesource_tableentryvalue. (((((dst_value_unit_sliceslicesource_table) = 2 * (ge_balance_positive_unit_sliceslicesource_tableentryvalue) /\ (ge_balance_negative_unit_sliceslicesource_tableentryvalue) = 0) \/ exists ge_signed_half_unit_sliceslicesource_tableentryvaluedecode. (((dst_value_unit_sliceslicesource_table) = 2 * ge_signed_half_unit_sliceslicesource_tableentryvaluedecode + 1 /\ (ge_balance_positive_unit_sliceslicesource_tableentryvalue) = 0) /\ (ge_balance_negative_unit_sliceslicesource_tableentryvalue) = S ge_signed_half_unit_sliceslicesource_tableentryvaluedecode))) /\ ((dst_positive_unit_sliceslicesource_table) + ge_balance_negative_unit_sliceslicesource_tableentryvalue = (dst_negative_unit_sliceslicesource_table) + ge_balance_positive_unit_sliceslicesource_tableentryvalue))))))))) /\ (((exists dst_positive_code_unit_slicesliceoutput_table dst_positive_scale_unit_slicesliceoutput_table dst_negative_code_unit_slicesliceoutput_table dst_negative_scale_unit_slicesliceoutput_table. (((srs_slice_unit_slice) = (((((dst_positive_code_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table)) * S ((dst_positive_code_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table)) + ((dst_positive_scale_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table))) + (((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) * S ((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) + ((dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)))) * S ((((dst_positive_code_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table)) * S ((dst_positive_code_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table)) + ((dst_positive_scale_unit_slicesliceoutput_table) + (dst_positive_scale_unit_slicesliceoutput_table))) + (((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) * S ((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) + ((dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)))) + ((((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) * S ((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) + ((dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table))) + (((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) * S ((dst_negative_code_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)) + ((dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_scale_unit_slicesliceoutput_table)))))) /\ (forall dst_index_unit_slicesliceoutput_table. (exists pvs_le_gap_unit_slicesliceoutput_tabledomain. pvs_le_gap_unit_slicesliceoutput_tabledomain + (dst_index_unit_slicesliceoutput_table) = (l)) -> exists dst_positive_unit_slicesliceoutput_table dst_negative_unit_slicesliceoutput_table dst_value_unit_slicesliceoutput_table. ((((exists ff_h_pvs_unit_slicesliceoutput_tableentrypositive. ff_h_pvs_unit_slicesliceoutput_tableentrypositive + S (dst_positive_unit_slicesliceoutput_table) = S ((S (dst_index_unit_slicesliceoutput_table)) * dst_positive_scale_unit_slicesliceoutput_table)) /\ exists ff_q_pvs_unit_slicesliceoutput_tableentrypositive. dst_positive_code_unit_slicesliceoutput_table = ff_q_pvs_unit_slicesliceoutput_tableentrypositive * S ((S (dst_index_unit_slicesliceoutput_table)) * dst_positive_scale_unit_slicesliceoutput_table) + (dst_positive_unit_slicesliceoutput_table))) /\ (((((exists ff_h_pvs_unit_slicesliceoutput_tableentrynegative. ff_h_pvs_unit_slicesliceoutput_tableentrynegative + S (dst_negative_unit_slicesliceoutput_table) = S ((S (dst_index_unit_slicesliceoutput_table)) * dst_negative_scale_unit_slicesliceoutput_table)) /\ exists ff_q_pvs_unit_slicesliceoutput_tableentrynegative. dst_negative_code_unit_slicesliceoutput_table = ff_q_pvs_unit_slicesliceoutput_tableentrynegative * S ((S (dst_index_unit_slicesliceoutput_table)) * dst_negative_scale_unit_slicesliceoutput_table) + (dst_negative_unit_slicesliceoutput_table))) /\ (exists ge_balance_positive_unit_slicesliceoutput_tableentryvalue ge_balance_negative_unit_slicesliceoutput_tableentryvalue. (((((dst_value_unit_slicesliceoutput_table) = 2 * (ge_balance_positive_unit_slicesliceoutput_tableentryvalue) /\ (ge_balance_negative_unit_slicesliceoutput_tableentryvalue) = 0) \/ exists ge_signed_half_unit_slicesliceoutput_tableentryvaluedecode. (((dst_value_unit_slicesliceoutput_table) = 2 * ge_signed_half_unit_slicesliceoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_unit_slicesliceoutput_tableentryvalue) = 0) /\ (ge_balance_negative_unit_slicesliceoutput_tableentryvalue) = S ge_signed_half_unit_slicesliceoutput_tableentryvaluedecode))) /\ ((dst_positive_unit_slicesliceoutput_table) + ge_balance_negative_unit_slicesliceoutput_tableentryvalue = (dst_negative_unit_slicesliceoutput_table) + ge_balance_positive_unit_slicesliceoutput_tableentryvalue))))))))) /\ (forall srs_index_unit_sliceslice. (exists pvs_gap_unit_sliceslicebound. pvs_gap_unit_sliceslicebound + S (srs_index_unit_sliceslice) = (l)) -> exists srs_value_unit_sliceslice. (((exists dst_positive_code_unit_slicesliceentrysource dst_positive_scale_unit_slicesliceentrysource dst_negative_code_unit_slicesliceentrysource dst_negative_scale_unit_slicesliceentrysource dst_positive_unit_slicesliceentrysource dst_negative_unit_slicesliceentrysource. (((F) = (((((dst_positive_code_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource)) * S ((dst_positive_code_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource)) + ((dst_positive_scale_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource))) + (((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) * S ((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) + ((dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)))) * S ((((dst_positive_code_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource)) * S ((dst_positive_code_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource)) + ((dst_positive_scale_unit_slicesliceentrysource) + (dst_positive_scale_unit_slicesliceentrysource))) + (((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) * S ((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) + ((dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)))) + ((((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) * S ((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) + ((dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource))) + (((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) * S ((dst_negative_code_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)) + ((dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_scale_unit_slicesliceentrysource)))))) /\ (((((exists ff_h_pvs_unit_slicesliceentrysourcepositive. ff_h_pvs_unit_slicesliceentrysourcepositive + S (dst_positive_unit_slicesliceentrysource) = S ((S (((0) + ((1) * (srs_index_unit_sliceslice))))) * dst_positive_scale_unit_slicesliceentrysource)) /\ exists ff_q_pvs_unit_slicesliceentrysourcepositive. dst_positive_code_unit_slicesliceentrysource = ff_q_pvs_unit_slicesliceentrysourcepositive * S ((S (((0) + ((1) * (srs_index_unit_sliceslice))))) * dst_positive_scale_unit_slicesliceentrysource) + (dst_positive_unit_slicesliceentrysource))) /\ (((((exists ff_h_pvs_unit_slicesliceentrysourcenegative. ff_h_pvs_unit_slicesliceentrysourcenegative + S (dst_negative_unit_slicesliceentrysource) = S ((S (((0) + ((1) * (srs_index_unit_sliceslice))))) * dst_negative_scale_unit_slicesliceentrysource)) /\ exists ff_q_pvs_unit_slicesliceentrysourcenegative. dst_negative_code_unit_slicesliceentrysource = ff_q_pvs_unit_slicesliceentrysourcenegative * S ((S (((0) + ((1) * (srs_index_unit_sliceslice))))) * dst_negative_scale_unit_slicesliceentrysource) + (dst_negative_unit_slicesliceentrysource))) /\ (exists ge_balance_positive_unit_slicesliceentrysourcevalue ge_balance_negative_unit_slicesliceentrysourcevalue. (((((srs_value_unit_sliceslice) = 2 * (ge_balance_positive_unit_slicesliceentrysourcevalue) /\ (ge_balance_negative_unit_slicesliceentrysourcevalue) = 0) \/ exists ge_signed_half_unit_slicesliceentrysourcevaluedecode. (((srs_value_unit_sliceslice) = 2 * ge_signed_half_unit_slicesliceentrysourcevaluedecode + 1 /\ (ge_balance_positive_unit_slicesliceentrysourcevalue) = 0) /\ (ge_balance_negative_unit_slicesliceentrysourcevalue) = S ge_signed_half_unit_slicesliceentrysourcevaluedecode))) /\ ((dst_positive_unit_slicesliceentrysource) + ge_balance_negative_unit_slicesliceentrysourcevalue = (dst_negative_unit_slicesliceentrysource) + ge_balance_positive_unit_slicesliceentrysourcevalue))))))))) /\ (exists dst_positive_code_unit_slicesliceentryoutput dst_positive_scale_unit_slicesliceentryoutput dst_negative_code_unit_slicesliceentryoutput dst_negative_scale_unit_slicesliceentryoutput dst_positive_unit_slicesliceentryoutput dst_negative_unit_slicesliceentryoutput. (((srs_slice_unit_slice) = (((((dst_positive_code_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput)) * S ((dst_positive_code_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput)) + ((dst_positive_scale_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput))) + (((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) * S ((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) + ((dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)))) * S ((((dst_positive_code_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput)) * S ((dst_positive_code_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput)) + ((dst_positive_scale_unit_slicesliceentryoutput) + (dst_positive_scale_unit_slicesliceentryoutput))) + (((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) * S ((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) + ((dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)))) + ((((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) * S ((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) + ((dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput))) + (((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) * S ((dst_negative_code_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)) + ((dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_scale_unit_slicesliceentryoutput)))))) /\ (((((exists ff_h_pvs_unit_slicesliceentryoutputpositive. ff_h_pvs_unit_slicesliceentryoutputpositive + S (dst_positive_unit_slicesliceentryoutput) = S ((S (srs_index_unit_sliceslice)) * dst_positive_scale_unit_slicesliceentryoutput)) /\ exists ff_q_pvs_unit_slicesliceentryoutputpositive. dst_positive_code_unit_slicesliceentryoutput = ff_q_pvs_unit_slicesliceentryoutputpositive * S ((S (srs_index_unit_sliceslice)) * dst_positive_scale_unit_slicesliceentryoutput) + (dst_positive_unit_slicesliceentryoutput))) /\ (((((exists ff_h_pvs_unit_slicesliceentryoutputnegative. ff_h_pvs_unit_slicesliceentryoutputnegative + S (dst_negative_unit_slicesliceentryoutput) = S ((S (srs_index_unit_sliceslice)) * dst_negative_scale_unit_slicesliceentryoutput)) /\ exists ff_q_pvs_unit_slicesliceentryoutputnegative. dst_negative_code_unit_slicesliceentryoutput = ff_q_pvs_unit_slicesliceentryoutputnegative * S ((S (srs_index_unit_sliceslice)) * dst_negative_scale_unit_slicesliceentryoutput) + (dst_negative_unit_slicesliceentryoutput))) /\ (exists ge_balance_positive_unit_slicesliceentryoutputvalue ge_balance_negative_unit_slicesliceentryoutputvalue. (((((srs_value_unit_sliceslice) = 2 * (ge_balance_positive_unit_slicesliceentryoutputvalue) /\ (ge_balance_negative_unit_slicesliceentryoutputvalue) = 0) \/ exists ge_signed_half_unit_slicesliceentryoutputvaluedecode. (((srs_value_unit_sliceslice) = 2 * ge_signed_half_unit_slicesliceentryoutputvaluedecode + 1 /\ (ge_balance_positive_unit_slicesliceentryoutputvalue) = 0) /\ (ge_balance_negative_unit_slicesliceentryoutputvalue) = S ge_signed_half_unit_slicesliceentryoutputvaluedecode))) /\ ((dst_positive_unit_slicesliceentryoutput) + ge_balance_negative_unit_slicesliceentryoutputvalue = (dst_negative_unit_slicesliceentryoutput) + ge_balance_positive_unit_slicesliceentryoutputvalue)))))))))))))))) /\ (exists dst_positive_code_unit_slicesum dst_positive_scale_unit_slicesum dst_negative_code_unit_slicesum dst_negative_scale_unit_slicesum dst_positive_sum_unit_slicesum dst_negative_sum_unit_slicesum. (((srs_slice_unit_slice) = (((((dst_positive_code_unit_slicesum) + (dst_positive_scale_unit_slicesum)) * S ((dst_positive_code_unit_slicesum) + (dst_positive_scale_unit_slicesum)) + ((dst_positive_scale_unit_slicesum) + (dst_positive_scale_unit_slicesum))) + (((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) * S ((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) + ((dst_negative_scale_unit_slicesum) + (dst_negative_scale_unit_slicesum)))) * S ((((dst_positive_code_unit_slicesum) + (dst_positive_scale_unit_slicesum)) * S ((dst_positive_code_unit_slicesum) + (dst_positive_scale_unit_slicesum)) + ((dst_positive_scale_unit_slicesum) + (dst_positive_scale_unit_slicesum))) + (((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) * S ((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) + ((dst_negative_scale_unit_slicesum) + (dst_negative_scale_unit_slicesum)))) + ((((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) * S ((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) + ((dst_negative_scale_unit_slicesum) + (dst_negative_scale_unit_slicesum))) + (((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) * S ((dst_negative_code_unit_slicesum) + (dst_negative_scale_unit_slicesum)) + ((dst_negative_scale_unit_slicesum) + (dst_negative_scale_unit_slicesum)))))) /\ (((exists fs_u_dst_unit_slicesumpositive fs_v_dst_unit_slicesumpositive. ((((exists fs_h_dst_unit_slicesumpositive_body_start. fs_h_dst_unit_slicesumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_slicesumpositive)) /\ exists fs_q_dst_unit_slicesumpositive_body_start. fs_u_dst_unit_slicesumpositive = fs_q_dst_unit_slicesumpositive_body_start * S ((S (0)) * fs_v_dst_unit_slicesumpositive) + (0))) /\ ((((exists fs_h_dst_unit_slicesumpositive_body_terminal. fs_h_dst_unit_slicesumpositive_body_terminal + S (dst_positive_sum_unit_slicesum) = S ((S (l)) * fs_v_dst_unit_slicesumpositive)) /\ exists fs_q_dst_unit_slicesumpositive_body_terminal. fs_u_dst_unit_slicesumpositive = fs_q_dst_unit_slicesumpositive_body_terminal * S ((S (l)) * fs_v_dst_unit_slicesumpositive) + (dst_positive_sum_unit_slicesum))) /\ forall fs_i_dst_unit_slicesumpositive_body_steps. (exists fs_lt_dst_unit_slicesumpositive_body_steps_bound. fs_lt_dst_unit_slicesumpositive_body_steps_bound + S fs_i_dst_unit_slicesumpositive_body_steps = l) -> exists fs_a_dst_unit_slicesumpositive_body_steps fs_r_dst_unit_slicesumpositive_body_steps fs_s_dst_unit_slicesumpositive_body_steps. ((((exists fs_h_dst_unit_slicesumpositive_body_steps_summand. fs_h_dst_unit_slicesumpositive_body_steps_summand + S (fs_a_dst_unit_slicesumpositive_body_steps) = S ((S (fs_i_dst_unit_slicesumpositive_body_steps)) * dst_positive_scale_unit_slicesum)) /\ exists fs_q_dst_unit_slicesumpositive_body_steps_summand. dst_positive_code_unit_slicesum = fs_q_dst_unit_slicesumpositive_body_steps_summand * S ((S (fs_i_dst_unit_slicesumpositive_body_steps)) * dst_positive_scale_unit_slicesum) + (fs_a_dst_unit_slicesumpositive_body_steps))) /\ ((((exists fs_h_dst_unit_slicesumpositive_body_steps_partial. fs_h_dst_unit_slicesumpositive_body_steps_partial + S (fs_r_dst_unit_slicesumpositive_body_steps) = S ((S (fs_i_dst_unit_slicesumpositive_body_steps)) * fs_v_dst_unit_slicesumpositive)) /\ exists fs_q_dst_unit_slicesumpositive_body_steps_partial. fs_u_dst_unit_slicesumpositive = fs_q_dst_unit_slicesumpositive_body_steps_partial * S ((S (fs_i_dst_unit_slicesumpositive_body_steps)) * fs_v_dst_unit_slicesumpositive) + (fs_r_dst_unit_slicesumpositive_body_steps))) /\ ((((exists fs_h_dst_unit_slicesumpositive_body_steps_successor. fs_h_dst_unit_slicesumpositive_body_steps_successor + S (fs_s_dst_unit_slicesumpositive_body_steps) = S ((S (S fs_i_dst_unit_slicesumpositive_body_steps)) * fs_v_dst_unit_slicesumpositive)) /\ exists fs_q_dst_unit_slicesumpositive_body_steps_successor. fs_u_dst_unit_slicesumpositive = fs_q_dst_unit_slicesumpositive_body_steps_successor * S ((S (S fs_i_dst_unit_slicesumpositive_body_steps)) * fs_v_dst_unit_slicesumpositive) + (fs_s_dst_unit_slicesumpositive_body_steps))) /\ fs_s_dst_unit_slicesumpositive_body_steps = fs_r_dst_unit_slicesumpositive_body_steps + fs_a_dst_unit_slicesumpositive_body_steps)))))) /\ (((exists fs_u_dst_unit_slicesumnegative fs_v_dst_unit_slicesumnegative. ((((exists fs_h_dst_unit_slicesumnegative_body_start. fs_h_dst_unit_slicesumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_slicesumnegative)) /\ exists fs_q_dst_unit_slicesumnegative_body_start. fs_u_dst_unit_slicesumnegative = fs_q_dst_unit_slicesumnegative_body_start * S ((S (0)) * fs_v_dst_unit_slicesumnegative) + (0))) /\ ((((exists fs_h_dst_unit_slicesumnegative_body_terminal. fs_h_dst_unit_slicesumnegative_body_terminal + S (dst_negative_sum_unit_slicesum) = S ((S (l)) * fs_v_dst_unit_slicesumnegative)) /\ exists fs_q_dst_unit_slicesumnegative_body_terminal. fs_u_dst_unit_slicesumnegative = fs_q_dst_unit_slicesumnegative_body_terminal * S ((S (l)) * fs_v_dst_unit_slicesumnegative) + (dst_negative_sum_unit_slicesum))) /\ forall fs_i_dst_unit_slicesumnegative_body_steps. (exists fs_lt_dst_unit_slicesumnegative_body_steps_bound. fs_lt_dst_unit_slicesumnegative_body_steps_bound + S fs_i_dst_unit_slicesumnegative_body_steps = l) -> exists fs_a_dst_unit_slicesumnegative_body_steps fs_r_dst_unit_slicesumnegative_body_steps fs_s_dst_unit_slicesumnegative_body_steps. ((((exists fs_h_dst_unit_slicesumnegative_body_steps_summand. fs_h_dst_unit_slicesumnegative_body_steps_summand + S (fs_a_dst_unit_slicesumnegative_body_steps) = S ((S (fs_i_dst_unit_slicesumnegative_body_steps)) * dst_negative_scale_unit_slicesum)) /\ exists fs_q_dst_unit_slicesumnegative_body_steps_summand. dst_negative_code_unit_slicesum = fs_q_dst_unit_slicesumnegative_body_steps_summand * S ((S (fs_i_dst_unit_slicesumnegative_body_steps)) * dst_negative_scale_unit_slicesum) + (fs_a_dst_unit_slicesumnegative_body_steps))) /\ ((((exists fs_h_dst_unit_slicesumnegative_body_steps_partial. fs_h_dst_unit_slicesumnegative_body_steps_partial + S (fs_r_dst_unit_slicesumnegative_body_steps) = S ((S (fs_i_dst_unit_slicesumnegative_body_steps)) * fs_v_dst_unit_slicesumnegative)) /\ exists fs_q_dst_unit_slicesumnegative_body_steps_partial. fs_u_dst_unit_slicesumnegative = fs_q_dst_unit_slicesumnegative_body_steps_partial * S ((S (fs_i_dst_unit_slicesumnegative_body_steps)) * fs_v_dst_unit_slicesumnegative) + (fs_r_dst_unit_slicesumnegative_body_steps))) /\ ((((exists fs_h_dst_unit_slicesumnegative_body_steps_successor. fs_h_dst_unit_slicesumnegative_body_steps_successor + S (fs_s_dst_unit_slicesumnegative_body_steps) = S ((S (S fs_i_dst_unit_slicesumnegative_body_steps)) * fs_v_dst_unit_slicesumnegative)) /\ exists fs_q_dst_unit_slicesumnegative_body_steps_successor. fs_u_dst_unit_slicesumnegative = fs_q_dst_unit_slicesumnegative_body_steps_successor * S ((S (S fs_i_dst_unit_slicesumnegative_body_steps)) * fs_v_dst_unit_slicesumnegative) + (fs_s_dst_unit_slicesumnegative_body_steps))) /\ fs_s_dst_unit_slicesumnegative_body_steps = fs_r_dst_unit_slicesumnegative_body_steps + fs_a_dst_unit_slicesumnegative_body_steps)))))) /\ (exists ge_balance_positive_unit_slicesumresult ge_balance_negative_unit_slicesumresult. (((((z) = 2 * (ge_balance_positive_unit_slicesumresult) /\ (ge_balance_negative_unit_slicesumresult) = 0) \/ exists ge_signed_half_unit_slicesumresultdecode. (((z) = 2 * ge_signed_half_unit_slicesumresultdecode + 1 /\ (ge_balance_positive_unit_slicesumresult) = 0) /\ (ge_balance_negative_unit_slicesumresult) = S ge_signed_half_unit_slicesumresultdecode))) /\ ((dst_positive_sum_unit_slicesum) + ge_balance_negative_unit_slicesumresult = (dst_negative_sum_unit_slicesum) + ge_balance_positive_unit_slicesumresult)))))))))))))

Constructive proof overview

Generated structural guide

An actual zero-origin, unit-stride slice sum is exactly the existing actual signed prefix sum, independently of slice encoding.

The unchanged tactic script uses 4 declared prerequisites and contains 47 exact native proof lines.

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

Proof neighborhood

Direct dependencies

MX0018 signed_slice_identity arithmetic_signed_sum_exists Alpha theorem; checked-use authorized divisor_signed_sum_extensional Alpha theorem; checked-use authorized signed_rectangular_slice_extensional_unique Alpha theorem; checked-use authorized

Direct dependents

Formal native tactic body

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

Read the argument

Proof checkpoints

47 script commands · 15 reading checkpoints · 3 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.

01Fix variables and assumptionsL1–4

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

  1. L1
    intro F
  2. L2
    intro l
  3. L3
    intro z
  4. L4
    intro hF
02Establish hselfL5–9

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

  1. L5
    have hself : ArithSlice(F,F,0,1,l)Definitions: ArithSlice
  2. L6
    specialize signed_slice_identity (F)
  3. L7
    specialize signed_slice_identity (l)
  4. L8
    apply signed_slice_identity
  5. L9
    exact hF
03Separate the logical casesL10–10

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

  1. L10
    split
04Fix variables and assumptionsL11–11

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

  1. L11
    intro hs
05Separate the logical casesL12–13

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

  1. L12
    cases hs
  2. L13
    cases hs_witness
06Establish htL14–19

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

  1. L14
    have ht : ∃ w. SignedPrefixSum(F,l,w)Definitions: SignedPrefixSum
  2. L15
    specialize arithmetic_signed_sum_exists (0)
  3. L16
    specialize arithmetic_signed_sum_exists (F)
  4. L17
    specialize arithmetic_signed_sum_exists (l)
  5. L18
    apply arithmetic_signed_sum_exists
  6. L19
    exact hF
07Separate the logical casesL20–20

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

  1. L20
    cases ht
08Establish heqL21–30

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

  1. L21
    have heq : x1=z
  2. L22
    symm
  3. L23
    specialize divisor_signed_sum_extensional (x)
  4. L24
    specialize divisor_signed_sum_extensional (F)
  5. L25
    specialize divisor_signed_sum_extensional (l)
  6. L26
    specialize divisor_signed_sum_extensional (z)
  7. L27
    specialize divisor_signed_sum_extensional (x1)
  8. L28
    apply divisor_signed_sum_extensional
  9. L29
    specialize signed_rectangular_slice_extensional_unique (F)
  10. L30
    specialize signed_rectangular_slice_extensional_unique (x)
09Use earlier factsL31–39

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

  1. L31
    specialize signed_rectangular_slice_extensional_unique (F)
  2. L32
    specialize signed_rectangular_slice_extensional_unique (0)
  3. L33
    specialize signed_rectangular_slice_extensional_unique (1)
  4. L34
    specialize signed_rectangular_slice_extensional_unique (l)
  5. L35
    apply signed_rectangular_slice_extensional_unique
  6. L36
    exact hs_witness_left
  7. L37
    exact hself
  8. L38
    exact hs_witness_right
  9. L39
    exact ht_witness
10Calculate and transport equalitiesL40–41

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

  1. L40
    rewrite heq at ht_witness
  2. L41
    rewrite heq at ht_witness
11Use earlier factsL42–42

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

  1. L42
    exact ht_witness
12Fix variables and assumptionsL43–43

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

  1. L43
    intro hs
13Construct an explicit witnessL44–44

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

  1. L44
    exists F
14Separate the logical casesL45–45

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

  1. L45
    split
15Use earlier factsL46–47

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

  1. L46
    exact hself
  2. L47
    exact hs

Library-wide reading audit

Original exact command ledger · 47 lines
  1. 0001intro F
  2. 0002intro l
  3. 0003intro z
  4. 0004intro hF
  5. 0005have hself : ((exists dst_positive_code_unit_selfsource_table dst_positive_scale_unit_selfsource_table dst_negative_code_unit_selfsource_table dst_negative_scale_unit_selfsource_table. (((F) = (((((dst_positive_code_unit_selfsource_table) + (dst_positive_scale_unit_selfsource_table)) * S ((dst_positive_code_unit_selfsource_table) + (dst_positive_scale_unit_selfsource_table)) + ((dst_positive_scale_unit_selfsource_table) + (dst_positive_scale_unit_selfsource_table))) + (((dst_negative_code_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)) * S ((dst_negative_code_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)) + ((dst_negative_scale_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)))) * S ((((dst_positive_code_unit_selfsource_table) + (dst_positive_scale_unit_selfsource_table)) * S ((dst_positive_code_unit_selfsource_table) + (dst_positive_scale_unit_selfsource_table)) + ((dst_positive_scale_unit_selfsource_table) + (dst_positive_scale_unit_selfsource_table))) + (((dst_negative_code_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)) * S ((dst_negative_code_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)) + ((dst_negative_scale_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)))) + ((((dst_negative_code_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)) * S ((dst_negative_code_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)) + ((dst_negative_scale_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table))) + (((dst_negative_code_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)) * S ((dst_negative_code_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)) + ((dst_negative_scale_unit_selfsource_table) + (dst_negative_scale_unit_selfsource_table)))))) /\ (forall dst_index_unit_selfsource_table. (exists pvs_le_gap_unit_selfsource_tabledomain. pvs_le_gap_unit_selfsource_tabledomain + (dst_index_unit_selfsource_table) = (0)) -> exists dst_positive_unit_selfsource_table dst_negative_unit_selfsource_table dst_value_unit_selfsource_table. ((((exists ff_h_pvs_unit_selfsource_tableentrypositive. ff_h_pvs_unit_selfsource_tableentrypositive + S (dst_positive_unit_selfsource_table) = S ((S (dst_index_unit_selfsource_table)) * dst_positive_scale_unit_selfsource_table)) /\ exists ff_q_pvs_unit_selfsource_tableentrypositive. dst_positive_code_unit_selfsource_table = ff_q_pvs_unit_selfsource_tableentrypositive * S ((S (dst_index_unit_selfsource_table)) * dst_positive_scale_unit_selfsource_table) + (dst_positive_unit_selfsource_table))) /\ (((((exists ff_h_pvs_unit_selfsource_tableentrynegative. ff_h_pvs_unit_selfsource_tableentrynegative + S (dst_negative_unit_selfsource_table) = S ((S (dst_index_unit_selfsource_table)) * dst_negative_scale_unit_selfsource_table)) /\ exists ff_q_pvs_unit_selfsource_tableentrynegative. dst_negative_code_unit_selfsource_table = ff_q_pvs_unit_selfsource_tableentrynegative * S ((S (dst_index_unit_selfsource_table)) * dst_negative_scale_unit_selfsource_table) + (dst_negative_unit_selfsource_table))) /\ (exists ge_balance_positive_unit_selfsource_tableentryvalue ge_balance_negative_unit_selfsource_tableentryvalue. (((((dst_value_unit_selfsource_table) = 2 * (ge_balance_positive_unit_selfsource_tableentryvalue) /\ (ge_balance_negative_unit_selfsource_tableentryvalue) = 0) \/ exists ge_signed_half_unit_selfsource_tableentryvaluedecode. (((dst_value_unit_selfsource_table) = 2 * ge_signed_half_unit_selfsource_tableentryvaluedecode + 1 /\ (ge_balance_positive_unit_selfsource_tableentryvalue) = 0) /\ (ge_balance_negative_unit_selfsource_tableentryvalue) = S ge_signed_half_unit_selfsource_tableentryvaluedecode))) /\ ((dst_positive_unit_selfsource_table) + ge_balance_negative_unit_selfsource_tableentryvalue = (dst_negative_unit_selfsource_table) + ge_balance_positive_unit_selfsource_tableentryvalue))))))))) /\ (((exists dst_positive_code_unit_selfoutput_table dst_positive_scale_unit_selfoutput_table dst_negative_code_unit_selfoutput_table dst_negative_scale_unit_selfoutput_table. (((F) = (((((dst_positive_code_unit_selfoutput_table) + (dst_positive_scale_unit_selfoutput_table)) * S ((dst_positive_code_unit_selfoutput_table) + (dst_positive_scale_unit_selfoutput_table)) + ((dst_positive_scale_unit_selfoutput_table) + (dst_positive_scale_unit_selfoutput_table))) + (((dst_negative_code_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)) * S ((dst_negative_code_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)) + ((dst_negative_scale_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)))) * S ((((dst_positive_code_unit_selfoutput_table) + (dst_positive_scale_unit_selfoutput_table)) * S ((dst_positive_code_unit_selfoutput_table) + (dst_positive_scale_unit_selfoutput_table)) + ((dst_positive_scale_unit_selfoutput_table) + (dst_positive_scale_unit_selfoutput_table))) + (((dst_negative_code_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)) * S ((dst_negative_code_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)) + ((dst_negative_scale_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)))) + ((((dst_negative_code_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)) * S ((dst_negative_code_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)) + ((dst_negative_scale_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table))) + (((dst_negative_code_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)) * S ((dst_negative_code_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)) + ((dst_negative_scale_unit_selfoutput_table) + (dst_negative_scale_unit_selfoutput_table)))))) /\ (forall dst_index_unit_selfoutput_table. (exists pvs_le_gap_unit_selfoutput_tabledomain. pvs_le_gap_unit_selfoutput_tabledomain + (dst_index_unit_selfoutput_table) = (l)) -> exists dst_positive_unit_selfoutput_table dst_negative_unit_selfoutput_table dst_value_unit_selfoutput_table. ((((exists ff_h_pvs_unit_selfoutput_tableentrypositive. ff_h_pvs_unit_selfoutput_tableentrypositive + S (dst_positive_unit_selfoutput_table) = S ((S (dst_index_unit_selfoutput_table)) * dst_positive_scale_unit_selfoutput_table)) /\ exists ff_q_pvs_unit_selfoutput_tableentrypositive. dst_positive_code_unit_selfoutput_table = ff_q_pvs_unit_selfoutput_tableentrypositive * S ((S (dst_index_unit_selfoutput_table)) * dst_positive_scale_unit_selfoutput_table) + (dst_positive_unit_selfoutput_table))) /\ (((((exists ff_h_pvs_unit_selfoutput_tableentrynegative. ff_h_pvs_unit_selfoutput_tableentrynegative + S (dst_negative_unit_selfoutput_table) = S ((S (dst_index_unit_selfoutput_table)) * dst_negative_scale_unit_selfoutput_table)) /\ exists ff_q_pvs_unit_selfoutput_tableentrynegative. dst_negative_code_unit_selfoutput_table = ff_q_pvs_unit_selfoutput_tableentrynegative * S ((S (dst_index_unit_selfoutput_table)) * dst_negative_scale_unit_selfoutput_table) + (dst_negative_unit_selfoutput_table))) /\ (exists ge_balance_positive_unit_selfoutput_tableentryvalue ge_balance_negative_unit_selfoutput_tableentryvalue. (((((dst_value_unit_selfoutput_table) = 2 * (ge_balance_positive_unit_selfoutput_tableentryvalue) /\ (ge_balance_negative_unit_selfoutput_tableentryvalue) = 0) \/ exists ge_signed_half_unit_selfoutput_tableentryvaluedecode. (((dst_value_unit_selfoutput_table) = 2 * ge_signed_half_unit_selfoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_unit_selfoutput_tableentryvalue) = 0) /\ (ge_balance_negative_unit_selfoutput_tableentryvalue) = S ge_signed_half_unit_selfoutput_tableentryvaluedecode))) /\ ((dst_positive_unit_selfoutput_table) + ge_balance_negative_unit_selfoutput_tableentryvalue = (dst_negative_unit_selfoutput_table) + ge_balance_positive_unit_selfoutput_tableentryvalue))))))))) /\ (forall srs_index_unit_self. (exists pvs_gap_unit_selfbound. pvs_gap_unit_selfbound + S (srs_index_unit_self) = (l)) -> exists srs_value_unit_self. (((exists dst_positive_code_unit_selfentrysource dst_positive_scale_unit_selfentrysource dst_negative_code_unit_selfentrysource dst_negative_scale_unit_selfentrysource dst_positive_unit_selfentrysource dst_negative_unit_selfentrysource. (((F) = (((((dst_positive_code_unit_selfentrysource) + (dst_positive_scale_unit_selfentrysource)) * S ((dst_positive_code_unit_selfentrysource) + (dst_positive_scale_unit_selfentrysource)) + ((dst_positive_scale_unit_selfentrysource) + (dst_positive_scale_unit_selfentrysource))) + (((dst_negative_code_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)) * S ((dst_negative_code_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)) + ((dst_negative_scale_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)))) * S ((((dst_positive_code_unit_selfentrysource) + (dst_positive_scale_unit_selfentrysource)) * S ((dst_positive_code_unit_selfentrysource) + (dst_positive_scale_unit_selfentrysource)) + ((dst_positive_scale_unit_selfentrysource) + (dst_positive_scale_unit_selfentrysource))) + (((dst_negative_code_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)) * S ((dst_negative_code_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)) + ((dst_negative_scale_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)))) + ((((dst_negative_code_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)) * S ((dst_negative_code_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)) + ((dst_negative_scale_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource))) + (((dst_negative_code_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)) * S ((dst_negative_code_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)) + ((dst_negative_scale_unit_selfentrysource) + (dst_negative_scale_unit_selfentrysource)))))) /\ (((((exists ff_h_pvs_unit_selfentrysourcepositive. ff_h_pvs_unit_selfentrysourcepositive + S (dst_positive_unit_selfentrysource) = S ((S (((0) + ((1) * (srs_index_unit_self))))) * dst_positive_scale_unit_selfentrysource)) /\ exists ff_q_pvs_unit_selfentrysourcepositive. dst_positive_code_unit_selfentrysource = ff_q_pvs_unit_selfentrysourcepositive * S ((S (((0) + ((1) * (srs_index_unit_self))))) * dst_positive_scale_unit_selfentrysource) + (dst_positive_unit_selfentrysource))) /\ (((((exists ff_h_pvs_unit_selfentrysourcenegative. ff_h_pvs_unit_selfentrysourcenegative + S (dst_negative_unit_selfentrysource) = S ((S (((0) + ((1) * (srs_index_unit_self))))) * dst_negative_scale_unit_selfentrysource)) /\ exists ff_q_pvs_unit_selfentrysourcenegative. dst_negative_code_unit_selfentrysource = ff_q_pvs_unit_selfentrysourcenegative * S ((S (((0) + ((1) * (srs_index_unit_self))))) * dst_negative_scale_unit_selfentrysource) + (dst_negative_unit_selfentrysource))) /\ (exists ge_balance_positive_unit_selfentrysourcevalue ge_balance_negative_unit_selfentrysourcevalue. (((((srs_value_unit_self) = 2 * (ge_balance_positive_unit_selfentrysourcevalue) /\ (ge_balance_negative_unit_selfentrysourcevalue) = 0) \/ exists ge_signed_half_unit_selfentrysourcevaluedecode. (((srs_value_unit_self) = 2 * ge_signed_half_unit_selfentrysourcevaluedecode + 1 /\ (ge_balance_positive_unit_selfentrysourcevalue) = 0) /\ (ge_balance_negative_unit_selfentrysourcevalue) = S ge_signed_half_unit_selfentrysourcevaluedecode))) /\ ((dst_positive_unit_selfentrysource) + ge_balance_negative_unit_selfentrysourcevalue = (dst_negative_unit_selfentrysource) + ge_balance_positive_unit_selfentrysourcevalue))))))))) /\ (exists dst_positive_code_unit_selfentryoutput dst_positive_scale_unit_selfentryoutput dst_negative_code_unit_selfentryoutput dst_negative_scale_unit_selfentryoutput dst_positive_unit_selfentryoutput dst_negative_unit_selfentryoutput. (((F) = (((((dst_positive_code_unit_selfentryoutput) + (dst_positive_scale_unit_selfentryoutput)) * S ((dst_positive_code_unit_selfentryoutput) + (dst_positive_scale_unit_selfentryoutput)) + ((dst_positive_scale_unit_selfentryoutput) + (dst_positive_scale_unit_selfentryoutput))) + (((dst_negative_code_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)) * S ((dst_negative_code_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)) + ((dst_negative_scale_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)))) * S ((((dst_positive_code_unit_selfentryoutput) + (dst_positive_scale_unit_selfentryoutput)) * S ((dst_positive_code_unit_selfentryoutput) + (dst_positive_scale_unit_selfentryoutput)) + ((dst_positive_scale_unit_selfentryoutput) + (dst_positive_scale_unit_selfentryoutput))) + (((dst_negative_code_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)) * S ((dst_negative_code_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)) + ((dst_negative_scale_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)))) + ((((dst_negative_code_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)) * S ((dst_negative_code_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)) + ((dst_negative_scale_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput))) + (((dst_negative_code_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)) * S ((dst_negative_code_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)) + ((dst_negative_scale_unit_selfentryoutput) + (dst_negative_scale_unit_selfentryoutput)))))) /\ (((((exists ff_h_pvs_unit_selfentryoutputpositive. ff_h_pvs_unit_selfentryoutputpositive + S (dst_positive_unit_selfentryoutput) = S ((S (srs_index_unit_self)) * dst_positive_scale_unit_selfentryoutput)) /\ exists ff_q_pvs_unit_selfentryoutputpositive. dst_positive_code_unit_selfentryoutput = ff_q_pvs_unit_selfentryoutputpositive * S ((S (srs_index_unit_self)) * dst_positive_scale_unit_selfentryoutput) + (dst_positive_unit_selfentryoutput))) /\ (((((exists ff_h_pvs_unit_selfentryoutputnegative. ff_h_pvs_unit_selfentryoutputnegative + S (dst_negative_unit_selfentryoutput) = S ((S (srs_index_unit_self)) * dst_negative_scale_unit_selfentryoutput)) /\ exists ff_q_pvs_unit_selfentryoutputnegative. dst_negative_code_unit_selfentryoutput = ff_q_pvs_unit_selfentryoutputnegative * S ((S (srs_index_unit_self)) * dst_negative_scale_unit_selfentryoutput) + (dst_negative_unit_selfentryoutput))) /\ (exists ge_balance_positive_unit_selfentryoutputvalue ge_balance_negative_unit_selfentryoutputvalue. (((((srs_value_unit_self) = 2 * (ge_balance_positive_unit_selfentryoutputvalue) /\ (ge_balance_negative_unit_selfentryoutputvalue) = 0) \/ exists ge_signed_half_unit_selfentryoutputvaluedecode. (((srs_value_unit_self) = 2 * ge_signed_half_unit_selfentryoutputvaluedecode + 1 /\ (ge_balance_positive_unit_selfentryoutputvalue) = 0) /\ (ge_balance_negative_unit_selfentryoutputvalue) = S ge_signed_half_unit_selfentryoutputvaluedecode))) /\ ((dst_positive_unit_selfentryoutput) + ge_balance_negative_unit_selfentryoutputvalue = (dst_negative_unit_selfentryoutput) + ge_balance_positive_unit_selfentryoutputvalue)))))))))))))))
  6. 0006specialize signed_slice_identity (F)
  7. 0007specialize signed_slice_identity (l)
  8. 0008apply signed_slice_identity
  9. 0009exact hF
  10. 0010split
  11. 0011intro hs
  12. 0012cases hs
  13. 0013cases hs_witness
  14. 0014have ht : exists w. (exists dst_positive_code_unit_actual_sum dst_positive_scale_unit_actual_sum dst_negative_code_unit_actual_sum dst_negative_scale_unit_actual_sum dst_positive_sum_unit_actual_sum dst_negative_sum_unit_actual_sum. (((F) = (((((dst_positive_code_unit_actual_sum) + (dst_positive_scale_unit_actual_sum)) * S ((dst_positive_code_unit_actual_sum) + (dst_positive_scale_unit_actual_sum)) + ((dst_positive_scale_unit_actual_sum) + (dst_positive_scale_unit_actual_sum))) + (((dst_negative_code_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)) * S ((dst_negative_code_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)) + ((dst_negative_scale_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)))) * S ((((dst_positive_code_unit_actual_sum) + (dst_positive_scale_unit_actual_sum)) * S ((dst_positive_code_unit_actual_sum) + (dst_positive_scale_unit_actual_sum)) + ((dst_positive_scale_unit_actual_sum) + (dst_positive_scale_unit_actual_sum))) + (((dst_negative_code_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)) * S ((dst_negative_code_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)) + ((dst_negative_scale_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)))) + ((((dst_negative_code_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)) * S ((dst_negative_code_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)) + ((dst_negative_scale_unit_actual_sum) + (dst_negative_scale_unit_actual_sum))) + (((dst_negative_code_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)) * S ((dst_negative_code_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)) + ((dst_negative_scale_unit_actual_sum) + (dst_negative_scale_unit_actual_sum)))))) /\ (((exists fs_u_dst_unit_actual_sumpositive fs_v_dst_unit_actual_sumpositive. ((((exists fs_h_dst_unit_actual_sumpositive_body_start. fs_h_dst_unit_actual_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_actual_sumpositive)) /\ exists fs_q_dst_unit_actual_sumpositive_body_start. fs_u_dst_unit_actual_sumpositive = fs_q_dst_unit_actual_sumpositive_body_start * S ((S (0)) * fs_v_dst_unit_actual_sumpositive) + (0))) /\ ((((exists fs_h_dst_unit_actual_sumpositive_body_terminal. fs_h_dst_unit_actual_sumpositive_body_terminal + S (dst_positive_sum_unit_actual_sum) = S ((S (l)) * fs_v_dst_unit_actual_sumpositive)) /\ exists fs_q_dst_unit_actual_sumpositive_body_terminal. fs_u_dst_unit_actual_sumpositive = fs_q_dst_unit_actual_sumpositive_body_terminal * S ((S (l)) * fs_v_dst_unit_actual_sumpositive) + (dst_positive_sum_unit_actual_sum))) /\ forall fs_i_dst_unit_actual_sumpositive_body_steps. (exists fs_lt_dst_unit_actual_sumpositive_body_steps_bound. fs_lt_dst_unit_actual_sumpositive_body_steps_bound + S fs_i_dst_unit_actual_sumpositive_body_steps = l) -> exists fs_a_dst_unit_actual_sumpositive_body_steps fs_r_dst_unit_actual_sumpositive_body_steps fs_s_dst_unit_actual_sumpositive_body_steps. ((((exists fs_h_dst_unit_actual_sumpositive_body_steps_summand. fs_h_dst_unit_actual_sumpositive_body_steps_summand + S (fs_a_dst_unit_actual_sumpositive_body_steps) = S ((S (fs_i_dst_unit_actual_sumpositive_body_steps)) * dst_positive_scale_unit_actual_sum)) /\ exists fs_q_dst_unit_actual_sumpositive_body_steps_summand. dst_positive_code_unit_actual_sum = fs_q_dst_unit_actual_sumpositive_body_steps_summand * S ((S (fs_i_dst_unit_actual_sumpositive_body_steps)) * dst_positive_scale_unit_actual_sum) + (fs_a_dst_unit_actual_sumpositive_body_steps))) /\ ((((exists fs_h_dst_unit_actual_sumpositive_body_steps_partial. fs_h_dst_unit_actual_sumpositive_body_steps_partial + S (fs_r_dst_unit_actual_sumpositive_body_steps) = S ((S (fs_i_dst_unit_actual_sumpositive_body_steps)) * fs_v_dst_unit_actual_sumpositive)) /\ exists fs_q_dst_unit_actual_sumpositive_body_steps_partial. fs_u_dst_unit_actual_sumpositive = fs_q_dst_unit_actual_sumpositive_body_steps_partial * S ((S (fs_i_dst_unit_actual_sumpositive_body_steps)) * fs_v_dst_unit_actual_sumpositive) + (fs_r_dst_unit_actual_sumpositive_body_steps))) /\ ((((exists fs_h_dst_unit_actual_sumpositive_body_steps_successor. fs_h_dst_unit_actual_sumpositive_body_steps_successor + S (fs_s_dst_unit_actual_sumpositive_body_steps) = S ((S (S fs_i_dst_unit_actual_sumpositive_body_steps)) * fs_v_dst_unit_actual_sumpositive)) /\ exists fs_q_dst_unit_actual_sumpositive_body_steps_successor. fs_u_dst_unit_actual_sumpositive = fs_q_dst_unit_actual_sumpositive_body_steps_successor * S ((S (S fs_i_dst_unit_actual_sumpositive_body_steps)) * fs_v_dst_unit_actual_sumpositive) + (fs_s_dst_unit_actual_sumpositive_body_steps))) /\ fs_s_dst_unit_actual_sumpositive_body_steps = fs_r_dst_unit_actual_sumpositive_body_steps + fs_a_dst_unit_actual_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_unit_actual_sumnegative fs_v_dst_unit_actual_sumnegative. ((((exists fs_h_dst_unit_actual_sumnegative_body_start. fs_h_dst_unit_actual_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_unit_actual_sumnegative)) /\ exists fs_q_dst_unit_actual_sumnegative_body_start. fs_u_dst_unit_actual_sumnegative = fs_q_dst_unit_actual_sumnegative_body_start * S ((S (0)) * fs_v_dst_unit_actual_sumnegative) + (0))) /\ ((((exists fs_h_dst_unit_actual_sumnegative_body_terminal. fs_h_dst_unit_actual_sumnegative_body_terminal + S (dst_negative_sum_unit_actual_sum) = S ((S (l)) * fs_v_dst_unit_actual_sumnegative)) /\ exists fs_q_dst_unit_actual_sumnegative_body_terminal. fs_u_dst_unit_actual_sumnegative = fs_q_dst_unit_actual_sumnegative_body_terminal * S ((S (l)) * fs_v_dst_unit_actual_sumnegative) + (dst_negative_sum_unit_actual_sum))) /\ forall fs_i_dst_unit_actual_sumnegative_body_steps. (exists fs_lt_dst_unit_actual_sumnegative_body_steps_bound. fs_lt_dst_unit_actual_sumnegative_body_steps_bound + S fs_i_dst_unit_actual_sumnegative_body_steps = l) -> exists fs_a_dst_unit_actual_sumnegative_body_steps fs_r_dst_unit_actual_sumnegative_body_steps fs_s_dst_unit_actual_sumnegative_body_steps. ((((exists fs_h_dst_unit_actual_sumnegative_body_steps_summand. fs_h_dst_unit_actual_sumnegative_body_steps_summand + S (fs_a_dst_unit_actual_sumnegative_body_steps) = S ((S (fs_i_dst_unit_actual_sumnegative_body_steps)) * dst_negative_scale_unit_actual_sum)) /\ exists fs_q_dst_unit_actual_sumnegative_body_steps_summand. dst_negative_code_unit_actual_sum = fs_q_dst_unit_actual_sumnegative_body_steps_summand * S ((S (fs_i_dst_unit_actual_sumnegative_body_steps)) * dst_negative_scale_unit_actual_sum) + (fs_a_dst_unit_actual_sumnegative_body_steps))) /\ ((((exists fs_h_dst_unit_actual_sumnegative_body_steps_partial. fs_h_dst_unit_actual_sumnegative_body_steps_partial + S (fs_r_dst_unit_actual_sumnegative_body_steps) = S ((S (fs_i_dst_unit_actual_sumnegative_body_steps)) * fs_v_dst_unit_actual_sumnegative)) /\ exists fs_q_dst_unit_actual_sumnegative_body_steps_partial. fs_u_dst_unit_actual_sumnegative = fs_q_dst_unit_actual_sumnegative_body_steps_partial * S ((S (fs_i_dst_unit_actual_sumnegative_body_steps)) * fs_v_dst_unit_actual_sumnegative) + (fs_r_dst_unit_actual_sumnegative_body_steps))) /\ ((((exists fs_h_dst_unit_actual_sumnegative_body_steps_successor. fs_h_dst_unit_actual_sumnegative_body_steps_successor + S (fs_s_dst_unit_actual_sumnegative_body_steps) = S ((S (S fs_i_dst_unit_actual_sumnegative_body_steps)) * fs_v_dst_unit_actual_sumnegative)) /\ exists fs_q_dst_unit_actual_sumnegative_body_steps_successor. fs_u_dst_unit_actual_sumnegative = fs_q_dst_unit_actual_sumnegative_body_steps_successor * S ((S (S fs_i_dst_unit_actual_sumnegative_body_steps)) * fs_v_dst_unit_actual_sumnegative) + (fs_s_dst_unit_actual_sumnegative_body_steps))) /\ fs_s_dst_unit_actual_sumnegative_body_steps = fs_r_dst_unit_actual_sumnegative_body_steps + fs_a_dst_unit_actual_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_unit_actual_sumresult ge_balance_negative_unit_actual_sumresult. (((((w) = 2 * (ge_balance_positive_unit_actual_sumresult) /\ (ge_balance_negative_unit_actual_sumresult) = 0) \/ exists ge_signed_half_unit_actual_sumresultdecode. (((w) = 2 * ge_signed_half_unit_actual_sumresultdecode + 1 /\ (ge_balance_positive_unit_actual_sumresult) = 0) /\ (ge_balance_negative_unit_actual_sumresult) = S ge_signed_half_unit_actual_sumresultdecode))) /\ ((dst_positive_sum_unit_actual_sum) + ge_balance_negative_unit_actual_sumresult = (dst_negative_sum_unit_actual_sum) + ge_balance_positive_unit_actual_sumresult)))))))))
  15. 0015specialize arithmetic_signed_sum_exists (0)
  16. 0016specialize arithmetic_signed_sum_exists (F)
  17. 0017specialize arithmetic_signed_sum_exists (l)
  18. 0018apply arithmetic_signed_sum_exists
  19. 0019exact hF
  20. 0020cases ht
  21. 0021have heq : x1=z
  22. 0022symm
  23. 0023specialize divisor_signed_sum_extensional (x)
  24. 0024specialize divisor_signed_sum_extensional (F)
  25. 0025specialize divisor_signed_sum_extensional (l)
  26. 0026specialize divisor_signed_sum_extensional (z)
  27. 0027specialize divisor_signed_sum_extensional (x1)
  28. 0028apply divisor_signed_sum_extensional
  29. 0029specialize signed_rectangular_slice_extensional_unique (F)
  30. 0030specialize signed_rectangular_slice_extensional_unique (x)
  31. 0031specialize signed_rectangular_slice_extensional_unique (F)
  32. 0032specialize signed_rectangular_slice_extensional_unique (0)
  33. 0033specialize signed_rectangular_slice_extensional_unique (1)
  34. 0034specialize signed_rectangular_slice_extensional_unique (l)
  35. 0035apply signed_rectangular_slice_extensional_unique
  36. 0036exact hs_witness_left
  37. 0037exact hself
  38. 0038exact hs_witness_right
  39. 0039exact ht_witness
  40. 0040rewrite heq at ht_witness
  41. 0041rewrite heq at ht_witness
  42. 0042exact ht_witness
  43. 0043intro hs
  44. 0044exists F
  45. 0045split
  46. 0046exact hself
  47. 0047exact hs