WS001E

signed_prefix_sum_scalar_multiply_values_exist

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

Construct all actual signed prefix-sum values and prove their scalar product relation, including the empty-prefix boundary.

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 l a F G. (((exists dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table. (((F) = (((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)))) * S ((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)))) + ((((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)))))) /\ (forall dst_index_signed_prefix_sum_scalar_multiply_construct_graphinput_table. (exists pvs_le_gap_signed_prefix_sum_scalar_multiply_construct_graphinput_tabledomain. pvs_le_gap_signed_prefix_sum_scalar_multiply_construct_graphinput_tabledomain + (dst_index_signed_prefix_sum_scalar_multiply_construct_graphinput_table) = (l)) -> exists dst_positive_signed_prefix_sum_scalar_multiply_construct_graphinput_table dst_negative_signed_prefix_sum_scalar_multiply_construct_graphinput_table dst_value_signed_prefix_sum_scalar_multiply_construct_graphinput_table. ((((exists ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentrypositive. ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentrypositive + S (dst_positive_signed_prefix_sum_scalar_multiply_construct_graphinput_table) = S ((S (dst_index_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) /\ exists ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentrypositive. dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table = ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentrypositive * S ((S (dst_index_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_positive_signed_prefix_sum_scalar_multiply_construct_graphinput_table))) /\ (((((exists ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentrynegative. ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentrynegative + S (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphinput_table) = S ((S (dst_index_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) /\ exists ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentrynegative. dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphinput_table = ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentrynegative * S ((S (dst_index_signed_prefix_sum_scalar_multiply_construct_graphinput_table)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphinput_table))) /\ (exists ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvalue ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvalue. (((((dst_value_signed_prefix_sum_scalar_multiply_construct_graphinput_table) = 2 * (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvalue) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvalue) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvaluedecode. (((dst_value_signed_prefix_sum_scalar_multiply_construct_graphinput_table) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvaluedecode + 1 /\ (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvalue) = 0) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvalue) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvaluedecode))) /\ ((dst_positive_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvalue = (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphinput_table) + ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphinput_tableentryvalue))))))))) /\ (((exists dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table. (((G) = (((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)))) * S ((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)))) + ((((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)))))) /\ (forall dst_index_signed_prefix_sum_scalar_multiply_construct_graphoutput_table. (exists pvs_le_gap_signed_prefix_sum_scalar_multiply_construct_graphoutput_tabledomain. pvs_le_gap_signed_prefix_sum_scalar_multiply_construct_graphoutput_tabledomain + (dst_index_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) = (l)) -> exists dst_positive_signed_prefix_sum_scalar_multiply_construct_graphoutput_table dst_negative_signed_prefix_sum_scalar_multiply_construct_graphoutput_table dst_value_signed_prefix_sum_scalar_multiply_construct_graphoutput_table. ((((exists ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentrypositive. ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentrypositive + S (dst_positive_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) = S ((S (dst_index_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) /\ exists ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentrypositive. dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table = ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentrypositive * S ((S (dst_index_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_positive_signed_prefix_sum_scalar_multiply_construct_graphoutput_table))) /\ (((((exists ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentrynegative. ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentrynegative + S (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) = S ((S (dst_index_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) /\ exists ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentrynegative. dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphoutput_table = ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentrynegative * S ((S (dst_index_signed_prefix_sum_scalar_multiply_construct_graphoutput_table)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphoutput_table))) /\ (exists ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvalue ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvalue. (((((dst_value_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) = 2 * (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvalue) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvalue) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvaluedecode. (((dst_value_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvalue) = 0) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvalue) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvaluedecode))) /\ ((dst_positive_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvalue = (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphoutput_table) + ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphoutput_tableentryvalue))))))))) /\ (forall sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries. (exists pvs_gap_signed_prefix_sum_scalar_multiply_construct_graphentriesbound. pvs_gap_signed_prefix_sum_scalar_multiply_construct_graphentriesbound + S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries) = (l)) -> exists sto_input_signed_prefix_sum_scalar_multiply_construct_graphentries sto_output_signed_prefix_sum_scalar_multiply_construct_graphentries. ((exists dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput dst_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput dst_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput. (((F) = (((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)))) * S ((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)))) + ((((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)))))) /\ (((((exists ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputpositive. ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputpositive + S (dst_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) = S ((S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) /\ exists ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputpositive. dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput = ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputpositive * S ((S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput))) /\ (((((exists ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputnegative. ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputnegative + S (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) = S ((S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput)) /\ exists ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputnegative. dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput = ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputnegative * S ((S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput))) /\ (exists ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvalue ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvalue. (((((sto_input_signed_prefix_sum_scalar_multiply_construct_graphentries) = 2 * (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvalue) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvalue) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvaluedecode. (((sto_input_signed_prefix_sum_scalar_multiply_construct_graphentries) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvaluedecode + 1 /\ (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvalue) = 0) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvalue) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvaluedecode))) /\ ((dst_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvalue = (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinput) + ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryinputvalue))))))))) /\ (((exists dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput dst_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput dst_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput. (((G) = (((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)))) * S ((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)))) + ((((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)))))) /\ (((((exists ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputpositive. ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputpositive + S (dst_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) = S ((S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) /\ exists ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputpositive. dst_positive_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput = ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputpositive * S ((S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput))) /\ (((((exists ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputnegative. ff_h_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputnegative + S (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) = S ((S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput)) /\ exists ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputnegative. dst_negative_code_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput = ff_q_pvs_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputnegative * S ((S (sto_index_signed_prefix_sum_scalar_multiply_construct_graphentries)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput))) /\ (exists ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvalue ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvalue. (((((sto_output_signed_prefix_sum_scalar_multiply_construct_graphentries) = 2 * (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvalue) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvalue) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvaluedecode. (((sto_output_signed_prefix_sum_scalar_multiply_construct_graphentries) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvaluedecode + 1 /\ (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvalue) = 0) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvalue) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvaluedecode))) /\ ((dst_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + ge_balance_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvalue = (dst_negative_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutput) + ge_balance_positive_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoutputvalue))))))))) /\ (exists sto_ap_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation sto_an_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation sto_bp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation sto_bn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation sto_cp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation sto_cn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation. (((((a) = 2 * (sto_ap_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) /\ (sto_an_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationleft. (((a) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationleft + 1 /\ (sto_ap_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = 0) /\ (sto_an_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationleft))) /\ ((((((sto_input_signed_prefix_sum_scalar_multiply_construct_graphentries) = 2 * (sto_bp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) /\ (sto_bn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationright. (((sto_input_signed_prefix_sum_scalar_multiply_construct_graphentries) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationright + 1 /\ (sto_bp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = 0) /\ (sto_bn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationright))) /\ ((((((sto_output_signed_prefix_sum_scalar_multiply_construct_graphentries) = 2 * (sto_cp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) /\ (sto_cn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationoutput. (((sto_output_signed_prefix_sum_scalar_multiply_construct_graphentries) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationoutput + 1 /\ (sto_cp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = 0) /\ (sto_cn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperationoutput))) /\ ((sto_ap_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation * sto_bp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation + sto_an_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation * sto_bn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) + sto_cn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation = (sto_ap_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation * sto_bn_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation + sto_an_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation * sto_bp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation) + sto_cp_signed_prefix_sum_scalar_multiply_construct_graphentriesentryoperation))))))))))))))) -> exists b c. ((exists dst_positive_code_signed_prefix_sum_scalar_multiply_result0 dst_positive_scale_signed_prefix_sum_scalar_multiply_result0 dst_negative_code_signed_prefix_sum_scalar_multiply_result0 dst_negative_scale_signed_prefix_sum_scalar_multiply_result0 dst_positive_sum_signed_prefix_sum_scalar_multiply_result0 dst_negative_sum_signed_prefix_sum_scalar_multiply_result0. (((F) = (((((dst_positive_code_signed_prefix_sum_scalar_multiply_result0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result0)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_result0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result0)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_result0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result0))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)))) * S ((((dst_positive_code_signed_prefix_sum_scalar_multiply_result0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result0)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_result0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result0)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_result0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result0))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)))) + ((((dst_negative_code_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_result0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)))))) /\ (((exists fs_u_dst_signed_prefix_sum_scalar_multiply_result0positive fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_start. fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_start + S (0) = S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_start. fs_u_dst_signed_prefix_sum_scalar_multiply_result0positive = fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_start * S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive) + (0))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_terminal. fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_terminal + S (dst_positive_sum_signed_prefix_sum_scalar_multiply_result0) = S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_terminal. fs_u_dst_signed_prefix_sum_scalar_multiply_result0positive = fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_terminal * S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive) + (dst_positive_sum_signed_prefix_sum_scalar_multiply_result0))) /\ forall fs_i_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps. (exists fs_lt_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_bound. fs_lt_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_bound + S fs_i_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps = l) -> exists fs_a_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps fs_r_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps fs_s_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_summand. fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_summand + S (fs_a_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_result0)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_summand. dst_positive_code_signed_prefix_sum_scalar_multiply_result0 = fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_summand * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_result0) + (fs_a_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_partial. fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_partial + S (fs_r_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_partial. fs_u_dst_signed_prefix_sum_scalar_multiply_result0positive = fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_partial * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive) + (fs_r_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_successor. fs_h_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_successor + S (fs_s_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps) = S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_successor. fs_u_dst_signed_prefix_sum_scalar_multiply_result0positive = fs_q_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps_successor * S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0positive) + (fs_s_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps))) /\ fs_s_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps = fs_r_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps + fs_a_dst_signed_prefix_sum_scalar_multiply_result0positive_body_steps)))))) /\ (((exists fs_u_dst_signed_prefix_sum_scalar_multiply_result0negative fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_start. fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_start + S (0) = S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_start. fs_u_dst_signed_prefix_sum_scalar_multiply_result0negative = fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_start * S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative) + (0))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_terminal. fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_terminal + S (dst_negative_sum_signed_prefix_sum_scalar_multiply_result0) = S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_terminal. fs_u_dst_signed_prefix_sum_scalar_multiply_result0negative = fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_terminal * S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative) + (dst_negative_sum_signed_prefix_sum_scalar_multiply_result0))) /\ forall fs_i_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps. (exists fs_lt_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_bound. fs_lt_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_bound + S fs_i_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps = l) -> exists fs_a_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps fs_r_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps fs_s_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_summand. fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_summand + S (fs_a_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_result0)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_summand. dst_negative_code_signed_prefix_sum_scalar_multiply_result0 = fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_summand * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_result0) + (fs_a_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_partial. fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_partial + S (fs_r_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_partial. fs_u_dst_signed_prefix_sum_scalar_multiply_result0negative = fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_partial * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative) + (fs_r_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_successor. fs_h_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_successor + S (fs_s_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps) = S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_successor. fs_u_dst_signed_prefix_sum_scalar_multiply_result0negative = fs_q_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps_successor * S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result0negative) + (fs_s_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps))) /\ fs_s_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps = fs_r_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps + fs_a_dst_signed_prefix_sum_scalar_multiply_result0negative_body_steps)))))) /\ (exists ge_balance_positive_signed_prefix_sum_scalar_multiply_result0result ge_balance_negative_signed_prefix_sum_scalar_multiply_result0result. (((((b) = 2 * (ge_balance_positive_signed_prefix_sum_scalar_multiply_result0result) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_result0result) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_result0resultdecode. (((b) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_result0resultdecode + 1 /\ (ge_balance_positive_signed_prefix_sum_scalar_multiply_result0result) = 0) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_result0result) = S ge_signed_half_signed_prefix_sum_scalar_multiply_result0resultdecode))) /\ ((dst_positive_sum_signed_prefix_sum_scalar_multiply_result0) + ge_balance_negative_signed_prefix_sum_scalar_multiply_result0result = (dst_negative_sum_signed_prefix_sum_scalar_multiply_result0) + ge_balance_positive_signed_prefix_sum_scalar_multiply_result0result))))))))) /\ (((exists dst_positive_code_signed_prefix_sum_scalar_multiply_result1 dst_positive_scale_signed_prefix_sum_scalar_multiply_result1 dst_negative_code_signed_prefix_sum_scalar_multiply_result1 dst_negative_scale_signed_prefix_sum_scalar_multiply_result1 dst_positive_sum_signed_prefix_sum_scalar_multiply_result1 dst_negative_sum_signed_prefix_sum_scalar_multiply_result1. (((G) = (((((dst_positive_code_signed_prefix_sum_scalar_multiply_result1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result1)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_result1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result1)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_result1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result1))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)))) * S ((((dst_positive_code_signed_prefix_sum_scalar_multiply_result1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result1)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_result1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result1)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_result1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_result1))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)))) + ((((dst_negative_code_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_result1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)))))) /\ (((exists fs_u_dst_signed_prefix_sum_scalar_multiply_result1positive fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_start. fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_start + S (0) = S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_start. fs_u_dst_signed_prefix_sum_scalar_multiply_result1positive = fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_start * S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive) + (0))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_terminal. fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_terminal + S (dst_positive_sum_signed_prefix_sum_scalar_multiply_result1) = S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_terminal. fs_u_dst_signed_prefix_sum_scalar_multiply_result1positive = fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_terminal * S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive) + (dst_positive_sum_signed_prefix_sum_scalar_multiply_result1))) /\ forall fs_i_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps. (exists fs_lt_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_bound. fs_lt_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_bound + S fs_i_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps = l) -> exists fs_a_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps fs_r_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps fs_s_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_summand. fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_summand + S (fs_a_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_result1)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_summand. dst_positive_code_signed_prefix_sum_scalar_multiply_result1 = fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_summand * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_result1) + (fs_a_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_partial. fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_partial + S (fs_r_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_partial. fs_u_dst_signed_prefix_sum_scalar_multiply_result1positive = fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_partial * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive) + (fs_r_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_successor. fs_h_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_successor + S (fs_s_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps) = S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_successor. fs_u_dst_signed_prefix_sum_scalar_multiply_result1positive = fs_q_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps_successor * S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1positive) + (fs_s_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps))) /\ fs_s_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps = fs_r_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps + fs_a_dst_signed_prefix_sum_scalar_multiply_result1positive_body_steps)))))) /\ (((exists fs_u_dst_signed_prefix_sum_scalar_multiply_result1negative fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_start. fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_start + S (0) = S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_start. fs_u_dst_signed_prefix_sum_scalar_multiply_result1negative = fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_start * S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative) + (0))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_terminal. fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_terminal + S (dst_negative_sum_signed_prefix_sum_scalar_multiply_result1) = S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_terminal. fs_u_dst_signed_prefix_sum_scalar_multiply_result1negative = fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_terminal * S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative) + (dst_negative_sum_signed_prefix_sum_scalar_multiply_result1))) /\ forall fs_i_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps. (exists fs_lt_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_bound. fs_lt_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_bound + S fs_i_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps = l) -> exists fs_a_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps fs_r_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps fs_s_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_summand. fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_summand + S (fs_a_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_result1)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_summand. dst_negative_code_signed_prefix_sum_scalar_multiply_result1 = fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_summand * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_result1) + (fs_a_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_partial. fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_partial + S (fs_r_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_partial. fs_u_dst_signed_prefix_sum_scalar_multiply_result1negative = fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_partial * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative) + (fs_r_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_successor. fs_h_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_successor + S (fs_s_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps) = S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_successor. fs_u_dst_signed_prefix_sum_scalar_multiply_result1negative = fs_q_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps_successor * S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_result1negative) + (fs_s_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps))) /\ fs_s_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps = fs_r_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps + fs_a_dst_signed_prefix_sum_scalar_multiply_result1negative_body_steps)))))) /\ (exists ge_balance_positive_signed_prefix_sum_scalar_multiply_result1result ge_balance_negative_signed_prefix_sum_scalar_multiply_result1result. (((((c) = 2 * (ge_balance_positive_signed_prefix_sum_scalar_multiply_result1result) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_result1result) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_result1resultdecode. (((c) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_result1resultdecode + 1 /\ (ge_balance_positive_signed_prefix_sum_scalar_multiply_result1result) = 0) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_result1result) = S ge_signed_half_signed_prefix_sum_scalar_multiply_result1resultdecode))) /\ ((dst_positive_sum_signed_prefix_sum_scalar_multiply_result1) + ge_balance_negative_signed_prefix_sum_scalar_multiply_result1result = (dst_negative_sum_signed_prefix_sum_scalar_multiply_result1) + ge_balance_positive_signed_prefix_sum_scalar_multiply_result1result))))))))) /\ (exists sto_ap_signed_prefix_sum_scalar_multiply_result_operation sto_an_signed_prefix_sum_scalar_multiply_result_operation sto_bp_signed_prefix_sum_scalar_multiply_result_operation sto_bn_signed_prefix_sum_scalar_multiply_result_operation sto_cp_signed_prefix_sum_scalar_multiply_result_operation sto_cn_signed_prefix_sum_scalar_multiply_result_operation. (((((a) = 2 * (sto_ap_signed_prefix_sum_scalar_multiply_result_operation) /\ (sto_an_signed_prefix_sum_scalar_multiply_result_operation) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationleft. (((a) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationleft + 1 /\ (sto_ap_signed_prefix_sum_scalar_multiply_result_operation) = 0) /\ (sto_an_signed_prefix_sum_scalar_multiply_result_operation) = S ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationleft))) /\ ((((((b) = 2 * (sto_bp_signed_prefix_sum_scalar_multiply_result_operation) /\ (sto_bn_signed_prefix_sum_scalar_multiply_result_operation) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationright. (((b) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationright + 1 /\ (sto_bp_signed_prefix_sum_scalar_multiply_result_operation) = 0) /\ (sto_bn_signed_prefix_sum_scalar_multiply_result_operation) = S ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationright))) /\ ((((((c) = 2 * (sto_cp_signed_prefix_sum_scalar_multiply_result_operation) /\ (sto_cn_signed_prefix_sum_scalar_multiply_result_operation) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationoutput. (((c) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationoutput + 1 /\ (sto_cp_signed_prefix_sum_scalar_multiply_result_operation) = 0) /\ (sto_cn_signed_prefix_sum_scalar_multiply_result_operation) = S ge_signed_half_signed_prefix_sum_scalar_multiply_result_operationoutput))) /\ ((sto_ap_signed_prefix_sum_scalar_multiply_result_operation * sto_bp_signed_prefix_sum_scalar_multiply_result_operation + sto_an_signed_prefix_sum_scalar_multiply_result_operation * sto_bn_signed_prefix_sum_scalar_multiply_result_operation) + sto_cn_signed_prefix_sum_scalar_multiply_result_operation = (sto_ap_signed_prefix_sum_scalar_multiply_result_operation * sto_bn_signed_prefix_sum_scalar_multiply_result_operation + sto_an_signed_prefix_sum_scalar_multiply_result_operation * sto_bp_signed_prefix_sum_scalar_multiply_result_operation) + sto_cp_signed_prefix_sum_scalar_multiply_result_operation))))))))))

