DT0001

dirichlet_convolution_entry_first_input_transport

Transport only the first actual lookup at a preserved index; retain the witnessed quotient, second lookup and signed product, including omitted zero entries.

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

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. ∀ H. ∀ N. ∀ l. ∀ n. ∀ d. ∀ z. ArithTable(N,H)ArithTableEqual(F,H,l)Le(d,N)Lt(d,l)DirichletEntry(F,G,n,d,z)DirichletEntry(H,G,n,d,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 H N l n d z. (exists dst_positive_code_entry_valid dst_positive_scale_entry_valid dst_negative_code_entry_valid dst_negative_scale_entry_valid. (((H) = (((((dst_positive_code_entry_valid) + (dst_positive_scale_entry_valid)) * S ((dst_positive_code_entry_valid) + (dst_positive_scale_entry_valid)) + ((dst_positive_scale_entry_valid) + (dst_positive_scale_entry_valid))) + (((dst_negative_code_entry_valid) + (dst_negative_scale_entry_valid)) * S ((dst_negative_code_entry_valid) + (dst_negative_scale_entry_valid)) + ((dst_negative_scale_entry_valid) + (dst_negative_scale_entry_valid)))) * S ((((dst_positive_code_entry_valid) + (dst_positive_scale_entry_valid)) * S ((dst_positive_code_entry_valid) + (dst_positive_scale_entry_valid)) + ((dst_positive_scale_entry_valid) + (dst_positive_scale_entry_valid))) + (((dst_negative_code_entry_valid) + (dst_negative_scale_entry_valid)) * S ((dst_negative_code_entry_valid) + (dst_negative_scale_entry_valid)) + ((dst_negative_scale_entry_valid) + (dst_negative_scale_entry_valid)))) + ((((dst_negative_code_entry_valid) + (dst_negative_scale_entry_valid)) * S ((dst_negative_code_entry_valid) + (dst_negative_scale_entry_valid)) + ((dst_negative_scale_entry_valid) + (dst_negative_scale_entry_valid))) + (((dst_negative_code_entry_valid) + (dst_negative_scale_entry_valid)) * S ((dst_negative_code_entry_valid) + (dst_negative_scale_entry_valid)) + ((dst_negative_scale_entry_valid) + (dst_negative_scale_entry_valid)))))) /\ (forall dst_index_entry_valid. (exists pvs_le_gap_entry_validdomain. pvs_le_gap_entry_validdomain + (dst_index_entry_valid) = (N)) -> exists dst_positive_entry_valid dst_negative_entry_valid dst_value_entry_valid. ((((exists ff_h_pvs_entry_validentrypositive. ff_h_pvs_entry_validentrypositive + S (dst_positive_entry_valid) = S ((S (dst_index_entry_valid)) * dst_positive_scale_entry_valid)) /\ exists ff_q_pvs_entry_validentrypositive. dst_positive_code_entry_valid = ff_q_pvs_entry_validentrypositive * S ((S (dst_index_entry_valid)) * dst_positive_scale_entry_valid) + (dst_positive_entry_valid))) /\ (((((exists ff_h_pvs_entry_validentrynegative. ff_h_pvs_entry_validentrynegative + S (dst_negative_entry_valid) = S ((S (dst_index_entry_valid)) * dst_negative_scale_entry_valid)) /\ exists ff_q_pvs_entry_validentrynegative. dst_negative_code_entry_valid = ff_q_pvs_entry_validentrynegative * S ((S (dst_index_entry_valid)) * dst_negative_scale_entry_valid) + (dst_negative_entry_valid))) /\ (exists ge_balance_positive_entry_validentryvalue ge_balance_negative_entry_validentryvalue. (((((dst_value_entry_valid) = 2 * (ge_balance_positive_entry_validentryvalue) /\ (ge_balance_negative_entry_validentryvalue) = 0) \/ exists ge_signed_half_entry_validentryvaluedecode. (((dst_value_entry_valid) = 2 * ge_signed_half_entry_validentryvaluedecode + 1 /\ (ge_balance_positive_entry_validentryvalue) = 0) /\ (ge_balance_negative_entry_validentryvalue) = S ge_signed_half_entry_validentryvaluedecode))) /\ ((dst_positive_entry_valid) + ge_balance_negative_entry_validentryvalue = (dst_negative_entry_valid) + ge_balance_positive_entry_validentryvalue))))))))) -> (forall dst_index_entry_equal dst_first_entry_equal dst_second_entry_equal. (exists pvs_gap_entry_equalbound. pvs_gap_entry_equalbound + S (dst_index_entry_equal) = (l)) -> (exists dst_positive_code_entry_equalfirst dst_positive_scale_entry_equalfirst dst_negative_code_entry_equalfirst dst_negative_scale_entry_equalfirst dst_positive_entry_equalfirst dst_negative_entry_equalfirst. (((F) = (((((dst_positive_code_entry_equalfirst) + (dst_positive_scale_entry_equalfirst)) * S ((dst_positive_code_entry_equalfirst) + (dst_positive_scale_entry_equalfirst)) + ((dst_positive_scale_entry_equalfirst) + (dst_positive_scale_entry_equalfirst))) + (((dst_negative_code_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)) * S ((dst_negative_code_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)) + ((dst_negative_scale_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)))) * S ((((dst_positive_code_entry_equalfirst) + (dst_positive_scale_entry_equalfirst)) * S ((dst_positive_code_entry_equalfirst) + (dst_positive_scale_entry_equalfirst)) + ((dst_positive_scale_entry_equalfirst) + (dst_positive_scale_entry_equalfirst))) + (((dst_negative_code_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)) * S ((dst_negative_code_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)) + ((dst_negative_scale_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)))) + ((((dst_negative_code_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)) * S ((dst_negative_code_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)) + ((dst_negative_scale_entry_equalfirst) + (dst_negative_scale_entry_equalfirst))) + (((dst_negative_code_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)) * S ((dst_negative_code_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)) + ((dst_negative_scale_entry_equalfirst) + (dst_negative_scale_entry_equalfirst)))))) /\ (((((exists ff_h_pvs_entry_equalfirstpositive. ff_h_pvs_entry_equalfirstpositive + S (dst_positive_entry_equalfirst) = S ((S (dst_index_entry_equal)) * dst_positive_scale_entry_equalfirst)) /\ exists ff_q_pvs_entry_equalfirstpositive. dst_positive_code_entry_equalfirst = ff_q_pvs_entry_equalfirstpositive * S ((S (dst_index_entry_equal)) * dst_positive_scale_entry_equalfirst) + (dst_positive_entry_equalfirst))) /\ (((((exists ff_h_pvs_entry_equalfirstnegative. ff_h_pvs_entry_equalfirstnegative + S (dst_negative_entry_equalfirst) = S ((S (dst_index_entry_equal)) * dst_negative_scale_entry_equalfirst)) /\ exists ff_q_pvs_entry_equalfirstnegative. dst_negative_code_entry_equalfirst = ff_q_pvs_entry_equalfirstnegative * S ((S (dst_index_entry_equal)) * dst_negative_scale_entry_equalfirst) + (dst_negative_entry_equalfirst))) /\ (exists ge_balance_positive_entry_equalfirstvalue ge_balance_negative_entry_equalfirstvalue. (((((dst_first_entry_equal) = 2 * (ge_balance_positive_entry_equalfirstvalue) /\ (ge_balance_negative_entry_equalfirstvalue) = 0) \/ exists ge_signed_half_entry_equalfirstvaluedecode. (((dst_first_entry_equal) = 2 * ge_signed_half_entry_equalfirstvaluedecode + 1 /\ (ge_balance_positive_entry_equalfirstvalue) = 0) /\ (ge_balance_negative_entry_equalfirstvalue) = S ge_signed_half_entry_equalfirstvaluedecode))) /\ ((dst_positive_entry_equalfirst) + ge_balance_negative_entry_equalfirstvalue = (dst_negative_entry_equalfirst) + ge_balance_positive_entry_equalfirstvalue))))))))) -> (exists dst_positive_code_entry_equalsecond dst_positive_scale_entry_equalsecond dst_negative_code_entry_equalsecond dst_negative_scale_entry_equalsecond dst_positive_entry_equalsecond dst_negative_entry_equalsecond. (((H) = (((((dst_positive_code_entry_equalsecond) + (dst_positive_scale_entry_equalsecond)) * S ((dst_positive_code_entry_equalsecond) + (dst_positive_scale_entry_equalsecond)) + ((dst_positive_scale_entry_equalsecond) + (dst_positive_scale_entry_equalsecond))) + (((dst_negative_code_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)) * S ((dst_negative_code_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)) + ((dst_negative_scale_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)))) * S ((((dst_positive_code_entry_equalsecond) + (dst_positive_scale_entry_equalsecond)) * S ((dst_positive_code_entry_equalsecond) + (dst_positive_scale_entry_equalsecond)) + ((dst_positive_scale_entry_equalsecond) + (dst_positive_scale_entry_equalsecond))) + (((dst_negative_code_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)) * S ((dst_negative_code_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)) + ((dst_negative_scale_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)))) + ((((dst_negative_code_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)) * S ((dst_negative_code_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)) + ((dst_negative_scale_entry_equalsecond) + (dst_negative_scale_entry_equalsecond))) + (((dst_negative_code_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)) * S ((dst_negative_code_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)) + ((dst_negative_scale_entry_equalsecond) + (dst_negative_scale_entry_equalsecond)))))) /\ (((((exists ff_h_pvs_entry_equalsecondpositive. ff_h_pvs_entry_equalsecondpositive + S (dst_positive_entry_equalsecond) = S ((S (dst_index_entry_equal)) * dst_positive_scale_entry_equalsecond)) /\ exists ff_q_pvs_entry_equalsecondpositive. dst_positive_code_entry_equalsecond = ff_q_pvs_entry_equalsecondpositive * S ((S (dst_index_entry_equal)) * dst_positive_scale_entry_equalsecond) + (dst_positive_entry_equalsecond))) /\ (((((exists ff_h_pvs_entry_equalsecondnegative. ff_h_pvs_entry_equalsecondnegative + S (dst_negative_entry_equalsecond) = S ((S (dst_index_entry_equal)) * dst_negative_scale_entry_equalsecond)) /\ exists ff_q_pvs_entry_equalsecondnegative. dst_negative_code_entry_equalsecond = ff_q_pvs_entry_equalsecondnegative * S ((S (dst_index_entry_equal)) * dst_negative_scale_entry_equalsecond) + (dst_negative_entry_equalsecond))) /\ (exists ge_balance_positive_entry_equalsecondvalue ge_balance_negative_entry_equalsecondvalue. (((((dst_second_entry_equal) = 2 * (ge_balance_positive_entry_equalsecondvalue) /\ (ge_balance_negative_entry_equalsecondvalue) = 0) \/ exists ge_signed_half_entry_equalsecondvaluedecode. (((dst_second_entry_equal) = 2 * ge_signed_half_entry_equalsecondvaluedecode + 1 /\ (ge_balance_positive_entry_equalsecondvalue) = 0) /\ (ge_balance_negative_entry_equalsecondvalue) = S ge_signed_half_entry_equalsecondvaluedecode))) /\ ((dst_positive_entry_equalsecond) + ge_balance_negative_entry_equalsecondvalue = (dst_negative_entry_equalsecond) + ge_balance_positive_entry_equalsecondvalue))))))))) -> dst_first_entry_equal = dst_second_entry_equal) -> (exists pvs_le_gap_entry_domain. pvs_le_gap_entry_domain + (d) = (N)) -> (exists pvs_gap_entry_preserved. pvs_gap_entry_preserved + S (d) = (l)) -> ((((~((d)=0)) /\ (exists dc_quotient_entry_source dc_left_entry_source dc_right_entry_source. (((n)=(d)*dc_quotient_entry_source) /\ (((exists dst_positive_code_entry_sourceleft dst_positive_scale_entry_sourceleft dst_negative_code_entry_sourceleft dst_negative_scale_entry_sourceleft dst_positive_entry_sourceleft dst_negative_entry_sourceleft. (((F) = (((((dst_positive_code_entry_sourceleft) + (dst_positive_scale_entry_sourceleft)) * S ((dst_positive_code_entry_sourceleft) + (dst_positive_scale_entry_sourceleft)) + ((dst_positive_scale_entry_sourceleft) + (dst_positive_scale_entry_sourceleft))) + (((dst_negative_code_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)) * S ((dst_negative_code_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)) + ((dst_negative_scale_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)))) * S ((((dst_positive_code_entry_sourceleft) + (dst_positive_scale_entry_sourceleft)) * S ((dst_positive_code_entry_sourceleft) + (dst_positive_scale_entry_sourceleft)) + ((dst_positive_scale_entry_sourceleft) + (dst_positive_scale_entry_sourceleft))) + (((dst_negative_code_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)) * S ((dst_negative_code_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)) + ((dst_negative_scale_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)))) + ((((dst_negative_code_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)) * S ((dst_negative_code_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)) + ((dst_negative_scale_entry_sourceleft) + (dst_negative_scale_entry_sourceleft))) + (((dst_negative_code_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)) * S ((dst_negative_code_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)) + ((dst_negative_scale_entry_sourceleft) + (dst_negative_scale_entry_sourceleft)))))) /\ (((((exists ff_h_pvs_entry_sourceleftpositive. ff_h_pvs_entry_sourceleftpositive + S (dst_positive_entry_sourceleft) = S ((S (d)) * dst_positive_scale_entry_sourceleft)) /\ exists ff_q_pvs_entry_sourceleftpositive. dst_positive_code_entry_sourceleft = ff_q_pvs_entry_sourceleftpositive * S ((S (d)) * dst_positive_scale_entry_sourceleft) + (dst_positive_entry_sourceleft))) /\ (((((exists ff_h_pvs_entry_sourceleftnegative. ff_h_pvs_entry_sourceleftnegative + S (dst_negative_entry_sourceleft) = S ((S (d)) * dst_negative_scale_entry_sourceleft)) /\ exists ff_q_pvs_entry_sourceleftnegative. dst_negative_code_entry_sourceleft = ff_q_pvs_entry_sourceleftnegative * S ((S (d)) * dst_negative_scale_entry_sourceleft) + (dst_negative_entry_sourceleft))) /\ (exists ge_balance_positive_entry_sourceleftvalue ge_balance_negative_entry_sourceleftvalue. (((((dc_left_entry_source) = 2 * (ge_balance_positive_entry_sourceleftvalue) /\ (ge_balance_negative_entry_sourceleftvalue) = 0) \/ exists ge_signed_half_entry_sourceleftvaluedecode. (((dc_left_entry_source) = 2 * ge_signed_half_entry_sourceleftvaluedecode + 1 /\ (ge_balance_positive_entry_sourceleftvalue) = 0) /\ (ge_balance_negative_entry_sourceleftvalue) = S ge_signed_half_entry_sourceleftvaluedecode))) /\ ((dst_positive_entry_sourceleft) + ge_balance_negative_entry_sourceleftvalue = (dst_negative_entry_sourceleft) + ge_balance_positive_entry_sourceleftvalue))))))))) /\ (((exists dst_positive_code_entry_sourceright dst_positive_scale_entry_sourceright dst_negative_code_entry_sourceright dst_negative_scale_entry_sourceright dst_positive_entry_sourceright dst_negative_entry_sourceright. (((G) = (((((dst_positive_code_entry_sourceright) + (dst_positive_scale_entry_sourceright)) * S ((dst_positive_code_entry_sourceright) + (dst_positive_scale_entry_sourceright)) + ((dst_positive_scale_entry_sourceright) + (dst_positive_scale_entry_sourceright))) + (((dst_negative_code_entry_sourceright) + (dst_negative_scale_entry_sourceright)) * S ((dst_negative_code_entry_sourceright) + (dst_negative_scale_entry_sourceright)) + ((dst_negative_scale_entry_sourceright) + (dst_negative_scale_entry_sourceright)))) * S ((((dst_positive_code_entry_sourceright) + (dst_positive_scale_entry_sourceright)) * S ((dst_positive_code_entry_sourceright) + (dst_positive_scale_entry_sourceright)) + ((dst_positive_scale_entry_sourceright) + (dst_positive_scale_entry_sourceright))) + (((dst_negative_code_entry_sourceright) + (dst_negative_scale_entry_sourceright)) * S ((dst_negative_code_entry_sourceright) + (dst_negative_scale_entry_sourceright)) + ((dst_negative_scale_entry_sourceright) + (dst_negative_scale_entry_sourceright)))) + ((((dst_negative_code_entry_sourceright) + (dst_negative_scale_entry_sourceright)) * S ((dst_negative_code_entry_sourceright) + (dst_negative_scale_entry_sourceright)) + ((dst_negative_scale_entry_sourceright) + (dst_negative_scale_entry_sourceright))) + (((dst_negative_code_entry_sourceright) + (dst_negative_scale_entry_sourceright)) * S ((dst_negative_code_entry_sourceright) + (dst_negative_scale_entry_sourceright)) + ((dst_negative_scale_entry_sourceright) + (dst_negative_scale_entry_sourceright)))))) /\ (((((exists ff_h_pvs_entry_sourcerightpositive. ff_h_pvs_entry_sourcerightpositive + S (dst_positive_entry_sourceright) = S ((S (dc_quotient_entry_source)) * dst_positive_scale_entry_sourceright)) /\ exists ff_q_pvs_entry_sourcerightpositive. dst_positive_code_entry_sourceright = ff_q_pvs_entry_sourcerightpositive * S ((S (dc_quotient_entry_source)) * dst_positive_scale_entry_sourceright) + (dst_positive_entry_sourceright))) /\ (((((exists ff_h_pvs_entry_sourcerightnegative. ff_h_pvs_entry_sourcerightnegative + S (dst_negative_entry_sourceright) = S ((S (dc_quotient_entry_source)) * dst_negative_scale_entry_sourceright)) /\ exists ff_q_pvs_entry_sourcerightnegative. dst_negative_code_entry_sourceright = ff_q_pvs_entry_sourcerightnegative * S ((S (dc_quotient_entry_source)) * dst_negative_scale_entry_sourceright) + (dst_negative_entry_sourceright))) /\ (exists ge_balance_positive_entry_sourcerightvalue ge_balance_negative_entry_sourcerightvalue. (((((dc_right_entry_source) = 2 * (ge_balance_positive_entry_sourcerightvalue) /\ (ge_balance_negative_entry_sourcerightvalue) = 0) \/ exists ge_signed_half_entry_sourcerightvaluedecode. (((dc_right_entry_source) = 2 * ge_signed_half_entry_sourcerightvaluedecode + 1 /\ (ge_balance_positive_entry_sourcerightvalue) = 0) /\ (ge_balance_negative_entry_sourcerightvalue) = S ge_signed_half_entry_sourcerightvaluedecode))) /\ ((dst_positive_entry_sourceright) + ge_balance_negative_entry_sourcerightvalue = (dst_negative_entry_sourceright) + ge_balance_positive_entry_sourcerightvalue))))))))) /\ (exists sto_ap_entry_sourceproduct sto_an_entry_sourceproduct sto_bp_entry_sourceproduct sto_bn_entry_sourceproduct sto_cp_entry_sourceproduct sto_cn_entry_sourceproduct. (((((dc_left_entry_source) = 2 * (sto_ap_entry_sourceproduct) /\ (sto_an_entry_sourceproduct) = 0) \/ exists ge_signed_half_entry_sourceproductleft. (((dc_left_entry_source) = 2 * ge_signed_half_entry_sourceproductleft + 1 /\ (sto_ap_entry_sourceproduct) = 0) /\ (sto_an_entry_sourceproduct) = S ge_signed_half_entry_sourceproductleft))) /\ ((((((dc_right_entry_source) = 2 * (sto_bp_entry_sourceproduct) /\ (sto_bn_entry_sourceproduct) = 0) \/ exists ge_signed_half_entry_sourceproductright. (((dc_right_entry_source) = 2 * ge_signed_half_entry_sourceproductright + 1 /\ (sto_bp_entry_sourceproduct) = 0) /\ (sto_bn_entry_sourceproduct) = S ge_signed_half_entry_sourceproductright))) /\ ((((((z) = 2 * (sto_cp_entry_sourceproduct) /\ (sto_cn_entry_sourceproduct) = 0) \/ exists ge_signed_half_entry_sourceproductoutput. (((z) = 2 * ge_signed_half_entry_sourceproductoutput + 1 /\ (sto_cp_entry_sourceproduct) = 0) /\ (sto_cn_entry_sourceproduct) = S ge_signed_half_entry_sourceproductoutput))) /\ ((sto_ap_entry_sourceproduct * sto_bp_entry_sourceproduct + sto_an_entry_sourceproduct * sto_bn_entry_sourceproduct) + sto_cn_entry_sourceproduct = (sto_ap_entry_sourceproduct * sto_bn_entry_sourceproduct + sto_an_entry_sourceproduct * sto_bp_entry_sourceproduct) + sto_cp_entry_sourceproduct))))))))))))))) \/ ((((d)=0 \/ ~(exists pvs_factor_entry_sourcenondivisor. (n) = (d) * pvs_factor_entry_sourcenondivisor)) /\ ((z)=0)))) -> ((((~((d)=0)) /\ (exists dc_quotient_entry_result dc_left_entry_result dc_right_entry_result. (((n)=(d)*dc_quotient_entry_result) /\ (((exists dst_positive_code_entry_resultleft dst_positive_scale_entry_resultleft dst_negative_code_entry_resultleft dst_negative_scale_entry_resultleft dst_positive_entry_resultleft dst_negative_entry_resultleft. (((H) = (((((dst_positive_code_entry_resultleft) + (dst_positive_scale_entry_resultleft)) * S ((dst_positive_code_entry_resultleft) + (dst_positive_scale_entry_resultleft)) + ((dst_positive_scale_entry_resultleft) + (dst_positive_scale_entry_resultleft))) + (((dst_negative_code_entry_resultleft) + (dst_negative_scale_entry_resultleft)) * S ((dst_negative_code_entry_resultleft) + (dst_negative_scale_entry_resultleft)) + ((dst_negative_scale_entry_resultleft) + (dst_negative_scale_entry_resultleft)))) * S ((((dst_positive_code_entry_resultleft) + (dst_positive_scale_entry_resultleft)) * S ((dst_positive_code_entry_resultleft) + (dst_positive_scale_entry_resultleft)) + ((dst_positive_scale_entry_resultleft) + (dst_positive_scale_entry_resultleft))) + (((dst_negative_code_entry_resultleft) + (dst_negative_scale_entry_resultleft)) * S ((dst_negative_code_entry_resultleft) + (dst_negative_scale_entry_resultleft)) + ((dst_negative_scale_entry_resultleft) + (dst_negative_scale_entry_resultleft)))) + ((((dst_negative_code_entry_resultleft) + (dst_negative_scale_entry_resultleft)) * S ((dst_negative_code_entry_resultleft) + (dst_negative_scale_entry_resultleft)) + ((dst_negative_scale_entry_resultleft) + (dst_negative_scale_entry_resultleft))) + (((dst_negative_code_entry_resultleft) + (dst_negative_scale_entry_resultleft)) * S ((dst_negative_code_entry_resultleft) + (dst_negative_scale_entry_resultleft)) + ((dst_negative_scale_entry_resultleft) + (dst_negative_scale_entry_resultleft)))))) /\ (((((exists ff_h_pvs_entry_resultleftpositive. ff_h_pvs_entry_resultleftpositive + S (dst_positive_entry_resultleft) = S ((S (d)) * dst_positive_scale_entry_resultleft)) /\ exists ff_q_pvs_entry_resultleftpositive. dst_positive_code_entry_resultleft = ff_q_pvs_entry_resultleftpositive * S ((S (d)) * dst_positive_scale_entry_resultleft) + (dst_positive_entry_resultleft))) /\ (((((exists ff_h_pvs_entry_resultleftnegative. ff_h_pvs_entry_resultleftnegative + S (dst_negative_entry_resultleft) = S ((S (d)) * dst_negative_scale_entry_resultleft)) /\ exists ff_q_pvs_entry_resultleftnegative. dst_negative_code_entry_resultleft = ff_q_pvs_entry_resultleftnegative * S ((S (d)) * dst_negative_scale_entry_resultleft) + (dst_negative_entry_resultleft))) /\ (exists ge_balance_positive_entry_resultleftvalue ge_balance_negative_entry_resultleftvalue. (((((dc_left_entry_result) = 2 * (ge_balance_positive_entry_resultleftvalue) /\ (ge_balance_negative_entry_resultleftvalue) = 0) \/ exists ge_signed_half_entry_resultleftvaluedecode. (((dc_left_entry_result) = 2 * ge_signed_half_entry_resultleftvaluedecode + 1 /\ (ge_balance_positive_entry_resultleftvalue) = 0) /\ (ge_balance_negative_entry_resultleftvalue) = S ge_signed_half_entry_resultleftvaluedecode))) /\ ((dst_positive_entry_resultleft) + ge_balance_negative_entry_resultleftvalue = (dst_negative_entry_resultleft) + ge_balance_positive_entry_resultleftvalue))))))))) /\ (((exists dst_positive_code_entry_resultright dst_positive_scale_entry_resultright dst_negative_code_entry_resultright dst_negative_scale_entry_resultright dst_positive_entry_resultright dst_negative_entry_resultright. (((G) = (((((dst_positive_code_entry_resultright) + (dst_positive_scale_entry_resultright)) * S ((dst_positive_code_entry_resultright) + (dst_positive_scale_entry_resultright)) + ((dst_positive_scale_entry_resultright) + (dst_positive_scale_entry_resultright))) + (((dst_negative_code_entry_resultright) + (dst_negative_scale_entry_resultright)) * S ((dst_negative_code_entry_resultright) + (dst_negative_scale_entry_resultright)) + ((dst_negative_scale_entry_resultright) + (dst_negative_scale_entry_resultright)))) * S ((((dst_positive_code_entry_resultright) + (dst_positive_scale_entry_resultright)) * S ((dst_positive_code_entry_resultright) + (dst_positive_scale_entry_resultright)) + ((dst_positive_scale_entry_resultright) + (dst_positive_scale_entry_resultright))) + (((dst_negative_code_entry_resultright) + (dst_negative_scale_entry_resultright)) * S ((dst_negative_code_entry_resultright) + (dst_negative_scale_entry_resultright)) + ((dst_negative_scale_entry_resultright) + (dst_negative_scale_entry_resultright)))) + ((((dst_negative_code_entry_resultright) + (dst_negative_scale_entry_resultright)) * S ((dst_negative_code_entry_resultright) + (dst_negative_scale_entry_resultright)) + ((dst_negative_scale_entry_resultright) + (dst_negative_scale_entry_resultright))) + (((dst_negative_code_entry_resultright) + (dst_negative_scale_entry_resultright)) * S ((dst_negative_code_entry_resultright) + (dst_negative_scale_entry_resultright)) + ((dst_negative_scale_entry_resultright) + (dst_negative_scale_entry_resultright)))))) /\ (((((exists ff_h_pvs_entry_resultrightpositive. ff_h_pvs_entry_resultrightpositive + S (dst_positive_entry_resultright) = S ((S (dc_quotient_entry_result)) * dst_positive_scale_entry_resultright)) /\ exists ff_q_pvs_entry_resultrightpositive. dst_positive_code_entry_resultright = ff_q_pvs_entry_resultrightpositive * S ((S (dc_quotient_entry_result)) * dst_positive_scale_entry_resultright) + (dst_positive_entry_resultright))) /\ (((((exists ff_h_pvs_entry_resultrightnegative. ff_h_pvs_entry_resultrightnegative + S (dst_negative_entry_resultright) = S ((S (dc_quotient_entry_result)) * dst_negative_scale_entry_resultright)) /\ exists ff_q_pvs_entry_resultrightnegative. dst_negative_code_entry_resultright = ff_q_pvs_entry_resultrightnegative * S ((S (dc_quotient_entry_result)) * dst_negative_scale_entry_resultright) + (dst_negative_entry_resultright))) /\ (exists ge_balance_positive_entry_resultrightvalue ge_balance_negative_entry_resultrightvalue. (((((dc_right_entry_result) = 2 * (ge_balance_positive_entry_resultrightvalue) /\ (ge_balance_negative_entry_resultrightvalue) = 0) \/ exists ge_signed_half_entry_resultrightvaluedecode. (((dc_right_entry_result) = 2 * ge_signed_half_entry_resultrightvaluedecode + 1 /\ (ge_balance_positive_entry_resultrightvalue) = 0) /\ (ge_balance_negative_entry_resultrightvalue) = S ge_signed_half_entry_resultrightvaluedecode))) /\ ((dst_positive_entry_resultright) + ge_balance_negative_entry_resultrightvalue = (dst_negative_entry_resultright) + ge_balance_positive_entry_resultrightvalue))))))))) /\ (exists sto_ap_entry_resultproduct sto_an_entry_resultproduct sto_bp_entry_resultproduct sto_bn_entry_resultproduct sto_cp_entry_resultproduct sto_cn_entry_resultproduct. (((((dc_left_entry_result) = 2 * (sto_ap_entry_resultproduct) /\ (sto_an_entry_resultproduct) = 0) \/ exists ge_signed_half_entry_resultproductleft. (((dc_left_entry_result) = 2 * ge_signed_half_entry_resultproductleft + 1 /\ (sto_ap_entry_resultproduct) = 0) /\ (sto_an_entry_resultproduct) = S ge_signed_half_entry_resultproductleft))) /\ ((((((dc_right_entry_result) = 2 * (sto_bp_entry_resultproduct) /\ (sto_bn_entry_resultproduct) = 0) \/ exists ge_signed_half_entry_resultproductright. (((dc_right_entry_result) = 2 * ge_signed_half_entry_resultproductright + 1 /\ (sto_bp_entry_resultproduct) = 0) /\ (sto_bn_entry_resultproduct) = S ge_signed_half_entry_resultproductright))) /\ ((((((z) = 2 * (sto_cp_entry_resultproduct) /\ (sto_cn_entry_resultproduct) = 0) \/ exists ge_signed_half_entry_resultproductoutput. (((z) = 2 * ge_signed_half_entry_resultproductoutput + 1 /\ (sto_cp_entry_resultproduct) = 0) /\ (sto_cn_entry_resultproduct) = S ge_signed_half_entry_resultproductoutput))) /\ ((sto_ap_entry_resultproduct * sto_bp_entry_resultproduct + sto_an_entry_resultproduct * sto_bn_entry_resultproduct) + sto_cn_entry_resultproduct = (sto_ap_entry_resultproduct * sto_bn_entry_resultproduct + sto_an_entry_resultproduct * sto_bp_entry_resultproduct) + sto_cp_entry_resultproduct))))))))))))))) \/ ((((d)=0 \/ ~(exists pvs_factor_entry_resultnondivisor. (n) = (d) * pvs_factor_entry_resultnondivisor)) /\ ((z)=0))))

Complete tactic proof in conservative notation

All 48 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

48 script commands · 8 reading checkpoints · 0 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.

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 H
  4. L4
    intro N
  5. L5
    intro l
  6. L6
    intro n
  7. L7
    intro d
  8. L8
    intro z
  9. L9
    intro hH
  10. L10
    intro he
02Fix variables and assumptionsL11–13

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

  1. L11
    intro hdN
  2. L12
    intro hdl
  3. L13
    intro hz
03Separate the logical casesL14–21

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

  1. L14
    cases hz
  2. L15
    cases hz_left
  3. L16
    cases hz_left_right
  4. L17
    cases hz_left_right_witness
  5. L18
    cases hz_left_right_witness_witness
  6. L19
    cases hz_left_right_witness_witness_witness
  7. L20
    cases hz_left_right_witness_witness_witness_right
  8. L21
    cases hz_left_right_witness_witness_witness_right_right
04Use earlier factsL22–31

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

  1. L22
    specialize dirichlet_convolution_entry_from_quotient (H)
  2. L23
    specialize dirichlet_convolution_entry_from_quotient (G)
  3. L24
    specialize dirichlet_convolution_entry_from_quotient (n)
  4. L25
    specialize dirichlet_convolution_entry_from_quotient (d)
  5. L26
    specialize dirichlet_convolution_entry_from_quotient (x)
  6. L27
    specialize dirichlet_convolution_entry_from_quotient (x1)
  7. L28
    specialize dirichlet_convolution_entry_from_quotient (x2)
  8. L29
    specialize dirichlet_convolution_entry_from_quotient (z)
  9. L30
    apply dirichlet_convolution_entry_from_quotient
  10. L31
    exact hz_left_left
05Use earlier factsL32–41

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

  1. L32
    exact hz_left_right_witness_witness_witness_left
  2. L33
    specialize arithmetic_signed_table_equal_entry_transport (N)
  3. L34
    specialize arithmetic_signed_table_equal_entry_transport (F)
  4. L35
    specialize arithmetic_signed_table_equal_entry_transport (H)
  5. L36
    specialize arithmetic_signed_table_equal_entry_transport (l)
  6. L37
    specialize arithmetic_signed_table_equal_entry_transport (d)
  7. L38
    specialize arithmetic_signed_table_equal_entry_transport (x1)
  8. L39
    apply arithmetic_signed_table_equal_entry_transport
  9. L40
    exact hH
  10. L41
    exact he
06Use earlier factsL42–46

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

  1. L42
    exact hdN
  2. L43
    exact hdl
  3. L44
    exact hz_left_right_witness_witness_witness_right_left
  4. L45
    exact hz_left_right_witness_witness_witness_right_right_left
  5. L46
    exact hz_left_right_witness_witness_witness_right_right_right
07Separate the logical casesL47–47

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

  1. L47
    right
08Use earlier factsL48–48

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

  1. L48
    exact hz_right

Library-wide reading audit

Original defined command ledger · 48 lines
  1. 0001intro F
  2. 0002intro G
  3. 0003intro H
  4. 0004intro N
  5. 0005intro l
  6. 0006intro n
  7. 0007intro d
  8. 0008intro z
  9. 0009intro hH
  10. 0010intro he
  11. 0011intro hdN
  12. 0012intro hdl
  13. 0013intro hz
  14. 0014cases hz
  15. 0015cases hz_left
  16. 0016cases hz_left_right
  17. 0017cases hz_left_right_witness
  18. 0018cases hz_left_right_witness_witness
  19. 0019cases hz_left_right_witness_witness_witness
  20. 0020cases hz_left_right_witness_witness_witness_right
  21. 0021cases hz_left_right_witness_witness_witness_right_right
  22. 0022specialize dirichlet_convolution_entry_from_quotient (H)
  23. 0023specialize dirichlet_convolution_entry_from_quotient (G)
  24. 0024specialize dirichlet_convolution_entry_from_quotient (n)
  25. 0025specialize dirichlet_convolution_entry_from_quotient (d)
  26. 0026specialize dirichlet_convolution_entry_from_quotient (x)
  27. 0027specialize dirichlet_convolution_entry_from_quotient (x1)
  28. 0028specialize dirichlet_convolution_entry_from_quotient (x2)
  29. 0029specialize dirichlet_convolution_entry_from_quotient (z)
  30. 0030apply dirichlet_convolution_entry_from_quotient
  31. 0031exact hz_left_left
  32. 0032exact hz_left_right_witness_witness_witness_left
  33. 0033specialize arithmetic_signed_table_equal_entry_transport (N)
  34. 0034specialize arithmetic_signed_table_equal_entry_transport (F)
  35. 0035specialize arithmetic_signed_table_equal_entry_transport (H)
  36. 0036specialize arithmetic_signed_table_equal_entry_transport (l)
  37. 0037specialize arithmetic_signed_table_equal_entry_transport (d)
  38. 0038specialize arithmetic_signed_table_equal_entry_transport (x1)
  39. 0039apply arithmetic_signed_table_equal_entry_transport
  40. 0040exact hH
  41. 0041exact he
  42. 0042exact hdN
  43. 0043exact hdl
  44. 0044exact hz_left_right_witness_witness_witness_right_left
  45. 0045exact hz_left_right_witness_witness_witness_right_right_left
  46. 0046exact hz_left_right_witness_witness_witness_right_right_right
  47. 0047right
  48. 0048exact hz_right