DC000A

dirichlet_convolution_prefix_exists

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

Ordinary prefix induction constructs every finite summand table; its length is independent of n, and no finite choice principle is assumed.

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

Exact expanded first-order arithmetic statement

forall F G n l. (exists dst_positive_code_exists_left dst_positive_scale_exists_left dst_negative_code_exists_left dst_negative_scale_exists_left. (((F) = (((((dst_positive_code_exists_left) + (dst_positive_scale_exists_left)) * S ((dst_positive_code_exists_left) + (dst_positive_scale_exists_left)) + ((dst_positive_scale_exists_left) + (dst_positive_scale_exists_left))) + (((dst_negative_code_exists_left) + (dst_negative_scale_exists_left)) * S ((dst_negative_code_exists_left) + (dst_negative_scale_exists_left)) + ((dst_negative_scale_exists_left) + (dst_negative_scale_exists_left)))) * S ((((dst_positive_code_exists_left) + (dst_positive_scale_exists_left)) * S ((dst_positive_code_exists_left) + (dst_positive_scale_exists_left)) + ((dst_positive_scale_exists_left) + (dst_positive_scale_exists_left))) + (((dst_negative_code_exists_left) + (dst_negative_scale_exists_left)) * S ((dst_negative_code_exists_left) + (dst_negative_scale_exists_left)) + ((dst_negative_scale_exists_left) + (dst_negative_scale_exists_left)))) + ((((dst_negative_code_exists_left) + (dst_negative_scale_exists_left)) * S ((dst_negative_code_exists_left) + (dst_negative_scale_exists_left)) + ((dst_negative_scale_exists_left) + (dst_negative_scale_exists_left))) + (((dst_negative_code_exists_left) + (dst_negative_scale_exists_left)) * S ((dst_negative_code_exists_left) + (dst_negative_scale_exists_left)) + ((dst_negative_scale_exists_left) + (dst_negative_scale_exists_left)))))) /\ (forall dst_index_exists_left. (exists pvs_le_gap_exists_leftdomain. pvs_le_gap_exists_leftdomain + (dst_index_exists_left) = (0)) -> exists dst_positive_exists_left dst_negative_exists_left dst_value_exists_left. ((((exists ff_h_pvs_exists_leftentrypositive. ff_h_pvs_exists_leftentrypositive + S (dst_positive_exists_left) = S ((S (dst_index_exists_left)) * dst_positive_scale_exists_left)) /\ exists ff_q_pvs_exists_leftentrypositive. dst_positive_code_exists_left = ff_q_pvs_exists_leftentrypositive * S ((S (dst_index_exists_left)) * dst_positive_scale_exists_left) + (dst_positive_exists_left))) /\ (((((exists ff_h_pvs_exists_leftentrynegative. ff_h_pvs_exists_leftentrynegative + S (dst_negative_exists_left) = S ((S (dst_index_exists_left)) * dst_negative_scale_exists_left)) /\ exists ff_q_pvs_exists_leftentrynegative. dst_negative_code_exists_left = ff_q_pvs_exists_leftentrynegative * S ((S (dst_index_exists_left)) * dst_negative_scale_exists_left) + (dst_negative_exists_left))) /\ (exists ge_balance_positive_exists_leftentryvalue ge_balance_negative_exists_leftentryvalue. (((((dst_value_exists_left) = 2 * (ge_balance_positive_exists_leftentryvalue) /\ (ge_balance_negative_exists_leftentryvalue) = 0) \/ exists ge_signed_half_exists_leftentryvaluedecode. (((dst_value_exists_left) = 2 * ge_signed_half_exists_leftentryvaluedecode + 1 /\ (ge_balance_positive_exists_leftentryvalue) = 0) /\ (ge_balance_negative_exists_leftentryvalue) = S ge_signed_half_exists_leftentryvaluedecode))) /\ ((dst_positive_exists_left) + ge_balance_negative_exists_leftentryvalue = (dst_negative_exists_left) + ge_balance_positive_exists_leftentryvalue))))))))) -> (exists dst_positive_code_exists_right dst_positive_scale_exists_right dst_negative_code_exists_right dst_negative_scale_exists_right. (((G) = (((((dst_positive_code_exists_right) + (dst_positive_scale_exists_right)) * S ((dst_positive_code_exists_right) + (dst_positive_scale_exists_right)) + ((dst_positive_scale_exists_right) + (dst_positive_scale_exists_right))) + (((dst_negative_code_exists_right) + (dst_negative_scale_exists_right)) * S ((dst_negative_code_exists_right) + (dst_negative_scale_exists_right)) + ((dst_negative_scale_exists_right) + (dst_negative_scale_exists_right)))) * S ((((dst_positive_code_exists_right) + (dst_positive_scale_exists_right)) * S ((dst_positive_code_exists_right) + (dst_positive_scale_exists_right)) + ((dst_positive_scale_exists_right) + (dst_positive_scale_exists_right))) + (((dst_negative_code_exists_right) + (dst_negative_scale_exists_right)) * S ((dst_negative_code_exists_right) + (dst_negative_scale_exists_right)) + ((dst_negative_scale_exists_right) + (dst_negative_scale_exists_right)))) + ((((dst_negative_code_exists_right) + (dst_negative_scale_exists_right)) * S ((dst_negative_code_exists_right) + (dst_negative_scale_exists_right)) + ((dst_negative_scale_exists_right) + (dst_negative_scale_exists_right))) + (((dst_negative_code_exists_right) + (dst_negative_scale_exists_right)) * S ((dst_negative_code_exists_right) + (dst_negative_scale_exists_right)) + ((dst_negative_scale_exists_right) + (dst_negative_scale_exists_right)))))) /\ (forall dst_index_exists_right. (exists pvs_le_gap_exists_rightdomain. pvs_le_gap_exists_rightdomain + (dst_index_exists_right) = (0)) -> exists dst_positive_exists_right dst_negative_exists_right dst_value_exists_right. ((((exists ff_h_pvs_exists_rightentrypositive. ff_h_pvs_exists_rightentrypositive + S (dst_positive_exists_right) = S ((S (dst_index_exists_right)) * dst_positive_scale_exists_right)) /\ exists ff_q_pvs_exists_rightentrypositive. dst_positive_code_exists_right = ff_q_pvs_exists_rightentrypositive * S ((S (dst_index_exists_right)) * dst_positive_scale_exists_right) + (dst_positive_exists_right))) /\ (((((exists ff_h_pvs_exists_rightentrynegative. ff_h_pvs_exists_rightentrynegative + S (dst_negative_exists_right) = S ((S (dst_index_exists_right)) * dst_negative_scale_exists_right)) /\ exists ff_q_pvs_exists_rightentrynegative. dst_negative_code_exists_right = ff_q_pvs_exists_rightentrynegative * S ((S (dst_index_exists_right)) * dst_negative_scale_exists_right) + (dst_negative_exists_right))) /\ (exists ge_balance_positive_exists_rightentryvalue ge_balance_negative_exists_rightentryvalue. (((((dst_value_exists_right) = 2 * (ge_balance_positive_exists_rightentryvalue) /\ (ge_balance_negative_exists_rightentryvalue) = 0) \/ exists ge_signed_half_exists_rightentryvaluedecode. (((dst_value_exists_right) = 2 * ge_signed_half_exists_rightentryvaluedecode + 1 /\ (ge_balance_positive_exists_rightentryvalue) = 0) /\ (ge_balance_negative_exists_rightentryvalue) = S ge_signed_half_exists_rightentryvaluedecode))) /\ ((dst_positive_exists_right) + ge_balance_negative_exists_rightentryvalue = (dst_negative_exists_right) + ge_balance_positive_exists_rightentryvalue))))))))) -> exists M. (((exists dst_positive_code_exists_resulttable dst_positive_scale_exists_resulttable dst_negative_code_exists_resulttable dst_negative_scale_exists_resulttable. (((M) = (((((dst_positive_code_exists_resulttable) + (dst_positive_scale_exists_resulttable)) * S ((dst_positive_code_exists_resulttable) + (dst_positive_scale_exists_resulttable)) + ((dst_positive_scale_exists_resulttable) + (dst_positive_scale_exists_resulttable))) + (((dst_negative_code_exists_resulttable) + (dst_negative_scale_exists_resulttable)) * S ((dst_negative_code_exists_resulttable) + (dst_negative_scale_exists_resulttable)) + ((dst_negative_scale_exists_resulttable) + (dst_negative_scale_exists_resulttable)))) * S ((((dst_positive_code_exists_resulttable) + (dst_positive_scale_exists_resulttable)) * S ((dst_positive_code_exists_resulttable) + (dst_positive_scale_exists_resulttable)) + ((dst_positive_scale_exists_resulttable) + (dst_positive_scale_exists_resulttable))) + (((dst_negative_code_exists_resulttable) + (dst_negative_scale_exists_resulttable)) * S ((dst_negative_code_exists_resulttable) + (dst_negative_scale_exists_resulttable)) + ((dst_negative_scale_exists_resulttable) + (dst_negative_scale_exists_resulttable)))) + ((((dst_negative_code_exists_resulttable) + (dst_negative_scale_exists_resulttable)) * S ((dst_negative_code_exists_resulttable) + (dst_negative_scale_exists_resulttable)) + ((dst_negative_scale_exists_resulttable) + (dst_negative_scale_exists_resulttable))) + (((dst_negative_code_exists_resulttable) + (dst_negative_scale_exists_resulttable)) * S ((dst_negative_code_exists_resulttable) + (dst_negative_scale_exists_resulttable)) + ((dst_negative_scale_exists_resulttable) + (dst_negative_scale_exists_resulttable)))))) /\ (forall dst_index_exists_resulttable. (exists pvs_le_gap_exists_resulttabledomain. pvs_le_gap_exists_resulttabledomain + (dst_index_exists_resulttable) = (l)) -> exists dst_positive_exists_resulttable dst_negative_exists_resulttable dst_value_exists_resulttable. ((((exists ff_h_pvs_exists_resulttableentrypositive. ff_h_pvs_exists_resulttableentrypositive + S (dst_positive_exists_resulttable) = S ((S (dst_index_exists_resulttable)) * dst_positive_scale_exists_resulttable)) /\ exists ff_q_pvs_exists_resulttableentrypositive. dst_positive_code_exists_resulttable = ff_q_pvs_exists_resulttableentrypositive * S ((S (dst_index_exists_resulttable)) * dst_positive_scale_exists_resulttable) + (dst_positive_exists_resulttable))) /\ (((((exists ff_h_pvs_exists_resulttableentrynegative. ff_h_pvs_exists_resulttableentrynegative + S (dst_negative_exists_resulttable) = S ((S (dst_index_exists_resulttable)) * dst_negative_scale_exists_resulttable)) /\ exists ff_q_pvs_exists_resulttableentrynegative. dst_negative_code_exists_resulttable = ff_q_pvs_exists_resulttableentrynegative * S ((S (dst_index_exists_resulttable)) * dst_negative_scale_exists_resulttable) + (dst_negative_exists_resulttable))) /\ (exists ge_balance_positive_exists_resulttableentryvalue ge_balance_negative_exists_resulttableentryvalue. (((((dst_value_exists_resulttable) = 2 * (ge_balance_positive_exists_resulttableentryvalue) /\ (ge_balance_negative_exists_resulttableentryvalue) = 0) \/ exists ge_signed_half_exists_resulttableentryvaluedecode. (((dst_value_exists_resulttable) = 2 * ge_signed_half_exists_resulttableentryvaluedecode + 1 /\ (ge_balance_positive_exists_resulttableentryvalue) = 0) /\ (ge_balance_negative_exists_resulttableentryvalue) = S ge_signed_half_exists_resulttableentryvaluedecode))) /\ ((dst_positive_exists_resulttable) + ge_balance_negative_exists_resulttableentryvalue = (dst_negative_exists_resulttable) + ge_balance_positive_exists_resulttableentryvalue))))))))) /\ (forall dc_index_exists_result dc_value_exists_result. (exists pvs_le_gap_exists_resultdomain. pvs_le_gap_exists_resultdomain + (dc_index_exists_result) = (l)) -> (exists dst_positive_code_exists_resultlookup dst_positive_scale_exists_resultlookup dst_negative_code_exists_resultlookup dst_negative_scale_exists_resultlookup dst_positive_exists_resultlookup dst_negative_exists_resultlookup. (((M) = (((((dst_positive_code_exists_resultlookup) + (dst_positive_scale_exists_resultlookup)) * S ((dst_positive_code_exists_resultlookup) + (dst_positive_scale_exists_resultlookup)) + ((dst_positive_scale_exists_resultlookup) + (dst_positive_scale_exists_resultlookup))) + (((dst_negative_code_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)) * S ((dst_negative_code_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)) + ((dst_negative_scale_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)))) * S ((((dst_positive_code_exists_resultlookup) + (dst_positive_scale_exists_resultlookup)) * S ((dst_positive_code_exists_resultlookup) + (dst_positive_scale_exists_resultlookup)) + ((dst_positive_scale_exists_resultlookup) + (dst_positive_scale_exists_resultlookup))) + (((dst_negative_code_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)) * S ((dst_negative_code_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)) + ((dst_negative_scale_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)))) + ((((dst_negative_code_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)) * S ((dst_negative_code_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)) + ((dst_negative_scale_exists_resultlookup) + (dst_negative_scale_exists_resultlookup))) + (((dst_negative_code_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)) * S ((dst_negative_code_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)) + ((dst_negative_scale_exists_resultlookup) + (dst_negative_scale_exists_resultlookup)))))) /\ (((((exists ff_h_pvs_exists_resultlookuppositive. ff_h_pvs_exists_resultlookuppositive + S (dst_positive_exists_resultlookup) = S ((S (dc_index_exists_result)) * dst_positive_scale_exists_resultlookup)) /\ exists ff_q_pvs_exists_resultlookuppositive. dst_positive_code_exists_resultlookup = ff_q_pvs_exists_resultlookuppositive * S ((S (dc_index_exists_result)) * dst_positive_scale_exists_resultlookup) + (dst_positive_exists_resultlookup))) /\ (((((exists ff_h_pvs_exists_resultlookupnegative. ff_h_pvs_exists_resultlookupnegative + S (dst_negative_exists_resultlookup) = S ((S (dc_index_exists_result)) * dst_negative_scale_exists_resultlookup)) /\ exists ff_q_pvs_exists_resultlookupnegative. dst_negative_code_exists_resultlookup = ff_q_pvs_exists_resultlookupnegative * S ((S (dc_index_exists_result)) * dst_negative_scale_exists_resultlookup) + (dst_negative_exists_resultlookup))) /\ (exists ge_balance_positive_exists_resultlookupvalue ge_balance_negative_exists_resultlookupvalue. (((((dc_value_exists_result) = 2 * (ge_balance_positive_exists_resultlookupvalue) /\ (ge_balance_negative_exists_resultlookupvalue) = 0) \/ exists ge_signed_half_exists_resultlookupvaluedecode. (((dc_value_exists_result) = 2 * ge_signed_half_exists_resultlookupvaluedecode + 1 /\ (ge_balance_positive_exists_resultlookupvalue) = 0) /\ (ge_balance_negative_exists_resultlookupvalue) = S ge_signed_half_exists_resultlookupvaluedecode))) /\ ((dst_positive_exists_resultlookup) + ge_balance_negative_exists_resultlookupvalue = (dst_negative_exists_resultlookup) + ge_balance_positive_exists_resultlookupvalue))))))))) -> ((((~((dc_index_exists_result)=0)) /\ (exists dc_quotient_exists_resultentry dc_left_exists_resultentry dc_right_exists_resultentry. (((n)=(dc_index_exists_result)*dc_quotient_exists_resultentry) /\ (((exists dst_positive_code_exists_resultentryleft dst_positive_scale_exists_resultentryleft dst_negative_code_exists_resultentryleft dst_negative_scale_exists_resultentryleft dst_positive_exists_resultentryleft dst_negative_exists_resultentryleft. (((F) = (((((dst_positive_code_exists_resultentryleft) + (dst_positive_scale_exists_resultentryleft)) * S ((dst_positive_code_exists_resultentryleft) + (dst_positive_scale_exists_resultentryleft)) + ((dst_positive_scale_exists_resultentryleft) + (dst_positive_scale_exists_resultentryleft))) + (((dst_negative_code_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)) * S ((dst_negative_code_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)) + ((dst_negative_scale_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)))) * S ((((dst_positive_code_exists_resultentryleft) + (dst_positive_scale_exists_resultentryleft)) * S ((dst_positive_code_exists_resultentryleft) + (dst_positive_scale_exists_resultentryleft)) + ((dst_positive_scale_exists_resultentryleft) + (dst_positive_scale_exists_resultentryleft))) + (((dst_negative_code_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)) * S ((dst_negative_code_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)) + ((dst_negative_scale_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)))) + ((((dst_negative_code_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)) * S ((dst_negative_code_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)) + ((dst_negative_scale_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft))) + (((dst_negative_code_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)) * S ((dst_negative_code_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)) + ((dst_negative_scale_exists_resultentryleft) + (dst_negative_scale_exists_resultentryleft)))))) /\ (((((exists ff_h_pvs_exists_resultentryleftpositive. ff_h_pvs_exists_resultentryleftpositive + S (dst_positive_exists_resultentryleft) = S ((S (dc_index_exists_result)) * dst_positive_scale_exists_resultentryleft)) /\ exists ff_q_pvs_exists_resultentryleftpositive. dst_positive_code_exists_resultentryleft = ff_q_pvs_exists_resultentryleftpositive * S ((S (dc_index_exists_result)) * dst_positive_scale_exists_resultentryleft) + (dst_positive_exists_resultentryleft))) /\ (((((exists ff_h_pvs_exists_resultentryleftnegative. ff_h_pvs_exists_resultentryleftnegative + S (dst_negative_exists_resultentryleft) = S ((S (dc_index_exists_result)) * dst_negative_scale_exists_resultentryleft)) /\ exists ff_q_pvs_exists_resultentryleftnegative. dst_negative_code_exists_resultentryleft = ff_q_pvs_exists_resultentryleftnegative * S ((S (dc_index_exists_result)) * dst_negative_scale_exists_resultentryleft) + (dst_negative_exists_resultentryleft))) /\ (exists ge_balance_positive_exists_resultentryleftvalue ge_balance_negative_exists_resultentryleftvalue. (((((dc_left_exists_resultentry) = 2 * (ge_balance_positive_exists_resultentryleftvalue) /\ (ge_balance_negative_exists_resultentryleftvalue) = 0) \/ exists ge_signed_half_exists_resultentryleftvaluedecode. (((dc_left_exists_resultentry) = 2 * ge_signed_half_exists_resultentryleftvaluedecode + 1 /\ (ge_balance_positive_exists_resultentryleftvalue) = 0) /\ (ge_balance_negative_exists_resultentryleftvalue) = S ge_signed_half_exists_resultentryleftvaluedecode))) /\ ((dst_positive_exists_resultentryleft) + ge_balance_negative_exists_resultentryleftvalue = (dst_negative_exists_resultentryleft) + ge_balance_positive_exists_resultentryleftvalue))))))))) /\ (((exists dst_positive_code_exists_resultentryright dst_positive_scale_exists_resultentryright dst_negative_code_exists_resultentryright dst_negative_scale_exists_resultentryright dst_positive_exists_resultentryright dst_negative_exists_resultentryright. (((G) = (((((dst_positive_code_exists_resultentryright) + (dst_positive_scale_exists_resultentryright)) * S ((dst_positive_code_exists_resultentryright) + (dst_positive_scale_exists_resultentryright)) + ((dst_positive_scale_exists_resultentryright) + (dst_positive_scale_exists_resultentryright))) + (((dst_negative_code_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)) * S ((dst_negative_code_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)) + ((dst_negative_scale_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)))) * S ((((dst_positive_code_exists_resultentryright) + (dst_positive_scale_exists_resultentryright)) * S ((dst_positive_code_exists_resultentryright) + (dst_positive_scale_exists_resultentryright)) + ((dst_positive_scale_exists_resultentryright) + (dst_positive_scale_exists_resultentryright))) + (((dst_negative_code_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)) * S ((dst_negative_code_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)) + ((dst_negative_scale_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)))) + ((((dst_negative_code_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)) * S ((dst_negative_code_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)) + ((dst_negative_scale_exists_resultentryright) + (dst_negative_scale_exists_resultentryright))) + (((dst_negative_code_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)) * S ((dst_negative_code_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)) + ((dst_negative_scale_exists_resultentryright) + (dst_negative_scale_exists_resultentryright)))))) /\ (((((exists ff_h_pvs_exists_resultentryrightpositive. ff_h_pvs_exists_resultentryrightpositive + S (dst_positive_exists_resultentryright) = S ((S (dc_quotient_exists_resultentry)) * dst_positive_scale_exists_resultentryright)) /\ exists ff_q_pvs_exists_resultentryrightpositive. dst_positive_code_exists_resultentryright = ff_q_pvs_exists_resultentryrightpositive * S ((S (dc_quotient_exists_resultentry)) * dst_positive_scale_exists_resultentryright) + (dst_positive_exists_resultentryright))) /\ (((((exists ff_h_pvs_exists_resultentryrightnegative. ff_h_pvs_exists_resultentryrightnegative + S (dst_negative_exists_resultentryright) = S ((S (dc_quotient_exists_resultentry)) * dst_negative_scale_exists_resultentryright)) /\ exists ff_q_pvs_exists_resultentryrightnegative. dst_negative_code_exists_resultentryright = ff_q_pvs_exists_resultentryrightnegative * S ((S (dc_quotient_exists_resultentry)) * dst_negative_scale_exists_resultentryright) + (dst_negative_exists_resultentryright))) /\ (exists ge_balance_positive_exists_resultentryrightvalue ge_balance_negative_exists_resultentryrightvalue. (((((dc_right_exists_resultentry) = 2 * (ge_balance_positive_exists_resultentryrightvalue) /\ (ge_balance_negative_exists_resultentryrightvalue) = 0) \/ exists ge_signed_half_exists_resultentryrightvaluedecode. (((dc_right_exists_resultentry) = 2 * ge_signed_half_exists_resultentryrightvaluedecode + 1 /\ (ge_balance_positive_exists_resultentryrightvalue) = 0) /\ (ge_balance_negative_exists_resultentryrightvalue) = S ge_signed_half_exists_resultentryrightvaluedecode))) /\ ((dst_positive_exists_resultentryright) + ge_balance_negative_exists_resultentryrightvalue = (dst_negative_exists_resultentryright) + ge_balance_positive_exists_resultentryrightvalue))))))))) /\ (exists sto_ap_exists_resultentryproduct sto_an_exists_resultentryproduct sto_bp_exists_resultentryproduct sto_bn_exists_resultentryproduct sto_cp_exists_resultentryproduct sto_cn_exists_resultentryproduct. (((((dc_left_exists_resultentry) = 2 * (sto_ap_exists_resultentryproduct) /\ (sto_an_exists_resultentryproduct) = 0) \/ exists ge_signed_half_exists_resultentryproductleft. (((dc_left_exists_resultentry) = 2 * ge_signed_half_exists_resultentryproductleft + 1 /\ (sto_ap_exists_resultentryproduct) = 0) /\ (sto_an_exists_resultentryproduct) = S ge_signed_half_exists_resultentryproductleft))) /\ ((((((dc_right_exists_resultentry) = 2 * (sto_bp_exists_resultentryproduct) /\ (sto_bn_exists_resultentryproduct) = 0) \/ exists ge_signed_half_exists_resultentryproductright. (((dc_right_exists_resultentry) = 2 * ge_signed_half_exists_resultentryproductright + 1 /\ (sto_bp_exists_resultentryproduct) = 0) /\ (sto_bn_exists_resultentryproduct) = S ge_signed_half_exists_resultentryproductright))) /\ ((((((dc_value_exists_result) = 2 * (sto_cp_exists_resultentryproduct) /\ (sto_cn_exists_resultentryproduct) = 0) \/ exists ge_signed_half_exists_resultentryproductoutput. (((dc_value_exists_result) = 2 * ge_signed_half_exists_resultentryproductoutput + 1 /\ (sto_cp_exists_resultentryproduct) = 0) /\ (sto_cn_exists_resultentryproduct) = S ge_signed_half_exists_resultentryproductoutput))) /\ ((sto_ap_exists_resultentryproduct * sto_bp_exists_resultentryproduct + sto_an_exists_resultentryproduct * sto_bn_exists_resultentryproduct) + sto_cn_exists_resultentryproduct = (sto_ap_exists_resultentryproduct * sto_bn_exists_resultentryproduct + sto_an_exists_resultentryproduct * sto_bp_exists_resultentryproduct) + sto_cp_exists_resultentryproduct))))))))))))))) \/ ((((dc_index_exists_result)=0 \/ ~(exists pvs_factor_exists_resultentrynondivisor. (n) = (dc_index_exists_result) * pvs_factor_exists_resultentrynondivisor)) /\ ((dc_value_exists_result)=0)))))))

