Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
The strict remainder is an actual inclusive prefix through k with an S k-entry fold; the future input at S k is excluded. A genuine table extension supplies the endpoint. The at-one identity inspects or constructs the real two-entry masked sum. No recurrence, inverse, or omitted summand value is assumed as a conclusion-bearing premise.
Exact theorem in conservative defined notation
∀ F. ∀ G. ∀ k. ∀ M. ∀ r. ∀ a. ∀ b. ∀ y. ∀ z. DirichletPrefix(F,G,S k,k,M) → SignedPrefixSum(M,S k,r) → ArithAt(F,S k,a) → ArithAt(G,1,b) → SignedMul(a,b,y) → SignedAdd(r,y,z) → DirichletSum(F,G,S k,z)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Original expanded first-order 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)))))))))))))Complete tactic proof in conservative notation
All 83 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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.
Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–15
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.
- 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: DirichletEntry(F,G,S k,S k,y)SignedMul(a,b,y)Original native command in the exact edition - L17
specialize dirichlet_convolution_last_entry_iff (F) - L18
specialize dirichlet_convolution_last_entry_iff (G) - L19
specialize dirichlet_convolution_last_entry_iff (S k) - L20
specialize dirichlet_convolution_last_entry_iff (a) - L21
specialize dirichlet_convolution_last_entry_iff (b) - L22
specialize dirichlet_convolution_last_entry_iff (y) - L23
apply dirichlet_convolution_last_entry_iff - L24
intro hn - L25
apply PA1
04Use earlier factsL26–28
05Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- 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.
- L30
have hnext : ∃ K. DirichletPrefix(F,G,S k,S k,K) ∧ ArithTableEqual(M,K,S k)Definitions: DirichletPrefix(F,G,S k,S k,K)ArithTableEqual(M,K,S k)Original native command in the exact edition - L31
specialize dirichlet_convolution_prefix_append (F) - L32
specialize dirichlet_convolution_prefix_append (G) - L33
specialize dirichlet_convolution_prefix_append (S k) - L34
specialize dirichlet_convolution_prefix_append (k) - L35
specialize dirichlet_convolution_prefix_append (M) - L36
specialize dirichlet_convolution_prefix_append (y) - L37
apply dirichlet_convolution_prefix_append - L38
exact hm - L39
apply he_right
07Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hy
08Separate the logical casesL41–44
09Fix variables and assumptionsL45–45
Work with arbitrary variables or the premises of the current implication.
- L45
intro hn
10Use earlier factsL46–47
11Construct an explicit witnessL48–48
Supply the displayed value, then prove that it has the required property.
- L48
exists x
12Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
split
13Use earlier factsL50–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hnext_witness_left - L51
specialize arithmetic_signed_sum_append_transport (M) - L52
specialize arithmetic_signed_sum_append_transport (x) - L53
specialize arithmetic_signed_sum_append_transport (S k) - L54
specialize arithmetic_signed_sum_append_transport (r) - L55
specialize arithmetic_signed_sum_append_transport (y) - L56
specialize arithmetic_signed_sum_append_transport (z) - L57
apply arithmetic_signed_sum_append_transport - L58
exact hnext_witness_left_left - L59
exact hnext_witness_right
14Use earlier factsL60–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
exact hs - L61
specialize dirichlet_convolution_prefix_quotient_entry (F) - L62
specialize dirichlet_convolution_prefix_quotient_entry (G) - L63
specialize dirichlet_convolution_prefix_quotient_entry (S k) - L64
specialize dirichlet_convolution_prefix_quotient_entry (S k) - L65
specialize dirichlet_convolution_prefix_quotient_entry (x) - L66
specialize dirichlet_convolution_prefix_quotient_entry (S k) - L67
specialize dirichlet_convolution_prefix_quotient_entry (1) - L68
specialize dirichlet_convolution_prefix_quotient_entry (a) - L69
specialize dirichlet_convolution_prefix_quotient_entry (b)
15Use earlier factsL70–74
16Fix variables and assumptionsL75–75
Work with arbitrary variables or the premises of the current implication.
- L75
intro hn
17Use earlier factsL76–77
18Calculate and transport equalitiesL78–78
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L78
symm
Original defined command ledger · 83 lines
- 0001
intro F - 0002
intro G - 0003
intro k - 0004
intro M - 0005
intro r - 0006
intro a - 0007
intro b - 0008
intro y - 0009
intro z - 0010
intro hm - 0011
intro hs - 0012
intro ha - 0013
intro hb - 0014
intro hy - 0015
intro hz - 0016
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)) - 0017
specialize dirichlet_convolution_last_entry_iff (F) - 0018
specialize dirichlet_convolution_last_entry_iff (G) - 0019
specialize dirichlet_convolution_last_entry_iff (S k) - 0020
specialize dirichlet_convolution_last_entry_iff (a) - 0021
specialize dirichlet_convolution_last_entry_iff (b) - 0022
specialize dirichlet_convolution_last_entry_iff (y) - 0023
apply dirichlet_convolution_last_entry_iff - 0024
intro hn - 0025
apply PA1 - 0026
exact hn - 0027
exact ha - 0028
exact hb - 0029
cases he - 0030
have hnext : ∃ K. DirichletPrefix(F,G,S k,S k,K) ∧ ArithTableEqual(M,K,S k) - 0031
specialize dirichlet_convolution_prefix_append (F) - 0032
specialize dirichlet_convolution_prefix_append (G) - 0033
specialize dirichlet_convolution_prefix_append (S k) - 0034
specialize dirichlet_convolution_prefix_append (k) - 0035
specialize dirichlet_convolution_prefix_append (M) - 0036
specialize dirichlet_convolution_prefix_append (y) - 0037
apply dirichlet_convolution_prefix_append - 0038
exact hm - 0039
apply he_right - 0040
exact hy - 0041
cases hnext - 0042
cases hnext_witness - 0043
cases hnext_witness_left - 0044
split - 0045
intro hn - 0046
apply PA1 - 0047
exact hn - 0048
exists x - 0049
split - 0050
exact hnext_witness_left - 0051
specialize arithmetic_signed_sum_append_transport (M) - 0052
specialize arithmetic_signed_sum_append_transport (x) - 0053
specialize arithmetic_signed_sum_append_transport (S k) - 0054
specialize arithmetic_signed_sum_append_transport (r) - 0055
specialize arithmetic_signed_sum_append_transport (y) - 0056
specialize arithmetic_signed_sum_append_transport (z) - 0057
apply arithmetic_signed_sum_append_transport - 0058
exact hnext_witness_left_left - 0059
exact hnext_witness_right - 0060
exact hs - 0061
specialize dirichlet_convolution_prefix_quotient_entry (F) - 0062
specialize dirichlet_convolution_prefix_quotient_entry (G) - 0063
specialize dirichlet_convolution_prefix_quotient_entry (S k) - 0064
specialize dirichlet_convolution_prefix_quotient_entry (S k) - 0065
specialize dirichlet_convolution_prefix_quotient_entry (x) - 0066
specialize dirichlet_convolution_prefix_quotient_entry (S k) - 0067
specialize dirichlet_convolution_prefix_quotient_entry (1) - 0068
specialize dirichlet_convolution_prefix_quotient_entry (a) - 0069
specialize dirichlet_convolution_prefix_quotient_entry (b) - 0070
specialize dirichlet_convolution_prefix_quotient_entry (y) - 0071
apply dirichlet_convolution_prefix_quotient_entry - 0072
exact hnext_witness_left - 0073
specialize le_refl (S k) - 0074
apply le_refl - 0075
intro hn - 0076
apply PA1 - 0077
exact hn - 0078
symm - 0079
apply mul_one - 0080
exact ha - 0081
exact hb - 0082
exact hy - 0083
exact hz