Constructive proof overview

Generated structural guide

Construct all actual signed prefix-sum values and prove their scalar product relation, including the empty-prefix boundary.

The unchanged tactic script uses 2 declared prerequisites and contains 39 exact native proof lines.

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

Proof neighborhood

Direct dependencies

arithmetic_signed_sum_exists Alpha theorem; checked-use authorized WS001C signed_prefix_sum_scalar_multiply

Direct dependents

none

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

39 script commands · 15 reading checkpoints · 2 local claims

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

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

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

  1. L1
    intro l
  2. L2
    intro a
  3. L3
    intro F
  4. L4
    intro G
  5. L5
    intro hpoint
02Establish hs0L6–10

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

  1. L6
    have hs0 : ∃ z. SignedPrefixSum(F,l,z)Definitions: SignedPrefixSum
  2. L7
    specialize arithmetic_signed_sum_exists (l)
  3. L8
    specialize arithmetic_signed_sum_exists (F)
  4. L9
    specialize arithmetic_signed_sum_exists (l)
  5. L10
    apply arithmetic_signed_sum_exists
03Separate the logical casesL11–12

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

  1. L11
    cases hpoint
  2. L12
    cases hpoint_right
04Use earlier factsL13–13

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

  1. L13
    exact hpoint_left
05Separate the logical casesL14–14

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

  1. L14
    cases hs0