Constructive proof overview

Generated structural guide

Ordinary prefix induction constructs every finite summand table; its length is independent of n, and no finite choice principle is assumed.

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

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

Proof neighborhood

Direct dependencies

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

50 script commands · 15 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 (3)

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

01Fix variables and assumptionsL1–4

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

  1. L1
    intro F
  2. L2
    intro G
  3. L3
    intro n
  4. L4
    intro l
02Induction on lL5–7

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

  1. L5
    induction l
  2. L6
    intro hF
  3. L7
    intro hG
03Establish hzeroL8–10

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

  1. L8
    have hzero : ∃ M. ArithTable(0,M) ∧ ArithAt(M,0,0)Definitions: ArithTableArithAt
  2. L9
    specialize arithmetic_signed_table_singleton (0)
  3. L10
    apply arithmetic_signed_table_singleton
04Separate the logical casesL11–12

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

  1. L11
    cases hzero
  2. L12
    cases hzero_witness
05Construct an explicit witnessL13–13

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

  1. L13
    exists x
06Use earlier factsL14–20

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

  1. L14
    specialize dirichlet_convolution_prefix_zero_constructor (F)
  2. L15
    specialize dirichlet_convolution_prefix_zero_constructor (G)
  3. L16
    specialize dirichlet_convolution_prefix_zero_constructor (n)
  4. L17
    specialize dirichlet_convolution_prefix_zero_constructor (x)
  5. L18
    apply dirichlet_convolution_prefix_zero_constructor
  6. L19
    exact hzero_witness_left
  7. L20
    exact hzero_witness_right
