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 b c. (((exists dst_positive_code_scalar_pointwiseinput_table dst_positive_scale_scalar_pointwiseinput_table dst_negative_code_scalar_pointwiseinput_table dst_negative_scale_scalar_pointwiseinput_table. (((F) = (((((dst_positive_code_scalar_pointwiseinput_table) + (dst_positive_scale_scalar_pointwiseinput_table)) * S ((dst_positive_code_scalar_pointwiseinput_table) + (dst_positive_scale_scalar_pointwiseinput_table)) + ((dst_positive_scale_scalar_pointwiseinput_table) + (dst_positive_scale_scalar_pointwiseinput_table))) + (((dst_negative_code_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)) * S ((dst_negative_code_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)) + ((dst_negative_scale_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)))) * S ((((dst_positive_code_scalar_pointwiseinput_table) + (dst_positive_scale_scalar_pointwiseinput_table)) * S ((dst_positive_code_scalar_pointwiseinput_table) + (dst_positive_scale_scalar_pointwiseinput_table)) + ((dst_positive_scale_scalar_pointwiseinput_table) + (dst_positive_scale_scalar_pointwiseinput_table))) + (((dst_negative_code_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)) * S ((dst_negative_code_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)) + ((dst_negative_scale_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)))) + ((((dst_negative_code_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)) * S ((dst_negative_code_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)) + ((dst_negative_scale_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table))) + (((dst_negative_code_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)) * S ((dst_negative_code_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)) + ((dst_negative_scale_scalar_pointwiseinput_table) + (dst_negative_scale_scalar_pointwiseinput_table)))))) /\ (forall dst_index_scalar_pointwiseinput_table. (exists pvs_le_gap_scalar_pointwiseinput_tabledomain. pvs_le_gap_scalar_pointwiseinput_tabledomain + (dst_index_scalar_pointwiseinput_table) = (l)) -> exists dst_positive_scalar_pointwiseinput_table dst_negative_scalar_pointwiseinput_table dst_value_scalar_pointwiseinput_table. ((((exists ff_h_pvs_scalar_pointwiseinput_tableentrypositive. ff_h_pvs_scalar_pointwiseinput_tableentrypositive + S (dst_positive_scalar_pointwiseinput_table) = S ((S (dst_index_scalar_pointwiseinput_table)) * dst_positive_scale_scalar_pointwiseinput_table)) /\ exists ff_q_pvs_scalar_pointwiseinput_tableentrypositive. dst_positive_code_scalar_pointwiseinput_table = ff_q_pvs_scalar_pointwiseinput_tableentrypositive * S ((S (dst_index_scalar_pointwiseinput_table)) * dst_positive_scale_scalar_pointwiseinput_table) + (dst_positive_scalar_pointwiseinput_table))) /\ (((((exists ff_h_pvs_scalar_pointwiseinput_tableentrynegative. ff_h_pvs_scalar_pointwiseinput_tableentrynegative + S (dst_negative_scalar_pointwiseinput_table) = S ((S (dst_index_scalar_pointwiseinput_table)) * dst_negative_scale_scalar_pointwiseinput_table)) /\ exists ff_q_pvs_scalar_pointwiseinput_tableentrynegative. dst_negative_code_scalar_pointwiseinput_table = ff_q_pvs_scalar_pointwiseinput_tableentrynegative * S ((S (dst_index_scalar_pointwiseinput_table)) * dst_negative_scale_scalar_pointwiseinput_table) + (dst_negative_scalar_pointwiseinput_table))) /\ (exists ge_balance_positive_scalar_pointwiseinput_tableentryvalue ge_balance_negative_scalar_pointwiseinput_tableentryvalue. (((((dst_value_scalar_pointwiseinput_table) = 2 * (ge_balance_positive_scalar_pointwiseinput_tableentryvalue) /\ (ge_balance_negative_scalar_pointwiseinput_tableentryvalue) = 0) \/ exists ge_signed_half_scalar_pointwiseinput_tableentryvaluedecode. (((dst_value_scalar_pointwiseinput_table) = 2 * ge_signed_half_scalar_pointwiseinput_tableentryvaluedecode + 1 /\ (ge_balance_positive_scalar_pointwiseinput_tableentryvalue) = 0) /\ (ge_balance_negative_scalar_pointwiseinput_tableentryvalue) = S ge_signed_half_scalar_pointwiseinput_tableentryvaluedecode))) /\ ((dst_positive_scalar_pointwiseinput_table) + ge_balance_negative_scalar_pointwiseinput_tableentryvalue = (dst_negative_scalar_pointwiseinput_table) + ge_balance_positive_scalar_pointwiseinput_tableentryvalue))))))))) /\ (((exists dst_positive_code_scalar_pointwiseoutput_table dst_positive_scale_scalar_pointwiseoutput_table dst_negative_code_scalar_pointwiseoutput_table dst_negative_scale_scalar_pointwiseoutput_table. (((G) = (((((dst_positive_code_scalar_pointwiseoutput_table) + (dst_positive_scale_scalar_pointwiseoutput_table)) * S ((dst_positive_code_scalar_pointwiseoutput_table) + (dst_positive_scale_scalar_pointwiseoutput_table)) + ((dst_positive_scale_scalar_pointwiseoutput_table) + (dst_positive_scale_scalar_pointwiseoutput_table))) + (((dst_negative_code_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)) * S ((dst_negative_code_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)) + ((dst_negative_scale_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)))) * S ((((dst_positive_code_scalar_pointwiseoutput_table) + (dst_positive_scale_scalar_pointwiseoutput_table)) * S ((dst_positive_code_scalar_pointwiseoutput_table) + (dst_positive_scale_scalar_pointwiseoutput_table)) + ((dst_positive_scale_scalar_pointwiseoutput_table) + (dst_positive_scale_scalar_pointwiseoutput_table))) + (((dst_negative_code_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)) * S ((dst_negative_code_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)) + ((dst_negative_scale_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)))) + ((((dst_negative_code_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)) * S ((dst_negative_code_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)) + ((dst_negative_scale_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table))) + (((dst_negative_code_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)) * S ((dst_negative_code_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)) + ((dst_negative_scale_scalar_pointwiseoutput_table) + (dst_negative_scale_scalar_pointwiseoutput_table)))))) /\ (forall dst_index_scalar_pointwiseoutput_table. (exists pvs_le_gap_scalar_pointwiseoutput_tabledomain. pvs_le_gap_scalar_pointwiseoutput_tabledomain + (dst_index_scalar_pointwiseoutput_table) = (l)) -> exists dst_positive_scalar_pointwiseoutput_table dst_negative_scalar_pointwiseoutput_table dst_value_scalar_pointwiseoutput_table. ((((exists ff_h_pvs_scalar_pointwiseoutput_tableentrypositive. ff_h_pvs_scalar_pointwiseoutput_tableentrypositive + S (dst_positive_scalar_pointwiseoutput_table) = S ((S (dst_index_scalar_pointwiseoutput_table)) * dst_positive_scale_scalar_pointwiseoutput_table)) /\ exists ff_q_pvs_scalar_pointwiseoutput_tableentrypositive. dst_positive_code_scalar_pointwiseoutput_table = ff_q_pvs_scalar_pointwiseoutput_tableentrypositive * S ((S (dst_index_scalar_pointwiseoutput_table)) * dst_positive_scale_scalar_pointwiseoutput_table) + (dst_positive_scalar_pointwiseoutput_table))) /\ (((((exists ff_h_pvs_scalar_pointwiseoutput_tableentrynegative. ff_h_pvs_scalar_pointwiseoutput_tableentrynegative + S (dst_negative_scalar_pointwiseoutput_table) = S ((S (dst_index_scalar_pointwiseoutput_table)) * dst_negative_scale_scalar_pointwiseoutput_table)) /\ exists ff_q_pvs_scalar_pointwiseoutput_tableentrynegative. dst_negative_code_scalar_pointwiseoutput_table = ff_q_pvs_scalar_pointwiseoutput_tableentrynegative * S ((S (dst_index_scalar_pointwiseoutput_table)) * dst_negative_scale_scalar_pointwiseoutput_table) + (dst_negative_scalar_pointwiseoutput_table))) /\ (exists ge_balance_positive_scalar_pointwiseoutput_tableentryvalue ge_balance_negative_scalar_pointwiseoutput_tableentryvalue. (((((dst_value_scalar_pointwiseoutput_table) = 2 * (ge_balance_positive_scalar_pointwiseoutput_tableentryvalue) /\ (ge_balance_negative_scalar_pointwiseoutput_tableentryvalue) = 0) \/ exists ge_signed_half_scalar_pointwiseoutput_tableentryvaluedecode. (((dst_value_scalar_pointwiseoutput_table) = 2 * ge_signed_half_scalar_pointwiseoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_scalar_pointwiseoutput_tableentryvalue) = 0) /\ (ge_balance_negative_scalar_pointwiseoutput_tableentryvalue) = S ge_signed_half_scalar_pointwiseoutput_tableentryvaluedecode))) /\ ((dst_positive_scalar_pointwiseoutput_table) + ge_balance_negative_scalar_pointwiseoutput_tableentryvalue = (dst_negative_scalar_pointwiseoutput_table) + ge_balance_positive_scalar_pointwiseoutput_tableentryvalue))))))))) /\ (forall sto_index_scalar_pointwiseentries. (exists pvs_gap_scalar_pointwiseentriesbound. pvs_gap_scalar_pointwiseentriesbound + S (sto_index_scalar_pointwiseentries) = (l)) -> exists sto_input_scalar_pointwiseentries sto_output_scalar_pointwiseentries. ((exists dst_positive_code_scalar_pointwiseentriesentryinput dst_positive_scale_scalar_pointwiseentriesentryinput dst_negative_code_scalar_pointwiseentriesentryinput dst_negative_scale_scalar_pointwiseentriesentryinput dst_positive_scalar_pointwiseentriesentryinput dst_negative_scalar_pointwiseentriesentryinput. (((F) = (((((dst_positive_code_scalar_pointwiseentriesentryinput) + (dst_positive_scale_scalar_pointwiseentriesentryinput)) * S ((dst_positive_code_scalar_pointwiseentriesentryinput) + (dst_positive_scale_scalar_pointwiseentriesentryinput)) + ((dst_positive_scale_scalar_pointwiseentriesentryinput) + (dst_positive_scale_scalar_pointwiseentriesentryinput))) + (((dst_negative_code_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)) * S ((dst_negative_code_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)) + ((dst_negative_scale_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)))) * S ((((dst_positive_code_scalar_pointwiseentriesentryinput) + (dst_positive_scale_scalar_pointwiseentriesentryinput)) * S ((dst_positive_code_scalar_pointwiseentriesentryinput) + (dst_positive_scale_scalar_pointwiseentriesentryinput)) + ((dst_positive_scale_scalar_pointwiseentriesentryinput) + (dst_positive_scale_scalar_pointwiseentriesentryinput))) + (((dst_negative_code_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)) * S ((dst_negative_code_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)) + ((dst_negative_scale_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)))) + ((((dst_negative_code_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)) * S ((dst_negative_code_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)) + ((dst_negative_scale_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput))) + (((dst_negative_code_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)) * S ((dst_negative_code_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)) + ((dst_negative_scale_scalar_pointwiseentriesentryinput) + (dst_negative_scale_scalar_pointwiseentriesentryinput)))))) /\ (((((exists ff_h_pvs_scalar_pointwiseentriesentryinputpositive. ff_h_pvs_scalar_pointwiseentriesentryinputpositive + S (dst_positive_scalar_pointwiseentriesentryinput) = S ((S (sto_index_scalar_pointwiseentries)) * dst_positive_scale_scalar_pointwiseentriesentryinput)) /\ exists ff_q_pvs_scalar_pointwiseentriesentryinputpositive. dst_positive_code_scalar_pointwiseentriesentryinput = ff_q_pvs_scalar_pointwiseentriesentryinputpositive * S ((S (sto_index_scalar_pointwiseentries)) * dst_positive_scale_scalar_pointwiseentriesentryinput) + (dst_positive_scalar_pointwiseentriesentryinput))) /\ (((((exists ff_h_pvs_scalar_pointwiseentriesentryinputnegative. ff_h_pvs_scalar_pointwiseentriesentryinputnegative + S (dst_negative_scalar_pointwiseentriesentryinput) = S ((S (sto_index_scalar_pointwiseentries)) * dst_negative_scale_scalar_pointwiseentriesentryinput)) /\ exists ff_q_pvs_scalar_pointwiseentriesentryinputnegative. dst_negative_code_scalar_pointwiseentriesentryinput = ff_q_pvs_scalar_pointwiseentriesentryinputnegative * S ((S (sto_index_scalar_pointwiseentries)) * dst_negative_scale_scalar_pointwiseentriesentryinput) + (dst_negative_scalar_pointwiseentriesentryinput))) /\ (exists ge_balance_positive_scalar_pointwiseentriesentryinputvalue ge_balance_negative_scalar_pointwiseentriesentryinputvalue. (((((sto_input_scalar_pointwiseentries) = 2 * (ge_balance_positive_scalar_pointwiseentriesentryinputvalue) /\ (ge_balance_negative_scalar_pointwiseentriesentryinputvalue) = 0) \/ exists ge_signed_half_scalar_pointwiseentriesentryinputvaluedecode. (((sto_input_scalar_pointwiseentries) = 2 * ge_signed_half_scalar_pointwiseentriesentryinputvaluedecode + 1 /\ (ge_balance_positive_scalar_pointwiseentriesentryinputvalue) = 0) /\ (ge_balance_negative_scalar_pointwiseentriesentryinputvalue) = S ge_signed_half_scalar_pointwiseentriesentryinputvaluedecode))) /\ ((dst_positive_scalar_pointwiseentriesentryinput) + ge_balance_negative_scalar_pointwiseentriesentryinputvalue = (dst_negative_scalar_pointwiseentriesentryinput) + ge_balance_positive_scalar_pointwiseentriesentryinputvalue))))))))) /\ (((exists dst_positive_code_scalar_pointwiseentriesentryoutput dst_positive_scale_scalar_pointwiseentriesentryoutput dst_negative_code_scalar_pointwiseentriesentryoutput dst_negative_scale_scalar_pointwiseentriesentryoutput dst_positive_scalar_pointwiseentriesentryoutput dst_negative_scalar_pointwiseentriesentryoutput. (((G) = (((((dst_positive_code_scalar_pointwiseentriesentryoutput) + (dst_positive_scale_scalar_pointwiseentriesentryoutput)) * S ((dst_positive_code_scalar_pointwiseentriesentryoutput) + (dst_positive_scale_scalar_pointwiseentriesentryoutput)) + ((dst_positive_scale_scalar_pointwiseentriesentryoutput) + (dst_positive_scale_scalar_pointwiseentriesentryoutput))) + (((dst_negative_code_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)) * S ((dst_negative_code_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)) + ((dst_negative_scale_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)))) * S ((((dst_positive_code_scalar_pointwiseentriesentryoutput) + (dst_positive_scale_scalar_pointwiseentriesentryoutput)) * S ((dst_positive_code_scalar_pointwiseentriesentryoutput) + (dst_positive_scale_scalar_pointwiseentriesentryoutput)) + ((dst_positive_scale_scalar_pointwiseentriesentryoutput) + (dst_positive_scale_scalar_pointwiseentriesentryoutput))) + (((dst_negative_code_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)) * S ((dst_negative_code_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)) + ((dst_negative_scale_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)))) + ((((dst_negative_code_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)) * S ((dst_negative_code_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)) + ((dst_negative_scale_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput))) + (((dst_negative_code_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)) * S ((dst_negative_code_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)) + ((dst_negative_scale_scalar_pointwiseentriesentryoutput) + (dst_negative_scale_scalar_pointwiseentriesentryoutput)))))) /\ (((((exists ff_h_pvs_scalar_pointwiseentriesentryoutputpositive. ff_h_pvs_scalar_pointwiseentriesentryoutputpositive + S (dst_positive_scalar_pointwiseentriesentryoutput) = S ((S (sto_index_scalar_pointwiseentries)) * dst_positive_scale_scalar_pointwiseentriesentryoutput)) /\ exists ff_q_pvs_scalar_pointwiseentriesentryoutputpositive. dst_positive_code_scalar_pointwiseentriesentryoutput = ff_q_pvs_scalar_pointwiseentriesentryoutputpositive * S ((S (sto_index_scalar_pointwiseentries)) * dst_positive_scale_scalar_pointwiseentriesentryoutput) + (dst_positive_scalar_pointwiseentriesentryoutput))) /\ (((((exists ff_h_pvs_scalar_pointwiseentriesentryoutputnegative. ff_h_pvs_scalar_pointwiseentriesentryoutputnegative + S (dst_negative_scalar_pointwiseentriesentryoutput) = S ((S (sto_index_scalar_pointwiseentries)) * dst_negative_scale_scalar_pointwiseentriesentryoutput)) /\ exists ff_q_pvs_scalar_pointwiseentriesentryoutputnegative. dst_negative_code_scalar_pointwiseentriesentryoutput = ff_q_pvs_scalar_pointwiseentriesentryoutputnegative * S ((S (sto_index_scalar_pointwiseentries)) * dst_negative_scale_scalar_pointwiseentriesentryoutput) + (dst_negative_scalar_pointwiseentriesentryoutput))) /\ (exists ge_balance_positive_scalar_pointwiseentriesentryoutputvalue ge_balance_negative_scalar_pointwiseentriesentryoutputvalue. (((((sto_output_scalar_pointwiseentries) = 2 * (ge_balance_positive_scalar_pointwiseentriesentryoutputvalue) /\ (ge_balance_negative_scalar_pointwiseentriesentryoutputvalue) = 0) \/ exists ge_signed_half_scalar_pointwiseentriesentryoutputvaluedecode. (((sto_output_scalar_pointwiseentries) = 2 * ge_signed_half_scalar_pointwiseentriesentryoutputvaluedecode + 1 /\ (ge_balance_positive_scalar_pointwiseentriesentryoutputvalue) = 0) /\ (ge_balance_negative_scalar_pointwiseentriesentryoutputvalue) = S ge_signed_half_scalar_pointwiseentriesentryoutputvaluedecode))) /\ ((dst_positive_scalar_pointwiseentriesentryoutput) + ge_balance_negative_scalar_pointwiseentriesentryoutputvalue = (dst_negative_scalar_pointwiseentriesentryoutput) + ge_balance_positive_scalar_pointwiseentriesentryoutputvalue))))))))) /\ (exists sto_ap_scalar_pointwiseentriesentryoperation sto_an_scalar_pointwiseentriesentryoperation sto_bp_scalar_pointwiseentriesentryoperation sto_bn_scalar_pointwiseentriesentryoperation sto_cp_scalar_pointwiseentriesentryoperation sto_cn_scalar_pointwiseentriesentryoperation. (((((a) = 2 * (sto_ap_scalar_pointwiseentriesentryoperation) /\ (sto_an_scalar_pointwiseentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_pointwiseentriesentryoperationleft. (((a) = 2 * ge_signed_half_scalar_pointwiseentriesentryoperationleft + 1 /\ (sto_ap_scalar_pointwiseentriesentryoperation) = 0) /\ (sto_an_scalar_pointwiseentriesentryoperation) = S ge_signed_half_scalar_pointwiseentriesentryoperationleft))) /\ ((((((sto_input_scalar_pointwiseentries) = 2 * (sto_bp_scalar_pointwiseentriesentryoperation) /\ (sto_bn_scalar_pointwiseentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_pointwiseentriesentryoperationright. (((sto_input_scalar_pointwiseentries) = 2 * ge_signed_half_scalar_pointwiseentriesentryoperationright + 1 /\ (sto_bp_scalar_pointwiseentriesentryoperation) = 0) /\ (sto_bn_scalar_pointwiseentriesentryoperation) = S ge_signed_half_scalar_pointwiseentriesentryoperationright))) /\ ((((((sto_output_scalar_pointwiseentries) = 2 * (sto_cp_scalar_pointwiseentriesentryoperation) /\ (sto_cn_scalar_pointwiseentriesentryoperation) = 0) \/ exists ge_signed_half_scalar_pointwiseentriesentryoperationoutput. (((sto_output_scalar_pointwiseentries) = 2 * ge_signed_half_scalar_pointwiseentriesentryoperationoutput + 1 /\ (sto_cp_scalar_pointwiseentriesentryoperation) = 0) /\ (sto_cn_scalar_pointwiseentriesentryoperation) = S ge_signed_half_scalar_pointwiseentriesentryoperationoutput))) /\ ((sto_ap_scalar_pointwiseentriesentryoperation * sto_bp_scalar_pointwiseentriesentryoperation + sto_an_scalar_pointwiseentriesentryoperation * sto_bn_scalar_pointwiseentriesentryoperation) + sto_cn_scalar_pointwiseentriesentryoperation = (sto_ap_scalar_pointwiseentriesentryoperation * sto_bn_scalar_pointwiseentriesentryoperation + sto_an_scalar_pointwiseentriesentryoperation * sto_bp_scalar_pointwiseentriesentryoperation) + sto_cp_scalar_pointwiseentriesentryoperation))))))))))))))) -> (exists dst_positive_code_scalar_source_sum dst_positive_scale_scalar_source_sum dst_negative_code_scalar_source_sum dst_negative_scale_scalar_source_sum dst_positive_sum_scalar_source_sum dst_negative_sum_scalar_source_sum. (((F) = (((((dst_positive_code_scalar_source_sum) + (dst_positive_scale_scalar_source_sum)) * S ((dst_positive_code_scalar_source_sum) + (dst_positive_scale_scalar_source_sum)) + ((dst_positive_scale_scalar_source_sum) + (dst_positive_scale_scalar_source_sum))) + (((dst_negative_code_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)) * S ((dst_negative_code_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)) + ((dst_negative_scale_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)))) * S ((((dst_positive_code_scalar_source_sum) + (dst_positive_scale_scalar_source_sum)) * S ((dst_positive_code_scalar_source_sum) + (dst_positive_scale_scalar_source_sum)) + ((dst_positive_scale_scalar_source_sum) + (dst_positive_scale_scalar_source_sum))) + (((dst_negative_code_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)) * S ((dst_negative_code_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)) + ((dst_negative_scale_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)))) + ((((dst_negative_code_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)) * S ((dst_negative_code_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)) + ((dst_negative_scale_scalar_source_sum) + (dst_negative_scale_scalar_source_sum))) + (((dst_negative_code_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)) * S ((dst_negative_code_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)) + ((dst_negative_scale_scalar_source_sum) + (dst_negative_scale_scalar_source_sum)))))) /\ (((exists fs_u_dst_scalar_source_sumpositive fs_v_dst_scalar_source_sumpositive. ((((exists fs_h_dst_scalar_source_sumpositive_body_start. fs_h_dst_scalar_source_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_scalar_source_sumpositive)) /\ exists fs_q_dst_scalar_source_sumpositive_body_start. fs_u_dst_scalar_source_sumpositive = fs_q_dst_scalar_source_sumpositive_body_start * S ((S (0)) * fs_v_dst_scalar_source_sumpositive) + (0))) /\ ((((exists fs_h_dst_scalar_source_sumpositive_body_terminal. fs_h_dst_scalar_source_sumpositive_body_terminal + S (dst_positive_sum_scalar_source_sum) = S ((S (l)) * fs_v_dst_scalar_source_sumpositive)) /\ exists fs_q_dst_scalar_source_sumpositive_body_terminal. fs_u_dst_scalar_source_sumpositive = fs_q_dst_scalar_source_sumpositive_body_terminal * S ((S (l)) * fs_v_dst_scalar_source_sumpositive) + (dst_positive_sum_scalar_source_sum))) /\ forall fs_i_dst_scalar_source_sumpositive_body_steps. (exists fs_lt_dst_scalar_source_sumpositive_body_steps_bound. fs_lt_dst_scalar_source_sumpositive_body_steps_bound + S fs_i_dst_scalar_source_sumpositive_body_steps = l) -> exists fs_a_dst_scalar_source_sumpositive_body_steps fs_r_dst_scalar_source_sumpositive_body_steps fs_s_dst_scalar_source_sumpositive_body_steps. ((((exists fs_h_dst_scalar_source_sumpositive_body_steps_summand. fs_h_dst_scalar_source_sumpositive_body_steps_summand + S (fs_a_dst_scalar_source_sumpositive_body_steps) = S ((S (fs_i_dst_scalar_source_sumpositive_body_steps)) * dst_positive_scale_scalar_source_sum)) /\ exists fs_q_dst_scalar_source_sumpositive_body_steps_summand. dst_positive_code_scalar_source_sum = fs_q_dst_scalar_source_sumpositive_body_steps_summand * S ((S (fs_i_dst_scalar_source_sumpositive_body_steps)) * dst_positive_scale_scalar_source_sum) + (fs_a_dst_scalar_source_sumpositive_body_steps))) /\ ((((exists fs_h_dst_scalar_source_sumpositive_body_steps_partial. fs_h_dst_scalar_source_sumpositive_body_steps_partial + S (fs_r_dst_scalar_source_sumpositive_body_steps) = S ((S (fs_i_dst_scalar_source_sumpositive_body_steps)) * fs_v_dst_scalar_source_sumpositive)) /\ exists fs_q_dst_scalar_source_sumpositive_body_steps_partial. fs_u_dst_scalar_source_sumpositive = fs_q_dst_scalar_source_sumpositive_body_steps_partial * S ((S (fs_i_dst_scalar_source_sumpositive_body_steps)) * fs_v_dst_scalar_source_sumpositive) + (fs_r_dst_scalar_source_sumpositive_body_steps))) /\ ((((exists fs_h_dst_scalar_source_sumpositive_body_steps_successor. fs_h_dst_scalar_source_sumpositive_body_steps_successor + S (fs_s_dst_scalar_source_sumpositive_body_steps) = S ((S (S fs_i_dst_scalar_source_sumpositive_body_steps)) * fs_v_dst_scalar_source_sumpositive)) /\ exists fs_q_dst_scalar_source_sumpositive_body_steps_successor. fs_u_dst_scalar_source_sumpositive = fs_q_dst_scalar_source_sumpositive_body_steps_successor * S ((S (S fs_i_dst_scalar_source_sumpositive_body_steps)) * fs_v_dst_scalar_source_sumpositive) + (fs_s_dst_scalar_source_sumpositive_body_steps))) /\ fs_s_dst_scalar_source_sumpositive_body_steps = fs_r_dst_scalar_source_sumpositive_body_steps + fs_a_dst_scalar_source_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_scalar_source_sumnegative fs_v_dst_scalar_source_sumnegative. ((((exists fs_h_dst_scalar_source_sumnegative_body_start. fs_h_dst_scalar_source_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_scalar_source_sumnegative)) /\ exists fs_q_dst_scalar_source_sumnegative_body_start. fs_u_dst_scalar_source_sumnegative = fs_q_dst_scalar_source_sumnegative_body_start * S ((S (0)) * fs_v_dst_scalar_source_sumnegative) + (0))) /\ ((((exists fs_h_dst_scalar_source_sumnegative_body_terminal. fs_h_dst_scalar_source_sumnegative_body_terminal + S (dst_negative_sum_scalar_source_sum) = S ((S (l)) * fs_v_dst_scalar_source_sumnegative)) /\ exists fs_q_dst_scalar_source_sumnegative_body_terminal. fs_u_dst_scalar_source_sumnegative = fs_q_dst_scalar_source_sumnegative_body_terminal * S ((S (l)) * fs_v_dst_scalar_source_sumnegative) + (dst_negative_sum_scalar_source_sum))) /\ forall fs_i_dst_scalar_source_sumnegative_body_steps. (exists fs_lt_dst_scalar_source_sumnegative_body_steps_bound. fs_lt_dst_scalar_source_sumnegative_body_steps_bound + S fs_i_dst_scalar_source_sumnegative_body_steps = l) -> exists fs_a_dst_scalar_source_sumnegative_body_steps fs_r_dst_scalar_source_sumnegative_body_steps fs_s_dst_scalar_source_sumnegative_body_steps. ((((exists fs_h_dst_scalar_source_sumnegative_body_steps_summand. fs_h_dst_scalar_source_sumnegative_body_steps_summand + S (fs_a_dst_scalar_source_sumnegative_body_steps) = S ((S (fs_i_dst_scalar_source_sumnegative_body_steps)) * dst_negative_scale_scalar_source_sum)) /\ exists fs_q_dst_scalar_source_sumnegative_body_steps_summand. dst_negative_code_scalar_source_sum = fs_q_dst_scalar_source_sumnegative_body_steps_summand * S ((S (fs_i_dst_scalar_source_sumnegative_body_steps)) * dst_negative_scale_scalar_source_sum) + (fs_a_dst_scalar_source_sumnegative_body_steps))) /\ ((((exists fs_h_dst_scalar_source_sumnegative_body_steps_partial. fs_h_dst_scalar_source_sumnegative_body_steps_partial + S (fs_r_dst_scalar_source_sumnegative_body_steps) = S ((S (fs_i_dst_scalar_source_sumnegative_body_steps)) * fs_v_dst_scalar_source_sumnegative)) /\ exists fs_q_dst_scalar_source_sumnegative_body_steps_partial. fs_u_dst_scalar_source_sumnegative = fs_q_dst_scalar_source_sumnegative_body_steps_partial * S ((S (fs_i_dst_scalar_source_sumnegative_body_steps)) * fs_v_dst_scalar_source_sumnegative) + (fs_r_dst_scalar_source_sumnegative_body_steps))) /\ ((((exists fs_h_dst_scalar_source_sumnegative_body_steps_successor. fs_h_dst_scalar_source_sumnegative_body_steps_successor + S (fs_s_dst_scalar_source_sumnegative_body_steps) = S ((S (S fs_i_dst_scalar_source_sumnegative_body_steps)) * fs_v_dst_scalar_source_sumnegative)) /\ exists fs_q_dst_scalar_source_sumnegative_body_steps_successor. fs_u_dst_scalar_source_sumnegative = fs_q_dst_scalar_source_sumnegative_body_steps_successor * S ((S (S fs_i_dst_scalar_source_sumnegative_body_steps)) * fs_v_dst_scalar_source_sumnegative) + (fs_s_dst_scalar_source_sumnegative_body_steps))) /\ fs_s_dst_scalar_source_sumnegative_body_steps = fs_r_dst_scalar_source_sumnegative_body_steps + fs_a_dst_scalar_source_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_scalar_source_sumresult ge_balance_negative_scalar_source_sumresult. (((((b) = 2 * (ge_balance_positive_scalar_source_sumresult) /\ (ge_balance_negative_scalar_source_sumresult) = 0) \/ exists ge_signed_half_scalar_source_sumresultdecode. (((b) = 2 * ge_signed_half_scalar_source_sumresultdecode + 1 /\ (ge_balance_positive_scalar_source_sumresult) = 0) /\ (ge_balance_negative_scalar_source_sumresult) = S ge_signed_half_scalar_source_sumresultdecode))) /\ ((dst_positive_sum_scalar_source_sum) + ge_balance_negative_scalar_source_sumresult = (dst_negative_sum_scalar_source_sum) + ge_balance_positive_scalar_source_sumresult))))))))) -> (exists dst_positive_code_scalar_output_sum dst_positive_scale_scalar_output_sum dst_negative_code_scalar_output_sum dst_negative_scale_scalar_output_sum dst_positive_sum_scalar_output_sum dst_negative_sum_scalar_output_sum. (((G) = (((((dst_positive_code_scalar_output_sum) + (dst_positive_scale_scalar_output_sum)) * S ((dst_positive_code_scalar_output_sum) + (dst_positive_scale_scalar_output_sum)) + ((dst_positive_scale_scalar_output_sum) + (dst_positive_scale_scalar_output_sum))) + (((dst_negative_code_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)) * S ((dst_negative_code_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)) + ((dst_negative_scale_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)))) * S ((((dst_positive_code_scalar_output_sum) + (dst_positive_scale_scalar_output_sum)) * S ((dst_positive_code_scalar_output_sum) + (dst_positive_scale_scalar_output_sum)) + ((dst_positive_scale_scalar_output_sum) + (dst_positive_scale_scalar_output_sum))) + (((dst_negative_code_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)) * S ((dst_negative_code_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)) + ((dst_negative_scale_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)))) + ((((dst_negative_code_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)) * S ((dst_negative_code_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)) + ((dst_negative_scale_scalar_output_sum) + (dst_negative_scale_scalar_output_sum))) + (((dst_negative_code_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)) * S ((dst_negative_code_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)) + ((dst_negative_scale_scalar_output_sum) + (dst_negative_scale_scalar_output_sum)))))) /\ (((exists fs_u_dst_scalar_output_sumpositive fs_v_dst_scalar_output_sumpositive. ((((exists fs_h_dst_scalar_output_sumpositive_body_start. fs_h_dst_scalar_output_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_scalar_output_sumpositive)) /\ exists fs_q_dst_scalar_output_sumpositive_body_start. fs_u_dst_scalar_output_sumpositive = fs_q_dst_scalar_output_sumpositive_body_start * S ((S (0)) * fs_v_dst_scalar_output_sumpositive) + (0))) /\ ((((exists fs_h_dst_scalar_output_sumpositive_body_terminal. fs_h_dst_scalar_output_sumpositive_body_terminal + S (dst_positive_sum_scalar_output_sum) = S ((S (l)) * fs_v_dst_scalar_output_sumpositive)) /\ exists fs_q_dst_scalar_output_sumpositive_body_terminal. fs_u_dst_scalar_output_sumpositive = fs_q_dst_scalar_output_sumpositive_body_terminal * S ((S (l)) * fs_v_dst_scalar_output_sumpositive) + (dst_positive_sum_scalar_output_sum))) /\ forall fs_i_dst_scalar_output_sumpositive_body_steps. (exists fs_lt_dst_scalar_output_sumpositive_body_steps_bound. fs_lt_dst_scalar_output_sumpositive_body_steps_bound + S fs_i_dst_scalar_output_sumpositive_body_steps = l) -> exists fs_a_dst_scalar_output_sumpositive_body_steps fs_r_dst_scalar_output_sumpositive_body_steps fs_s_dst_scalar_output_sumpositive_body_steps. ((((exists fs_h_dst_scalar_output_sumpositive_body_steps_summand. fs_h_dst_scalar_output_sumpositive_body_steps_summand + S (fs_a_dst_scalar_output_sumpositive_body_steps) = S ((S (fs_i_dst_scalar_output_sumpositive_body_steps)) * dst_positive_scale_scalar_output_sum)) /\ exists fs_q_dst_scalar_output_sumpositive_body_steps_summand. dst_positive_code_scalar_output_sum = fs_q_dst_scalar_output_sumpositive_body_steps_summand * S ((S (fs_i_dst_scalar_output_sumpositive_body_steps)) * dst_positive_scale_scalar_output_sum) + (fs_a_dst_scalar_output_sumpositive_body_steps))) /\ ((((exists fs_h_dst_scalar_output_sumpositive_body_steps_partial. fs_h_dst_scalar_output_sumpositive_body_steps_partial + S (fs_r_dst_scalar_output_sumpositive_body_steps) = S ((S (fs_i_dst_scalar_output_sumpositive_body_steps)) * fs_v_dst_scalar_output_sumpositive)) /\ exists fs_q_dst_scalar_output_sumpositive_body_steps_partial. fs_u_dst_scalar_output_sumpositive = fs_q_dst_scalar_output_sumpositive_body_steps_partial * S ((S (fs_i_dst_scalar_output_sumpositive_body_steps)) * fs_v_dst_scalar_output_sumpositive) + (fs_r_dst_scalar_output_sumpositive_body_steps))) /\ ((((exists fs_h_dst_scalar_output_sumpositive_body_steps_successor. fs_h_dst_scalar_output_sumpositive_body_steps_successor + S (fs_s_dst_scalar_output_sumpositive_body_steps) = S ((S (S fs_i_dst_scalar_output_sumpositive_body_steps)) * fs_v_dst_scalar_output_sumpositive)) /\ exists fs_q_dst_scalar_output_sumpositive_body_steps_successor. fs_u_dst_scalar_output_sumpositive = fs_q_dst_scalar_output_sumpositive_body_steps_successor * S ((S (S fs_i_dst_scalar_output_sumpositive_body_steps)) * fs_v_dst_scalar_output_sumpositive) + (fs_s_dst_scalar_output_sumpositive_body_steps))) /\ fs_s_dst_scalar_output_sumpositive_body_steps = fs_r_dst_scalar_output_sumpositive_body_steps + fs_a_dst_scalar_output_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_scalar_output_sumnegative fs_v_dst_scalar_output_sumnegative. ((((exists fs_h_dst_scalar_output_sumnegative_body_start. fs_h_dst_scalar_output_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_scalar_output_sumnegative)) /\ exists fs_q_dst_scalar_output_sumnegative_body_start. fs_u_dst_scalar_output_sumnegative = fs_q_dst_scalar_output_sumnegative_body_start * S ((S (0)) * fs_v_dst_scalar_output_sumnegative) + (0))) /\ ((((exists fs_h_dst_scalar_output_sumnegative_body_terminal. fs_h_dst_scalar_output_sumnegative_body_terminal + S (dst_negative_sum_scalar_output_sum) = S ((S (l)) * fs_v_dst_scalar_output_sumnegative)) /\ exists fs_q_dst_scalar_output_sumnegative_body_terminal. fs_u_dst_scalar_output_sumnegative = fs_q_dst_scalar_output_sumnegative_body_terminal * S ((S (l)) * fs_v_dst_scalar_output_sumnegative) + (dst_negative_sum_scalar_output_sum))) /\ forall fs_i_dst_scalar_output_sumnegative_body_steps. (exists fs_lt_dst_scalar_output_sumnegative_body_steps_bound. fs_lt_dst_scalar_output_sumnegative_body_steps_bound + S fs_i_dst_scalar_output_sumnegative_body_steps = l) -> exists fs_a_dst_scalar_output_sumnegative_body_steps fs_r_dst_scalar_output_sumnegative_body_steps fs_s_dst_scalar_output_sumnegative_body_steps. ((((exists fs_h_dst_scalar_output_sumnegative_body_steps_summand. fs_h_dst_scalar_output_sumnegative_body_steps_summand + S (fs_a_dst_scalar_output_sumnegative_body_steps) = S ((S (fs_i_dst_scalar_output_sumnegative_body_steps)) * dst_negative_scale_scalar_output_sum)) /\ exists fs_q_dst_scalar_output_sumnegative_body_steps_summand. dst_negative_code_scalar_output_sum = fs_q_dst_scalar_output_sumnegative_body_steps_summand * S ((S (fs_i_dst_scalar_output_sumnegative_body_steps)) * dst_negative_scale_scalar_output_sum) + (fs_a_dst_scalar_output_sumnegative_body_steps))) /\ ((((exists fs_h_dst_scalar_output_sumnegative_body_steps_partial. fs_h_dst_scalar_output_sumnegative_body_steps_partial + S (fs_r_dst_scalar_output_sumnegative_body_steps) = S ((S (fs_i_dst_scalar_output_sumnegative_body_steps)) * fs_v_dst_scalar_output_sumnegative)) /\ exists fs_q_dst_scalar_output_sumnegative_body_steps_partial. fs_u_dst_scalar_output_sumnegative = fs_q_dst_scalar_output_sumnegative_body_steps_partial * S ((S (fs_i_dst_scalar_output_sumnegative_body_steps)) * fs_v_dst_scalar_output_sumnegative) + (fs_r_dst_scalar_output_sumnegative_body_steps))) /\ ((((exists fs_h_dst_scalar_output_sumnegative_body_steps_successor. fs_h_dst_scalar_output_sumnegative_body_steps_successor + S (fs_s_dst_scalar_output_sumnegative_body_steps) = S ((S (S fs_i_dst_scalar_output_sumnegative_body_steps)) * fs_v_dst_scalar_output_sumnegative)) /\ exists fs_q_dst_scalar_output_sumnegative_body_steps_successor. fs_u_dst_scalar_output_sumnegative = fs_q_dst_scalar_output_sumnegative_body_steps_successor * S ((S (S fs_i_dst_scalar_output_sumnegative_body_steps)) * fs_v_dst_scalar_output_sumnegative) + (fs_s_dst_scalar_output_sumnegative_body_steps))) /\ fs_s_dst_scalar_output_sumnegative_body_steps = fs_r_dst_scalar_output_sumnegative_body_steps + fs_a_dst_scalar_output_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_scalar_output_sumresult ge_balance_negative_scalar_output_sumresult. (((((c) = 2 * (ge_balance_positive_scalar_output_sumresult) /\ (ge_balance_negative_scalar_output_sumresult) = 0) \/ exists ge_signed_half_scalar_output_sumresultdecode. (((c) = 2 * ge_signed_half_scalar_output_sumresultdecode + 1 /\ (ge_balance_positive_scalar_output_sumresult) = 0) /\ (ge_balance_negative_scalar_output_sumresult) = S ge_signed_half_scalar_output_sumresultdecode))) /\ ((dst_positive_sum_scalar_output_sum) + ge_balance_negative_scalar_output_sumresult = (dst_negative_sum_scalar_output_sum) + ge_balance_positive_scalar_output_sumresult))))))))) -> (exists sto_ap_scalar_sum_result sto_an_scalar_sum_result sto_bp_scalar_sum_result sto_bn_scalar_sum_result sto_cp_scalar_sum_result sto_cn_scalar_sum_result. (((((a) = 2 * (sto_ap_scalar_sum_result) /\ (sto_an_scalar_sum_result) = 0) \/ exists ge_signed_half_scalar_sum_resultleft. (((a) = 2 * ge_signed_half_scalar_sum_resultleft + 1 /\ (sto_ap_scalar_sum_result) = 0) /\ (sto_an_scalar_sum_result) = S ge_signed_half_scalar_sum_resultleft))) /\ ((((((b) = 2 * (sto_bp_scalar_sum_result) /\ (sto_bn_scalar_sum_result) = 0) \/ exists ge_signed_half_scalar_sum_resultright. (((b) = 2 * ge_signed_half_scalar_sum_resultright + 1 /\ (sto_bp_scalar_sum_result) = 0) /\ (sto_bn_scalar_sum_result) = S ge_signed_half_scalar_sum_resultright))) /\ ((((((c) = 2 * (sto_cp_scalar_sum_result) /\ (sto_cn_scalar_sum_result) = 0) \/ exists ge_signed_half_scalar_sum_resultoutput. (((c) = 2 * ge_signed_half_scalar_sum_resultoutput + 1 /\ (sto_cp_scalar_sum_result) = 0) /\ (sto_cn_scalar_sum_result) = S ge_signed_half_scalar_sum_resultoutput))) /\ ((sto_ap_scalar_sum_result * sto_bp_scalar_sum_result + sto_an_scalar_sum_result * sto_bn_scalar_sum_result) + sto_cn_scalar_sum_result = (sto_ap_scalar_sum_result * sto_bn_scalar_sum_result + sto_an_scalar_sum_result * sto_bp_scalar_sum_result) + sto_cp_scalar_sum_result)))))))Constructive proof overview
Generated structural guide
Every actual prefix sum commutes with multiplication by an arbitrary canonical signed scalar, via genuine successor sums and distributivity; zero length and negative scalars are included.
The unchanged tactic script uses 7 declared prerequisites and contains 94 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
divisor_signed_sum_empty_value Alpha theorem; checked-use authorized signed_mul_zero_right Alpha theorem; checked-use authorized divisor_signed_sum_successor_decompose Alpha theorem; checked-use authorized WS000C signed_table_scalar_restrict WS000B signed_table_scalar_lookup le_refl Stable theorem; checked-use authorized WS001A signed_table_scalar_add_introDirect 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
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 (3)
01Induction on lL1–9
02Establish hbL10–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum empty value.
03Establish hcL15–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum empty value.
04Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
apply signed_mul_zero_right
05Fix variables and assumptionsL26–33
06Establish hdFL34–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum successor decompose.
- L34
have hdF : ∃ ssl_prefix_scalar_step_F. ∃ ssl_entry_scalar_step_F. SignedPrefixSum(F,l,ssl_prefix_scalar_step_F) ∧ (ArithAt(F,l,ssl_entry_scalar_step_F) ∧ SignedAdd(ssl_prefix_scalar_step_F,ssl_entry_scalar_step_F,b))Definitions: SignedAddArithAtSignedPrefixSum - L35
specialize divisor_signed_sum_successor_decompose (F) - L36
specialize divisor_signed_sum_successor_decompose (l) - L37
specialize divisor_signed_sum_successor_decompose (b) - L38
apply divisor_signed_sum_successor_decompose - L39
exact hF
07Separate the logical casesL40–43
08Establish hdGL44–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum successor decompose.
- L44
have hdG : ∃ ssl_prefix_scalar_step_G. ∃ ssl_entry_scalar_step_G. SignedPrefixSum(G,l,ssl_prefix_scalar_step_G) ∧ (ArithAt(G,l,ssl_entry_scalar_step_G) ∧ SignedAdd(ssl_prefix_scalar_step_G,ssl_entry_scalar_step_G,c))Definitions: SignedAddArithAtSignedPrefixSum - L45
specialize divisor_signed_sum_successor_decompose (G) - L46
specialize divisor_signed_sum_successor_decompose (l) - L47
specialize divisor_signed_sum_successor_decompose (c) - L48
apply divisor_signed_sum_successor_decompose - L49
exact hG
09Separate the logical casesL50–53
10Establish hpL54–63
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L54
have hp : SignedMul(a,x,x2)Definitions: SignedMul - L55
specialize IH (a) - L56
specialize IH (F) - L57
specialize IH (G) - L58
specialize IH (x) - L59
specialize IH (x2) - L60
apply IH - L61
specialize signed_table_scalar_restrict (a) - L62
specialize signed_table_scalar_restrict (F) - L63
specialize signed_table_scalar_restrict (G)
11Use earlier factsL64–68
12Establish heL69–78
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table scalar lookup.
- L69
have he : SignedMul(a,x1,x3)Definitions: SignedMul - L70
specialize signed_table_scalar_lookup (a) - L71
specialize signed_table_scalar_lookup (F) - L72
specialize signed_table_scalar_lookup (G) - L73
specialize signed_table_scalar_lookup (S l) - L74
specialize signed_table_scalar_lookup (l) - L75
specialize signed_table_scalar_lookup (x1) - L76
specialize signed_table_scalar_lookup (x3) - L77
apply signed_table_scalar_lookup - L78
exact hpoint
13Use earlier factsL79–88
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
specialize le_refl (S l) - L80
apply le_refl - L81
exact hdF_witness_witness_right_left - L82
exact hdG_witness_witness_right_left - L83
specialize signed_table_scalar_add_intro (a) - L84
specialize signed_table_scalar_add_intro (x) - L85
specialize signed_table_scalar_add_intro (x1) - L86
specialize signed_table_scalar_add_intro (b) - L87
specialize signed_table_scalar_add_intro (x2) - L88
specialize signed_table_scalar_add_intro (x3)
Original exact command ledger · 94 lines
- 0001
induction l - 0002
intro a - 0003
intro F - 0004
intro G - 0005
intro b - 0006
intro c - 0007
intro hpoint - 0008
intro hF - 0009
intro hG - 0010
have hb : b = 0 - 0011
specialize divisor_signed_sum_empty_value (F) - 0012
specialize divisor_signed_sum_empty_value (b) - 0013
apply divisor_signed_sum_empty_value - 0014
exact hF - 0015
have hc : c = 0 - 0016
specialize divisor_signed_sum_empty_value (G) - 0017
specialize divisor_signed_sum_empty_value (c) - 0018
apply divisor_signed_sum_empty_value - 0019
exact hG - 0020
rewrite hb - 0021
rewrite hb - 0022
rewrite hc - 0023
rewrite hc - 0024
specialize signed_mul_zero_right (a) - 0025
apply signed_mul_zero_right - 0026
intro a - 0027
intro F - 0028
intro G - 0029
intro b - 0030
intro c - 0031
intro hpoint - 0032
intro hF - 0033
intro hG - 0034
have hdF : exists ssl_prefix_scalar_step_F ssl_entry_scalar_step_F. ((exists dst_positive_code_scalar_step_Fsum dst_positive_scale_scalar_step_Fsum dst_negative_code_scalar_step_Fsum dst_negative_scale_scalar_step_Fsum dst_positive_sum_scalar_step_Fsum dst_negative_sum_scalar_step_Fsum. (((F) = (((((dst_positive_code_scalar_step_Fsum) + (dst_positive_scale_scalar_step_Fsum)) * S ((dst_positive_code_scalar_step_Fsum) + (dst_positive_scale_scalar_step_Fsum)) + ((dst_positive_scale_scalar_step_Fsum) + (dst_positive_scale_scalar_step_Fsum))) + (((dst_negative_code_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)) * S ((dst_negative_code_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)) + ((dst_negative_scale_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)))) * S ((((dst_positive_code_scalar_step_Fsum) + (dst_positive_scale_scalar_step_Fsum)) * S ((dst_positive_code_scalar_step_Fsum) + (dst_positive_scale_scalar_step_Fsum)) + ((dst_positive_scale_scalar_step_Fsum) + (dst_positive_scale_scalar_step_Fsum))) + (((dst_negative_code_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)) * S ((dst_negative_code_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)) + ((dst_negative_scale_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)))) + ((((dst_negative_code_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)) * S ((dst_negative_code_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)) + ((dst_negative_scale_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum))) + (((dst_negative_code_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)) * S ((dst_negative_code_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)) + ((dst_negative_scale_scalar_step_Fsum) + (dst_negative_scale_scalar_step_Fsum)))))) /\ (((exists fs_u_dst_scalar_step_Fsumpositive fs_v_dst_scalar_step_Fsumpositive. ((((exists fs_h_dst_scalar_step_Fsumpositive_body_start. fs_h_dst_scalar_step_Fsumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_scalar_step_Fsumpositive)) /\ exists fs_q_dst_scalar_step_Fsumpositive_body_start. fs_u_dst_scalar_step_Fsumpositive = fs_q_dst_scalar_step_Fsumpositive_body_start * S ((S (0)) * fs_v_dst_scalar_step_Fsumpositive) + (0))) /\ ((((exists fs_h_dst_scalar_step_Fsumpositive_body_terminal. fs_h_dst_scalar_step_Fsumpositive_body_terminal + S (dst_positive_sum_scalar_step_Fsum) = S ((S (l)) * fs_v_dst_scalar_step_Fsumpositive)) /\ exists fs_q_dst_scalar_step_Fsumpositive_body_terminal. fs_u_dst_scalar_step_Fsumpositive = fs_q_dst_scalar_step_Fsumpositive_body_terminal * S ((S (l)) * fs_v_dst_scalar_step_Fsumpositive) + (dst_positive_sum_scalar_step_Fsum))) /\ forall fs_i_dst_scalar_step_Fsumpositive_body_steps. (exists fs_lt_dst_scalar_step_Fsumpositive_body_steps_bound. fs_lt_dst_scalar_step_Fsumpositive_body_steps_bound + S fs_i_dst_scalar_step_Fsumpositive_body_steps = l) -> exists fs_a_dst_scalar_step_Fsumpositive_body_steps fs_r_dst_scalar_step_Fsumpositive_body_steps fs_s_dst_scalar_step_Fsumpositive_body_steps. ((((exists fs_h_dst_scalar_step_Fsumpositive_body_steps_summand. fs_h_dst_scalar_step_Fsumpositive_body_steps_summand + S (fs_a_dst_scalar_step_Fsumpositive_body_steps) = S ((S (fs_i_dst_scalar_step_Fsumpositive_body_steps)) * dst_positive_scale_scalar_step_Fsum)) /\ exists fs_q_dst_scalar_step_Fsumpositive_body_steps_summand. dst_positive_code_scalar_step_Fsum = fs_q_dst_scalar_step_Fsumpositive_body_steps_summand * S ((S (fs_i_dst_scalar_step_Fsumpositive_body_steps)) * dst_positive_scale_scalar_step_Fsum) + (fs_a_dst_scalar_step_Fsumpositive_body_steps))) /\ ((((exists fs_h_dst_scalar_step_Fsumpositive_body_steps_partial. fs_h_dst_scalar_step_Fsumpositive_body_steps_partial + S (fs_r_dst_scalar_step_Fsumpositive_body_steps) = S ((S (fs_i_dst_scalar_step_Fsumpositive_body_steps)) * fs_v_dst_scalar_step_Fsumpositive)) /\ exists fs_q_dst_scalar_step_Fsumpositive_body_steps_partial. fs_u_dst_scalar_step_Fsumpositive = fs_q_dst_scalar_step_Fsumpositive_body_steps_partial * S ((S (fs_i_dst_scalar_step_Fsumpositive_body_steps)) * fs_v_dst_scalar_step_Fsumpositive) + (fs_r_dst_scalar_step_Fsumpositive_body_steps))) /\ ((((exists fs_h_dst_scalar_step_Fsumpositive_body_steps_successor. fs_h_dst_scalar_step_Fsumpositive_body_steps_successor + S (fs_s_dst_scalar_step_Fsumpositive_body_steps) = S ((S (S fs_i_dst_scalar_step_Fsumpositive_body_steps)) * fs_v_dst_scalar_step_Fsumpositive)) /\ exists fs_q_dst_scalar_step_Fsumpositive_body_steps_successor. fs_u_dst_scalar_step_Fsumpositive = fs_q_dst_scalar_step_Fsumpositive_body_steps_successor * S ((S (S fs_i_dst_scalar_step_Fsumpositive_body_steps)) * fs_v_dst_scalar_step_Fsumpositive) + (fs_s_dst_scalar_step_Fsumpositive_body_steps))) /\ fs_s_dst_scalar_step_Fsumpositive_body_steps = fs_r_dst_scalar_step_Fsumpositive_body_steps + fs_a_dst_scalar_step_Fsumpositive_body_steps)))))) /\ (((exists fs_u_dst_scalar_step_Fsumnegative fs_v_dst_scalar_step_Fsumnegative. ((((exists fs_h_dst_scalar_step_Fsumnegative_body_start. fs_h_dst_scalar_step_Fsumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_scalar_step_Fsumnegative)) /\ exists fs_q_dst_scalar_step_Fsumnegative_body_start. fs_u_dst_scalar_step_Fsumnegative = fs_q_dst_scalar_step_Fsumnegative_body_start * S ((S (0)) * fs_v_dst_scalar_step_Fsumnegative) + (0))) /\ ((((exists fs_h_dst_scalar_step_Fsumnegative_body_terminal. fs_h_dst_scalar_step_Fsumnegative_body_terminal + S (dst_negative_sum_scalar_step_Fsum) = S ((S (l)) * fs_v_dst_scalar_step_Fsumnegative)) /\ exists fs_q_dst_scalar_step_Fsumnegative_body_terminal. fs_u_dst_scalar_step_Fsumnegative = fs_q_dst_scalar_step_Fsumnegative_body_terminal * S ((S (l)) * fs_v_dst_scalar_step_Fsumnegative) + (dst_negative_sum_scalar_step_Fsum))) /\ forall fs_i_dst_scalar_step_Fsumnegative_body_steps. (exists fs_lt_dst_scalar_step_Fsumnegative_body_steps_bound. fs_lt_dst_scalar_step_Fsumnegative_body_steps_bound + S fs_i_dst_scalar_step_Fsumnegative_body_steps = l) -> exists fs_a_dst_scalar_step_Fsumnegative_body_steps fs_r_dst_scalar_step_Fsumnegative_body_steps fs_s_dst_scalar_step_Fsumnegative_body_steps. ((((exists fs_h_dst_scalar_step_Fsumnegative_body_steps_summand. fs_h_dst_scalar_step_Fsumnegative_body_steps_summand + S (fs_a_dst_scalar_step_Fsumnegative_body_steps) = S ((S (fs_i_dst_scalar_step_Fsumnegative_body_steps)) * dst_negative_scale_scalar_step_Fsum)) /\ exists fs_q_dst_scalar_step_Fsumnegative_body_steps_summand. dst_negative_code_scalar_step_Fsum = fs_q_dst_scalar_step_Fsumnegative_body_steps_summand * S ((S (fs_i_dst_scalar_step_Fsumnegative_body_steps)) * dst_negative_scale_scalar_step_Fsum) + (fs_a_dst_scalar_step_Fsumnegative_body_steps))) /\ ((((exists fs_h_dst_scalar_step_Fsumnegative_body_steps_partial. fs_h_dst_scalar_step_Fsumnegative_body_steps_partial + S (fs_r_dst_scalar_step_Fsumnegative_body_steps) = S ((S (fs_i_dst_scalar_step_Fsumnegative_body_steps)) * fs_v_dst_scalar_step_Fsumnegative)) /\ exists fs_q_dst_scalar_step_Fsumnegative_body_steps_partial. fs_u_dst_scalar_step_Fsumnegative = fs_q_dst_scalar_step_Fsumnegative_body_steps_partial * S ((S (fs_i_dst_scalar_step_Fsumnegative_body_steps)) * fs_v_dst_scalar_step_Fsumnegative) + (fs_r_dst_scalar_step_Fsumnegative_body_steps))) /\ ((((exists fs_h_dst_scalar_step_Fsumnegative_body_steps_successor. fs_h_dst_scalar_step_Fsumnegative_body_steps_successor + S (fs_s_dst_scalar_step_Fsumnegative_body_steps) = S ((S (S fs_i_dst_scalar_step_Fsumnegative_body_steps)) * fs_v_dst_scalar_step_Fsumnegative)) /\ exists fs_q_dst_scalar_step_Fsumnegative_body_steps_successor. fs_u_dst_scalar_step_Fsumnegative = fs_q_dst_scalar_step_Fsumnegative_body_steps_successor * S ((S (S fs_i_dst_scalar_step_Fsumnegative_body_steps)) * fs_v_dst_scalar_step_Fsumnegative) + (fs_s_dst_scalar_step_Fsumnegative_body_steps))) /\ fs_s_dst_scalar_step_Fsumnegative_body_steps = fs_r_dst_scalar_step_Fsumnegative_body_steps + fs_a_dst_scalar_step_Fsumnegative_body_steps)))))) /\ (exists ge_balance_positive_scalar_step_Fsumresult ge_balance_negative_scalar_step_Fsumresult. (((((ssl_prefix_scalar_step_F) = 2 * (ge_balance_positive_scalar_step_Fsumresult) /\ (ge_balance_negative_scalar_step_Fsumresult) = 0) \/ exists ge_signed_half_scalar_step_Fsumresultdecode. (((ssl_prefix_scalar_step_F) = 2 * ge_signed_half_scalar_step_Fsumresultdecode + 1 /\ (ge_balance_positive_scalar_step_Fsumresult) = 0) /\ (ge_balance_negative_scalar_step_Fsumresult) = S ge_signed_half_scalar_step_Fsumresultdecode))) /\ ((dst_positive_sum_scalar_step_Fsum) + ge_balance_negative_scalar_step_Fsumresult = (dst_negative_sum_scalar_step_Fsum) + ge_balance_positive_scalar_step_Fsumresult))))))))) /\ (((exists dst_positive_code_scalar_step_Fentry dst_positive_scale_scalar_step_Fentry dst_negative_code_scalar_step_Fentry dst_negative_scale_scalar_step_Fentry dst_positive_scalar_step_Fentry dst_negative_scalar_step_Fentry. (((F) = (((((dst_positive_code_scalar_step_Fentry) + (dst_positive_scale_scalar_step_Fentry)) * S ((dst_positive_code_scalar_step_Fentry) + (dst_positive_scale_scalar_step_Fentry)) + ((dst_positive_scale_scalar_step_Fentry) + (dst_positive_scale_scalar_step_Fentry))) + (((dst_negative_code_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)) * S ((dst_negative_code_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)) + ((dst_negative_scale_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)))) * S ((((dst_positive_code_scalar_step_Fentry) + (dst_positive_scale_scalar_step_Fentry)) * S ((dst_positive_code_scalar_step_Fentry) + (dst_positive_scale_scalar_step_Fentry)) + ((dst_positive_scale_scalar_step_Fentry) + (dst_positive_scale_scalar_step_Fentry))) + (((dst_negative_code_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)) * S ((dst_negative_code_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)) + ((dst_negative_scale_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)))) + ((((dst_negative_code_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)) * S ((dst_negative_code_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)) + ((dst_negative_scale_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry))) + (((dst_negative_code_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)) * S ((dst_negative_code_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)) + ((dst_negative_scale_scalar_step_Fentry) + (dst_negative_scale_scalar_step_Fentry)))))) /\ (((((exists ff_h_pvs_scalar_step_Fentrypositive. ff_h_pvs_scalar_step_Fentrypositive + S (dst_positive_scalar_step_Fentry) = S ((S (l)) * dst_positive_scale_scalar_step_Fentry)) /\ exists ff_q_pvs_scalar_step_Fentrypositive. dst_positive_code_scalar_step_Fentry = ff_q_pvs_scalar_step_Fentrypositive * S ((S (l)) * dst_positive_scale_scalar_step_Fentry) + (dst_positive_scalar_step_Fentry))) /\ (((((exists ff_h_pvs_scalar_step_Fentrynegative. ff_h_pvs_scalar_step_Fentrynegative + S (dst_negative_scalar_step_Fentry) = S ((S (l)) * dst_negative_scale_scalar_step_Fentry)) /\ exists ff_q_pvs_scalar_step_Fentrynegative. dst_negative_code_scalar_step_Fentry = ff_q_pvs_scalar_step_Fentrynegative * S ((S (l)) * dst_negative_scale_scalar_step_Fentry) + (dst_negative_scalar_step_Fentry))) /\ (exists ge_balance_positive_scalar_step_Fentryvalue ge_balance_negative_scalar_step_Fentryvalue. (((((ssl_entry_scalar_step_F) = 2 * (ge_balance_positive_scalar_step_Fentryvalue) /\ (ge_balance_negative_scalar_step_Fentryvalue) = 0) \/ exists ge_signed_half_scalar_step_Fentryvaluedecode. (((ssl_entry_scalar_step_F) = 2 * ge_signed_half_scalar_step_Fentryvaluedecode + 1 /\ (ge_balance_positive_scalar_step_Fentryvalue) = 0) /\ (ge_balance_negative_scalar_step_Fentryvalue) = S ge_signed_half_scalar_step_Fentryvaluedecode))) /\ ((dst_positive_scalar_step_Fentry) + ge_balance_negative_scalar_step_Fentryvalue = (dst_negative_scalar_step_Fentry) + ge_balance_positive_scalar_step_Fentryvalue))))))))) /\ (exists dsa_ap_scalar_step_Faddition dsa_an_scalar_step_Faddition dsa_bp_scalar_step_Faddition dsa_bn_scalar_step_Faddition dsa_cp_scalar_step_Faddition dsa_cn_scalar_step_Faddition. (((((ssl_prefix_scalar_step_F) = 2 * (dsa_ap_scalar_step_Faddition) /\ (dsa_an_scalar_step_Faddition) = 0) \/ exists ge_signed_half_scalar_step_Fadditionleft. (((ssl_prefix_scalar_step_F) = 2 * ge_signed_half_scalar_step_Fadditionleft + 1 /\ (dsa_ap_scalar_step_Faddition) = 0) /\ (dsa_an_scalar_step_Faddition) = S ge_signed_half_scalar_step_Fadditionleft))) /\ ((((((ssl_entry_scalar_step_F) = 2 * (dsa_bp_scalar_step_Faddition) /\ (dsa_bn_scalar_step_Faddition) = 0) \/ exists ge_signed_half_scalar_step_Fadditionright. (((ssl_entry_scalar_step_F) = 2 * ge_signed_half_scalar_step_Fadditionright + 1 /\ (dsa_bp_scalar_step_Faddition) = 0) /\ (dsa_bn_scalar_step_Faddition) = S ge_signed_half_scalar_step_Fadditionright))) /\ ((((((b) = 2 * (dsa_cp_scalar_step_Faddition) /\ (dsa_cn_scalar_step_Faddition) = 0) \/ exists ge_signed_half_scalar_step_Fadditionoutput. (((b) = 2 * ge_signed_half_scalar_step_Fadditionoutput + 1 /\ (dsa_cp_scalar_step_Faddition) = 0) /\ (dsa_cn_scalar_step_Faddition) = S ge_signed_half_scalar_step_Fadditionoutput))) /\ ((dsa_ap_scalar_step_Faddition + dsa_bp_scalar_step_Faddition) + dsa_cn_scalar_step_Faddition = (dsa_an_scalar_step_Faddition + dsa_bn_scalar_step_Faddition) + dsa_cp_scalar_step_Faddition)))))))))) - 0035
specialize divisor_signed_sum_successor_decompose (F) - 0036
specialize divisor_signed_sum_successor_decompose (l) - 0037
specialize divisor_signed_sum_successor_decompose (b) - 0038
apply divisor_signed_sum_successor_decompose - 0039
exact hF - 0040
cases hdF - 0041
cases hdF_witness - 0042
cases hdF_witness_witness - 0043
cases hdF_witness_witness_right - 0044
have hdG : exists ssl_prefix_scalar_step_G ssl_entry_scalar_step_G. ((exists dst_positive_code_scalar_step_Gsum dst_positive_scale_scalar_step_Gsum dst_negative_code_scalar_step_Gsum dst_negative_scale_scalar_step_Gsum dst_positive_sum_scalar_step_Gsum dst_negative_sum_scalar_step_Gsum. (((G) = (((((dst_positive_code_scalar_step_Gsum) + (dst_positive_scale_scalar_step_Gsum)) * S ((dst_positive_code_scalar_step_Gsum) + (dst_positive_scale_scalar_step_Gsum)) + ((dst_positive_scale_scalar_step_Gsum) + (dst_positive_scale_scalar_step_Gsum))) + (((dst_negative_code_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)) * S ((dst_negative_code_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)) + ((dst_negative_scale_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)))) * S ((((dst_positive_code_scalar_step_Gsum) + (dst_positive_scale_scalar_step_Gsum)) * S ((dst_positive_code_scalar_step_Gsum) + (dst_positive_scale_scalar_step_Gsum)) + ((dst_positive_scale_scalar_step_Gsum) + (dst_positive_scale_scalar_step_Gsum))) + (((dst_negative_code_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)) * S ((dst_negative_code_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)) + ((dst_negative_scale_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)))) + ((((dst_negative_code_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)) * S ((dst_negative_code_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)) + ((dst_negative_scale_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum))) + (((dst_negative_code_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)) * S ((dst_negative_code_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)) + ((dst_negative_scale_scalar_step_Gsum) + (dst_negative_scale_scalar_step_Gsum)))))) /\ (((exists fs_u_dst_scalar_step_Gsumpositive fs_v_dst_scalar_step_Gsumpositive. ((((exists fs_h_dst_scalar_step_Gsumpositive_body_start. fs_h_dst_scalar_step_Gsumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_scalar_step_Gsumpositive)) /\ exists fs_q_dst_scalar_step_Gsumpositive_body_start. fs_u_dst_scalar_step_Gsumpositive = fs_q_dst_scalar_step_Gsumpositive_body_start * S ((S (0)) * fs_v_dst_scalar_step_Gsumpositive) + (0))) /\ ((((exists fs_h_dst_scalar_step_Gsumpositive_body_terminal. fs_h_dst_scalar_step_Gsumpositive_body_terminal + S (dst_positive_sum_scalar_step_Gsum) = S ((S (l)) * fs_v_dst_scalar_step_Gsumpositive)) /\ exists fs_q_dst_scalar_step_Gsumpositive_body_terminal. fs_u_dst_scalar_step_Gsumpositive = fs_q_dst_scalar_step_Gsumpositive_body_terminal * S ((S (l)) * fs_v_dst_scalar_step_Gsumpositive) + (dst_positive_sum_scalar_step_Gsum))) /\ forall fs_i_dst_scalar_step_Gsumpositive_body_steps. (exists fs_lt_dst_scalar_step_Gsumpositive_body_steps_bound. fs_lt_dst_scalar_step_Gsumpositive_body_steps_bound + S fs_i_dst_scalar_step_Gsumpositive_body_steps = l) -> exists fs_a_dst_scalar_step_Gsumpositive_body_steps fs_r_dst_scalar_step_Gsumpositive_body_steps fs_s_dst_scalar_step_Gsumpositive_body_steps. ((((exists fs_h_dst_scalar_step_Gsumpositive_body_steps_summand. fs_h_dst_scalar_step_Gsumpositive_body_steps_summand + S (fs_a_dst_scalar_step_Gsumpositive_body_steps) = S ((S (fs_i_dst_scalar_step_Gsumpositive_body_steps)) * dst_positive_scale_scalar_step_Gsum)) /\ exists fs_q_dst_scalar_step_Gsumpositive_body_steps_summand. dst_positive_code_scalar_step_Gsum = fs_q_dst_scalar_step_Gsumpositive_body_steps_summand * S ((S (fs_i_dst_scalar_step_Gsumpositive_body_steps)) * dst_positive_scale_scalar_step_Gsum) + (fs_a_dst_scalar_step_Gsumpositive_body_steps))) /\ ((((exists fs_h_dst_scalar_step_Gsumpositive_body_steps_partial. fs_h_dst_scalar_step_Gsumpositive_body_steps_partial + S (fs_r_dst_scalar_step_Gsumpositive_body_steps) = S ((S (fs_i_dst_scalar_step_Gsumpositive_body_steps)) * fs_v_dst_scalar_step_Gsumpositive)) /\ exists fs_q_dst_scalar_step_Gsumpositive_body_steps_partial. fs_u_dst_scalar_step_Gsumpositive = fs_q_dst_scalar_step_Gsumpositive_body_steps_partial * S ((S (fs_i_dst_scalar_step_Gsumpositive_body_steps)) * fs_v_dst_scalar_step_Gsumpositive) + (fs_r_dst_scalar_step_Gsumpositive_body_steps))) /\ ((((exists fs_h_dst_scalar_step_Gsumpositive_body_steps_successor. fs_h_dst_scalar_step_Gsumpositive_body_steps_successor + S (fs_s_dst_scalar_step_Gsumpositive_body_steps) = S ((S (S fs_i_dst_scalar_step_Gsumpositive_body_steps)) * fs_v_dst_scalar_step_Gsumpositive)) /\ exists fs_q_dst_scalar_step_Gsumpositive_body_steps_successor. fs_u_dst_scalar_step_Gsumpositive = fs_q_dst_scalar_step_Gsumpositive_body_steps_successor * S ((S (S fs_i_dst_scalar_step_Gsumpositive_body_steps)) * fs_v_dst_scalar_step_Gsumpositive) + (fs_s_dst_scalar_step_Gsumpositive_body_steps))) /\ fs_s_dst_scalar_step_Gsumpositive_body_steps = fs_r_dst_scalar_step_Gsumpositive_body_steps + fs_a_dst_scalar_step_Gsumpositive_body_steps)))))) /\ (((exists fs_u_dst_scalar_step_Gsumnegative fs_v_dst_scalar_step_Gsumnegative. ((((exists fs_h_dst_scalar_step_Gsumnegative_body_start. fs_h_dst_scalar_step_Gsumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_scalar_step_Gsumnegative)) /\ exists fs_q_dst_scalar_step_Gsumnegative_body_start. fs_u_dst_scalar_step_Gsumnegative = fs_q_dst_scalar_step_Gsumnegative_body_start * S ((S (0)) * fs_v_dst_scalar_step_Gsumnegative) + (0))) /\ ((((exists fs_h_dst_scalar_step_Gsumnegative_body_terminal. fs_h_dst_scalar_step_Gsumnegative_body_terminal + S (dst_negative_sum_scalar_step_Gsum) = S ((S (l)) * fs_v_dst_scalar_step_Gsumnegative)) /\ exists fs_q_dst_scalar_step_Gsumnegative_body_terminal. fs_u_dst_scalar_step_Gsumnegative = fs_q_dst_scalar_step_Gsumnegative_body_terminal * S ((S (l)) * fs_v_dst_scalar_step_Gsumnegative) + (dst_negative_sum_scalar_step_Gsum))) /\ forall fs_i_dst_scalar_step_Gsumnegative_body_steps. (exists fs_lt_dst_scalar_step_Gsumnegative_body_steps_bound. fs_lt_dst_scalar_step_Gsumnegative_body_steps_bound + S fs_i_dst_scalar_step_Gsumnegative_body_steps = l) -> exists fs_a_dst_scalar_step_Gsumnegative_body_steps fs_r_dst_scalar_step_Gsumnegative_body_steps fs_s_dst_scalar_step_Gsumnegative_body_steps. ((((exists fs_h_dst_scalar_step_Gsumnegative_body_steps_summand. fs_h_dst_scalar_step_Gsumnegative_body_steps_summand + S (fs_a_dst_scalar_step_Gsumnegative_body_steps) = S ((S (fs_i_dst_scalar_step_Gsumnegative_body_steps)) * dst_negative_scale_scalar_step_Gsum)) /\ exists fs_q_dst_scalar_step_Gsumnegative_body_steps_summand. dst_negative_code_scalar_step_Gsum = fs_q_dst_scalar_step_Gsumnegative_body_steps_summand * S ((S (fs_i_dst_scalar_step_Gsumnegative_body_steps)) * dst_negative_scale_scalar_step_Gsum) + (fs_a_dst_scalar_step_Gsumnegative_body_steps))) /\ ((((exists fs_h_dst_scalar_step_Gsumnegative_body_steps_partial. fs_h_dst_scalar_step_Gsumnegative_body_steps_partial + S (fs_r_dst_scalar_step_Gsumnegative_body_steps) = S ((S (fs_i_dst_scalar_step_Gsumnegative_body_steps)) * fs_v_dst_scalar_step_Gsumnegative)) /\ exists fs_q_dst_scalar_step_Gsumnegative_body_steps_partial. fs_u_dst_scalar_step_Gsumnegative = fs_q_dst_scalar_step_Gsumnegative_body_steps_partial * S ((S (fs_i_dst_scalar_step_Gsumnegative_body_steps)) * fs_v_dst_scalar_step_Gsumnegative) + (fs_r_dst_scalar_step_Gsumnegative_body_steps))) /\ ((((exists fs_h_dst_scalar_step_Gsumnegative_body_steps_successor. fs_h_dst_scalar_step_Gsumnegative_body_steps_successor + S (fs_s_dst_scalar_step_Gsumnegative_body_steps) = S ((S (S fs_i_dst_scalar_step_Gsumnegative_body_steps)) * fs_v_dst_scalar_step_Gsumnegative)) /\ exists fs_q_dst_scalar_step_Gsumnegative_body_steps_successor. fs_u_dst_scalar_step_Gsumnegative = fs_q_dst_scalar_step_Gsumnegative_body_steps_successor * S ((S (S fs_i_dst_scalar_step_Gsumnegative_body_steps)) * fs_v_dst_scalar_step_Gsumnegative) + (fs_s_dst_scalar_step_Gsumnegative_body_steps))) /\ fs_s_dst_scalar_step_Gsumnegative_body_steps = fs_r_dst_scalar_step_Gsumnegative_body_steps + fs_a_dst_scalar_step_Gsumnegative_body_steps)))))) /\ (exists ge_balance_positive_scalar_step_Gsumresult ge_balance_negative_scalar_step_Gsumresult. (((((ssl_prefix_scalar_step_G) = 2 * (ge_balance_positive_scalar_step_Gsumresult) /\ (ge_balance_negative_scalar_step_Gsumresult) = 0) \/ exists ge_signed_half_scalar_step_Gsumresultdecode. (((ssl_prefix_scalar_step_G) = 2 * ge_signed_half_scalar_step_Gsumresultdecode + 1 /\ (ge_balance_positive_scalar_step_Gsumresult) = 0) /\ (ge_balance_negative_scalar_step_Gsumresult) = S ge_signed_half_scalar_step_Gsumresultdecode))) /\ ((dst_positive_sum_scalar_step_Gsum) + ge_balance_negative_scalar_step_Gsumresult = (dst_negative_sum_scalar_step_Gsum) + ge_balance_positive_scalar_step_Gsumresult))))))))) /\ (((exists dst_positive_code_scalar_step_Gentry dst_positive_scale_scalar_step_Gentry dst_negative_code_scalar_step_Gentry dst_negative_scale_scalar_step_Gentry dst_positive_scalar_step_Gentry dst_negative_scalar_step_Gentry. (((G) = (((((dst_positive_code_scalar_step_Gentry) + (dst_positive_scale_scalar_step_Gentry)) * S ((dst_positive_code_scalar_step_Gentry) + (dst_positive_scale_scalar_step_Gentry)) + ((dst_positive_scale_scalar_step_Gentry) + (dst_positive_scale_scalar_step_Gentry))) + (((dst_negative_code_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)) * S ((dst_negative_code_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)) + ((dst_negative_scale_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)))) * S ((((dst_positive_code_scalar_step_Gentry) + (dst_positive_scale_scalar_step_Gentry)) * S ((dst_positive_code_scalar_step_Gentry) + (dst_positive_scale_scalar_step_Gentry)) + ((dst_positive_scale_scalar_step_Gentry) + (dst_positive_scale_scalar_step_Gentry))) + (((dst_negative_code_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)) * S ((dst_negative_code_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)) + ((dst_negative_scale_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)))) + ((((dst_negative_code_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)) * S ((dst_negative_code_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)) + ((dst_negative_scale_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry))) + (((dst_negative_code_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)) * S ((dst_negative_code_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)) + ((dst_negative_scale_scalar_step_Gentry) + (dst_negative_scale_scalar_step_Gentry)))))) /\ (((((exists ff_h_pvs_scalar_step_Gentrypositive. ff_h_pvs_scalar_step_Gentrypositive + S (dst_positive_scalar_step_Gentry) = S ((S (l)) * dst_positive_scale_scalar_step_Gentry)) /\ exists ff_q_pvs_scalar_step_Gentrypositive. dst_positive_code_scalar_step_Gentry = ff_q_pvs_scalar_step_Gentrypositive * S ((S (l)) * dst_positive_scale_scalar_step_Gentry) + (dst_positive_scalar_step_Gentry))) /\ (((((exists ff_h_pvs_scalar_step_Gentrynegative. ff_h_pvs_scalar_step_Gentrynegative + S (dst_negative_scalar_step_Gentry) = S ((S (l)) * dst_negative_scale_scalar_step_Gentry)) /\ exists ff_q_pvs_scalar_step_Gentrynegative. dst_negative_code_scalar_step_Gentry = ff_q_pvs_scalar_step_Gentrynegative * S ((S (l)) * dst_negative_scale_scalar_step_Gentry) + (dst_negative_scalar_step_Gentry))) /\ (exists ge_balance_positive_scalar_step_Gentryvalue ge_balance_negative_scalar_step_Gentryvalue. (((((ssl_entry_scalar_step_G) = 2 * (ge_balance_positive_scalar_step_Gentryvalue) /\ (ge_balance_negative_scalar_step_Gentryvalue) = 0) \/ exists ge_signed_half_scalar_step_Gentryvaluedecode. (((ssl_entry_scalar_step_G) = 2 * ge_signed_half_scalar_step_Gentryvaluedecode + 1 /\ (ge_balance_positive_scalar_step_Gentryvalue) = 0) /\ (ge_balance_negative_scalar_step_Gentryvalue) = S ge_signed_half_scalar_step_Gentryvaluedecode))) /\ ((dst_positive_scalar_step_Gentry) + ge_balance_negative_scalar_step_Gentryvalue = (dst_negative_scalar_step_Gentry) + ge_balance_positive_scalar_step_Gentryvalue))))))))) /\ (exists dsa_ap_scalar_step_Gaddition dsa_an_scalar_step_Gaddition dsa_bp_scalar_step_Gaddition dsa_bn_scalar_step_Gaddition dsa_cp_scalar_step_Gaddition dsa_cn_scalar_step_Gaddition. (((((ssl_prefix_scalar_step_G) = 2 * (dsa_ap_scalar_step_Gaddition) /\ (dsa_an_scalar_step_Gaddition) = 0) \/ exists ge_signed_half_scalar_step_Gadditionleft. (((ssl_prefix_scalar_step_G) = 2 * ge_signed_half_scalar_step_Gadditionleft + 1 /\ (dsa_ap_scalar_step_Gaddition) = 0) /\ (dsa_an_scalar_step_Gaddition) = S ge_signed_half_scalar_step_Gadditionleft))) /\ ((((((ssl_entry_scalar_step_G) = 2 * (dsa_bp_scalar_step_Gaddition) /\ (dsa_bn_scalar_step_Gaddition) = 0) \/ exists ge_signed_half_scalar_step_Gadditionright. (((ssl_entry_scalar_step_G) = 2 * ge_signed_half_scalar_step_Gadditionright + 1 /\ (dsa_bp_scalar_step_Gaddition) = 0) /\ (dsa_bn_scalar_step_Gaddition) = S ge_signed_half_scalar_step_Gadditionright))) /\ ((((((c) = 2 * (dsa_cp_scalar_step_Gaddition) /\ (dsa_cn_scalar_step_Gaddition) = 0) \/ exists ge_signed_half_scalar_step_Gadditionoutput. (((c) = 2 * ge_signed_half_scalar_step_Gadditionoutput + 1 /\ (dsa_cp_scalar_step_Gaddition) = 0) /\ (dsa_cn_scalar_step_Gaddition) = S ge_signed_half_scalar_step_Gadditionoutput))) /\ ((dsa_ap_scalar_step_Gaddition + dsa_bp_scalar_step_Gaddition) + dsa_cn_scalar_step_Gaddition = (dsa_an_scalar_step_Gaddition + dsa_bn_scalar_step_Gaddition) + dsa_cp_scalar_step_Gaddition)))))))))) - 0045
specialize divisor_signed_sum_successor_decompose (G) - 0046
specialize divisor_signed_sum_successor_decompose (l) - 0047
specialize divisor_signed_sum_successor_decompose (c) - 0048
apply divisor_signed_sum_successor_decompose - 0049
exact hG - 0050
cases hdG - 0051
cases hdG_witness - 0052
cases hdG_witness_witness - 0053
cases hdG_witness_witness_right - 0054
have hp : exists sto_ap_scalar_prefix sto_an_scalar_prefix sto_bp_scalar_prefix sto_bn_scalar_prefix sto_cp_scalar_prefix sto_cn_scalar_prefix. (((((a) = 2 * (sto_ap_scalar_prefix) /\ (sto_an_scalar_prefix) = 0) \/ exists ge_signed_half_scalar_prefixleft. (((a) = 2 * ge_signed_half_scalar_prefixleft + 1 /\ (sto_ap_scalar_prefix) = 0) /\ (sto_an_scalar_prefix) = S ge_signed_half_scalar_prefixleft))) /\ ((((((x) = 2 * (sto_bp_scalar_prefix) /\ (sto_bn_scalar_prefix) = 0) \/ exists ge_signed_half_scalar_prefixright. (((x) = 2 * ge_signed_half_scalar_prefixright + 1 /\ (sto_bp_scalar_prefix) = 0) /\ (sto_bn_scalar_prefix) = S ge_signed_half_scalar_prefixright))) /\ ((((((x2) = 2 * (sto_cp_scalar_prefix) /\ (sto_cn_scalar_prefix) = 0) \/ exists ge_signed_half_scalar_prefixoutput. (((x2) = 2 * ge_signed_half_scalar_prefixoutput + 1 /\ (sto_cp_scalar_prefix) = 0) /\ (sto_cn_scalar_prefix) = S ge_signed_half_scalar_prefixoutput))) /\ ((sto_ap_scalar_prefix * sto_bp_scalar_prefix + sto_an_scalar_prefix * sto_bn_scalar_prefix) + sto_cn_scalar_prefix = (sto_ap_scalar_prefix * sto_bn_scalar_prefix + sto_an_scalar_prefix * sto_bp_scalar_prefix) + sto_cp_scalar_prefix)))))) - 0055
specialize IH (a) - 0056
specialize IH (F) - 0057
specialize IH (G) - 0058
specialize IH (x) - 0059
specialize IH (x2) - 0060
apply IH - 0061
specialize signed_table_scalar_restrict (a) - 0062
specialize signed_table_scalar_restrict (F) - 0063
specialize signed_table_scalar_restrict (G) - 0064
specialize signed_table_scalar_restrict (l) - 0065
apply signed_table_scalar_restrict - 0066
exact hpoint - 0067
exact hdF_witness_witness_left - 0068
exact hdG_witness_witness_left - 0069
have he : exists sto_ap_scalar_last sto_an_scalar_last sto_bp_scalar_last sto_bn_scalar_last sto_cp_scalar_last sto_cn_scalar_last. (((((a) = 2 * (sto_ap_scalar_last) /\ (sto_an_scalar_last) = 0) \/ exists ge_signed_half_scalar_lastleft. (((a) = 2 * ge_signed_half_scalar_lastleft + 1 /\ (sto_ap_scalar_last) = 0) /\ (sto_an_scalar_last) = S ge_signed_half_scalar_lastleft))) /\ ((((((x1) = 2 * (sto_bp_scalar_last) /\ (sto_bn_scalar_last) = 0) \/ exists ge_signed_half_scalar_lastright. (((x1) = 2 * ge_signed_half_scalar_lastright + 1 /\ (sto_bp_scalar_last) = 0) /\ (sto_bn_scalar_last) = S ge_signed_half_scalar_lastright))) /\ ((((((x3) = 2 * (sto_cp_scalar_last) /\ (sto_cn_scalar_last) = 0) \/ exists ge_signed_half_scalar_lastoutput. (((x3) = 2 * ge_signed_half_scalar_lastoutput + 1 /\ (sto_cp_scalar_last) = 0) /\ (sto_cn_scalar_last) = S ge_signed_half_scalar_lastoutput))) /\ ((sto_ap_scalar_last * sto_bp_scalar_last + sto_an_scalar_last * sto_bn_scalar_last) + sto_cn_scalar_last = (sto_ap_scalar_last * sto_bn_scalar_last + sto_an_scalar_last * sto_bp_scalar_last) + sto_cp_scalar_last)))))) - 0070
specialize signed_table_scalar_lookup (a) - 0071
specialize signed_table_scalar_lookup (F) - 0072
specialize signed_table_scalar_lookup (G) - 0073
specialize signed_table_scalar_lookup (S l) - 0074
specialize signed_table_scalar_lookup (l) - 0075
specialize signed_table_scalar_lookup (x1) - 0076
specialize signed_table_scalar_lookup (x3) - 0077
apply signed_table_scalar_lookup - 0078
exact hpoint - 0079
specialize le_refl (S l) - 0080
apply le_refl - 0081
exact hdF_witness_witness_right_left - 0082
exact hdG_witness_witness_right_left - 0083
specialize signed_table_scalar_add_intro (a) - 0084
specialize signed_table_scalar_add_intro (x) - 0085
specialize signed_table_scalar_add_intro (x1) - 0086
specialize signed_table_scalar_add_intro (b) - 0087
specialize signed_table_scalar_add_intro (x2) - 0088
specialize signed_table_scalar_add_intro (x3) - 0089
specialize signed_table_scalar_add_intro (c) - 0090
apply signed_table_scalar_add_intro - 0091
exact hdF_witness_witness_right_right - 0092
exact hp - 0093
exact he - 0094
exact hdG_witness_witness_right_right