06Establish hs1L15–19

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

  1. L15
    have hs1 : ∃ z. SignedPrefixSum(G,l,z)Definitions: SignedPrefixSum
  2. L16
    specialize arithmetic_signed_sum_exists (l)
  3. L17
    specialize arithmetic_signed_sum_exists (G)
  4. L18
    specialize arithmetic_signed_sum_exists (l)
  5. L19
    apply arithmetic_signed_sum_exists
07Separate the logical casesL20–21

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

  1. L20
    cases hpoint
  2. L21
    cases hpoint_right
08Use earlier factsL22–22

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

  1. L22
    exact hpoint_right_left
09Separate the logical casesL23–23

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

  1. L23
    cases hs1
10Construct an explicit witnessL24–25

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

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

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

  1. L26
    split
12Use earlier factsL27–27

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

  1. L27
    exact hs0_witness
13Separate the logical casesL28–28

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

  1. L28
    split
14Use earlier factsL29–38

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

  1. L29
    exact hs1_witness
  2. L30
    specialize signed_prefix_sum_scalar_multiply (l)
  3. L31
    specialize signed_prefix_sum_scalar_multiply (a)
  4. L32
    specialize signed_prefix_sum_scalar_multiply (F)
  5. L33
    specialize signed_prefix_sum_scalar_multiply (G)
  6. L34
    specialize signed_prefix_sum_scalar_multiply (x)
  7. L35
    specialize signed_prefix_sum_scalar_multiply (x1)
  8. L36
    apply signed_prefix_sum_scalar_multiply
  9. L37
    exact hpoint
  10. L38
    exact hs0_witness
