DT0007

dirichlet_convolution_prefix_last_step

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

Append the actual endpoint product to the real strict-prefix fold, constructing the full S(S k)-entry convolution without an assumed recurrence.

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 k M r a b y z. (((exists dst_positive_code_step_previoustable dst_positive_scale_step_previoustable dst_negative_code_step_previoustable dst_negative_scale_step_previoustable. (((M) = (((((dst_positive_code_step_previoustable) + (dst_positive_scale_step_previoustable)) * S ((dst_positive_code_step_previoustable) + (dst_positive_scale_step_previoustable)) + ((dst_positive_scale_step_previoustable) + (dst_positive_scale_step_previoustable))) + (((dst_negative_code_step_previoustable) + (dst_negative_scale_step_previoustable)) * S ((dst_negative_code_step_previoustable) + (dst_negative_scale_step_previoustable)) + ((dst_negative_scale_step_previoustable) + (dst_negative_scale_step_previoustable)))) * S ((((dst_positive_code_step_previoustable) + (dst_positive_scale_step_previoustable)) * S ((dst_positive_code_step_previoustable) + (dst_positive_scale_step_previoustable)) + ((dst_positive_scale_step_previoustable) + (dst_positive_scale_step_previoustable))) + (((dst_negative_code_step_previoustable) + (dst_negative_scale_step_previoustable)) * S ((dst_negative_code_step_previoustable) + (dst_negative_scale_step_previoustable)) + ((dst_negative_scale_step_previoustable) + (dst_negative_scale_step_previoustable)))) + ((((dst_negative_code_step_previoustable) + (dst_negative_scale_step_previoustable)) * S ((dst_negative_code_step_previoustable) + (dst_negative_scale_step_previoustable)) + ((dst_negative_scale_step_previoustable) + (dst_negative_scale_step_previoustable))) + (((dst_negative_code_step_previoustable) + (dst_negative_scale_step_previoustable)) * S ((dst_negative_code_step_previoustable) + (dst_negative_scale_step_previoustable)) + ((dst_negative_scale_step_previoustable) + (dst_negative_scale_step_previoustable)))))) /\ (forall dst_index_step_previoustable. (exists pvs_le_gap_step_previoustabledomain. pvs_le_gap_step_previoustabledomain + (dst_index_step_previoustable) = (k)) -> exists dst_positive_step_previoustable dst_negative_step_previoustable dst_value_step_previoustable. ((((exists ff_h_pvs_step_previoustableentrypositive. ff_h_pvs_step_previoustableentrypositive + S (dst_positive_step_previoustable) = S ((S (dst_index_step_previoustable)) * dst_positive_scale_step_previoustable)) /\ exists ff_q_pvs_step_previoustableentrypositive. dst_positive_code_step_previoustable = ff_q_pvs_step_previoustableentrypositive * S ((S (dst_index_step_previoustable)) * dst_positive_scale_step_previoustable) + (dst_positive_step_previoustable))) /\ (((((exists ff_h_pvs_step_previoustableentrynegative. ff_h_pvs_step_previoustableentrynegative + S (dst_negative_step_previoustable) = S ((S (dst_index_step_previoustable)) * dst_negative_scale_step_previoustable)) /\ exists ff_q_pvs_step_previoustableentrynegative. dst_negative_code_step_previoustable = ff_q_pvs_step_previoustableentrynegative * S ((S (dst_index_step_previoustable)) * dst_negative_scale_step_previoustable) + (dst_negative_step_previoustable))) /\ (exists ge_balance_positive_step_previoustableentryvalue ge_balance_negative_step_previoustableentryvalue. (((((dst_value_step_previoustable) = 2 * (ge_balance_positive_step_previoustableentryvalue) /\ (ge_balance_negative_step_previoustableentryvalue) = 0) \/ exists ge_signed_half_step_previoustableentryvaluedecode. (((dst_value_step_previoustable) = 2 * ge_signed_half_step_previoustableentryvaluedecode + 1 /\ (ge_balance_positive_step_previoustableentryvalue) = 0) /\ (ge_balance_negative_step_previoustableentryvalue) = S ge_signed_half_step_previoustableentryvaluedecode))) /\ ((dst_positive_step_previoustable) + ge_balance_negative_step_previoustableentryvalue = (dst_negative_step_previoustable) + ge_balance_positive_step_previoustableentryvalue))))))))) /\ (forall dc_index_step_previous dc_value_step_previous. (exists pvs_le_gap_step_previousdomain. pvs_le_gap_step_previousdomain + (dc_index_step_previous) = (k)) -> (exists dst_positive_code_step_previouslookup dst_positive_scale_step_previouslookup dst_negative_code_step_previouslookup dst_negative_scale_step_previouslookup dst_positive_step_previouslookup dst_negative_step_previouslookup. (((M) = (((((dst_positive_code_step_previouslookup) + (dst_positive_scale_step_previouslookup)) * S ((dst_positive_code_step_previouslookup) + (dst_positive_scale_step_previouslookup)) + ((dst_positive_scale_step_previouslookup) + (dst_positive_scale_step_previouslookup))) + (((dst_negative_code_step_previouslookup) + (dst_negative_scale_step_previouslookup)) * S ((dst_negative_code_step_previouslookup) + (dst_negative_scale_step_previouslookup)) + ((dst_negative_scale_step_previouslookup) + (dst_negative_scale_step_previouslookup)))) * S ((((dst_positive_code_step_previouslookup) + (dst_positive_scale_step_previouslookup)) * S ((dst_positive_code_step_previouslookup) + (dst_positive_scale_step_previouslookup)) + ((dst_positive_scale_step_previouslookup) + (dst_positive_scale_step_previouslookup))) + (((dst_negative_code_step_previouslookup) + (dst_negative_scale_step_previouslookup)) * S ((dst_negative_code_step_previouslookup) + (dst_negative_scale_step_previouslookup)) + ((dst_negative_scale_step_previouslookup) + (dst_negative_scale_step_previouslookup)))) + ((((dst_negative_code_step_previouslookup) + (dst_negative_scale_step_previouslookup)) * S ((dst_negative_code_step_previouslookup) + (dst_negative_scale_step_previouslookup)) + ((dst_negative_scale_step_previouslookup) + (dst_negative_scale_step_previouslookup))) + (((dst_negative_code_step_previouslookup) + (dst_negative_scale_step_previouslookup)) * S ((dst_negative_code_step_previouslookup) + (dst_negative_scale_step_previouslookup)) + ((dst_negative_scale_step_previouslookup) + (dst_negative_scale_step_previouslookup)))))) /\ (((((exists ff_h_pvs_step_previouslookuppositive. ff_h_pvs_step_previouslookuppositive + S (dst_positive_step_previouslookup) = S ((S (dc_index_step_previous)) * dst_positive_scale_step_previouslookup)) /\ exists ff_q_pvs_step_previouslookuppositive. dst_positive_code_step_previouslookup = ff_q_pvs_step_previouslookuppositive * S ((S (dc_index_step_previous)) * dst_positive_scale_step_previouslookup) + (dst_positive_step_previouslookup))) /\ (((((exists ff_h_pvs_step_previouslookupnegative. ff_h_pvs_step_previouslookupnegative + S (dst_negative_step_previouslookup) = S ((S (dc_index_step_previous)) * dst_negative_scale_step_previouslookup)) /\ exists ff_q_pvs_step_previouslookupnegative. dst_negative_code_step_previouslookup = ff_q_pvs_step_previouslookupnegative * S ((S (dc_index_step_previous)) * dst_negative_scale_step_previouslookup) + (dst_negative_step_previouslookup))) /\ (exists ge_balance_positive_step_previouslookupvalue ge_balance_negative_step_previouslookupvalue. (((((dc_value_step_previous) = 2 * (ge_balance_positive_step_previouslookupvalue) /\ (ge_balance_negative_step_previouslookupvalue) = 0) \/ exists ge_signed_half_step_previouslookupvaluedecode. (((dc_value_step_previous) = 2 * ge_signed_half_step_previouslookupvaluedecode + 1 /\ (ge_balance_positive_step_previouslookupvalue) = 0) /\ (ge_balance_negative_step_previouslookupvalue) = S ge_signed_half_step_previouslookupvaluedecode))) /\ ((dst_positive_step_previouslookup) + ge_balance_negative_step_previouslookupvalue = (dst_negative_step_previouslookup) + ge_balance_positive_step_previouslookupvalue))))))))) -> ((((~((dc_index_step_previous)=0)) /\ (exists dc_quotient_step_previousentry dc_left_step_previousentry dc_right_step_previousentry. (((S k)=(dc_index_step_previous)*dc_quotient_step_previousentry) /\ (((exists dst_positive_code_step_previousentryleft dst_positive_scale_step_previousentryleft dst_negative_code_step_previousentryleft dst_negative_scale_step_previousentryleft dst_positive_step_previousentryleft dst_negative_step_previousentryleft. (((F) = (((((dst_positive_code_step_previousentryleft) + (dst_positive_scale_step_previousentryleft)) * S ((dst_positive_code_step_previousentryleft) + (dst_positive_scale_step_previousentryleft)) + ((dst_positive_scale_step_previousentryleft) + (dst_positive_scale_step_previousentryleft))) + (((dst_negative_code_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)) * S ((dst_negative_code_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)) + ((dst_negative_scale_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)))) * S ((((dst_positive_code_step_previousentryleft) + (dst_positive_scale_step_previousentryleft)) * S ((dst_positive_code_step_previousentryleft) + (dst_positive_scale_step_previousentryleft)) + ((dst_positive_scale_step_previousentryleft) + (dst_positive_scale_step_previousentryleft))) + (((dst_negative_code_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)) * S ((dst_negative_code_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)) + ((dst_negative_scale_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)))) + ((((dst_negative_code_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)) * S ((dst_negative_code_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)) + ((dst_negative_scale_step_previousentryleft) + (dst_negative_scale_step_previousentryleft))) + (((dst_negative_code_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)) * S ((dst_negative_code_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)) + ((dst_negative_scale_step_previousentryleft) + (dst_negative_scale_step_previousentryleft)))))) /\ (((((exists ff_h_pvs_step_previousentryleftpositive. ff_h_pvs_step_previousentryleftpositive + S (dst_positive_step_previousentryleft) = S ((S (dc_index_step_previous)) * dst_positive_scale_step_previousentryleft)) /\ exists ff_q_pvs_step_previousentryleftpositive. dst_positive_code_step_previousentryleft = ff_q_pvs_step_previousentryleftpositive * S ((S (dc_index_step_previous)) * dst_positive_scale_step_previousentryleft) + (dst_positive_step_previousentryleft))) /\ (((((exists ff_h_pvs_step_previousentryleftnegative. ff_h_pvs_step_previousentryleftnegative + S (dst_negative_step_previousentryleft) = S ((S (dc_index_step_previous)) * dst_negative_scale_step_previousentryleft)) /\ exists ff_q_pvs_step_previousentryleftnegative. dst_negative_code_step_previousentryleft = ff_q_pvs_step_previousentryleftnegative * S ((S (dc_index_step_previous)) * dst_negative_scale_step_previousentryleft) + (dst_negative_step_previousentryleft))) /\ (exists ge_balance_positive_step_previousentryleftvalue ge_balance_negative_step_previousentryleftvalue. (((((dc_left_step_previousentry) = 2 * (ge_balance_positive_step_previousentryleftvalue) /\ (ge_balance_negative_step_previousentryleftvalue) = 0) \/ exists ge_signed_half_step_previousentryleftvaluedecode. (((dc_left_step_previousentry) = 2 * ge_signed_half_step_previousentryleftvaluedecode + 1 /\ (ge_balance_positive_step_previousentryleftvalue) = 0) /\ (ge_balance_negative_step_previousentryleftvalue) = S ge_signed_half_step_previousentryleftvaluedecode))) /\ ((dst_positive_step_previousentryleft) + ge_balance_negative_step_previousentryleftvalue = (dst_negative_step_previousentryleft) + ge_balance_positive_step_previousentryleftvalue))))))))) /\ (((exists dst_positive_code_step_previousentryright dst_positive_scale_step_previousentryright dst_negative_code_step_previousentryright dst_negative_scale_step_previousentryright dst_positive_step_previousentryright dst_negative_step_previousentryright. (((G) = (((((dst_positive_code_step_previousentryright) + (dst_positive_scale_step_previousentryright)) * S ((dst_positive_code_step_previousentryright) + (dst_positive_scale_step_previousentryright)) + ((dst_positive_scale_step_previousentryright) + (dst_positive_scale_step_previousentryright))) + (((dst_negative_code_step_previousentryright) + (dst_negative_scale_step_previousentryright)) * S ((dst_negative_code_step_previousentryright) + (dst_negative_scale_step_previousentryright)) + ((dst_negative_scale_step_previousentryright) + (dst_negative_scale_step_previousentryright)))) * S ((((dst_positive_code_step_previousentryright) + (dst_positive_scale_step_previousentryright)) * S ((dst_positive_code_step_previousentryright) + (dst_positive_scale_step_previousentryright)) + ((dst_positive_scale_step_previousentryright) + (dst_positive_scale_step_previousentryright))) + (((dst_negative_code_step_previousentryright) + (dst_negative_scale_step_previousentryright)) * S ((dst_negative_code_step_previousentryright) + (dst_negative_scale_step_previousentryright)) + ((dst_negative_scale_step_previousentryright) + (dst_negative_scale_step_previousentryright)))) + ((((dst_negative_code_step_previousentryright) + (dst_negative_scale_step_previousentryright)) * S ((dst_negative_code_step_previousentryright) + (dst_negative_scale_step_previousentryright)) + ((dst_negative_scale_step_previousentryright) + (dst_negative_scale_step_previousentryright))) + (((dst_negative_code_step_previousentryright) + (dst_negative_scale_step_previousentryright)) * S ((dst_negative_code_step_previousentryright) + (dst_negative_scale_step_previousentryright)) + ((dst_negative_scale_step_previousentryright) + (dst_negative_scale_step_previousentryright)))))) /\ (((((exists ff_h_pvs_step_previousentryrightpositive. ff_h_pvs_step_previousentryrightpositive + S (dst_positive_step_previousentryright) = S ((S (dc_quotient_step_previousentry)) * dst_positive_scale_step_previousentryright)) /\ exists ff_q_pvs_step_previousentryrightpositive. dst_positive_code_step_previousentryright = ff_q_pvs_step_previousentryrightpositive * S ((S (dc_quotient_step_previousentry)) * dst_positive_scale_step_previousentryright) + (dst_positive_step_previousentryright))) /\ (((((exists ff_h_pvs_step_previousentryrightnegative. ff_h_pvs_step_previousentryrightnegative + S (dst_negative_step_previousentryright) = S ((S (dc_quotient_step_previousentry)) * dst_negative_scale_step_previousentryright)) /\ exists ff_q_pvs_step_previousentryrightnegative. dst_negative_code_step_previousentryright = ff_q_pvs_step_previousentryrightnegative * S ((S (dc_quotient_step_previousentry)) * dst_negative_scale_step_previousentryright) + (dst_negative_step_previousentryright))) /\ (exists ge_balance_positive_step_previousentryrightvalue ge_balance_negative_step_previousentryrightvalue. (((((dc_right_step_previousentry) = 2 * (ge_balance_positive_step_previousentryrightvalue) /\ (ge_balance_negative_step_previousentryrightvalue) = 0) \/ exists ge_signed_half_step_previousentryrightvaluedecode. (((dc_right_step_previousentry) = 2 * ge_signed_half_step_previousentryrightvaluedecode + 1 /\ (ge_balance_positive_step_previousentryrightvalue) = 0) /\ (ge_balance_negative_step_previousentryrightvalue) = S ge_signed_half_step_previousentryrightvaluedecode))) /\ ((dst_positive_step_previousentryright) + ge_balance_negative_step_previousentryrightvalue = (dst_negative_step_previousentryright) + ge_balance_positive_step_previousentryrightvalue))))))))) /\ (exists sto_ap_step_previousentryproduct sto_an_step_previousentryproduct sto_bp_step_previousentryproduct sto_bn_step_previousentryproduct sto_cp_step_previousentryproduct sto_cn_step_previousentryproduct. (((((dc_left_step_previousentry) = 2 * (sto_ap_step_previousentryproduct) /\ (sto_an_step_previousentryproduct) = 0) \/ exists ge_signed_half_step_previousentryproductleft. (((dc_left_step_previousentry) = 2 * ge_signed_half_step_previousentryproductleft + 1 /\ (sto_ap_step_previousentryproduct) = 0) /\ (sto_an_step_previousentryproduct) = S ge_signed_half_step_previousentryproductleft))) /\ ((((((dc_right_step_previousentry) = 2 * (sto_bp_step_previousentryproduct) /\ (sto_bn_step_previousentryproduct) = 0) \/ exists ge_signed_half_step_previousentryproductright. (((dc_right_step_previousentry) = 2 * ge_signed_half_step_previousentryproductright + 1 /\ (sto_bp_step_previousentryproduct) = 0) /\ (sto_bn_step_previousentryproduct) = S ge_signed_half_step_previousentryproductright))) /\ ((((((dc_value_step_previous) = 2 * (sto_cp_step_previousentryproduct) /\ (sto_cn_step_previousentryproduct) = 0) \/ exists ge_signed_half_step_previousentryproductoutput. (((dc_value_step_previous) = 2 * ge_signed_half_step_previousentryproductoutput + 1 /\ (sto_cp_step_previousentryproduct) = 0) /\ (sto_cn_step_previousentryproduct) = S ge_signed_half_step_previousentryproductoutput))) /\ ((sto_ap_step_previousentryproduct * sto_bp_step_previousentryproduct + sto_an_step_previousentryproduct * sto_bn_step_previousentryproduct) + sto_cn_step_previousentryproduct = (sto_ap_step_previousentryproduct * sto_bn_step_previousentryproduct + sto_an_step_previousentryproduct * sto_bp_step_previousentryproduct) + sto_cp_step_previousentryproduct))))))))))))))) \/ ((((dc_index_step_previous)=0 \/ ~(exists pvs_factor_step_previousentrynondivisor. (S k) = (dc_index_step_previous) * pvs_factor_step_previousentrynondivisor)) /\ ((dc_value_step_previous)=0))))))) -> (exists dst_positive_code_step_remainder dst_positive_scale_step_remainder dst_negative_code_step_remainder dst_negative_scale_step_remainder dst_positive_sum_step_remainder dst_negative_sum_step_remainder. (((M) = (((((dst_positive_code_step_remainder) + (dst_positive_scale_step_remainder)) * S ((dst_positive_code_step_remainder) + (dst_positive_scale_step_remainder)) + ((dst_positive_scale_step_remainder) + (dst_positive_scale_step_remainder))) + (((dst_negative_code_step_remainder) + (dst_negative_scale_step_remainder)) * S ((dst_negative_code_step_remainder) + (dst_negative_scale_step_remainder)) + ((dst_negative_scale_step_remainder) + (dst_negative_scale_step_remainder)))) * S ((((dst_positive_code_step_remainder) + (dst_positive_scale_step_remainder)) * S ((dst_positive_code_step_remainder) + (dst_positive_scale_step_remainder)) + ((dst_positive_scale_step_remainder) + (dst_positive_scale_step_remainder))) + (((dst_negative_code_step_remainder) + (dst_negative_scale_step_remainder)) * S ((dst_negative_code_step_remainder) + (dst_negative_scale_step_remainder)) + ((dst_negative_scale_step_remainder) + (dst_negative_scale_step_remainder)))) + ((((dst_negative_code_step_remainder) + (dst_negative_scale_step_remainder)) * S ((dst_negative_code_step_remainder) + (dst_negative_scale_step_remainder)) + ((dst_negative_scale_step_remainder) + (dst_negative_scale_step_remainder))) + (((dst_negative_code_step_remainder) + (dst_negative_scale_step_remainder)) * S ((dst_negative_code_step_remainder) + (dst_negative_scale_step_remainder)) + ((dst_negative_scale_step_remainder) + (dst_negative_scale_step_remainder)))))) /\ (((exists fs_u_dst_step_remainderpositive fs_v_dst_step_remainderpositive. ((((exists fs_h_dst_step_remainderpositive_body_start. fs_h_dst_step_remainderpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_step_remainderpositive)) /\ exists fs_q_dst_step_remainderpositive_body_start. fs_u_dst_step_remainderpositive = fs_q_dst_step_remainderpositive_body_start * S ((S (0)) * fs_v_dst_step_remainderpositive) + (0))) /\ ((((exists fs_h_dst_step_remainderpositive_body_terminal. fs_h_dst_step_remainderpositive_body_terminal + S (dst_positive_sum_step_remainder) = S ((S (S k)) * fs_v_dst_step_remainderpositive)) /\ exists fs_q_dst_step_remainderpositive_body_terminal. fs_u_dst_step_remainderpositive = fs_q_dst_step_remainderpositive_body_terminal * S ((S (S k)) * fs_v_dst_step_remainderpositive) + (dst_positive_sum_step_remainder))) /\ forall fs_i_dst_step_remainderpositive_body_steps. (exists fs_lt_dst_step_remainderpositive_body_steps_bound. fs_lt_dst_step_remainderpositive_body_steps_bound + S fs_i_dst_step_remainderpositive_body_steps = S k) -> exists fs_a_dst_step_remainderpositive_body_steps fs_r_dst_step_remainderpositive_body_steps fs_s_dst_step_remainderpositive_body_steps. ((((exists fs_h_dst_step_remainderpositive_body_steps_summand. fs_h_dst_step_remainderpositive_body_steps_summand + S (fs_a_dst_step_remainderpositive_body_steps) = S ((S (fs_i_dst_step_remainderpositive_body_steps)) * dst_positive_scale_step_remainder)) /\ exists fs_q_dst_step_remainderpositive_body_steps_summand. dst_positive_code_step_remainder = fs_q_dst_step_remainderpositive_body_steps_summand * S ((S (fs_i_dst_step_remainderpositive_body_steps)) * dst_positive_scale_step_remainder) + (fs_a_dst_step_remainderpositive_body_steps))) /\ ((((exists fs_h_dst_step_remainderpositive_body_steps_partial. fs_h_dst_step_remainderpositive_body_steps_partial + S (fs_r_dst_step_remainderpositive_body_steps) = S ((S (fs_i_dst_step_remainderpositive_body_steps)) * fs_v_dst_step_remainderpositive)) /\ exists fs_q_dst_step_remainderpositive_body_steps_partial. fs_u_dst_step_remainderpositive = fs_q_dst_step_remainderpositive_body_steps_partial * S ((S (fs_i_dst_step_remainderpositive_body_steps)) * fs_v_dst_step_remainderpositive) + (fs_r_dst_step_remainderpositive_body_steps))) /\ ((((exists fs_h_dst_step_remainderpositive_body_steps_successor. fs_h_dst_step_remainderpositive_body_steps_successor + S (fs_s_dst_step_remainderpositive_body_steps) = S ((S (S fs_i_dst_step_remainderpositive_body_steps)) * fs_v_dst_step_remainderpositive)) /\ exists fs_q_dst_step_remainderpositive_body_steps_successor. fs_u_dst_step_remainderpositive = fs_q_dst_step_remainderpositive_body_steps_successor * S ((S (S fs_i_dst_step_remainderpositive_body_steps)) * fs_v_dst_step_remainderpositive) + (fs_s_dst_step_remainderpositive_body_steps))) /\ fs_s_dst_step_remainderpositive_body_steps = fs_r_dst_step_remainderpositive_body_steps + fs_a_dst_step_remainderpositive_body_steps)))))) /\ (((exists fs_u_dst_step_remaindernegative fs_v_dst_step_remaindernegative. ((((exists fs_h_dst_step_remaindernegative_body_start. fs_h_dst_step_remaindernegative_body_start + S (0) = S ((S (0)) * fs_v_dst_step_remaindernegative)) /\ exists fs_q_dst_step_remaindernegative_body_start. fs_u_dst_step_remaindernegative = fs_q_dst_step_remaindernegative_body_start * S ((S (0)) * fs_v_dst_step_remaindernegative) + (0))) /\ ((((exists fs_h_dst_step_remaindernegative_body_terminal. fs_h_dst_step_remaindernegative_body_terminal + S (dst_negative_sum_step_remainder) = S ((S (S k)) * fs_v_dst_step_remaindernegative)) /\ exists fs_q_dst_step_remaindernegative_body_terminal. fs_u_dst_step_remaindernegative = fs_q_dst_step_remaindernegative_body_terminal * S ((S (S k)) * fs_v_dst_step_remaindernegative) + (dst_negative_sum_step_remainder))) /\ forall fs_i_dst_step_remaindernegative_body_steps. (exists fs_lt_dst_step_remaindernegative_body_steps_bound. fs_lt_dst_step_remaindernegative_body_steps_bound + S fs_i_dst_step_remaindernegative_body_steps = S k) -> exists fs_a_dst_step_remaindernegative_body_steps fs_r_dst_step_remaindernegative_body_steps fs_s_dst_step_remaindernegative_body_steps. ((((exists fs_h_dst_step_remaindernegative_body_steps_summand. fs_h_dst_step_remaindernegative_body_steps_summand + S (fs_a_dst_step_remaindernegative_body_steps) = S ((S (fs_i_dst_step_remaindernegative_body_steps)) * dst_negative_scale_step_remainder)) /\ exists fs_q_dst_step_remaindernegative_body_steps_summand. dst_negative_code_step_remainder = fs_q_dst_step_remaindernegative_body_steps_summand * S ((S (fs_i_dst_step_remaindernegative_body_steps)) * dst_negative_scale_step_remainder) + (fs_a_dst_step_remaindernegative_body_steps))) /\ ((((exists fs_h_dst_step_remaindernegative_body_steps_partial. fs_h_dst_step_remaindernegative_body_steps_partial + S (fs_r_dst_step_remaindernegative_body_steps) = S ((S (fs_i_dst_step_remaindernegative_body_steps)) * fs_v_dst_step_remaindernegative)) /\ exists fs_q_dst_step_remaindernegative_body_steps_partial. fs_u_dst_step_remaindernegative = fs_q_dst_step_remaindernegative_body_steps_partial * S ((S (fs_i_dst_step_remaindernegative_body_steps)) * fs_v_dst_step_remaindernegative) + (fs_r_dst_step_remaindernegative_body_steps))) /\ ((((exists fs_h_dst_step_remaindernegative_body_steps_successor. fs_h_dst_step_remaindernegative_body_steps_successor + S (fs_s_dst_step_remaindernegative_body_steps) = S ((S (S fs_i_dst_step_remaindernegative_body_steps)) * fs_v_dst_step_remaindernegative)) /\ exists fs_q_dst_step_remaindernegative_body_steps_successor. fs_u_dst_step_remaindernegative = fs_q_dst_step_remaindernegative_body_steps_successor * S ((S (S fs_i_dst_step_remaindernegative_body_steps)) * fs_v_dst_step_remaindernegative) + (fs_s_dst_step_remaindernegative_body_steps))) /\ fs_s_dst_step_remaindernegative_body_steps = fs_r_dst_step_remaindernegative_body_steps + fs_a_dst_step_remaindernegative_body_steps)))))) /\ (exists ge_balance_positive_step_remainderresult ge_balance_negative_step_remainderresult. (((((r) = 2 * (ge_balance_positive_step_remainderresult) /\ (ge_balance_negative_step_remainderresult) = 0) \/ exists ge_signed_half_step_remainderresultdecode. (((r) = 2 * ge_signed_half_step_remainderresultdecode + 1 /\ (ge_balance_positive_step_remainderresult) = 0) /\ (ge_balance_negative_step_remainderresult) = S ge_signed_half_step_remainderresultdecode))) /\ ((dst_positive_sum_step_remainder) + ge_balance_negative_step_remainderresult = (dst_negative_sum_step_remainder) + ge_balance_positive_step_remainderresult))))))))) -> (exists dst_positive_code_step_first dst_positive_scale_step_first dst_negative_code_step_first dst_negative_scale_step_first dst_positive_step_first dst_negative_step_first. (((F) = (((((dst_positive_code_step_first) + (dst_positive_scale_step_first)) * S ((dst_positive_code_step_first) + (dst_positive_scale_step_first)) + ((dst_positive_scale_step_first) + (dst_positive_scale_step_first))) + (((dst_negative_code_step_first) + (dst_negative_scale_step_first)) * S ((dst_negative_code_step_first) + (dst_negative_scale_step_first)) + ((dst_negative_scale_step_first) + (dst_negative_scale_step_first)))) * S ((((dst_positive_code_step_first) + (dst_positive_scale_step_first)) * S ((dst_positive_code_step_first) + (dst_positive_scale_step_first)) + ((dst_positive_scale_step_first) + (dst_positive_scale_step_first))) + (((dst_negative_code_step_first) + (dst_negative_scale_step_first)) * S ((dst_negative_code_step_first) + (dst_negative_scale_step_first)) + ((dst_negative_scale_step_first) + (dst_negative_scale_step_first)))) + ((((dst_negative_code_step_first) + (dst_negative_scale_step_first)) * S ((dst_negative_code_step_first) + (dst_negative_scale_step_first)) + ((dst_negative_scale_step_first) + (dst_negative_scale_step_first))) + (((dst_negative_code_step_first) + (dst_negative_scale_step_first)) * S ((dst_negative_code_step_first) + (dst_negative_scale_step_first)) + ((dst_negative_scale_step_first) + (dst_negative_scale_step_first)))))) /\ (((((exists ff_h_pvs_step_firstpositive. ff_h_pvs_step_firstpositive + S (dst_positive_step_first) = S ((S (S k)) * dst_positive_scale_step_first)) /\ exists ff_q_pvs_step_firstpositive. dst_positive_code_step_first = ff_q_pvs_step_firstpositive * S ((S (S k)) * dst_positive_scale_step_first) + (dst_positive_step_first))) /\ (((((exists ff_h_pvs_step_firstnegative. ff_h_pvs_step_firstnegative + S (dst_negative_step_first) = S ((S (S k)) * dst_negative_scale_step_first)) /\ exists ff_q_pvs_step_firstnegative. dst_negative_code_step_first = ff_q_pvs_step_firstnegative * S ((S (S k)) * dst_negative_scale_step_first) + (dst_negative_step_first))) /\ (exists ge_balance_positive_step_firstvalue ge_balance_negative_step_firstvalue. (((((a) = 2 * (ge_balance_positive_step_firstvalue) /\ (ge_balance_negative_step_firstvalue) = 0) \/ exists ge_signed_half_step_firstvaluedecode. (((a) = 2 * ge_signed_half_step_firstvaluedecode + 1 /\ (ge_balance_positive_step_firstvalue) = 0) /\ (ge_balance_negative_step_firstvalue) = S ge_signed_half_step_firstvaluedecode))) /\ ((dst_positive_step_first) + ge_balance_negative_step_firstvalue = (dst_negative_step_first) + ge_balance_positive_step_firstvalue))))))))) -> (exists dst_positive_code_step_second dst_positive_scale_step_second dst_negative_code_step_second dst_negative_scale_step_second dst_positive_step_second dst_negative_step_second. (((G) = (((((dst_positive_code_step_second) + (dst_positive_scale_step_second)) * S ((dst_positive_code_step_second) + (dst_positive_scale_step_second)) + ((dst_positive_scale_step_second) + (dst_positive_scale_step_second))) + (((dst_negative_code_step_second) + (dst_negative_scale_step_second)) * S ((dst_negative_code_step_second) + (dst_negative_scale_step_second)) + ((dst_negative_scale_step_second) + (dst_negative_scale_step_second)))) * S ((((dst_positive_code_step_second) + (dst_positive_scale_step_second)) * S ((dst_positive_code_step_second) + (dst_positive_scale_step_second)) + ((dst_positive_scale_step_second) + (dst_positive_scale_step_second))) + (((dst_negative_code_step_second) + (dst_negative_scale_step_second)) * S ((dst_negative_code_step_second) + (dst_negative_scale_step_second)) + ((dst_negative_scale_step_second) + (dst_negative_scale_step_second)))) + ((((dst_negative_code_step_second) + (dst_negative_scale_step_second)) * S ((dst_negative_code_step_second) + (dst_negative_scale_step_second)) + ((dst_negative_scale_step_second) + (dst_negative_scale_step_second))) + (((dst_negative_code_step_second) + (dst_negative_scale_step_second)) * S ((dst_negative_code_step_second) + (dst_negative_scale_step_second)) + ((dst_negative_scale_step_second) + (dst_negative_scale_step_second)))))) /\ (((((exists ff_h_pvs_step_secondpositive. ff_h_pvs_step_secondpositive + S (dst_positive_step_second) = S ((S (1)) * dst_positive_scale_step_second)) /\ exists ff_q_pvs_step_secondpositive. dst_positive_code_step_second = ff_q_pvs_step_secondpositive * S ((S (1)) * dst_positive_scale_step_second) + (dst_positive_step_second))) /\ (((((exists ff_h_pvs_step_secondnegative. ff_h_pvs_step_secondnegative + S (dst_negative_step_second) = S ((S (1)) * dst_negative_scale_step_second)) /\ exists ff_q_pvs_step_secondnegative. dst_negative_code_step_second = ff_q_pvs_step_secondnegative * S ((S (1)) * dst_negative_scale_step_second) + (dst_negative_step_second))) /\ (exists ge_balance_positive_step_secondvalue ge_balance_negative_step_secondvalue. (((((b) = 2 * (ge_balance_positive_step_secondvalue) /\ (ge_balance_negative_step_secondvalue) = 0) \/ exists ge_signed_half_step_secondvaluedecode. (((b) = 2 * ge_signed_half_step_secondvaluedecode + 1 /\ (ge_balance_positive_step_secondvalue) = 0) /\ (ge_balance_negative_step_secondvalue) = S ge_signed_half_step_secondvaluedecode))) /\ ((dst_positive_step_second) + ge_balance_negative_step_secondvalue = (dst_negative_step_second) + ge_balance_positive_step_secondvalue))))))))) -> (exists sto_ap_step_product sto_an_step_product sto_bp_step_product sto_bn_step_product sto_cp_step_product sto_cn_step_product. (((((a) = 2 * (sto_ap_step_product) /\ (sto_an_step_product) = 0) \/ exists ge_signed_half_step_productleft. (((a) = 2 * ge_signed_half_step_productleft + 1 /\ (sto_ap_step_product) = 0) /\ (sto_an_step_product) = S ge_signed_half_step_productleft))) /\ ((((((b) = 2 * (sto_bp_step_product) /\ (sto_bn_step_product) = 0) \/ exists ge_signed_half_step_productright. (((b) = 2 * ge_signed_half_step_productright + 1 /\ (sto_bp_step_product) = 0) /\ (sto_bn_step_product) = S ge_signed_half_step_productright))) /\ ((((((y) = 2 * (sto_cp_step_product) /\ (sto_cn_step_product) = 0) \/ exists ge_signed_half_step_productoutput. (((y) = 2 * ge_signed_half_step_productoutput + 1 /\ (sto_cp_step_product) = 0) /\ (sto_cn_step_product) = S ge_signed_half_step_productoutput))) /\ ((sto_ap_step_product * sto_bp_step_product + sto_an_step_product * sto_bn_step_product) + sto_cn_step_product = (sto_ap_step_product * sto_bn_step_product + sto_an_step_product * sto_bp_step_product) + sto_cp_step_product))))))) -> (exists dsa_ap_step_add dsa_an_step_add dsa_bp_step_add dsa_bn_step_add dsa_cp_step_add dsa_cn_step_add. (((((r) = 2 * (dsa_ap_step_add) /\ (dsa_an_step_add) = 0) \/ exists ge_signed_half_step_addleft. (((r) = 2 * ge_signed_half_step_addleft + 1 /\ (dsa_ap_step_add) = 0) /\ (dsa_an_step_add) = S ge_signed_half_step_addleft))) /\ ((((((y) = 2 * (dsa_bp_step_add) /\ (dsa_bn_step_add) = 0) \/ exists ge_signed_half_step_addright. (((y) = 2 * ge_signed_half_step_addright + 1 /\ (dsa_bp_step_add) = 0) /\ (dsa_bn_step_add) = S ge_signed_half_step_addright))) /\ ((((((z) = 2 * (dsa_cp_step_add) /\ (dsa_cn_step_add) = 0) \/ exists ge_signed_half_step_addoutput. (((z) = 2 * ge_signed_half_step_addoutput + 1 /\ (dsa_cp_step_add) = 0) /\ (dsa_cn_step_add) = S ge_signed_half_step_addoutput))) /\ ((dsa_ap_step_add + dsa_bp_step_add) + dsa_cn_step_add = (dsa_an_step_add + dsa_bn_step_add) + dsa_cp_step_add))))))) -> (((~((S k)=0)) /\ (exists dc_mask_step_result. ((((exists dst_positive_code_step_resultmasktable dst_positive_scale_step_resultmasktable dst_negative_code_step_resultmasktable dst_negative_scale_step_resultmasktable. (((dc_mask_step_result) = (((((dst_positive_code_step_resultmasktable) + (dst_positive_scale_step_resultmasktable)) * S ((dst_positive_code_step_resultmasktable) + (dst_positive_scale_step_resultmasktable)) + ((dst_positive_scale_step_resultmasktable) + (dst_positive_scale_step_resultmasktable))) + (((dst_negative_code_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)) * S ((dst_negative_code_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)) + ((dst_negative_scale_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)))) * S ((((dst_positive_code_step_resultmasktable) + (dst_positive_scale_step_resultmasktable)) * S ((dst_positive_code_step_resultmasktable) + (dst_positive_scale_step_resultmasktable)) + ((dst_positive_scale_step_resultmasktable) + (dst_positive_scale_step_resultmasktable))) + (((dst_negative_code_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)) * S ((dst_negative_code_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)) + ((dst_negative_scale_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)))) + ((((dst_negative_code_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)) * S ((dst_negative_code_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)) + ((dst_negative_scale_step_resultmasktable) + (dst_negative_scale_step_resultmasktable))) + (((dst_negative_code_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)) * S ((dst_negative_code_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)) + ((dst_negative_scale_step_resultmasktable) + (dst_negative_scale_step_resultmasktable)))))) /\ (forall dst_index_step_resultmasktable. (exists pvs_le_gap_step_resultmasktabledomain. pvs_le_gap_step_resultmasktabledomain + (dst_index_step_resultmasktable) = (S k)) -> exists dst_positive_step_resultmasktable dst_negative_step_resultmasktable dst_value_step_resultmasktable. ((((exists ff_h_pvs_step_resultmasktableentrypositive. ff_h_pvs_step_resultmasktableentrypositive + S (dst_positive_step_resultmasktable) = S ((S (dst_index_step_resultmasktable)) * dst_positive_scale_step_resultmasktable)) /\ exists ff_q_pvs_step_resultmasktableentrypositive. dst_positive_code_step_resultmasktable = ff_q_pvs_step_resultmasktableentrypositive * S ((S (dst_index_step_resultmasktable)) * dst_positive_scale_step_resultmasktable) + (dst_positive_step_resultmasktable))) /\ (((((exists ff_h_pvs_step_resultmasktableentrynegative. ff_h_pvs_step_resultmasktableentrynegative + S (dst_negative_step_resultmasktable) = S ((S (dst_index_step_resultmasktable)) * dst_negative_scale_step_resultmasktable)) /\ exists ff_q_pvs_step_resultmasktableentrynegative. dst_negative_code_step_resultmasktable = ff_q_pvs_step_resultmasktableentrynegative * S ((S (dst_index_step_resultmasktable)) * dst_negative_scale_step_resultmasktable) + (dst_negative_step_resultmasktable))) /\ (exists ge_balance_positive_step_resultmasktableentryvalue ge_balance_negative_step_resultmasktableentryvalue. (((((dst_value_step_resultmasktable) = 2 * (ge_balance_positive_step_resultmasktableentryvalue) /\ (ge_balance_negative_step_resultmasktableentryvalue) = 0) \/ exists ge_signed_half_step_resultmasktableentryvaluedecode. (((dst_value_step_resultmasktable) = 2 * ge_signed_half_step_resultmasktableentryvaluedecode + 1 /\ (ge_balance_positive_step_resultmasktableentryvalue) = 0) /\ (ge_balance_negative_step_resultmasktableentryvalue) = S ge_signed_half_step_resultmasktableentryvaluedecode))) /\ ((dst_positive_step_resultmasktable) + ge_balance_negative_step_resultmasktableentryvalue = (dst_negative_step_resultmasktable) + ge_balance_positive_step_resultmasktableentryvalue))))))))) /\ (forall dc_index_step_resultmask dc_value_step_resultmask. (exists pvs_le_gap_step_resultmaskdomain. pvs_le_gap_step_resultmaskdomain + (dc_index_step_resultmask) = (S k)) -> (exists dst_positive_code_step_resultmasklookup dst_positive_scale_step_resultmasklookup dst_negative_code_step_resultmasklookup dst_negative_scale_step_resultmasklookup dst_positive_step_resultmasklookup dst_negative_step_resultmasklookup. (((dc_mask_step_result) = (((((dst_positive_code_step_resultmasklookup) + (dst_positive_scale_step_resultmasklookup)) * S ((dst_positive_code_step_resultmasklookup) + (dst_positive_scale_step_resultmasklookup)) + ((dst_positive_scale_step_resultmasklookup) + (dst_positive_scale_step_resultmasklookup))) + (((dst_negative_code_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)) * S ((dst_negative_code_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)) + ((dst_negative_scale_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)))) * S ((((dst_positive_code_step_resultmasklookup) + (dst_positive_scale_step_resultmasklookup)) * S ((dst_positive_code_step_resultmasklookup) + (dst_positive_scale_step_resultmasklookup)) + ((dst_positive_scale_step_resultmasklookup) + (dst_positive_scale_step_resultmasklookup))) + (((dst_negative_code_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)) * S ((dst_negative_code_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)) + ((dst_negative_scale_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)))) + ((((dst_negative_code_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)) * S ((dst_negative_code_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)) + ((dst_negative_scale_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup))) + (((dst_negative_code_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)) * S ((dst_negative_code_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)) + ((dst_negative_scale_step_resultmasklookup) + (dst_negative_scale_step_resultmasklookup)))))) /\ (((((exists ff_h_pvs_step_resultmasklookuppositive. ff_h_pvs_step_resultmasklookuppositive + S (dst_positive_step_resultmasklookup) = S ((S (dc_index_step_resultmask)) * dst_positive_scale_step_resultmasklookup)) /\ exists ff_q_pvs_step_resultmasklookuppositive. dst_positive_code_step_resultmasklookup = ff_q_pvs_step_resultmasklookuppositive * S ((S (dc_index_step_resultmask)) * dst_positive_scale_step_resultmasklookup) + (dst_positive_step_resultmasklookup))) /\ (((((exists ff_h_pvs_step_resultmasklookupnegative. ff_h_pvs_step_resultmasklookupnegative + S (dst_negative_step_resultmasklookup) = S ((S (dc_index_step_resultmask)) * dst_negative_scale_step_resultmasklookup)) /\ exists ff_q_pvs_step_resultmasklookupnegative. dst_negative_code_step_resultmasklookup = ff_q_pvs_step_resultmasklookupnegative * S ((S (dc_index_step_resultmask)) * dst_negative_scale_step_resultmasklookup) + (dst_negative_step_resultmasklookup))) /\ (exists ge_balance_positive_step_resultmasklookupvalue ge_balance_negative_step_resultmasklookupvalue. (((((dc_value_step_resultmask) = 2 * (ge_balance_positive_step_resultmasklookupvalue) /\ (ge_balance_negative_step_resultmasklookupvalue) = 0) \/ exists ge_signed_half_step_resultmasklookupvaluedecode. (((dc_value_step_resultmask) = 2 * ge_signed_half_step_resultmasklookupvaluedecode + 1 /\ (ge_balance_positive_step_resultmasklookupvalue) = 0) /\ (ge_balance_negative_step_resultmasklookupvalue) = S ge_signed_half_step_resultmasklookupvaluedecode))) /\ ((dst_positive_step_resultmasklookup) + ge_balance_negative_step_resultmasklookupvalue = (dst_negative_step_resultmasklookup) + ge_balance_positive_step_resultmasklookupvalue))))))))) -> ((((~((dc_index_step_resultmask)=0)) /\ (exists dc_quotient_step_resultmaskentry dc_left_step_resultmaskentry dc_right_step_resultmaskentry. (((S k)=(dc_index_step_resultmask)*dc_quotient_step_resultmaskentry) /\ (((exists dst_positive_code_step_resultmaskentryleft dst_positive_scale_step_resultmaskentryleft dst_negative_code_step_resultmaskentryleft dst_negative_scale_step_resultmaskentryleft dst_positive_step_resultmaskentryleft dst_negative_step_resultmaskentryleft. (((F) = (((((dst_positive_code_step_resultmaskentryleft) + (dst_positive_scale_step_resultmaskentryleft)) * S ((dst_positive_code_step_resultmaskentryleft) + (dst_positive_scale_step_resultmaskentryleft)) + ((dst_positive_scale_step_resultmaskentryleft) + (dst_positive_scale_step_resultmaskentryleft))) + (((dst_negative_code_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)) * S ((dst_negative_code_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)) + ((dst_negative_scale_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)))) * S ((((dst_positive_code_step_resultmaskentryleft) + (dst_positive_scale_step_resultmaskentryleft)) * S ((dst_positive_code_step_resultmaskentryleft) + (dst_positive_scale_step_resultmaskentryleft)) + ((dst_positive_scale_step_resultmaskentryleft) + (dst_positive_scale_step_resultmaskentryleft))) + (((dst_negative_code_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)) * S ((dst_negative_code_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)) + ((dst_negative_scale_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)))) + ((((dst_negative_code_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)) * S ((dst_negative_code_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)) + ((dst_negative_scale_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft))) + (((dst_negative_code_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)) * S ((dst_negative_code_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)) + ((dst_negative_scale_step_resultmaskentryleft) + (dst_negative_scale_step_resultmaskentryleft)))))) /\ (((((exists ff_h_pvs_step_resultmaskentryleftpositive. ff_h_pvs_step_resultmaskentryleftpositive + S (dst_positive_step_resultmaskentryleft) = S ((S (dc_index_step_resultmask)) * dst_positive_scale_step_resultmaskentryleft)) /\ exists ff_q_pvs_step_resultmaskentryleftpositive. dst_positive_code_step_resultmaskentryleft = ff_q_pvs_step_resultmaskentryleftpositive * S ((S (dc_index_step_resultmask)) * dst_positive_scale_step_resultmaskentryleft) + (dst_positive_step_resultmaskentryleft))) /\ (((((exists ff_h_pvs_step_resultmaskentryleftnegative. ff_h_pvs_step_resultmaskentryleftnegative + S (dst_negative_step_resultmaskentryleft) = S ((S (dc_index_step_resultmask)) * dst_negative_scale_step_resultmaskentryleft)) /\ exists ff_q_pvs_step_resultmaskentryleftnegative. dst_negative_code_step_resultmaskentryleft = ff_q_pvs_step_resultmaskentryleftnegative * S ((S (dc_index_step_resultmask)) * dst_negative_scale_step_resultmaskentryleft) + (dst_negative_step_resultmaskentryleft))) /\ (exists ge_balance_positive_step_resultmaskentryleftvalue ge_balance_negative_step_resultmaskentryleftvalue. (((((dc_left_step_resultmaskentry) = 2 * (ge_balance_positive_step_resultmaskentryleftvalue) /\ (ge_balance_negative_step_resultmaskentryleftvalue) = 0) \/ exists ge_signed_half_step_resultmaskentryleftvaluedecode. (((dc_left_step_resultmaskentry) = 2 * ge_signed_half_step_resultmaskentryleftvaluedecode + 1 /\ (ge_balance_positive_step_resultmaskentryleftvalue) = 0) /\ (ge_balance_negative_step_resultmaskentryleftvalue) = S ge_signed_half_step_resultmaskentryleftvaluedecode))) /\ ((dst_positive_step_resultmaskentryleft) + ge_balance_negative_step_resultmaskentryleftvalue = (dst_negative_step_resultmaskentryleft) + ge_balance_positive_step_resultmaskentryleftvalue))))))))) /\ (((exists dst_positive_code_step_resultmaskentryright dst_positive_scale_step_resultmaskentryright dst_negative_code_step_resultmaskentryright dst_negative_scale_step_resultmaskentryright dst_positive_step_resultmaskentryright dst_negative_step_resultmaskentryright. (((G) = (((((dst_positive_code_step_resultmaskentryright) + (dst_positive_scale_step_resultmaskentryright)) * S ((dst_positive_code_step_resultmaskentryright) + (dst_positive_scale_step_resultmaskentryright)) + ((dst_positive_scale_step_resultmaskentryright) + (dst_positive_scale_step_resultmaskentryright))) + (((dst_negative_code_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)) * S ((dst_negative_code_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)) + ((dst_negative_scale_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)))) * S ((((dst_positive_code_step_resultmaskentryright) + (dst_positive_scale_step_resultmaskentryright)) * S ((dst_positive_code_step_resultmaskentryright) + (dst_positive_scale_step_resultmaskentryright)) + ((dst_positive_scale_step_resultmaskentryright) + (dst_positive_scale_step_resultmaskentryright))) + (((dst_negative_code_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)) * S ((dst_negative_code_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)) + ((dst_negative_scale_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)))) + ((((dst_negative_code_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)) * S ((dst_negative_code_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)) + ((dst_negative_scale_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright))) + (((dst_negative_code_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)) * S ((dst_negative_code_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)) + ((dst_negative_scale_step_resultmaskentryright) + (dst_negative_scale_step_resultmaskentryright)))))) /\ (((((exists ff_h_pvs_step_resultmaskentryrightpositive. ff_h_pvs_step_resultmaskentryrightpositive + S (dst_positive_step_resultmaskentryright) = S ((S (dc_quotient_step_resultmaskentry)) * dst_positive_scale_step_resultmaskentryright)) /\ exists ff_q_pvs_step_resultmaskentryrightpositive. dst_positive_code_step_resultmaskentryright = ff_q_pvs_step_resultmaskentryrightpositive * S ((S (dc_quotient_step_resultmaskentry)) * dst_positive_scale_step_resultmaskentryright) + (dst_positive_step_resultmaskentryright))) /\ (((((exists ff_h_pvs_step_resultmaskentryrightnegative. ff_h_pvs_step_resultmaskentryrightnegative + S (dst_negative_step_resultmaskentryright) = S ((S (dc_quotient_step_resultmaskentry)) * dst_negative_scale_step_resultmaskentryright)) /\ exists ff_q_pvs_step_resultmaskentryrightnegative. dst_negative_code_step_resultmaskentryright = ff_q_pvs_step_resultmaskentryrightnegative * S ((S (dc_quotient_step_resultmaskentry)) * dst_negative_scale_step_resultmaskentryright) + (dst_negative_step_resultmaskentryright))) /\ (exists ge_balance_positive_step_resultmaskentryrightvalue ge_balance_negative_step_resultmaskentryrightvalue. (((((dc_right_step_resultmaskentry) = 2 * (ge_balance_positive_step_resultmaskentryrightvalue) /\ (ge_balance_negative_step_resultmaskentryrightvalue) = 0) \/ exists ge_signed_half_step_resultmaskentryrightvaluedecode. (((dc_right_step_resultmaskentry) = 2 * ge_signed_half_step_resultmaskentryrightvaluedecode + 1 /\ (ge_balance_positive_step_resultmaskentryrightvalue) = 0) /\ (ge_balance_negative_step_resultmaskentryrightvalue) = S ge_signed_half_step_resultmaskentryrightvaluedecode))) /\ ((dst_positive_step_resultmaskentryright) + ge_balance_negative_step_resultmaskentryrightvalue = (dst_negative_step_resultmaskentryright) + ge_balance_positive_step_resultmaskentryrightvalue))))))))) /\ (exists sto_ap_step_resultmaskentryproduct sto_an_step_resultmaskentryproduct sto_bp_step_resultmaskentryproduct sto_bn_step_resultmaskentryproduct sto_cp_step_resultmaskentryproduct sto_cn_step_resultmaskentryproduct. (((((dc_left_step_resultmaskentry) = 2 * (sto_ap_step_resultmaskentryproduct) /\ (sto_an_step_resultmaskentryproduct) = 0) \/ exists ge_signed_half_step_resultmaskentryproductleft. (((dc_left_step_resultmaskentry) = 2 * ge_signed_half_step_resultmaskentryproductleft + 1 /\ (sto_ap_step_resultmaskentryproduct) = 0) /\ (sto_an_step_resultmaskentryproduct) = S ge_signed_half_step_resultmaskentryproductleft))) /\ ((((((dc_right_step_resultmaskentry) = 2 * (sto_bp_step_resultmaskentryproduct) /\ (sto_bn_step_resultmaskentryproduct) = 0) \/ exists ge_signed_half_step_resultmaskentryproductright. (((dc_right_step_resultmaskentry) = 2 * ge_signed_half_step_resultmaskentryproductright + 1 /\ (sto_bp_step_resultmaskentryproduct) = 0) /\ (sto_bn_step_resultmaskentryproduct) = S ge_signed_half_step_resultmaskentryproductright))) /\ ((((((dc_value_step_resultmask) = 2 * (sto_cp_step_resultmaskentryproduct) /\ (sto_cn_step_resultmaskentryproduct) = 0) \/ exists ge_signed_half_step_resultmaskentryproductoutput. (((dc_value_step_resultmask) = 2 * ge_signed_half_step_resultmaskentryproductoutput + 1 /\ (sto_cp_step_resultmaskentryproduct) = 0) /\ (sto_cn_step_resultmaskentryproduct) = S ge_signed_half_step_resultmaskentryproductoutput))) /\ ((sto_ap_step_resultmaskentryproduct * sto_bp_step_resultmaskentryproduct + sto_an_step_resultmaskentryproduct * sto_bn_step_resultmaskentryproduct) + sto_cn_step_resultmaskentryproduct = (sto_ap_step_resultmaskentryproduct * sto_bn_step_resultmaskentryproduct + sto_an_step_resultmaskentryproduct * sto_bp_step_resultmaskentryproduct) + sto_cp_step_resultmaskentryproduct))))))))))))))) \/ ((((dc_index_step_resultmask)=0 \/ ~(exists pvs_factor_step_resultmaskentrynondivisor. (S k) = (dc_index_step_resultmask) * pvs_factor_step_resultmaskentrynondivisor)) /\ ((dc_value_step_resultmask)=0))))))) /\ (exists dst_positive_code_step_resultfold dst_positive_scale_step_resultfold dst_negative_code_step_resultfold dst_negative_scale_step_resultfold dst_positive_sum_step_resultfold dst_negative_sum_step_resultfold. (((dc_mask_step_result) = (((((dst_positive_code_step_resultfold) + (dst_positive_scale_step_resultfold)) * S ((dst_positive_code_step_resultfold) + (dst_positive_scale_step_resultfold)) + ((dst_positive_scale_step_resultfold) + (dst_positive_scale_step_resultfold))) + (((dst_negative_code_step_resultfold) + (dst_negative_scale_step_resultfold)) * S ((dst_negative_code_step_resultfold) + (dst_negative_scale_step_resultfold)) + ((dst_negative_scale_step_resultfold) + (dst_negative_scale_step_resultfold)))) * S ((((dst_positive_code_step_resultfold) + (dst_positive_scale_step_resultfold)) * S ((dst_positive_code_step_resultfold) + (dst_positive_scale_step_resultfold)) + ((dst_positive_scale_step_resultfold) + (dst_positive_scale_step_resultfold))) + (((dst_negative_code_step_resultfold) + (dst_negative_scale_step_resultfold)) * S ((dst_negative_code_step_resultfold) + (dst_negative_scale_step_resultfold)) + ((dst_negative_scale_step_resultfold) + (dst_negative_scale_step_resultfold)))) + ((((dst_negative_code_step_resultfold) + (dst_negative_scale_step_resultfold)) * S ((dst_negative_code_step_resultfold) + (dst_negative_scale_step_resultfold)) + ((dst_negative_scale_step_resultfold) + (dst_negative_scale_step_resultfold))) + (((dst_negative_code_step_resultfold) + (dst_negative_scale_step_resultfold)) * S ((dst_negative_code_step_resultfold) + (dst_negative_scale_step_resultfold)) + ((dst_negative_scale_step_resultfold) + (dst_negative_scale_step_resultfold)))))) /\ (((exists fs_u_dst_step_resultfoldpositive fs_v_dst_step_resultfoldpositive. ((((exists fs_h_dst_step_resultfoldpositive_body_start. fs_h_dst_step_resultfoldpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_step_resultfoldpositive)) /\ exists fs_q_dst_step_resultfoldpositive_body_start. fs_u_dst_step_resultfoldpositive = fs_q_dst_step_resultfoldpositive_body_start * S ((S (0)) * fs_v_dst_step_resultfoldpositive) + (0))) /\ ((((exists fs_h_dst_step_resultfoldpositive_body_terminal. fs_h_dst_step_resultfoldpositive_body_terminal + S (dst_positive_sum_step_resultfold) = S ((S (S (S k))) * fs_v_dst_step_resultfoldpositive)) /\ exists fs_q_dst_step_resultfoldpositive_body_terminal. fs_u_dst_step_resultfoldpositive = fs_q_dst_step_resultfoldpositive_body_terminal * S ((S (S (S k))) * fs_v_dst_step_resultfoldpositive) + (dst_positive_sum_step_resultfold))) /\ forall fs_i_dst_step_resultfoldpositive_body_steps. (exists fs_lt_dst_step_resultfoldpositive_body_steps_bound. fs_lt_dst_step_resultfoldpositive_body_steps_bound + S fs_i_dst_step_resultfoldpositive_body_steps = S (S k)) -> exists fs_a_dst_step_resultfoldpositive_body_steps fs_r_dst_step_resultfoldpositive_body_steps fs_s_dst_step_resultfoldpositive_body_steps. ((((exists fs_h_dst_step_resultfoldpositive_body_steps_summand. fs_h_dst_step_resultfoldpositive_body_steps_summand + S (fs_a_dst_step_resultfoldpositive_body_steps) = S ((S (fs_i_dst_step_resultfoldpositive_body_steps)) * dst_positive_scale_step_resultfold)) /\ exists fs_q_dst_step_resultfoldpositive_body_steps_summand. dst_positive_code_step_resultfold = fs_q_dst_step_resultfoldpositive_body_steps_summand * S ((S (fs_i_dst_step_resultfoldpositive_body_steps)) * dst_positive_scale_step_resultfold) + (fs_a_dst_step_resultfoldpositive_body_steps))) /\ ((((exists fs_h_dst_step_resultfoldpositive_body_steps_partial. fs_h_dst_step_resultfoldpositive_body_steps_partial + S (fs_r_dst_step_resultfoldpositive_body_steps) = S ((S (fs_i_dst_step_resultfoldpositive_body_steps)) * fs_v_dst_step_resultfoldpositive)) /\ exists fs_q_dst_step_resultfoldpositive_body_steps_partial. fs_u_dst_step_resultfoldpositive = fs_q_dst_step_resultfoldpositive_body_steps_partial * S ((S (fs_i_dst_step_resultfoldpositive_body_steps)) * fs_v_dst_step_resultfoldpositive) + (fs_r_dst_step_resultfoldpositive_body_steps))) /\ ((((exists fs_h_dst_step_resultfoldpositive_body_steps_successor. fs_h_dst_step_resultfoldpositive_body_steps_successor + S (fs_s_dst_step_resultfoldpositive_body_steps) = S ((S (S fs_i_dst_step_resultfoldpositive_body_steps)) * fs_v_dst_step_resultfoldpositive)) /\ exists fs_q_dst_step_resultfoldpositive_body_steps_successor. fs_u_dst_step_resultfoldpositive = fs_q_dst_step_resultfoldpositive_body_steps_successor * S ((S (S fs_i_dst_step_resultfoldpositive_body_steps)) * fs_v_dst_step_resultfoldpositive) + (fs_s_dst_step_resultfoldpositive_body_steps))) /\ fs_s_dst_step_resultfoldpositive_body_steps = fs_r_dst_step_resultfoldpositive_body_steps + fs_a_dst_step_resultfoldpositive_body_steps)))))) /\ (((exists fs_u_dst_step_resultfoldnegative fs_v_dst_step_resultfoldnegative. ((((exists fs_h_dst_step_resultfoldnegative_body_start. fs_h_dst_step_resultfoldnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_step_resultfoldnegative)) /\ exists fs_q_dst_step_resultfoldnegative_body_start. fs_u_dst_step_resultfoldnegative = fs_q_dst_step_resultfoldnegative_body_start * S ((S (0)) * fs_v_dst_step_resultfoldnegative) + (0))) /\ ((((exists fs_h_dst_step_resultfoldnegative_body_terminal. fs_h_dst_step_resultfoldnegative_body_terminal + S (dst_negative_sum_step_resultfold) = S ((S (S (S k))) * fs_v_dst_step_resultfoldnegative)) /\ exists fs_q_dst_step_resultfoldnegative_body_terminal. fs_u_dst_step_resultfoldnegative = fs_q_dst_step_resultfoldnegative_body_terminal * S ((S (S (S k))) * fs_v_dst_step_resultfoldnegative) + (dst_negative_sum_step_resultfold))) /\ forall fs_i_dst_step_resultfoldnegative_body_steps. (exists fs_lt_dst_step_resultfoldnegative_body_steps_bound. fs_lt_dst_step_resultfoldnegative_body_steps_bound + S fs_i_dst_step_resultfoldnegative_body_steps = S (S k)) -> exists fs_a_dst_step_resultfoldnegative_body_steps fs_r_dst_step_resultfoldnegative_body_steps fs_s_dst_step_resultfoldnegative_body_steps. ((((exists fs_h_dst_step_resultfoldnegative_body_steps_summand. fs_h_dst_step_resultfoldnegative_body_steps_summand + S (fs_a_dst_step_resultfoldnegative_body_steps) = S ((S (fs_i_dst_step_resultfoldnegative_body_steps)) * dst_negative_scale_step_resultfold)) /\ exists fs_q_dst_step_resultfoldnegative_body_steps_summand. dst_negative_code_step_resultfold = fs_q_dst_step_resultfoldnegative_body_steps_summand * S ((S (fs_i_dst_step_resultfoldnegative_body_steps)) * dst_negative_scale_step_resultfold) + (fs_a_dst_step_resultfoldnegative_body_steps))) /\ ((((exists fs_h_dst_step_resultfoldnegative_body_steps_partial. fs_h_dst_step_resultfoldnegative_body_steps_partial + S (fs_r_dst_step_resultfoldnegative_body_steps) = S ((S (fs_i_dst_step_resultfoldnegative_body_steps)) * fs_v_dst_step_resultfoldnegative)) /\ exists fs_q_dst_step_resultfoldnegative_body_steps_partial. fs_u_dst_step_resultfoldnegative = fs_q_dst_step_resultfoldnegative_body_steps_partial * S ((S (fs_i_dst_step_resultfoldnegative_body_steps)) * fs_v_dst_step_resultfoldnegative) + (fs_r_dst_step_resultfoldnegative_body_steps))) /\ ((((exists fs_h_dst_step_resultfoldnegative_body_steps_successor. fs_h_dst_step_resultfoldnegative_body_steps_successor + S (fs_s_dst_step_resultfoldnegative_body_steps) = S ((S (S fs_i_dst_step_resultfoldnegative_body_steps)) * fs_v_dst_step_resultfoldnegative)) /\ exists fs_q_dst_step_resultfoldnegative_body_steps_successor. fs_u_dst_step_resultfoldnegative = fs_q_dst_step_resultfoldnegative_body_steps_successor * S ((S (S fs_i_dst_step_resultfoldnegative_body_steps)) * fs_v_dst_step_resultfoldnegative) + (fs_s_dst_step_resultfoldnegative_body_steps))) /\ fs_s_dst_step_resultfoldnegative_body_steps = fs_r_dst_step_resultfoldnegative_body_steps + fs_a_dst_step_resultfoldnegative_body_steps)))))) /\ (exists ge_balance_positive_step_resultfoldresult ge_balance_negative_step_resultfoldresult. (((((z) = 2 * (ge_balance_positive_step_resultfoldresult) /\ (ge_balance_negative_step_resultfoldresult) = 0) \/ exists ge_signed_half_step_resultfoldresultdecode. (((z) = 2 * ge_signed_half_step_resultfoldresultdecode + 1 /\ (ge_balance_positive_step_resultfoldresult) = 0) /\ (ge_balance_negative_step_resultfoldresult) = S ge_signed_half_step_resultfoldresultdecode))) /\ ((dst_positive_sum_step_resultfold) + ge_balance_negative_step_resultfoldresult = (dst_negative_sum_step_resultfold) + ge_balance_positive_step_resultfoldresult)))))))))))))

