Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Exact expanded first-order arithmetic statement
forall F G n d. (exists dst_positive_code_choice_left_table dst_positive_scale_choice_left_table dst_negative_code_choice_left_table dst_negative_scale_choice_left_table. (((F) = (((((dst_positive_code_choice_left_table) + (dst_positive_scale_choice_left_table)) * S ((dst_positive_code_choice_left_table) + (dst_positive_scale_choice_left_table)) + ((dst_positive_scale_choice_left_table) + (dst_positive_scale_choice_left_table))) + (((dst_negative_code_choice_left_table) + (dst_negative_scale_choice_left_table)) * S ((dst_negative_code_choice_left_table) + (dst_negative_scale_choice_left_table)) + ((dst_negative_scale_choice_left_table) + (dst_negative_scale_choice_left_table)))) * S ((((dst_positive_code_choice_left_table) + (dst_positive_scale_choice_left_table)) * S ((dst_positive_code_choice_left_table) + (dst_positive_scale_choice_left_table)) + ((dst_positive_scale_choice_left_table) + (dst_positive_scale_choice_left_table))) + (((dst_negative_code_choice_left_table) + (dst_negative_scale_choice_left_table)) * S ((dst_negative_code_choice_left_table) + (dst_negative_scale_choice_left_table)) + ((dst_negative_scale_choice_left_table) + (dst_negative_scale_choice_left_table)))) + ((((dst_negative_code_choice_left_table) + (dst_negative_scale_choice_left_table)) * S ((dst_negative_code_choice_left_table) + (dst_negative_scale_choice_left_table)) + ((dst_negative_scale_choice_left_table) + (dst_negative_scale_choice_left_table))) + (((dst_negative_code_choice_left_table) + (dst_negative_scale_choice_left_table)) * S ((dst_negative_code_choice_left_table) + (dst_negative_scale_choice_left_table)) + ((dst_negative_scale_choice_left_table) + (dst_negative_scale_choice_left_table)))))) /\ (forall dst_index_choice_left_table. (exists pvs_le_gap_choice_left_tabledomain. pvs_le_gap_choice_left_tabledomain + (dst_index_choice_left_table) = (0)) -> exists dst_positive_choice_left_table dst_negative_choice_left_table dst_value_choice_left_table. ((((exists ff_h_pvs_choice_left_tableentrypositive. ff_h_pvs_choice_left_tableentrypositive + S (dst_positive_choice_left_table) = S ((S (dst_index_choice_left_table)) * dst_positive_scale_choice_left_table)) /\ exists ff_q_pvs_choice_left_tableentrypositive. dst_positive_code_choice_left_table = ff_q_pvs_choice_left_tableentrypositive * S ((S (dst_index_choice_left_table)) * dst_positive_scale_choice_left_table) + (dst_positive_choice_left_table))) /\ (((((exists ff_h_pvs_choice_left_tableentrynegative. ff_h_pvs_choice_left_tableentrynegative + S (dst_negative_choice_left_table) = S ((S (dst_index_choice_left_table)) * dst_negative_scale_choice_left_table)) /\ exists ff_q_pvs_choice_left_tableentrynegative. dst_negative_code_choice_left_table = ff_q_pvs_choice_left_tableentrynegative * S ((S (dst_index_choice_left_table)) * dst_negative_scale_choice_left_table) + (dst_negative_choice_left_table))) /\ (exists ge_balance_positive_choice_left_tableentryvalue ge_balance_negative_choice_left_tableentryvalue. (((((dst_value_choice_left_table) = 2 * (ge_balance_positive_choice_left_tableentryvalue) /\ (ge_balance_negative_choice_left_tableentryvalue) = 0) \/ exists ge_signed_half_choice_left_tableentryvaluedecode. (((dst_value_choice_left_table) = 2 * ge_signed_half_choice_left_tableentryvaluedecode + 1 /\ (ge_balance_positive_choice_left_tableentryvalue) = 0) /\ (ge_balance_negative_choice_left_tableentryvalue) = S ge_signed_half_choice_left_tableentryvaluedecode))) /\ ((dst_positive_choice_left_table) + ge_balance_negative_choice_left_tableentryvalue = (dst_negative_choice_left_table) + ge_balance_positive_choice_left_tableentryvalue))))))))) -> (exists dst_positive_code_choice_right_table dst_positive_scale_choice_right_table dst_negative_code_choice_right_table dst_negative_scale_choice_right_table. (((G) = (((((dst_positive_code_choice_right_table) + (dst_positive_scale_choice_right_table)) * S ((dst_positive_code_choice_right_table) + (dst_positive_scale_choice_right_table)) + ((dst_positive_scale_choice_right_table) + (dst_positive_scale_choice_right_table))) + (((dst_negative_code_choice_right_table) + (dst_negative_scale_choice_right_table)) * S ((dst_negative_code_choice_right_table) + (dst_negative_scale_choice_right_table)) + ((dst_negative_scale_choice_right_table) + (dst_negative_scale_choice_right_table)))) * S ((((dst_positive_code_choice_right_table) + (dst_positive_scale_choice_right_table)) * S ((dst_positive_code_choice_right_table) + (dst_positive_scale_choice_right_table)) + ((dst_positive_scale_choice_right_table) + (dst_positive_scale_choice_right_table))) + (((dst_negative_code_choice_right_table) + (dst_negative_scale_choice_right_table)) * S ((dst_negative_code_choice_right_table) + (dst_negative_scale_choice_right_table)) + ((dst_negative_scale_choice_right_table) + (dst_negative_scale_choice_right_table)))) + ((((dst_negative_code_choice_right_table) + (dst_negative_scale_choice_right_table)) * S ((dst_negative_code_choice_right_table) + (dst_negative_scale_choice_right_table)) + ((dst_negative_scale_choice_right_table) + (dst_negative_scale_choice_right_table))) + (((dst_negative_code_choice_right_table) + (dst_negative_scale_choice_right_table)) * S ((dst_negative_code_choice_right_table) + (dst_negative_scale_choice_right_table)) + ((dst_negative_scale_choice_right_table) + (dst_negative_scale_choice_right_table)))))) /\ (forall dst_index_choice_right_table. (exists pvs_le_gap_choice_right_tabledomain. pvs_le_gap_choice_right_tabledomain + (dst_index_choice_right_table) = (0)) -> exists dst_positive_choice_right_table dst_negative_choice_right_table dst_value_choice_right_table. ((((exists ff_h_pvs_choice_right_tableentrypositive. ff_h_pvs_choice_right_tableentrypositive + S (dst_positive_choice_right_table) = S ((S (dst_index_choice_right_table)) * dst_positive_scale_choice_right_table)) /\ exists ff_q_pvs_choice_right_tableentrypositive. dst_positive_code_choice_right_table = ff_q_pvs_choice_right_tableentrypositive * S ((S (dst_index_choice_right_table)) * dst_positive_scale_choice_right_table) + (dst_positive_choice_right_table))) /\ (((((exists ff_h_pvs_choice_right_tableentrynegative. ff_h_pvs_choice_right_tableentrynegative + S (dst_negative_choice_right_table) = S ((S (dst_index_choice_right_table)) * dst_negative_scale_choice_right_table)) /\ exists ff_q_pvs_choice_right_tableentrynegative. dst_negative_code_choice_right_table = ff_q_pvs_choice_right_tableentrynegative * S ((S (dst_index_choice_right_table)) * dst_negative_scale_choice_right_table) + (dst_negative_choice_right_table))) /\ (exists ge_balance_positive_choice_right_tableentryvalue ge_balance_negative_choice_right_tableentryvalue. (((((dst_value_choice_right_table) = 2 * (ge_balance_positive_choice_right_tableentryvalue) /\ (ge_balance_negative_choice_right_tableentryvalue) = 0) \/ exists ge_signed_half_choice_right_tableentryvaluedecode. (((dst_value_choice_right_table) = 2 * ge_signed_half_choice_right_tableentryvaluedecode + 1 /\ (ge_balance_positive_choice_right_tableentryvalue) = 0) /\ (ge_balance_negative_choice_right_tableentryvalue) = S ge_signed_half_choice_right_tableentryvaluedecode))) /\ ((dst_positive_choice_right_table) + ge_balance_negative_choice_right_tableentryvalue = (dst_negative_choice_right_table) + ge_balance_positive_choice_right_tableentryvalue))))))))) -> exists z. ((((~((d)=0)) /\ (exists dc_quotient_choice_result dc_left_choice_result dc_right_choice_result. (((n)=(d)*dc_quotient_choice_result) /\ (((exists dst_positive_code_choice_resultleft dst_positive_scale_choice_resultleft dst_negative_code_choice_resultleft dst_negative_scale_choice_resultleft dst_positive_choice_resultleft dst_negative_choice_resultleft. (((F) = (((((dst_positive_code_choice_resultleft) + (dst_positive_scale_choice_resultleft)) * S ((dst_positive_code_choice_resultleft) + (dst_positive_scale_choice_resultleft)) + ((dst_positive_scale_choice_resultleft) + (dst_positive_scale_choice_resultleft))) + (((dst_negative_code_choice_resultleft) + (dst_negative_scale_choice_resultleft)) * S ((dst_negative_code_choice_resultleft) + (dst_negative_scale_choice_resultleft)) + ((dst_negative_scale_choice_resultleft) + (dst_negative_scale_choice_resultleft)))) * S ((((dst_positive_code_choice_resultleft) + (dst_positive_scale_choice_resultleft)) * S ((dst_positive_code_choice_resultleft) + (dst_positive_scale_choice_resultleft)) + ((dst_positive_scale_choice_resultleft) + (dst_positive_scale_choice_resultleft))) + (((dst_negative_code_choice_resultleft) + (dst_negative_scale_choice_resultleft)) * S ((dst_negative_code_choice_resultleft) + (dst_negative_scale_choice_resultleft)) + ((dst_negative_scale_choice_resultleft) + (dst_negative_scale_choice_resultleft)))) + ((((dst_negative_code_choice_resultleft) + (dst_negative_scale_choice_resultleft)) * S ((dst_negative_code_choice_resultleft) + (dst_negative_scale_choice_resultleft)) + ((dst_negative_scale_choice_resultleft) + (dst_negative_scale_choice_resultleft))) + (((dst_negative_code_choice_resultleft) + (dst_negative_scale_choice_resultleft)) * S ((dst_negative_code_choice_resultleft) + (dst_negative_scale_choice_resultleft)) + ((dst_negative_scale_choice_resultleft) + (dst_negative_scale_choice_resultleft)))))) /\ (((((exists ff_h_pvs_choice_resultleftpositive. ff_h_pvs_choice_resultleftpositive + S (dst_positive_choice_resultleft) = S ((S (d)) * dst_positive_scale_choice_resultleft)) /\ exists ff_q_pvs_choice_resultleftpositive. dst_positive_code_choice_resultleft = ff_q_pvs_choice_resultleftpositive * S ((S (d)) * dst_positive_scale_choice_resultleft) + (dst_positive_choice_resultleft))) /\ (((((exists ff_h_pvs_choice_resultleftnegative. ff_h_pvs_choice_resultleftnegative + S (dst_negative_choice_resultleft) = S ((S (d)) * dst_negative_scale_choice_resultleft)) /\ exists ff_q_pvs_choice_resultleftnegative. dst_negative_code_choice_resultleft = ff_q_pvs_choice_resultleftnegative * S ((S (d)) * dst_negative_scale_choice_resultleft) + (dst_negative_choice_resultleft))) /\ (exists ge_balance_positive_choice_resultleftvalue ge_balance_negative_choice_resultleftvalue. (((((dc_left_choice_result) = 2 * (ge_balance_positive_choice_resultleftvalue) /\ (ge_balance_negative_choice_resultleftvalue) = 0) \/ exists ge_signed_half_choice_resultleftvaluedecode. (((dc_left_choice_result) = 2 * ge_signed_half_choice_resultleftvaluedecode + 1 /\ (ge_balance_positive_choice_resultleftvalue) = 0) /\ (ge_balance_negative_choice_resultleftvalue) = S ge_signed_half_choice_resultleftvaluedecode))) /\ ((dst_positive_choice_resultleft) + ge_balance_negative_choice_resultleftvalue = (dst_negative_choice_resultleft) + ge_balance_positive_choice_resultleftvalue))))))))) /\ (((exists dst_positive_code_choice_resultright dst_positive_scale_choice_resultright dst_negative_code_choice_resultright dst_negative_scale_choice_resultright dst_positive_choice_resultright dst_negative_choice_resultright. (((G) = (((((dst_positive_code_choice_resultright) + (dst_positive_scale_choice_resultright)) * S ((dst_positive_code_choice_resultright) + (dst_positive_scale_choice_resultright)) + ((dst_positive_scale_choice_resultright) + (dst_positive_scale_choice_resultright))) + (((dst_negative_code_choice_resultright) + (dst_negative_scale_choice_resultright)) * S ((dst_negative_code_choice_resultright) + (dst_negative_scale_choice_resultright)) + ((dst_negative_scale_choice_resultright) + (dst_negative_scale_choice_resultright)))) * S ((((dst_positive_code_choice_resultright) + (dst_positive_scale_choice_resultright)) * S ((dst_positive_code_choice_resultright) + (dst_positive_scale_choice_resultright)) + ((dst_positive_scale_choice_resultright) + (dst_positive_scale_choice_resultright))) + (((dst_negative_code_choice_resultright) + (dst_negative_scale_choice_resultright)) * S ((dst_negative_code_choice_resultright) + (dst_negative_scale_choice_resultright)) + ((dst_negative_scale_choice_resultright) + (dst_negative_scale_choice_resultright)))) + ((((dst_negative_code_choice_resultright) + (dst_negative_scale_choice_resultright)) * S ((dst_negative_code_choice_resultright) + (dst_negative_scale_choice_resultright)) + ((dst_negative_scale_choice_resultright) + (dst_negative_scale_choice_resultright))) + (((dst_negative_code_choice_resultright) + (dst_negative_scale_choice_resultright)) * S ((dst_negative_code_choice_resultright) + (dst_negative_scale_choice_resultright)) + ((dst_negative_scale_choice_resultright) + (dst_negative_scale_choice_resultright)))))) /\ (((((exists ff_h_pvs_choice_resultrightpositive. ff_h_pvs_choice_resultrightpositive + S (dst_positive_choice_resultright) = S ((S (dc_quotient_choice_result)) * dst_positive_scale_choice_resultright)) /\ exists ff_q_pvs_choice_resultrightpositive. dst_positive_code_choice_resultright = ff_q_pvs_choice_resultrightpositive * S ((S (dc_quotient_choice_result)) * dst_positive_scale_choice_resultright) + (dst_positive_choice_resultright))) /\ (((((exists ff_h_pvs_choice_resultrightnegative. ff_h_pvs_choice_resultrightnegative + S (dst_negative_choice_resultright) = S ((S (dc_quotient_choice_result)) * dst_negative_scale_choice_resultright)) /\ exists ff_q_pvs_choice_resultrightnegative. dst_negative_code_choice_resultright = ff_q_pvs_choice_resultrightnegative * S ((S (dc_quotient_choice_result)) * dst_negative_scale_choice_resultright) + (dst_negative_choice_resultright))) /\ (exists ge_balance_positive_choice_resultrightvalue ge_balance_negative_choice_resultrightvalue. (((((dc_right_choice_result) = 2 * (ge_balance_positive_choice_resultrightvalue) /\ (ge_balance_negative_choice_resultrightvalue) = 0) \/ exists ge_signed_half_choice_resultrightvaluedecode. (((dc_right_choice_result) = 2 * ge_signed_half_choice_resultrightvaluedecode + 1 /\ (ge_balance_positive_choice_resultrightvalue) = 0) /\ (ge_balance_negative_choice_resultrightvalue) = S ge_signed_half_choice_resultrightvaluedecode))) /\ ((dst_positive_choice_resultright) + ge_balance_negative_choice_resultrightvalue = (dst_negative_choice_resultright) + ge_balance_positive_choice_resultrightvalue))))))))) /\ (exists sto_ap_choice_resultproduct sto_an_choice_resultproduct sto_bp_choice_resultproduct sto_bn_choice_resultproduct sto_cp_choice_resultproduct sto_cn_choice_resultproduct. (((((dc_left_choice_result) = 2 * (sto_ap_choice_resultproduct) /\ (sto_an_choice_resultproduct) = 0) \/ exists ge_signed_half_choice_resultproductleft. (((dc_left_choice_result) = 2 * ge_signed_half_choice_resultproductleft + 1 /\ (sto_ap_choice_resultproduct) = 0) /\ (sto_an_choice_resultproduct) = S ge_signed_half_choice_resultproductleft))) /\ ((((((dc_right_choice_result) = 2 * (sto_bp_choice_resultproduct) /\ (sto_bn_choice_resultproduct) = 0) \/ exists ge_signed_half_choice_resultproductright. (((dc_right_choice_result) = 2 * ge_signed_half_choice_resultproductright + 1 /\ (sto_bp_choice_resultproduct) = 0) /\ (sto_bn_choice_resultproduct) = S ge_signed_half_choice_resultproductright))) /\ ((((((z) = 2 * (sto_cp_choice_resultproduct) /\ (sto_cn_choice_resultproduct) = 0) \/ exists ge_signed_half_choice_resultproductoutput. (((z) = 2 * ge_signed_half_choice_resultproductoutput + 1 /\ (sto_cp_choice_resultproduct) = 0) /\ (sto_cn_choice_resultproduct) = S ge_signed_half_choice_resultproductoutput))) /\ ((sto_ap_choice_resultproduct * sto_bp_choice_resultproduct + sto_an_choice_resultproduct * sto_bn_choice_resultproduct) + sto_cn_choice_resultproduct = (sto_ap_choice_resultproduct * sto_bn_choice_resultproduct + sto_an_choice_resultproduct * sto_bp_choice_resultproduct) + sto_cp_choice_resultproduct))))))))))))))) \/ ((((d)=0 \/ ~(exists pvs_factor_choice_resultnondivisor. (n) = (d) * pvs_factor_choice_resultnondivisor)) /\ ((z)=0))))Constructive proof overview
Generated structural guide
Decide membership, extract the actual quotient, construct both signed lookups and multiply them; neither choice nor a quotient oracle is assumed.
The unchanged tactic script uses 7 declared prerequisites and contains 72 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
eq_decidable Stable theorem; checked-use authorized DC0001 dirichlet_convolution_entry_zero multiple_decidable_nonzero Stable theorem; checked-use authorized signed_table_lookup_any Alpha theorem; checked-use authorized signed_mul_total Alpha theorem; checked-use authorized DC0002 dirichlet_convolution_entry_from_quotient DC0003 dirichlet_convolution_entry_from_nondivisorDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (3)
01Fix variables and assumptionsL1–6
02Establish hcL7–10
03Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
cases hc
04Construct an explicit witnessL12–12
Supply the displayed value, then prove that it has the required property.
- L12
exists 0
05Calculate and transport equalitiesL13–20
06Use earlier factsL21–24
07Establish hdivL25–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply multiple decidable nonzero.
08Separate the logical casesL30–31
09Establish haL32–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
10Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases ha
11Establish hbL39–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
12Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
cases hb
13Establish hzL46–49
14Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases hz
15Construct an explicit witnessL51–51
Supply the displayed value, then prove that it has the required property.
- L51
exists x3
16Use earlier factsL52–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
specialize dirichlet_convolution_entry_from_quotient (F) - L53
specialize dirichlet_convolution_entry_from_quotient (G) - L54
specialize dirichlet_convolution_entry_from_quotient (n) - L55
specialize dirichlet_convolution_entry_from_quotient (d) - L56
specialize dirichlet_convolution_entry_from_quotient (x) - L57
specialize dirichlet_convolution_entry_from_quotient (x1) - L58
specialize dirichlet_convolution_entry_from_quotient (x2) - L59
specialize dirichlet_convolution_entry_from_quotient (x3) - L60
apply dirichlet_convolution_entry_from_quotient - L61
exact hc_right
17Use earlier factsL62–65
18Construct an explicit witnessL66–66
Supply the displayed value, then prove that it has the required property.
- L66
exists 0
19Use earlier factsL67–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
specialize dirichlet_convolution_entry_from_nondivisor (F) - L68
specialize dirichlet_convolution_entry_from_nondivisor (G) - L69
specialize dirichlet_convolution_entry_from_nondivisor (n) - L70
specialize dirichlet_convolution_entry_from_nondivisor (d) - L71
apply dirichlet_convolution_entry_from_nondivisor - L72
exact hdiv_right
Original exact command ledger · 72 lines
- 0001
intro F - 0002
intro G - 0003
intro n - 0004
intro d - 0005
intro hF - 0006
intro hG - 0007
have hc : d=0 \/ ~(d=0) - 0008
specialize eq_decidable (d) - 0009
specialize eq_decidable (0) - 0010
apply eq_decidable - 0011
cases hc - 0012
exists 0 - 0013
rewrite hc_left - 0014
rewrite hc_left - 0015
rewrite hc_left - 0016
rewrite hc_left - 0017
rewrite hc_left - 0018
rewrite hc_left - 0019
rewrite hc_left - 0020
rewrite hc_left - 0021
specialize dirichlet_convolution_entry_zero (F) - 0022
specialize dirichlet_convolution_entry_zero (G) - 0023
specialize dirichlet_convolution_entry_zero (n) - 0024
apply dirichlet_convolution_entry_zero - 0025
have hdiv : (exists pvs_factor_choice_yes. (n) = (d) * pvs_factor_choice_yes) \/ ~(exists pvs_factor_choice_no. (n) = (d) * pvs_factor_choice_no) - 0026
specialize multiple_decidable_nonzero (d) - 0027
specialize multiple_decidable_nonzero (n) - 0028
apply multiple_decidable_nonzero - 0029
exact hc_right - 0030
cases hdiv - 0031
cases hdiv_left - 0032
have ha : exists a. (exists dst_positive_code_choice_left dst_positive_scale_choice_left dst_negative_code_choice_left dst_negative_scale_choice_left dst_positive_choice_left dst_negative_choice_left. (((F) = (((((dst_positive_code_choice_left) + (dst_positive_scale_choice_left)) * S ((dst_positive_code_choice_left) + (dst_positive_scale_choice_left)) + ((dst_positive_scale_choice_left) + (dst_positive_scale_choice_left))) + (((dst_negative_code_choice_left) + (dst_negative_scale_choice_left)) * S ((dst_negative_code_choice_left) + (dst_negative_scale_choice_left)) + ((dst_negative_scale_choice_left) + (dst_negative_scale_choice_left)))) * S ((((dst_positive_code_choice_left) + (dst_positive_scale_choice_left)) * S ((dst_positive_code_choice_left) + (dst_positive_scale_choice_left)) + ((dst_positive_scale_choice_left) + (dst_positive_scale_choice_left))) + (((dst_negative_code_choice_left) + (dst_negative_scale_choice_left)) * S ((dst_negative_code_choice_left) + (dst_negative_scale_choice_left)) + ((dst_negative_scale_choice_left) + (dst_negative_scale_choice_left)))) + ((((dst_negative_code_choice_left) + (dst_negative_scale_choice_left)) * S ((dst_negative_code_choice_left) + (dst_negative_scale_choice_left)) + ((dst_negative_scale_choice_left) + (dst_negative_scale_choice_left))) + (((dst_negative_code_choice_left) + (dst_negative_scale_choice_left)) * S ((dst_negative_code_choice_left) + (dst_negative_scale_choice_left)) + ((dst_negative_scale_choice_left) + (dst_negative_scale_choice_left)))))) /\ (((((exists ff_h_pvs_choice_leftpositive. ff_h_pvs_choice_leftpositive + S (dst_positive_choice_left) = S ((S (d)) * dst_positive_scale_choice_left)) /\ exists ff_q_pvs_choice_leftpositive. dst_positive_code_choice_left = ff_q_pvs_choice_leftpositive * S ((S (d)) * dst_positive_scale_choice_left) + (dst_positive_choice_left))) /\ (((((exists ff_h_pvs_choice_leftnegative. ff_h_pvs_choice_leftnegative + S (dst_negative_choice_left) = S ((S (d)) * dst_negative_scale_choice_left)) /\ exists ff_q_pvs_choice_leftnegative. dst_negative_code_choice_left = ff_q_pvs_choice_leftnegative * S ((S (d)) * dst_negative_scale_choice_left) + (dst_negative_choice_left))) /\ (exists ge_balance_positive_choice_leftvalue ge_balance_negative_choice_leftvalue. (((((a) = 2 * (ge_balance_positive_choice_leftvalue) /\ (ge_balance_negative_choice_leftvalue) = 0) \/ exists ge_signed_half_choice_leftvaluedecode. (((a) = 2 * ge_signed_half_choice_leftvaluedecode + 1 /\ (ge_balance_positive_choice_leftvalue) = 0) /\ (ge_balance_negative_choice_leftvalue) = S ge_signed_half_choice_leftvaluedecode))) /\ ((dst_positive_choice_left) + ge_balance_negative_choice_leftvalue = (dst_negative_choice_left) + ge_balance_positive_choice_leftvalue))))))))) - 0033
specialize signed_table_lookup_any (0) - 0034
specialize signed_table_lookup_any (F) - 0035
specialize signed_table_lookup_any (d) - 0036
apply signed_table_lookup_any - 0037
exact hF - 0038
cases ha - 0039
have hb : exists b. (exists dst_positive_code_choice_right dst_positive_scale_choice_right dst_negative_code_choice_right dst_negative_scale_choice_right dst_positive_choice_right dst_negative_choice_right. (((G) = (((((dst_positive_code_choice_right) + (dst_positive_scale_choice_right)) * S ((dst_positive_code_choice_right) + (dst_positive_scale_choice_right)) + ((dst_positive_scale_choice_right) + (dst_positive_scale_choice_right))) + (((dst_negative_code_choice_right) + (dst_negative_scale_choice_right)) * S ((dst_negative_code_choice_right) + (dst_negative_scale_choice_right)) + ((dst_negative_scale_choice_right) + (dst_negative_scale_choice_right)))) * S ((((dst_positive_code_choice_right) + (dst_positive_scale_choice_right)) * S ((dst_positive_code_choice_right) + (dst_positive_scale_choice_right)) + ((dst_positive_scale_choice_right) + (dst_positive_scale_choice_right))) + (((dst_negative_code_choice_right) + (dst_negative_scale_choice_right)) * S ((dst_negative_code_choice_right) + (dst_negative_scale_choice_right)) + ((dst_negative_scale_choice_right) + (dst_negative_scale_choice_right)))) + ((((dst_negative_code_choice_right) + (dst_negative_scale_choice_right)) * S ((dst_negative_code_choice_right) + (dst_negative_scale_choice_right)) + ((dst_negative_scale_choice_right) + (dst_negative_scale_choice_right))) + (((dst_negative_code_choice_right) + (dst_negative_scale_choice_right)) * S ((dst_negative_code_choice_right) + (dst_negative_scale_choice_right)) + ((dst_negative_scale_choice_right) + (dst_negative_scale_choice_right)))))) /\ (((((exists ff_h_pvs_choice_rightpositive. ff_h_pvs_choice_rightpositive + S (dst_positive_choice_right) = S ((S (x)) * dst_positive_scale_choice_right)) /\ exists ff_q_pvs_choice_rightpositive. dst_positive_code_choice_right = ff_q_pvs_choice_rightpositive * S ((S (x)) * dst_positive_scale_choice_right) + (dst_positive_choice_right))) /\ (((((exists ff_h_pvs_choice_rightnegative. ff_h_pvs_choice_rightnegative + S (dst_negative_choice_right) = S ((S (x)) * dst_negative_scale_choice_right)) /\ exists ff_q_pvs_choice_rightnegative. dst_negative_code_choice_right = ff_q_pvs_choice_rightnegative * S ((S (x)) * dst_negative_scale_choice_right) + (dst_negative_choice_right))) /\ (exists ge_balance_positive_choice_rightvalue ge_balance_negative_choice_rightvalue. (((((b) = 2 * (ge_balance_positive_choice_rightvalue) /\ (ge_balance_negative_choice_rightvalue) = 0) \/ exists ge_signed_half_choice_rightvaluedecode. (((b) = 2 * ge_signed_half_choice_rightvaluedecode + 1 /\ (ge_balance_positive_choice_rightvalue) = 0) /\ (ge_balance_negative_choice_rightvalue) = S ge_signed_half_choice_rightvaluedecode))) /\ ((dst_positive_choice_right) + ge_balance_negative_choice_rightvalue = (dst_negative_choice_right) + ge_balance_positive_choice_rightvalue))))))))) - 0040
specialize signed_table_lookup_any (0) - 0041
specialize signed_table_lookup_any (G) - 0042
specialize signed_table_lookup_any (x) - 0043
apply signed_table_lookup_any - 0044
exact hG - 0045
cases hb - 0046
have hz : exists z. (exists sto_ap_choice_product sto_an_choice_product sto_bp_choice_product sto_bn_choice_product sto_cp_choice_product sto_cn_choice_product. (((((x1) = 2 * (sto_ap_choice_product) /\ (sto_an_choice_product) = 0) \/ exists ge_signed_half_choice_productleft. (((x1) = 2 * ge_signed_half_choice_productleft + 1 /\ (sto_ap_choice_product) = 0) /\ (sto_an_choice_product) = S ge_signed_half_choice_productleft))) /\ ((((((x2) = 2 * (sto_bp_choice_product) /\ (sto_bn_choice_product) = 0) \/ exists ge_signed_half_choice_productright. (((x2) = 2 * ge_signed_half_choice_productright + 1 /\ (sto_bp_choice_product) = 0) /\ (sto_bn_choice_product) = S ge_signed_half_choice_productright))) /\ ((((((z) = 2 * (sto_cp_choice_product) /\ (sto_cn_choice_product) = 0) \/ exists ge_signed_half_choice_productoutput. (((z) = 2 * ge_signed_half_choice_productoutput + 1 /\ (sto_cp_choice_product) = 0) /\ (sto_cn_choice_product) = S ge_signed_half_choice_productoutput))) /\ ((sto_ap_choice_product * sto_bp_choice_product + sto_an_choice_product * sto_bn_choice_product) + sto_cn_choice_product = (sto_ap_choice_product * sto_bn_choice_product + sto_an_choice_product * sto_bp_choice_product) + sto_cp_choice_product))))))) - 0047
specialize signed_mul_total (x1) - 0048
specialize signed_mul_total (x2) - 0049
apply signed_mul_total - 0050
cases hz - 0051
exists x3 - 0052
specialize dirichlet_convolution_entry_from_quotient (F) - 0053
specialize dirichlet_convolution_entry_from_quotient (G) - 0054
specialize dirichlet_convolution_entry_from_quotient (n) - 0055
specialize dirichlet_convolution_entry_from_quotient (d) - 0056
specialize dirichlet_convolution_entry_from_quotient (x) - 0057
specialize dirichlet_convolution_entry_from_quotient (x1) - 0058
specialize dirichlet_convolution_entry_from_quotient (x2) - 0059
specialize dirichlet_convolution_entry_from_quotient (x3) - 0060
apply dirichlet_convolution_entry_from_quotient - 0061
exact hc_right - 0062
exact hdiv_left_witness - 0063
exact ha_witness - 0064
exact hb_witness - 0065
exact hz_witness - 0066
exists 0 - 0067
specialize dirichlet_convolution_entry_from_nondivisor (F) - 0068
specialize dirichlet_convolution_entry_from_nondivisor (G) - 0069
specialize dirichlet_convolution_entry_from_nondivisor (n) - 0070
specialize dirichlet_convolution_entry_from_nondivisor (d) - 0071
apply dirichlet_convolution_entry_from_nondivisor - 0072
exact hdiv_right