15Use earlier factsL39–39

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

  1. L39
    exact hs1_witness

Library-wide reading audit

Original exact command ledger · 39 lines
  1. 0001intro l
  2. 0002intro a
  3. 0003intro F
  4. 0004intro G
  5. 0005intro hpoint
  6. 0006have hs0 : exists z. (exists dst_positive_code_signed_prefix_sum_scalar_multiply_construct0 dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0 dst_negative_code_signed_prefix_sum_scalar_multiply_construct0 dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0 dst_positive_sum_signed_prefix_sum_scalar_multiply_construct0 dst_negative_sum_signed_prefix_sum_scalar_multiply_construct0. (((F) = (((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)))) * S ((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)))) + ((((dst_negative_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)))))) /\ (((exists fs_u_dst_signed_prefix_sum_scalar_multiply_construct0positive fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_start. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_start + S (0) = S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_start. fs_u_dst_signed_prefix_sum_scalar_multiply_construct0positive = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_start * S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive) + (0))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_terminal. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_terminal + S (dst_positive_sum_signed_prefix_sum_scalar_multiply_construct0) = S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_terminal. fs_u_dst_signed_prefix_sum_scalar_multiply_construct0positive = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_terminal * S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive) + (dst_positive_sum_signed_prefix_sum_scalar_multiply_construct0))) /\ forall fs_i_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps. (exists fs_lt_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_bound. fs_lt_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_bound + S fs_i_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps = l) -> exists fs_a_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps fs_r_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps fs_s_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_summand. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_summand + S (fs_a_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_summand. dst_positive_code_signed_prefix_sum_scalar_multiply_construct0 = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_summand * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct0) + (fs_a_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_partial. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_partial + S (fs_r_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_partial. fs_u_dst_signed_prefix_sum_scalar_multiply_construct0positive = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_partial * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive) + (fs_r_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_successor. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_successor + S (fs_s_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps) = S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_successor. fs_u_dst_signed_prefix_sum_scalar_multiply_construct0positive = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps_successor * S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0positive) + (fs_s_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps))) /\ fs_s_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps = fs_r_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps + fs_a_dst_signed_prefix_sum_scalar_multiply_construct0positive_body_steps)))))) /\ (((exists fs_u_dst_signed_prefix_sum_scalar_multiply_construct0negative fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_start. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_start + S (0) = S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_start. fs_u_dst_signed_prefix_sum_scalar_multiply_construct0negative = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_start * S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative) + (0))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_terminal. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_terminal + S (dst_negative_sum_signed_prefix_sum_scalar_multiply_construct0) = S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_terminal. fs_u_dst_signed_prefix_sum_scalar_multiply_construct0negative = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_terminal * S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative) + (dst_negative_sum_signed_prefix_sum_scalar_multiply_construct0))) /\ forall fs_i_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps. (exists fs_lt_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_bound. fs_lt_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_bound + S fs_i_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps = l) -> exists fs_a_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps fs_r_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps fs_s_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_summand. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_summand + S (fs_a_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_summand. dst_negative_code_signed_prefix_sum_scalar_multiply_construct0 = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_summand * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct0) + (fs_a_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_partial. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_partial + S (fs_r_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_partial. fs_u_dst_signed_prefix_sum_scalar_multiply_construct0negative = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_partial * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative) + (fs_r_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_successor. fs_h_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_successor + S (fs_s_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps) = S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_successor. fs_u_dst_signed_prefix_sum_scalar_multiply_construct0negative = fs_q_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps_successor * S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct0negative) + (fs_s_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps))) /\ fs_s_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps = fs_r_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps + fs_a_dst_signed_prefix_sum_scalar_multiply_construct0negative_body_steps)))))) /\ (exists ge_balance_positive_signed_prefix_sum_scalar_multiply_construct0result ge_balance_negative_signed_prefix_sum_scalar_multiply_construct0result. (((((z) = 2 * (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct0result) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct0result) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct0resultdecode. (((z) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct0resultdecode + 1 /\ (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct0result) = 0) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct0result) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct0resultdecode))) /\ ((dst_positive_sum_signed_prefix_sum_scalar_multiply_construct0) + ge_balance_negative_signed_prefix_sum_scalar_multiply_construct0result = (dst_negative_sum_signed_prefix_sum_scalar_multiply_construct0) + ge_balance_positive_signed_prefix_sum_scalar_multiply_construct0result)))))))))
  7. 0007specialize arithmetic_signed_sum_exists (l)
  8. 0008specialize arithmetic_signed_sum_exists (F)
  9. 0009specialize arithmetic_signed_sum_exists (l)
  10. 0010apply arithmetic_signed_sum_exists
  11. 0011cases hpoint
  12. 0012cases hpoint_right
  13. 0013exact hpoint_left
  14. 0014cases hs0
  15. 0015have hs1 : exists z. (exists dst_positive_code_signed_prefix_sum_scalar_multiply_construct1 dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1 dst_negative_code_signed_prefix_sum_scalar_multiply_construct1 dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1 dst_positive_sum_signed_prefix_sum_scalar_multiply_construct1 dst_negative_sum_signed_prefix_sum_scalar_multiply_construct1. (((G) = (((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)))) * S ((((dst_positive_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1)) * S ((dst_positive_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1)) + ((dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1) + (dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)))) + ((((dst_negative_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1))) + (((dst_negative_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) * S ((dst_negative_code_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) + ((dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1) + (dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)))))) /\ (((exists fs_u_dst_signed_prefix_sum_scalar_multiply_construct1positive fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_start. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_start + S (0) = S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_start. fs_u_dst_signed_prefix_sum_scalar_multiply_construct1positive = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_start * S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive) + (0))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_terminal. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_terminal + S (dst_positive_sum_signed_prefix_sum_scalar_multiply_construct1) = S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_terminal. fs_u_dst_signed_prefix_sum_scalar_multiply_construct1positive = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_terminal * S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive) + (dst_positive_sum_signed_prefix_sum_scalar_multiply_construct1))) /\ forall fs_i_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps. (exists fs_lt_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_bound. fs_lt_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_bound + S fs_i_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps = l) -> exists fs_a_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps fs_r_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps fs_s_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_summand. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_summand + S (fs_a_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_summand. dst_positive_code_signed_prefix_sum_scalar_multiply_construct1 = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_summand * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps)) * dst_positive_scale_signed_prefix_sum_scalar_multiply_construct1) + (fs_a_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_partial. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_partial + S (fs_r_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_partial. fs_u_dst_signed_prefix_sum_scalar_multiply_construct1positive = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_partial * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive) + (fs_r_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_successor. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_successor + S (fs_s_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps) = S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_successor. fs_u_dst_signed_prefix_sum_scalar_multiply_construct1positive = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps_successor * S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1positive) + (fs_s_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps))) /\ fs_s_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps = fs_r_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps + fs_a_dst_signed_prefix_sum_scalar_multiply_construct1positive_body_steps)))))) /\ (((exists fs_u_dst_signed_prefix_sum_scalar_multiply_construct1negative fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_start. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_start + S (0) = S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_start. fs_u_dst_signed_prefix_sum_scalar_multiply_construct1negative = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_start * S ((S (0)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative) + (0))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_terminal. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_terminal + S (dst_negative_sum_signed_prefix_sum_scalar_multiply_construct1) = S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_terminal. fs_u_dst_signed_prefix_sum_scalar_multiply_construct1negative = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_terminal * S ((S (l)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative) + (dst_negative_sum_signed_prefix_sum_scalar_multiply_construct1))) /\ forall fs_i_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps. (exists fs_lt_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_bound. fs_lt_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_bound + S fs_i_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps = l) -> exists fs_a_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps fs_r_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps fs_s_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps. ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_summand. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_summand + S (fs_a_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_summand. dst_negative_code_signed_prefix_sum_scalar_multiply_construct1 = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_summand * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps)) * dst_negative_scale_signed_prefix_sum_scalar_multiply_construct1) + (fs_a_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_partial. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_partial + S (fs_r_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps) = S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_partial. fs_u_dst_signed_prefix_sum_scalar_multiply_construct1negative = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_partial * S ((S (fs_i_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative) + (fs_r_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps))) /\ ((((exists fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_successor. fs_h_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_successor + S (fs_s_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps) = S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative)) /\ exists fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_successor. fs_u_dst_signed_prefix_sum_scalar_multiply_construct1negative = fs_q_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps_successor * S ((S (S fs_i_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps)) * fs_v_dst_signed_prefix_sum_scalar_multiply_construct1negative) + (fs_s_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps))) /\ fs_s_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps = fs_r_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps + fs_a_dst_signed_prefix_sum_scalar_multiply_construct1negative_body_steps)))))) /\ (exists ge_balance_positive_signed_prefix_sum_scalar_multiply_construct1result ge_balance_negative_signed_prefix_sum_scalar_multiply_construct1result. (((((z) = 2 * (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct1result) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct1result) = 0) \/ exists ge_signed_half_signed_prefix_sum_scalar_multiply_construct1resultdecode. (((z) = 2 * ge_signed_half_signed_prefix_sum_scalar_multiply_construct1resultdecode + 1 /\ (ge_balance_positive_signed_prefix_sum_scalar_multiply_construct1result) = 0) /\ (ge_balance_negative_signed_prefix_sum_scalar_multiply_construct1result) = S ge_signed_half_signed_prefix_sum_scalar_multiply_construct1resultdecode))) /\ ((dst_positive_sum_signed_prefix_sum_scalar_multiply_construct1) + ge_balance_negative_signed_prefix_sum_scalar_multiply_construct1result = (dst_negative_sum_signed_prefix_sum_scalar_multiply_construct1) + ge_balance_positive_signed_prefix_sum_scalar_multiply_construct1result)))))))))
  16. 0016specialize arithmetic_signed_sum_exists (l)
  17. 0017specialize arithmetic_signed_sum_exists (G)
  18. 0018specialize arithmetic_signed_sum_exists (l)
  19. 0019apply arithmetic_signed_sum_exists
  20. 0020cases hpoint
  21. 0021cases hpoint_right
  22. 0022exact hpoint_right_left
  23. 0023cases hs1
  24. 0024exists x
  25. 0025exists x1
  26. 0026split
  27. 0027exact hs0_witness
  28. 0028split
  29. 0029exact hs1_witness
  30. 0030specialize signed_prefix_sum_scalar_multiply (l)
  31. 0031specialize signed_prefix_sum_scalar_multiply (a)
  32. 0032specialize signed_prefix_sum_scalar_multiply (F)
  33. 0033specialize signed_prefix_sum_scalar_multiply (G)
  34. 0034specialize signed_prefix_sum_scalar_multiply (x)
  35. 0035specialize signed_prefix_sum_scalar_multiply (x1)
  36. 0036apply signed_prefix_sum_scalar_multiply
  37. 0037exact hpoint
  38. 0038exact hs0_witness
  39. 0039exact hs1_witness