Constructive proof overview

Generated structural guide

Append the actual endpoint product to the real strict-prefix fold, constructing the full S(S k)-entry convolution without an assumed recurrence.

The unchanged tactic script uses 6 declared prerequisites and contains 83 exact native proof lines.

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

Proof neighborhood

Direct dependencies

DT0005 dirichlet_convolution_last_entry_iff dirichlet_convolution_prefix_append Alpha theorem; checked-use authorized arithmetic_signed_sum_append_transport Alpha theorem; checked-use authorized dirichlet_convolution_prefix_quotient_entry Alpha theorem; checked-use authorized le_refl Stable theorem; checked-use authorized mul_one Stable theorem; checked-use authorized

Direct dependents

Formal native tactic body

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

Read the argument

Proof checkpoints

83 script commands · 19 reading checkpoints · 2 local claims

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

Named ingredients (1)

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

01Fix variables and assumptionsL1–10

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

  1. L1
    intro F
  2. L2
    intro G
  3. L3
    intro k
  4. L4
    intro M
  5. L5
    intro r
  6. L6
    intro a
  7. L7
    intro b
  8. L8
    intro y
  9. L9
    intro z
  10. L10
    intro hm
02Fix variables and assumptionsL11–15

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

  1. L11
    intro hs
  2. L12
    intro ha
  3. L13
    intro hb
  4. L14
    intro hy
  5. L15
    intro hz
