DT000A

dirichlet_convolution_at_one_iff

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

Actual convolution at input one is exactly the actual signed product F(1)*G(1); both implications construct or inspect the real two-entry masked fold.

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 a b z. (exists dst_positive_code_one_first dst_positive_scale_one_first dst_negative_code_one_first dst_negative_scale_one_first dst_positive_one_first dst_negative_one_first. (((F) = (((((dst_positive_code_one_first) + (dst_positive_scale_one_first)) * S ((dst_positive_code_one_first) + (dst_positive_scale_one_first)) + ((dst_positive_scale_one_first) + (dst_positive_scale_one_first))) + (((dst_negative_code_one_first) + (dst_negative_scale_one_first)) * S ((dst_negative_code_one_first) + (dst_negative_scale_one_first)) + ((dst_negative_scale_one_first) + (dst_negative_scale_one_first)))) * S ((((dst_positive_code_one_first) + (dst_positive_scale_one_first)) * S ((dst_positive_code_one_first) + (dst_positive_scale_one_first)) + ((dst_positive_scale_one_first) + (dst_positive_scale_one_first))) + (((dst_negative_code_one_first) + (dst_negative_scale_one_first)) * S ((dst_negative_code_one_first) + (dst_negative_scale_one_first)) + ((dst_negative_scale_one_first) + (dst_negative_scale_one_first)))) + ((((dst_negative_code_one_first) + (dst_negative_scale_one_first)) * S ((dst_negative_code_one_first) + (dst_negative_scale_one_first)) + ((dst_negative_scale_one_first) + (dst_negative_scale_one_first))) + (((dst_negative_code_one_first) + (dst_negative_scale_one_first)) * S ((dst_negative_code_one_first) + (dst_negative_scale_one_first)) + ((dst_negative_scale_one_first) + (dst_negative_scale_one_first)))))) /\ (((((exists ff_h_pvs_one_firstpositive. ff_h_pvs_one_firstpositive + S (dst_positive_one_first) = S ((S (1)) * dst_positive_scale_one_first)) /\ exists ff_q_pvs_one_firstpositive. dst_positive_code_one_first = ff_q_pvs_one_firstpositive * S ((S (1)) * dst_positive_scale_one_first) + (dst_positive_one_first))) /\ (((((exists ff_h_pvs_one_firstnegative. ff_h_pvs_one_firstnegative + S (dst_negative_one_first) = S ((S (1)) * dst_negative_scale_one_first)) /\ exists ff_q_pvs_one_firstnegative. dst_negative_code_one_first = ff_q_pvs_one_firstnegative * S ((S (1)) * dst_negative_scale_one_first) + (dst_negative_one_first))) /\ (exists ge_balance_positive_one_firstvalue ge_balance_negative_one_firstvalue. (((((a) = 2 * (ge_balance_positive_one_firstvalue) /\ (ge_balance_negative_one_firstvalue) = 0) \/ exists ge_signed_half_one_firstvaluedecode. (((a) = 2 * ge_signed_half_one_firstvaluedecode + 1 /\ (ge_balance_positive_one_firstvalue) = 0) /\ (ge_balance_negative_one_firstvalue) = S ge_signed_half_one_firstvaluedecode))) /\ ((dst_positive_one_first) + ge_balance_negative_one_firstvalue = (dst_negative_one_first) + ge_balance_positive_one_firstvalue))))))))) -> (exists dst_positive_code_one_second dst_positive_scale_one_second dst_negative_code_one_second dst_negative_scale_one_second dst_positive_one_second dst_negative_one_second. (((G) = (((((dst_positive_code_one_second) + (dst_positive_scale_one_second)) * S ((dst_positive_code_one_second) + (dst_positive_scale_one_second)) + ((dst_positive_scale_one_second) + (dst_positive_scale_one_second))) + (((dst_negative_code_one_second) + (dst_negative_scale_one_second)) * S ((dst_negative_code_one_second) + (dst_negative_scale_one_second)) + ((dst_negative_scale_one_second) + (dst_negative_scale_one_second)))) * S ((((dst_positive_code_one_second) + (dst_positive_scale_one_second)) * S ((dst_positive_code_one_second) + (dst_positive_scale_one_second)) + ((dst_positive_scale_one_second) + (dst_positive_scale_one_second))) + (((dst_negative_code_one_second) + (dst_negative_scale_one_second)) * S ((dst_negative_code_one_second) + (dst_negative_scale_one_second)) + ((dst_negative_scale_one_second) + (dst_negative_scale_one_second)))) + ((((dst_negative_code_one_second) + (dst_negative_scale_one_second)) * S ((dst_negative_code_one_second) + (dst_negative_scale_one_second)) + ((dst_negative_scale_one_second) + (dst_negative_scale_one_second))) + (((dst_negative_code_one_second) + (dst_negative_scale_one_second)) * S ((dst_negative_code_one_second) + (dst_negative_scale_one_second)) + ((dst_negative_scale_one_second) + (dst_negative_scale_one_second)))))) /\ (((((exists ff_h_pvs_one_secondpositive. ff_h_pvs_one_secondpositive + S (dst_positive_one_second) = S ((S (1)) * dst_positive_scale_one_second)) /\ exists ff_q_pvs_one_secondpositive. dst_positive_code_one_second = ff_q_pvs_one_secondpositive * S ((S (1)) * dst_positive_scale_one_second) + (dst_positive_one_second))) /\ (((((exists ff_h_pvs_one_secondnegative. ff_h_pvs_one_secondnegative + S (dst_negative_one_second) = S ((S (1)) * dst_negative_scale_one_second)) /\ exists ff_q_pvs_one_secondnegative. dst_negative_code_one_second = ff_q_pvs_one_secondnegative * S ((S (1)) * dst_negative_scale_one_second) + (dst_negative_one_second))) /\ (exists ge_balance_positive_one_secondvalue ge_balance_negative_one_secondvalue. (((((b) = 2 * (ge_balance_positive_one_secondvalue) /\ (ge_balance_negative_one_secondvalue) = 0) \/ exists ge_signed_half_one_secondvaluedecode. (((b) = 2 * ge_signed_half_one_secondvaluedecode + 1 /\ (ge_balance_positive_one_secondvalue) = 0) /\ (ge_balance_negative_one_secondvalue) = S ge_signed_half_one_secondvaluedecode))) /\ ((dst_positive_one_second) + ge_balance_negative_one_secondvalue = (dst_negative_one_second) + ge_balance_positive_one_secondvalue))))))))) -> (((((~((1)=0)) /\ (exists dc_mask_one_convolution. ((((exists dst_positive_code_one_convolutionmasktable dst_positive_scale_one_convolutionmasktable dst_negative_code_one_convolutionmasktable dst_negative_scale_one_convolutionmasktable. (((dc_mask_one_convolution) = (((((dst_positive_code_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable)) * S ((dst_positive_code_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable)) + ((dst_positive_scale_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable))) + (((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) * S ((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) + ((dst_negative_scale_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)))) * S ((((dst_positive_code_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable)) * S ((dst_positive_code_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable)) + ((dst_positive_scale_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable))) + (((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) * S ((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) + ((dst_negative_scale_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)))) + ((((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) * S ((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) + ((dst_negative_scale_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable))) + (((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) * S ((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) + ((dst_negative_scale_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)))))) /\ (forall dst_index_one_convolutionmasktable. (exists pvs_le_gap_one_convolutionmasktabledomain. pvs_le_gap_one_convolutionmasktabledomain + (dst_index_one_convolutionmasktable) = (1)) -> exists dst_positive_one_convolutionmasktable dst_negative_one_convolutionmasktable dst_value_one_convolutionmasktable. ((((exists ff_h_pvs_one_convolutionmasktableentrypositive. ff_h_pvs_one_convolutionmasktableentrypositive + S (dst_positive_one_convolutionmasktable) = S ((S (dst_index_one_convolutionmasktable)) * dst_positive_scale_one_convolutionmasktable)) /\ exists ff_q_pvs_one_convolutionmasktableentrypositive. dst_positive_code_one_convolutionmasktable = ff_q_pvs_one_convolutionmasktableentrypositive * S ((S (dst_index_one_convolutionmasktable)) * dst_positive_scale_one_convolutionmasktable) + (dst_positive_one_convolutionmasktable))) /\ (((((exists ff_h_pvs_one_convolutionmasktableentrynegative. ff_h_pvs_one_convolutionmasktableentrynegative + S (dst_negative_one_convolutionmasktable) = S ((S (dst_index_one_convolutionmasktable)) * dst_negative_scale_one_convolutionmasktable)) /\ exists ff_q_pvs_one_convolutionmasktableentrynegative. dst_negative_code_one_convolutionmasktable = ff_q_pvs_one_convolutionmasktableentrynegative * S ((S (dst_index_one_convolutionmasktable)) * dst_negative_scale_one_convolutionmasktable) + (dst_negative_one_convolutionmasktable))) /\ (exists ge_balance_positive_one_convolutionmasktableentryvalue ge_balance_negative_one_convolutionmasktableentryvalue. (((((dst_value_one_convolutionmasktable) = 2 * (ge_balance_positive_one_convolutionmasktableentryvalue) /\ (ge_balance_negative_one_convolutionmasktableentryvalue) = 0) \/ exists ge_signed_half_one_convolutionmasktableentryvaluedecode. (((dst_value_one_convolutionmasktable) = 2 * ge_signed_half_one_convolutionmasktableentryvaluedecode + 1 /\ (ge_balance_positive_one_convolutionmasktableentryvalue) = 0) /\ (ge_balance_negative_one_convolutionmasktableentryvalue) = S ge_signed_half_one_convolutionmasktableentryvaluedecode))) /\ ((dst_positive_one_convolutionmasktable) + ge_balance_negative_one_convolutionmasktableentryvalue = (dst_negative_one_convolutionmasktable) + ge_balance_positive_one_convolutionmasktableentryvalue))))))))) /\ (forall dc_index_one_convolutionmask dc_value_one_convolutionmask. (exists pvs_le_gap_one_convolutionmaskdomain. pvs_le_gap_one_convolutionmaskdomain + (dc_index_one_convolutionmask) = (1)) -> (exists dst_positive_code_one_convolutionmasklookup dst_positive_scale_one_convolutionmasklookup dst_negative_code_one_convolutionmasklookup dst_negative_scale_one_convolutionmasklookup dst_positive_one_convolutionmasklookup dst_negative_one_convolutionmasklookup. (((dc_mask_one_convolution) = (((((dst_positive_code_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup)) * S ((dst_positive_code_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup)) + ((dst_positive_scale_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup))) + (((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) * S ((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) + ((dst_negative_scale_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)))) * S ((((dst_positive_code_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup)) * S ((dst_positive_code_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup)) + ((dst_positive_scale_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup))) + (((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) * S ((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) + ((dst_negative_scale_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)))) + ((((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) * S ((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) + ((dst_negative_scale_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup))) + (((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) * S ((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) + ((dst_negative_scale_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)))))) /\ (((((exists ff_h_pvs_one_convolutionmasklookuppositive. ff_h_pvs_one_convolutionmasklookuppositive + S (dst_positive_one_convolutionmasklookup) = S ((S (dc_index_one_convolutionmask)) * dst_positive_scale_one_convolutionmasklookup)) /\ exists ff_q_pvs_one_convolutionmasklookuppositive. dst_positive_code_one_convolutionmasklookup = ff_q_pvs_one_convolutionmasklookuppositive * S ((S (dc_index_one_convolutionmask)) * dst_positive_scale_one_convolutionmasklookup) + (dst_positive_one_convolutionmasklookup))) /\ (((((exists ff_h_pvs_one_convolutionmasklookupnegative. ff_h_pvs_one_convolutionmasklookupnegative + S (dst_negative_one_convolutionmasklookup) = S ((S (dc_index_one_convolutionmask)) * dst_negative_scale_one_convolutionmasklookup)) /\ exists ff_q_pvs_one_convolutionmasklookupnegative. dst_negative_code_one_convolutionmasklookup = ff_q_pvs_one_convolutionmasklookupnegative * S ((S (dc_index_one_convolutionmask)) * dst_negative_scale_one_convolutionmasklookup) + (dst_negative_one_convolutionmasklookup))) /\ (exists ge_balance_positive_one_convolutionmasklookupvalue ge_balance_negative_one_convolutionmasklookupvalue. (((((dc_value_one_convolutionmask) = 2 * (ge_balance_positive_one_convolutionmasklookupvalue) /\ (ge_balance_negative_one_convolutionmasklookupvalue) = 0) \/ exists ge_signed_half_one_convolutionmasklookupvaluedecode. (((dc_value_one_convolutionmask) = 2 * ge_signed_half_one_convolutionmasklookupvaluedecode + 1 /\ (ge_balance_positive_one_convolutionmasklookupvalue) = 0) /\ (ge_balance_negative_one_convolutionmasklookupvalue) = S ge_signed_half_one_convolutionmasklookupvaluedecode))) /\ ((dst_positive_one_convolutionmasklookup) + ge_balance_negative_one_convolutionmasklookupvalue = (dst_negative_one_convolutionmasklookup) + ge_balance_positive_one_convolutionmasklookupvalue))))))))) -> ((((~((dc_index_one_convolutionmask)=0)) /\ (exists dc_quotient_one_convolutionmaskentry dc_left_one_convolutionmaskentry dc_right_one_convolutionmaskentry. (((1)=(dc_index_one_convolutionmask)*dc_quotient_one_convolutionmaskentry) /\ (((exists dst_positive_code_one_convolutionmaskentryleft dst_positive_scale_one_convolutionmaskentryleft dst_negative_code_one_convolutionmaskentryleft dst_negative_scale_one_convolutionmaskentryleft dst_positive_one_convolutionmaskentryleft dst_negative_one_convolutionmaskentryleft. (((F) = (((((dst_positive_code_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft)) * S ((dst_positive_code_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft)) + ((dst_positive_scale_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft))) + (((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) * S ((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) + ((dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)))) * S ((((dst_positive_code_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft)) * S ((dst_positive_code_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft)) + ((dst_positive_scale_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft))) + (((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) * S ((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) + ((dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)))) + ((((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) * S ((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) + ((dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft))) + (((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) * S ((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) + ((dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)))))) /\ (((((exists ff_h_pvs_one_convolutionmaskentryleftpositive. ff_h_pvs_one_convolutionmaskentryleftpositive + S (dst_positive_one_convolutionmaskentryleft) = S ((S (dc_index_one_convolutionmask)) * dst_positive_scale_one_convolutionmaskentryleft)) /\ exists ff_q_pvs_one_convolutionmaskentryleftpositive. dst_positive_code_one_convolutionmaskentryleft = ff_q_pvs_one_convolutionmaskentryleftpositive * S ((S (dc_index_one_convolutionmask)) * dst_positive_scale_one_convolutionmaskentryleft) + (dst_positive_one_convolutionmaskentryleft))) /\ (((((exists ff_h_pvs_one_convolutionmaskentryleftnegative. ff_h_pvs_one_convolutionmaskentryleftnegative + S (dst_negative_one_convolutionmaskentryleft) = S ((S (dc_index_one_convolutionmask)) * dst_negative_scale_one_convolutionmaskentryleft)) /\ exists ff_q_pvs_one_convolutionmaskentryleftnegative. dst_negative_code_one_convolutionmaskentryleft = ff_q_pvs_one_convolutionmaskentryleftnegative * S ((S (dc_index_one_convolutionmask)) * dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_one_convolutionmaskentryleft))) /\ (exists ge_balance_positive_one_convolutionmaskentryleftvalue ge_balance_negative_one_convolutionmaskentryleftvalue. (((((dc_left_one_convolutionmaskentry) = 2 * (ge_balance_positive_one_convolutionmaskentryleftvalue) /\ (ge_balance_negative_one_convolutionmaskentryleftvalue) = 0) \/ exists ge_signed_half_one_convolutionmaskentryleftvaluedecode. (((dc_left_one_convolutionmaskentry) = 2 * ge_signed_half_one_convolutionmaskentryleftvaluedecode + 1 /\ (ge_balance_positive_one_convolutionmaskentryleftvalue) = 0) /\ (ge_balance_negative_one_convolutionmaskentryleftvalue) = S ge_signed_half_one_convolutionmaskentryleftvaluedecode))) /\ ((dst_positive_one_convolutionmaskentryleft) + ge_balance_negative_one_convolutionmaskentryleftvalue = (dst_negative_one_convolutionmaskentryleft) + ge_balance_positive_one_convolutionmaskentryleftvalue))))))))) /\ (((exists dst_positive_code_one_convolutionmaskentryright dst_positive_scale_one_convolutionmaskentryright dst_negative_code_one_convolutionmaskentryright dst_negative_scale_one_convolutionmaskentryright dst_positive_one_convolutionmaskentryright dst_negative_one_convolutionmaskentryright. (((G) = (((((dst_positive_code_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright)) * S ((dst_positive_code_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright)) + ((dst_positive_scale_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright))) + (((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) * S ((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) + ((dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)))) * S ((((dst_positive_code_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright)) * S ((dst_positive_code_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright)) + ((dst_positive_scale_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright))) + (((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) * S ((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) + ((dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)))) + ((((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) * S ((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) + ((dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright))) + (((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) * S ((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) + ((dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)))))) /\ (((((exists ff_h_pvs_one_convolutionmaskentryrightpositive. ff_h_pvs_one_convolutionmaskentryrightpositive + S (dst_positive_one_convolutionmaskentryright) = S ((S (dc_quotient_one_convolutionmaskentry)) * dst_positive_scale_one_convolutionmaskentryright)) /\ exists ff_q_pvs_one_convolutionmaskentryrightpositive. dst_positive_code_one_convolutionmaskentryright = ff_q_pvs_one_convolutionmaskentryrightpositive * S ((S (dc_quotient_one_convolutionmaskentry)) * dst_positive_scale_one_convolutionmaskentryright) + (dst_positive_one_convolutionmaskentryright))) /\ (((((exists ff_h_pvs_one_convolutionmaskentryrightnegative. ff_h_pvs_one_convolutionmaskentryrightnegative + S (dst_negative_one_convolutionmaskentryright) = S ((S (dc_quotient_one_convolutionmaskentry)) * dst_negative_scale_one_convolutionmaskentryright)) /\ exists ff_q_pvs_one_convolutionmaskentryrightnegative. dst_negative_code_one_convolutionmaskentryright = ff_q_pvs_one_convolutionmaskentryrightnegative * S ((S (dc_quotient_one_convolutionmaskentry)) * dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_one_convolutionmaskentryright))) /\ (exists ge_balance_positive_one_convolutionmaskentryrightvalue ge_balance_negative_one_convolutionmaskentryrightvalue. (((((dc_right_one_convolutionmaskentry) = 2 * (ge_balance_positive_one_convolutionmaskentryrightvalue) /\ (ge_balance_negative_one_convolutionmaskentryrightvalue) = 0) \/ exists ge_signed_half_one_convolutionmaskentryrightvaluedecode. (((dc_right_one_convolutionmaskentry) = 2 * ge_signed_half_one_convolutionmaskentryrightvaluedecode + 1 /\ (ge_balance_positive_one_convolutionmaskentryrightvalue) = 0) /\ (ge_balance_negative_one_convolutionmaskentryrightvalue) = S ge_signed_half_one_convolutionmaskentryrightvaluedecode))) /\ ((dst_positive_one_convolutionmaskentryright) + ge_balance_negative_one_convolutionmaskentryrightvalue = (dst_negative_one_convolutionmaskentryright) + ge_balance_positive_one_convolutionmaskentryrightvalue))))))))) /\ (exists sto_ap_one_convolutionmaskentryproduct sto_an_one_convolutionmaskentryproduct sto_bp_one_convolutionmaskentryproduct sto_bn_one_convolutionmaskentryproduct sto_cp_one_convolutionmaskentryproduct sto_cn_one_convolutionmaskentryproduct. (((((dc_left_one_convolutionmaskentry) = 2 * (sto_ap_one_convolutionmaskentryproduct) /\ (sto_an_one_convolutionmaskentryproduct) = 0) \/ exists ge_signed_half_one_convolutionmaskentryproductleft. (((dc_left_one_convolutionmaskentry) = 2 * ge_signed_half_one_convolutionmaskentryproductleft + 1 /\ (sto_ap_one_convolutionmaskentryproduct) = 0) /\ (sto_an_one_convolutionmaskentryproduct) = S ge_signed_half_one_convolutionmaskentryproductleft))) /\ ((((((dc_right_one_convolutionmaskentry) = 2 * (sto_bp_one_convolutionmaskentryproduct) /\ (sto_bn_one_convolutionmaskentryproduct) = 0) \/ exists ge_signed_half_one_convolutionmaskentryproductright. (((dc_right_one_convolutionmaskentry) = 2 * ge_signed_half_one_convolutionmaskentryproductright + 1 /\ (sto_bp_one_convolutionmaskentryproduct) = 0) /\ (sto_bn_one_convolutionmaskentryproduct) = S ge_signed_half_one_convolutionmaskentryproductright))) /\ ((((((dc_value_one_convolutionmask) = 2 * (sto_cp_one_convolutionmaskentryproduct) /\ (sto_cn_one_convolutionmaskentryproduct) = 0) \/ exists ge_signed_half_one_convolutionmaskentryproductoutput. (((dc_value_one_convolutionmask) = 2 * ge_signed_half_one_convolutionmaskentryproductoutput + 1 /\ (sto_cp_one_convolutionmaskentryproduct) = 0) /\ (sto_cn_one_convolutionmaskentryproduct) = S ge_signed_half_one_convolutionmaskentryproductoutput))) /\ ((sto_ap_one_convolutionmaskentryproduct * sto_bp_one_convolutionmaskentryproduct + sto_an_one_convolutionmaskentryproduct * sto_bn_one_convolutionmaskentryproduct) + sto_cn_one_convolutionmaskentryproduct = (sto_ap_one_convolutionmaskentryproduct * sto_bn_one_convolutionmaskentryproduct + sto_an_one_convolutionmaskentryproduct * sto_bp_one_convolutionmaskentryproduct) + sto_cp_one_convolutionmaskentryproduct))))))))))))))) \/ ((((dc_index_one_convolutionmask)=0 \/ ~(exists pvs_factor_one_convolutionmaskentrynondivisor. (1) = (dc_index_one_convolutionmask) * pvs_factor_one_convolutionmaskentrynondivisor)) /\ ((dc_value_one_convolutionmask)=0))))))) /\ (exists dst_positive_code_one_convolutionfold dst_positive_scale_one_convolutionfold dst_negative_code_one_convolutionfold dst_negative_scale_one_convolutionfold dst_positive_sum_one_convolutionfold dst_negative_sum_one_convolutionfold. (((dc_mask_one_convolution) = (((((dst_positive_code_one_convolutionfold) + (dst_positive_scale_one_convolutionfold)) * S ((dst_positive_code_one_convolutionfold) + (dst_positive_scale_one_convolutionfold)) + ((dst_positive_scale_one_convolutionfold) + (dst_positive_scale_one_convolutionfold))) + (((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) * S ((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) + ((dst_negative_scale_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)))) * S ((((dst_positive_code_one_convolutionfold) + (dst_positive_scale_one_convolutionfold)) * S ((dst_positive_code_one_convolutionfold) + (dst_positive_scale_one_convolutionfold)) + ((dst_positive_scale_one_convolutionfold) + (dst_positive_scale_one_convolutionfold))) + (((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) * S ((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) + ((dst_negative_scale_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)))) + ((((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) * S ((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) + ((dst_negative_scale_one_convolutionfold) + (dst_negative_scale_one_convolutionfold))) + (((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) * S ((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) + ((dst_negative_scale_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)))))) /\ (((exists fs_u_dst_one_convolutionfoldpositive fs_v_dst_one_convolutionfoldpositive. ((((exists fs_h_dst_one_convolutionfoldpositive_body_start. fs_h_dst_one_convolutionfoldpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_one_convolutionfoldpositive)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_start. fs_u_dst_one_convolutionfoldpositive = fs_q_dst_one_convolutionfoldpositive_body_start * S ((S (0)) * fs_v_dst_one_convolutionfoldpositive) + (0))) /\ ((((exists fs_h_dst_one_convolutionfoldpositive_body_terminal. fs_h_dst_one_convolutionfoldpositive_body_terminal + S (dst_positive_sum_one_convolutionfold) = S ((S (S (1))) * fs_v_dst_one_convolutionfoldpositive)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_terminal. fs_u_dst_one_convolutionfoldpositive = fs_q_dst_one_convolutionfoldpositive_body_terminal * S ((S (S (1))) * fs_v_dst_one_convolutionfoldpositive) + (dst_positive_sum_one_convolutionfold))) /\ forall fs_i_dst_one_convolutionfoldpositive_body_steps. (exists fs_lt_dst_one_convolutionfoldpositive_body_steps_bound. fs_lt_dst_one_convolutionfoldpositive_body_steps_bound + S fs_i_dst_one_convolutionfoldpositive_body_steps = S (1)) -> exists fs_a_dst_one_convolutionfoldpositive_body_steps fs_r_dst_one_convolutionfoldpositive_body_steps fs_s_dst_one_convolutionfoldpositive_body_steps. ((((exists fs_h_dst_one_convolutionfoldpositive_body_steps_summand. fs_h_dst_one_convolutionfoldpositive_body_steps_summand + S (fs_a_dst_one_convolutionfoldpositive_body_steps) = S ((S (fs_i_dst_one_convolutionfoldpositive_body_steps)) * dst_positive_scale_one_convolutionfold)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_steps_summand. dst_positive_code_one_convolutionfold = fs_q_dst_one_convolutionfoldpositive_body_steps_summand * S ((S (fs_i_dst_one_convolutionfoldpositive_body_steps)) * dst_positive_scale_one_convolutionfold) + (fs_a_dst_one_convolutionfoldpositive_body_steps))) /\ ((((exists fs_h_dst_one_convolutionfoldpositive_body_steps_partial. fs_h_dst_one_convolutionfoldpositive_body_steps_partial + S (fs_r_dst_one_convolutionfoldpositive_body_steps) = S ((S (fs_i_dst_one_convolutionfoldpositive_body_steps)) * fs_v_dst_one_convolutionfoldpositive)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_steps_partial. fs_u_dst_one_convolutionfoldpositive = fs_q_dst_one_convolutionfoldpositive_body_steps_partial * S ((S (fs_i_dst_one_convolutionfoldpositive_body_steps)) * fs_v_dst_one_convolutionfoldpositive) + (fs_r_dst_one_convolutionfoldpositive_body_steps))) /\ ((((exists fs_h_dst_one_convolutionfoldpositive_body_steps_successor. fs_h_dst_one_convolutionfoldpositive_body_steps_successor + S (fs_s_dst_one_convolutionfoldpositive_body_steps) = S ((S (S fs_i_dst_one_convolutionfoldpositive_body_steps)) * fs_v_dst_one_convolutionfoldpositive)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_steps_successor. fs_u_dst_one_convolutionfoldpositive = fs_q_dst_one_convolutionfoldpositive_body_steps_successor * S ((S (S fs_i_dst_one_convolutionfoldpositive_body_steps)) * fs_v_dst_one_convolutionfoldpositive) + (fs_s_dst_one_convolutionfoldpositive_body_steps))) /\ fs_s_dst_one_convolutionfoldpositive_body_steps = fs_r_dst_one_convolutionfoldpositive_body_steps + fs_a_dst_one_convolutionfoldpositive_body_steps)))))) /\ (((exists fs_u_dst_one_convolutionfoldnegative fs_v_dst_one_convolutionfoldnegative. ((((exists fs_h_dst_one_convolutionfoldnegative_body_start. fs_h_dst_one_convolutionfoldnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_one_convolutionfoldnegative)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_start. fs_u_dst_one_convolutionfoldnegative = fs_q_dst_one_convolutionfoldnegative_body_start * S ((S (0)) * fs_v_dst_one_convolutionfoldnegative) + (0))) /\ ((((exists fs_h_dst_one_convolutionfoldnegative_body_terminal. fs_h_dst_one_convolutionfoldnegative_body_terminal + S (dst_negative_sum_one_convolutionfold) = S ((S (S (1))) * fs_v_dst_one_convolutionfoldnegative)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_terminal. fs_u_dst_one_convolutionfoldnegative = fs_q_dst_one_convolutionfoldnegative_body_terminal * S ((S (S (1))) * fs_v_dst_one_convolutionfoldnegative) + (dst_negative_sum_one_convolutionfold))) /\ forall fs_i_dst_one_convolutionfoldnegative_body_steps. (exists fs_lt_dst_one_convolutionfoldnegative_body_steps_bound. fs_lt_dst_one_convolutionfoldnegative_body_steps_bound + S fs_i_dst_one_convolutionfoldnegative_body_steps = S (1)) -> exists fs_a_dst_one_convolutionfoldnegative_body_steps fs_r_dst_one_convolutionfoldnegative_body_steps fs_s_dst_one_convolutionfoldnegative_body_steps. ((((exists fs_h_dst_one_convolutionfoldnegative_body_steps_summand. fs_h_dst_one_convolutionfoldnegative_body_steps_summand + S (fs_a_dst_one_convolutionfoldnegative_body_steps) = S ((S (fs_i_dst_one_convolutionfoldnegative_body_steps)) * dst_negative_scale_one_convolutionfold)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_steps_summand. dst_negative_code_one_convolutionfold = fs_q_dst_one_convolutionfoldnegative_body_steps_summand * S ((S (fs_i_dst_one_convolutionfoldnegative_body_steps)) * dst_negative_scale_one_convolutionfold) + (fs_a_dst_one_convolutionfoldnegative_body_steps))) /\ ((((exists fs_h_dst_one_convolutionfoldnegative_body_steps_partial. fs_h_dst_one_convolutionfoldnegative_body_steps_partial + S (fs_r_dst_one_convolutionfoldnegative_body_steps) = S ((S (fs_i_dst_one_convolutionfoldnegative_body_steps)) * fs_v_dst_one_convolutionfoldnegative)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_steps_partial. fs_u_dst_one_convolutionfoldnegative = fs_q_dst_one_convolutionfoldnegative_body_steps_partial * S ((S (fs_i_dst_one_convolutionfoldnegative_body_steps)) * fs_v_dst_one_convolutionfoldnegative) + (fs_r_dst_one_convolutionfoldnegative_body_steps))) /\ ((((exists fs_h_dst_one_convolutionfoldnegative_body_steps_successor. fs_h_dst_one_convolutionfoldnegative_body_steps_successor + S (fs_s_dst_one_convolutionfoldnegative_body_steps) = S ((S (S fs_i_dst_one_convolutionfoldnegative_body_steps)) * fs_v_dst_one_convolutionfoldnegative)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_steps_successor. fs_u_dst_one_convolutionfoldnegative = fs_q_dst_one_convolutionfoldnegative_body_steps_successor * S ((S (S fs_i_dst_one_convolutionfoldnegative_body_steps)) * fs_v_dst_one_convolutionfoldnegative) + (fs_s_dst_one_convolutionfoldnegative_body_steps))) /\ fs_s_dst_one_convolutionfoldnegative_body_steps = fs_r_dst_one_convolutionfoldnegative_body_steps + fs_a_dst_one_convolutionfoldnegative_body_steps)))))) /\ (exists ge_balance_positive_one_convolutionfoldresult ge_balance_negative_one_convolutionfoldresult. (((((z) = 2 * (ge_balance_positive_one_convolutionfoldresult) /\ (ge_balance_negative_one_convolutionfoldresult) = 0) \/ exists ge_signed_half_one_convolutionfoldresultdecode. (((z) = 2 * ge_signed_half_one_convolutionfoldresultdecode + 1 /\ (ge_balance_positive_one_convolutionfoldresult) = 0) /\ (ge_balance_negative_one_convolutionfoldresult) = S ge_signed_half_one_convolutionfoldresultdecode))) /\ ((dst_positive_sum_one_convolutionfold) + ge_balance_negative_one_convolutionfoldresult = (dst_negative_sum_one_convolutionfold) + ge_balance_positive_one_convolutionfoldresult))))))))))))) -> (exists sto_ap_one_product sto_an_one_product sto_bp_one_product sto_bn_one_product sto_cp_one_product sto_cn_one_product. (((((a) = 2 * (sto_ap_one_product) /\ (sto_an_one_product) = 0) \/ exists ge_signed_half_one_productleft. (((a) = 2 * ge_signed_half_one_productleft + 1 /\ (sto_ap_one_product) = 0) /\ (sto_an_one_product) = S ge_signed_half_one_productleft))) /\ ((((((b) = 2 * (sto_bp_one_product) /\ (sto_bn_one_product) = 0) \/ exists ge_signed_half_one_productright. (((b) = 2 * ge_signed_half_one_productright + 1 /\ (sto_bp_one_product) = 0) /\ (sto_bn_one_product) = S ge_signed_half_one_productright))) /\ ((((((z) = 2 * (sto_cp_one_product) /\ (sto_cn_one_product) = 0) \/ exists ge_signed_half_one_productoutput. (((z) = 2 * ge_signed_half_one_productoutput + 1 /\ (sto_cp_one_product) = 0) /\ (sto_cn_one_product) = S ge_signed_half_one_productoutput))) /\ ((sto_ap_one_product * sto_bp_one_product + sto_an_one_product * sto_bn_one_product) + sto_cn_one_product = (sto_ap_one_product * sto_bn_one_product + sto_an_one_product * sto_bp_one_product) + sto_cp_one_product)))))))) /\ ((exists sto_ap_one_product sto_an_one_product sto_bp_one_product sto_bn_one_product sto_cp_one_product sto_cn_one_product. (((((a) = 2 * (sto_ap_one_product) /\ (sto_an_one_product) = 0) \/ exists ge_signed_half_one_productleft. (((a) = 2 * ge_signed_half_one_productleft + 1 /\ (sto_ap_one_product) = 0) /\ (sto_an_one_product) = S ge_signed_half_one_productleft))) /\ ((((((b) = 2 * (sto_bp_one_product) /\ (sto_bn_one_product) = 0) \/ exists ge_signed_half_one_productright. (((b) = 2 * ge_signed_half_one_productright + 1 /\ (sto_bp_one_product) = 0) /\ (sto_bn_one_product) = S ge_signed_half_one_productright))) /\ ((((((z) = 2 * (sto_cp_one_product) /\ (sto_cn_one_product) = 0) \/ exists ge_signed_half_one_productoutput. (((z) = 2 * ge_signed_half_one_productoutput + 1 /\ (sto_cp_one_product) = 0) /\ (sto_cn_one_product) = S ge_signed_half_one_productoutput))) /\ ((sto_ap_one_product * sto_bp_one_product + sto_an_one_product * sto_bn_one_product) + sto_cn_one_product = (sto_ap_one_product * sto_bn_one_product + sto_an_one_product * sto_bp_one_product) + sto_cp_one_product))))))) -> (((~((1)=0)) /\ (exists dc_mask_one_convolution. ((((exists dst_positive_code_one_convolutionmasktable dst_positive_scale_one_convolutionmasktable dst_negative_code_one_convolutionmasktable dst_negative_scale_one_convolutionmasktable. (((dc_mask_one_convolution) = (((((dst_positive_code_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable)) * S ((dst_positive_code_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable)) + ((dst_positive_scale_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable))) + (((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) * S ((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) + ((dst_negative_scale_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)))) * S ((((dst_positive_code_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable)) * S ((dst_positive_code_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable)) + ((dst_positive_scale_one_convolutionmasktable) + (dst_positive_scale_one_convolutionmasktable))) + (((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) * S ((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) + ((dst_negative_scale_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)))) + ((((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) * S ((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) + ((dst_negative_scale_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable))) + (((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) * S ((dst_negative_code_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)) + ((dst_negative_scale_one_convolutionmasktable) + (dst_negative_scale_one_convolutionmasktable)))))) /\ (forall dst_index_one_convolutionmasktable. (exists pvs_le_gap_one_convolutionmasktabledomain. pvs_le_gap_one_convolutionmasktabledomain + (dst_index_one_convolutionmasktable) = (1)) -> exists dst_positive_one_convolutionmasktable dst_negative_one_convolutionmasktable dst_value_one_convolutionmasktable. ((((exists ff_h_pvs_one_convolutionmasktableentrypositive. ff_h_pvs_one_convolutionmasktableentrypositive + S (dst_positive_one_convolutionmasktable) = S ((S (dst_index_one_convolutionmasktable)) * dst_positive_scale_one_convolutionmasktable)) /\ exists ff_q_pvs_one_convolutionmasktableentrypositive. dst_positive_code_one_convolutionmasktable = ff_q_pvs_one_convolutionmasktableentrypositive * S ((S (dst_index_one_convolutionmasktable)) * dst_positive_scale_one_convolutionmasktable) + (dst_positive_one_convolutionmasktable))) /\ (((((exists ff_h_pvs_one_convolutionmasktableentrynegative. ff_h_pvs_one_convolutionmasktableentrynegative + S (dst_negative_one_convolutionmasktable) = S ((S (dst_index_one_convolutionmasktable)) * dst_negative_scale_one_convolutionmasktable)) /\ exists ff_q_pvs_one_convolutionmasktableentrynegative. dst_negative_code_one_convolutionmasktable = ff_q_pvs_one_convolutionmasktableentrynegative * S ((S (dst_index_one_convolutionmasktable)) * dst_negative_scale_one_convolutionmasktable) + (dst_negative_one_convolutionmasktable))) /\ (exists ge_balance_positive_one_convolutionmasktableentryvalue ge_balance_negative_one_convolutionmasktableentryvalue. (((((dst_value_one_convolutionmasktable) = 2 * (ge_balance_positive_one_convolutionmasktableentryvalue) /\ (ge_balance_negative_one_convolutionmasktableentryvalue) = 0) \/ exists ge_signed_half_one_convolutionmasktableentryvaluedecode. (((dst_value_one_convolutionmasktable) = 2 * ge_signed_half_one_convolutionmasktableentryvaluedecode + 1 /\ (ge_balance_positive_one_convolutionmasktableentryvalue) = 0) /\ (ge_balance_negative_one_convolutionmasktableentryvalue) = S ge_signed_half_one_convolutionmasktableentryvaluedecode))) /\ ((dst_positive_one_convolutionmasktable) + ge_balance_negative_one_convolutionmasktableentryvalue = (dst_negative_one_convolutionmasktable) + ge_balance_positive_one_convolutionmasktableentryvalue))))))))) /\ (forall dc_index_one_convolutionmask dc_value_one_convolutionmask. (exists pvs_le_gap_one_convolutionmaskdomain. pvs_le_gap_one_convolutionmaskdomain + (dc_index_one_convolutionmask) = (1)) -> (exists dst_positive_code_one_convolutionmasklookup dst_positive_scale_one_convolutionmasklookup dst_negative_code_one_convolutionmasklookup dst_negative_scale_one_convolutionmasklookup dst_positive_one_convolutionmasklookup dst_negative_one_convolutionmasklookup. (((dc_mask_one_convolution) = (((((dst_positive_code_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup)) * S ((dst_positive_code_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup)) + ((dst_positive_scale_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup))) + (((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) * S ((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) + ((dst_negative_scale_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)))) * S ((((dst_positive_code_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup)) * S ((dst_positive_code_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup)) + ((dst_positive_scale_one_convolutionmasklookup) + (dst_positive_scale_one_convolutionmasklookup))) + (((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) * S ((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) + ((dst_negative_scale_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)))) + ((((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) * S ((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) + ((dst_negative_scale_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup))) + (((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) * S ((dst_negative_code_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)) + ((dst_negative_scale_one_convolutionmasklookup) + (dst_negative_scale_one_convolutionmasklookup)))))) /\ (((((exists ff_h_pvs_one_convolutionmasklookuppositive. ff_h_pvs_one_convolutionmasklookuppositive + S (dst_positive_one_convolutionmasklookup) = S ((S (dc_index_one_convolutionmask)) * dst_positive_scale_one_convolutionmasklookup)) /\ exists ff_q_pvs_one_convolutionmasklookuppositive. dst_positive_code_one_convolutionmasklookup = ff_q_pvs_one_convolutionmasklookuppositive * S ((S (dc_index_one_convolutionmask)) * dst_positive_scale_one_convolutionmasklookup) + (dst_positive_one_convolutionmasklookup))) /\ (((((exists ff_h_pvs_one_convolutionmasklookupnegative. ff_h_pvs_one_convolutionmasklookupnegative + S (dst_negative_one_convolutionmasklookup) = S ((S (dc_index_one_convolutionmask)) * dst_negative_scale_one_convolutionmasklookup)) /\ exists ff_q_pvs_one_convolutionmasklookupnegative. dst_negative_code_one_convolutionmasklookup = ff_q_pvs_one_convolutionmasklookupnegative * S ((S (dc_index_one_convolutionmask)) * dst_negative_scale_one_convolutionmasklookup) + (dst_negative_one_convolutionmasklookup))) /\ (exists ge_balance_positive_one_convolutionmasklookupvalue ge_balance_negative_one_convolutionmasklookupvalue. (((((dc_value_one_convolutionmask) = 2 * (ge_balance_positive_one_convolutionmasklookupvalue) /\ (ge_balance_negative_one_convolutionmasklookupvalue) = 0) \/ exists ge_signed_half_one_convolutionmasklookupvaluedecode. (((dc_value_one_convolutionmask) = 2 * ge_signed_half_one_convolutionmasklookupvaluedecode + 1 /\ (ge_balance_positive_one_convolutionmasklookupvalue) = 0) /\ (ge_balance_negative_one_convolutionmasklookupvalue) = S ge_signed_half_one_convolutionmasklookupvaluedecode))) /\ ((dst_positive_one_convolutionmasklookup) + ge_balance_negative_one_convolutionmasklookupvalue = (dst_negative_one_convolutionmasklookup) + ge_balance_positive_one_convolutionmasklookupvalue))))))))) -> ((((~((dc_index_one_convolutionmask)=0)) /\ (exists dc_quotient_one_convolutionmaskentry dc_left_one_convolutionmaskentry dc_right_one_convolutionmaskentry. (((1)=(dc_index_one_convolutionmask)*dc_quotient_one_convolutionmaskentry) /\ (((exists dst_positive_code_one_convolutionmaskentryleft dst_positive_scale_one_convolutionmaskentryleft dst_negative_code_one_convolutionmaskentryleft dst_negative_scale_one_convolutionmaskentryleft dst_positive_one_convolutionmaskentryleft dst_negative_one_convolutionmaskentryleft. (((F) = (((((dst_positive_code_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft)) * S ((dst_positive_code_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft)) + ((dst_positive_scale_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft))) + (((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) * S ((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) + ((dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)))) * S ((((dst_positive_code_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft)) * S ((dst_positive_code_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft)) + ((dst_positive_scale_one_convolutionmaskentryleft) + (dst_positive_scale_one_convolutionmaskentryleft))) + (((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) * S ((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) + ((dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)))) + ((((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) * S ((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) + ((dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft))) + (((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) * S ((dst_negative_code_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)) + ((dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_scale_one_convolutionmaskentryleft)))))) /\ (((((exists ff_h_pvs_one_convolutionmaskentryleftpositive. ff_h_pvs_one_convolutionmaskentryleftpositive + S (dst_positive_one_convolutionmaskentryleft) = S ((S (dc_index_one_convolutionmask)) * dst_positive_scale_one_convolutionmaskentryleft)) /\ exists ff_q_pvs_one_convolutionmaskentryleftpositive. dst_positive_code_one_convolutionmaskentryleft = ff_q_pvs_one_convolutionmaskentryleftpositive * S ((S (dc_index_one_convolutionmask)) * dst_positive_scale_one_convolutionmaskentryleft) + (dst_positive_one_convolutionmaskentryleft))) /\ (((((exists ff_h_pvs_one_convolutionmaskentryleftnegative. ff_h_pvs_one_convolutionmaskentryleftnegative + S (dst_negative_one_convolutionmaskentryleft) = S ((S (dc_index_one_convolutionmask)) * dst_negative_scale_one_convolutionmaskentryleft)) /\ exists ff_q_pvs_one_convolutionmaskentryleftnegative. dst_negative_code_one_convolutionmaskentryleft = ff_q_pvs_one_convolutionmaskentryleftnegative * S ((S (dc_index_one_convolutionmask)) * dst_negative_scale_one_convolutionmaskentryleft) + (dst_negative_one_convolutionmaskentryleft))) /\ (exists ge_balance_positive_one_convolutionmaskentryleftvalue ge_balance_negative_one_convolutionmaskentryleftvalue. (((((dc_left_one_convolutionmaskentry) = 2 * (ge_balance_positive_one_convolutionmaskentryleftvalue) /\ (ge_balance_negative_one_convolutionmaskentryleftvalue) = 0) \/ exists ge_signed_half_one_convolutionmaskentryleftvaluedecode. (((dc_left_one_convolutionmaskentry) = 2 * ge_signed_half_one_convolutionmaskentryleftvaluedecode + 1 /\ (ge_balance_positive_one_convolutionmaskentryleftvalue) = 0) /\ (ge_balance_negative_one_convolutionmaskentryleftvalue) = S ge_signed_half_one_convolutionmaskentryleftvaluedecode))) /\ ((dst_positive_one_convolutionmaskentryleft) + ge_balance_negative_one_convolutionmaskentryleftvalue = (dst_negative_one_convolutionmaskentryleft) + ge_balance_positive_one_convolutionmaskentryleftvalue))))))))) /\ (((exists dst_positive_code_one_convolutionmaskentryright dst_positive_scale_one_convolutionmaskentryright dst_negative_code_one_convolutionmaskentryright dst_negative_scale_one_convolutionmaskentryright dst_positive_one_convolutionmaskentryright dst_negative_one_convolutionmaskentryright. (((G) = (((((dst_positive_code_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright)) * S ((dst_positive_code_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright)) + ((dst_positive_scale_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright))) + (((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) * S ((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) + ((dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)))) * S ((((dst_positive_code_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright)) * S ((dst_positive_code_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright)) + ((dst_positive_scale_one_convolutionmaskentryright) + (dst_positive_scale_one_convolutionmaskentryright))) + (((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) * S ((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) + ((dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)))) + ((((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) * S ((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) + ((dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright))) + (((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) * S ((dst_negative_code_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)) + ((dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_scale_one_convolutionmaskentryright)))))) /\ (((((exists ff_h_pvs_one_convolutionmaskentryrightpositive. ff_h_pvs_one_convolutionmaskentryrightpositive + S (dst_positive_one_convolutionmaskentryright) = S ((S (dc_quotient_one_convolutionmaskentry)) * dst_positive_scale_one_convolutionmaskentryright)) /\ exists ff_q_pvs_one_convolutionmaskentryrightpositive. dst_positive_code_one_convolutionmaskentryright = ff_q_pvs_one_convolutionmaskentryrightpositive * S ((S (dc_quotient_one_convolutionmaskentry)) * dst_positive_scale_one_convolutionmaskentryright) + (dst_positive_one_convolutionmaskentryright))) /\ (((((exists ff_h_pvs_one_convolutionmaskentryrightnegative. ff_h_pvs_one_convolutionmaskentryrightnegative + S (dst_negative_one_convolutionmaskentryright) = S ((S (dc_quotient_one_convolutionmaskentry)) * dst_negative_scale_one_convolutionmaskentryright)) /\ exists ff_q_pvs_one_convolutionmaskentryrightnegative. dst_negative_code_one_convolutionmaskentryright = ff_q_pvs_one_convolutionmaskentryrightnegative * S ((S (dc_quotient_one_convolutionmaskentry)) * dst_negative_scale_one_convolutionmaskentryright) + (dst_negative_one_convolutionmaskentryright))) /\ (exists ge_balance_positive_one_convolutionmaskentryrightvalue ge_balance_negative_one_convolutionmaskentryrightvalue. (((((dc_right_one_convolutionmaskentry) = 2 * (ge_balance_positive_one_convolutionmaskentryrightvalue) /\ (ge_balance_negative_one_convolutionmaskentryrightvalue) = 0) \/ exists ge_signed_half_one_convolutionmaskentryrightvaluedecode. (((dc_right_one_convolutionmaskentry) = 2 * ge_signed_half_one_convolutionmaskentryrightvaluedecode + 1 /\ (ge_balance_positive_one_convolutionmaskentryrightvalue) = 0) /\ (ge_balance_negative_one_convolutionmaskentryrightvalue) = S ge_signed_half_one_convolutionmaskentryrightvaluedecode))) /\ ((dst_positive_one_convolutionmaskentryright) + ge_balance_negative_one_convolutionmaskentryrightvalue = (dst_negative_one_convolutionmaskentryright) + ge_balance_positive_one_convolutionmaskentryrightvalue))))))))) /\ (exists sto_ap_one_convolutionmaskentryproduct sto_an_one_convolutionmaskentryproduct sto_bp_one_convolutionmaskentryproduct sto_bn_one_convolutionmaskentryproduct sto_cp_one_convolutionmaskentryproduct sto_cn_one_convolutionmaskentryproduct. (((((dc_left_one_convolutionmaskentry) = 2 * (sto_ap_one_convolutionmaskentryproduct) /\ (sto_an_one_convolutionmaskentryproduct) = 0) \/ exists ge_signed_half_one_convolutionmaskentryproductleft. (((dc_left_one_convolutionmaskentry) = 2 * ge_signed_half_one_convolutionmaskentryproductleft + 1 /\ (sto_ap_one_convolutionmaskentryproduct) = 0) /\ (sto_an_one_convolutionmaskentryproduct) = S ge_signed_half_one_convolutionmaskentryproductleft))) /\ ((((((dc_right_one_convolutionmaskentry) = 2 * (sto_bp_one_convolutionmaskentryproduct) /\ (sto_bn_one_convolutionmaskentryproduct) = 0) \/ exists ge_signed_half_one_convolutionmaskentryproductright. (((dc_right_one_convolutionmaskentry) = 2 * ge_signed_half_one_convolutionmaskentryproductright + 1 /\ (sto_bp_one_convolutionmaskentryproduct) = 0) /\ (sto_bn_one_convolutionmaskentryproduct) = S ge_signed_half_one_convolutionmaskentryproductright))) /\ ((((((dc_value_one_convolutionmask) = 2 * (sto_cp_one_convolutionmaskentryproduct) /\ (sto_cn_one_convolutionmaskentryproduct) = 0) \/ exists ge_signed_half_one_convolutionmaskentryproductoutput. (((dc_value_one_convolutionmask) = 2 * ge_signed_half_one_convolutionmaskentryproductoutput + 1 /\ (sto_cp_one_convolutionmaskentryproduct) = 0) /\ (sto_cn_one_convolutionmaskentryproduct) = S ge_signed_half_one_convolutionmaskentryproductoutput))) /\ ((sto_ap_one_convolutionmaskentryproduct * sto_bp_one_convolutionmaskentryproduct + sto_an_one_convolutionmaskentryproduct * sto_bn_one_convolutionmaskentryproduct) + sto_cn_one_convolutionmaskentryproduct = (sto_ap_one_convolutionmaskentryproduct * sto_bn_one_convolutionmaskentryproduct + sto_an_one_convolutionmaskentryproduct * sto_bp_one_convolutionmaskentryproduct) + sto_cp_one_convolutionmaskentryproduct))))))))))))))) \/ ((((dc_index_one_convolutionmask)=0 \/ ~(exists pvs_factor_one_convolutionmaskentrynondivisor. (1) = (dc_index_one_convolutionmask) * pvs_factor_one_convolutionmaskentrynondivisor)) /\ ((dc_value_one_convolutionmask)=0))))))) /\ (exists dst_positive_code_one_convolutionfold dst_positive_scale_one_convolutionfold dst_negative_code_one_convolutionfold dst_negative_scale_one_convolutionfold dst_positive_sum_one_convolutionfold dst_negative_sum_one_convolutionfold. (((dc_mask_one_convolution) = (((((dst_positive_code_one_convolutionfold) + (dst_positive_scale_one_convolutionfold)) * S ((dst_positive_code_one_convolutionfold) + (dst_positive_scale_one_convolutionfold)) + ((dst_positive_scale_one_convolutionfold) + (dst_positive_scale_one_convolutionfold))) + (((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) * S ((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) + ((dst_negative_scale_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)))) * S ((((dst_positive_code_one_convolutionfold) + (dst_positive_scale_one_convolutionfold)) * S ((dst_positive_code_one_convolutionfold) + (dst_positive_scale_one_convolutionfold)) + ((dst_positive_scale_one_convolutionfold) + (dst_positive_scale_one_convolutionfold))) + (((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) * S ((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) + ((dst_negative_scale_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)))) + ((((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) * S ((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) + ((dst_negative_scale_one_convolutionfold) + (dst_negative_scale_one_convolutionfold))) + (((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) * S ((dst_negative_code_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)) + ((dst_negative_scale_one_convolutionfold) + (dst_negative_scale_one_convolutionfold)))))) /\ (((exists fs_u_dst_one_convolutionfoldpositive fs_v_dst_one_convolutionfoldpositive. ((((exists fs_h_dst_one_convolutionfoldpositive_body_start. fs_h_dst_one_convolutionfoldpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_one_convolutionfoldpositive)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_start. fs_u_dst_one_convolutionfoldpositive = fs_q_dst_one_convolutionfoldpositive_body_start * S ((S (0)) * fs_v_dst_one_convolutionfoldpositive) + (0))) /\ ((((exists fs_h_dst_one_convolutionfoldpositive_body_terminal. fs_h_dst_one_convolutionfoldpositive_body_terminal + S (dst_positive_sum_one_convolutionfold) = S ((S (S (1))) * fs_v_dst_one_convolutionfoldpositive)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_terminal. fs_u_dst_one_convolutionfoldpositive = fs_q_dst_one_convolutionfoldpositive_body_terminal * S ((S (S (1))) * fs_v_dst_one_convolutionfoldpositive) + (dst_positive_sum_one_convolutionfold))) /\ forall fs_i_dst_one_convolutionfoldpositive_body_steps. (exists fs_lt_dst_one_convolutionfoldpositive_body_steps_bound. fs_lt_dst_one_convolutionfoldpositive_body_steps_bound + S fs_i_dst_one_convolutionfoldpositive_body_steps = S (1)) -> exists fs_a_dst_one_convolutionfoldpositive_body_steps fs_r_dst_one_convolutionfoldpositive_body_steps fs_s_dst_one_convolutionfoldpositive_body_steps. ((((exists fs_h_dst_one_convolutionfoldpositive_body_steps_summand. fs_h_dst_one_convolutionfoldpositive_body_steps_summand + S (fs_a_dst_one_convolutionfoldpositive_body_steps) = S ((S (fs_i_dst_one_convolutionfoldpositive_body_steps)) * dst_positive_scale_one_convolutionfold)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_steps_summand. dst_positive_code_one_convolutionfold = fs_q_dst_one_convolutionfoldpositive_body_steps_summand * S ((S (fs_i_dst_one_convolutionfoldpositive_body_steps)) * dst_positive_scale_one_convolutionfold) + (fs_a_dst_one_convolutionfoldpositive_body_steps))) /\ ((((exists fs_h_dst_one_convolutionfoldpositive_body_steps_partial. fs_h_dst_one_convolutionfoldpositive_body_steps_partial + S (fs_r_dst_one_convolutionfoldpositive_body_steps) = S ((S (fs_i_dst_one_convolutionfoldpositive_body_steps)) * fs_v_dst_one_convolutionfoldpositive)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_steps_partial. fs_u_dst_one_convolutionfoldpositive = fs_q_dst_one_convolutionfoldpositive_body_steps_partial * S ((S (fs_i_dst_one_convolutionfoldpositive_body_steps)) * fs_v_dst_one_convolutionfoldpositive) + (fs_r_dst_one_convolutionfoldpositive_body_steps))) /\ ((((exists fs_h_dst_one_convolutionfoldpositive_body_steps_successor. fs_h_dst_one_convolutionfoldpositive_body_steps_successor + S (fs_s_dst_one_convolutionfoldpositive_body_steps) = S ((S (S fs_i_dst_one_convolutionfoldpositive_body_steps)) * fs_v_dst_one_convolutionfoldpositive)) /\ exists fs_q_dst_one_convolutionfoldpositive_body_steps_successor. fs_u_dst_one_convolutionfoldpositive = fs_q_dst_one_convolutionfoldpositive_body_steps_successor * S ((S (S fs_i_dst_one_convolutionfoldpositive_body_steps)) * fs_v_dst_one_convolutionfoldpositive) + (fs_s_dst_one_convolutionfoldpositive_body_steps))) /\ fs_s_dst_one_convolutionfoldpositive_body_steps = fs_r_dst_one_convolutionfoldpositive_body_steps + fs_a_dst_one_convolutionfoldpositive_body_steps)))))) /\ (((exists fs_u_dst_one_convolutionfoldnegative fs_v_dst_one_convolutionfoldnegative. ((((exists fs_h_dst_one_convolutionfoldnegative_body_start. fs_h_dst_one_convolutionfoldnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_one_convolutionfoldnegative)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_start. fs_u_dst_one_convolutionfoldnegative = fs_q_dst_one_convolutionfoldnegative_body_start * S ((S (0)) * fs_v_dst_one_convolutionfoldnegative) + (0))) /\ ((((exists fs_h_dst_one_convolutionfoldnegative_body_terminal. fs_h_dst_one_convolutionfoldnegative_body_terminal + S (dst_negative_sum_one_convolutionfold) = S ((S (S (1))) * fs_v_dst_one_convolutionfoldnegative)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_terminal. fs_u_dst_one_convolutionfoldnegative = fs_q_dst_one_convolutionfoldnegative_body_terminal * S ((S (S (1))) * fs_v_dst_one_convolutionfoldnegative) + (dst_negative_sum_one_convolutionfold))) /\ forall fs_i_dst_one_convolutionfoldnegative_body_steps. (exists fs_lt_dst_one_convolutionfoldnegative_body_steps_bound. fs_lt_dst_one_convolutionfoldnegative_body_steps_bound + S fs_i_dst_one_convolutionfoldnegative_body_steps = S (1)) -> exists fs_a_dst_one_convolutionfoldnegative_body_steps fs_r_dst_one_convolutionfoldnegative_body_steps fs_s_dst_one_convolutionfoldnegative_body_steps. ((((exists fs_h_dst_one_convolutionfoldnegative_body_steps_summand. fs_h_dst_one_convolutionfoldnegative_body_steps_summand + S (fs_a_dst_one_convolutionfoldnegative_body_steps) = S ((S (fs_i_dst_one_convolutionfoldnegative_body_steps)) * dst_negative_scale_one_convolutionfold)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_steps_summand. dst_negative_code_one_convolutionfold = fs_q_dst_one_convolutionfoldnegative_body_steps_summand * S ((S (fs_i_dst_one_convolutionfoldnegative_body_steps)) * dst_negative_scale_one_convolutionfold) + (fs_a_dst_one_convolutionfoldnegative_body_steps))) /\ ((((exists fs_h_dst_one_convolutionfoldnegative_body_steps_partial. fs_h_dst_one_convolutionfoldnegative_body_steps_partial + S (fs_r_dst_one_convolutionfoldnegative_body_steps) = S ((S (fs_i_dst_one_convolutionfoldnegative_body_steps)) * fs_v_dst_one_convolutionfoldnegative)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_steps_partial. fs_u_dst_one_convolutionfoldnegative = fs_q_dst_one_convolutionfoldnegative_body_steps_partial * S ((S (fs_i_dst_one_convolutionfoldnegative_body_steps)) * fs_v_dst_one_convolutionfoldnegative) + (fs_r_dst_one_convolutionfoldnegative_body_steps))) /\ ((((exists fs_h_dst_one_convolutionfoldnegative_body_steps_successor. fs_h_dst_one_convolutionfoldnegative_body_steps_successor + S (fs_s_dst_one_convolutionfoldnegative_body_steps) = S ((S (S fs_i_dst_one_convolutionfoldnegative_body_steps)) * fs_v_dst_one_convolutionfoldnegative)) /\ exists fs_q_dst_one_convolutionfoldnegative_body_steps_successor. fs_u_dst_one_convolutionfoldnegative = fs_q_dst_one_convolutionfoldnegative_body_steps_successor * S ((S (S fs_i_dst_one_convolutionfoldnegative_body_steps)) * fs_v_dst_one_convolutionfoldnegative) + (fs_s_dst_one_convolutionfoldnegative_body_steps))) /\ fs_s_dst_one_convolutionfoldnegative_body_steps = fs_r_dst_one_convolutionfoldnegative_body_steps + fs_a_dst_one_convolutionfoldnegative_body_steps)))))) /\ (exists ge_balance_positive_one_convolutionfoldresult ge_balance_negative_one_convolutionfoldresult. (((((z) = 2 * (ge_balance_positive_one_convolutionfoldresult) /\ (ge_balance_negative_one_convolutionfoldresult) = 0) \/ exists ge_signed_half_one_convolutionfoldresultdecode. (((z) = 2 * ge_signed_half_one_convolutionfoldresultdecode + 1 /\ (ge_balance_positive_one_convolutionfoldresult) = 0) /\ (ge_balance_negative_one_convolutionfoldresult) = S ge_signed_half_one_convolutionfoldresultdecode))) /\ ((dst_positive_sum_one_convolutionfold) + ge_balance_negative_one_convolutionfoldresult = (dst_negative_sum_one_convolutionfold) + ge_balance_positive_one_convolutionfoldresult)))))))))))))))

Constructive proof overview

Generated structural guide

Actual convolution at input one is exactly the actual signed product F(1)*G(1); both implications construct or inspect the real two-entry masked fold.

The unchanged tactic script uses 13 declared prerequisites and contains 125 exact native proof lines.

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

Proof neighborhood

Direct dependencies

DT0009 dirichlet_convolution_zero_prefix_sum dirichlet_convolution_prefix_restrict Alpha theorem; checked-use authorized zero_le Stable theorem; checked-use authorized divisor_signed_sum_successor_decompose Alpha theorem; checked-use authorized divisor_signed_sum_functional Alpha theorem; checked-use authorized signed_add_functional Alpha theorem; checked-use authorized signed_add_zero_left Alpha theorem; checked-use authorized DT0005 dirichlet_convolution_last_entry_iff dirichlet_convolution_prefix_lookup Alpha theorem; checked-use authorized le_refl Stable theorem; checked-use authorized arithmetic_signed_table_singleton Alpha theorem; checked-use authorized dirichlet_convolution_prefix_zero_constructor Alpha theorem; checked-use authorized DT0007 dirichlet_convolution_prefix_last_step

Direct dependents

none

Formal native tactic body

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

Read the argument

Proof checkpoints

125 script commands ยท 23 reading checkpoints ยท 8 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โ€“7

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

  1. L1
    intro F
  2. L2
    intro G
  3. L3
    intro a
  4. L4
    intro b
  5. L5
    intro z
  6. L6
    intro ha
  7. L7
    intro hb
02Separate the logical casesL8โ€“8

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

  1. L8
    split
03Fix variables and assumptionsL9โ€“9

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

  1. L9
    intro hc
04Separate the logical casesL10โ€“12

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

  1. L10
    cases hc
  2. L11
    cases hc_right
  3. L12
    cases hc_right_witness
05Establish hzeroL13โ€“22

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

  1. L13
    have hzero : SignedPrefixSum(x,1,0)Definitions: SignedPrefixSum
  2. L14
    specialize dirichlet_convolution_zero_prefix_sum (F)
  3. L15
    specialize dirichlet_convolution_zero_prefix_sum (G)
  4. L16
    specialize dirichlet_convolution_zero_prefix_sum (1)
  5. L17
    specialize dirichlet_convolution_zero_prefix_sum (x)
  6. L18
    apply dirichlet_convolution_zero_prefix_sum
  7. L19
    specialize dirichlet_convolution_prefix_restrict (F)
  8. L20
    specialize dirichlet_convolution_prefix_restrict (G)
  9. L21
    specialize dirichlet_convolution_prefix_restrict (1)
  10. L22
    specialize dirichlet_convolution_prefix_restrict (1)
06Use earlier factsL23โ€“28

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

  1. L23
    specialize dirichlet_convolution_prefix_restrict (0)
  2. L24
    specialize dirichlet_convolution_prefix_restrict (x)
  3. L25
    apply dirichlet_convolution_prefix_restrict
  4. L26
    exact hc_right_witness_left
  5. L27
    specialize zero_le (1)
  6. L28
    apply zero_le
07Establish hdL29โ€“34

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

  1. L29
    have hd : โˆƒ r. โˆƒ v. SignedPrefixSum(x,1,r) โˆง (ArithAt(x,1,v) โˆง SignedAdd(r,v,z))Definitions: SignedAddArithAtSignedPrefixSum
  2. L30
    specialize divisor_signed_sum_successor_decompose (x)
  3. L31
    specialize divisor_signed_sum_successor_decompose (1)
  4. L32
    specialize divisor_signed_sum_successor_decompose (z)
  5. L33
    apply divisor_signed_sum_successor_decompose
  6. L34
    exact hc_right_witness_right
08Separate the logical casesL35โ€“38

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

  1. L35
    cases hd
  2. L36
    cases hd_witness
  3. L37
    cases hd_witness_witness
  4. L38
    cases hd_witness_witness_right
09Establish hr0L39โ€“48

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

  1. L39
    have hr0 : x1=0
  2. L40
    specialize divisor_signed_sum_functional (x)
  3. L41
    specialize divisor_signed_sum_functional (1)
  4. L42
    specialize divisor_signed_sum_functional (x1)
  5. L43
    specialize divisor_signed_sum_functional (0)
  6. L44
    apply divisor_signed_sum_functional
  7. L45
    exact hd_witness_witness_left
  8. L46
    exact hzero
  9. L47
    rewrite hr0 at hd_witness_witness_right_right
  10. L48
    rewrite hr0 at hd_witness_witness_right_right
10Establish hvL49โ€“58

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

  1. L49
    have hv : x2=z
  2. L50
    symm
  3. L51
    specialize signed_add_functional (0)
  4. L52
    specialize signed_add_functional (x2)
  5. L53
    specialize signed_add_functional (z)
  6. L54
    specialize signed_add_functional (x2)
  7. L55
    apply signed_add_functional
  8. L56
    exact hd_witness_witness_right_right
  9. L57
    specialize signed_add_zero_left (x2)
  10. L58
    apply signed_add_zero_left
11Establish heL59โ€“68

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

  1. L59
    have he : (DirichletEntry(F,G,1,1,x2) โ†’ SignedMul(a,b,x2)) โˆง (SignedMul(a,b,x2) โ†’ DirichletEntry(F,G,1,1,x2))Definitions: SignedMulDirichletEntry
  2. L60
    specialize dirichlet_convolution_last_entry_iff (F)
  3. L61
    specialize dirichlet_convolution_last_entry_iff (G)
  4. L62
    specialize dirichlet_convolution_last_entry_iff (1)
  5. L63
    specialize dirichlet_convolution_last_entry_iff (a)
  6. L64
    specialize dirichlet_convolution_last_entry_iff (b)
  7. L65
    specialize dirichlet_convolution_last_entry_iff (x2)
  8. L66
    apply dirichlet_convolution_last_entry_iff
  9. L67
    intro hn
  10. L68
    apply PA1
12Use earlier factsL69โ€“71

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

  1. L69
    exact hn
  2. L70
    exact ha
  3. L71
    exact hb
13Separate the logical casesL72โ€“72

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

  1. L72
    cases he
14Establish hpL73โ€“82

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

  1. L73
    have hp : SignedMul(a,b,x2)Definitions: SignedMul
  2. L74
    apply he_left
  3. L75
    specialize dirichlet_convolution_prefix_lookup (F)
  4. L76
    specialize dirichlet_convolution_prefix_lookup (G)
  5. L77
    specialize dirichlet_convolution_prefix_lookup (1)
  6. L78
    specialize dirichlet_convolution_prefix_lookup (1)
  7. L79
    specialize dirichlet_convolution_prefix_lookup (x)
  8. L80
    specialize dirichlet_convolution_prefix_lookup (1)
  9. L81
    specialize dirichlet_convolution_prefix_lookup (x2)
  10. L82
    apply dirichlet_convolution_prefix_lookup
15Use earlier factsL83โ€“86

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

  1. L83
    exact hc_right_witness_left
  2. L84
    specialize le_refl (1)
  3. L85
    apply le_refl
  4. L86
    exact hd_witness_witness_right_left
16Calculate and transport equalitiesL87โ€“88

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

  1. L87
    rewrite hv at hp
  2. L88
    rewrite hv at hp
17Use earlier factsL89โ€“89

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

  1. L89
    exact hp
18Fix variables and assumptionsL90โ€“90

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

  1. L90
    intro hp
19Establish hmL91โ€“93

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

  1. L91
    have hm : โˆƒ M. ArithTable(0,M) โˆง ArithAt(M,0,0)Definitions: ArithTableArithAt
  2. L92
    specialize arithmetic_signed_table_singleton (0)
  3. L93
    apply arithmetic_signed_table_singleton
20Separate the logical casesL94โ€“95

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

  1. L94
    cases hm
  2. L95
    cases hm_witness
21Establish hprefixL96โ€“105

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

  1. L96
    have hprefix : DirichletPrefix(F,G,1,0,x)Definitions: DirichletPrefix
  2. L97
    specialize dirichlet_convolution_prefix_zero_constructor (F)
  3. L98
    specialize dirichlet_convolution_prefix_zero_constructor (G)
  4. L99
    specialize dirichlet_convolution_prefix_zero_constructor (1)
  5. L100
    specialize dirichlet_convolution_prefix_zero_constructor (x)
  6. L101
    apply dirichlet_convolution_prefix_zero_constructor
  7. L102
    exact hm_witness_left
  8. L103
    exact hm_witness_right
  9. L104
    specialize dirichlet_convolution_prefix_last_step (F)
  10. L105
    specialize dirichlet_convolution_prefix_last_step (G)
22Use earlier factsL106โ€“115

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

  1. L106
    specialize dirichlet_convolution_prefix_last_step (0)
  2. L107
    specialize dirichlet_convolution_prefix_last_step (x)
  3. L108
    specialize dirichlet_convolution_prefix_last_step (0)
  4. L109
    specialize dirichlet_convolution_prefix_last_step (a)
  5. L110
    specialize dirichlet_convolution_prefix_last_step (b)
  6. L111
    specialize dirichlet_convolution_prefix_last_step (z)
  7. L112
    specialize dirichlet_convolution_prefix_last_step (z)
  8. L113
    apply dirichlet_convolution_prefix_last_step
  9. L114
    exact hprefix
  10. L115
    specialize dirichlet_convolution_zero_prefix_sum (F)
23Use earlier factsL116โ€“125

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

  1. L116
    specialize dirichlet_convolution_zero_prefix_sum (G)
  2. L117
    specialize dirichlet_convolution_zero_prefix_sum (1)
  3. L118
    specialize dirichlet_convolution_zero_prefix_sum (x)
  4. L119
    apply dirichlet_convolution_zero_prefix_sum
  5. L120
    exact hprefix
  6. L121
    exact ha
  7. L122
    exact hb
  8. L123
    exact hp
  9. L124
    specialize signed_add_zero_left (z)
  10. L125
    apply signed_add_zero_left

Library-wide reading audit

Original exact command ledger ยท 125 lines
  1. 0001intro F
  2. 0002intro G
  3. 0003intro a
  4. 0004intro b
  5. 0005intro z
  6. 0006intro ha
  7. 0007intro hb
  8. 0008split
  9. 0009intro hc
  10. 0010cases hc
  11. 0011cases hc_right
  12. 0012cases hc_right_witness
  13. 0013have hzero : exists dst_positive_code_one_zero_fold dst_positive_scale_one_zero_fold dst_negative_code_one_zero_fold dst_negative_scale_one_zero_fold dst_positive_sum_one_zero_fold dst_negative_sum_one_zero_fold. (((x) = (((((dst_positive_code_one_zero_fold) + (dst_positive_scale_one_zero_fold)) * S ((dst_positive_code_one_zero_fold) + (dst_positive_scale_one_zero_fold)) + ((dst_positive_scale_one_zero_fold) + (dst_positive_scale_one_zero_fold))) + (((dst_negative_code_one_zero_fold) + (dst_negative_scale_one_zero_fold)) * S ((dst_negative_code_one_zero_fold) + (dst_negative_scale_one_zero_fold)) + ((dst_negative_scale_one_zero_fold) + (dst_negative_scale_one_zero_fold)))) * S ((((dst_positive_code_one_zero_fold) + (dst_positive_scale_one_zero_fold)) * S ((dst_positive_code_one_zero_fold) + (dst_positive_scale_one_zero_fold)) + ((dst_positive_scale_one_zero_fold) + (dst_positive_scale_one_zero_fold))) + (((dst_negative_code_one_zero_fold) + (dst_negative_scale_one_zero_fold)) * S ((dst_negative_code_one_zero_fold) + (dst_negative_scale_one_zero_fold)) + ((dst_negative_scale_one_zero_fold) + (dst_negative_scale_one_zero_fold)))) + ((((dst_negative_code_one_zero_fold) + (dst_negative_scale_one_zero_fold)) * S ((dst_negative_code_one_zero_fold) + (dst_negative_scale_one_zero_fold)) + ((dst_negative_scale_one_zero_fold) + (dst_negative_scale_one_zero_fold))) + (((dst_negative_code_one_zero_fold) + (dst_negative_scale_one_zero_fold)) * S ((dst_negative_code_one_zero_fold) + (dst_negative_scale_one_zero_fold)) + ((dst_negative_scale_one_zero_fold) + (dst_negative_scale_one_zero_fold)))))) /\ (((exists fs_u_dst_one_zero_foldpositive fs_v_dst_one_zero_foldpositive. ((((exists fs_h_dst_one_zero_foldpositive_body_start. fs_h_dst_one_zero_foldpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_one_zero_foldpositive)) /\ exists fs_q_dst_one_zero_foldpositive_body_start. fs_u_dst_one_zero_foldpositive = fs_q_dst_one_zero_foldpositive_body_start * S ((S (0)) * fs_v_dst_one_zero_foldpositive) + (0))) /\ ((((exists fs_h_dst_one_zero_foldpositive_body_terminal. fs_h_dst_one_zero_foldpositive_body_terminal + S (dst_positive_sum_one_zero_fold) = S ((S (1)) * fs_v_dst_one_zero_foldpositive)) /\ exists fs_q_dst_one_zero_foldpositive_body_terminal. fs_u_dst_one_zero_foldpositive = fs_q_dst_one_zero_foldpositive_body_terminal * S ((S (1)) * fs_v_dst_one_zero_foldpositive) + (dst_positive_sum_one_zero_fold))) /\ forall fs_i_dst_one_zero_foldpositive_body_steps. (exists fs_lt_dst_one_zero_foldpositive_body_steps_bound. fs_lt_dst_one_zero_foldpositive_body_steps_bound + S fs_i_dst_one_zero_foldpositive_body_steps = 1) -> exists fs_a_dst_one_zero_foldpositive_body_steps fs_r_dst_one_zero_foldpositive_body_steps fs_s_dst_one_zero_foldpositive_body_steps. ((((exists fs_h_dst_one_zero_foldpositive_body_steps_summand. fs_h_dst_one_zero_foldpositive_body_steps_summand + S (fs_a_dst_one_zero_foldpositive_body_steps) = S ((S (fs_i_dst_one_zero_foldpositive_body_steps)) * dst_positive_scale_one_zero_fold)) /\ exists fs_q_dst_one_zero_foldpositive_body_steps_summand. dst_positive_code_one_zero_fold = fs_q_dst_one_zero_foldpositive_body_steps_summand * S ((S (fs_i_dst_one_zero_foldpositive_body_steps)) * dst_positive_scale_one_zero_fold) + (fs_a_dst_one_zero_foldpositive_body_steps))) /\ ((((exists fs_h_dst_one_zero_foldpositive_body_steps_partial. fs_h_dst_one_zero_foldpositive_body_steps_partial + S (fs_r_dst_one_zero_foldpositive_body_steps) = S ((S (fs_i_dst_one_zero_foldpositive_body_steps)) * fs_v_dst_one_zero_foldpositive)) /\ exists fs_q_dst_one_zero_foldpositive_body_steps_partial. fs_u_dst_one_zero_foldpositive = fs_q_dst_one_zero_foldpositive_body_steps_partial * S ((S (fs_i_dst_one_zero_foldpositive_body_steps)) * fs_v_dst_one_zero_foldpositive) + (fs_r_dst_one_zero_foldpositive_body_steps))) /\ ((((exists fs_h_dst_one_zero_foldpositive_body_steps_successor. fs_h_dst_one_zero_foldpositive_body_steps_successor + S (fs_s_dst_one_zero_foldpositive_body_steps) = S ((S (S fs_i_dst_one_zero_foldpositive_body_steps)) * fs_v_dst_one_zero_foldpositive)) /\ exists fs_q_dst_one_zero_foldpositive_body_steps_successor. fs_u_dst_one_zero_foldpositive = fs_q_dst_one_zero_foldpositive_body_steps_successor * S ((S (S fs_i_dst_one_zero_foldpositive_body_steps)) * fs_v_dst_one_zero_foldpositive) + (fs_s_dst_one_zero_foldpositive_body_steps))) /\ fs_s_dst_one_zero_foldpositive_body_steps = fs_r_dst_one_zero_foldpositive_body_steps + fs_a_dst_one_zero_foldpositive_body_steps)))))) /\ (((exists fs_u_dst_one_zero_foldnegative fs_v_dst_one_zero_foldnegative. ((((exists fs_h_dst_one_zero_foldnegative_body_start. fs_h_dst_one_zero_foldnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_one_zero_foldnegative)) /\ exists fs_q_dst_one_zero_foldnegative_body_start. fs_u_dst_one_zero_foldnegative = fs_q_dst_one_zero_foldnegative_body_start * S ((S (0)) * fs_v_dst_one_zero_foldnegative) + (0))) /\ ((((exists fs_h_dst_one_zero_foldnegative_body_terminal. fs_h_dst_one_zero_foldnegative_body_terminal + S (dst_negative_sum_one_zero_fold) = S ((S (1)) * fs_v_dst_one_zero_foldnegative)) /\ exists fs_q_dst_one_zero_foldnegative_body_terminal. fs_u_dst_one_zero_foldnegative = fs_q_dst_one_zero_foldnegative_body_terminal * S ((S (1)) * fs_v_dst_one_zero_foldnegative) + (dst_negative_sum_one_zero_fold))) /\ forall fs_i_dst_one_zero_foldnegative_body_steps. (exists fs_lt_dst_one_zero_foldnegative_body_steps_bound. fs_lt_dst_one_zero_foldnegative_body_steps_bound + S fs_i_dst_one_zero_foldnegative_body_steps = 1) -> exists fs_a_dst_one_zero_foldnegative_body_steps fs_r_dst_one_zero_foldnegative_body_steps fs_s_dst_one_zero_foldnegative_body_steps. ((((exists fs_h_dst_one_zero_foldnegative_body_steps_summand. fs_h_dst_one_zero_foldnegative_body_steps_summand + S (fs_a_dst_one_zero_foldnegative_body_steps) = S ((S (fs_i_dst_one_zero_foldnegative_body_steps)) * dst_negative_scale_one_zero_fold)) /\ exists fs_q_dst_one_zero_foldnegative_body_steps_summand. dst_negative_code_one_zero_fold = fs_q_dst_one_zero_foldnegative_body_steps_summand * S ((S (fs_i_dst_one_zero_foldnegative_body_steps)) * dst_negative_scale_one_zero_fold) + (fs_a_dst_one_zero_foldnegative_body_steps))) /\ ((((exists fs_h_dst_one_zero_foldnegative_body_steps_partial. fs_h_dst_one_zero_foldnegative_body_steps_partial + S (fs_r_dst_one_zero_foldnegative_body_steps) = S ((S (fs_i_dst_one_zero_foldnegative_body_steps)) * fs_v_dst_one_zero_foldnegative)) /\ exists fs_q_dst_one_zero_foldnegative_body_steps_partial. fs_u_dst_one_zero_foldnegative = fs_q_dst_one_zero_foldnegative_body_steps_partial * S ((S (fs_i_dst_one_zero_foldnegative_body_steps)) * fs_v_dst_one_zero_foldnegative) + (fs_r_dst_one_zero_foldnegative_body_steps))) /\ ((((exists fs_h_dst_one_zero_foldnegative_body_steps_successor. fs_h_dst_one_zero_foldnegative_body_steps_successor + S (fs_s_dst_one_zero_foldnegative_body_steps) = S ((S (S fs_i_dst_one_zero_foldnegative_body_steps)) * fs_v_dst_one_zero_foldnegative)) /\ exists fs_q_dst_one_zero_foldnegative_body_steps_successor. fs_u_dst_one_zero_foldnegative = fs_q_dst_one_zero_foldnegative_body_steps_successor * S ((S (S fs_i_dst_one_zero_foldnegative_body_steps)) * fs_v_dst_one_zero_foldnegative) + (fs_s_dst_one_zero_foldnegative_body_steps))) /\ fs_s_dst_one_zero_foldnegative_body_steps = fs_r_dst_one_zero_foldnegative_body_steps + fs_a_dst_one_zero_foldnegative_body_steps)))))) /\ (exists ge_balance_positive_one_zero_foldresult ge_balance_negative_one_zero_foldresult. (((((0) = 2 * (ge_balance_positive_one_zero_foldresult) /\ (ge_balance_negative_one_zero_foldresult) = 0) \/ exists ge_signed_half_one_zero_foldresultdecode. (((0) = 2 * ge_signed_half_one_zero_foldresultdecode + 1 /\ (ge_balance_positive_one_zero_foldresult) = 0) /\ (ge_balance_negative_one_zero_foldresult) = S ge_signed_half_one_zero_foldresultdecode))) /\ ((dst_positive_sum_one_zero_fold) + ge_balance_negative_one_zero_foldresult = (dst_negative_sum_one_zero_fold) + ge_balance_positive_one_zero_foldresult))))))))
  14. 0014specialize dirichlet_convolution_zero_prefix_sum (F)
  15. 0015specialize dirichlet_convolution_zero_prefix_sum (G)
  16. 0016specialize dirichlet_convolution_zero_prefix_sum (1)
  17. 0017specialize dirichlet_convolution_zero_prefix_sum (x)
  18. 0018apply dirichlet_convolution_zero_prefix_sum
  19. 0019specialize dirichlet_convolution_prefix_restrict (F)
  20. 0020specialize dirichlet_convolution_prefix_restrict (G)
  21. 0021specialize dirichlet_convolution_prefix_restrict (1)
  22. 0022specialize dirichlet_convolution_prefix_restrict (1)
  23. 0023specialize dirichlet_convolution_prefix_restrict (0)
  24. 0024specialize dirichlet_convolution_prefix_restrict (x)
  25. 0025apply dirichlet_convolution_prefix_restrict
  26. 0026exact hc_right_witness_left
  27. 0027specialize zero_le (1)
  28. 0028apply zero_le
  29. 0029have hd : exists r v. (((exists dst_positive_code_one_previous_fold dst_positive_scale_one_previous_fold dst_negative_code_one_previous_fold dst_negative_scale_one_previous_fold dst_positive_sum_one_previous_fold dst_negative_sum_one_previous_fold. (((x) = (((((dst_positive_code_one_previous_fold) + (dst_positive_scale_one_previous_fold)) * S ((dst_positive_code_one_previous_fold) + (dst_positive_scale_one_previous_fold)) + ((dst_positive_scale_one_previous_fold) + (dst_positive_scale_one_previous_fold))) + (((dst_negative_code_one_previous_fold) + (dst_negative_scale_one_previous_fold)) * S ((dst_negative_code_one_previous_fold) + (dst_negative_scale_one_previous_fold)) + ((dst_negative_scale_one_previous_fold) + (dst_negative_scale_one_previous_fold)))) * S ((((dst_positive_code_one_previous_fold) + (dst_positive_scale_one_previous_fold)) * S ((dst_positive_code_one_previous_fold) + (dst_positive_scale_one_previous_fold)) + ((dst_positive_scale_one_previous_fold) + (dst_positive_scale_one_previous_fold))) + (((dst_negative_code_one_previous_fold) + (dst_negative_scale_one_previous_fold)) * S ((dst_negative_code_one_previous_fold) + (dst_negative_scale_one_previous_fold)) + ((dst_negative_scale_one_previous_fold) + (dst_negative_scale_one_previous_fold)))) + ((((dst_negative_code_one_previous_fold) + (dst_negative_scale_one_previous_fold)) * S ((dst_negative_code_one_previous_fold) + (dst_negative_scale_one_previous_fold)) + ((dst_negative_scale_one_previous_fold) + (dst_negative_scale_one_previous_fold))) + (((dst_negative_code_one_previous_fold) + (dst_negative_scale_one_previous_fold)) * S ((dst_negative_code_one_previous_fold) + (dst_negative_scale_one_previous_fold)) + ((dst_negative_scale_one_previous_fold) + (dst_negative_scale_one_previous_fold)))))) /\ (((exists fs_u_dst_one_previous_foldpositive fs_v_dst_one_previous_foldpositive. ((((exists fs_h_dst_one_previous_foldpositive_body_start. fs_h_dst_one_previous_foldpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_one_previous_foldpositive)) /\ exists fs_q_dst_one_previous_foldpositive_body_start. fs_u_dst_one_previous_foldpositive = fs_q_dst_one_previous_foldpositive_body_start * S ((S (0)) * fs_v_dst_one_previous_foldpositive) + (0))) /\ ((((exists fs_h_dst_one_previous_foldpositive_body_terminal. fs_h_dst_one_previous_foldpositive_body_terminal + S (dst_positive_sum_one_previous_fold) = S ((S (1)) * fs_v_dst_one_previous_foldpositive)) /\ exists fs_q_dst_one_previous_foldpositive_body_terminal. fs_u_dst_one_previous_foldpositive = fs_q_dst_one_previous_foldpositive_body_terminal * S ((S (1)) * fs_v_dst_one_previous_foldpositive) + (dst_positive_sum_one_previous_fold))) /\ forall fs_i_dst_one_previous_foldpositive_body_steps. (exists fs_lt_dst_one_previous_foldpositive_body_steps_bound. fs_lt_dst_one_previous_foldpositive_body_steps_bound + S fs_i_dst_one_previous_foldpositive_body_steps = 1) -> exists fs_a_dst_one_previous_foldpositive_body_steps fs_r_dst_one_previous_foldpositive_body_steps fs_s_dst_one_previous_foldpositive_body_steps. ((((exists fs_h_dst_one_previous_foldpositive_body_steps_summand. fs_h_dst_one_previous_foldpositive_body_steps_summand + S (fs_a_dst_one_previous_foldpositive_body_steps) = S ((S (fs_i_dst_one_previous_foldpositive_body_steps)) * dst_positive_scale_one_previous_fold)) /\ exists fs_q_dst_one_previous_foldpositive_body_steps_summand. dst_positive_code_one_previous_fold = fs_q_dst_one_previous_foldpositive_body_steps_summand * S ((S (fs_i_dst_one_previous_foldpositive_body_steps)) * dst_positive_scale_one_previous_fold) + (fs_a_dst_one_previous_foldpositive_body_steps))) /\ ((((exists fs_h_dst_one_previous_foldpositive_body_steps_partial. fs_h_dst_one_previous_foldpositive_body_steps_partial + S (fs_r_dst_one_previous_foldpositive_body_steps) = S ((S (fs_i_dst_one_previous_foldpositive_body_steps)) * fs_v_dst_one_previous_foldpositive)) /\ exists fs_q_dst_one_previous_foldpositive_body_steps_partial. fs_u_dst_one_previous_foldpositive = fs_q_dst_one_previous_foldpositive_body_steps_partial * S ((S (fs_i_dst_one_previous_foldpositive_body_steps)) * fs_v_dst_one_previous_foldpositive) + (fs_r_dst_one_previous_foldpositive_body_steps))) /\ ((((exists fs_h_dst_one_previous_foldpositive_body_steps_successor. fs_h_dst_one_previous_foldpositive_body_steps_successor + S (fs_s_dst_one_previous_foldpositive_body_steps) = S ((S (S fs_i_dst_one_previous_foldpositive_body_steps)) * fs_v_dst_one_previous_foldpositive)) /\ exists fs_q_dst_one_previous_foldpositive_body_steps_successor. fs_u_dst_one_previous_foldpositive = fs_q_dst_one_previous_foldpositive_body_steps_successor * S ((S (S fs_i_dst_one_previous_foldpositive_body_steps)) * fs_v_dst_one_previous_foldpositive) + (fs_s_dst_one_previous_foldpositive_body_steps))) /\ fs_s_dst_one_previous_foldpositive_body_steps = fs_r_dst_one_previous_foldpositive_body_steps + fs_a_dst_one_previous_foldpositive_body_steps)))))) /\ (((exists fs_u_dst_one_previous_foldnegative fs_v_dst_one_previous_foldnegative. ((((exists fs_h_dst_one_previous_foldnegative_body_start. fs_h_dst_one_previous_foldnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_one_previous_foldnegative)) /\ exists fs_q_dst_one_previous_foldnegative_body_start. fs_u_dst_one_previous_foldnegative = fs_q_dst_one_previous_foldnegative_body_start * S ((S (0)) * fs_v_dst_one_previous_foldnegative) + (0))) /\ ((((exists fs_h_dst_one_previous_foldnegative_body_terminal. fs_h_dst_one_previous_foldnegative_body_terminal + S (dst_negative_sum_one_previous_fold) = S ((S (1)) * fs_v_dst_one_previous_foldnegative)) /\ exists fs_q_dst_one_previous_foldnegative_body_terminal. fs_u_dst_one_previous_foldnegative = fs_q_dst_one_previous_foldnegative_body_terminal * S ((S (1)) * fs_v_dst_one_previous_foldnegative) + (dst_negative_sum_one_previous_fold))) /\ forall fs_i_dst_one_previous_foldnegative_body_steps. (exists fs_lt_dst_one_previous_foldnegative_body_steps_bound. fs_lt_dst_one_previous_foldnegative_body_steps_bound + S fs_i_dst_one_previous_foldnegative_body_steps = 1) -> exists fs_a_dst_one_previous_foldnegative_body_steps fs_r_dst_one_previous_foldnegative_body_steps fs_s_dst_one_previous_foldnegative_body_steps. ((((exists fs_h_dst_one_previous_foldnegative_body_steps_summand. fs_h_dst_one_previous_foldnegative_body_steps_summand + S (fs_a_dst_one_previous_foldnegative_body_steps) = S ((S (fs_i_dst_one_previous_foldnegative_body_steps)) * dst_negative_scale_one_previous_fold)) /\ exists fs_q_dst_one_previous_foldnegative_body_steps_summand. dst_negative_code_one_previous_fold = fs_q_dst_one_previous_foldnegative_body_steps_summand * S ((S (fs_i_dst_one_previous_foldnegative_body_steps)) * dst_negative_scale_one_previous_fold) + (fs_a_dst_one_previous_foldnegative_body_steps))) /\ ((((exists fs_h_dst_one_previous_foldnegative_body_steps_partial. fs_h_dst_one_previous_foldnegative_body_steps_partial + S (fs_r_dst_one_previous_foldnegative_body_steps) = S ((S (fs_i_dst_one_previous_foldnegative_body_steps)) * fs_v_dst_one_previous_foldnegative)) /\ exists fs_q_dst_one_previous_foldnegative_body_steps_partial. fs_u_dst_one_previous_foldnegative = fs_q_dst_one_previous_foldnegative_body_steps_partial * S ((S (fs_i_dst_one_previous_foldnegative_body_steps)) * fs_v_dst_one_previous_foldnegative) + (fs_r_dst_one_previous_foldnegative_body_steps))) /\ ((((exists fs_h_dst_one_previous_foldnegative_body_steps_successor. fs_h_dst_one_previous_foldnegative_body_steps_successor + S (fs_s_dst_one_previous_foldnegative_body_steps) = S ((S (S fs_i_dst_one_previous_foldnegative_body_steps)) * fs_v_dst_one_previous_foldnegative)) /\ exists fs_q_dst_one_previous_foldnegative_body_steps_successor. fs_u_dst_one_previous_foldnegative = fs_q_dst_one_previous_foldnegative_body_steps_successor * S ((S (S fs_i_dst_one_previous_foldnegative_body_steps)) * fs_v_dst_one_previous_foldnegative) + (fs_s_dst_one_previous_foldnegative_body_steps))) /\ fs_s_dst_one_previous_foldnegative_body_steps = fs_r_dst_one_previous_foldnegative_body_steps + fs_a_dst_one_previous_foldnegative_body_steps)))))) /\ (exists ge_balance_positive_one_previous_foldresult ge_balance_negative_one_previous_foldresult. (((((r) = 2 * (ge_balance_positive_one_previous_foldresult) /\ (ge_balance_negative_one_previous_foldresult) = 0) \/ exists ge_signed_half_one_previous_foldresultdecode. (((r) = 2 * ge_signed_half_one_previous_foldresultdecode + 1 /\ (ge_balance_positive_one_previous_foldresult) = 0) /\ (ge_balance_negative_one_previous_foldresult) = S ge_signed_half_one_previous_foldresultdecode))) /\ ((dst_positive_sum_one_previous_fold) + ge_balance_negative_one_previous_foldresult = (dst_negative_sum_one_previous_fold) + ge_balance_positive_one_previous_foldresult))))))))) /\ (((exists dst_positive_code_one_endpoint_lookup dst_positive_scale_one_endpoint_lookup dst_negative_code_one_endpoint_lookup dst_negative_scale_one_endpoint_lookup dst_positive_one_endpoint_lookup dst_negative_one_endpoint_lookup. (((x) = (((((dst_positive_code_one_endpoint_lookup) + (dst_positive_scale_one_endpoint_lookup)) * S ((dst_positive_code_one_endpoint_lookup) + (dst_positive_scale_one_endpoint_lookup)) + ((dst_positive_scale_one_endpoint_lookup) + (dst_positive_scale_one_endpoint_lookup))) + (((dst_negative_code_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)) * S ((dst_negative_code_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)) + ((dst_negative_scale_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)))) * S ((((dst_positive_code_one_endpoint_lookup) + (dst_positive_scale_one_endpoint_lookup)) * S ((dst_positive_code_one_endpoint_lookup) + (dst_positive_scale_one_endpoint_lookup)) + ((dst_positive_scale_one_endpoint_lookup) + (dst_positive_scale_one_endpoint_lookup))) + (((dst_negative_code_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)) * S ((dst_negative_code_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)) + ((dst_negative_scale_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)))) + ((((dst_negative_code_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)) * S ((dst_negative_code_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)) + ((dst_negative_scale_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup))) + (((dst_negative_code_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)) * S ((dst_negative_code_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)) + ((dst_negative_scale_one_endpoint_lookup) + (dst_negative_scale_one_endpoint_lookup)))))) /\ (((((exists ff_h_pvs_one_endpoint_lookuppositive. ff_h_pvs_one_endpoint_lookuppositive + S (dst_positive_one_endpoint_lookup) = S ((S (1)) * dst_positive_scale_one_endpoint_lookup)) /\ exists ff_q_pvs_one_endpoint_lookuppositive. dst_positive_code_one_endpoint_lookup = ff_q_pvs_one_endpoint_lookuppositive * S ((S (1)) * dst_positive_scale_one_endpoint_lookup) + (dst_positive_one_endpoint_lookup))) /\ (((((exists ff_h_pvs_one_endpoint_lookupnegative. ff_h_pvs_one_endpoint_lookupnegative + S (dst_negative_one_endpoint_lookup) = S ((S (1)) * dst_negative_scale_one_endpoint_lookup)) /\ exists ff_q_pvs_one_endpoint_lookupnegative. dst_negative_code_one_endpoint_lookup = ff_q_pvs_one_endpoint_lookupnegative * S ((S (1)) * dst_negative_scale_one_endpoint_lookup) + (dst_negative_one_endpoint_lookup))) /\ (exists ge_balance_positive_one_endpoint_lookupvalue ge_balance_negative_one_endpoint_lookupvalue. (((((v) = 2 * (ge_balance_positive_one_endpoint_lookupvalue) /\ (ge_balance_negative_one_endpoint_lookupvalue) = 0) \/ exists ge_signed_half_one_endpoint_lookupvaluedecode. (((v) = 2 * ge_signed_half_one_endpoint_lookupvaluedecode + 1 /\ (ge_balance_positive_one_endpoint_lookupvalue) = 0) /\ (ge_balance_negative_one_endpoint_lookupvalue) = S ge_signed_half_one_endpoint_lookupvaluedecode))) /\ ((dst_positive_one_endpoint_lookup) + ge_balance_negative_one_endpoint_lookupvalue = (dst_negative_one_endpoint_lookup) + ge_balance_positive_one_endpoint_lookupvalue))))))))) /\ (exists dsa_ap_one_fold_add dsa_an_one_fold_add dsa_bp_one_fold_add dsa_bn_one_fold_add dsa_cp_one_fold_add dsa_cn_one_fold_add. (((((r) = 2 * (dsa_ap_one_fold_add) /\ (dsa_an_one_fold_add) = 0) \/ exists ge_signed_half_one_fold_addleft. (((r) = 2 * ge_signed_half_one_fold_addleft + 1 /\ (dsa_ap_one_fold_add) = 0) /\ (dsa_an_one_fold_add) = S ge_signed_half_one_fold_addleft))) /\ ((((((v) = 2 * (dsa_bp_one_fold_add) /\ (dsa_bn_one_fold_add) = 0) \/ exists ge_signed_half_one_fold_addright. (((v) = 2 * ge_signed_half_one_fold_addright + 1 /\ (dsa_bp_one_fold_add) = 0) /\ (dsa_bn_one_fold_add) = S ge_signed_half_one_fold_addright))) /\ ((((((z) = 2 * (dsa_cp_one_fold_add) /\ (dsa_cn_one_fold_add) = 0) \/ exists ge_signed_half_one_fold_addoutput. (((z) = 2 * ge_signed_half_one_fold_addoutput + 1 /\ (dsa_cp_one_fold_add) = 0) /\ (dsa_cn_one_fold_add) = S ge_signed_half_one_fold_addoutput))) /\ ((dsa_ap_one_fold_add + dsa_bp_one_fold_add) + dsa_cn_one_fold_add = (dsa_an_one_fold_add + dsa_bn_one_fold_add) + dsa_cp_one_fold_add)))))))))))
  30. 0030specialize divisor_signed_sum_successor_decompose (x)
  31. 0031specialize divisor_signed_sum_successor_decompose (1)
  32. 0032specialize divisor_signed_sum_successor_decompose (z)
  33. 0033apply divisor_signed_sum_successor_decompose
  34. 0034exact hc_right_witness_right
  35. 0035cases hd
  36. 0036cases hd_witness
  37. 0037cases hd_witness_witness
  38. 0038cases hd_witness_witness_right
  39. 0039have hr0 : x1=0
  40. 0040specialize divisor_signed_sum_functional (x)
  41. 0041specialize divisor_signed_sum_functional (1)
  42. 0042specialize divisor_signed_sum_functional (x1)
  43. 0043specialize divisor_signed_sum_functional (0)
  44. 0044apply divisor_signed_sum_functional
  45. 0045exact hd_witness_witness_left
  46. 0046exact hzero
  47. 0047rewrite hr0 at hd_witness_witness_right_right
  48. 0048rewrite hr0 at hd_witness_witness_right_right
  49. 0049have hv : x2=z
  50. 0050symm
  51. 0051specialize signed_add_functional (0)
  52. 0052specialize signed_add_functional (x2)
  53. 0053specialize signed_add_functional (z)
  54. 0054specialize signed_add_functional (x2)
  55. 0055apply signed_add_functional
  56. 0056exact hd_witness_witness_right_right
  57. 0057specialize signed_add_zero_left (x2)
  58. 0058apply signed_add_zero_left
  59. 0059have he : ((((((~((1)=0)) /\ (exists dc_quotient_one_actual_entry dc_left_one_actual_entry dc_right_one_actual_entry. (((1)=(1)*dc_quotient_one_actual_entry) /\ (((exists dst_positive_code_one_actual_entryleft dst_positive_scale_one_actual_entryleft dst_negative_code_one_actual_entryleft dst_negative_scale_one_actual_entryleft dst_positive_one_actual_entryleft dst_negative_one_actual_entryleft. (((F) = (((((dst_positive_code_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft)) * S ((dst_positive_code_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft)) + ((dst_positive_scale_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft))) + (((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) * S ((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) + ((dst_negative_scale_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)))) * S ((((dst_positive_code_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft)) * S ((dst_positive_code_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft)) + ((dst_positive_scale_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft))) + (((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) * S ((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) + ((dst_negative_scale_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)))) + ((((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) * S ((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) + ((dst_negative_scale_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft))) + (((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) * S ((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) + ((dst_negative_scale_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)))))) /\ (((((exists ff_h_pvs_one_actual_entryleftpositive. ff_h_pvs_one_actual_entryleftpositive + S (dst_positive_one_actual_entryleft) = S ((S (1)) * dst_positive_scale_one_actual_entryleft)) /\ exists ff_q_pvs_one_actual_entryleftpositive. dst_positive_code_one_actual_entryleft = ff_q_pvs_one_actual_entryleftpositive * S ((S (1)) * dst_positive_scale_one_actual_entryleft) + (dst_positive_one_actual_entryleft))) /\ (((((exists ff_h_pvs_one_actual_entryleftnegative. ff_h_pvs_one_actual_entryleftnegative + S (dst_negative_one_actual_entryleft) = S ((S (1)) * dst_negative_scale_one_actual_entryleft)) /\ exists ff_q_pvs_one_actual_entryleftnegative. dst_negative_code_one_actual_entryleft = ff_q_pvs_one_actual_entryleftnegative * S ((S (1)) * dst_negative_scale_one_actual_entryleft) + (dst_negative_one_actual_entryleft))) /\ (exists ge_balance_positive_one_actual_entryleftvalue ge_balance_negative_one_actual_entryleftvalue. (((((dc_left_one_actual_entry) = 2 * (ge_balance_positive_one_actual_entryleftvalue) /\ (ge_balance_negative_one_actual_entryleftvalue) = 0) \/ exists ge_signed_half_one_actual_entryleftvaluedecode. (((dc_left_one_actual_entry) = 2 * ge_signed_half_one_actual_entryleftvaluedecode + 1 /\ (ge_balance_positive_one_actual_entryleftvalue) = 0) /\ (ge_balance_negative_one_actual_entryleftvalue) = S ge_signed_half_one_actual_entryleftvaluedecode))) /\ ((dst_positive_one_actual_entryleft) + ge_balance_negative_one_actual_entryleftvalue = (dst_negative_one_actual_entryleft) + ge_balance_positive_one_actual_entryleftvalue))))))))) /\ (((exists dst_positive_code_one_actual_entryright dst_positive_scale_one_actual_entryright dst_negative_code_one_actual_entryright dst_negative_scale_one_actual_entryright dst_positive_one_actual_entryright dst_negative_one_actual_entryright. (((G) = (((((dst_positive_code_one_actual_entryright) + (dst_positive_scale_one_actual_entryright)) * S ((dst_positive_code_one_actual_entryright) + (dst_positive_scale_one_actual_entryright)) + ((dst_positive_scale_one_actual_entryright) + (dst_positive_scale_one_actual_entryright))) + (((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) * S ((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) + ((dst_negative_scale_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)))) * S ((((dst_positive_code_one_actual_entryright) + (dst_positive_scale_one_actual_entryright)) * S ((dst_positive_code_one_actual_entryright) + (dst_positive_scale_one_actual_entryright)) + ((dst_positive_scale_one_actual_entryright) + (dst_positive_scale_one_actual_entryright))) + (((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) * S ((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) + ((dst_negative_scale_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)))) + ((((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) * S ((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) + ((dst_negative_scale_one_actual_entryright) + (dst_negative_scale_one_actual_entryright))) + (((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) * S ((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) + ((dst_negative_scale_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)))))) /\ (((((exists ff_h_pvs_one_actual_entryrightpositive. ff_h_pvs_one_actual_entryrightpositive + S (dst_positive_one_actual_entryright) = S ((S (dc_quotient_one_actual_entry)) * dst_positive_scale_one_actual_entryright)) /\ exists ff_q_pvs_one_actual_entryrightpositive. dst_positive_code_one_actual_entryright = ff_q_pvs_one_actual_entryrightpositive * S ((S (dc_quotient_one_actual_entry)) * dst_positive_scale_one_actual_entryright) + (dst_positive_one_actual_entryright))) /\ (((((exists ff_h_pvs_one_actual_entryrightnegative. ff_h_pvs_one_actual_entryrightnegative + S (dst_negative_one_actual_entryright) = S ((S (dc_quotient_one_actual_entry)) * dst_negative_scale_one_actual_entryright)) /\ exists ff_q_pvs_one_actual_entryrightnegative. dst_negative_code_one_actual_entryright = ff_q_pvs_one_actual_entryrightnegative * S ((S (dc_quotient_one_actual_entry)) * dst_negative_scale_one_actual_entryright) + (dst_negative_one_actual_entryright))) /\ (exists ge_balance_positive_one_actual_entryrightvalue ge_balance_negative_one_actual_entryrightvalue. (((((dc_right_one_actual_entry) = 2 * (ge_balance_positive_one_actual_entryrightvalue) /\ (ge_balance_negative_one_actual_entryrightvalue) = 0) \/ exists ge_signed_half_one_actual_entryrightvaluedecode. (((dc_right_one_actual_entry) = 2 * ge_signed_half_one_actual_entryrightvaluedecode + 1 /\ (ge_balance_positive_one_actual_entryrightvalue) = 0) /\ (ge_balance_negative_one_actual_entryrightvalue) = S ge_signed_half_one_actual_entryrightvaluedecode))) /\ ((dst_positive_one_actual_entryright) + ge_balance_negative_one_actual_entryrightvalue = (dst_negative_one_actual_entryright) + ge_balance_positive_one_actual_entryrightvalue))))))))) /\ (exists sto_ap_one_actual_entryproduct sto_an_one_actual_entryproduct sto_bp_one_actual_entryproduct sto_bn_one_actual_entryproduct sto_cp_one_actual_entryproduct sto_cn_one_actual_entryproduct. (((((dc_left_one_actual_entry) = 2 * (sto_ap_one_actual_entryproduct) /\ (sto_an_one_actual_entryproduct) = 0) \/ exists ge_signed_half_one_actual_entryproductleft. (((dc_left_one_actual_entry) = 2 * ge_signed_half_one_actual_entryproductleft + 1 /\ (sto_ap_one_actual_entryproduct) = 0) /\ (sto_an_one_actual_entryproduct) = S ge_signed_half_one_actual_entryproductleft))) /\ ((((((dc_right_one_actual_entry) = 2 * (sto_bp_one_actual_entryproduct) /\ (sto_bn_one_actual_entryproduct) = 0) \/ exists ge_signed_half_one_actual_entryproductright. (((dc_right_one_actual_entry) = 2 * ge_signed_half_one_actual_entryproductright + 1 /\ (sto_bp_one_actual_entryproduct) = 0) /\ (sto_bn_one_actual_entryproduct) = S ge_signed_half_one_actual_entryproductright))) /\ ((((((x2) = 2 * (sto_cp_one_actual_entryproduct) /\ (sto_cn_one_actual_entryproduct) = 0) \/ exists ge_signed_half_one_actual_entryproductoutput. (((x2) = 2 * ge_signed_half_one_actual_entryproductoutput + 1 /\ (sto_cp_one_actual_entryproduct) = 0) /\ (sto_cn_one_actual_entryproduct) = S ge_signed_half_one_actual_entryproductoutput))) /\ ((sto_ap_one_actual_entryproduct * sto_bp_one_actual_entryproduct + sto_an_one_actual_entryproduct * sto_bn_one_actual_entryproduct) + sto_cn_one_actual_entryproduct = (sto_ap_one_actual_entryproduct * sto_bn_one_actual_entryproduct + sto_an_one_actual_entryproduct * sto_bp_one_actual_entryproduct) + sto_cp_one_actual_entryproduct))))))))))))))) \/ ((((1)=0 \/ ~(exists pvs_factor_one_actual_entrynondivisor. (1) = (1) * pvs_factor_one_actual_entrynondivisor)) /\ ((x2)=0)))) -> (exists sto_ap_one_actual_product sto_an_one_actual_product sto_bp_one_actual_product sto_bn_one_actual_product sto_cp_one_actual_product sto_cn_one_actual_product. (((((a) = 2 * (sto_ap_one_actual_product) /\ (sto_an_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productleft. (((a) = 2 * ge_signed_half_one_actual_productleft + 1 /\ (sto_ap_one_actual_product) = 0) /\ (sto_an_one_actual_product) = S ge_signed_half_one_actual_productleft))) /\ ((((((b) = 2 * (sto_bp_one_actual_product) /\ (sto_bn_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productright. (((b) = 2 * ge_signed_half_one_actual_productright + 1 /\ (sto_bp_one_actual_product) = 0) /\ (sto_bn_one_actual_product) = S ge_signed_half_one_actual_productright))) /\ ((((((x2) = 2 * (sto_cp_one_actual_product) /\ (sto_cn_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productoutput. (((x2) = 2 * ge_signed_half_one_actual_productoutput + 1 /\ (sto_cp_one_actual_product) = 0) /\ (sto_cn_one_actual_product) = S ge_signed_half_one_actual_productoutput))) /\ ((sto_ap_one_actual_product * sto_bp_one_actual_product + sto_an_one_actual_product * sto_bn_one_actual_product) + sto_cn_one_actual_product = (sto_ap_one_actual_product * sto_bn_one_actual_product + sto_an_one_actual_product * sto_bp_one_actual_product) + sto_cp_one_actual_product)))))))) /\ ((exists sto_ap_one_actual_product sto_an_one_actual_product sto_bp_one_actual_product sto_bn_one_actual_product sto_cp_one_actual_product sto_cn_one_actual_product. (((((a) = 2 * (sto_ap_one_actual_product) /\ (sto_an_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productleft. (((a) = 2 * ge_signed_half_one_actual_productleft + 1 /\ (sto_ap_one_actual_product) = 0) /\ (sto_an_one_actual_product) = S ge_signed_half_one_actual_productleft))) /\ ((((((b) = 2 * (sto_bp_one_actual_product) /\ (sto_bn_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productright. (((b) = 2 * ge_signed_half_one_actual_productright + 1 /\ (sto_bp_one_actual_product) = 0) /\ (sto_bn_one_actual_product) = S ge_signed_half_one_actual_productright))) /\ ((((((x2) = 2 * (sto_cp_one_actual_product) /\ (sto_cn_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productoutput. (((x2) = 2 * ge_signed_half_one_actual_productoutput + 1 /\ (sto_cp_one_actual_product) = 0) /\ (sto_cn_one_actual_product) = S ge_signed_half_one_actual_productoutput))) /\ ((sto_ap_one_actual_product * sto_bp_one_actual_product + sto_an_one_actual_product * sto_bn_one_actual_product) + sto_cn_one_actual_product = (sto_ap_one_actual_product * sto_bn_one_actual_product + sto_an_one_actual_product * sto_bp_one_actual_product) + sto_cp_one_actual_product))))))) -> ((((~((1)=0)) /\ (exists dc_quotient_one_actual_entry dc_left_one_actual_entry dc_right_one_actual_entry. (((1)=(1)*dc_quotient_one_actual_entry) /\ (((exists dst_positive_code_one_actual_entryleft dst_positive_scale_one_actual_entryleft dst_negative_code_one_actual_entryleft dst_negative_scale_one_actual_entryleft dst_positive_one_actual_entryleft dst_negative_one_actual_entryleft. (((F) = (((((dst_positive_code_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft)) * S ((dst_positive_code_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft)) + ((dst_positive_scale_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft))) + (((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) * S ((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) + ((dst_negative_scale_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)))) * S ((((dst_positive_code_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft)) * S ((dst_positive_code_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft)) + ((dst_positive_scale_one_actual_entryleft) + (dst_positive_scale_one_actual_entryleft))) + (((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) * S ((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) + ((dst_negative_scale_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)))) + ((((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) * S ((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) + ((dst_negative_scale_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft))) + (((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) * S ((dst_negative_code_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)) + ((dst_negative_scale_one_actual_entryleft) + (dst_negative_scale_one_actual_entryleft)))))) /\ (((((exists ff_h_pvs_one_actual_entryleftpositive. ff_h_pvs_one_actual_entryleftpositive + S (dst_positive_one_actual_entryleft) = S ((S (1)) * dst_positive_scale_one_actual_entryleft)) /\ exists ff_q_pvs_one_actual_entryleftpositive. dst_positive_code_one_actual_entryleft = ff_q_pvs_one_actual_entryleftpositive * S ((S (1)) * dst_positive_scale_one_actual_entryleft) + (dst_positive_one_actual_entryleft))) /\ (((((exists ff_h_pvs_one_actual_entryleftnegative. ff_h_pvs_one_actual_entryleftnegative + S (dst_negative_one_actual_entryleft) = S ((S (1)) * dst_negative_scale_one_actual_entryleft)) /\ exists ff_q_pvs_one_actual_entryleftnegative. dst_negative_code_one_actual_entryleft = ff_q_pvs_one_actual_entryleftnegative * S ((S (1)) * dst_negative_scale_one_actual_entryleft) + (dst_negative_one_actual_entryleft))) /\ (exists ge_balance_positive_one_actual_entryleftvalue ge_balance_negative_one_actual_entryleftvalue. (((((dc_left_one_actual_entry) = 2 * (ge_balance_positive_one_actual_entryleftvalue) /\ (ge_balance_negative_one_actual_entryleftvalue) = 0) \/ exists ge_signed_half_one_actual_entryleftvaluedecode. (((dc_left_one_actual_entry) = 2 * ge_signed_half_one_actual_entryleftvaluedecode + 1 /\ (ge_balance_positive_one_actual_entryleftvalue) = 0) /\ (ge_balance_negative_one_actual_entryleftvalue) = S ge_signed_half_one_actual_entryleftvaluedecode))) /\ ((dst_positive_one_actual_entryleft) + ge_balance_negative_one_actual_entryleftvalue = (dst_negative_one_actual_entryleft) + ge_balance_positive_one_actual_entryleftvalue))))))))) /\ (((exists dst_positive_code_one_actual_entryright dst_positive_scale_one_actual_entryright dst_negative_code_one_actual_entryright dst_negative_scale_one_actual_entryright dst_positive_one_actual_entryright dst_negative_one_actual_entryright. (((G) = (((((dst_positive_code_one_actual_entryright) + (dst_positive_scale_one_actual_entryright)) * S ((dst_positive_code_one_actual_entryright) + (dst_positive_scale_one_actual_entryright)) + ((dst_positive_scale_one_actual_entryright) + (dst_positive_scale_one_actual_entryright))) + (((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) * S ((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) + ((dst_negative_scale_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)))) * S ((((dst_positive_code_one_actual_entryright) + (dst_positive_scale_one_actual_entryright)) * S ((dst_positive_code_one_actual_entryright) + (dst_positive_scale_one_actual_entryright)) + ((dst_positive_scale_one_actual_entryright) + (dst_positive_scale_one_actual_entryright))) + (((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) * S ((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) + ((dst_negative_scale_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)))) + ((((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) * S ((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) + ((dst_negative_scale_one_actual_entryright) + (dst_negative_scale_one_actual_entryright))) + (((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) * S ((dst_negative_code_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)) + ((dst_negative_scale_one_actual_entryright) + (dst_negative_scale_one_actual_entryright)))))) /\ (((((exists ff_h_pvs_one_actual_entryrightpositive. ff_h_pvs_one_actual_entryrightpositive + S (dst_positive_one_actual_entryright) = S ((S (dc_quotient_one_actual_entry)) * dst_positive_scale_one_actual_entryright)) /\ exists ff_q_pvs_one_actual_entryrightpositive. dst_positive_code_one_actual_entryright = ff_q_pvs_one_actual_entryrightpositive * S ((S (dc_quotient_one_actual_entry)) * dst_positive_scale_one_actual_entryright) + (dst_positive_one_actual_entryright))) /\ (((((exists ff_h_pvs_one_actual_entryrightnegative. ff_h_pvs_one_actual_entryrightnegative + S (dst_negative_one_actual_entryright) = S ((S (dc_quotient_one_actual_entry)) * dst_negative_scale_one_actual_entryright)) /\ exists ff_q_pvs_one_actual_entryrightnegative. dst_negative_code_one_actual_entryright = ff_q_pvs_one_actual_entryrightnegative * S ((S (dc_quotient_one_actual_entry)) * dst_negative_scale_one_actual_entryright) + (dst_negative_one_actual_entryright))) /\ (exists ge_balance_positive_one_actual_entryrightvalue ge_balance_negative_one_actual_entryrightvalue. (((((dc_right_one_actual_entry) = 2 * (ge_balance_positive_one_actual_entryrightvalue) /\ (ge_balance_negative_one_actual_entryrightvalue) = 0) \/ exists ge_signed_half_one_actual_entryrightvaluedecode. (((dc_right_one_actual_entry) = 2 * ge_signed_half_one_actual_entryrightvaluedecode + 1 /\ (ge_balance_positive_one_actual_entryrightvalue) = 0) /\ (ge_balance_negative_one_actual_entryrightvalue) = S ge_signed_half_one_actual_entryrightvaluedecode))) /\ ((dst_positive_one_actual_entryright) + ge_balance_negative_one_actual_entryrightvalue = (dst_negative_one_actual_entryright) + ge_balance_positive_one_actual_entryrightvalue))))))))) /\ (exists sto_ap_one_actual_entryproduct sto_an_one_actual_entryproduct sto_bp_one_actual_entryproduct sto_bn_one_actual_entryproduct sto_cp_one_actual_entryproduct sto_cn_one_actual_entryproduct. (((((dc_left_one_actual_entry) = 2 * (sto_ap_one_actual_entryproduct) /\ (sto_an_one_actual_entryproduct) = 0) \/ exists ge_signed_half_one_actual_entryproductleft. (((dc_left_one_actual_entry) = 2 * ge_signed_half_one_actual_entryproductleft + 1 /\ (sto_ap_one_actual_entryproduct) = 0) /\ (sto_an_one_actual_entryproduct) = S ge_signed_half_one_actual_entryproductleft))) /\ ((((((dc_right_one_actual_entry) = 2 * (sto_bp_one_actual_entryproduct) /\ (sto_bn_one_actual_entryproduct) = 0) \/ exists ge_signed_half_one_actual_entryproductright. (((dc_right_one_actual_entry) = 2 * ge_signed_half_one_actual_entryproductright + 1 /\ (sto_bp_one_actual_entryproduct) = 0) /\ (sto_bn_one_actual_entryproduct) = S ge_signed_half_one_actual_entryproductright))) /\ ((((((x2) = 2 * (sto_cp_one_actual_entryproduct) /\ (sto_cn_one_actual_entryproduct) = 0) \/ exists ge_signed_half_one_actual_entryproductoutput. (((x2) = 2 * ge_signed_half_one_actual_entryproductoutput + 1 /\ (sto_cp_one_actual_entryproduct) = 0) /\ (sto_cn_one_actual_entryproduct) = S ge_signed_half_one_actual_entryproductoutput))) /\ ((sto_ap_one_actual_entryproduct * sto_bp_one_actual_entryproduct + sto_an_one_actual_entryproduct * sto_bn_one_actual_entryproduct) + sto_cn_one_actual_entryproduct = (sto_ap_one_actual_entryproduct * sto_bn_one_actual_entryproduct + sto_an_one_actual_entryproduct * sto_bp_one_actual_entryproduct) + sto_cp_one_actual_entryproduct))))))))))))))) \/ ((((1)=0 \/ ~(exists pvs_factor_one_actual_entrynondivisor. (1) = (1) * pvs_factor_one_actual_entrynondivisor)) /\ ((x2)=0))))))
  60. 0060specialize dirichlet_convolution_last_entry_iff (F)
  61. 0061specialize dirichlet_convolution_last_entry_iff (G)
  62. 0062specialize dirichlet_convolution_last_entry_iff (1)
  63. 0063specialize dirichlet_convolution_last_entry_iff (a)
  64. 0064specialize dirichlet_convolution_last_entry_iff (b)
  65. 0065specialize dirichlet_convolution_last_entry_iff (x2)
  66. 0066apply dirichlet_convolution_last_entry_iff
  67. 0067intro hn
  68. 0068apply PA1
  69. 0069exact hn
  70. 0070exact ha
  71. 0071exact hb
  72. 0072cases he
  73. 0073have hp : exists sto_ap_one_actual_product sto_an_one_actual_product sto_bp_one_actual_product sto_bn_one_actual_product sto_cp_one_actual_product sto_cn_one_actual_product. (((((a) = 2 * (sto_ap_one_actual_product) /\ (sto_an_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productleft. (((a) = 2 * ge_signed_half_one_actual_productleft + 1 /\ (sto_ap_one_actual_product) = 0) /\ (sto_an_one_actual_product) = S ge_signed_half_one_actual_productleft))) /\ ((((((b) = 2 * (sto_bp_one_actual_product) /\ (sto_bn_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productright. (((b) = 2 * ge_signed_half_one_actual_productright + 1 /\ (sto_bp_one_actual_product) = 0) /\ (sto_bn_one_actual_product) = S ge_signed_half_one_actual_productright))) /\ ((((((x2) = 2 * (sto_cp_one_actual_product) /\ (sto_cn_one_actual_product) = 0) \/ exists ge_signed_half_one_actual_productoutput. (((x2) = 2 * ge_signed_half_one_actual_productoutput + 1 /\ (sto_cp_one_actual_product) = 0) /\ (sto_cn_one_actual_product) = S ge_signed_half_one_actual_productoutput))) /\ ((sto_ap_one_actual_product * sto_bp_one_actual_product + sto_an_one_actual_product * sto_bn_one_actual_product) + sto_cn_one_actual_product = (sto_ap_one_actual_product * sto_bn_one_actual_product + sto_an_one_actual_product * sto_bp_one_actual_product) + sto_cp_one_actual_product))))))
  74. 0074apply he_left
  75. 0075specialize dirichlet_convolution_prefix_lookup (F)
  76. 0076specialize dirichlet_convolution_prefix_lookup (G)
  77. 0077specialize dirichlet_convolution_prefix_lookup (1)
  78. 0078specialize dirichlet_convolution_prefix_lookup (1)
  79. 0079specialize dirichlet_convolution_prefix_lookup (x)
  80. 0080specialize dirichlet_convolution_prefix_lookup (1)
  81. 0081specialize dirichlet_convolution_prefix_lookup (x2)
  82. 0082apply dirichlet_convolution_prefix_lookup
  83. 0083exact hc_right_witness_left
  84. 0084specialize le_refl (1)
  85. 0085apply le_refl
  86. 0086exact hd_witness_witness_right_left
  87. 0087rewrite hv at hp
  88. 0088rewrite hv at hp
  89. 0089exact hp
  90. 0090intro hp
  91. 0091have hm : exists M. (exists dst_positive_code_one_base_table dst_positive_scale_one_base_table dst_negative_code_one_base_table dst_negative_scale_one_base_table. (((M) = (((((dst_positive_code_one_base_table) + (dst_positive_scale_one_base_table)) * S ((dst_positive_code_one_base_table) + (dst_positive_scale_one_base_table)) + ((dst_positive_scale_one_base_table) + (dst_positive_scale_one_base_table))) + (((dst_negative_code_one_base_table) + (dst_negative_scale_one_base_table)) * S ((dst_negative_code_one_base_table) + (dst_negative_scale_one_base_table)) + ((dst_negative_scale_one_base_table) + (dst_negative_scale_one_base_table)))) * S ((((dst_positive_code_one_base_table) + (dst_positive_scale_one_base_table)) * S ((dst_positive_code_one_base_table) + (dst_positive_scale_one_base_table)) + ((dst_positive_scale_one_base_table) + (dst_positive_scale_one_base_table))) + (((dst_negative_code_one_base_table) + (dst_negative_scale_one_base_table)) * S ((dst_negative_code_one_base_table) + (dst_negative_scale_one_base_table)) + ((dst_negative_scale_one_base_table) + (dst_negative_scale_one_base_table)))) + ((((dst_negative_code_one_base_table) + (dst_negative_scale_one_base_table)) * S ((dst_negative_code_one_base_table) + (dst_negative_scale_one_base_table)) + ((dst_negative_scale_one_base_table) + (dst_negative_scale_one_base_table))) + (((dst_negative_code_one_base_table) + (dst_negative_scale_one_base_table)) * S ((dst_negative_code_one_base_table) + (dst_negative_scale_one_base_table)) + ((dst_negative_scale_one_base_table) + (dst_negative_scale_one_base_table)))))) /\ (forall dst_index_one_base_table. (exists pvs_le_gap_one_base_tabledomain. pvs_le_gap_one_base_tabledomain + (dst_index_one_base_table) = (0)) -> exists dst_positive_one_base_table dst_negative_one_base_table dst_value_one_base_table. ((((exists ff_h_pvs_one_base_tableentrypositive. ff_h_pvs_one_base_tableentrypositive + S (dst_positive_one_base_table) = S ((S (dst_index_one_base_table)) * dst_positive_scale_one_base_table)) /\ exists ff_q_pvs_one_base_tableentrypositive. dst_positive_code_one_base_table = ff_q_pvs_one_base_tableentrypositive * S ((S (dst_index_one_base_table)) * dst_positive_scale_one_base_table) + (dst_positive_one_base_table))) /\ (((((exists ff_h_pvs_one_base_tableentrynegative. ff_h_pvs_one_base_tableentrynegative + S (dst_negative_one_base_table) = S ((S (dst_index_one_base_table)) * dst_negative_scale_one_base_table)) /\ exists ff_q_pvs_one_base_tableentrynegative. dst_negative_code_one_base_table = ff_q_pvs_one_base_tableentrynegative * S ((S (dst_index_one_base_table)) * dst_negative_scale_one_base_table) + (dst_negative_one_base_table))) /\ (exists ge_balance_positive_one_base_tableentryvalue ge_balance_negative_one_base_tableentryvalue. (((((dst_value_one_base_table) = 2 * (ge_balance_positive_one_base_tableentryvalue) /\ (ge_balance_negative_one_base_tableentryvalue) = 0) \/ exists ge_signed_half_one_base_tableentryvaluedecode. (((dst_value_one_base_table) = 2 * ge_signed_half_one_base_tableentryvaluedecode + 1 /\ (ge_balance_positive_one_base_tableentryvalue) = 0) /\ (ge_balance_negative_one_base_tableentryvalue) = S ge_signed_half_one_base_tableentryvaluedecode))) /\ ((dst_positive_one_base_table) + ge_balance_negative_one_base_tableentryvalue = (dst_negative_one_base_table) + ge_balance_positive_one_base_tableentryvalue))))))))) /\ (exists dst_positive_code_one_base_entry dst_positive_scale_one_base_entry dst_negative_code_one_base_entry dst_negative_scale_one_base_entry dst_positive_one_base_entry dst_negative_one_base_entry. (((M) = (((((dst_positive_code_one_base_entry) + (dst_positive_scale_one_base_entry)) * S ((dst_positive_code_one_base_entry) + (dst_positive_scale_one_base_entry)) + ((dst_positive_scale_one_base_entry) + (dst_positive_scale_one_base_entry))) + (((dst_negative_code_one_base_entry) + (dst_negative_scale_one_base_entry)) * S ((dst_negative_code_one_base_entry) + (dst_negative_scale_one_base_entry)) + ((dst_negative_scale_one_base_entry) + (dst_negative_scale_one_base_entry)))) * S ((((dst_positive_code_one_base_entry) + (dst_positive_scale_one_base_entry)) * S ((dst_positive_code_one_base_entry) + (dst_positive_scale_one_base_entry)) + ((dst_positive_scale_one_base_entry) + (dst_positive_scale_one_base_entry))) + (((dst_negative_code_one_base_entry) + (dst_negative_scale_one_base_entry)) * S ((dst_negative_code_one_base_entry) + (dst_negative_scale_one_base_entry)) + ((dst_negative_scale_one_base_entry) + (dst_negative_scale_one_base_entry)))) + ((((dst_negative_code_one_base_entry) + (dst_negative_scale_one_base_entry)) * S ((dst_negative_code_one_base_entry) + (dst_negative_scale_one_base_entry)) + ((dst_negative_scale_one_base_entry) + (dst_negative_scale_one_base_entry))) + (((dst_negative_code_one_base_entry) + (dst_negative_scale_one_base_entry)) * S ((dst_negative_code_one_base_entry) + (dst_negative_scale_one_base_entry)) + ((dst_negative_scale_one_base_entry) + (dst_negative_scale_one_base_entry)))))) /\ (((((exists ff_h_pvs_one_base_entrypositive. ff_h_pvs_one_base_entrypositive + S (dst_positive_one_base_entry) = S ((S (0)) * dst_positive_scale_one_base_entry)) /\ exists ff_q_pvs_one_base_entrypositive. dst_positive_code_one_base_entry = ff_q_pvs_one_base_entrypositive * S ((S (0)) * dst_positive_scale_one_base_entry) + (dst_positive_one_base_entry))) /\ (((((exists ff_h_pvs_one_base_entrynegative. ff_h_pvs_one_base_entrynegative + S (dst_negative_one_base_entry) = S ((S (0)) * dst_negative_scale_one_base_entry)) /\ exists ff_q_pvs_one_base_entrynegative. dst_negative_code_one_base_entry = ff_q_pvs_one_base_entrynegative * S ((S (0)) * dst_negative_scale_one_base_entry) + (dst_negative_one_base_entry))) /\ (exists ge_balance_positive_one_base_entryvalue ge_balance_negative_one_base_entryvalue. (((((0) = 2 * (ge_balance_positive_one_base_entryvalue) /\ (ge_balance_negative_one_base_entryvalue) = 0) \/ exists ge_signed_half_one_base_entryvaluedecode. (((0) = 2 * ge_signed_half_one_base_entryvaluedecode + 1 /\ (ge_balance_positive_one_base_entryvalue) = 0) /\ (ge_balance_negative_one_base_entryvalue) = S ge_signed_half_one_base_entryvaluedecode))) /\ ((dst_positive_one_base_entry) + ge_balance_negative_one_base_entryvalue = (dst_negative_one_base_entry) + ge_balance_positive_one_base_entryvalue)))))))))
  92. 0092specialize arithmetic_signed_table_singleton (0)
  93. 0093apply arithmetic_signed_table_singleton
  94. 0094cases hm
  95. 0095cases hm_witness
  96. 0096have hprefix : ((exists dst_positive_code_one_base_prefixtable dst_positive_scale_one_base_prefixtable dst_negative_code_one_base_prefixtable dst_negative_scale_one_base_prefixtable. (((x) = (((((dst_positive_code_one_base_prefixtable) + (dst_positive_scale_one_base_prefixtable)) * S ((dst_positive_code_one_base_prefixtable) + (dst_positive_scale_one_base_prefixtable)) + ((dst_positive_scale_one_base_prefixtable) + (dst_positive_scale_one_base_prefixtable))) + (((dst_negative_code_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)) * S ((dst_negative_code_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)) + ((dst_negative_scale_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)))) * S ((((dst_positive_code_one_base_prefixtable) + (dst_positive_scale_one_base_prefixtable)) * S ((dst_positive_code_one_base_prefixtable) + (dst_positive_scale_one_base_prefixtable)) + ((dst_positive_scale_one_base_prefixtable) + (dst_positive_scale_one_base_prefixtable))) + (((dst_negative_code_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)) * S ((dst_negative_code_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)) + ((dst_negative_scale_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)))) + ((((dst_negative_code_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)) * S ((dst_negative_code_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)) + ((dst_negative_scale_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable))) + (((dst_negative_code_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)) * S ((dst_negative_code_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)) + ((dst_negative_scale_one_base_prefixtable) + (dst_negative_scale_one_base_prefixtable)))))) /\ (forall dst_index_one_base_prefixtable. (exists pvs_le_gap_one_base_prefixtabledomain. pvs_le_gap_one_base_prefixtabledomain + (dst_index_one_base_prefixtable) = (0)) -> exists dst_positive_one_base_prefixtable dst_negative_one_base_prefixtable dst_value_one_base_prefixtable. ((((exists ff_h_pvs_one_base_prefixtableentrypositive. ff_h_pvs_one_base_prefixtableentrypositive + S (dst_positive_one_base_prefixtable) = S ((S (dst_index_one_base_prefixtable)) * dst_positive_scale_one_base_prefixtable)) /\ exists ff_q_pvs_one_base_prefixtableentrypositive. dst_positive_code_one_base_prefixtable = ff_q_pvs_one_base_prefixtableentrypositive * S ((S (dst_index_one_base_prefixtable)) * dst_positive_scale_one_base_prefixtable) + (dst_positive_one_base_prefixtable))) /\ (((((exists ff_h_pvs_one_base_prefixtableentrynegative. ff_h_pvs_one_base_prefixtableentrynegative + S (dst_negative_one_base_prefixtable) = S ((S (dst_index_one_base_prefixtable)) * dst_negative_scale_one_base_prefixtable)) /\ exists ff_q_pvs_one_base_prefixtableentrynegative. dst_negative_code_one_base_prefixtable = ff_q_pvs_one_base_prefixtableentrynegative * S ((S (dst_index_one_base_prefixtable)) * dst_negative_scale_one_base_prefixtable) + (dst_negative_one_base_prefixtable))) /\ (exists ge_balance_positive_one_base_prefixtableentryvalue ge_balance_negative_one_base_prefixtableentryvalue. (((((dst_value_one_base_prefixtable) = 2 * (ge_balance_positive_one_base_prefixtableentryvalue) /\ (ge_balance_negative_one_base_prefixtableentryvalue) = 0) \/ exists ge_signed_half_one_base_prefixtableentryvaluedecode. (((dst_value_one_base_prefixtable) = 2 * ge_signed_half_one_base_prefixtableentryvaluedecode + 1 /\ (ge_balance_positive_one_base_prefixtableentryvalue) = 0) /\ (ge_balance_negative_one_base_prefixtableentryvalue) = S ge_signed_half_one_base_prefixtableentryvaluedecode))) /\ ((dst_positive_one_base_prefixtable) + ge_balance_negative_one_base_prefixtableentryvalue = (dst_negative_one_base_prefixtable) + ge_balance_positive_one_base_prefixtableentryvalue))))))))) /\ (forall dc_index_one_base_prefix dc_value_one_base_prefix. (exists pvs_le_gap_one_base_prefixdomain. pvs_le_gap_one_base_prefixdomain + (dc_index_one_base_prefix) = (0)) -> (exists dst_positive_code_one_base_prefixlookup dst_positive_scale_one_base_prefixlookup dst_negative_code_one_base_prefixlookup dst_negative_scale_one_base_prefixlookup dst_positive_one_base_prefixlookup dst_negative_one_base_prefixlookup. (((x) = (((((dst_positive_code_one_base_prefixlookup) + (dst_positive_scale_one_base_prefixlookup)) * S ((dst_positive_code_one_base_prefixlookup) + (dst_positive_scale_one_base_prefixlookup)) + ((dst_positive_scale_one_base_prefixlookup) + (dst_positive_scale_one_base_prefixlookup))) + (((dst_negative_code_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)) * S ((dst_negative_code_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)) + ((dst_negative_scale_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)))) * S ((((dst_positive_code_one_base_prefixlookup) + (dst_positive_scale_one_base_prefixlookup)) * S ((dst_positive_code_one_base_prefixlookup) + (dst_positive_scale_one_base_prefixlookup)) + ((dst_positive_scale_one_base_prefixlookup) + (dst_positive_scale_one_base_prefixlookup))) + (((dst_negative_code_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)) * S ((dst_negative_code_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)) + ((dst_negative_scale_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)))) + ((((dst_negative_code_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)) * S ((dst_negative_code_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)) + ((dst_negative_scale_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup))) + (((dst_negative_code_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)) * S ((dst_negative_code_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)) + ((dst_negative_scale_one_base_prefixlookup) + (dst_negative_scale_one_base_prefixlookup)))))) /\ (((((exists ff_h_pvs_one_base_prefixlookuppositive. ff_h_pvs_one_base_prefixlookuppositive + S (dst_positive_one_base_prefixlookup) = S ((S (dc_index_one_base_prefix)) * dst_positive_scale_one_base_prefixlookup)) /\ exists ff_q_pvs_one_base_prefixlookuppositive. dst_positive_code_one_base_prefixlookup = ff_q_pvs_one_base_prefixlookuppositive * S ((S (dc_index_one_base_prefix)) * dst_positive_scale_one_base_prefixlookup) + (dst_positive_one_base_prefixlookup))) /\ (((((exists ff_h_pvs_one_base_prefixlookupnegative. ff_h_pvs_one_base_prefixlookupnegative + S (dst_negative_one_base_prefixlookup) = S ((S (dc_index_one_base_prefix)) * dst_negative_scale_one_base_prefixlookup)) /\ exists ff_q_pvs_one_base_prefixlookupnegative. dst_negative_code_one_base_prefixlookup = ff_q_pvs_one_base_prefixlookupnegative * S ((S (dc_index_one_base_prefix)) * dst_negative_scale_one_base_prefixlookup) + (dst_negative_one_base_prefixlookup))) /\ (exists ge_balance_positive_one_base_prefixlookupvalue ge_balance_negative_one_base_prefixlookupvalue. (((((dc_value_one_base_prefix) = 2 * (ge_balance_positive_one_base_prefixlookupvalue) /\ (ge_balance_negative_one_base_prefixlookupvalue) = 0) \/ exists ge_signed_half_one_base_prefixlookupvaluedecode. (((dc_value_one_base_prefix) = 2 * ge_signed_half_one_base_prefixlookupvaluedecode + 1 /\ (ge_balance_positive_one_base_prefixlookupvalue) = 0) /\ (ge_balance_negative_one_base_prefixlookupvalue) = S ge_signed_half_one_base_prefixlookupvaluedecode))) /\ ((dst_positive_one_base_prefixlookup) + ge_balance_negative_one_base_prefixlookupvalue = (dst_negative_one_base_prefixlookup) + ge_balance_positive_one_base_prefixlookupvalue))))))))) -> ((((~((dc_index_one_base_prefix)=0)) /\ (exists dc_quotient_one_base_prefixentry dc_left_one_base_prefixentry dc_right_one_base_prefixentry. (((1)=(dc_index_one_base_prefix)*dc_quotient_one_base_prefixentry) /\ (((exists dst_positive_code_one_base_prefixentryleft dst_positive_scale_one_base_prefixentryleft dst_negative_code_one_base_prefixentryleft dst_negative_scale_one_base_prefixentryleft dst_positive_one_base_prefixentryleft dst_negative_one_base_prefixentryleft. (((F) = (((((dst_positive_code_one_base_prefixentryleft) + (dst_positive_scale_one_base_prefixentryleft)) * S ((dst_positive_code_one_base_prefixentryleft) + (dst_positive_scale_one_base_prefixentryleft)) + ((dst_positive_scale_one_base_prefixentryleft) + (dst_positive_scale_one_base_prefixentryleft))) + (((dst_negative_code_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)) * S ((dst_negative_code_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)) + ((dst_negative_scale_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)))) * S ((((dst_positive_code_one_base_prefixentryleft) + (dst_positive_scale_one_base_prefixentryleft)) * S ((dst_positive_code_one_base_prefixentryleft) + (dst_positive_scale_one_base_prefixentryleft)) + ((dst_positive_scale_one_base_prefixentryleft) + (dst_positive_scale_one_base_prefixentryleft))) + (((dst_negative_code_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)) * S ((dst_negative_code_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)) + ((dst_negative_scale_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)))) + ((((dst_negative_code_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)) * S ((dst_negative_code_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)) + ((dst_negative_scale_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft))) + (((dst_negative_code_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)) * S ((dst_negative_code_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)) + ((dst_negative_scale_one_base_prefixentryleft) + (dst_negative_scale_one_base_prefixentryleft)))))) /\ (((((exists ff_h_pvs_one_base_prefixentryleftpositive. ff_h_pvs_one_base_prefixentryleftpositive + S (dst_positive_one_base_prefixentryleft) = S ((S (dc_index_one_base_prefix)) * dst_positive_scale_one_base_prefixentryleft)) /\ exists ff_q_pvs_one_base_prefixentryleftpositive. dst_positive_code_one_base_prefixentryleft = ff_q_pvs_one_base_prefixentryleftpositive * S ((S (dc_index_one_base_prefix)) * dst_positive_scale_one_base_prefixentryleft) + (dst_positive_one_base_prefixentryleft))) /\ (((((exists ff_h_pvs_one_base_prefixentryleftnegative. ff_h_pvs_one_base_prefixentryleftnegative + S (dst_negative_one_base_prefixentryleft) = S ((S (dc_index_one_base_prefix)) * dst_negative_scale_one_base_prefixentryleft)) /\ exists ff_q_pvs_one_base_prefixentryleftnegative. dst_negative_code_one_base_prefixentryleft = ff_q_pvs_one_base_prefixentryleftnegative * S ((S (dc_index_one_base_prefix)) * dst_negative_scale_one_base_prefixentryleft) + (dst_negative_one_base_prefixentryleft))) /\ (exists ge_balance_positive_one_base_prefixentryleftvalue ge_balance_negative_one_base_prefixentryleftvalue. (((((dc_left_one_base_prefixentry) = 2 * (ge_balance_positive_one_base_prefixentryleftvalue) /\ (ge_balance_negative_one_base_prefixentryleftvalue) = 0) \/ exists ge_signed_half_one_base_prefixentryleftvaluedecode. (((dc_left_one_base_prefixentry) = 2 * ge_signed_half_one_base_prefixentryleftvaluedecode + 1 /\ (ge_balance_positive_one_base_prefixentryleftvalue) = 0) /\ (ge_balance_negative_one_base_prefixentryleftvalue) = S ge_signed_half_one_base_prefixentryleftvaluedecode))) /\ ((dst_positive_one_base_prefixentryleft) + ge_balance_negative_one_base_prefixentryleftvalue = (dst_negative_one_base_prefixentryleft) + ge_balance_positive_one_base_prefixentryleftvalue))))))))) /\ (((exists dst_positive_code_one_base_prefixentryright dst_positive_scale_one_base_prefixentryright dst_negative_code_one_base_prefixentryright dst_negative_scale_one_base_prefixentryright dst_positive_one_base_prefixentryright dst_negative_one_base_prefixentryright. (((G) = (((((dst_positive_code_one_base_prefixentryright) + (dst_positive_scale_one_base_prefixentryright)) * S ((dst_positive_code_one_base_prefixentryright) + (dst_positive_scale_one_base_prefixentryright)) + ((dst_positive_scale_one_base_prefixentryright) + (dst_positive_scale_one_base_prefixentryright))) + (((dst_negative_code_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)) * S ((dst_negative_code_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)) + ((dst_negative_scale_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)))) * S ((((dst_positive_code_one_base_prefixentryright) + (dst_positive_scale_one_base_prefixentryright)) * S ((dst_positive_code_one_base_prefixentryright) + (dst_positive_scale_one_base_prefixentryright)) + ((dst_positive_scale_one_base_prefixentryright) + (dst_positive_scale_one_base_prefixentryright))) + (((dst_negative_code_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)) * S ((dst_negative_code_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)) + ((dst_negative_scale_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)))) + ((((dst_negative_code_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)) * S ((dst_negative_code_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)) + ((dst_negative_scale_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright))) + (((dst_negative_code_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)) * S ((dst_negative_code_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)) + ((dst_negative_scale_one_base_prefixentryright) + (dst_negative_scale_one_base_prefixentryright)))))) /\ (((((exists ff_h_pvs_one_base_prefixentryrightpositive. ff_h_pvs_one_base_prefixentryrightpositive + S (dst_positive_one_base_prefixentryright) = S ((S (dc_quotient_one_base_prefixentry)) * dst_positive_scale_one_base_prefixentryright)) /\ exists ff_q_pvs_one_base_prefixentryrightpositive. dst_positive_code_one_base_prefixentryright = ff_q_pvs_one_base_prefixentryrightpositive * S ((S (dc_quotient_one_base_prefixentry)) * dst_positive_scale_one_base_prefixentryright) + (dst_positive_one_base_prefixentryright))) /\ (((((exists ff_h_pvs_one_base_prefixentryrightnegative. ff_h_pvs_one_base_prefixentryrightnegative + S (dst_negative_one_base_prefixentryright) = S ((S (dc_quotient_one_base_prefixentry)) * dst_negative_scale_one_base_prefixentryright)) /\ exists ff_q_pvs_one_base_prefixentryrightnegative. dst_negative_code_one_base_prefixentryright = ff_q_pvs_one_base_prefixentryrightnegative * S ((S (dc_quotient_one_base_prefixentry)) * dst_negative_scale_one_base_prefixentryright) + (dst_negative_one_base_prefixentryright))) /\ (exists ge_balance_positive_one_base_prefixentryrightvalue ge_balance_negative_one_base_prefixentryrightvalue. (((((dc_right_one_base_prefixentry) = 2 * (ge_balance_positive_one_base_prefixentryrightvalue) /\ (ge_balance_negative_one_base_prefixentryrightvalue) = 0) \/ exists ge_signed_half_one_base_prefixentryrightvaluedecode. (((dc_right_one_base_prefixentry) = 2 * ge_signed_half_one_base_prefixentryrightvaluedecode + 1 /\ (ge_balance_positive_one_base_prefixentryrightvalue) = 0) /\ (ge_balance_negative_one_base_prefixentryrightvalue) = S ge_signed_half_one_base_prefixentryrightvaluedecode))) /\ ((dst_positive_one_base_prefixentryright) + ge_balance_negative_one_base_prefixentryrightvalue = (dst_negative_one_base_prefixentryright) + ge_balance_positive_one_base_prefixentryrightvalue))))))))) /\ (exists sto_ap_one_base_prefixentryproduct sto_an_one_base_prefixentryproduct sto_bp_one_base_prefixentryproduct sto_bn_one_base_prefixentryproduct sto_cp_one_base_prefixentryproduct sto_cn_one_base_prefixentryproduct. (((((dc_left_one_base_prefixentry) = 2 * (sto_ap_one_base_prefixentryproduct) /\ (sto_an_one_base_prefixentryproduct) = 0) \/ exists ge_signed_half_one_base_prefixentryproductleft. (((dc_left_one_base_prefixentry) = 2 * ge_signed_half_one_base_prefixentryproductleft + 1 /\ (sto_ap_one_base_prefixentryproduct) = 0) /\ (sto_an_one_base_prefixentryproduct) = S ge_signed_half_one_base_prefixentryproductleft))) /\ ((((((dc_right_one_base_prefixentry) = 2 * (sto_bp_one_base_prefixentryproduct) /\ (sto_bn_one_base_prefixentryproduct) = 0) \/ exists ge_signed_half_one_base_prefixentryproductright. (((dc_right_one_base_prefixentry) = 2 * ge_signed_half_one_base_prefixentryproductright + 1 /\ (sto_bp_one_base_prefixentryproduct) = 0) /\ (sto_bn_one_base_prefixentryproduct) = S ge_signed_half_one_base_prefixentryproductright))) /\ ((((((dc_value_one_base_prefix) = 2 * (sto_cp_one_base_prefixentryproduct) /\ (sto_cn_one_base_prefixentryproduct) = 0) \/ exists ge_signed_half_one_base_prefixentryproductoutput. (((dc_value_one_base_prefix) = 2 * ge_signed_half_one_base_prefixentryproductoutput + 1 /\ (sto_cp_one_base_prefixentryproduct) = 0) /\ (sto_cn_one_base_prefixentryproduct) = S ge_signed_half_one_base_prefixentryproductoutput))) /\ ((sto_ap_one_base_prefixentryproduct * sto_bp_one_base_prefixentryproduct + sto_an_one_base_prefixentryproduct * sto_bn_one_base_prefixentryproduct) + sto_cn_one_base_prefixentryproduct = (sto_ap_one_base_prefixentryproduct * sto_bn_one_base_prefixentryproduct + sto_an_one_base_prefixentryproduct * sto_bp_one_base_prefixentryproduct) + sto_cp_one_base_prefixentryproduct))))))))))))))) \/ ((((dc_index_one_base_prefix)=0 \/ ~(exists pvs_factor_one_base_prefixentrynondivisor. (1) = (dc_index_one_base_prefix) * pvs_factor_one_base_prefixentrynondivisor)) /\ ((dc_value_one_base_prefix)=0))))))
  97. 0097specialize dirichlet_convolution_prefix_zero_constructor (F)
  98. 0098specialize dirichlet_convolution_prefix_zero_constructor (G)
  99. 0099specialize dirichlet_convolution_prefix_zero_constructor (1)
  100. 0100specialize dirichlet_convolution_prefix_zero_constructor (x)
  101. 0101apply dirichlet_convolution_prefix_zero_constructor
  102. 0102exact hm_witness_left
  103. 0103exact hm_witness_right
  104. 0104specialize dirichlet_convolution_prefix_last_step (F)
  105. 0105specialize dirichlet_convolution_prefix_last_step (G)
  106. 0106specialize dirichlet_convolution_prefix_last_step (0)
  107. 0107specialize dirichlet_convolution_prefix_last_step (x)
  108. 0108specialize dirichlet_convolution_prefix_last_step (0)
  109. 0109specialize dirichlet_convolution_prefix_last_step (a)
  110. 0110specialize dirichlet_convolution_prefix_last_step (b)
  111. 0111specialize dirichlet_convolution_prefix_last_step (z)
  112. 0112specialize dirichlet_convolution_prefix_last_step (z)
  113. 0113apply dirichlet_convolution_prefix_last_step
  114. 0114exact hprefix
  115. 0115specialize dirichlet_convolution_zero_prefix_sum (F)
  116. 0116specialize dirichlet_convolution_zero_prefix_sum (G)
  117. 0117specialize dirichlet_convolution_zero_prefix_sum (1)
  118. 0118specialize dirichlet_convolution_zero_prefix_sum (x)
  119. 0119apply dirichlet_convolution_zero_prefix_sum
  120. 0120exact hprefix
  121. 0121exact ha
  122. 0122exact hb
  123. 0123exact hp
  124. 0124specialize signed_add_zero_left (z)
  125. 0125apply signed_add_zero_left