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 z. ~(n=0) -> (exists pvs_gap_past_support_index. pvs_gap_past_support_index + S (n) = (d)) -> ((((~((d)=0)) /\ (exists dc_quotient_past_support_entry dc_left_past_support_entry dc_right_past_support_entry. (((n)=(d)*dc_quotient_past_support_entry) /\ (((exists dst_positive_code_past_support_entryleft dst_positive_scale_past_support_entryleft dst_negative_code_past_support_entryleft dst_negative_scale_past_support_entryleft dst_positive_past_support_entryleft dst_negative_past_support_entryleft. (((F) = (((((dst_positive_code_past_support_entryleft) + (dst_positive_scale_past_support_entryleft)) * S ((dst_positive_code_past_support_entryleft) + (dst_positive_scale_past_support_entryleft)) + ((dst_positive_scale_past_support_entryleft) + (dst_positive_scale_past_support_entryleft))) + (((dst_negative_code_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)) * S ((dst_negative_code_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)) + ((dst_negative_scale_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)))) * S ((((dst_positive_code_past_support_entryleft) + (dst_positive_scale_past_support_entryleft)) * S ((dst_positive_code_past_support_entryleft) + (dst_positive_scale_past_support_entryleft)) + ((dst_positive_scale_past_support_entryleft) + (dst_positive_scale_past_support_entryleft))) + (((dst_negative_code_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)) * S ((dst_negative_code_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)) + ((dst_negative_scale_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)))) + ((((dst_negative_code_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)) * S ((dst_negative_code_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)) + ((dst_negative_scale_past_support_entryleft) + (dst_negative_scale_past_support_entryleft))) + (((dst_negative_code_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)) * S ((dst_negative_code_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)) + ((dst_negative_scale_past_support_entryleft) + (dst_negative_scale_past_support_entryleft)))))) /\ (((((exists ff_h_pvs_past_support_entryleftpositive. ff_h_pvs_past_support_entryleftpositive + S (dst_positive_past_support_entryleft) = S ((S (d)) * dst_positive_scale_past_support_entryleft)) /\ exists ff_q_pvs_past_support_entryleftpositive. dst_positive_code_past_support_entryleft = ff_q_pvs_past_support_entryleftpositive * S ((S (d)) * dst_positive_scale_past_support_entryleft) + (dst_positive_past_support_entryleft))) /\ (((((exists ff_h_pvs_past_support_entryleftnegative. ff_h_pvs_past_support_entryleftnegative + S (dst_negative_past_support_entryleft) = S ((S (d)) * dst_negative_scale_past_support_entryleft)) /\ exists ff_q_pvs_past_support_entryleftnegative. dst_negative_code_past_support_entryleft = ff_q_pvs_past_support_entryleftnegative * S ((S (d)) * dst_negative_scale_past_support_entryleft) + (dst_negative_past_support_entryleft))) /\ (exists ge_balance_positive_past_support_entryleftvalue ge_balance_negative_past_support_entryleftvalue. (((((dc_left_past_support_entry) = 2 * (ge_balance_positive_past_support_entryleftvalue) /\ (ge_balance_negative_past_support_entryleftvalue) = 0) \/ exists ge_signed_half_past_support_entryleftvaluedecode. (((dc_left_past_support_entry) = 2 * ge_signed_half_past_support_entryleftvaluedecode + 1 /\ (ge_balance_positive_past_support_entryleftvalue) = 0) /\ (ge_balance_negative_past_support_entryleftvalue) = S ge_signed_half_past_support_entryleftvaluedecode))) /\ ((dst_positive_past_support_entryleft) + ge_balance_negative_past_support_entryleftvalue = (dst_negative_past_support_entryleft) + ge_balance_positive_past_support_entryleftvalue))))))))) /\ (((exists dst_positive_code_past_support_entryright dst_positive_scale_past_support_entryright dst_negative_code_past_support_entryright dst_negative_scale_past_support_entryright dst_positive_past_support_entryright dst_negative_past_support_entryright. (((G) = (((((dst_positive_code_past_support_entryright) + (dst_positive_scale_past_support_entryright)) * S ((dst_positive_code_past_support_entryright) + (dst_positive_scale_past_support_entryright)) + ((dst_positive_scale_past_support_entryright) + (dst_positive_scale_past_support_entryright))) + (((dst_negative_code_past_support_entryright) + (dst_negative_scale_past_support_entryright)) * S ((dst_negative_code_past_support_entryright) + (dst_negative_scale_past_support_entryright)) + ((dst_negative_scale_past_support_entryright) + (dst_negative_scale_past_support_entryright)))) * S ((((dst_positive_code_past_support_entryright) + (dst_positive_scale_past_support_entryright)) * S ((dst_positive_code_past_support_entryright) + (dst_positive_scale_past_support_entryright)) + ((dst_positive_scale_past_support_entryright) + (dst_positive_scale_past_support_entryright))) + (((dst_negative_code_past_support_entryright) + (dst_negative_scale_past_support_entryright)) * S ((dst_negative_code_past_support_entryright) + (dst_negative_scale_past_support_entryright)) + ((dst_negative_scale_past_support_entryright) + (dst_negative_scale_past_support_entryright)))) + ((((dst_negative_code_past_support_entryright) + (dst_negative_scale_past_support_entryright)) * S ((dst_negative_code_past_support_entryright) + (dst_negative_scale_past_support_entryright)) + ((dst_negative_scale_past_support_entryright) + (dst_negative_scale_past_support_entryright))) + (((dst_negative_code_past_support_entryright) + (dst_negative_scale_past_support_entryright)) * S ((dst_negative_code_past_support_entryright) + (dst_negative_scale_past_support_entryright)) + ((dst_negative_scale_past_support_entryright) + (dst_negative_scale_past_support_entryright)))))) /\ (((((exists ff_h_pvs_past_support_entryrightpositive. ff_h_pvs_past_support_entryrightpositive + S (dst_positive_past_support_entryright) = S ((S (dc_quotient_past_support_entry)) * dst_positive_scale_past_support_entryright)) /\ exists ff_q_pvs_past_support_entryrightpositive. dst_positive_code_past_support_entryright = ff_q_pvs_past_support_entryrightpositive * S ((S (dc_quotient_past_support_entry)) * dst_positive_scale_past_support_entryright) + (dst_positive_past_support_entryright))) /\ (((((exists ff_h_pvs_past_support_entryrightnegative. ff_h_pvs_past_support_entryrightnegative + S (dst_negative_past_support_entryright) = S ((S (dc_quotient_past_support_entry)) * dst_negative_scale_past_support_entryright)) /\ exists ff_q_pvs_past_support_entryrightnegative. dst_negative_code_past_support_entryright = ff_q_pvs_past_support_entryrightnegative * S ((S (dc_quotient_past_support_entry)) * dst_negative_scale_past_support_entryright) + (dst_negative_past_support_entryright))) /\ (exists ge_balance_positive_past_support_entryrightvalue ge_balance_negative_past_support_entryrightvalue. (((((dc_right_past_support_entry) = 2 * (ge_balance_positive_past_support_entryrightvalue) /\ (ge_balance_negative_past_support_entryrightvalue) = 0) \/ exists ge_signed_half_past_support_entryrightvaluedecode. (((dc_right_past_support_entry) = 2 * ge_signed_half_past_support_entryrightvaluedecode + 1 /\ (ge_balance_positive_past_support_entryrightvalue) = 0) /\ (ge_balance_negative_past_support_entryrightvalue) = S ge_signed_half_past_support_entryrightvaluedecode))) /\ ((dst_positive_past_support_entryright) + ge_balance_negative_past_support_entryrightvalue = (dst_negative_past_support_entryright) + ge_balance_positive_past_support_entryrightvalue))))))))) /\ (exists sto_ap_past_support_entryproduct sto_an_past_support_entryproduct sto_bp_past_support_entryproduct sto_bn_past_support_entryproduct sto_cp_past_support_entryproduct sto_cn_past_support_entryproduct. (((((dc_left_past_support_entry) = 2 * (sto_ap_past_support_entryproduct) /\ (sto_an_past_support_entryproduct) = 0) \/ exists ge_signed_half_past_support_entryproductleft. (((dc_left_past_support_entry) = 2 * ge_signed_half_past_support_entryproductleft + 1 /\ (sto_ap_past_support_entryproduct) = 0) /\ (sto_an_past_support_entryproduct) = S ge_signed_half_past_support_entryproductleft))) /\ ((((((dc_right_past_support_entry) = 2 * (sto_bp_past_support_entryproduct) /\ (sto_bn_past_support_entryproduct) = 0) \/ exists ge_signed_half_past_support_entryproductright. (((dc_right_past_support_entry) = 2 * ge_signed_half_past_support_entryproductright + 1 /\ (sto_bp_past_support_entryproduct) = 0) /\ (sto_bn_past_support_entryproduct) = S ge_signed_half_past_support_entryproductright))) /\ ((((((z) = 2 * (sto_cp_past_support_entryproduct) /\ (sto_cn_past_support_entryproduct) = 0) \/ exists ge_signed_half_past_support_entryproductoutput. (((z) = 2 * ge_signed_half_past_support_entryproductoutput + 1 /\ (sto_cp_past_support_entryproduct) = 0) /\ (sto_cn_past_support_entryproduct) = S ge_signed_half_past_support_entryproductoutput))) /\ ((sto_ap_past_support_entryproduct * sto_bp_past_support_entryproduct + sto_an_past_support_entryproduct * sto_bn_past_support_entryproduct) + sto_cn_past_support_entryproduct = (sto_ap_past_support_entryproduct * sto_bn_past_support_entryproduct + sto_an_past_support_entryproduct * sto_bp_past_support_entryproduct) + sto_cp_past_support_entryproduct))))))))))))))) \/ ((((d)=0 \/ ~(exists pvs_factor_past_support_entrynondivisor. (n) = (d) * pvs_factor_past_support_entrynondivisor)) /\ ((z)=0)))) -> z=0Constructive proof overview
Generated structural guide
A summand beyond a positive input is zero because a positive-input divisor cannot exceed that input.
The unchanged tactic script uses 3 declared prerequisites and contains 26 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
DC0004 dirichlet_convolution_entry_omitted_value lt_not_le Stable theorem; checked-use authorized divisor_le_nonzero Stable theorem; checked-use authorizedDirect 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 (1)
01Fix variables and assumptionsL1–8
02Use earlier factsL9–14
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L9
specialize dirichlet_convolution_entry_omitted_value (F) - L10
specialize dirichlet_convolution_entry_omitted_value (G) - L11
specialize dirichlet_convolution_entry_omitted_value (n) - L12
specialize dirichlet_convolution_entry_omitted_value (d) - L13
specialize dirichlet_convolution_entry_omitted_value (z) - L14
apply dirichlet_convolution_entry_omitted_value
03Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
right
04Fix variables and assumptionsL16–16
Work with arbitrary variables or the premises of the current implication.
- L16
intro hd
05Use earlier factsL17–26
Original exact command ledger · 26 lines
- 0001
intro F - 0002
intro G - 0003
intro n - 0004
intro d - 0005
intro z - 0006
intro hn - 0007
intro hnd - 0008
intro he - 0009
specialize dirichlet_convolution_entry_omitted_value (F) - 0010
specialize dirichlet_convolution_entry_omitted_value (G) - 0011
specialize dirichlet_convolution_entry_omitted_value (n) - 0012
specialize dirichlet_convolution_entry_omitted_value (d) - 0013
specialize dirichlet_convolution_entry_omitted_value (z) - 0014
apply dirichlet_convolution_entry_omitted_value - 0015
right - 0016
intro hd - 0017
specialize lt_not_le (n) - 0018
specialize lt_not_le (d) - 0019
apply lt_not_le - 0020
exact hnd - 0021
specialize divisor_le_nonzero (d) - 0022
specialize divisor_le_nonzero (n) - 0023
apply divisor_le_nonzero - 0024
exact hn - 0025
exact hd - 0026
exact he