03Establish heL16–25

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

  1. L16
    have he : (DirichletEntry(F,G,S k,S k,y) → SignedMul(a,b,y)) ∧ (SignedMul(a,b,y) → DirichletEntry(F,G,S k,S k,y))Definitions: SignedMulDirichletEntry
  2. L17
    specialize dirichlet_convolution_last_entry_iff (F)
  3. L18
    specialize dirichlet_convolution_last_entry_iff (G)
  4. L19
    specialize dirichlet_convolution_last_entry_iff (S k)
  5. L20
    specialize dirichlet_convolution_last_entry_iff (a)
  6. L21
    specialize dirichlet_convolution_last_entry_iff (b)
  7. L22
    specialize dirichlet_convolution_last_entry_iff (y)
  8. L23
    apply dirichlet_convolution_last_entry_iff
  9. L24
    intro hn
  10. L25
    apply PA1
04Use earlier factsL26–28

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

  1. L26
    exact hn
  2. L27
    exact ha
  3. L28
    exact hb
05Separate the logical casesL29–29

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

  1. L29
    cases he
06Establish hnextL30–39

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

  1. L30
    have hnext : ∃ K. DirichletPrefix(F,G,S k,S k,K) ∧ ArithTableEqual(M,K,S k)Definitions: ArithTableEqualDirichletPrefix
  2. L31
    specialize dirichlet_convolution_prefix_append (F)
  3. L32
    specialize dirichlet_convolution_prefix_append (G)
  4. L33
    specialize dirichlet_convolution_prefix_append (S k)
  5. L34
    specialize dirichlet_convolution_prefix_append (k)
  6. L35
    specialize dirichlet_convolution_prefix_append (M)
  7. L36
    specialize dirichlet_convolution_prefix_append (y)
  8. L37
    apply dirichlet_convolution_prefix_append
  9. L38
    exact hm
  10. L39
    apply he_right
