WS0016

signed_table_scalar_exists

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

Ordinary finite induction constructs both beta output streams and their actual packed table for pointwise scalar; no finite-choice or supplied-table oracle is used.

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. (exists dst_positive_code_scalar_exists_input0 dst_positive_scale_scalar_exists_input0 dst_negative_code_scalar_exists_input0 dst_negative_scale_scalar_exists_input0. (((F) = (((((dst_positive_code_scalar_exists_input0) + (dst_positive_scale_scalar_exists_input0)) * S ((dst_positive_code_scalar_exists_input0) + (dst_positive_scale_scalar_exists_input0)) + ((dst_positive_scale_scalar_exists_input0) + (dst_positive_scale_scalar_exists_input0))) + (((dst_negative_code_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)) * S ((dst_negative_code_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)) + ((dst_negative_scale_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)))) * S ((((dst_positive_code_scalar_exists_input0) + (dst_positive_scale_scalar_exists_input0)) * S ((dst_positive_code_scalar_exists_input0) + (dst_positive_scale_scalar_exists_input0)) + ((dst_positive_scale_scalar_exists_input0) + (dst_positive_scale_scalar_exists_input0))) + (((dst_negative_code_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)) * S ((dst_negative_code_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)) + ((dst_negative_scale_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)))) + ((((dst_negative_code_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)) * S ((dst_negative_code_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)) + ((dst_negative_scale_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0))) + (((dst_negative_code_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)) * S ((dst_negative_code_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)) + ((dst_negative_scale_scalar_exists_input0) + (dst_negative_scale_scalar_exists_input0)))))) /\ (forall dst_index_scalar_exists_input0. (exists pvs_le_gap_scalar_exists_input0domain. pvs_le_gap_scalar_exists_input0domain + (dst_index_scalar_exists_input0) = (l)) -> exists dst_positive_scalar_exists_input0 dst_negative_scalar_exists_input0 dst_value_scalar_exists_input0. ((((exists ff_h_pvs_scalar_exists_input0entrypositive. ff_h_pvs_scalar_exists_input0entrypositive + S (dst_positive_scalar_exists_input0) = S ((S (dst_index_scalar_exists_input0)) * dst_positive_scale_scalar_exists_input0)) /\ exists ff_q_pvs_scalar_exists_input0entrypositive. dst_positive_code_scalar_exists_input0 = ff_q_pvs_scalar_exists_input0entrypositive * S ((S (dst_index_scalar_exists_input0)) * dst_positive_scale_scalar_exists_input0) + (dst_positive_scalar_exists_input0))) /\ (((((exists ff_h_pvs_scalar_exists_input0entrynegative. ff_h_pvs_scalar_exists_input0entrynegative + S (dst_negative_scalar_exists_input0) = S ((S (dst_index_scalar_exists_input0)) * dst_negative_scale_scalar_exists_input0)) /\ exists ff_q_pvs_scalar_exists_input0entrynegative. dst_negative_code_scalar_exists_input0 = ff_q_pvs_scalar_exists_input0entrynegative * S ((S (dst_index_scalar_exists_input0)) * dst_negative_scale_scalar_exists_input0) + (dst_negative_scalar_exists_input0))) /\ (exists ge_balance_positive_scalar_exists_input0entryvalue ge_balance_negative_scalar_exists_input0entryvalue. (((((dst_value_scalar_exists_input0) = 2 * (ge_balance_positive_scalar_exists_input0entryvalue) /\ (ge_balance_negative_scalar_exists_input0entryvalue) = 0) \/ exists ge_signed_half_scalar_exists_input0entryvaluedecode. (((dst_value_scalar_exists_input0) = 2 * ge_signed_half_scalar_exists_input0entryvaluedecode + 1 /\ (ge_balance_positive_scalar_exists_input0entryvalue) = 0) /\ (ge_balance_negative_scalar_exists_input0entryvalue) = S ge_signed_half_scalar_exists_input0entryvaluedecode))) /\ ((dst_positive_scalar_exists_input0) + ge_balance_negative_scalar_exists_input0entryvalue = (dst_negative_scalar_exists_input0) + ge_balance_positive_scalar_exists_input0entryvalue))))))))) -> exists G. (((exists dst_positive_code_scalar_exists_resultinput_table dst_positive_scale_scalar_exists_resultinput_table dst_negative_code_scalar_exists_resultinput_table dst_negative_scale_scalar_exists_resultinput_table. (((F) = (((((dst_positive_code_scalar_exists_resultinput_table) + (dst_positive_scale_scalar_exists_resultinput_table)) * S ((dst_positive_code_scalar_exists_resultinput_table) + (dst_positive_scale_scalar_exists_resultinput_table)) + ((dst_positive_scale_scalar_exists_resultinput_table) + (dst_positive_scale_scalar_exists_resultinput_table))) + (((dst_negative_code_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)) * S ((dst_negative_code_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)) + ((dst_negative_scale_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)))) * S ((((dst_positive_code_scalar_exists_resultinput_table) + (dst_positive_scale_scalar_exists_resultinput_table)) * S ((dst_positive_code_scalar_exists_resultinput_table) + (dst_positive_scale_scalar_exists_resultinput_table)) + ((dst_positive_scale_scalar_exists_resultinput_table) + (dst_positive_scale_scalar_exists_resultinput_table))) + (((dst_negative_code_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)) * S ((dst_negative_code_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)) + ((dst_negative_scale_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)))) + ((((dst_negative_code_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)) * S ((dst_negative_code_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)) + ((dst_negative_scale_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table))) + (((dst_negative_code_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)) * S ((dst_negative_code_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)) + ((dst_negative_scale_scalar_exists_resultinput_table) + (dst_negative_scale_scalar_exists_resultinput_table)))))) /\ (forall dst_index_scalar_exists_resultinput_table. (exists pvs_le_gap_scalar_exists_resultinput_tabledomain. pvs_le_gap_scalar_exists_resultinput_tabledomain + (dst_index_scalar_exists_resultinput_table) = (l)) -> exists dst_positive_scalar_exists_resultinput_table dst_negative_scalar_exists_resultinput_table dst_value_scalar_exists_resultinput_table. ((((exists ff_h_pvs_scalar_exists_resultinput_tableentrypositive. ff_h_pvs_scalar_exists_resultinput_tableentrypositive + S (dst_positive_scalar_exists_resultinput_table) = S ((S (dst_index_scalar_exists_resultinput_table)) * dst_positive_scale_scalar_exists_resultinput_table)) /\ exists ff_q_pvs_scalar_exists_resultinput_tableentrypositive. dst_positive_code_scalar_exists_resultinput_table = ff_q_pvs_scalar_exists_resultinput_tableentrypositive * S ((S (dst_index_scalar_exists_resultinput_table)) * dst_positive_scale_scalar_exists_resultinput_table) + (dst_positive_scalar_exists_resultinput_table))) /\ (((((exists ff_h_pvs_scalar_exists_resultinput_tableentrynegative. ff_h_pvs_scalar_exists_resultinput_tableentrynegative + S (dst_negative_scalar_exists_resultinput_table) = S ((S (dst_index_scalar_exists_resultinput_table)) * dst_negative_scale_scalar_exists_resultinput_table)) /\ exists ff_q_pvs_scalar_exists_resultinput_tableentrynegative. dst_negative_code_scalar_exists_resultinput_table = ff_q_pvs_scalar_exists_resultinput_tableentrynegative * S ((S (dst_index_scalar_exists_resultinput_table)) * dst_negative_scale_scalar_exists_resultinput_table) + (dst_negative_scalar_exists_resultinput_table))) /\ (exists ge_balance_positive_scalar_exists_resultinput_tableentryvalue ge_balance_negative_scalar_exists_resultinput_tableentryvalue. (((((dst_value_scalar_exists_resultinput_table) = 2 * (ge_balance_positive_scalar_exists_resultinput_tableentryvalue) /\ (ge_balance_negative_scalar_exists_resultinput_tableentryvalue) = 0) \/ exists ge_signed_half_scalar_exists_resultinput_tableentryvaluedecode. (((dst_value_scalar_exists_resultinput_table) = 2 * ge_signed_half_scalar_exists_resultinput_tableentryvaluedecode + 1 /\ (ge_balance_positive_scalar_exists_resultinput_tableentryvalue) = 0) /\ (ge_balance_negative_scalar_exists_resultinput_tableentryvalue) = S ge_signed_half_scalar_exists_resultinput_tableentryvaluedecode))) /\ ((dst_positive_scalar_exists_resultinput_table) + ge_balance_negative_scalar_exists_resultinput_tableentryvalue = (dst_negative_scalar_exists_resultinput_table) + ge_balance_positive_scalar_exists_resultinput_tableentryvalue))))))))) /\ (((exists dst_positive_code_scalar_exists_resultoutput_table dst_positive_scale_scalar_exists_resultoutput_table dst_negative_code_scalar_exists_resultoutput_table dst_negative_scale_scalar_exists_resultoutput_table. (((G) = (((((dst_positive_code_scalar_exists_resultoutput_table) + (dst_positive_scale_scalar_exists_resultoutput_table)) * S ((dst_positive_code_scalar_exists_resultoutput_table) + (dst_positive_scale_scalar_exists_resultoutput_table)) + ((dst_positive_scale_scalar_exists_resultoutput_table) + (dst_positive_scale_scalar_exists_resultoutput_table))) + (((dst_negative_code_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)) * S ((dst_negative_code_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)) + ((dst_negative_scale_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)))) * S ((((dst_positive_code_scalar_exists_resultoutput_table) + (dst_positive_scale_scalar_exists_resultoutput_table)) * S ((dst_positive_code_scalar_exists_resultoutput_table) + (dst_positive_scale_scalar_exists_resultoutput_table)) + ((dst_positive_scale_scalar_exists_resultoutput_table) + (dst_positive_scale_scalar_exists_resultoutput_table))) + (((dst_negative_code_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)) * S ((dst_negative_code_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)) + ((dst_negative_scale_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)))) + ((((dst_negative_code_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)) * S ((dst_negative_code_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)) + ((dst_negative_scale_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table))) + (((dst_negative_code_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)) * S ((dst_negative_code_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)) + ((dst_negative_scale_scalar_exists_resultoutput_table) + (dst_negative_scale_scalar_exists_resultoutput_table)))))) /\ (forall dst_index_scalar_exists_resultoutput_table. (exists pvs_le_gap_scalar_exists_resultoutput_tabledomain. pvs_le_gap_scalar_exists_resultoutput_tabledomain + (dst_index_scalar_exists_resultoutput_table) = (l)) -> exists dst_positive_scalar_exists_resultoutput_table dst_negative_scalar_exists_resultoutput_table dst_value_scalar_exists_resultoutput_table. ((((exists ff_h_pvs_scalar_exists_resultoutput_tableentrypositive. ff_h_pvs_scalar_exists_resultoutput_tableentrypositive + S (dst_positive_scalar_exists_resultoutput_table) = S ((S (dst_index_scalar_exists_resultoutput_table)) * dst_positive_scale_scalar_exists_resultoutput_table)) /\ exists ff_q_pvs_scalar_exists_resultoutput_tableentrypositive. dst_positive_code_scalar_exists_resultoutput_table = ff_q_pvs_scalar_exists_resultoutput_tableentrypositive * S ((S (dst_index_scalar_exists_resultoutput_table)) * dst_positive_scale_scalar_exists_resultoutput_table) + (dst_positive_scalar_exists_resultoutput_table))) /\ (((((exists ff_h_pvs_scalar_exists_resultoutput_tableentrynegative. ff_h_pvs_scalar_exists_resultoutput_tableentrynegative + S (dst_negative_scalar_exists_resultoutput_table) = S ((S (dst_index_scalar_exists_resultoutput_table)) * dst_negative_scale_scalar_exists_resultoutput_table)) /\ exists ff_q_pvs_scalar_exists_resultoutput_tableentrynegative. dst_negative_code_scalar_exists_resultoutput_table = ff_q_pvs_scalar_exists_resultoutput_tableentrynegative * S ((S (dst_index_scalar_exists_resultoutput_table)) * dst_negative_scale_scalar_exists_resultoutput_table) + (dst_negative_scalar_exists_resultoutput_table))) /\ (exists ge_balance_positive_scalar_exists_resultoutput_tableentryvalue ge_balance_negative_scalar_exists_resultoutput_tableentryvalue. (((((dst_value_scalar_exists_resultoutput_table) = 2 * (ge_balance_positive_scalar_exists_resultoutput_tableentryvalue) /\ (ge_balance_negative_scalar_exists_resultoutput_tableentryvalue) = 0) \/ exists ge_signed_half_scalar_exists_resultoutput_tableentryvaluedecode. (((dst_value_scalar_exists_resultoutput_table) = 2 * ge_signed_half_scalar_exists_resultoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_scalar_exists_resultoutput_tableentryvalue) = 0) /\ (ge_balance_negative_scalar_exists_resultoutput_tableentryvalue) = S ge_signed_half_scalar_exists_resultoutput_tableentryvaluedecode))) /\ ((dst_positive_scalar_exists_resultoutput_table) + ge_balance_negative_scalar_exists_resultoutput_tableentryvalue = (dst_negative_scalar_exists_resultoutput_table) + ge_balance_positive_scalar_exists_resultoutput_tableentryvalue))))))))) /\ (forall sto_index_scalar_exists_resultentries. (exists pvs_gap_scalar_exists_resultentriesbound. pvs_gap_scalar_exists_resultentriesbound + S (sto_index_scalar_exists_resultentries) = (l)) -> exists sto_input_scalar_exists_resultentries sto_output_scalar_exists_resultentries. ((exists dst_positive_code_scalar_exists_resultentriesentryinput dst_positive_scale_scalar_exists_resultentriesentryinput dst_negative_code_scalar_exists_resultentriesentryinput dst_negative_scale_scalar_exists_resultentriesentryinput dst_positive_scalar_exists_resultentriesentryinput dst_negative_scalar_exists_resultentriesentryinput. (((F) = (((((dst_positive_code_scalar_exists_resultentriesentryinput) + (dst_positive_scale_scalar_exists_resultentriesentryinput)) * S ((dst_positive_code_scalar_exists_resultentriesentryinput) + (dst_positive_scale_scalar_exists_resultentriesentryinput)) + ((dst_positive_scale_scalar_exists_resultentriesentryinput) + (dst_positive_scale_scalar_exists_resultentriesentryinput))) + (((dst_negative_code_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)) * S ((dst_negative_code_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)) + ((dst_negative_scale_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)))) * S ((((dst_positive_code_scalar_exists_resultentriesentryinput) + (dst_positive_scale_scalar_exists_resultentriesentryinput)) * S ((dst_positive_code_scalar_exists_resultentriesentryinput) + (dst_positive_scale_scalar_exists_resultentriesentryinput)) + ((dst_positive_scale_scalar_exists_resultentriesentryinput) + (dst_positive_scale_scalar_exists_resultentriesentryinput))) + (((dst_negative_code_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)) * S ((dst_negative_code_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)) + ((dst_negative_scale_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)))) + ((((dst_negative_code_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)) * S ((dst_negative_code_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)) + ((dst_negative_scale_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput))) + (((dst_negative_code_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)) * S ((dst_negative_code_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)) + ((dst_negative_scale_scalar_exists_resultentriesentryinput) + (dst_negative_scale_scalar_exists_resultentriesentryinput)))))) /\ (((((exists ff_h_pvs_scalar_exists_resultentriesentryinputpositive. ff_h_pvs_scalar_exists_resultentriesentryinputpositive + S (dst_positive_scalar_exists_resultentriesentryinput) = S ((S (sto_index_scalar_exists_resultentries)) * dst_positive_scale_scalar_exists_resultentriesentryinput)) /\ exists ff_q_pvs_scalar_exists_resultentriesentryinputpositive. dst_positive_code_scalar_exists_resultentriesentryinput = ff_q_pvs_scalar_exists_resultentriesentryinputpositive * S ((S (sto_index_scalar_exists_resultentries)) * dst_positive_scale_scalar_exists_resultentriesentryinput) + (dst_positive_scalar_exists_resultentriesentryinput))) /\ (((((exists ff_h_pvs_scalar_exists_resultentriesentryinputnegative. ff_h_pvs_scalar_exists_resultentriesentryinputnegative + S (dst_negative_scalar_exists_resultentriesentryinput) = S ((S (sto_index_scalar_exists_resultentries)) * dst_negative_scale_scalar_exists_resultentriesentryinput)) /\ exists ff_q_pvs_scalar_exists_resultentriesentryinputnegative. dst_negative_code_scalar_exists_resultentriesentryinput = ff_q_pvs_scalar_exists_resultentriesentryinputnegative * S ((S (sto_index_scalar_exists_resultentries)) * dst_negative_scale_scalar_exists_resultentriesentryinput) + (dst_negative_scalar_exists_resultentriesentryinput))) /\ (exists ge_balance_positive_scalar_exists_resultentriesentryinputvalue ge_balance_negative_scalar_exists_resultentriesentryinputvalue. (((((sto_input_scalar_exists_resultentries) = 2 * (ge_balance_positive_scalar_exists_resultentriesentryinputvalue) /\ (ge_balance_negative_scalar_exists_resultentriesentryinputvalue) = 0) \/ exists ge_signed_half_scalar_exists_resultentriesentryinputvaluedecode. (((sto_input_scalar_exists_resultentries) = 2 * ge_signed_half_scalar_exists_resultentriesentryinputvaluedecode + 1 /\ (ge_balance_positive_scalar_exists_resultentriesentryinputvalue) = 0) /\ (ge_balance_negative_scalar_exists_resultentriesentryinputvalue) = S ge_signed_half_scalar_exists_resultentriesentryinputvaluedecode))) /\ ((dst_positive_scalar_exists_resultentriesentryinput) + ge_balance_negative_scalar_exists_resultentriesentryinputvalue = (dst_negative_scalar_exists_resultentriesentryinput) + ge_balance_positive_scalar_exists_resultentriesentryinputvalue))))))))) /\ (((exists dst_positive_code_scalar_exists_resultentriesentryoutput dst_positive_scale_scalar_exists_resultentriesentryoutput dst_negative_code_scalar_exists_resultentriesentryoutput dst_negative_scale_scalar_exists_resultentriesentryoutput dst_positive_scalar_exists_resultentriesentryoutput dst_negative_scalar_exists_resultentriesentryoutput. (((G) = (((((dst_positive_code_scalar_exists_resultentriesentryoutput) + (dst_positive_scale_scalar_exists_resultentriesentryoutput)) * S ((dst_positive_code_scalar_exists_resultentriesentryoutput) + (dst_positive_scale_scalar_exists_resultentriesentryoutput)) + ((dst_positive_scale_scalar_exists_resultentriesentryoutput) + (dst_positive_scale_scalar_exists_resultentriesentryoutput))) + (((dst_negative_code_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)) * S ((dst_negative_code_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)) + ((dst_negative_scale_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)))) * S ((((dst_positive_code_scalar_exists_resultentriesentryoutput) + (dst_positive_scale_scalar_exists_resultentriesentryoutput)) * S ((dst_positive_code_scalar_exists_resultentriesentryoutput) + (dst_positive_scale_scalar_exists_resultentriesentryoutput)) + ((dst_positive_scale_scalar_exists_resultentriesentryoutput) + (dst_positive_scale_scalar_exists_resultentriesentryoutput))) + (((dst_negative_code_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)) * S ((dst_negative_code_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)) + ((dst_negative_scale_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)))) + ((((dst_negative_code_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)) * S ((dst_negative_code_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)) + ((dst_negative_scale_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput))) + (((dst_negative_code_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)) * S ((dst_negative_code_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)) + ((dst_negative_scale_scalar_exists_resultentriesentryoutput) + (dst_negative_scale_scalar_exists_resultentriesentryoutput)))))) /\ (((((exists ff_h_pvs_scalar_exists_resultentriesentryoutputpositive. ff_h_pvs_scalar_exists_resultentriesentryoutputpositive + S (dst_positive_scalar_exists_resultentriesentryoutput) = S ((S (sto_index_scalar_exists_resultentries)) * dst_positive_scale_scalar_exists_resultentriesentryoutput)) /\ exists ff_q_pvs_scalar_exists_resultentriesentryoutputpositive. dst_positive_code_scalar_exists_resultentriesentryoutput = ff_q_pvs_scalar_exists_resultentriesentryoutputpositive * S ((S (sto_index_scalar_exists_resultentries)) * dst_positive_scale_scalar_exists_resultentriesentryoutput) + (dst_positive_scalar_exists_resultentriesentryoutput))) /\ (((((exists ff_h_pvs_scalar_exists_resultentriesentryoutputnegative. ff_h_pvs_scalar_exists_resultentriesentryoutputnegative + S (dst_negative_scalar_exists_resultentriesentryoutput) = S ((S (sto_index_scalar_exists_resultentries)) * dst_negative_scale_scalar_exists_resultentriesentryoutput)) /\ exists ff_q_pvs_scalar_exists_resultentriesentryoutputnegative. dst_negative_code_scalar_exists_resultentriesentryoutput = ff_q_pvs_scalar_exists_resultentriesentryoutputnegative * S ((S (sto_index_scalar_exists_resultentries)) * dst_negative_scale_scalar_exists_resultentriesentryoutput) + (dst_negative_scalar_exists_resultentriesentryoutput))) /\ (exists ge_balance_positive_scalar_exists_resultentriesentryoutputvalue ge_balance_negative_scalar_exists_resultentriesentryoutputvalue. (((((sto_output_scalar_exists_resultentries) = 2 * (ge_balance_positive_scalar_exists_resultentriesentryoutputvalue) /\ (ge_balance_negative_scalar_exists_resultentriesentryoutputvalue) = 0) \/ exists ge_signed_half_scalar_exists_resultentriesentryoutputvaluedecode. (((sto_output_scalar_exists_resultentries) = 2 * ge_signed_half_scalar_exists_resultentriesentryoutputvaluedecode + 1 /\ (ge_balance_positive_scalar_exists_resultentriesentryoutputvalue) = 0) /\ (ge_balance_negative_scalar_exists_resultentriesentryoutputvalue) = S ge_signed_half_scalar_exists_resultentriesentryoutputvaluedecode))) /\ ((dst_positive_scalar_exists_resultentriesentryoutput) + ge_balance_negative_scalar_exists_resultentriesentryoutputvalue = (dst_negative_scalar_exists_resultentriesentryoutput) + ge_balance_positive_scalar_exists_resultentriesentryoutputvalue))))))))) /\ (exists sto_ap_scalar_exists_resultentriesentryoperation sto_an_scalar_exists_resultentriesentryoperation sto_bp_scalar_exists_resultentriesentryoperation sto_bn_scalar_exists_resultentriesentryoperation sto_cp_scalar_exists_resultentriesentryoperation sto_cn_scalar_exists_resultentriesentryoperation. (((((a) = 2 * (sto_ap_scalar_exists_resultentriesentryoperation) /\ (sto_an_scalar_exists_resultentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_exists_resultentriesentryoperationleft. (((a) = 2 * ge_signed_half_scalar_exists_resultentriesentryoperationleft + 1 /\ (sto_ap_scalar_exists_resultentriesentryoperation) = 0) /\ (sto_an_scalar_exists_resultentriesentryoperation) = S ge_signed_half_scalar_exists_resultentriesentryoperationleft))) /\ ((((((sto_input_scalar_exists_resultentries) = 2 * (sto_bp_scalar_exists_resultentriesentryoperation) /\ (sto_bn_scalar_exists_resultentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_exists_resultentriesentryoperationright. (((sto_input_scalar_exists_resultentries) = 2 * ge_signed_half_scalar_exists_resultentriesentryoperationright + 1 /\ (sto_bp_scalar_exists_resultentriesentryoperation) = 0) /\ (sto_bn_scalar_exists_resultentriesentryoperation) = S ge_signed_half_scalar_exists_resultentriesentryoperationright))) /\ ((((((sto_output_scalar_exists_resultentries) = 2 * (sto_cp_scalar_exists_resultentriesentryoperation) /\ (sto_cn_scalar_exists_resultentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_exists_resultentriesentryoperationoutput. (((sto_output_scalar_exists_resultentries) = 2 * ge_signed_half_scalar_exists_resultentriesentryoperationoutput + 1 /\ (sto_cp_scalar_exists_resultentriesentryoperation) = 0) /\ (sto_cn_scalar_exists_resultentriesentryoperation) = S ge_signed_half_scalar_exists_resultentriesentryoperationoutput))) /\ ((sto_ap_scalar_exists_resultentriesentryoperation * sto_bp_scalar_exists_resultentriesentryoperation + sto_an_scalar_exists_resultentriesentryoperation * sto_bn_scalar_exists_resultentriesentryoperation) + sto_cn_scalar_exists_resultentriesentryoperation = (sto_ap_scalar_exists_resultentriesentryoperation * sto_bn_scalar_exists_resultentriesentryoperation + sto_an_scalar_exists_resultentriesentryoperation * sto_bp_scalar_exists_resultentriesentryoperation) + sto_cp_scalar_exists_resultentriesentryoperation)))))))))))))))

Constructive proof overview

Generated structural guide

Ordinary finite induction constructs both beta output streams and their actual packed table for pointwise scalar; no finite-choice or supplied-table oracle is used.

The unchanged tactic script uses 7 declared prerequisites and contains 70 exact native proof lines.

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

Proof neighborhood

Direct dependencies

WS000D signed_table_scalar_empty divisor_signed_table_from_components Alpha theorem; checked-use authorized WS0001 signed_table_domain_resize WS0002 signed_table_lookup_any signed_mul_total Alpha theorem; checked-use authorized arithmetic_signed_table_extend_at Alpha theorem; checked-use authorized WS0015 signed_table_scalar_extend

Direct dependents

Formal native tactic body

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

Read the argument

Proof checkpoints

70 script commands · 19 reading checkpoints · 4 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 (4)

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

01Induction on lL1–4

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

  1. L1
    induction l
  2. L2
    intro a
  3. L3
    intro F
  4. L4
    intro ht0
02Construct an explicit witnessL5–5

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

  1. L5
    exists ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))
03Use earlier factsL6–15

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

  1. L6
    specialize signed_table_scalar_empty (a)
  2. L7
    specialize signed_table_scalar_empty (F)
  3. L8
    specialize signed_table_scalar_empty (((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))))
  4. L9
    apply signed_table_scalar_empty
  5. L10
    exact ht0
  6. L11
    specialize divisor_signed_table_from_components (0)
  7. L12
    specialize divisor_signed_table_from_components (((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))))
  8. L13
    specialize divisor_signed_table_from_components (0)
  9. L14
    specialize divisor_signed_table_from_components (0)
  10. L15
    specialize divisor_signed_table_from_components (0)
04Use earlier factsL16–17

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

  1. L16
    specialize divisor_signed_table_from_components (0)
  2. L17
    apply divisor_signed_table_from_components
05Calculate and transport equalitiesL18–18

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

  1. L18
    refl
06Fix variables and assumptionsL19–21

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

  1. L19
    intro a
  2. L20
    intro F
  3. L21
    intro ht0
07Establish hpL22–30

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

  1. L22
    have hp : ∃ K. ArithScale(a,F,K,l)Definitions: ArithScale
  2. L23
    specialize IH (a)
  3. L24
    specialize IH (F)
  4. L25
    apply IH
  5. L26
    specialize signed_table_domain_resize (S l)
  6. L27
    specialize signed_table_domain_resize (l)
  7. L28
    specialize signed_table_domain_resize (F)
  8. L29
    apply signed_table_domain_resize
  9. L30
    exact ht0
08Separate the logical casesL31–31

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

  1. L31
    cases hp
09Establish he0L32–37

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

  1. L32
    have he0 : ∃ z. ArithAt(F,l,z)Definitions: ArithAt
  2. L33
    specialize signed_table_lookup_any (S l)
  3. L34
    specialize signed_table_lookup_any (F)
  4. L35
    specialize signed_table_lookup_any (l)
  5. L36
    apply signed_table_lookup_any
  6. L37
    exact ht0
10Separate the logical casesL38–38

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

  1. L38
    cases he0
11Establish hvL39–42

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

  1. L39
    have hv : ∃ z. SignedMul(a,x1,z)Definitions: SignedMul
  2. L40
    specialize signed_mul_total (a)
  3. L41
    specialize signed_mul_total (x1)
  4. L42
    apply signed_mul_total
12Separate the logical casesL43–43

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

  1. L43
    cases hv
13Establish hnextL44–49

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

  1. L44
    have hnext : ∃ K. ArithExtend(x,K,l,x2)Definitions: ArithExtend
  2. L45
    specialize arithmetic_signed_table_extend_at (l)
  3. L46
    specialize arithmetic_signed_table_extend_at (x)
  4. L47
    specialize arithmetic_signed_table_extend_at (l)
  5. L48
    specialize arithmetic_signed_table_extend_at (x2)
  6. L49
    apply arithmetic_signed_table_extend_at
14Separate the logical casesL50–51

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

  1. L50
    cases hp_witness
  2. L51
    cases hp_witness_right
15Use earlier factsL52–52

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

  1. L52
    exact hp_witness_right_left
16Separate the logical casesL53–55

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

  1. L53
    cases hnext
  2. L54
    cases hnext_witness
  3. L55
    cases hnext_witness_right
17Construct an explicit witnessL56–56

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

  1. L56
    exists x3
18Use earlier factsL57–66

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

  1. L57
    specialize signed_table_scalar_extend (a)
  2. L58
    specialize signed_table_scalar_extend (F)
  3. L59
    specialize signed_table_scalar_extend (x)
  4. L60
    specialize signed_table_scalar_extend (x3)
  5. L61
    specialize signed_table_scalar_extend (l)
  6. L62
    specialize signed_table_scalar_extend (x1)
  7. L63
    specialize signed_table_scalar_extend (x2)
  8. L64
    apply signed_table_scalar_extend
  9. L65
    exact hp_witness
  10. L66
    exact hnext_witness_left
19Use earlier factsL67–70

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

  1. L67
    exact hnext_witness_right_left
  2. L68
    exact he0_witness
  3. L69
    exact hnext_witness_right_right
  4. L70
    exact hv_witness

Library-wide reading audit

Original exact command ledger · 70 lines
  1. 0001induction l
  2. 0002intro a
  3. 0003intro F
  4. 0004intro ht0
  5. 0005exists ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))
  6. 0006specialize signed_table_scalar_empty (a)
  7. 0007specialize signed_table_scalar_empty (F)
  8. 0008specialize signed_table_scalar_empty (((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))))
  9. 0009apply signed_table_scalar_empty
  10. 0010exact ht0
  11. 0011specialize divisor_signed_table_from_components (0)
  12. 0012specialize divisor_signed_table_from_components (((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))))
  13. 0013specialize divisor_signed_table_from_components (0)
  14. 0014specialize divisor_signed_table_from_components (0)
  15. 0015specialize divisor_signed_table_from_components (0)
  16. 0016specialize divisor_signed_table_from_components (0)
  17. 0017apply divisor_signed_table_from_components
  18. 0018refl
  19. 0019intro a
  20. 0020intro F
  21. 0021intro ht0
  22. 0022have hp : exists K. (((exists dst_positive_code_scalar_construct_prefixinput_table dst_positive_scale_scalar_construct_prefixinput_table dst_negative_code_scalar_construct_prefixinput_table dst_negative_scale_scalar_construct_prefixinput_table. (((F) = (((((dst_positive_code_scalar_construct_prefixinput_table) + (dst_positive_scale_scalar_construct_prefixinput_table)) * S ((dst_positive_code_scalar_construct_prefixinput_table) + (dst_positive_scale_scalar_construct_prefixinput_table)) + ((dst_positive_scale_scalar_construct_prefixinput_table) + (dst_positive_scale_scalar_construct_prefixinput_table))) + (((dst_negative_code_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)) * S ((dst_negative_code_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)) + ((dst_negative_scale_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)))) * S ((((dst_positive_code_scalar_construct_prefixinput_table) + (dst_positive_scale_scalar_construct_prefixinput_table)) * S ((dst_positive_code_scalar_construct_prefixinput_table) + (dst_positive_scale_scalar_construct_prefixinput_table)) + ((dst_positive_scale_scalar_construct_prefixinput_table) + (dst_positive_scale_scalar_construct_prefixinput_table))) + (((dst_negative_code_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)) * S ((dst_negative_code_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)) + ((dst_negative_scale_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)))) + ((((dst_negative_code_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)) * S ((dst_negative_code_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)) + ((dst_negative_scale_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table))) + (((dst_negative_code_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)) * S ((dst_negative_code_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)) + ((dst_negative_scale_scalar_construct_prefixinput_table) + (dst_negative_scale_scalar_construct_prefixinput_table)))))) /\ (forall dst_index_scalar_construct_prefixinput_table. (exists pvs_le_gap_scalar_construct_prefixinput_tabledomain. pvs_le_gap_scalar_construct_prefixinput_tabledomain + (dst_index_scalar_construct_prefixinput_table) = (l)) -> exists dst_positive_scalar_construct_prefixinput_table dst_negative_scalar_construct_prefixinput_table dst_value_scalar_construct_prefixinput_table. ((((exists ff_h_pvs_scalar_construct_prefixinput_tableentrypositive. ff_h_pvs_scalar_construct_prefixinput_tableentrypositive + S (dst_positive_scalar_construct_prefixinput_table) = S ((S (dst_index_scalar_construct_prefixinput_table)) * dst_positive_scale_scalar_construct_prefixinput_table)) /\ exists ff_q_pvs_scalar_construct_prefixinput_tableentrypositive. dst_positive_code_scalar_construct_prefixinput_table = ff_q_pvs_scalar_construct_prefixinput_tableentrypositive * S ((S (dst_index_scalar_construct_prefixinput_table)) * dst_positive_scale_scalar_construct_prefixinput_table) + (dst_positive_scalar_construct_prefixinput_table))) /\ (((((exists ff_h_pvs_scalar_construct_prefixinput_tableentrynegative. ff_h_pvs_scalar_construct_prefixinput_tableentrynegative + S (dst_negative_scalar_construct_prefixinput_table) = S ((S (dst_index_scalar_construct_prefixinput_table)) * dst_negative_scale_scalar_construct_prefixinput_table)) /\ exists ff_q_pvs_scalar_construct_prefixinput_tableentrynegative. dst_negative_code_scalar_construct_prefixinput_table = ff_q_pvs_scalar_construct_prefixinput_tableentrynegative * S ((S (dst_index_scalar_construct_prefixinput_table)) * dst_negative_scale_scalar_construct_prefixinput_table) + (dst_negative_scalar_construct_prefixinput_table))) /\ (exists ge_balance_positive_scalar_construct_prefixinput_tableentryvalue ge_balance_negative_scalar_construct_prefixinput_tableentryvalue. (((((dst_value_scalar_construct_prefixinput_table) = 2 * (ge_balance_positive_scalar_construct_prefixinput_tableentryvalue) /\ (ge_balance_negative_scalar_construct_prefixinput_tableentryvalue) = 0) \/ exists ge_signed_half_scalar_construct_prefixinput_tableentryvaluedecode. (((dst_value_scalar_construct_prefixinput_table) = 2 * ge_signed_half_scalar_construct_prefixinput_tableentryvaluedecode + 1 /\ (ge_balance_positive_scalar_construct_prefixinput_tableentryvalue) = 0) /\ (ge_balance_negative_scalar_construct_prefixinput_tableentryvalue) = S ge_signed_half_scalar_construct_prefixinput_tableentryvaluedecode))) /\ ((dst_positive_scalar_construct_prefixinput_table) + ge_balance_negative_scalar_construct_prefixinput_tableentryvalue = (dst_negative_scalar_construct_prefixinput_table) + ge_balance_positive_scalar_construct_prefixinput_tableentryvalue))))))))) /\ (((exists dst_positive_code_scalar_construct_prefixoutput_table dst_positive_scale_scalar_construct_prefixoutput_table dst_negative_code_scalar_construct_prefixoutput_table dst_negative_scale_scalar_construct_prefixoutput_table. (((K) = (((((dst_positive_code_scalar_construct_prefixoutput_table) + (dst_positive_scale_scalar_construct_prefixoutput_table)) * S ((dst_positive_code_scalar_construct_prefixoutput_table) + (dst_positive_scale_scalar_construct_prefixoutput_table)) + ((dst_positive_scale_scalar_construct_prefixoutput_table) + (dst_positive_scale_scalar_construct_prefixoutput_table))) + (((dst_negative_code_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)) * S ((dst_negative_code_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)) + ((dst_negative_scale_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)))) * S ((((dst_positive_code_scalar_construct_prefixoutput_table) + (dst_positive_scale_scalar_construct_prefixoutput_table)) * S ((dst_positive_code_scalar_construct_prefixoutput_table) + (dst_positive_scale_scalar_construct_prefixoutput_table)) + ((dst_positive_scale_scalar_construct_prefixoutput_table) + (dst_positive_scale_scalar_construct_prefixoutput_table))) + (((dst_negative_code_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)) * S ((dst_negative_code_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)) + ((dst_negative_scale_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)))) + ((((dst_negative_code_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)) * S ((dst_negative_code_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)) + ((dst_negative_scale_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table))) + (((dst_negative_code_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)) * S ((dst_negative_code_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)) + ((dst_negative_scale_scalar_construct_prefixoutput_table) + (dst_negative_scale_scalar_construct_prefixoutput_table)))))) /\ (forall dst_index_scalar_construct_prefixoutput_table. (exists pvs_le_gap_scalar_construct_prefixoutput_tabledomain. pvs_le_gap_scalar_construct_prefixoutput_tabledomain + (dst_index_scalar_construct_prefixoutput_table) = (l)) -> exists dst_positive_scalar_construct_prefixoutput_table dst_negative_scalar_construct_prefixoutput_table dst_value_scalar_construct_prefixoutput_table. ((((exists ff_h_pvs_scalar_construct_prefixoutput_tableentrypositive. ff_h_pvs_scalar_construct_prefixoutput_tableentrypositive + S (dst_positive_scalar_construct_prefixoutput_table) = S ((S (dst_index_scalar_construct_prefixoutput_table)) * dst_positive_scale_scalar_construct_prefixoutput_table)) /\ exists ff_q_pvs_scalar_construct_prefixoutput_tableentrypositive. dst_positive_code_scalar_construct_prefixoutput_table = ff_q_pvs_scalar_construct_prefixoutput_tableentrypositive * S ((S (dst_index_scalar_construct_prefixoutput_table)) * dst_positive_scale_scalar_construct_prefixoutput_table) + (dst_positive_scalar_construct_prefixoutput_table))) /\ (((((exists ff_h_pvs_scalar_construct_prefixoutput_tableentrynegative. ff_h_pvs_scalar_construct_prefixoutput_tableentrynegative + S (dst_negative_scalar_construct_prefixoutput_table) = S ((S (dst_index_scalar_construct_prefixoutput_table)) * dst_negative_scale_scalar_construct_prefixoutput_table)) /\ exists ff_q_pvs_scalar_construct_prefixoutput_tableentrynegative. dst_negative_code_scalar_construct_prefixoutput_table = ff_q_pvs_scalar_construct_prefixoutput_tableentrynegative * S ((S (dst_index_scalar_construct_prefixoutput_table)) * dst_negative_scale_scalar_construct_prefixoutput_table) + (dst_negative_scalar_construct_prefixoutput_table))) /\ (exists ge_balance_positive_scalar_construct_prefixoutput_tableentryvalue ge_balance_negative_scalar_construct_prefixoutput_tableentryvalue. (((((dst_value_scalar_construct_prefixoutput_table) = 2 * (ge_balance_positive_scalar_construct_prefixoutput_tableentryvalue) /\ (ge_balance_negative_scalar_construct_prefixoutput_tableentryvalue) = 0) \/ exists ge_signed_half_scalar_construct_prefixoutput_tableentryvaluedecode. (((dst_value_scalar_construct_prefixoutput_table) = 2 * ge_signed_half_scalar_construct_prefixoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_scalar_construct_prefixoutput_tableentryvalue) = 0) /\ (ge_balance_negative_scalar_construct_prefixoutput_tableentryvalue) = S ge_signed_half_scalar_construct_prefixoutput_tableentryvaluedecode))) /\ ((dst_positive_scalar_construct_prefixoutput_table) + ge_balance_negative_scalar_construct_prefixoutput_tableentryvalue = (dst_negative_scalar_construct_prefixoutput_table) + ge_balance_positive_scalar_construct_prefixoutput_tableentryvalue))))))))) /\ (forall sto_index_scalar_construct_prefixentries. (exists pvs_gap_scalar_construct_prefixentriesbound. pvs_gap_scalar_construct_prefixentriesbound + S (sto_index_scalar_construct_prefixentries) = (l)) -> exists sto_input_scalar_construct_prefixentries sto_output_scalar_construct_prefixentries. ((exists dst_positive_code_scalar_construct_prefixentriesentryinput dst_positive_scale_scalar_construct_prefixentriesentryinput dst_negative_code_scalar_construct_prefixentriesentryinput dst_negative_scale_scalar_construct_prefixentriesentryinput dst_positive_scalar_construct_prefixentriesentryinput dst_negative_scalar_construct_prefixentriesentryinput. (((F) = (((((dst_positive_code_scalar_construct_prefixentriesentryinput) + (dst_positive_scale_scalar_construct_prefixentriesentryinput)) * S ((dst_positive_code_scalar_construct_prefixentriesentryinput) + (dst_positive_scale_scalar_construct_prefixentriesentryinput)) + ((dst_positive_scale_scalar_construct_prefixentriesentryinput) + (dst_positive_scale_scalar_construct_prefixentriesentryinput))) + (((dst_negative_code_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)) * S ((dst_negative_code_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)) + ((dst_negative_scale_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)))) * S ((((dst_positive_code_scalar_construct_prefixentriesentryinput) + (dst_positive_scale_scalar_construct_prefixentriesentryinput)) * S ((dst_positive_code_scalar_construct_prefixentriesentryinput) + (dst_positive_scale_scalar_construct_prefixentriesentryinput)) + ((dst_positive_scale_scalar_construct_prefixentriesentryinput) + (dst_positive_scale_scalar_construct_prefixentriesentryinput))) + (((dst_negative_code_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)) * S ((dst_negative_code_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)) + ((dst_negative_scale_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)))) + ((((dst_negative_code_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)) * S ((dst_negative_code_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)) + ((dst_negative_scale_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput))) + (((dst_negative_code_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)) * S ((dst_negative_code_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)) + ((dst_negative_scale_scalar_construct_prefixentriesentryinput) + (dst_negative_scale_scalar_construct_prefixentriesentryinput)))))) /\ (((((exists ff_h_pvs_scalar_construct_prefixentriesentryinputpositive. ff_h_pvs_scalar_construct_prefixentriesentryinputpositive + S (dst_positive_scalar_construct_prefixentriesentryinput) = S ((S (sto_index_scalar_construct_prefixentries)) * dst_positive_scale_scalar_construct_prefixentriesentryinput)) /\ exists ff_q_pvs_scalar_construct_prefixentriesentryinputpositive. dst_positive_code_scalar_construct_prefixentriesentryinput = ff_q_pvs_scalar_construct_prefixentriesentryinputpositive * S ((S (sto_index_scalar_construct_prefixentries)) * dst_positive_scale_scalar_construct_prefixentriesentryinput) + (dst_positive_scalar_construct_prefixentriesentryinput))) /\ (((((exists ff_h_pvs_scalar_construct_prefixentriesentryinputnegative. ff_h_pvs_scalar_construct_prefixentriesentryinputnegative + S (dst_negative_scalar_construct_prefixentriesentryinput) = S ((S (sto_index_scalar_construct_prefixentries)) * dst_negative_scale_scalar_construct_prefixentriesentryinput)) /\ exists ff_q_pvs_scalar_construct_prefixentriesentryinputnegative. dst_negative_code_scalar_construct_prefixentriesentryinput = ff_q_pvs_scalar_construct_prefixentriesentryinputnegative * S ((S (sto_index_scalar_construct_prefixentries)) * dst_negative_scale_scalar_construct_prefixentriesentryinput) + (dst_negative_scalar_construct_prefixentriesentryinput))) /\ (exists ge_balance_positive_scalar_construct_prefixentriesentryinputvalue ge_balance_negative_scalar_construct_prefixentriesentryinputvalue. (((((sto_input_scalar_construct_prefixentries) = 2 * (ge_balance_positive_scalar_construct_prefixentriesentryinputvalue) /\ (ge_balance_negative_scalar_construct_prefixentriesentryinputvalue) = 0) \/ exists ge_signed_half_scalar_construct_prefixentriesentryinputvaluedecode. (((sto_input_scalar_construct_prefixentries) = 2 * ge_signed_half_scalar_construct_prefixentriesentryinputvaluedecode + 1 /\ (ge_balance_positive_scalar_construct_prefixentriesentryinputvalue) = 0) /\ (ge_balance_negative_scalar_construct_prefixentriesentryinputvalue) = S ge_signed_half_scalar_construct_prefixentriesentryinputvaluedecode))) /\ ((dst_positive_scalar_construct_prefixentriesentryinput) + ge_balance_negative_scalar_construct_prefixentriesentryinputvalue = (dst_negative_scalar_construct_prefixentriesentryinput) + ge_balance_positive_scalar_construct_prefixentriesentryinputvalue))))))))) /\ (((exists dst_positive_code_scalar_construct_prefixentriesentryoutput dst_positive_scale_scalar_construct_prefixentriesentryoutput dst_negative_code_scalar_construct_prefixentriesentryoutput dst_negative_scale_scalar_construct_prefixentriesentryoutput dst_positive_scalar_construct_prefixentriesentryoutput dst_negative_scalar_construct_prefixentriesentryoutput. (((K) = (((((dst_positive_code_scalar_construct_prefixentriesentryoutput) + (dst_positive_scale_scalar_construct_prefixentriesentryoutput)) * S ((dst_positive_code_scalar_construct_prefixentriesentryoutput) + (dst_positive_scale_scalar_construct_prefixentriesentryoutput)) + ((dst_positive_scale_scalar_construct_prefixentriesentryoutput) + (dst_positive_scale_scalar_construct_prefixentriesentryoutput))) + (((dst_negative_code_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)) * S ((dst_negative_code_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)) + ((dst_negative_scale_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)))) * S ((((dst_positive_code_scalar_construct_prefixentriesentryoutput) + (dst_positive_scale_scalar_construct_prefixentriesentryoutput)) * S ((dst_positive_code_scalar_construct_prefixentriesentryoutput) + (dst_positive_scale_scalar_construct_prefixentriesentryoutput)) + ((dst_positive_scale_scalar_construct_prefixentriesentryoutput) + (dst_positive_scale_scalar_construct_prefixentriesentryoutput))) + (((dst_negative_code_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)) * S ((dst_negative_code_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)) + ((dst_negative_scale_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)))) + ((((dst_negative_code_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)) * S ((dst_negative_code_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)) + ((dst_negative_scale_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput))) + (((dst_negative_code_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)) * S ((dst_negative_code_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)) + ((dst_negative_scale_scalar_construct_prefixentriesentryoutput) + (dst_negative_scale_scalar_construct_prefixentriesentryoutput)))))) /\ (((((exists ff_h_pvs_scalar_construct_prefixentriesentryoutputpositive. ff_h_pvs_scalar_construct_prefixentriesentryoutputpositive + S (dst_positive_scalar_construct_prefixentriesentryoutput) = S ((S (sto_index_scalar_construct_prefixentries)) * dst_positive_scale_scalar_construct_prefixentriesentryoutput)) /\ exists ff_q_pvs_scalar_construct_prefixentriesentryoutputpositive. dst_positive_code_scalar_construct_prefixentriesentryoutput = ff_q_pvs_scalar_construct_prefixentriesentryoutputpositive * S ((S (sto_index_scalar_construct_prefixentries)) * dst_positive_scale_scalar_construct_prefixentriesentryoutput) + (dst_positive_scalar_construct_prefixentriesentryoutput))) /\ (((((exists ff_h_pvs_scalar_construct_prefixentriesentryoutputnegative. ff_h_pvs_scalar_construct_prefixentriesentryoutputnegative + S (dst_negative_scalar_construct_prefixentriesentryoutput) = S ((S (sto_index_scalar_construct_prefixentries)) * dst_negative_scale_scalar_construct_prefixentriesentryoutput)) /\ exists ff_q_pvs_scalar_construct_prefixentriesentryoutputnegative. dst_negative_code_scalar_construct_prefixentriesentryoutput = ff_q_pvs_scalar_construct_prefixentriesentryoutputnegative * S ((S (sto_index_scalar_construct_prefixentries)) * dst_negative_scale_scalar_construct_prefixentriesentryoutput) + (dst_negative_scalar_construct_prefixentriesentryoutput))) /\ (exists ge_balance_positive_scalar_construct_prefixentriesentryoutputvalue ge_balance_negative_scalar_construct_prefixentriesentryoutputvalue. (((((sto_output_scalar_construct_prefixentries) = 2 * (ge_balance_positive_scalar_construct_prefixentriesentryoutputvalue) /\ (ge_balance_negative_scalar_construct_prefixentriesentryoutputvalue) = 0) \/ exists ge_signed_half_scalar_construct_prefixentriesentryoutputvaluedecode. (((sto_output_scalar_construct_prefixentries) = 2 * ge_signed_half_scalar_construct_prefixentriesentryoutputvaluedecode + 1 /\ (ge_balance_positive_scalar_construct_prefixentriesentryoutputvalue) = 0) /\ (ge_balance_negative_scalar_construct_prefixentriesentryoutputvalue) = S ge_signed_half_scalar_construct_prefixentriesentryoutputvaluedecode))) /\ ((dst_positive_scalar_construct_prefixentriesentryoutput) + ge_balance_negative_scalar_construct_prefixentriesentryoutputvalue = (dst_negative_scalar_construct_prefixentriesentryoutput) + ge_balance_positive_scalar_construct_prefixentriesentryoutputvalue))))))))) /\ (exists sto_ap_scalar_construct_prefixentriesentryoperation sto_an_scalar_construct_prefixentriesentryoperation sto_bp_scalar_construct_prefixentriesentryoperation sto_bn_scalar_construct_prefixentriesentryoperation sto_cp_scalar_construct_prefixentriesentryoperation sto_cn_scalar_construct_prefixentriesentryoperation. (((((a) = 2 * (sto_ap_scalar_construct_prefixentriesentryoperation) /\ (sto_an_scalar_construct_prefixentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_construct_prefixentriesentryoperationleft. (((a) = 2 * ge_signed_half_scalar_construct_prefixentriesentryoperationleft + 1 /\ (sto_ap_scalar_construct_prefixentriesentryoperation) = 0) /\ (sto_an_scalar_construct_prefixentriesentryoperation) = S ge_signed_half_scalar_construct_prefixentriesentryoperationleft))) /\ ((((((sto_input_scalar_construct_prefixentries) = 2 * (sto_bp_scalar_construct_prefixentriesentryoperation) /\ (sto_bn_scalar_construct_prefixentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_construct_prefixentriesentryoperationright. (((sto_input_scalar_construct_prefixentries) = 2 * ge_signed_half_scalar_construct_prefixentriesentryoperationright + 1 /\ (sto_bp_scalar_construct_prefixentriesentryoperation) = 0) /\ (sto_bn_scalar_construct_prefixentriesentryoperation) = S ge_signed_half_scalar_construct_prefixentriesentryoperationright))) /\ ((((((sto_output_scalar_construct_prefixentries) = 2 * (sto_cp_scalar_construct_prefixentriesentryoperation) /\ (sto_cn_scalar_construct_prefixentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_construct_prefixentriesentryoperationoutput. (((sto_output_scalar_construct_prefixentries) = 2 * ge_signed_half_scalar_construct_prefixentriesentryoperationoutput + 1 /\ (sto_cp_scalar_construct_prefixentriesentryoperation) = 0) /\ (sto_cn_scalar_construct_prefixentriesentryoperation) = S ge_signed_half_scalar_construct_prefixentriesentryoperationoutput))) /\ ((sto_ap_scalar_construct_prefixentriesentryoperation * sto_bp_scalar_construct_prefixentriesentryoperation + sto_an_scalar_construct_prefixentriesentryoperation * sto_bn_scalar_construct_prefixentriesentryoperation) + sto_cn_scalar_construct_prefixentriesentryoperation = (sto_ap_scalar_construct_prefixentriesentryoperation * sto_bn_scalar_construct_prefixentriesentryoperation + sto_an_scalar_construct_prefixentriesentryoperation * sto_bp_scalar_construct_prefixentriesentryoperation) + sto_cp_scalar_construct_prefixentriesentryoperation)))))))))))))))
  23. 0023specialize IH (a)
  24. 0024specialize IH (F)
  25. 0025apply IH
  26. 0026specialize signed_table_domain_resize (S l)
  27. 0027specialize signed_table_domain_resize (l)
  28. 0028specialize signed_table_domain_resize (F)
  29. 0029apply signed_table_domain_resize
  30. 0030exact ht0
  31. 0031cases hp
  32. 0032have he0 : exists z. (exists dst_positive_code_scalar_construct_input0 dst_positive_scale_scalar_construct_input0 dst_negative_code_scalar_construct_input0 dst_negative_scale_scalar_construct_input0 dst_positive_scalar_construct_input0 dst_negative_scalar_construct_input0. (((F) = (((((dst_positive_code_scalar_construct_input0) + (dst_positive_scale_scalar_construct_input0)) * S ((dst_positive_code_scalar_construct_input0) + (dst_positive_scale_scalar_construct_input0)) + ((dst_positive_scale_scalar_construct_input0) + (dst_positive_scale_scalar_construct_input0))) + (((dst_negative_code_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)) * S ((dst_negative_code_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)) + ((dst_negative_scale_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)))) * S ((((dst_positive_code_scalar_construct_input0) + (dst_positive_scale_scalar_construct_input0)) * S ((dst_positive_code_scalar_construct_input0) + (dst_positive_scale_scalar_construct_input0)) + ((dst_positive_scale_scalar_construct_input0) + (dst_positive_scale_scalar_construct_input0))) + (((dst_negative_code_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)) * S ((dst_negative_code_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)) + ((dst_negative_scale_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)))) + ((((dst_negative_code_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)) * S ((dst_negative_code_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)) + ((dst_negative_scale_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0))) + (((dst_negative_code_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)) * S ((dst_negative_code_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)) + ((dst_negative_scale_scalar_construct_input0) + (dst_negative_scale_scalar_construct_input0)))))) /\ (((((exists ff_h_pvs_scalar_construct_input0positive. ff_h_pvs_scalar_construct_input0positive + S (dst_positive_scalar_construct_input0) = S ((S (l)) * dst_positive_scale_scalar_construct_input0)) /\ exists ff_q_pvs_scalar_construct_input0positive. dst_positive_code_scalar_construct_input0 = ff_q_pvs_scalar_construct_input0positive * S ((S (l)) * dst_positive_scale_scalar_construct_input0) + (dst_positive_scalar_construct_input0))) /\ (((((exists ff_h_pvs_scalar_construct_input0negative. ff_h_pvs_scalar_construct_input0negative + S (dst_negative_scalar_construct_input0) = S ((S (l)) * dst_negative_scale_scalar_construct_input0)) /\ exists ff_q_pvs_scalar_construct_input0negative. dst_negative_code_scalar_construct_input0 = ff_q_pvs_scalar_construct_input0negative * S ((S (l)) * dst_negative_scale_scalar_construct_input0) + (dst_negative_scalar_construct_input0))) /\ (exists ge_balance_positive_scalar_construct_input0value ge_balance_negative_scalar_construct_input0value. (((((z) = 2 * (ge_balance_positive_scalar_construct_input0value) /\ (ge_balance_negative_scalar_construct_input0value) = 0) \/ exists ge_signed_half_scalar_construct_input0valuedecode. (((z) = 2 * ge_signed_half_scalar_construct_input0valuedecode + 1 /\ (ge_balance_positive_scalar_construct_input0value) = 0) /\ (ge_balance_negative_scalar_construct_input0value) = S ge_signed_half_scalar_construct_input0valuedecode))) /\ ((dst_positive_scalar_construct_input0) + ge_balance_negative_scalar_construct_input0value = (dst_negative_scalar_construct_input0) + ge_balance_positive_scalar_construct_input0value)))))))))
  33. 0033specialize signed_table_lookup_any (S l)
  34. 0034specialize signed_table_lookup_any (F)
  35. 0035specialize signed_table_lookup_any (l)
  36. 0036apply signed_table_lookup_any
  37. 0037exact ht0
  38. 0038cases he0
  39. 0039have hv : exists z. (exists sto_ap_scalar_construct_operation sto_an_scalar_construct_operation sto_bp_scalar_construct_operation sto_bn_scalar_construct_operation sto_cp_scalar_construct_operation sto_cn_scalar_construct_operation. (((((a) = 2 * (sto_ap_scalar_construct_operation) /\ (sto_an_scalar_construct_operation) = 0) \/ exists ge_signed_half_scalar_construct_operationleft. (((a) = 2 * ge_signed_half_scalar_construct_operationleft + 1 /\ (sto_ap_scalar_construct_operation) = 0) /\ (sto_an_scalar_construct_operation) = S ge_signed_half_scalar_construct_operationleft))) /\ ((((((x1) = 2 * (sto_bp_scalar_construct_operation) /\ (sto_bn_scalar_construct_operation) = 0) \/ exists ge_signed_half_scalar_construct_operationright. (((x1) = 2 * ge_signed_half_scalar_construct_operationright + 1 /\ (sto_bp_scalar_construct_operation) = 0) /\ (sto_bn_scalar_construct_operation) = S ge_signed_half_scalar_construct_operationright))) /\ ((((((z) = 2 * (sto_cp_scalar_construct_operation) /\ (sto_cn_scalar_construct_operation) = 0) \/ exists ge_signed_half_scalar_construct_operationoutput. (((z) = 2 * ge_signed_half_scalar_construct_operationoutput + 1 /\ (sto_cp_scalar_construct_operation) = 0) /\ (sto_cn_scalar_construct_operation) = S ge_signed_half_scalar_construct_operationoutput))) /\ ((sto_ap_scalar_construct_operation * sto_bp_scalar_construct_operation + sto_an_scalar_construct_operation * sto_bn_scalar_construct_operation) + sto_cn_scalar_construct_operation = (sto_ap_scalar_construct_operation * sto_bn_scalar_construct_operation + sto_an_scalar_construct_operation * sto_bp_scalar_construct_operation) + sto_cp_scalar_construct_operation)))))))
  40. 0040specialize signed_mul_total (a)
  41. 0041specialize signed_mul_total (x1)
  42. 0042apply signed_mul_total
  43. 0043cases hv
  44. 0044have hnext : exists K. ((exists dst_positive_code_scalar_construct_table dst_positive_scale_scalar_construct_table dst_negative_code_scalar_construct_table dst_negative_scale_scalar_construct_table. (((K) = (((((dst_positive_code_scalar_construct_table) + (dst_positive_scale_scalar_construct_table)) * S ((dst_positive_code_scalar_construct_table) + (dst_positive_scale_scalar_construct_table)) + ((dst_positive_scale_scalar_construct_table) + (dst_positive_scale_scalar_construct_table))) + (((dst_negative_code_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)) * S ((dst_negative_code_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)) + ((dst_negative_scale_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)))) * S ((((dst_positive_code_scalar_construct_table) + (dst_positive_scale_scalar_construct_table)) * S ((dst_positive_code_scalar_construct_table) + (dst_positive_scale_scalar_construct_table)) + ((dst_positive_scale_scalar_construct_table) + (dst_positive_scale_scalar_construct_table))) + (((dst_negative_code_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)) * S ((dst_negative_code_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)) + ((dst_negative_scale_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)))) + ((((dst_negative_code_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)) * S ((dst_negative_code_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)) + ((dst_negative_scale_scalar_construct_table) + (dst_negative_scale_scalar_construct_table))) + (((dst_negative_code_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)) * S ((dst_negative_code_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)) + ((dst_negative_scale_scalar_construct_table) + (dst_negative_scale_scalar_construct_table)))))) /\ (forall dst_index_scalar_construct_table. (exists pvs_le_gap_scalar_construct_tabledomain. pvs_le_gap_scalar_construct_tabledomain + (dst_index_scalar_construct_table) = (l)) -> exists dst_positive_scalar_construct_table dst_negative_scalar_construct_table dst_value_scalar_construct_table. ((((exists ff_h_pvs_scalar_construct_tableentrypositive. ff_h_pvs_scalar_construct_tableentrypositive + S (dst_positive_scalar_construct_table) = S ((S (dst_index_scalar_construct_table)) * dst_positive_scale_scalar_construct_table)) /\ exists ff_q_pvs_scalar_construct_tableentrypositive. dst_positive_code_scalar_construct_table = ff_q_pvs_scalar_construct_tableentrypositive * S ((S (dst_index_scalar_construct_table)) * dst_positive_scale_scalar_construct_table) + (dst_positive_scalar_construct_table))) /\ (((((exists ff_h_pvs_scalar_construct_tableentrynegative. ff_h_pvs_scalar_construct_tableentrynegative + S (dst_negative_scalar_construct_table) = S ((S (dst_index_scalar_construct_table)) * dst_negative_scale_scalar_construct_table)) /\ exists ff_q_pvs_scalar_construct_tableentrynegative. dst_negative_code_scalar_construct_table = ff_q_pvs_scalar_construct_tableentrynegative * S ((S (dst_index_scalar_construct_table)) * dst_negative_scale_scalar_construct_table) + (dst_negative_scalar_construct_table))) /\ (exists ge_balance_positive_scalar_construct_tableentryvalue ge_balance_negative_scalar_construct_tableentryvalue. (((((dst_value_scalar_construct_table) = 2 * (ge_balance_positive_scalar_construct_tableentryvalue) /\ (ge_balance_negative_scalar_construct_tableentryvalue) = 0) \/ exists ge_signed_half_scalar_construct_tableentryvaluedecode. (((dst_value_scalar_construct_table) = 2 * ge_signed_half_scalar_construct_tableentryvaluedecode + 1 /\ (ge_balance_positive_scalar_construct_tableentryvalue) = 0) /\ (ge_balance_negative_scalar_construct_tableentryvalue) = S ge_signed_half_scalar_construct_tableentryvaluedecode))) /\ ((dst_positive_scalar_construct_table) + ge_balance_negative_scalar_construct_tableentryvalue = (dst_negative_scalar_construct_table) + ge_balance_positive_scalar_construct_tableentryvalue))))))))) /\ (((forall dst_index_scalar_construct_equal dst_first_scalar_construct_equal dst_second_scalar_construct_equal. (exists pvs_gap_scalar_construct_equalbound. pvs_gap_scalar_construct_equalbound + S (dst_index_scalar_construct_equal) = (l)) -> (exists dst_positive_code_scalar_construct_equalfirst dst_positive_scale_scalar_construct_equalfirst dst_negative_code_scalar_construct_equalfirst dst_negative_scale_scalar_construct_equalfirst dst_positive_scalar_construct_equalfirst dst_negative_scalar_construct_equalfirst. (((x) = (((((dst_positive_code_scalar_construct_equalfirst) + (dst_positive_scale_scalar_construct_equalfirst)) * S ((dst_positive_code_scalar_construct_equalfirst) + (dst_positive_scale_scalar_construct_equalfirst)) + ((dst_positive_scale_scalar_construct_equalfirst) + (dst_positive_scale_scalar_construct_equalfirst))) + (((dst_negative_code_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)) * S ((dst_negative_code_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)) + ((dst_negative_scale_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)))) * S ((((dst_positive_code_scalar_construct_equalfirst) + (dst_positive_scale_scalar_construct_equalfirst)) * S ((dst_positive_code_scalar_construct_equalfirst) + (dst_positive_scale_scalar_construct_equalfirst)) + ((dst_positive_scale_scalar_construct_equalfirst) + (dst_positive_scale_scalar_construct_equalfirst))) + (((dst_negative_code_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)) * S ((dst_negative_code_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)) + ((dst_negative_scale_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)))) + ((((dst_negative_code_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)) * S ((dst_negative_code_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)) + ((dst_negative_scale_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst))) + (((dst_negative_code_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)) * S ((dst_negative_code_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)) + ((dst_negative_scale_scalar_construct_equalfirst) + (dst_negative_scale_scalar_construct_equalfirst)))))) /\ (((((exists ff_h_pvs_scalar_construct_equalfirstpositive. ff_h_pvs_scalar_construct_equalfirstpositive + S (dst_positive_scalar_construct_equalfirst) = S ((S (dst_index_scalar_construct_equal)) * dst_positive_scale_scalar_construct_equalfirst)) /\ exists ff_q_pvs_scalar_construct_equalfirstpositive. dst_positive_code_scalar_construct_equalfirst = ff_q_pvs_scalar_construct_equalfirstpositive * S ((S (dst_index_scalar_construct_equal)) * dst_positive_scale_scalar_construct_equalfirst) + (dst_positive_scalar_construct_equalfirst))) /\ (((((exists ff_h_pvs_scalar_construct_equalfirstnegative. ff_h_pvs_scalar_construct_equalfirstnegative + S (dst_negative_scalar_construct_equalfirst) = S ((S (dst_index_scalar_construct_equal)) * dst_negative_scale_scalar_construct_equalfirst)) /\ exists ff_q_pvs_scalar_construct_equalfirstnegative. dst_negative_code_scalar_construct_equalfirst = ff_q_pvs_scalar_construct_equalfirstnegative * S ((S (dst_index_scalar_construct_equal)) * dst_negative_scale_scalar_construct_equalfirst) + (dst_negative_scalar_construct_equalfirst))) /\ (exists ge_balance_positive_scalar_construct_equalfirstvalue ge_balance_negative_scalar_construct_equalfirstvalue. (((((dst_first_scalar_construct_equal) = 2 * (ge_balance_positive_scalar_construct_equalfirstvalue) /\ (ge_balance_negative_scalar_construct_equalfirstvalue) = 0) \/ exists ge_signed_half_scalar_construct_equalfirstvaluedecode. (((dst_first_scalar_construct_equal) = 2 * ge_signed_half_scalar_construct_equalfirstvaluedecode + 1 /\ (ge_balance_positive_scalar_construct_equalfirstvalue) = 0) /\ (ge_balance_negative_scalar_construct_equalfirstvalue) = S ge_signed_half_scalar_construct_equalfirstvaluedecode))) /\ ((dst_positive_scalar_construct_equalfirst) + ge_balance_negative_scalar_construct_equalfirstvalue = (dst_negative_scalar_construct_equalfirst) + ge_balance_positive_scalar_construct_equalfirstvalue))))))))) -> (exists dst_positive_code_scalar_construct_equalsecond dst_positive_scale_scalar_construct_equalsecond dst_negative_code_scalar_construct_equalsecond dst_negative_scale_scalar_construct_equalsecond dst_positive_scalar_construct_equalsecond dst_negative_scalar_construct_equalsecond. (((K) = (((((dst_positive_code_scalar_construct_equalsecond) + (dst_positive_scale_scalar_construct_equalsecond)) * S ((dst_positive_code_scalar_construct_equalsecond) + (dst_positive_scale_scalar_construct_equalsecond)) + ((dst_positive_scale_scalar_construct_equalsecond) + (dst_positive_scale_scalar_construct_equalsecond))) + (((dst_negative_code_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)) * S ((dst_negative_code_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)) + ((dst_negative_scale_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)))) * S ((((dst_positive_code_scalar_construct_equalsecond) + (dst_positive_scale_scalar_construct_equalsecond)) * S ((dst_positive_code_scalar_construct_equalsecond) + (dst_positive_scale_scalar_construct_equalsecond)) + ((dst_positive_scale_scalar_construct_equalsecond) + (dst_positive_scale_scalar_construct_equalsecond))) + (((dst_negative_code_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)) * S ((dst_negative_code_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)) + ((dst_negative_scale_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)))) + ((((dst_negative_code_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)) * S ((dst_negative_code_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)) + ((dst_negative_scale_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond))) + (((dst_negative_code_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)) * S ((dst_negative_code_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)) + ((dst_negative_scale_scalar_construct_equalsecond) + (dst_negative_scale_scalar_construct_equalsecond)))))) /\ (((((exists ff_h_pvs_scalar_construct_equalsecondpositive. ff_h_pvs_scalar_construct_equalsecondpositive + S (dst_positive_scalar_construct_equalsecond) = S ((S (dst_index_scalar_construct_equal)) * dst_positive_scale_scalar_construct_equalsecond)) /\ exists ff_q_pvs_scalar_construct_equalsecondpositive. dst_positive_code_scalar_construct_equalsecond = ff_q_pvs_scalar_construct_equalsecondpositive * S ((S (dst_index_scalar_construct_equal)) * dst_positive_scale_scalar_construct_equalsecond) + (dst_positive_scalar_construct_equalsecond))) /\ (((((exists ff_h_pvs_scalar_construct_equalsecondnegative. ff_h_pvs_scalar_construct_equalsecondnegative + S (dst_negative_scalar_construct_equalsecond) = S ((S (dst_index_scalar_construct_equal)) * dst_negative_scale_scalar_construct_equalsecond)) /\ exists ff_q_pvs_scalar_construct_equalsecondnegative. dst_negative_code_scalar_construct_equalsecond = ff_q_pvs_scalar_construct_equalsecondnegative * S ((S (dst_index_scalar_construct_equal)) * dst_negative_scale_scalar_construct_equalsecond) + (dst_negative_scalar_construct_equalsecond))) /\ (exists ge_balance_positive_scalar_construct_equalsecondvalue ge_balance_negative_scalar_construct_equalsecondvalue. (((((dst_second_scalar_construct_equal) = 2 * (ge_balance_positive_scalar_construct_equalsecondvalue) /\ (ge_balance_negative_scalar_construct_equalsecondvalue) = 0) \/ exists ge_signed_half_scalar_construct_equalsecondvaluedecode. (((dst_second_scalar_construct_equal) = 2 * ge_signed_half_scalar_construct_equalsecondvaluedecode + 1 /\ (ge_balance_positive_scalar_construct_equalsecondvalue) = 0) /\ (ge_balance_negative_scalar_construct_equalsecondvalue) = S ge_signed_half_scalar_construct_equalsecondvaluedecode))) /\ ((dst_positive_scalar_construct_equalsecond) + ge_balance_negative_scalar_construct_equalsecondvalue = (dst_negative_scalar_construct_equalsecond) + ge_balance_positive_scalar_construct_equalsecondvalue))))))))) -> dst_first_scalar_construct_equal = dst_second_scalar_construct_equal) /\ (exists dst_positive_code_scalar_construct_entry dst_positive_scale_scalar_construct_entry dst_negative_code_scalar_construct_entry dst_negative_scale_scalar_construct_entry dst_positive_scalar_construct_entry dst_negative_scalar_construct_entry. (((K) = (((((dst_positive_code_scalar_construct_entry) + (dst_positive_scale_scalar_construct_entry)) * S ((dst_positive_code_scalar_construct_entry) + (dst_positive_scale_scalar_construct_entry)) + ((dst_positive_scale_scalar_construct_entry) + (dst_positive_scale_scalar_construct_entry))) + (((dst_negative_code_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)) * S ((dst_negative_code_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)) + ((dst_negative_scale_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)))) * S ((((dst_positive_code_scalar_construct_entry) + (dst_positive_scale_scalar_construct_entry)) * S ((dst_positive_code_scalar_construct_entry) + (dst_positive_scale_scalar_construct_entry)) + ((dst_positive_scale_scalar_construct_entry) + (dst_positive_scale_scalar_construct_entry))) + (((dst_negative_code_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)) * S ((dst_negative_code_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)) + ((dst_negative_scale_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)))) + ((((dst_negative_code_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)) * S ((dst_negative_code_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)) + ((dst_negative_scale_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry))) + (((dst_negative_code_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)) * S ((dst_negative_code_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)) + ((dst_negative_scale_scalar_construct_entry) + (dst_negative_scale_scalar_construct_entry)))))) /\ (((((exists ff_h_pvs_scalar_construct_entrypositive. ff_h_pvs_scalar_construct_entrypositive + S (dst_positive_scalar_construct_entry) = S ((S (l)) * dst_positive_scale_scalar_construct_entry)) /\ exists ff_q_pvs_scalar_construct_entrypositive. dst_positive_code_scalar_construct_entry = ff_q_pvs_scalar_construct_entrypositive * S ((S (l)) * dst_positive_scale_scalar_construct_entry) + (dst_positive_scalar_construct_entry))) /\ (((((exists ff_h_pvs_scalar_construct_entrynegative. ff_h_pvs_scalar_construct_entrynegative + S (dst_negative_scalar_construct_entry) = S ((S (l)) * dst_negative_scale_scalar_construct_entry)) /\ exists ff_q_pvs_scalar_construct_entrynegative. dst_negative_code_scalar_construct_entry = ff_q_pvs_scalar_construct_entrynegative * S ((S (l)) * dst_negative_scale_scalar_construct_entry) + (dst_negative_scalar_construct_entry))) /\ (exists ge_balance_positive_scalar_construct_entryvalue ge_balance_negative_scalar_construct_entryvalue. (((((x2) = 2 * (ge_balance_positive_scalar_construct_entryvalue) /\ (ge_balance_negative_scalar_construct_entryvalue) = 0) \/ exists ge_signed_half_scalar_construct_entryvaluedecode. (((x2) = 2 * ge_signed_half_scalar_construct_entryvaluedecode + 1 /\ (ge_balance_positive_scalar_construct_entryvalue) = 0) /\ (ge_balance_negative_scalar_construct_entryvalue) = S ge_signed_half_scalar_construct_entryvaluedecode))) /\ ((dst_positive_scalar_construct_entry) + ge_balance_negative_scalar_construct_entryvalue = (dst_negative_scalar_construct_entry) + ge_balance_positive_scalar_construct_entryvalue))))))))))))
  45. 0045specialize arithmetic_signed_table_extend_at (l)
  46. 0046specialize arithmetic_signed_table_extend_at (x)
  47. 0047specialize arithmetic_signed_table_extend_at (l)
  48. 0048specialize arithmetic_signed_table_extend_at (x2)
  49. 0049apply arithmetic_signed_table_extend_at
  50. 0050cases hp_witness
  51. 0051cases hp_witness_right
  52. 0052exact hp_witness_right_left
  53. 0053cases hnext
  54. 0054cases hnext_witness
  55. 0055cases hnext_witness_right
  56. 0056exists x3
  57. 0057specialize signed_table_scalar_extend (a)
  58. 0058specialize signed_table_scalar_extend (F)
  59. 0059specialize signed_table_scalar_extend (x)
  60. 0060specialize signed_table_scalar_extend (x3)
  61. 0061specialize signed_table_scalar_extend (l)
  62. 0062specialize signed_table_scalar_extend (x1)
  63. 0063specialize signed_table_scalar_extend (x2)
  64. 0064apply signed_table_scalar_extend
  65. 0065exact hp_witness
  66. 0066exact hnext_witness_left
  67. 0067exact hnext_witness_right_left
  68. 0068exact he0_witness
  69. 0069exact hnext_witness_right_right
  70. 0070exact hv_witness