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 r u e a b c d. (((u) = 2 \/ (u) = 1)) -> (exists sto_ap_affine_unique_first_product sto_an_affine_unique_first_product sto_bp_affine_unique_first_product sto_bn_affine_unique_first_product sto_cp_affine_unique_first_product sto_cn_affine_unique_first_product. (((((a) = 2 * (sto_ap_affine_unique_first_product) /\ (sto_an_affine_unique_first_product) = 0) \/ exists ge_signed_half_affine_unique_first_productleft. (((a) = 2 * ge_signed_half_affine_unique_first_productleft + 1 /\ (sto_ap_affine_unique_first_product) = 0) /\ (sto_an_affine_unique_first_product) = S ge_signed_half_affine_unique_first_productleft))) /\ ((((((u) = 2 * (sto_bp_affine_unique_first_product) /\ (sto_bn_affine_unique_first_product) = 0) \/ exists ge_signed_half_affine_unique_first_productright. (((u) = 2 * ge_signed_half_affine_unique_first_productright + 1 /\ (sto_bp_affine_unique_first_product) = 0) /\ (sto_bn_affine_unique_first_product) = S ge_signed_half_affine_unique_first_productright))) /\ ((((((b) = 2 * (sto_cp_affine_unique_first_product) /\ (sto_cn_affine_unique_first_product) = 0) \/ exists ge_signed_half_affine_unique_first_productoutput. (((b) = 2 * ge_signed_half_affine_unique_first_productoutput + 1 /\ (sto_cp_affine_unique_first_product) = 0) /\ (sto_cn_affine_unique_first_product) = S ge_signed_half_affine_unique_first_productoutput))) /\ ((sto_ap_affine_unique_first_product * sto_bp_affine_unique_first_product + sto_an_affine_unique_first_product * sto_bn_affine_unique_first_product) + sto_cn_affine_unique_first_product = (sto_ap_affine_unique_first_product * sto_bn_affine_unique_first_product + sto_an_affine_unique_first_product * sto_bp_affine_unique_first_product) + sto_cp_affine_unique_first_product))))))) -> (exists dsa_ap_affine_unique_first_sum dsa_an_affine_unique_first_sum dsa_bp_affine_unique_first_sum dsa_bn_affine_unique_first_sum dsa_cp_affine_unique_first_sum dsa_cn_affine_unique_first_sum. (((((r) = 2 * (dsa_ap_affine_unique_first_sum) /\ (dsa_an_affine_unique_first_sum) = 0) \/ exists ge_signed_half_affine_unique_first_sumleft. (((r) = 2 * ge_signed_half_affine_unique_first_sumleft + 1 /\ (dsa_ap_affine_unique_first_sum) = 0) /\ (dsa_an_affine_unique_first_sum) = S ge_signed_half_affine_unique_first_sumleft))) /\ ((((((b) = 2 * (dsa_bp_affine_unique_first_sum) /\ (dsa_bn_affine_unique_first_sum) = 0) \/ exists ge_signed_half_affine_unique_first_sumright. (((b) = 2 * ge_signed_half_affine_unique_first_sumright + 1 /\ (dsa_bp_affine_unique_first_sum) = 0) /\ (dsa_bn_affine_unique_first_sum) = S ge_signed_half_affine_unique_first_sumright))) /\ ((((((e) = 2 * (dsa_cp_affine_unique_first_sum) /\ (dsa_cn_affine_unique_first_sum) = 0) \/ exists ge_signed_half_affine_unique_first_sumoutput. (((e) = 2 * ge_signed_half_affine_unique_first_sumoutput + 1 /\ (dsa_cp_affine_unique_first_sum) = 0) /\ (dsa_cn_affine_unique_first_sum) = S ge_signed_half_affine_unique_first_sumoutput))) /\ ((dsa_ap_affine_unique_first_sum + dsa_bp_affine_unique_first_sum) + dsa_cn_affine_unique_first_sum = (dsa_an_affine_unique_first_sum + dsa_bn_affine_unique_first_sum) + dsa_cp_affine_unique_first_sum))))))) -> (exists sto_ap_affine_unique_second_product sto_an_affine_unique_second_product sto_bp_affine_unique_second_product sto_bn_affine_unique_second_product sto_cp_affine_unique_second_product sto_cn_affine_unique_second_product. (((((c) = 2 * (sto_ap_affine_unique_second_product) /\ (sto_an_affine_unique_second_product) = 0) \/ exists ge_signed_half_affine_unique_second_productleft. (((c) = 2 * ge_signed_half_affine_unique_second_productleft + 1 /\ (sto_ap_affine_unique_second_product) = 0) /\ (sto_an_affine_unique_second_product) = S ge_signed_half_affine_unique_second_productleft))) /\ ((((((u) = 2 * (sto_bp_affine_unique_second_product) /\ (sto_bn_affine_unique_second_product) = 0) \/ exists ge_signed_half_affine_unique_second_productright. (((u) = 2 * ge_signed_half_affine_unique_second_productright + 1 /\ (sto_bp_affine_unique_second_product) = 0) /\ (sto_bn_affine_unique_second_product) = S ge_signed_half_affine_unique_second_productright))) /\ ((((((d) = 2 * (sto_cp_affine_unique_second_product) /\ (sto_cn_affine_unique_second_product) = 0) \/ exists ge_signed_half_affine_unique_second_productoutput. (((d) = 2 * ge_signed_half_affine_unique_second_productoutput + 1 /\ (sto_cp_affine_unique_second_product) = 0) /\ (sto_cn_affine_unique_second_product) = S ge_signed_half_affine_unique_second_productoutput))) /\ ((sto_ap_affine_unique_second_product * sto_bp_affine_unique_second_product + sto_an_affine_unique_second_product * sto_bn_affine_unique_second_product) + sto_cn_affine_unique_second_product = (sto_ap_affine_unique_second_product * sto_bn_affine_unique_second_product + sto_an_affine_unique_second_product * sto_bp_affine_unique_second_product) + sto_cp_affine_unique_second_product))))))) -> (exists dsa_ap_affine_unique_second_sum dsa_an_affine_unique_second_sum dsa_bp_affine_unique_second_sum dsa_bn_affine_unique_second_sum dsa_cp_affine_unique_second_sum dsa_cn_affine_unique_second_sum. (((((r) = 2 * (dsa_ap_affine_unique_second_sum) /\ (dsa_an_affine_unique_second_sum) = 0) \/ exists ge_signed_half_affine_unique_second_sumleft. (((r) = 2 * ge_signed_half_affine_unique_second_sumleft + 1 /\ (dsa_ap_affine_unique_second_sum) = 0) /\ (dsa_an_affine_unique_second_sum) = S ge_signed_half_affine_unique_second_sumleft))) /\ ((((((d) = 2 * (dsa_bp_affine_unique_second_sum) /\ (dsa_bn_affine_unique_second_sum) = 0) \/ exists ge_signed_half_affine_unique_second_sumright. (((d) = 2 * ge_signed_half_affine_unique_second_sumright + 1 /\ (dsa_bp_affine_unique_second_sum) = 0) /\ (dsa_bn_affine_unique_second_sum) = S ge_signed_half_affine_unique_second_sumright))) /\ ((((((e) = 2 * (dsa_cp_affine_unique_second_sum) /\ (dsa_cn_affine_unique_second_sum) = 0) \/ exists ge_signed_half_affine_unique_second_sumoutput. (((e) = 2 * ge_signed_half_affine_unique_second_sumoutput + 1 /\ (dsa_cp_affine_unique_second_sum) = 0) /\ (dsa_cn_affine_unique_second_sum) = S ge_signed_half_affine_unique_second_sumoutput))) /\ ((dsa_ap_affine_unique_second_sum + dsa_bp_affine_unique_second_sum) + dsa_cn_affine_unique_second_sum = (dsa_an_affine_unique_second_sum + dsa_bn_affine_unique_second_sum) + dsa_cp_affine_unique_second_sum))))))) -> a=c /\ b=dConstructive proof overview
Generated structural guide
Any two witnessed solutions of the same unit-affine equation have equal canonical inputs and equal actual product outputs.
The unchanged tactic script uses 2 declared prerequisites and contains 32 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
Direct 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish heqL13–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet signed add cancel left.
04Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
split
05Use earlier factsL22–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
specialize dirichlet_signed_unit_multiply_cancel_right (u) - L23
specialize dirichlet_signed_unit_multiply_cancel_right (a) - L24
specialize dirichlet_signed_unit_multiply_cancel_right (c) - L25
specialize dirichlet_signed_unit_multiply_cancel_right (d) - L26
apply dirichlet_signed_unit_multiply_cancel_right - L27
exact hu
06Calculate and transport equalitiesL28–29
Original exact command ledger · 32 lines
- 0001
intro r - 0002
intro u - 0003
intro e - 0004
intro a - 0005
intro b - 0006
intro c - 0007
intro d - 0008
intro hu - 0009
intro hab - 0010
intro hbe - 0011
intro hcd - 0012
intro hde - 0013
have heq : b=d - 0014
specialize dirichlet_signed_add_cancel_left (r) - 0015
specialize dirichlet_signed_add_cancel_left (b) - 0016
specialize dirichlet_signed_add_cancel_left (d) - 0017
specialize dirichlet_signed_add_cancel_left (e) - 0018
apply dirichlet_signed_add_cancel_left - 0019
exact hbe - 0020
exact hde - 0021
split - 0022
specialize dirichlet_signed_unit_multiply_cancel_right (u) - 0023
specialize dirichlet_signed_unit_multiply_cancel_right (a) - 0024
specialize dirichlet_signed_unit_multiply_cancel_right (c) - 0025
specialize dirichlet_signed_unit_multiply_cancel_right (d) - 0026
apply dirichlet_signed_unit_multiply_cancel_right - 0027
exact hu - 0028
rewrite heq at hab - 0029
rewrite heq at hab - 0030
exact hab - 0031
exact hcd - 0032
exact heq