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 a b z. (exists sto_ap_nonzero_product sto_an_nonzero_product sto_bp_nonzero_product sto_bn_nonzero_product sto_cp_nonzero_product sto_cn_nonzero_product. (((((a) = 2 * (sto_ap_nonzero_product) /\ (sto_an_nonzero_product) = 0) \/ exists ge_signed_half_nonzero_productleft. (((a) = 2 * ge_signed_half_nonzero_productleft + 1 /\ (sto_ap_nonzero_product) = 0) /\ (sto_an_nonzero_product) = S ge_signed_half_nonzero_productleft))) /\ ((((((b) = 2 * (sto_bp_nonzero_product) /\ (sto_bn_nonzero_product) = 0) \/ exists ge_signed_half_nonzero_productright. (((b) = 2 * ge_signed_half_nonzero_productright + 1 /\ (sto_bp_nonzero_product) = 0) /\ (sto_bn_nonzero_product) = S ge_signed_half_nonzero_productright))) /\ ((((((z) = 2 * (sto_cp_nonzero_product) /\ (sto_cn_nonzero_product) = 0) \/ exists ge_signed_half_nonzero_productoutput. (((z) = 2 * ge_signed_half_nonzero_productoutput + 1 /\ (sto_cp_nonzero_product) = 0) /\ (sto_cn_nonzero_product) = S ge_signed_half_nonzero_productoutput))) /\ ((sto_ap_nonzero_product * sto_bp_nonzero_product + sto_an_nonzero_product * sto_bn_nonzero_product) + sto_cn_nonzero_product = (sto_ap_nonzero_product * sto_bn_nonzero_product + sto_an_nonzero_product * sto_bp_nonzero_product) + sto_cp_nonzero_product))))))) -> ~(z=0) -> (~(a=0) /\ ~(b=0))Constructive proof overview
Generated structural guide
A nonzero actual signed product has two nonzero factors, by the signed zero laws and functionality.
The unchanged tactic script uses 3 declared prerequisites and contains 30 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
signed_mul_functional Alpha theorem; checked-use authorized signed_mul_zero_left Alpha theorem; checked-use authorized signed_mul_zero_right Alpha 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.
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
split
03Fix variables and assumptionsL7–7
Work with arbitrary variables or the premises of the current implication.
- L7
intro ha
04Use earlier factsL8–8
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L8
apply hz
05Calculate and transport equalitiesL9–10
06Use earlier factsL11–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
07Fix variables and assumptionsL19–19
Work with arbitrary variables or the premises of the current implication.
- L19
intro hb
08Use earlier factsL20–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
apply hz
09Calculate and transport equalitiesL21–22
10Use earlier factsL23–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 30 lines
- 0001
intro a - 0002
intro b - 0003
intro z - 0004
intro hp - 0005
intro hz - 0006
split - 0007
intro ha - 0008
apply hz - 0009
rewrite ha at hp - 0010
rewrite ha at hp - 0011
specialize signed_mul_functional (0) - 0012
specialize signed_mul_functional (b) - 0013
specialize signed_mul_functional (z) - 0014
specialize signed_mul_functional (0) - 0015
apply signed_mul_functional - 0016
exact hp - 0017
specialize signed_mul_zero_left (b) - 0018
apply signed_mul_zero_left - 0019
intro hb - 0020
apply hz - 0021
rewrite hb at hp - 0022
rewrite hb at hp - 0023
specialize signed_mul_functional (a) - 0024
specialize signed_mul_functional (0) - 0025
specialize signed_mul_functional (z) - 0026
specialize signed_mul_functional (0) - 0027
apply signed_mul_functional - 0028
exact hp - 0029
specialize signed_mul_zero_right (a) - 0030
apply signed_mul_zero_right