07Fix variables and assumptionsL21–22

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

  1. L21
    intro hF
  2. L22
    intro hG
08Establish hprevL23–26

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

  1. L23
    have hprev : ∃ M. DirichletPrefix(F,G,n,l,M)Definitions: DirichletPrefix
  2. L24
    apply IH
  3. L25
    exact hF
  4. L26
    exact hG
09Separate the logical casesL27–27

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

  1. L27
    cases hprev
10Establish hzL28–35

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet convolution entry exists.

  1. L28
    have hz : ∃ z. DirichletEntry(F,G,n,S l,z)Definitions: DirichletEntry
  2. L29
    specialize dirichlet_convolution_entry_exists (F)
  3. L30
    specialize dirichlet_convolution_entry_exists (G)
  4. L31
    specialize dirichlet_convolution_entry_exists (n)
  5. L32
    specialize dirichlet_convolution_entry_exists (S l)
  6. L33
    apply dirichlet_convolution_entry_exists
  7. L34
    exact hF
  8. L35
    exact hG
11Separate the logical casesL36–36

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

  1. L36
    cases hz
12Establish hnextL37–46

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet convolution prefix append.

  1. L37
    have hnext : ∃ H. DirichletPrefix(F,G,n,S l,H) ∧ ArithTableEqual(x,H,S l)Definitions: ArithTableEqualDirichletPrefix
  2. L38
    specialize dirichlet_convolution_prefix_append (F)
  3. L39
    specialize dirichlet_convolution_prefix_append (G)
  4. L40
    specialize dirichlet_convolution_prefix_append (n)
  5. L41
    specialize dirichlet_convolution_prefix_append (l)
  6. L42
    specialize dirichlet_convolution_prefix_append (x)
  7. L43
    specialize dirichlet_convolution_prefix_append (x1)
  8. L44
    apply dirichlet_convolution_prefix_append
  9. L45
    exact hprev_witness
  10. L46
    exact hz_witness
13Separate the logical casesL47–48

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

  1. L47
    cases hnext
  2. L48
    cases hnext_witness
14Construct an explicit witnessL49–49

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

  1. L49
    exists x2
15Use earlier factsL50–50

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

  1. L50
    exact hnext_witness_left

Library-wide reading audit