07Use earlier factsL40–40

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

  1. L40
    exact hy
08Separate the logical casesL41–44

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

  1. L41
    cases hnext
  2. L42
    cases hnext_witness
  3. L43
    cases hnext_witness_left
  4. L44
    split
09Fix variables and assumptionsL45–45

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

  1. L45
    intro hn
10Use earlier factsL46–47

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

  1. L46
    apply PA1
  2. L47
    exact hn
11Construct an explicit witnessL48–48

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

  1. L48
    exists x
12Separate the logical casesL49–49

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

  1. L49
    split
13Use earlier factsL50–59

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

  1. L50
    exact hnext_witness_left
  2. L51
    specialize arithmetic_signed_sum_append_transport (M)
  3. L52
    specialize arithmetic_signed_sum_append_transport (x)
  4. L53
    specialize arithmetic_signed_sum_append_transport (S k)
  5. L54
    specialize arithmetic_signed_sum_append_transport (r)
  6. L55
    specialize arithmetic_signed_sum_append_transport (y)
  7. L56
    specialize arithmetic_signed_sum_append_transport (z)
  8. L57
    apply arithmetic_signed_sum_append_transport
  9. L58
    exact hnext_witness_left_left
  10. L59
    exact hnext_witness_right
14Use earlier factsL60–69

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

  1. L60
    exact hs
  2. L61
    specialize dirichlet_convolution_prefix_quotient_entry (F)
  3. L62
    specialize dirichlet_convolution_prefix_quotient_entry (G)
  4. L63
    specialize dirichlet_convolution_prefix_quotient_entry (S k)
  5. L64
    specialize dirichlet_convolution_prefix_quotient_entry (S k)
  6. L65
    specialize dirichlet_convolution_prefix_quotient_entry (x)
  7. L66
    specialize dirichlet_convolution_prefix_quotient_entry (S k)
  8. L67
    specialize dirichlet_convolution_prefix_quotient_entry (1)
  9. L68
    specialize dirichlet_convolution_prefix_quotient_entry (a)
  10. L69
    specialize dirichlet_convolution_prefix_quotient_entry (b)