Original exact command ledger · 50 lines
  1. 0001intro F
  2. 0002intro G
  3. 0003intro n
  4. 0004intro l
  5. 0005induction l
  6. 0006intro hF
  7. 0007intro hG
  8. 0008have hzero : exists M. (exists dst_positive_code_exists_base_table dst_positive_scale_exists_base_table dst_negative_code_exists_base_table dst_negative_scale_exists_base_table. (((M) = (((((dst_positive_code_exists_base_table) + (dst_positive_scale_exists_base_table)) * S ((dst_positive_code_exists_base_table) + (dst_positive_scale_exists_base_table)) + ((dst_positive_scale_exists_base_table) + (dst_positive_scale_exists_base_table))) + (((dst_negative_code_exists_base_table) + (dst_negative_scale_exists_base_table)) * S ((dst_negative_code_exists_base_table) + (dst_negative_scale_exists_base_table)) + ((dst_negative_scale_exists_base_table) + (dst_negative_scale_exists_base_table)))) * S ((((dst_positive_code_exists_base_table) + (dst_positive_scale_exists_base_table)) * S ((dst_positive_code_exists_base_table) + (dst_positive_scale_exists_base_table)) + ((dst_positive_scale_exists_base_table) + (dst_positive_scale_exists_base_table))) + (((dst_negative_code_exists_base_table) + (dst_negative_scale_exists_base_table)) * S ((dst_negative_code_exists_base_table) + (dst_negative_scale_exists_base_table)) + ((dst_negative_scale_exists_base_table) + (dst_negative_scale_exists_base_table)))) + ((((dst_negative_code_exists_base_table) + (dst_negative_scale_exists_base_table)) * S ((dst_negative_code_exists_base_table) + (dst_negative_scale_exists_base_table)) + ((dst_negative_scale_exists_base_table) + (dst_negative_scale_exists_base_table))) + (((dst_negative_code_exists_base_table) + (dst_negative_scale_exists_base_table)) * S ((dst_negative_code_exists_base_table) + (dst_negative_scale_exists_base_table)) + ((dst_negative_scale_exists_base_table) + (dst_negative_scale_exists_base_table)))))) /\ (forall dst_index_exists_base_table. (exists pvs_le_gap_exists_base_tabledomain. pvs_le_gap_exists_base_tabledomain + (dst_index_exists_base_table) = (0)) -> exists dst_positive_exists_base_table dst_negative_exists_base_table dst_value_exists_base_table. ((((exists ff_h_pvs_exists_base_tableentrypositive. ff_h_pvs_exists_base_tableentrypositive + S (dst_positive_exists_base_table) = S ((S (dst_index_exists_base_table)) * dst_positive_scale_exists_base_table)) /\ exists ff_q_pvs_exists_base_tableentrypositive. dst_positive_code_exists_base_table = ff_q_pvs_exists_base_tableentrypositive * S ((S (dst_index_exists_base_table)) * dst_positive_scale_exists_base_table) + (dst_positive_exists_base_table))) /\ (((((exists ff_h_pvs_exists_base_tableentrynegative. ff_h_pvs_exists_base_tableentrynegative + S (dst_negative_exists_base_table) = S ((S (dst_index_exists_base_table)) * dst_negative_scale_exists_base_table)) /\ exists ff_q_pvs_exists_base_tableentrynegative. dst_negative_code_exists_base_table = ff_q_pvs_exists_base_tableentrynegative * S ((S (dst_index_exists_base_table)) * dst_negative_scale_exists_base_table) + (dst_negative_exists_base_table))) /\ (exists ge_balance_positive_exists_base_tableentryvalue ge_balance_negative_exists_base_tableentryvalue. (((((dst_value_exists_base_table) = 2 * (ge_balance_positive_exists_base_tableentryvalue) /\ (ge_balance_negative_exists_base_tableentryvalue) = 0) \/ exists ge_signed_half_exists_base_tableentryvaluedecode. (((dst_value_exists_base_table) = 2 * ge_signed_half_exists_base_tableentryvaluedecode + 1 /\ (ge_balance_positive_exists_base_tableentryvalue) = 0) /\ (ge_balance_negative_exists_base_tableentryvalue) = S ge_signed_half_exists_base_tableentryvaluedecode))) /\ ((dst_positive_exists_base_table) + ge_balance_negative_exists_base_tableentryvalue = (dst_negative_exists_base_table) + ge_balance_positive_exists_base_tableentryvalue))))))))) /\ (exists dst_positive_code_exists_base_entry dst_positive_scale_exists_base_entry dst_negative_code_exists_base_entry dst_negative_scale_exists_base_entry dst_positive_exists_base_entry dst_negative_exists_base_entry. (((M) = (((((dst_positive_code_exists_base_entry) + (dst_positive_scale_exists_base_entry)) * S ((dst_positive_code_exists_base_entry) + (dst_positive_scale_exists_base_entry)) + ((dst_positive_scale_exists_base_entry) + (dst_positive_scale_exists_base_entry))) + (((dst_negative_code_exists_base_entry) + (dst_negative_scale_exists_base_entry)) * S ((dst_negative_code_exists_base_entry) + (dst_negative_scale_exists_base_entry)) + ((dst_negative_scale_exists_base_entry) + (dst_negative_scale_exists_base_entry)))) * S ((((dst_positive_code_exists_base_entry) + (dst_positive_scale_exists_base_entry)) * S ((dst_positive_code_exists_base_entry) + (dst_positive_scale_exists_base_entry)) + ((dst_positive_scale_exists_base_entry) + (dst_positive_scale_exists_base_entry))) + (((dst_negative_code_exists_base_entry) + (dst_negative_scale_exists_base_entry)) * S ((dst_negative_code_exists_base_entry) + (dst_negative_scale_exists_base_entry)) + ((dst_negative_scale_exists_base_entry) + (dst_negative_scale_exists_base_entry)))) + ((((dst_negative_code_exists_base_entry) + (dst_negative_scale_exists_base_entry)) * S ((dst_negative_code_exists_base_entry) + (dst_negative_scale_exists_base_entry)) + ((dst_negative_scale_exists_base_entry) + (dst_negative_scale_exists_base_entry))) + (((dst_negative_code_exists_base_entry) + (dst_negative_scale_exists_base_entry)) * S ((dst_negative_code_exists_base_entry) + (dst_negative_scale_exists_base_entry)) + ((dst_negative_scale_exists_base_entry) + (dst_negative_scale_exists_base_entry)))))) /\ (((((exists ff_h_pvs_exists_base_entrypositive. ff_h_pvs_exists_base_entrypositive + S (dst_positive_exists_base_entry) = S ((S (0)) * dst_positive_scale_exists_base_entry)) /\ exists ff_q_pvs_exists_base_entrypositive. dst_positive_code_exists_base_entry = ff_q_pvs_exists_base_entrypositive * S ((S (0)) * dst_positive_scale_exists_base_entry) + (dst_positive_exists_base_entry))) /\ (((((exists ff_h_pvs_exists_base_entrynegative. ff_h_pvs_exists_base_entrynegative + S (dst_negative_exists_base_entry) = S ((S (0)) * dst_negative_scale_exists_base_entry)) /\ exists ff_q_pvs_exists_base_entrynegative. dst_negative_code_exists_base_entry = ff_q_pvs_exists_base_entrynegative * S ((S (0)) * dst_negative_scale_exists_base_entry) + (dst_negative_exists_base_entry))) /\ (exists ge_balance_positive_exists_base_entryvalue ge_balance_negative_exists_base_entryvalue. (((((0) = 2 * (ge_balance_positive_exists_base_entryvalue) /\ (ge_balance_negative_exists_base_entryvalue) = 0) \/ exists ge_signed_half_exists_base_entryvaluedecode. (((0) = 2 * ge_signed_half_exists_base_entryvaluedecode + 1 /\ (ge_balance_positive_exists_base_entryvalue) = 0) /\ (ge_balance_negative_exists_base_entryvalue) = S ge_signed_half_exists_base_entryvaluedecode))) /\ ((dst_positive_exists_base_entry) + ge_balance_negative_exists_base_entryvalue = (dst_negative_exists_base_entry) + ge_balance_positive_exists_base_entryvalue)))))))))
  9. 0009specialize arithmetic_signed_table_singleton (0)
  10. 0010apply arithmetic_signed_table_singleton
  11. 0011cases hzero
  12. 0012cases hzero_witness
  13. 0013exists x
  14. 0014specialize dirichlet_convolution_prefix_zero_constructor (F)
  15. 0015specialize dirichlet_convolution_prefix_zero_constructor (G)
  16. 0016specialize dirichlet_convolution_prefix_zero_constructor (n)
  17. 0017specialize dirichlet_convolution_prefix_zero_constructor (x)
  18. 0018apply dirichlet_convolution_prefix_zero_constructor
  19. 0019exact hzero_witness_left
  20. 0020exact hzero_witness_right
  21. 0021intro hF
  22. 0022intro hG
  23. 0023have hprev : exists M. (((exists dst_positive_code_exists_previoustable dst_positive_scale_exists_previoustable dst_negative_code_exists_previoustable dst_negative_scale_exists_previoustable. (((M) = (((((dst_positive_code_exists_previoustable) + (dst_positive_scale_exists_previoustable)) * S ((dst_positive_code_exists_previoustable) + (dst_positive_scale_exists_previoustable)) + ((dst_positive_scale_exists_previoustable) + (dst_positive_scale_exists_previoustable))) + (((dst_negative_code_exists_previoustable) + (dst_negative_scale_exists_previoustable)) * S ((dst_negative_code_exists_previoustable) + (dst_negative_scale_exists_previoustable)) + ((dst_negative_scale_exists_previoustable) + (dst_negative_scale_exists_previoustable)))) * S ((((dst_positive_code_exists_previoustable) + (dst_positive_scale_exists_previoustable)) * S ((dst_positive_code_exists_previoustable) + (dst_positive_scale_exists_previoustable)) + ((dst_positive_scale_exists_previoustable) + (dst_positive_scale_exists_previoustable))) + (((dst_negative_code_exists_previoustable) + (dst_negative_scale_exists_previoustable)) * S ((dst_negative_code_exists_previoustable) + (dst_negative_scale_exists_previoustable)) + ((dst_negative_scale_exists_previoustable) + (dst_negative_scale_exists_previoustable)))) + ((((dst_negative_code_exists_previoustable) + (dst_negative_scale_exists_previoustable)) * S ((dst_negative_code_exists_previoustable) + (dst_negative_scale_exists_previoustable)) + ((dst_negative_scale_exists_previoustable) + (dst_negative_scale_exists_previoustable))) + (((dst_negative_code_exists_previoustable) + (dst_negative_scale_exists_previoustable)) * S ((dst_negative_code_exists_previoustable) + (dst_negative_scale_exists_previoustable)) + ((dst_negative_scale_exists_previoustable) + (dst_negative_scale_exists_previoustable)))))) /\ (forall dst_index_exists_previoustable. (exists pvs_le_gap_exists_previoustabledomain. pvs_le_gap_exists_previoustabledomain + (dst_index_exists_previoustable) = (l)) -> exists dst_positive_exists_previoustable dst_negative_exists_previoustable dst_value_exists_previoustable. ((((exists ff_h_pvs_exists_previoustableentrypositive. ff_h_pvs_exists_previoustableentrypositive + S (dst_positive_exists_previoustable) = S ((S (dst_index_exists_previoustable)) * dst_positive_scale_exists_previoustable)) /\ exists ff_q_pvs_exists_previoustableentrypositive. dst_positive_code_exists_previoustable = ff_q_pvs_exists_previoustableentrypositive * S ((S (dst_index_exists_previoustable)) * dst_positive_scale_exists_previoustable) + (dst_positive_exists_previoustable))) /\ (((((exists ff_h_pvs_exists_previoustableentrynegative. ff_h_pvs_exists_previoustableentrynegative + S (dst_negative_exists_previoustable) = S ((S (dst_index_exists_previoustable)) * dst_negative_scale_exists_previoustable)) /\ exists ff_q_pvs_exists_previoustableentrynegative. dst_negative_code_exists_previoustable = ff_q_pvs_exists_previoustableentrynegative * S ((S (dst_index_exists_previoustable)) * dst_negative_scale_exists_previoustable) + (dst_negative_exists_previoustable))) /\ (exists ge_balance_positive_exists_previoustableentryvalue ge_balance_negative_exists_previoustableentryvalue. (((((dst_value_exists_previoustable) = 2 * (ge_balance_positive_exists_previoustableentryvalue) /\ (ge_balance_negative_exists_previoustableentryvalue) = 0) \/ exists ge_signed_half_exists_previoustableentryvaluedecode. (((dst_value_exists_previoustable) = 2 * ge_signed_half_exists_previoustableentryvaluedecode + 1 /\ (ge_balance_positive_exists_previoustableentryvalue) = 0) /\ (ge_balance_negative_exists_previoustableentryvalue) = S ge_signed_half_exists_previoustableentryvaluedecode))) /\ ((dst_positive_exists_previoustable) + ge_balance_negative_exists_previoustableentryvalue = (dst_negative_exists_previoustable) + ge_balance_positive_exists_previoustableentryvalue))))))))) /\ (forall dc_index_exists_previous dc_value_exists_previous. (exists pvs_le_gap_exists_previousdomain. pvs_le_gap_exists_previousdomain + (dc_index_exists_previous) = (l)) -> (exists dst_positive_code_exists_previouslookup dst_positive_scale_exists_previouslookup dst_negative_code_exists_previouslookup dst_negative_scale_exists_previouslookup dst_positive_exists_previouslookup dst_negative_exists_previouslookup. (((M) = (((((dst_positive_code_exists_previouslookup) + (dst_positive_scale_exists_previouslookup)) * S ((dst_positive_code_exists_previouslookup) + (dst_positive_scale_exists_previouslookup)) + ((dst_positive_scale_exists_previouslookup) + (dst_positive_scale_exists_previouslookup))) + (((dst_negative_code_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)) * S ((dst_negative_code_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)) + ((dst_negative_scale_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)))) * S ((((dst_positive_code_exists_previouslookup) + (dst_positive_scale_exists_previouslookup)) * S ((dst_positive_code_exists_previouslookup) + (dst_positive_scale_exists_previouslookup)) + ((dst_positive_scale_exists_previouslookup) + (dst_positive_scale_exists_previouslookup))) + (((dst_negative_code_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)) * S ((dst_negative_code_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)) + ((dst_negative_scale_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)))) + ((((dst_negative_code_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)) * S ((dst_negative_code_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)) + ((dst_negative_scale_exists_previouslookup) + (dst_negative_scale_exists_previouslookup))) + (((dst_negative_code_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)) * S ((dst_negative_code_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)) + ((dst_negative_scale_exists_previouslookup) + (dst_negative_scale_exists_previouslookup)))))) /\ (((((exists ff_h_pvs_exists_previouslookuppositive. ff_h_pvs_exists_previouslookuppositive + S (dst_positive_exists_previouslookup) = S ((S (dc_index_exists_previous)) * dst_positive_scale_exists_previouslookup)) /\ exists ff_q_pvs_exists_previouslookuppositive. dst_positive_code_exists_previouslookup = ff_q_pvs_exists_previouslookuppositive * S ((S (dc_index_exists_previous)) * dst_positive_scale_exists_previouslookup) + (dst_positive_exists_previouslookup))) /\ (((((exists ff_h_pvs_exists_previouslookupnegative. ff_h_pvs_exists_previouslookupnegative + S (dst_negative_exists_previouslookup) = S ((S (dc_index_exists_previous)) * dst_negative_scale_exists_previouslookup)) /\ exists ff_q_pvs_exists_previouslookupnegative. dst_negative_code_exists_previouslookup = ff_q_pvs_exists_previouslookupnegative * S ((S (dc_index_exists_previous)) * dst_negative_scale_exists_previouslookup) + (dst_negative_exists_previouslookup))) /\ (exists ge_balance_positive_exists_previouslookupvalue ge_balance_negative_exists_previouslookupvalue. (((((dc_value_exists_previous) = 2 * (ge_balance_positive_exists_previouslookupvalue) /\ (ge_balance_negative_exists_previouslookupvalue) = 0) \/ exists ge_signed_half_exists_previouslookupvaluedecode. (((dc_value_exists_previous) = 2 * ge_signed_half_exists_previouslookupvaluedecode + 1 /\ (ge_balance_positive_exists_previouslookupvalue) = 0) /\ (ge_balance_negative_exists_previouslookupvalue) = S ge_signed_half_exists_previouslookupvaluedecode))) /\ ((dst_positive_exists_previouslookup) + ge_balance_negative_exists_previouslookupvalue = (dst_negative_exists_previouslookup) + ge_balance_positive_exists_previouslookupvalue))))))))) -> ((((~((dc_index_exists_previous)=0)) /\ (exists dc_quotient_exists_previousentry dc_left_exists_previousentry dc_right_exists_previousentry. (((n)=(dc_index_exists_previous)*dc_quotient_exists_previousentry) /\ (((exists dst_positive_code_exists_previousentryleft dst_positive_scale_exists_previousentryleft dst_negative_code_exists_previousentryleft dst_negative_scale_exists_previousentryleft dst_positive_exists_previousentryleft dst_negative_exists_previousentryleft. (((F) = (((((dst_positive_code_exists_previousentryleft) + (dst_positive_scale_exists_previousentryleft)) * S ((dst_positive_code_exists_previousentryleft) + (dst_positive_scale_exists_previousentryleft)) + ((dst_positive_scale_exists_previousentryleft) + (dst_positive_scale_exists_previousentryleft))) + (((dst_negative_code_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)) * S ((dst_negative_code_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)) + ((dst_negative_scale_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)))) * S ((((dst_positive_code_exists_previousentryleft) + (dst_positive_scale_exists_previousentryleft)) * S ((dst_positive_code_exists_previousentryleft) + (dst_positive_scale_exists_previousentryleft)) + ((dst_positive_scale_exists_previousentryleft) + (dst_positive_scale_exists_previousentryleft))) + (((dst_negative_code_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)) * S ((dst_negative_code_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)) + ((dst_negative_scale_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)))) + ((((dst_negative_code_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)) * S ((dst_negative_code_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)) + ((dst_negative_scale_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft))) + (((dst_negative_code_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)) * S ((dst_negative_code_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)) + ((dst_negative_scale_exists_previousentryleft) + (dst_negative_scale_exists_previousentryleft)))))) /\ (((((exists ff_h_pvs_exists_previousentryleftpositive. ff_h_pvs_exists_previousentryleftpositive + S (dst_positive_exists_previousentryleft) = S ((S (dc_index_exists_previous)) * dst_positive_scale_exists_previousentryleft)) /\ exists ff_q_pvs_exists_previousentryleftpositive. dst_positive_code_exists_previousentryleft = ff_q_pvs_exists_previousentryleftpositive * S ((S (dc_index_exists_previous)) * dst_positive_scale_exists_previousentryleft) + (dst_positive_exists_previousentryleft))) /\ (((((exists ff_h_pvs_exists_previousentryleftnegative. ff_h_pvs_exists_previousentryleftnegative + S (dst_negative_exists_previousentryleft) = S ((S (dc_index_exists_previous)) * dst_negative_scale_exists_previousentryleft)) /\ exists ff_q_pvs_exists_previousentryleftnegative. dst_negative_code_exists_previousentryleft = ff_q_pvs_exists_previousentryleftnegative * S ((S (dc_index_exists_previous)) * dst_negative_scale_exists_previousentryleft) + (dst_negative_exists_previousentryleft))) /\ (exists ge_balance_positive_exists_previousentryleftvalue ge_balance_negative_exists_previousentryleftvalue. (((((dc_left_exists_previousentry) = 2 * (ge_balance_positive_exists_previousentryleftvalue) /\ (ge_balance_negative_exists_previousentryleftvalue) = 0) \/ exists ge_signed_half_exists_previousentryleftvaluedecode. (((dc_left_exists_previousentry) = 2 * ge_signed_half_exists_previousentryleftvaluedecode + 1 /\ (ge_balance_positive_exists_previousentryleftvalue) = 0) /\ (ge_balance_negative_exists_previousentryleftvalue) = S ge_signed_half_exists_previousentryleftvaluedecode))) /\ ((dst_positive_exists_previousentryleft) + ge_balance_negative_exists_previousentryleftvalue = (dst_negative_exists_previousentryleft) + ge_balance_positive_exists_previousentryleftvalue))))))))) /\ (((exists dst_positive_code_exists_previousentryright dst_positive_scale_exists_previousentryright dst_negative_code_exists_previousentryright dst_negative_scale_exists_previousentryright dst_positive_exists_previousentryright dst_negative_exists_previousentryright. (((G) = (((((dst_positive_code_exists_previousentryright) + (dst_positive_scale_exists_previousentryright)) * S ((dst_positive_code_exists_previousentryright) + (dst_positive_scale_exists_previousentryright)) + ((dst_positive_scale_exists_previousentryright) + (dst_positive_scale_exists_previousentryright))) + (((dst_negative_code_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)) * S ((dst_negative_code_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)) + ((dst_negative_scale_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)))) * S ((((dst_positive_code_exists_previousentryright) + (dst_positive_scale_exists_previousentryright)) * S ((dst_positive_code_exists_previousentryright) + (dst_positive_scale_exists_previousentryright)) + ((dst_positive_scale_exists_previousentryright) + (dst_positive_scale_exists_previousentryright))) + (((dst_negative_code_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)) * S ((dst_negative_code_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)) + ((dst_negative_scale_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)))) + ((((dst_negative_code_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)) * S ((dst_negative_code_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)) + ((dst_negative_scale_exists_previousentryright) + (dst_negative_scale_exists_previousentryright))) + (((dst_negative_code_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)) * S ((dst_negative_code_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)) + ((dst_negative_scale_exists_previousentryright) + (dst_negative_scale_exists_previousentryright)))))) /\ (((((exists ff_h_pvs_exists_previousentryrightpositive. ff_h_pvs_exists_previousentryrightpositive + S (dst_positive_exists_previousentryright) = S ((S (dc_quotient_exists_previousentry)) * dst_positive_scale_exists_previousentryright)) /\ exists ff_q_pvs_exists_previousentryrightpositive. dst_positive_code_exists_previousentryright = ff_q_pvs_exists_previousentryrightpositive * S ((S (dc_quotient_exists_previousentry)) * dst_positive_scale_exists_previousentryright) + (dst_positive_exists_previousentryright))) /\ (((((exists ff_h_pvs_exists_previousentryrightnegative. ff_h_pvs_exists_previousentryrightnegative + S (dst_negative_exists_previousentryright) = S ((S (dc_quotient_exists_previousentry)) * dst_negative_scale_exists_previousentryright)) /\ exists ff_q_pvs_exists_previousentryrightnegative. dst_negative_code_exists_previousentryright = ff_q_pvs_exists_previousentryrightnegative * S ((S (dc_quotient_exists_previousentry)) * dst_negative_scale_exists_previousentryright) + (dst_negative_exists_previousentryright))) /\ (exists ge_balance_positive_exists_previousentryrightvalue ge_balance_negative_exists_previousentryrightvalue. (((((dc_right_exists_previousentry) = 2 * (ge_balance_positive_exists_previousentryrightvalue) /\ (ge_balance_negative_exists_previousentryrightvalue) = 0) \/ exists ge_signed_half_exists_previousentryrightvaluedecode. (((dc_right_exists_previousentry) = 2 * ge_signed_half_exists_previousentryrightvaluedecode + 1 /\ (ge_balance_positive_exists_previousentryrightvalue) = 0) /\ (ge_balance_negative_exists_previousentryrightvalue) = S ge_signed_half_exists_previousentryrightvaluedecode))) /\ ((dst_positive_exists_previousentryright) + ge_balance_negative_exists_previousentryrightvalue = (dst_negative_exists_previousentryright) + ge_balance_positive_exists_previousentryrightvalue))))))))) /\ (exists sto_ap_exists_previousentryproduct sto_an_exists_previousentryproduct sto_bp_exists_previousentryproduct sto_bn_exists_previousentryproduct sto_cp_exists_previousentryproduct sto_cn_exists_previousentryproduct. (((((dc_left_exists_previousentry) = 2 * (sto_ap_exists_previousentryproduct) /\ (sto_an_exists_previousentryproduct) = 0) \/ exists ge_signed_half_exists_previousentryproductleft. (((dc_left_exists_previousentry) = 2 * ge_signed_half_exists_previousentryproductleft + 1 /\ (sto_ap_exists_previousentryproduct) = 0) /\ (sto_an_exists_previousentryproduct) = S ge_signed_half_exists_previousentryproductleft))) /\ ((((((dc_right_exists_previousentry) = 2 * (sto_bp_exists_previousentryproduct) /\ (sto_bn_exists_previousentryproduct) = 0) \/ exists ge_signed_half_exists_previousentryproductright. (((dc_right_exists_previousentry) = 2 * ge_signed_half_exists_previousentryproductright + 1 /\ (sto_bp_exists_previousentryproduct) = 0) /\ (sto_bn_exists_previousentryproduct) = S ge_signed_half_exists_previousentryproductright))) /\ ((((((dc_value_exists_previous) = 2 * (sto_cp_exists_previousentryproduct) /\ (sto_cn_exists_previousentryproduct) = 0) \/ exists ge_signed_half_exists_previousentryproductoutput. (((dc_value_exists_previous) = 2 * ge_signed_half_exists_previousentryproductoutput + 1 /\ (sto_cp_exists_previousentryproduct) = 0) /\ (sto_cn_exists_previousentryproduct) = S ge_signed_half_exists_previousentryproductoutput))) /\ ((sto_ap_exists_previousentryproduct * sto_bp_exists_previousentryproduct + sto_an_exists_previousentryproduct * sto_bn_exists_previousentryproduct) + sto_cn_exists_previousentryproduct = (sto_ap_exists_previousentryproduct * sto_bn_exists_previousentryproduct + sto_an_exists_previousentryproduct * sto_bp_exists_previousentryproduct) + sto_cp_exists_previousentryproduct))))))))))))))) \/ ((((dc_index_exists_previous)=0 \/ ~(exists pvs_factor_exists_previousentrynondivisor. (n) = (dc_index_exists_previous) * pvs_factor_exists_previousentrynondivisor)) /\ ((dc_value_exists_previous)=0)))))))
  24. 0024apply IH
  25. 0025exact hF
  26. 0026exact hG
  27. 0027cases hprev
  28. 0028have hz : exists z. ((((~((S l)=0)) /\ (exists dc_quotient_exists_next_value dc_left_exists_next_value dc_right_exists_next_value. (((n)=(S l)*dc_quotient_exists_next_value) /\ (((exists dst_positive_code_exists_next_valueleft dst_positive_scale_exists_next_valueleft dst_negative_code_exists_next_valueleft dst_negative_scale_exists_next_valueleft dst_positive_exists_next_valueleft dst_negative_exists_next_valueleft. (((F) = (((((dst_positive_code_exists_next_valueleft) + (dst_positive_scale_exists_next_valueleft)) * S ((dst_positive_code_exists_next_valueleft) + (dst_positive_scale_exists_next_valueleft)) + ((dst_positive_scale_exists_next_valueleft) + (dst_positive_scale_exists_next_valueleft))) + (((dst_negative_code_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)) * S ((dst_negative_code_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)) + ((dst_negative_scale_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)))) * S ((((dst_positive_code_exists_next_valueleft) + (dst_positive_scale_exists_next_valueleft)) * S ((dst_positive_code_exists_next_valueleft) + (dst_positive_scale_exists_next_valueleft)) + ((dst_positive_scale_exists_next_valueleft) + (dst_positive_scale_exists_next_valueleft))) + (((dst_negative_code_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)) * S ((dst_negative_code_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)) + ((dst_negative_scale_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)))) + ((((dst_negative_code_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)) * S ((dst_negative_code_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)) + ((dst_negative_scale_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft))) + (((dst_negative_code_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)) * S ((dst_negative_code_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)) + ((dst_negative_scale_exists_next_valueleft) + (dst_negative_scale_exists_next_valueleft)))))) /\ (((((exists ff_h_pvs_exists_next_valueleftpositive. ff_h_pvs_exists_next_valueleftpositive + S (dst_positive_exists_next_valueleft) = S ((S (S l)) * dst_positive_scale_exists_next_valueleft)) /\ exists ff_q_pvs_exists_next_valueleftpositive. dst_positive_code_exists_next_valueleft = ff_q_pvs_exists_next_valueleftpositive * S ((S (S l)) * dst_positive_scale_exists_next_valueleft) + (dst_positive_exists_next_valueleft))) /\ (((((exists ff_h_pvs_exists_next_valueleftnegative. ff_h_pvs_exists_next_valueleftnegative + S (dst_negative_exists_next_valueleft) = S ((S (S l)) * dst_negative_scale_exists_next_valueleft)) /\ exists ff_q_pvs_exists_next_valueleftnegative. dst_negative_code_exists_next_valueleft = ff_q_pvs_exists_next_valueleftnegative * S ((S (S l)) * dst_negative_scale_exists_next_valueleft) + (dst_negative_exists_next_valueleft))) /\ (exists ge_balance_positive_exists_next_valueleftvalue ge_balance_negative_exists_next_valueleftvalue. (((((dc_left_exists_next_value) = 2 * (ge_balance_positive_exists_next_valueleftvalue) /\ (ge_balance_negative_exists_next_valueleftvalue) = 0) \/ exists ge_signed_half_exists_next_valueleftvaluedecode. (((dc_left_exists_next_value) = 2 * ge_signed_half_exists_next_valueleftvaluedecode + 1 /\ (ge_balance_positive_exists_next_valueleftvalue) = 0) /\ (ge_balance_negative_exists_next_valueleftvalue) = S ge_signed_half_exists_next_valueleftvaluedecode))) /\ ((dst_positive_exists_next_valueleft) + ge_balance_negative_exists_next_valueleftvalue = (dst_negative_exists_next_valueleft) + ge_balance_positive_exists_next_valueleftvalue))))))))) /\ (((exists dst_positive_code_exists_next_valueright dst_positive_scale_exists_next_valueright dst_negative_code_exists_next_valueright dst_negative_scale_exists_next_valueright dst_positive_exists_next_valueright dst_negative_exists_next_valueright. (((G) = (((((dst_positive_code_exists_next_valueright) + (dst_positive_scale_exists_next_valueright)) * S ((dst_positive_code_exists_next_valueright) + (dst_positive_scale_exists_next_valueright)) + ((dst_positive_scale_exists_next_valueright) + (dst_positive_scale_exists_next_valueright))) + (((dst_negative_code_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)) * S ((dst_negative_code_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)) + ((dst_negative_scale_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)))) * S ((((dst_positive_code_exists_next_valueright) + (dst_positive_scale_exists_next_valueright)) * S ((dst_positive_code_exists_next_valueright) + (dst_positive_scale_exists_next_valueright)) + ((dst_positive_scale_exists_next_valueright) + (dst_positive_scale_exists_next_valueright))) + (((dst_negative_code_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)) * S ((dst_negative_code_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)) + ((dst_negative_scale_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)))) + ((((dst_negative_code_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)) * S ((dst_negative_code_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)) + ((dst_negative_scale_exists_next_valueright) + (dst_negative_scale_exists_next_valueright))) + (((dst_negative_code_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)) * S ((dst_negative_code_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)) + ((dst_negative_scale_exists_next_valueright) + (dst_negative_scale_exists_next_valueright)))))) /\ (((((exists ff_h_pvs_exists_next_valuerightpositive. ff_h_pvs_exists_next_valuerightpositive + S (dst_positive_exists_next_valueright) = S ((S (dc_quotient_exists_next_value)) * dst_positive_scale_exists_next_valueright)) /\ exists ff_q_pvs_exists_next_valuerightpositive. dst_positive_code_exists_next_valueright = ff_q_pvs_exists_next_valuerightpositive * S ((S (dc_quotient_exists_next_value)) * dst_positive_scale_exists_next_valueright) + (dst_positive_exists_next_valueright))) /\ (((((exists ff_h_pvs_exists_next_valuerightnegative. ff_h_pvs_exists_next_valuerightnegative + S (dst_negative_exists_next_valueright) = S ((S (dc_quotient_exists_next_value)) * dst_negative_scale_exists_next_valueright)) /\ exists ff_q_pvs_exists_next_valuerightnegative. dst_negative_code_exists_next_valueright = ff_q_pvs_exists_next_valuerightnegative * S ((S (dc_quotient_exists_next_value)) * dst_negative_scale_exists_next_valueright) + (dst_negative_exists_next_valueright))) /\ (exists ge_balance_positive_exists_next_valuerightvalue ge_balance_negative_exists_next_valuerightvalue. (((((dc_right_exists_next_value) = 2 * (ge_balance_positive_exists_next_valuerightvalue) /\ (ge_balance_negative_exists_next_valuerightvalue) = 0) \/ exists ge_signed_half_exists_next_valuerightvaluedecode. (((dc_right_exists_next_value) = 2 * ge_signed_half_exists_next_valuerightvaluedecode + 1 /\ (ge_balance_positive_exists_next_valuerightvalue) = 0) /\ (ge_balance_negative_exists_next_valuerightvalue) = S ge_signed_half_exists_next_valuerightvaluedecode))) /\ ((dst_positive_exists_next_valueright) + ge_balance_negative_exists_next_valuerightvalue = (dst_negative_exists_next_valueright) + ge_balance_positive_exists_next_valuerightvalue))))))))) /\ (exists sto_ap_exists_next_valueproduct sto_an_exists_next_valueproduct sto_bp_exists_next_valueproduct sto_bn_exists_next_valueproduct sto_cp_exists_next_valueproduct sto_cn_exists_next_valueproduct. (((((dc_left_exists_next_value) = 2 * (sto_ap_exists_next_valueproduct) /\ (sto_an_exists_next_valueproduct) = 0) \/ exists ge_signed_half_exists_next_valueproductleft. (((dc_left_exists_next_value) = 2 * ge_signed_half_exists_next_valueproductleft + 1 /\ (sto_ap_exists_next_valueproduct) = 0) /\ (sto_an_exists_next_valueproduct) = S ge_signed_half_exists_next_valueproductleft))) /\ ((((((dc_right_exists_next_value) = 2 * (sto_bp_exists_next_valueproduct) /\ (sto_bn_exists_next_valueproduct) = 0) \/ exists ge_signed_half_exists_next_valueproductright. (((dc_right_exists_next_value) = 2 * ge_signed_half_exists_next_valueproductright + 1 /\ (sto_bp_exists_next_valueproduct) = 0) /\ (sto_bn_exists_next_valueproduct) = S ge_signed_half_exists_next_valueproductright))) /\ ((((((z) = 2 * (sto_cp_exists_next_valueproduct) /\ (sto_cn_exists_next_valueproduct) = 0) \/ exists ge_signed_half_exists_next_valueproductoutput. (((z) = 2 * ge_signed_half_exists_next_valueproductoutput + 1 /\ (sto_cp_exists_next_valueproduct) = 0) /\ (sto_cn_exists_next_valueproduct) = S ge_signed_half_exists_next_valueproductoutput))) /\ ((sto_ap_exists_next_valueproduct * sto_bp_exists_next_valueproduct + sto_an_exists_next_valueproduct * sto_bn_exists_next_valueproduct) + sto_cn_exists_next_valueproduct = (sto_ap_exists_next_valueproduct * sto_bn_exists_next_valueproduct + sto_an_exists_next_valueproduct * sto_bp_exists_next_valueproduct) + sto_cp_exists_next_valueproduct))))))))))))))) \/ ((((S l)=0 \/ ~(exists pvs_factor_exists_next_valuenondivisor. (n) = (S l) * pvs_factor_exists_next_valuenondivisor)) /\ ((z)=0))))
  29. 0029specialize dirichlet_convolution_entry_exists (F)
  30. 0030specialize dirichlet_convolution_entry_exists (G)
  31. 0031specialize dirichlet_convolution_entry_exists (n)
  32. 0032specialize dirichlet_convolution_entry_exists (S l)
  33. 0033apply dirichlet_convolution_entry_exists
  34. 0034exact hF
  35. 0035exact hG
  36. 0036cases hz
  37. 0037have hnext : exists H. (((exists dst_positive_code_exists_next_prefixtable dst_positive_scale_exists_next_prefixtable dst_negative_code_exists_next_prefixtable dst_negative_scale_exists_next_prefixtable. (((H) = (((((dst_positive_code_exists_next_prefixtable) + (dst_positive_scale_exists_next_prefixtable)) * S ((dst_positive_code_exists_next_prefixtable) + (dst_positive_scale_exists_next_prefixtable)) + ((dst_positive_scale_exists_next_prefixtable) + (dst_positive_scale_exists_next_prefixtable))) + (((dst_negative_code_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)) * S ((dst_negative_code_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)) + ((dst_negative_scale_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)))) * S ((((dst_positive_code_exists_next_prefixtable) + (dst_positive_scale_exists_next_prefixtable)) * S ((dst_positive_code_exists_next_prefixtable) + (dst_positive_scale_exists_next_prefixtable)) + ((dst_positive_scale_exists_next_prefixtable) + (dst_positive_scale_exists_next_prefixtable))) + (((dst_negative_code_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)) * S ((dst_negative_code_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)) + ((dst_negative_scale_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)))) + ((((dst_negative_code_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)) * S ((dst_negative_code_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)) + ((dst_negative_scale_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable))) + (((dst_negative_code_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)) * S ((dst_negative_code_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)) + ((dst_negative_scale_exists_next_prefixtable) + (dst_negative_scale_exists_next_prefixtable)))))) /\ (forall dst_index_exists_next_prefixtable. (exists pvs_le_gap_exists_next_prefixtabledomain. pvs_le_gap_exists_next_prefixtabledomain + (dst_index_exists_next_prefixtable) = (S l)) -> exists dst_positive_exists_next_prefixtable dst_negative_exists_next_prefixtable dst_value_exists_next_prefixtable. ((((exists ff_h_pvs_exists_next_prefixtableentrypositive. ff_h_pvs_exists_next_prefixtableentrypositive + S (dst_positive_exists_next_prefixtable) = S ((S (dst_index_exists_next_prefixtable)) * dst_positive_scale_exists_next_prefixtable)) /\ exists ff_q_pvs_exists_next_prefixtableentrypositive. dst_positive_code_exists_next_prefixtable = ff_q_pvs_exists_next_prefixtableentrypositive * S ((S (dst_index_exists_next_prefixtable)) * dst_positive_scale_exists_next_prefixtable) + (dst_positive_exists_next_prefixtable))) /\ (((((exists ff_h_pvs_exists_next_prefixtableentrynegative. ff_h_pvs_exists_next_prefixtableentrynegative + S (dst_negative_exists_next_prefixtable) = S ((S (dst_index_exists_next_prefixtable)) * dst_negative_scale_exists_next_prefixtable)) /\ exists ff_q_pvs_exists_next_prefixtableentrynegative. dst_negative_code_exists_next_prefixtable = ff_q_pvs_exists_next_prefixtableentrynegative * S ((S (dst_index_exists_next_prefixtable)) * dst_negative_scale_exists_next_prefixtable) + (dst_negative_exists_next_prefixtable))) /\ (exists ge_balance_positive_exists_next_prefixtableentryvalue ge_balance_negative_exists_next_prefixtableentryvalue. (((((dst_value_exists_next_prefixtable) = 2 * (ge_balance_positive_exists_next_prefixtableentryvalue) /\ (ge_balance_negative_exists_next_prefixtableentryvalue) = 0) \/ exists ge_signed_half_exists_next_prefixtableentryvaluedecode. (((dst_value_exists_next_prefixtable) = 2 * ge_signed_half_exists_next_prefixtableentryvaluedecode + 1 /\ (ge_balance_positive_exists_next_prefixtableentryvalue) = 0) /\ (ge_balance_negative_exists_next_prefixtableentryvalue) = S ge_signed_half_exists_next_prefixtableentryvaluedecode))) /\ ((dst_positive_exists_next_prefixtable) + ge_balance_negative_exists_next_prefixtableentryvalue = (dst_negative_exists_next_prefixtable) + ge_balance_positive_exists_next_prefixtableentryvalue))))))))) /\ (forall dc_index_exists_next_prefix dc_value_exists_next_prefix. (exists pvs_le_gap_exists_next_prefixdomain. pvs_le_gap_exists_next_prefixdomain + (dc_index_exists_next_prefix) = (S l)) -> (exists dst_positive_code_exists_next_prefixlookup dst_positive_scale_exists_next_prefixlookup dst_negative_code_exists_next_prefixlookup dst_negative_scale_exists_next_prefixlookup dst_positive_exists_next_prefixlookup dst_negative_exists_next_prefixlookup. (((H) = (((((dst_positive_code_exists_next_prefixlookup) + (dst_positive_scale_exists_next_prefixlookup)) * S ((dst_positive_code_exists_next_prefixlookup) + (dst_positive_scale_exists_next_prefixlookup)) + ((dst_positive_scale_exists_next_prefixlookup) + (dst_positive_scale_exists_next_prefixlookup))) + (((dst_negative_code_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)) * S ((dst_negative_code_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)) + ((dst_negative_scale_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)))) * S ((((dst_positive_code_exists_next_prefixlookup) + (dst_positive_scale_exists_next_prefixlookup)) * S ((dst_positive_code_exists_next_prefixlookup) + (dst_positive_scale_exists_next_prefixlookup)) + ((dst_positive_scale_exists_next_prefixlookup) + (dst_positive_scale_exists_next_prefixlookup))) + (((dst_negative_code_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)) * S ((dst_negative_code_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)) + ((dst_negative_scale_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)))) + ((((dst_negative_code_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)) * S ((dst_negative_code_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)) + ((dst_negative_scale_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup))) + (((dst_negative_code_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)) * S ((dst_negative_code_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)) + ((dst_negative_scale_exists_next_prefixlookup) + (dst_negative_scale_exists_next_prefixlookup)))))) /\ (((((exists ff_h_pvs_exists_next_prefixlookuppositive. ff_h_pvs_exists_next_prefixlookuppositive + S (dst_positive_exists_next_prefixlookup) = S ((S (dc_index_exists_next_prefix)) * dst_positive_scale_exists_next_prefixlookup)) /\ exists ff_q_pvs_exists_next_prefixlookuppositive. dst_positive_code_exists_next_prefixlookup = ff_q_pvs_exists_next_prefixlookuppositive * S ((S (dc_index_exists_next_prefix)) * dst_positive_scale_exists_next_prefixlookup) + (dst_positive_exists_next_prefixlookup))) /\ (((((exists ff_h_pvs_exists_next_prefixlookupnegative. ff_h_pvs_exists_next_prefixlookupnegative + S (dst_negative_exists_next_prefixlookup) = S ((S (dc_index_exists_next_prefix)) * dst_negative_scale_exists_next_prefixlookup)) /\ exists ff_q_pvs_exists_next_prefixlookupnegative. dst_negative_code_exists_next_prefixlookup = ff_q_pvs_exists_next_prefixlookupnegative * S ((S (dc_index_exists_next_prefix)) * dst_negative_scale_exists_next_prefixlookup) + (dst_negative_exists_next_prefixlookup))) /\ (exists ge_balance_positive_exists_next_prefixlookupvalue ge_balance_negative_exists_next_prefixlookupvalue. (((((dc_value_exists_next_prefix) = 2 * (ge_balance_positive_exists_next_prefixlookupvalue) /\ (ge_balance_negative_exists_next_prefixlookupvalue) = 0) \/ exists ge_signed_half_exists_next_prefixlookupvaluedecode. (((dc_value_exists_next_prefix) = 2 * ge_signed_half_exists_next_prefixlookupvaluedecode + 1 /\ (ge_balance_positive_exists_next_prefixlookupvalue) = 0) /\ (ge_balance_negative_exists_next_prefixlookupvalue) = S ge_signed_half_exists_next_prefixlookupvaluedecode))) /\ ((dst_positive_exists_next_prefixlookup) + ge_balance_negative_exists_next_prefixlookupvalue = (dst_negative_exists_next_prefixlookup) + ge_balance_positive_exists_next_prefixlookupvalue))))))))) -> ((((~((dc_index_exists_next_prefix)=0)) /\ (exists dc_quotient_exists_next_prefixentry dc_left_exists_next_prefixentry dc_right_exists_next_prefixentry. (((n)=(dc_index_exists_next_prefix)*dc_quotient_exists_next_prefixentry) /\ (((exists dst_positive_code_exists_next_prefixentryleft dst_positive_scale_exists_next_prefixentryleft dst_negative_code_exists_next_prefixentryleft dst_negative_scale_exists_next_prefixentryleft dst_positive_exists_next_prefixentryleft dst_negative_exists_next_prefixentryleft. (((F) = (((((dst_positive_code_exists_next_prefixentryleft) + (dst_positive_scale_exists_next_prefixentryleft)) * S ((dst_positive_code_exists_next_prefixentryleft) + (dst_positive_scale_exists_next_prefixentryleft)) + ((dst_positive_scale_exists_next_prefixentryleft) + (dst_positive_scale_exists_next_prefixentryleft))) + (((dst_negative_code_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)) * S ((dst_negative_code_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)) + ((dst_negative_scale_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)))) * S ((((dst_positive_code_exists_next_prefixentryleft) + (dst_positive_scale_exists_next_prefixentryleft)) * S ((dst_positive_code_exists_next_prefixentryleft) + (dst_positive_scale_exists_next_prefixentryleft)) + ((dst_positive_scale_exists_next_prefixentryleft) + (dst_positive_scale_exists_next_prefixentryleft))) + (((dst_negative_code_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)) * S ((dst_negative_code_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)) + ((dst_negative_scale_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)))) + ((((dst_negative_code_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)) * S ((dst_negative_code_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)) + ((dst_negative_scale_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft))) + (((dst_negative_code_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)) * S ((dst_negative_code_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)) + ((dst_negative_scale_exists_next_prefixentryleft) + (dst_negative_scale_exists_next_prefixentryleft)))))) /\ (((((exists ff_h_pvs_exists_next_prefixentryleftpositive. ff_h_pvs_exists_next_prefixentryleftpositive + S (dst_positive_exists_next_prefixentryleft) = S ((S (dc_index_exists_next_prefix)) * dst_positive_scale_exists_next_prefixentryleft)) /\ exists ff_q_pvs_exists_next_prefixentryleftpositive. dst_positive_code_exists_next_prefixentryleft = ff_q_pvs_exists_next_prefixentryleftpositive * S ((S (dc_index_exists_next_prefix)) * dst_positive_scale_exists_next_prefixentryleft) + (dst_positive_exists_next_prefixentryleft))) /\ (((((exists ff_h_pvs_exists_next_prefixentryleftnegative. ff_h_pvs_exists_next_prefixentryleftnegative + S (dst_negative_exists_next_prefixentryleft) = S ((S (dc_index_exists_next_prefix)) * dst_negative_scale_exists_next_prefixentryleft)) /\ exists ff_q_pvs_exists_next_prefixentryleftnegative. dst_negative_code_exists_next_prefixentryleft = ff_q_pvs_exists_next_prefixentryleftnegative * S ((S (dc_index_exists_next_prefix)) * dst_negative_scale_exists_next_prefixentryleft) + (dst_negative_exists_next_prefixentryleft))) /\ (exists ge_balance_positive_exists_next_prefixentryleftvalue ge_balance_negative_exists_next_prefixentryleftvalue. (((((dc_left_exists_next_prefixentry) = 2 * (ge_balance_positive_exists_next_prefixentryleftvalue) /\ (ge_balance_negative_exists_next_prefixentryleftvalue) = 0) \/ exists ge_signed_half_exists_next_prefixentryleftvaluedecode. (((dc_left_exists_next_prefixentry) = 2 * ge_signed_half_exists_next_prefixentryleftvaluedecode + 1 /\ (ge_balance_positive_exists_next_prefixentryleftvalue) = 0) /\ (ge_balance_negative_exists_next_prefixentryleftvalue) = S ge_signed_half_exists_next_prefixentryleftvaluedecode))) /\ ((dst_positive_exists_next_prefixentryleft) + ge_balance_negative_exists_next_prefixentryleftvalue = (dst_negative_exists_next_prefixentryleft) + ge_balance_positive_exists_next_prefixentryleftvalue))))))))) /\ (((exists dst_positive_code_exists_next_prefixentryright dst_positive_scale_exists_next_prefixentryright dst_negative_code_exists_next_prefixentryright dst_negative_scale_exists_next_prefixentryright dst_positive_exists_next_prefixentryright dst_negative_exists_next_prefixentryright. (((G) = (((((dst_positive_code_exists_next_prefixentryright) + (dst_positive_scale_exists_next_prefixentryright)) * S ((dst_positive_code_exists_next_prefixentryright) + (dst_positive_scale_exists_next_prefixentryright)) + ((dst_positive_scale_exists_next_prefixentryright) + (dst_positive_scale_exists_next_prefixentryright))) + (((dst_negative_code_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)) * S ((dst_negative_code_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)) + ((dst_negative_scale_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)))) * S ((((dst_positive_code_exists_next_prefixentryright) + (dst_positive_scale_exists_next_prefixentryright)) * S ((dst_positive_code_exists_next_prefixentryright) + (dst_positive_scale_exists_next_prefixentryright)) + ((dst_positive_scale_exists_next_prefixentryright) + (dst_positive_scale_exists_next_prefixentryright))) + (((dst_negative_code_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)) * S ((dst_negative_code_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)) + ((dst_negative_scale_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)))) + ((((dst_negative_code_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)) * S ((dst_negative_code_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)) + ((dst_negative_scale_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright))) + (((dst_negative_code_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)) * S ((dst_negative_code_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)) + ((dst_negative_scale_exists_next_prefixentryright) + (dst_negative_scale_exists_next_prefixentryright)))))) /\ (((((exists ff_h_pvs_exists_next_prefixentryrightpositive. ff_h_pvs_exists_next_prefixentryrightpositive + S (dst_positive_exists_next_prefixentryright) = S ((S (dc_quotient_exists_next_prefixentry)) * dst_positive_scale_exists_next_prefixentryright)) /\ exists ff_q_pvs_exists_next_prefixentryrightpositive. dst_positive_code_exists_next_prefixentryright = ff_q_pvs_exists_next_prefixentryrightpositive * S ((S (dc_quotient_exists_next_prefixentry)) * dst_positive_scale_exists_next_prefixentryright) + (dst_positive_exists_next_prefixentryright))) /\ (((((exists ff_h_pvs_exists_next_prefixentryrightnegative. ff_h_pvs_exists_next_prefixentryrightnegative + S (dst_negative_exists_next_prefixentryright) = S ((S (dc_quotient_exists_next_prefixentry)) * dst_negative_scale_exists_next_prefixentryright)) /\ exists ff_q_pvs_exists_next_prefixentryrightnegative. dst_negative_code_exists_next_prefixentryright = ff_q_pvs_exists_next_prefixentryrightnegative * S ((S (dc_quotient_exists_next_prefixentry)) * dst_negative_scale_exists_next_prefixentryright) + (dst_negative_exists_next_prefixentryright))) /\ (exists ge_balance_positive_exists_next_prefixentryrightvalue ge_balance_negative_exists_next_prefixentryrightvalue. (((((dc_right_exists_next_prefixentry) = 2 * (ge_balance_positive_exists_next_prefixentryrightvalue) /\ (ge_balance_negative_exists_next_prefixentryrightvalue) = 0) \/ exists ge_signed_half_exists_next_prefixentryrightvaluedecode. (((dc_right_exists_next_prefixentry) = 2 * ge_signed_half_exists_next_prefixentryrightvaluedecode + 1 /\ (ge_balance_positive_exists_next_prefixentryrightvalue) = 0) /\ (ge_balance_negative_exists_next_prefixentryrightvalue) = S ge_signed_half_exists_next_prefixentryrightvaluedecode))) /\ ((dst_positive_exists_next_prefixentryright) + ge_balance_negative_exists_next_prefixentryrightvalue = (dst_negative_exists_next_prefixentryright) + ge_balance_positive_exists_next_prefixentryrightvalue))))))))) /\ (exists sto_ap_exists_next_prefixentryproduct sto_an_exists_next_prefixentryproduct sto_bp_exists_next_prefixentryproduct sto_bn_exists_next_prefixentryproduct sto_cp_exists_next_prefixentryproduct sto_cn_exists_next_prefixentryproduct. (((((dc_left_exists_next_prefixentry) = 2 * (sto_ap_exists_next_prefixentryproduct) /\ (sto_an_exists_next_prefixentryproduct) = 0) \/ exists ge_signed_half_exists_next_prefixentryproductleft. (((dc_left_exists_next_prefixentry) = 2 * ge_signed_half_exists_next_prefixentryproductleft + 1 /\ (sto_ap_exists_next_prefixentryproduct) = 0) /\ (sto_an_exists_next_prefixentryproduct) = S ge_signed_half_exists_next_prefixentryproductleft))) /\ ((((((dc_right_exists_next_prefixentry) = 2 * (sto_bp_exists_next_prefixentryproduct) /\ (sto_bn_exists_next_prefixentryproduct) = 0) \/ exists ge_signed_half_exists_next_prefixentryproductright. (((dc_right_exists_next_prefixentry) = 2 * ge_signed_half_exists_next_prefixentryproductright + 1 /\ (sto_bp_exists_next_prefixentryproduct) = 0) /\ (sto_bn_exists_next_prefixentryproduct) = S ge_signed_half_exists_next_prefixentryproductright))) /\ ((((((dc_value_exists_next_prefix) = 2 * (sto_cp_exists_next_prefixentryproduct) /\ (sto_cn_exists_next_prefixentryproduct) = 0) \/ exists ge_signed_half_exists_next_prefixentryproductoutput. (((dc_value_exists_next_prefix) = 2 * ge_signed_half_exists_next_prefixentryproductoutput + 1 /\ (sto_cp_exists_next_prefixentryproduct) = 0) /\ (sto_cn_exists_next_prefixentryproduct) = S ge_signed_half_exists_next_prefixentryproductoutput))) /\ ((sto_ap_exists_next_prefixentryproduct * sto_bp_exists_next_prefixentryproduct + sto_an_exists_next_prefixentryproduct * sto_bn_exists_next_prefixentryproduct) + sto_cn_exists_next_prefixentryproduct = (sto_ap_exists_next_prefixentryproduct * sto_bn_exists_next_prefixentryproduct + sto_an_exists_next_prefixentryproduct * sto_bp_exists_next_prefixentryproduct) + sto_cp_exists_next_prefixentryproduct))))))))))))))) \/ ((((dc_index_exists_next_prefix)=0 \/ ~(exists pvs_factor_exists_next_prefixentrynondivisor. (n) = (dc_index_exists_next_prefix) * pvs_factor_exists_next_prefixentrynondivisor)) /\ ((dc_value_exists_next_prefix)=0))))))) /\ (forall dst_index_exists_previous_values dst_first_exists_previous_values dst_second_exists_previous_values. (exists pvs_gap_exists_previous_valuesbound. pvs_gap_exists_previous_valuesbound + S (dst_index_exists_previous_values) = (S l)) -> (exists dst_positive_code_exists_previous_valuesfirst dst_positive_scale_exists_previous_valuesfirst dst_negative_code_exists_previous_valuesfirst dst_negative_scale_exists_previous_valuesfirst dst_positive_exists_previous_valuesfirst dst_negative_exists_previous_valuesfirst. (((x) = (((((dst_positive_code_exists_previous_valuesfirst) + (dst_positive_scale_exists_previous_valuesfirst)) * S ((dst_positive_code_exists_previous_valuesfirst) + (dst_positive_scale_exists_previous_valuesfirst)) + ((dst_positive_scale_exists_previous_valuesfirst) + (dst_positive_scale_exists_previous_valuesfirst))) + (((dst_negative_code_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)) * S ((dst_negative_code_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)) + ((dst_negative_scale_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)))) * S ((((dst_positive_code_exists_previous_valuesfirst) + (dst_positive_scale_exists_previous_valuesfirst)) * S ((dst_positive_code_exists_previous_valuesfirst) + (dst_positive_scale_exists_previous_valuesfirst)) + ((dst_positive_scale_exists_previous_valuesfirst) + (dst_positive_scale_exists_previous_valuesfirst))) + (((dst_negative_code_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)) * S ((dst_negative_code_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)) + ((dst_negative_scale_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)))) + ((((dst_negative_code_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)) * S ((dst_negative_code_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)) + ((dst_negative_scale_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst))) + (((dst_negative_code_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)) * S ((dst_negative_code_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)) + ((dst_negative_scale_exists_previous_valuesfirst) + (dst_negative_scale_exists_previous_valuesfirst)))))) /\ (((((exists ff_h_pvs_exists_previous_valuesfirstpositive. ff_h_pvs_exists_previous_valuesfirstpositive + S (dst_positive_exists_previous_valuesfirst) = S ((S (dst_index_exists_previous_values)) * dst_positive_scale_exists_previous_valuesfirst)) /\ exists ff_q_pvs_exists_previous_valuesfirstpositive. dst_positive_code_exists_previous_valuesfirst = ff_q_pvs_exists_previous_valuesfirstpositive * S ((S (dst_index_exists_previous_values)) * dst_positive_scale_exists_previous_valuesfirst) + (dst_positive_exists_previous_valuesfirst))) /\ (((((exists ff_h_pvs_exists_previous_valuesfirstnegative. ff_h_pvs_exists_previous_valuesfirstnegative + S (dst_negative_exists_previous_valuesfirst) = S ((S (dst_index_exists_previous_values)) * dst_negative_scale_exists_previous_valuesfirst)) /\ exists ff_q_pvs_exists_previous_valuesfirstnegative. dst_negative_code_exists_previous_valuesfirst = ff_q_pvs_exists_previous_valuesfirstnegative * S ((S (dst_index_exists_previous_values)) * dst_negative_scale_exists_previous_valuesfirst) + (dst_negative_exists_previous_valuesfirst))) /\ (exists ge_balance_positive_exists_previous_valuesfirstvalue ge_balance_negative_exists_previous_valuesfirstvalue. (((((dst_first_exists_previous_values) = 2 * (ge_balance_positive_exists_previous_valuesfirstvalue) /\ (ge_balance_negative_exists_previous_valuesfirstvalue) = 0) \/ exists ge_signed_half_exists_previous_valuesfirstvaluedecode. (((dst_first_exists_previous_values) = 2 * ge_signed_half_exists_previous_valuesfirstvaluedecode + 1 /\ (ge_balance_positive_exists_previous_valuesfirstvalue) = 0) /\ (ge_balance_negative_exists_previous_valuesfirstvalue) = S ge_signed_half_exists_previous_valuesfirstvaluedecode))) /\ ((dst_positive_exists_previous_valuesfirst) + ge_balance_negative_exists_previous_valuesfirstvalue = (dst_negative_exists_previous_valuesfirst) + ge_balance_positive_exists_previous_valuesfirstvalue))))))))) -> (exists dst_positive_code_exists_previous_valuessecond dst_positive_scale_exists_previous_valuessecond dst_negative_code_exists_previous_valuessecond dst_negative_scale_exists_previous_valuessecond dst_positive_exists_previous_valuessecond dst_negative_exists_previous_valuessecond. (((H) = (((((dst_positive_code_exists_previous_valuessecond) + (dst_positive_scale_exists_previous_valuessecond)) * S ((dst_positive_code_exists_previous_valuessecond) + (dst_positive_scale_exists_previous_valuessecond)) + ((dst_positive_scale_exists_previous_valuessecond) + (dst_positive_scale_exists_previous_valuessecond))) + (((dst_negative_code_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)) * S ((dst_negative_code_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)) + ((dst_negative_scale_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)))) * S ((((dst_positive_code_exists_previous_valuessecond) + (dst_positive_scale_exists_previous_valuessecond)) * S ((dst_positive_code_exists_previous_valuessecond) + (dst_positive_scale_exists_previous_valuessecond)) + ((dst_positive_scale_exists_previous_valuessecond) + (dst_positive_scale_exists_previous_valuessecond))) + (((dst_negative_code_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)) * S ((dst_negative_code_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)) + ((dst_negative_scale_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)))) + ((((dst_negative_code_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)) * S ((dst_negative_code_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)) + ((dst_negative_scale_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond))) + (((dst_negative_code_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)) * S ((dst_negative_code_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)) + ((dst_negative_scale_exists_previous_valuessecond) + (dst_negative_scale_exists_previous_valuessecond)))))) /\ (((((exists ff_h_pvs_exists_previous_valuessecondpositive. ff_h_pvs_exists_previous_valuessecondpositive + S (dst_positive_exists_previous_valuessecond) = S ((S (dst_index_exists_previous_values)) * dst_positive_scale_exists_previous_valuessecond)) /\ exists ff_q_pvs_exists_previous_valuessecondpositive. dst_positive_code_exists_previous_valuessecond = ff_q_pvs_exists_previous_valuessecondpositive * S ((S (dst_index_exists_previous_values)) * dst_positive_scale_exists_previous_valuessecond) + (dst_positive_exists_previous_valuessecond))) /\ (((((exists ff_h_pvs_exists_previous_valuessecondnegative. ff_h_pvs_exists_previous_valuessecondnegative + S (dst_negative_exists_previous_valuessecond) = S ((S (dst_index_exists_previous_values)) * dst_negative_scale_exists_previous_valuessecond)) /\ exists ff_q_pvs_exists_previous_valuessecondnegative. dst_negative_code_exists_previous_valuessecond = ff_q_pvs_exists_previous_valuessecondnegative * S ((S (dst_index_exists_previous_values)) * dst_negative_scale_exists_previous_valuessecond) + (dst_negative_exists_previous_valuessecond))) /\ (exists ge_balance_positive_exists_previous_valuessecondvalue ge_balance_negative_exists_previous_valuessecondvalue. (((((dst_second_exists_previous_values) = 2 * (ge_balance_positive_exists_previous_valuessecondvalue) /\ (ge_balance_negative_exists_previous_valuessecondvalue) = 0) \/ exists ge_signed_half_exists_previous_valuessecondvaluedecode. (((dst_second_exists_previous_values) = 2 * ge_signed_half_exists_previous_valuessecondvaluedecode + 1 /\ (ge_balance_positive_exists_previous_valuessecondvalue) = 0) /\ (ge_balance_negative_exists_previous_valuessecondvalue) = S ge_signed_half_exists_previous_valuessecondvaluedecode))) /\ ((dst_positive_exists_previous_valuessecond) + ge_balance_negative_exists_previous_valuessecondvalue = (dst_negative_exists_previous_valuessecond) + ge_balance_positive_exists_previous_valuessecondvalue))))))))) -> dst_first_exists_previous_values = dst_second_exists_previous_values)
  38. 0038specialize dirichlet_convolution_prefix_append (F)
  39. 0039specialize dirichlet_convolution_prefix_append (G)
  40. 0040specialize dirichlet_convolution_prefix_append (n)
  41. 0041specialize dirichlet_convolution_prefix_append (l)
  42. 0042specialize dirichlet_convolution_prefix_append (x)
  43. 0043specialize dirichlet_convolution_prefix_append (x1)
  44. 0044apply dirichlet_convolution_prefix_append
  45. 0045exact hprev_witness
  46. 0046exact hz_witness
  47. 0047cases hnext
  48. 0048cases hnext_witness
  49. 0049exists x2
  50. 0050exact hnext_witness_left