15Use earlier factsL70–74

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

  1. L70
    specialize dirichlet_convolution_prefix_quotient_entry (y)
  2. L71
    apply dirichlet_convolution_prefix_quotient_entry
  3. L72
    exact hnext_witness_left
  4. L73
    specialize le_refl (S k)
  5. L74
    apply le_refl
16Fix variables and assumptionsL75–75

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

  1. L75
    intro hn
17Use earlier factsL76–77

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

  1. L76
    apply PA1
  2. L77
    exact hn
18Calculate and transport equalitiesL78–78

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

  1. L78
    symm
19Use earlier factsL79–83

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

  1. L79
    apply mul_one
  2. L80
    exact ha
  3. L81
    exact hb
  4. L82
    exact hy
  5. L83
    exact hz

Library-wide reading audit

Original exact command ledger · 83 lines
  1. 0001intro F
  2. 0002intro G
  3. 0003intro k
  4. 0004intro M
  5. 0005intro r
  6. 0006intro a
  7. 0007intro b
  8. 0008intro y
  9. 0009intro z
  10. 0010intro hm
  11. 0011intro hs
  12. 0012intro ha
  13. 0013intro hb
  14. 0014intro hy
  15. 0015intro hz
  16. 0016have he : ((((((~((S k)=0)) /\ (exists dc_quotient_step_actual_entry dc_left_step_actual_entry dc_right_step_actual_entry. (((S k)=(S k)*dc_quotient_step_actual_entry) /\ (((exists dst_positive_code_step_actual_entryleft dst_positive_scale_step_actual_entryleft dst_negative_code_step_actual_entryleft dst_negative_scale_step_actual_entryleft dst_positive_step_actual_entryleft dst_negative_step_actual_entryleft. (((F) = (((((dst_positive_code_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft)) * S ((dst_positive_code_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft)) + ((dst_positive_scale_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft))) + (((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) * S ((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) + ((dst_negative_scale_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)))) * S ((((dst_positive_code_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft)) * S ((dst_positive_code_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft)) + ((dst_positive_scale_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft))) + (((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) * S ((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) + ((dst_negative_scale_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)))) + ((((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) * S ((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) + ((dst_negative_scale_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft))) + (((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) * S ((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) + ((dst_negative_scale_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)))))) /\ (((((exists ff_h_pvs_step_actual_entryleftpositive. ff_h_pvs_step_actual_entryleftpositive + S (dst_positive_step_actual_entryleft) = S ((S (S k)) * dst_positive_scale_step_actual_entryleft)) /\ exists ff_q_pvs_step_actual_entryleftpositive. dst_positive_code_step_actual_entryleft = ff_q_pvs_step_actual_entryleftpositive * S ((S (S k)) * dst_positive_scale_step_actual_entryleft) + (dst_positive_step_actual_entryleft))) /\ (((((exists ff_h_pvs_step_actual_entryleftnegative. ff_h_pvs_step_actual_entryleftnegative + S (dst_negative_step_actual_entryleft) = S ((S (S k)) * dst_negative_scale_step_actual_entryleft)) /\ exists ff_q_pvs_step_actual_entryleftnegative. dst_negative_code_step_actual_entryleft = ff_q_pvs_step_actual_entryleftnegative * S ((S (S k)) * dst_negative_scale_step_actual_entryleft) + (dst_negative_step_actual_entryleft))) /\ (exists ge_balance_positive_step_actual_entryleftvalue ge_balance_negative_step_actual_entryleftvalue. (((((dc_left_step_actual_entry) = 2 * (ge_balance_positive_step_actual_entryleftvalue) /\ (ge_balance_negative_step_actual_entryleftvalue) = 0) \/ exists ge_signed_half_step_actual_entryleftvaluedecode. (((dc_left_step_actual_entry) = 2 * ge_signed_half_step_actual_entryleftvaluedecode + 1 /\ (ge_balance_positive_step_actual_entryleftvalue) = 0) /\ (ge_balance_negative_step_actual_entryleftvalue) = S ge_signed_half_step_actual_entryleftvaluedecode))) /\ ((dst_positive_step_actual_entryleft) + ge_balance_negative_step_actual_entryleftvalue = (dst_negative_step_actual_entryleft) + ge_balance_positive_step_actual_entryleftvalue))))))))) /\ (((exists dst_positive_code_step_actual_entryright dst_positive_scale_step_actual_entryright dst_negative_code_step_actual_entryright dst_negative_scale_step_actual_entryright dst_positive_step_actual_entryright dst_negative_step_actual_entryright. (((G) = (((((dst_positive_code_step_actual_entryright) + (dst_positive_scale_step_actual_entryright)) * S ((dst_positive_code_step_actual_entryright) + (dst_positive_scale_step_actual_entryright)) + ((dst_positive_scale_step_actual_entryright) + (dst_positive_scale_step_actual_entryright))) + (((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) * S ((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) + ((dst_negative_scale_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)))) * S ((((dst_positive_code_step_actual_entryright) + (dst_positive_scale_step_actual_entryright)) * S ((dst_positive_code_step_actual_entryright) + (dst_positive_scale_step_actual_entryright)) + ((dst_positive_scale_step_actual_entryright) + (dst_positive_scale_step_actual_entryright))) + (((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) * S ((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) + ((dst_negative_scale_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)))) + ((((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) * S ((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) + ((dst_negative_scale_step_actual_entryright) + (dst_negative_scale_step_actual_entryright))) + (((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) * S ((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) + ((dst_negative_scale_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)))))) /\ (((((exists ff_h_pvs_step_actual_entryrightpositive. ff_h_pvs_step_actual_entryrightpositive + S (dst_positive_step_actual_entryright) = S ((S (dc_quotient_step_actual_entry)) * dst_positive_scale_step_actual_entryright)) /\ exists ff_q_pvs_step_actual_entryrightpositive. dst_positive_code_step_actual_entryright = ff_q_pvs_step_actual_entryrightpositive * S ((S (dc_quotient_step_actual_entry)) * dst_positive_scale_step_actual_entryright) + (dst_positive_step_actual_entryright))) /\ (((((exists ff_h_pvs_step_actual_entryrightnegative. ff_h_pvs_step_actual_entryrightnegative + S (dst_negative_step_actual_entryright) = S ((S (dc_quotient_step_actual_entry)) * dst_negative_scale_step_actual_entryright)) /\ exists ff_q_pvs_step_actual_entryrightnegative. dst_negative_code_step_actual_entryright = ff_q_pvs_step_actual_entryrightnegative * S ((S (dc_quotient_step_actual_entry)) * dst_negative_scale_step_actual_entryright) + (dst_negative_step_actual_entryright))) /\ (exists ge_balance_positive_step_actual_entryrightvalue ge_balance_negative_step_actual_entryrightvalue. (((((dc_right_step_actual_entry) = 2 * (ge_balance_positive_step_actual_entryrightvalue) /\ (ge_balance_negative_step_actual_entryrightvalue) = 0) \/ exists ge_signed_half_step_actual_entryrightvaluedecode. (((dc_right_step_actual_entry) = 2 * ge_signed_half_step_actual_entryrightvaluedecode + 1 /\ (ge_balance_positive_step_actual_entryrightvalue) = 0) /\ (ge_balance_negative_step_actual_entryrightvalue) = S ge_signed_half_step_actual_entryrightvaluedecode))) /\ ((dst_positive_step_actual_entryright) + ge_balance_negative_step_actual_entryrightvalue = (dst_negative_step_actual_entryright) + ge_balance_positive_step_actual_entryrightvalue))))))))) /\ (exists sto_ap_step_actual_entryproduct sto_an_step_actual_entryproduct sto_bp_step_actual_entryproduct sto_bn_step_actual_entryproduct sto_cp_step_actual_entryproduct sto_cn_step_actual_entryproduct. (((((dc_left_step_actual_entry) = 2 * (sto_ap_step_actual_entryproduct) /\ (sto_an_step_actual_entryproduct) = 0) \/ exists ge_signed_half_step_actual_entryproductleft. (((dc_left_step_actual_entry) = 2 * ge_signed_half_step_actual_entryproductleft + 1 /\ (sto_ap_step_actual_entryproduct) = 0) /\ (sto_an_step_actual_entryproduct) = S ge_signed_half_step_actual_entryproductleft))) /\ ((((((dc_right_step_actual_entry) = 2 * (sto_bp_step_actual_entryproduct) /\ (sto_bn_step_actual_entryproduct) = 0) \/ exists ge_signed_half_step_actual_entryproductright. (((dc_right_step_actual_entry) = 2 * ge_signed_half_step_actual_entryproductright + 1 /\ (sto_bp_step_actual_entryproduct) = 0) /\ (sto_bn_step_actual_entryproduct) = S ge_signed_half_step_actual_entryproductright))) /\ ((((((y) = 2 * (sto_cp_step_actual_entryproduct) /\ (sto_cn_step_actual_entryproduct) = 0) \/ exists ge_signed_half_step_actual_entryproductoutput. (((y) = 2 * ge_signed_half_step_actual_entryproductoutput + 1 /\ (sto_cp_step_actual_entryproduct) = 0) /\ (sto_cn_step_actual_entryproduct) = S ge_signed_half_step_actual_entryproductoutput))) /\ ((sto_ap_step_actual_entryproduct * sto_bp_step_actual_entryproduct + sto_an_step_actual_entryproduct * sto_bn_step_actual_entryproduct) + sto_cn_step_actual_entryproduct = (sto_ap_step_actual_entryproduct * sto_bn_step_actual_entryproduct + sto_an_step_actual_entryproduct * sto_bp_step_actual_entryproduct) + sto_cp_step_actual_entryproduct))))))))))))))) \/ ((((S k)=0 \/ ~(exists pvs_factor_step_actual_entrynondivisor. (S k) = (S k) * pvs_factor_step_actual_entrynondivisor)) /\ ((y)=0)))) -> (exists sto_ap_step_actual_product sto_an_step_actual_product sto_bp_step_actual_product sto_bn_step_actual_product sto_cp_step_actual_product sto_cn_step_actual_product. (((((a) = 2 * (sto_ap_step_actual_product) /\ (sto_an_step_actual_product) = 0) \/ exists ge_signed_half_step_actual_productleft. (((a) = 2 * ge_signed_half_step_actual_productleft + 1 /\ (sto_ap_step_actual_product) = 0) /\ (sto_an_step_actual_product) = S ge_signed_half_step_actual_productleft))) /\ ((((((b) = 2 * (sto_bp_step_actual_product) /\ (sto_bn_step_actual_product) = 0) \/ exists ge_signed_half_step_actual_productright. (((b) = 2 * ge_signed_half_step_actual_productright + 1 /\ (sto_bp_step_actual_product) = 0) /\ (sto_bn_step_actual_product) = S ge_signed_half_step_actual_productright))) /\ ((((((y) = 2 * (sto_cp_step_actual_product) /\ (sto_cn_step_actual_product) = 0) \/ exists ge_signed_half_step_actual_productoutput. (((y) = 2 * ge_signed_half_step_actual_productoutput + 1 /\ (sto_cp_step_actual_product) = 0) /\ (sto_cn_step_actual_product) = S ge_signed_half_step_actual_productoutput))) /\ ((sto_ap_step_actual_product * sto_bp_step_actual_product + sto_an_step_actual_product * sto_bn_step_actual_product) + sto_cn_step_actual_product = (sto_ap_step_actual_product * sto_bn_step_actual_product + sto_an_step_actual_product * sto_bp_step_actual_product) + sto_cp_step_actual_product)))))))) /\ ((exists sto_ap_step_actual_product sto_an_step_actual_product sto_bp_step_actual_product sto_bn_step_actual_product sto_cp_step_actual_product sto_cn_step_actual_product. (((((a) = 2 * (sto_ap_step_actual_product) /\ (sto_an_step_actual_product) = 0) \/ exists ge_signed_half_step_actual_productleft. (((a) = 2 * ge_signed_half_step_actual_productleft + 1 /\ (sto_ap_step_actual_product) = 0) /\ (sto_an_step_actual_product) = S ge_signed_half_step_actual_productleft))) /\ ((((((b) = 2 * (sto_bp_step_actual_product) /\ (sto_bn_step_actual_product) = 0) \/ exists ge_signed_half_step_actual_productright. (((b) = 2 * ge_signed_half_step_actual_productright + 1 /\ (sto_bp_step_actual_product) = 0) /\ (sto_bn_step_actual_product) = S ge_signed_half_step_actual_productright))) /\ ((((((y) = 2 * (sto_cp_step_actual_product) /\ (sto_cn_step_actual_product) = 0) \/ exists ge_signed_half_step_actual_productoutput. (((y) = 2 * ge_signed_half_step_actual_productoutput + 1 /\ (sto_cp_step_actual_product) = 0) /\ (sto_cn_step_actual_product) = S ge_signed_half_step_actual_productoutput))) /\ ((sto_ap_step_actual_product * sto_bp_step_actual_product + sto_an_step_actual_product * sto_bn_step_actual_product) + sto_cn_step_actual_product = (sto_ap_step_actual_product * sto_bn_step_actual_product + sto_an_step_actual_product * sto_bp_step_actual_product) + sto_cp_step_actual_product))))))) -> ((((~((S k)=0)) /\ (exists dc_quotient_step_actual_entry dc_left_step_actual_entry dc_right_step_actual_entry. (((S k)=(S k)*dc_quotient_step_actual_entry) /\ (((exists dst_positive_code_step_actual_entryleft dst_positive_scale_step_actual_entryleft dst_negative_code_step_actual_entryleft dst_negative_scale_step_actual_entryleft dst_positive_step_actual_entryleft dst_negative_step_actual_entryleft. (((F) = (((((dst_positive_code_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft)) * S ((dst_positive_code_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft)) + ((dst_positive_scale_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft))) + (((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) * S ((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) + ((dst_negative_scale_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)))) * S ((((dst_positive_code_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft)) * S ((dst_positive_code_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft)) + ((dst_positive_scale_step_actual_entryleft) + (dst_positive_scale_step_actual_entryleft))) + (((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) * S ((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) + ((dst_negative_scale_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)))) + ((((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) * S ((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) + ((dst_negative_scale_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft))) + (((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) * S ((dst_negative_code_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)) + ((dst_negative_scale_step_actual_entryleft) + (dst_negative_scale_step_actual_entryleft)))))) /\ (((((exists ff_h_pvs_step_actual_entryleftpositive. ff_h_pvs_step_actual_entryleftpositive + S (dst_positive_step_actual_entryleft) = S ((S (S k)) * dst_positive_scale_step_actual_entryleft)) /\ exists ff_q_pvs_step_actual_entryleftpositive. dst_positive_code_step_actual_entryleft = ff_q_pvs_step_actual_entryleftpositive * S ((S (S k)) * dst_positive_scale_step_actual_entryleft) + (dst_positive_step_actual_entryleft))) /\ (((((exists ff_h_pvs_step_actual_entryleftnegative. ff_h_pvs_step_actual_entryleftnegative + S (dst_negative_step_actual_entryleft) = S ((S (S k)) * dst_negative_scale_step_actual_entryleft)) /\ exists ff_q_pvs_step_actual_entryleftnegative. dst_negative_code_step_actual_entryleft = ff_q_pvs_step_actual_entryleftnegative * S ((S (S k)) * dst_negative_scale_step_actual_entryleft) + (dst_negative_step_actual_entryleft))) /\ (exists ge_balance_positive_step_actual_entryleftvalue ge_balance_negative_step_actual_entryleftvalue. (((((dc_left_step_actual_entry) = 2 * (ge_balance_positive_step_actual_entryleftvalue) /\ (ge_balance_negative_step_actual_entryleftvalue) = 0) \/ exists ge_signed_half_step_actual_entryleftvaluedecode. (((dc_left_step_actual_entry) = 2 * ge_signed_half_step_actual_entryleftvaluedecode + 1 /\ (ge_balance_positive_step_actual_entryleftvalue) = 0) /\ (ge_balance_negative_step_actual_entryleftvalue) = S ge_signed_half_step_actual_entryleftvaluedecode))) /\ ((dst_positive_step_actual_entryleft) + ge_balance_negative_step_actual_entryleftvalue = (dst_negative_step_actual_entryleft) + ge_balance_positive_step_actual_entryleftvalue))))))))) /\ (((exists dst_positive_code_step_actual_entryright dst_positive_scale_step_actual_entryright dst_negative_code_step_actual_entryright dst_negative_scale_step_actual_entryright dst_positive_step_actual_entryright dst_negative_step_actual_entryright. (((G) = (((((dst_positive_code_step_actual_entryright) + (dst_positive_scale_step_actual_entryright)) * S ((dst_positive_code_step_actual_entryright) + (dst_positive_scale_step_actual_entryright)) + ((dst_positive_scale_step_actual_entryright) + (dst_positive_scale_step_actual_entryright))) + (((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) * S ((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) + ((dst_negative_scale_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)))) * S ((((dst_positive_code_step_actual_entryright) + (dst_positive_scale_step_actual_entryright)) * S ((dst_positive_code_step_actual_entryright) + (dst_positive_scale_step_actual_entryright)) + ((dst_positive_scale_step_actual_entryright) + (dst_positive_scale_step_actual_entryright))) + (((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) * S ((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) + ((dst_negative_scale_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)))) + ((((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) * S ((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) + ((dst_negative_scale_step_actual_entryright) + (dst_negative_scale_step_actual_entryright))) + (((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) * S ((dst_negative_code_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)) + ((dst_negative_scale_step_actual_entryright) + (dst_negative_scale_step_actual_entryright)))))) /\ (((((exists ff_h_pvs_step_actual_entryrightpositive. ff_h_pvs_step_actual_entryrightpositive + S (dst_positive_step_actual_entryright) = S ((S (dc_quotient_step_actual_entry)) * dst_positive_scale_step_actual_entryright)) /\ exists ff_q_pvs_step_actual_entryrightpositive. dst_positive_code_step_actual_entryright = ff_q_pvs_step_actual_entryrightpositive * S ((S (dc_quotient_step_actual_entry)) * dst_positive_scale_step_actual_entryright) + (dst_positive_step_actual_entryright))) /\ (((((exists ff_h_pvs_step_actual_entryrightnegative. ff_h_pvs_step_actual_entryrightnegative + S (dst_negative_step_actual_entryright) = S ((S (dc_quotient_step_actual_entry)) * dst_negative_scale_step_actual_entryright)) /\ exists ff_q_pvs_step_actual_entryrightnegative. dst_negative_code_step_actual_entryright = ff_q_pvs_step_actual_entryrightnegative * S ((S (dc_quotient_step_actual_entry)) * dst_negative_scale_step_actual_entryright) + (dst_negative_step_actual_entryright))) /\ (exists ge_balance_positive_step_actual_entryrightvalue ge_balance_negative_step_actual_entryrightvalue. (((((dc_right_step_actual_entry) = 2 * (ge_balance_positive_step_actual_entryrightvalue) /\ (ge_balance_negative_step_actual_entryrightvalue) = 0) \/ exists ge_signed_half_step_actual_entryrightvaluedecode. (((dc_right_step_actual_entry) = 2 * ge_signed_half_step_actual_entryrightvaluedecode + 1 /\ (ge_balance_positive_step_actual_entryrightvalue) = 0) /\ (ge_balance_negative_step_actual_entryrightvalue) = S ge_signed_half_step_actual_entryrightvaluedecode))) /\ ((dst_positive_step_actual_entryright) + ge_balance_negative_step_actual_entryrightvalue = (dst_negative_step_actual_entryright) + ge_balance_positive_step_actual_entryrightvalue))))))))) /\ (exists sto_ap_step_actual_entryproduct sto_an_step_actual_entryproduct sto_bp_step_actual_entryproduct sto_bn_step_actual_entryproduct sto_cp_step_actual_entryproduct sto_cn_step_actual_entryproduct. (((((dc_left_step_actual_entry) = 2 * (sto_ap_step_actual_entryproduct) /\ (sto_an_step_actual_entryproduct) = 0) \/ exists ge_signed_half_step_actual_entryproductleft. (((dc_left_step_actual_entry) = 2 * ge_signed_half_step_actual_entryproductleft + 1 /\ (sto_ap_step_actual_entryproduct) = 0) /\ (sto_an_step_actual_entryproduct) = S ge_signed_half_step_actual_entryproductleft))) /\ ((((((dc_right_step_actual_entry) = 2 * (sto_bp_step_actual_entryproduct) /\ (sto_bn_step_actual_entryproduct) = 0) \/ exists ge_signed_half_step_actual_entryproductright. (((dc_right_step_actual_entry) = 2 * ge_signed_half_step_actual_entryproductright + 1 /\ (sto_bp_step_actual_entryproduct) = 0) /\ (sto_bn_step_actual_entryproduct) = S ge_signed_half_step_actual_entryproductright))) /\ ((((((y) = 2 * (sto_cp_step_actual_entryproduct) /\ (sto_cn_step_actual_entryproduct) = 0) \/ exists ge_signed_half_step_actual_entryproductoutput. (((y) = 2 * ge_signed_half_step_actual_entryproductoutput + 1 /\ (sto_cp_step_actual_entryproduct) = 0) /\ (sto_cn_step_actual_entryproduct) = S ge_signed_half_step_actual_entryproductoutput))) /\ ((sto_ap_step_actual_entryproduct * sto_bp_step_actual_entryproduct + sto_an_step_actual_entryproduct * sto_bn_step_actual_entryproduct) + sto_cn_step_actual_entryproduct = (sto_ap_step_actual_entryproduct * sto_bn_step_actual_entryproduct + sto_an_step_actual_entryproduct * sto_bp_step_actual_entryproduct) + sto_cp_step_actual_entryproduct))))))))))))))) \/ ((((S k)=0 \/ ~(exists pvs_factor_step_actual_entrynondivisor. (S k) = (S k) * pvs_factor_step_actual_entrynondivisor)) /\ ((y)=0))))))
  17. 0017specialize dirichlet_convolution_last_entry_iff (F)
  18. 0018specialize dirichlet_convolution_last_entry_iff (G)
  19. 0019specialize dirichlet_convolution_last_entry_iff (S k)
  20. 0020specialize dirichlet_convolution_last_entry_iff (a)
  21. 0021specialize dirichlet_convolution_last_entry_iff (b)
  22. 0022specialize dirichlet_convolution_last_entry_iff (y)
  23. 0023apply dirichlet_convolution_last_entry_iff
  24. 0024intro hn
  25. 0025apply PA1
  26. 0026exact hn
  27. 0027exact ha
  28. 0028exact hb
  29. 0029cases he
  30. 0030have hnext : exists K. (((((exists dst_positive_code_step_actual_prefixtable dst_positive_scale_step_actual_prefixtable dst_negative_code_step_actual_prefixtable dst_negative_scale_step_actual_prefixtable. (((K) = (((((dst_positive_code_step_actual_prefixtable) + (dst_positive_scale_step_actual_prefixtable)) * S ((dst_positive_code_step_actual_prefixtable) + (dst_positive_scale_step_actual_prefixtable)) + ((dst_positive_scale_step_actual_prefixtable) + (dst_positive_scale_step_actual_prefixtable))) + (((dst_negative_code_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)) * S ((dst_negative_code_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)) + ((dst_negative_scale_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)))) * S ((((dst_positive_code_step_actual_prefixtable) + (dst_positive_scale_step_actual_prefixtable)) * S ((dst_positive_code_step_actual_prefixtable) + (dst_positive_scale_step_actual_prefixtable)) + ((dst_positive_scale_step_actual_prefixtable) + (dst_positive_scale_step_actual_prefixtable))) + (((dst_negative_code_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)) * S ((dst_negative_code_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)) + ((dst_negative_scale_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)))) + ((((dst_negative_code_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)) * S ((dst_negative_code_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)) + ((dst_negative_scale_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable))) + (((dst_negative_code_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)) * S ((dst_negative_code_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)) + ((dst_negative_scale_step_actual_prefixtable) + (dst_negative_scale_step_actual_prefixtable)))))) /\ (forall dst_index_step_actual_prefixtable. (exists pvs_le_gap_step_actual_prefixtabledomain. pvs_le_gap_step_actual_prefixtabledomain + (dst_index_step_actual_prefixtable) = (S k)) -> exists dst_positive_step_actual_prefixtable dst_negative_step_actual_prefixtable dst_value_step_actual_prefixtable. ((((exists ff_h_pvs_step_actual_prefixtableentrypositive. ff_h_pvs_step_actual_prefixtableentrypositive + S (dst_positive_step_actual_prefixtable) = S ((S (dst_index_step_actual_prefixtable)) * dst_positive_scale_step_actual_prefixtable)) /\ exists ff_q_pvs_step_actual_prefixtableentrypositive. dst_positive_code_step_actual_prefixtable = ff_q_pvs_step_actual_prefixtableentrypositive * S ((S (dst_index_step_actual_prefixtable)) * dst_positive_scale_step_actual_prefixtable) + (dst_positive_step_actual_prefixtable))) /\ (((((exists ff_h_pvs_step_actual_prefixtableentrynegative. ff_h_pvs_step_actual_prefixtableentrynegative + S (dst_negative_step_actual_prefixtable) = S ((S (dst_index_step_actual_prefixtable)) * dst_negative_scale_step_actual_prefixtable)) /\ exists ff_q_pvs_step_actual_prefixtableentrynegative. dst_negative_code_step_actual_prefixtable = ff_q_pvs_step_actual_prefixtableentrynegative * S ((S (dst_index_step_actual_prefixtable)) * dst_negative_scale_step_actual_prefixtable) + (dst_negative_step_actual_prefixtable))) /\ (exists ge_balance_positive_step_actual_prefixtableentryvalue ge_balance_negative_step_actual_prefixtableentryvalue. (((((dst_value_step_actual_prefixtable) = 2 * (ge_balance_positive_step_actual_prefixtableentryvalue) /\ (ge_balance_negative_step_actual_prefixtableentryvalue) = 0) \/ exists ge_signed_half_step_actual_prefixtableentryvaluedecode. (((dst_value_step_actual_prefixtable) = 2 * ge_signed_half_step_actual_prefixtableentryvaluedecode + 1 /\ (ge_balance_positive_step_actual_prefixtableentryvalue) = 0) /\ (ge_balance_negative_step_actual_prefixtableentryvalue) = S ge_signed_half_step_actual_prefixtableentryvaluedecode))) /\ ((dst_positive_step_actual_prefixtable) + ge_balance_negative_step_actual_prefixtableentryvalue = (dst_negative_step_actual_prefixtable) + ge_balance_positive_step_actual_prefixtableentryvalue))))))))) /\ (forall dc_index_step_actual_prefix dc_value_step_actual_prefix. (exists pvs_le_gap_step_actual_prefixdomain. pvs_le_gap_step_actual_prefixdomain + (dc_index_step_actual_prefix) = (S k)) -> (exists dst_positive_code_step_actual_prefixlookup dst_positive_scale_step_actual_prefixlookup dst_negative_code_step_actual_prefixlookup dst_negative_scale_step_actual_prefixlookup dst_positive_step_actual_prefixlookup dst_negative_step_actual_prefixlookup. (((K) = (((((dst_positive_code_step_actual_prefixlookup) + (dst_positive_scale_step_actual_prefixlookup)) * S ((dst_positive_code_step_actual_prefixlookup) + (dst_positive_scale_step_actual_prefixlookup)) + ((dst_positive_scale_step_actual_prefixlookup) + (dst_positive_scale_step_actual_prefixlookup))) + (((dst_negative_code_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)) * S ((dst_negative_code_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)) + ((dst_negative_scale_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)))) * S ((((dst_positive_code_step_actual_prefixlookup) + (dst_positive_scale_step_actual_prefixlookup)) * S ((dst_positive_code_step_actual_prefixlookup) + (dst_positive_scale_step_actual_prefixlookup)) + ((dst_positive_scale_step_actual_prefixlookup) + (dst_positive_scale_step_actual_prefixlookup))) + (((dst_negative_code_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)) * S ((dst_negative_code_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)) + ((dst_negative_scale_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)))) + ((((dst_negative_code_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)) * S ((dst_negative_code_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)) + ((dst_negative_scale_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup))) + (((dst_negative_code_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)) * S ((dst_negative_code_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)) + ((dst_negative_scale_step_actual_prefixlookup) + (dst_negative_scale_step_actual_prefixlookup)))))) /\ (((((exists ff_h_pvs_step_actual_prefixlookuppositive. ff_h_pvs_step_actual_prefixlookuppositive + S (dst_positive_step_actual_prefixlookup) = S ((S (dc_index_step_actual_prefix)) * dst_positive_scale_step_actual_prefixlookup)) /\ exists ff_q_pvs_step_actual_prefixlookuppositive. dst_positive_code_step_actual_prefixlookup = ff_q_pvs_step_actual_prefixlookuppositive * S ((S (dc_index_step_actual_prefix)) * dst_positive_scale_step_actual_prefixlookup) + (dst_positive_step_actual_prefixlookup))) /\ (((((exists ff_h_pvs_step_actual_prefixlookupnegative. ff_h_pvs_step_actual_prefixlookupnegative + S (dst_negative_step_actual_prefixlookup) = S ((S (dc_index_step_actual_prefix)) * dst_negative_scale_step_actual_prefixlookup)) /\ exists ff_q_pvs_step_actual_prefixlookupnegative. dst_negative_code_step_actual_prefixlookup = ff_q_pvs_step_actual_prefixlookupnegative * S ((S (dc_index_step_actual_prefix)) * dst_negative_scale_step_actual_prefixlookup) + (dst_negative_step_actual_prefixlookup))) /\ (exists ge_balance_positive_step_actual_prefixlookupvalue ge_balance_negative_step_actual_prefixlookupvalue. (((((dc_value_step_actual_prefix) = 2 * (ge_balance_positive_step_actual_prefixlookupvalue) /\ (ge_balance_negative_step_actual_prefixlookupvalue) = 0) \/ exists ge_signed_half_step_actual_prefixlookupvaluedecode. (((dc_value_step_actual_prefix) = 2 * ge_signed_half_step_actual_prefixlookupvaluedecode + 1 /\ (ge_balance_positive_step_actual_prefixlookupvalue) = 0) /\ (ge_balance_negative_step_actual_prefixlookupvalue) = S ge_signed_half_step_actual_prefixlookupvaluedecode))) /\ ((dst_positive_step_actual_prefixlookup) + ge_balance_negative_step_actual_prefixlookupvalue = (dst_negative_step_actual_prefixlookup) + ge_balance_positive_step_actual_prefixlookupvalue))))))))) -> ((((~((dc_index_step_actual_prefix)=0)) /\ (exists dc_quotient_step_actual_prefixentry dc_left_step_actual_prefixentry dc_right_step_actual_prefixentry. (((S k)=(dc_index_step_actual_prefix)*dc_quotient_step_actual_prefixentry) /\ (((exists dst_positive_code_step_actual_prefixentryleft dst_positive_scale_step_actual_prefixentryleft dst_negative_code_step_actual_prefixentryleft dst_negative_scale_step_actual_prefixentryleft dst_positive_step_actual_prefixentryleft dst_negative_step_actual_prefixentryleft. (((F) = (((((dst_positive_code_step_actual_prefixentryleft) + (dst_positive_scale_step_actual_prefixentryleft)) * S ((dst_positive_code_step_actual_prefixentryleft) + (dst_positive_scale_step_actual_prefixentryleft)) + ((dst_positive_scale_step_actual_prefixentryleft) + (dst_positive_scale_step_actual_prefixentryleft))) + (((dst_negative_code_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)) * S ((dst_negative_code_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)) + ((dst_negative_scale_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)))) * S ((((dst_positive_code_step_actual_prefixentryleft) + (dst_positive_scale_step_actual_prefixentryleft)) * S ((dst_positive_code_step_actual_prefixentryleft) + (dst_positive_scale_step_actual_prefixentryleft)) + ((dst_positive_scale_step_actual_prefixentryleft) + (dst_positive_scale_step_actual_prefixentryleft))) + (((dst_negative_code_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)) * S ((dst_negative_code_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)) + ((dst_negative_scale_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)))) + ((((dst_negative_code_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)) * S ((dst_negative_code_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)) + ((dst_negative_scale_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft))) + (((dst_negative_code_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)) * S ((dst_negative_code_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)) + ((dst_negative_scale_step_actual_prefixentryleft) + (dst_negative_scale_step_actual_prefixentryleft)))))) /\ (((((exists ff_h_pvs_step_actual_prefixentryleftpositive. ff_h_pvs_step_actual_prefixentryleftpositive + S (dst_positive_step_actual_prefixentryleft) = S ((S (dc_index_step_actual_prefix)) * dst_positive_scale_step_actual_prefixentryleft)) /\ exists ff_q_pvs_step_actual_prefixentryleftpositive. dst_positive_code_step_actual_prefixentryleft = ff_q_pvs_step_actual_prefixentryleftpositive * S ((S (dc_index_step_actual_prefix)) * dst_positive_scale_step_actual_prefixentryleft) + (dst_positive_step_actual_prefixentryleft))) /\ (((((exists ff_h_pvs_step_actual_prefixentryleftnegative. ff_h_pvs_step_actual_prefixentryleftnegative + S (dst_negative_step_actual_prefixentryleft) = S ((S (dc_index_step_actual_prefix)) * dst_negative_scale_step_actual_prefixentryleft)) /\ exists ff_q_pvs_step_actual_prefixentryleftnegative. dst_negative_code_step_actual_prefixentryleft = ff_q_pvs_step_actual_prefixentryleftnegative * S ((S (dc_index_step_actual_prefix)) * dst_negative_scale_step_actual_prefixentryleft) + (dst_negative_step_actual_prefixentryleft))) /\ (exists ge_balance_positive_step_actual_prefixentryleftvalue ge_balance_negative_step_actual_prefixentryleftvalue. (((((dc_left_step_actual_prefixentry) = 2 * (ge_balance_positive_step_actual_prefixentryleftvalue) /\ (ge_balance_negative_step_actual_prefixentryleftvalue) = 0) \/ exists ge_signed_half_step_actual_prefixentryleftvaluedecode. (((dc_left_step_actual_prefixentry) = 2 * ge_signed_half_step_actual_prefixentryleftvaluedecode + 1 /\ (ge_balance_positive_step_actual_prefixentryleftvalue) = 0) /\ (ge_balance_negative_step_actual_prefixentryleftvalue) = S ge_signed_half_step_actual_prefixentryleftvaluedecode))) /\ ((dst_positive_step_actual_prefixentryleft) + ge_balance_negative_step_actual_prefixentryleftvalue = (dst_negative_step_actual_prefixentryleft) + ge_balance_positive_step_actual_prefixentryleftvalue))))))))) /\ (((exists dst_positive_code_step_actual_prefixentryright dst_positive_scale_step_actual_prefixentryright dst_negative_code_step_actual_prefixentryright dst_negative_scale_step_actual_prefixentryright dst_positive_step_actual_prefixentryright dst_negative_step_actual_prefixentryright. (((G) = (((((dst_positive_code_step_actual_prefixentryright) + (dst_positive_scale_step_actual_prefixentryright)) * S ((dst_positive_code_step_actual_prefixentryright) + (dst_positive_scale_step_actual_prefixentryright)) + ((dst_positive_scale_step_actual_prefixentryright) + (dst_positive_scale_step_actual_prefixentryright))) + (((dst_negative_code_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)) * S ((dst_negative_code_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)) + ((dst_negative_scale_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)))) * S ((((dst_positive_code_step_actual_prefixentryright) + (dst_positive_scale_step_actual_prefixentryright)) * S ((dst_positive_code_step_actual_prefixentryright) + (dst_positive_scale_step_actual_prefixentryright)) + ((dst_positive_scale_step_actual_prefixentryright) + (dst_positive_scale_step_actual_prefixentryright))) + (((dst_negative_code_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)) * S ((dst_negative_code_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)) + ((dst_negative_scale_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)))) + ((((dst_negative_code_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)) * S ((dst_negative_code_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)) + ((dst_negative_scale_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright))) + (((dst_negative_code_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)) * S ((dst_negative_code_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)) + ((dst_negative_scale_step_actual_prefixentryright) + (dst_negative_scale_step_actual_prefixentryright)))))) /\ (((((exists ff_h_pvs_step_actual_prefixentryrightpositive. ff_h_pvs_step_actual_prefixentryrightpositive + S (dst_positive_step_actual_prefixentryright) = S ((S (dc_quotient_step_actual_prefixentry)) * dst_positive_scale_step_actual_prefixentryright)) /\ exists ff_q_pvs_step_actual_prefixentryrightpositive. dst_positive_code_step_actual_prefixentryright = ff_q_pvs_step_actual_prefixentryrightpositive * S ((S (dc_quotient_step_actual_prefixentry)) * dst_positive_scale_step_actual_prefixentryright) + (dst_positive_step_actual_prefixentryright))) /\ (((((exists ff_h_pvs_step_actual_prefixentryrightnegative. ff_h_pvs_step_actual_prefixentryrightnegative + S (dst_negative_step_actual_prefixentryright) = S ((S (dc_quotient_step_actual_prefixentry)) * dst_negative_scale_step_actual_prefixentryright)) /\ exists ff_q_pvs_step_actual_prefixentryrightnegative. dst_negative_code_step_actual_prefixentryright = ff_q_pvs_step_actual_prefixentryrightnegative * S ((S (dc_quotient_step_actual_prefixentry)) * dst_negative_scale_step_actual_prefixentryright) + (dst_negative_step_actual_prefixentryright))) /\ (exists ge_balance_positive_step_actual_prefixentryrightvalue ge_balance_negative_step_actual_prefixentryrightvalue. (((((dc_right_step_actual_prefixentry) = 2 * (ge_balance_positive_step_actual_prefixentryrightvalue) /\ (ge_balance_negative_step_actual_prefixentryrightvalue) = 0) \/ exists ge_signed_half_step_actual_prefixentryrightvaluedecode. (((dc_right_step_actual_prefixentry) = 2 * ge_signed_half_step_actual_prefixentryrightvaluedecode + 1 /\ (ge_balance_positive_step_actual_prefixentryrightvalue) = 0) /\ (ge_balance_negative_step_actual_prefixentryrightvalue) = S ge_signed_half_step_actual_prefixentryrightvaluedecode))) /\ ((dst_positive_step_actual_prefixentryright) + ge_balance_negative_step_actual_prefixentryrightvalue = (dst_negative_step_actual_prefixentryright) + ge_balance_positive_step_actual_prefixentryrightvalue))))))))) /\ (exists sto_ap_step_actual_prefixentryproduct sto_an_step_actual_prefixentryproduct sto_bp_step_actual_prefixentryproduct sto_bn_step_actual_prefixentryproduct sto_cp_step_actual_prefixentryproduct sto_cn_step_actual_prefixentryproduct. (((((dc_left_step_actual_prefixentry) = 2 * (sto_ap_step_actual_prefixentryproduct) /\ (sto_an_step_actual_prefixentryproduct) = 0) \/ exists ge_signed_half_step_actual_prefixentryproductleft. (((dc_left_step_actual_prefixentry) = 2 * ge_signed_half_step_actual_prefixentryproductleft + 1 /\ (sto_ap_step_actual_prefixentryproduct) = 0) /\ (sto_an_step_actual_prefixentryproduct) = S ge_signed_half_step_actual_prefixentryproductleft))) /\ ((((((dc_right_step_actual_prefixentry) = 2 * (sto_bp_step_actual_prefixentryproduct) /\ (sto_bn_step_actual_prefixentryproduct) = 0) \/ exists ge_signed_half_step_actual_prefixentryproductright. (((dc_right_step_actual_prefixentry) = 2 * ge_signed_half_step_actual_prefixentryproductright + 1 /\ (sto_bp_step_actual_prefixentryproduct) = 0) /\ (sto_bn_step_actual_prefixentryproduct) = S ge_signed_half_step_actual_prefixentryproductright))) /\ ((((((dc_value_step_actual_prefix) = 2 * (sto_cp_step_actual_prefixentryproduct) /\ (sto_cn_step_actual_prefixentryproduct) = 0) \/ exists ge_signed_half_step_actual_prefixentryproductoutput. (((dc_value_step_actual_prefix) = 2 * ge_signed_half_step_actual_prefixentryproductoutput + 1 /\ (sto_cp_step_actual_prefixentryproduct) = 0) /\ (sto_cn_step_actual_prefixentryproduct) = S ge_signed_half_step_actual_prefixentryproductoutput))) /\ ((sto_ap_step_actual_prefixentryproduct * sto_bp_step_actual_prefixentryproduct + sto_an_step_actual_prefixentryproduct * sto_bn_step_actual_prefixentryproduct) + sto_cn_step_actual_prefixentryproduct = (sto_ap_step_actual_prefixentryproduct * sto_bn_step_actual_prefixentryproduct + sto_an_step_actual_prefixentryproduct * sto_bp_step_actual_prefixentryproduct) + sto_cp_step_actual_prefixentryproduct))))))))))))))) \/ ((((dc_index_step_actual_prefix)=0 \/ ~(exists pvs_factor_step_actual_prefixentrynondivisor. (S k) = (dc_index_step_actual_prefix) * pvs_factor_step_actual_prefixentrynondivisor)) /\ ((dc_value_step_actual_prefix)=0))))))) /\ (forall dst_index_step_actual_equal dst_first_step_actual_equal dst_second_step_actual_equal. (exists pvs_gap_step_actual_equalbound. pvs_gap_step_actual_equalbound + S (dst_index_step_actual_equal) = (S k)) -> (exists dst_positive_code_step_actual_equalfirst dst_positive_scale_step_actual_equalfirst dst_negative_code_step_actual_equalfirst dst_negative_scale_step_actual_equalfirst dst_positive_step_actual_equalfirst dst_negative_step_actual_equalfirst. (((M) = (((((dst_positive_code_step_actual_equalfirst) + (dst_positive_scale_step_actual_equalfirst)) * S ((dst_positive_code_step_actual_equalfirst) + (dst_positive_scale_step_actual_equalfirst)) + ((dst_positive_scale_step_actual_equalfirst) + (dst_positive_scale_step_actual_equalfirst))) + (((dst_negative_code_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)) * S ((dst_negative_code_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)) + ((dst_negative_scale_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)))) * S ((((dst_positive_code_step_actual_equalfirst) + (dst_positive_scale_step_actual_equalfirst)) * S ((dst_positive_code_step_actual_equalfirst) + (dst_positive_scale_step_actual_equalfirst)) + ((dst_positive_scale_step_actual_equalfirst) + (dst_positive_scale_step_actual_equalfirst))) + (((dst_negative_code_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)) * S ((dst_negative_code_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)) + ((dst_negative_scale_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)))) + ((((dst_negative_code_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)) * S ((dst_negative_code_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)) + ((dst_negative_scale_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst))) + (((dst_negative_code_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)) * S ((dst_negative_code_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)) + ((dst_negative_scale_step_actual_equalfirst) + (dst_negative_scale_step_actual_equalfirst)))))) /\ (((((exists ff_h_pvs_step_actual_equalfirstpositive. ff_h_pvs_step_actual_equalfirstpositive + S (dst_positive_step_actual_equalfirst) = S ((S (dst_index_step_actual_equal)) * dst_positive_scale_step_actual_equalfirst)) /\ exists ff_q_pvs_step_actual_equalfirstpositive. dst_positive_code_step_actual_equalfirst = ff_q_pvs_step_actual_equalfirstpositive * S ((S (dst_index_step_actual_equal)) * dst_positive_scale_step_actual_equalfirst) + (dst_positive_step_actual_equalfirst))) /\ (((((exists ff_h_pvs_step_actual_equalfirstnegative. ff_h_pvs_step_actual_equalfirstnegative + S (dst_negative_step_actual_equalfirst) = S ((S (dst_index_step_actual_equal)) * dst_negative_scale_step_actual_equalfirst)) /\ exists ff_q_pvs_step_actual_equalfirstnegative. dst_negative_code_step_actual_equalfirst = ff_q_pvs_step_actual_equalfirstnegative * S ((S (dst_index_step_actual_equal)) * dst_negative_scale_step_actual_equalfirst) + (dst_negative_step_actual_equalfirst))) /\ (exists ge_balance_positive_step_actual_equalfirstvalue ge_balance_negative_step_actual_equalfirstvalue. (((((dst_first_step_actual_equal) = 2 * (ge_balance_positive_step_actual_equalfirstvalue) /\ (ge_balance_negative_step_actual_equalfirstvalue) = 0) \/ exists ge_signed_half_step_actual_equalfirstvaluedecode. (((dst_first_step_actual_equal) = 2 * ge_signed_half_step_actual_equalfirstvaluedecode + 1 /\ (ge_balance_positive_step_actual_equalfirstvalue) = 0) /\ (ge_balance_negative_step_actual_equalfirstvalue) = S ge_signed_half_step_actual_equalfirstvaluedecode))) /\ ((dst_positive_step_actual_equalfirst) + ge_balance_negative_step_actual_equalfirstvalue = (dst_negative_step_actual_equalfirst) + ge_balance_positive_step_actual_equalfirstvalue))))))))) -> (exists dst_positive_code_step_actual_equalsecond dst_positive_scale_step_actual_equalsecond dst_negative_code_step_actual_equalsecond dst_negative_scale_step_actual_equalsecond dst_positive_step_actual_equalsecond dst_negative_step_actual_equalsecond. (((K) = (((((dst_positive_code_step_actual_equalsecond) + (dst_positive_scale_step_actual_equalsecond)) * S ((dst_positive_code_step_actual_equalsecond) + (dst_positive_scale_step_actual_equalsecond)) + ((dst_positive_scale_step_actual_equalsecond) + (dst_positive_scale_step_actual_equalsecond))) + (((dst_negative_code_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)) * S ((dst_negative_code_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)) + ((dst_negative_scale_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)))) * S ((((dst_positive_code_step_actual_equalsecond) + (dst_positive_scale_step_actual_equalsecond)) * S ((dst_positive_code_step_actual_equalsecond) + (dst_positive_scale_step_actual_equalsecond)) + ((dst_positive_scale_step_actual_equalsecond) + (dst_positive_scale_step_actual_equalsecond))) + (((dst_negative_code_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)) * S ((dst_negative_code_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)) + ((dst_negative_scale_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)))) + ((((dst_negative_code_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)) * S ((dst_negative_code_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)) + ((dst_negative_scale_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond))) + (((dst_negative_code_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)) * S ((dst_negative_code_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)) + ((dst_negative_scale_step_actual_equalsecond) + (dst_negative_scale_step_actual_equalsecond)))))) /\ (((((exists ff_h_pvs_step_actual_equalsecondpositive. ff_h_pvs_step_actual_equalsecondpositive + S (dst_positive_step_actual_equalsecond) = S ((S (dst_index_step_actual_equal)) * dst_positive_scale_step_actual_equalsecond)) /\ exists ff_q_pvs_step_actual_equalsecondpositive. dst_positive_code_step_actual_equalsecond = ff_q_pvs_step_actual_equalsecondpositive * S ((S (dst_index_step_actual_equal)) * dst_positive_scale_step_actual_equalsecond) + (dst_positive_step_actual_equalsecond))) /\ (((((exists ff_h_pvs_step_actual_equalsecondnegative. ff_h_pvs_step_actual_equalsecondnegative + S (dst_negative_step_actual_equalsecond) = S ((S (dst_index_step_actual_equal)) * dst_negative_scale_step_actual_equalsecond)) /\ exists ff_q_pvs_step_actual_equalsecondnegative. dst_negative_code_step_actual_equalsecond = ff_q_pvs_step_actual_equalsecondnegative * S ((S (dst_index_step_actual_equal)) * dst_negative_scale_step_actual_equalsecond) + (dst_negative_step_actual_equalsecond))) /\ (exists ge_balance_positive_step_actual_equalsecondvalue ge_balance_negative_step_actual_equalsecondvalue. (((((dst_second_step_actual_equal) = 2 * (ge_balance_positive_step_actual_equalsecondvalue) /\ (ge_balance_negative_step_actual_equalsecondvalue) = 0) \/ exists ge_signed_half_step_actual_equalsecondvaluedecode. (((dst_second_step_actual_equal) = 2 * ge_signed_half_step_actual_equalsecondvaluedecode + 1 /\ (ge_balance_positive_step_actual_equalsecondvalue) = 0) /\ (ge_balance_negative_step_actual_equalsecondvalue) = S ge_signed_half_step_actual_equalsecondvaluedecode))) /\ ((dst_positive_step_actual_equalsecond) + ge_balance_negative_step_actual_equalsecondvalue = (dst_negative_step_actual_equalsecond) + ge_balance_positive_step_actual_equalsecondvalue))))))))) -> dst_first_step_actual_equal = dst_second_step_actual_equal)))
  31. 0031specialize dirichlet_convolution_prefix_append (F)
  32. 0032specialize dirichlet_convolution_prefix_append (G)
  33. 0033specialize dirichlet_convolution_prefix_append (S k)
  34. 0034specialize dirichlet_convolution_prefix_append (k)
  35. 0035specialize dirichlet_convolution_prefix_append (M)
  36. 0036specialize dirichlet_convolution_prefix_append (y)
  37. 0037apply dirichlet_convolution_prefix_append
  38. 0038exact hm
  39. 0039apply he_right
  40. 0040exact hy
  41. 0041cases hnext
  42. 0042cases hnext_witness
  43. 0043cases hnext_witness_left
  44. 0044split
  45. 0045intro hn
  46. 0046apply PA1
  47. 0047exact hn
  48. 0048exists x
  49. 0049split
  50. 0050exact hnext_witness_left
  51. 0051specialize arithmetic_signed_sum_append_transport (M)
  52. 0052specialize arithmetic_signed_sum_append_transport (x)
  53. 0053specialize arithmetic_signed_sum_append_transport (S k)
  54. 0054specialize arithmetic_signed_sum_append_transport (r)
  55. 0055specialize arithmetic_signed_sum_append_transport (y)
  56. 0056specialize arithmetic_signed_sum_append_transport (z)
  57. 0057apply arithmetic_signed_sum_append_transport
  58. 0058exact hnext_witness_left_left
  59. 0059exact hnext_witness_right
  60. 0060exact hs
  61. 0061specialize dirichlet_convolution_prefix_quotient_entry (F)
  62. 0062specialize dirichlet_convolution_prefix_quotient_entry (G)
  63. 0063specialize dirichlet_convolution_prefix_quotient_entry (S k)
  64. 0064specialize dirichlet_convolution_prefix_quotient_entry (S k)
  65. 0065specialize dirichlet_convolution_prefix_quotient_entry (x)
  66. 0066specialize dirichlet_convolution_prefix_quotient_entry (S k)
  67. 0067specialize dirichlet_convolution_prefix_quotient_entry (1)
  68. 0068specialize dirichlet_convolution_prefix_quotient_entry (a)
  69. 0069specialize dirichlet_convolution_prefix_quotient_entry (b)
  70. 0070specialize dirichlet_convolution_prefix_quotient_entry (y)
  71. 0071apply dirichlet_convolution_prefix_quotient_entry
  72. 0072exact hnext_witness_left
  73. 0073specialize le_refl (S k)
  74. 0074apply le_refl
  75. 0075intro hn
  76. 0076apply PA1
  77. 0077exact hn
  78. 0078symm
  79. 0079apply mul_one
  80. 0080exact ha
  81. 0081exact hb
  82. 0082exact hy
  83. 0083exact hz