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 c d ab cd ac bd out. (exists dsa_ap_medial_ab dsa_an_medial_ab dsa_bp_medial_ab dsa_bn_medial_ab dsa_cp_medial_ab dsa_cn_medial_ab. (((((a) = 2 * (dsa_ap_medial_ab) /\ (dsa_an_medial_ab) = 0) \/ exists ge_signed_half_medial_ableft. (((a) = 2 * ge_signed_half_medial_ableft + 1 /\ (dsa_ap_medial_ab) = 0) /\ (dsa_an_medial_ab) = S ge_signed_half_medial_ableft))) /\ ((((((b) = 2 * (dsa_bp_medial_ab) /\ (dsa_bn_medial_ab) = 0) \/ exists ge_signed_half_medial_abright. (((b) = 2 * ge_signed_half_medial_abright + 1 /\ (dsa_bp_medial_ab) = 0) /\ (dsa_bn_medial_ab) = S ge_signed_half_medial_abright))) /\ ((((((ab) = 2 * (dsa_cp_medial_ab) /\ (dsa_cn_medial_ab) = 0) \/ exists ge_signed_half_medial_aboutput. (((ab) = 2 * ge_signed_half_medial_aboutput + 1 /\ (dsa_cp_medial_ab) = 0) /\ (dsa_cn_medial_ab) = S ge_signed_half_medial_aboutput))) /\ ((dsa_ap_medial_ab + dsa_bp_medial_ab) + dsa_cn_medial_ab = (dsa_an_medial_ab + dsa_bn_medial_ab) + dsa_cp_medial_ab))))))) -> (exists dsa_ap_medial_cd dsa_an_medial_cd dsa_bp_medial_cd dsa_bn_medial_cd dsa_cp_medial_cd dsa_cn_medial_cd. (((((c) = 2 * (dsa_ap_medial_cd) /\ (dsa_an_medial_cd) = 0) \/ exists ge_signed_half_medial_cdleft. (((c) = 2 * ge_signed_half_medial_cdleft + 1 /\ (dsa_ap_medial_cd) = 0) /\ (dsa_an_medial_cd) = S ge_signed_half_medial_cdleft))) /\ ((((((d) = 2 * (dsa_bp_medial_cd) /\ (dsa_bn_medial_cd) = 0) \/ exists ge_signed_half_medial_cdright. (((d) = 2 * ge_signed_half_medial_cdright + 1 /\ (dsa_bp_medial_cd) = 0) /\ (dsa_bn_medial_cd) = S ge_signed_half_medial_cdright))) /\ ((((((cd) = 2 * (dsa_cp_medial_cd) /\ (dsa_cn_medial_cd) = 0) \/ exists ge_signed_half_medial_cdoutput. (((cd) = 2 * ge_signed_half_medial_cdoutput + 1 /\ (dsa_cp_medial_cd) = 0) /\ (dsa_cn_medial_cd) = S ge_signed_half_medial_cdoutput))) /\ ((dsa_ap_medial_cd + dsa_bp_medial_cd) + dsa_cn_medial_cd = (dsa_an_medial_cd + dsa_bn_medial_cd) + dsa_cp_medial_cd))))))) -> (exists dsa_ap_medial_ac dsa_an_medial_ac dsa_bp_medial_ac dsa_bn_medial_ac dsa_cp_medial_ac dsa_cn_medial_ac. (((((a) = 2 * (dsa_ap_medial_ac) /\ (dsa_an_medial_ac) = 0) \/ exists ge_signed_half_medial_acleft. (((a) = 2 * ge_signed_half_medial_acleft + 1 /\ (dsa_ap_medial_ac) = 0) /\ (dsa_an_medial_ac) = S ge_signed_half_medial_acleft))) /\ ((((((c) = 2 * (dsa_bp_medial_ac) /\ (dsa_bn_medial_ac) = 0) \/ exists ge_signed_half_medial_acright. (((c) = 2 * ge_signed_half_medial_acright + 1 /\ (dsa_bp_medial_ac) = 0) /\ (dsa_bn_medial_ac) = S ge_signed_half_medial_acright))) /\ ((((((ac) = 2 * (dsa_cp_medial_ac) /\ (dsa_cn_medial_ac) = 0) \/ exists ge_signed_half_medial_acoutput. (((ac) = 2 * ge_signed_half_medial_acoutput + 1 /\ (dsa_cp_medial_ac) = 0) /\ (dsa_cn_medial_ac) = S ge_signed_half_medial_acoutput))) /\ ((dsa_ap_medial_ac + dsa_bp_medial_ac) + dsa_cn_medial_ac = (dsa_an_medial_ac + dsa_bn_medial_ac) + dsa_cp_medial_ac))))))) -> (exists dsa_ap_medial_bd dsa_an_medial_bd dsa_bp_medial_bd dsa_bn_medial_bd dsa_cp_medial_bd dsa_cn_medial_bd. (((((b) = 2 * (dsa_ap_medial_bd) /\ (dsa_an_medial_bd) = 0) \/ exists ge_signed_half_medial_bdleft. (((b) = 2 * ge_signed_half_medial_bdleft + 1 /\ (dsa_ap_medial_bd) = 0) /\ (dsa_an_medial_bd) = S ge_signed_half_medial_bdleft))) /\ ((((((d) = 2 * (dsa_bp_medial_bd) /\ (dsa_bn_medial_bd) = 0) \/ exists ge_signed_half_medial_bdright. (((d) = 2 * ge_signed_half_medial_bdright + 1 /\ (dsa_bp_medial_bd) = 0) /\ (dsa_bn_medial_bd) = S ge_signed_half_medial_bdright))) /\ ((((((bd) = 2 * (dsa_cp_medial_bd) /\ (dsa_cn_medial_bd) = 0) \/ exists ge_signed_half_medial_bdoutput. (((bd) = 2 * ge_signed_half_medial_bdoutput + 1 /\ (dsa_cp_medial_bd) = 0) /\ (dsa_cn_medial_bd) = S ge_signed_half_medial_bdoutput))) /\ ((dsa_ap_medial_bd + dsa_bp_medial_bd) + dsa_cn_medial_bd = (dsa_an_medial_bd + dsa_bn_medial_bd) + dsa_cp_medial_bd))))))) -> (exists dsa_ap_medial_out dsa_an_medial_out dsa_bp_medial_out dsa_bn_medial_out dsa_cp_medial_out dsa_cn_medial_out. (((((ac) = 2 * (dsa_ap_medial_out) /\ (dsa_an_medial_out) = 0) \/ exists ge_signed_half_medial_outleft. (((ac) = 2 * ge_signed_half_medial_outleft + 1 /\ (dsa_ap_medial_out) = 0) /\ (dsa_an_medial_out) = S ge_signed_half_medial_outleft))) /\ ((((((bd) = 2 * (dsa_bp_medial_out) /\ (dsa_bn_medial_out) = 0) \/ exists ge_signed_half_medial_outright. (((bd) = 2 * ge_signed_half_medial_outright + 1 /\ (dsa_bp_medial_out) = 0) /\ (dsa_bn_medial_out) = S ge_signed_half_medial_outright))) /\ ((((((out) = 2 * (dsa_cp_medial_out) /\ (dsa_cn_medial_out) = 0) \/ exists ge_signed_half_medial_outoutput. (((out) = 2 * ge_signed_half_medial_outoutput + 1 /\ (dsa_cp_medial_out) = 0) /\ (dsa_cn_medial_out) = S ge_signed_half_medial_outoutput))) /\ ((dsa_ap_medial_out + dsa_bp_medial_out) + dsa_cn_medial_out = (dsa_an_medial_out + dsa_bn_medial_out) + dsa_cp_medial_out))))))) -> (exists dsa_ap_medial_target dsa_an_medial_target dsa_bp_medial_target dsa_bn_medial_target dsa_cp_medial_target dsa_cn_medial_target. (((((ab) = 2 * (dsa_ap_medial_target) /\ (dsa_an_medial_target) = 0) \/ exists ge_signed_half_medial_targetleft. (((ab) = 2 * ge_signed_half_medial_targetleft + 1 /\ (dsa_ap_medial_target) = 0) /\ (dsa_an_medial_target) = S ge_signed_half_medial_targetleft))) /\ ((((((cd) = 2 * (dsa_bp_medial_target) /\ (dsa_bn_medial_target) = 0) \/ exists ge_signed_half_medial_targetright. (((cd) = 2 * ge_signed_half_medial_targetright + 1 /\ (dsa_bp_medial_target) = 0) /\ (dsa_bn_medial_target) = S ge_signed_half_medial_targetright))) /\ ((((((out) = 2 * (dsa_cp_medial_target) /\ (dsa_cn_medial_target) = 0) \/ exists ge_signed_half_medial_targetoutput. (((out) = 2 * ge_signed_half_medial_targetoutput + 1 /\ (dsa_cp_medial_target) = 0) /\ (dsa_cn_medial_target) = S ge_signed_half_medial_targetoutput))) /\ ((dsa_ap_medial_target + dsa_bp_medial_target) + dsa_cn_medial_target = (dsa_an_medial_target + dsa_bn_medial_target) + dsa_cp_medial_target)))))))Constructive proof overview
Generated structural guide
The actual four canonical signed summands may be regrouped across two prefix/last-entry pairs, with a genuinely constructed intermediate sum.
The unchanged tactic script uses 4 declared prerequisites and contains 59 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
signed_add_total Alpha theorem; checked-use authorized signed_add_associative Alpha theorem; checked-use authorized signed_add_commutative Alpha theorem; checked-use authorized WS0018 signed_table_add_reassociateDirect 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–10
02Fix variables and assumptionsL11–14
03Establish hcyL15–18
04Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hcy
05Establish hrightL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed add associative.
- L20
have hright : SignedAdd(b,cd,x)Definitions: SignedAdd - L21
specialize signed_add_associative (b) - L22
specialize signed_add_associative (d) - L23
specialize signed_add_associative (c) - L24
specialize signed_add_associative (bd) - L25
specialize signed_add_associative (cd) - L26
specialize signed_add_associative (x) - L27
apply signed_add_associative - L28
exact hbd - L29
specialize signed_add_commutative (c)
06Use earlier factsL30–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
07Establish hfullL39–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed add associative.
- L39
have hfull : SignedAdd(a,x,out)Definitions: SignedAdd - L40
specialize signed_add_associative (a) - L41
specialize signed_add_associative (c) - L42
specialize signed_add_associative (bd) - L43
specialize signed_add_associative (ac) - L44
specialize signed_add_associative (x) - L45
specialize signed_add_associative (out) - L46
apply signed_add_associative - L47
exact hac - L48
exact hout
08Use earlier factsL49–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hcy_witness - L50
specialize signed_table_add_reassociate (a) - L51
specialize signed_table_add_reassociate (b) - L52
specialize signed_table_add_reassociate (cd) - L53
specialize signed_table_add_reassociate (ab) - L54
specialize signed_table_add_reassociate (x) - L55
specialize signed_table_add_reassociate (out) - L56
apply signed_table_add_reassociate - L57
exact hab - L58
exact hright
09Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
exact hfull
Original exact command ledger · 59 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro ab - 0006
intro cd - 0007
intro ac - 0008
intro bd - 0009
intro out - 0010
intro hab - 0011
intro hcd - 0012
intro hac - 0013
intro hbd - 0014
intro hout - 0015
have hcy : exists w. (exists dsa_ap_medial_middle dsa_an_medial_middle dsa_bp_medial_middle dsa_bn_medial_middle dsa_cp_medial_middle dsa_cn_medial_middle. (((((c) = 2 * (dsa_ap_medial_middle) /\ (dsa_an_medial_middle) = 0) \/ exists ge_signed_half_medial_middleleft. (((c) = 2 * ge_signed_half_medial_middleleft + 1 /\ (dsa_ap_medial_middle) = 0) /\ (dsa_an_medial_middle) = S ge_signed_half_medial_middleleft))) /\ ((((((bd) = 2 * (dsa_bp_medial_middle) /\ (dsa_bn_medial_middle) = 0) \/ exists ge_signed_half_medial_middleright. (((bd) = 2 * ge_signed_half_medial_middleright + 1 /\ (dsa_bp_medial_middle) = 0) /\ (dsa_bn_medial_middle) = S ge_signed_half_medial_middleright))) /\ ((((((w) = 2 * (dsa_cp_medial_middle) /\ (dsa_cn_medial_middle) = 0) \/ exists ge_signed_half_medial_middleoutput. (((w) = 2 * ge_signed_half_medial_middleoutput + 1 /\ (dsa_cp_medial_middle) = 0) /\ (dsa_cn_medial_middle) = S ge_signed_half_medial_middleoutput))) /\ ((dsa_ap_medial_middle + dsa_bp_medial_middle) + dsa_cn_medial_middle = (dsa_an_medial_middle + dsa_bn_medial_middle) + dsa_cp_medial_middle))))))) - 0016
specialize signed_add_total (c) - 0017
specialize signed_add_total (bd) - 0018
apply signed_add_total - 0019
cases hcy - 0020
have hright : exists dsa_ap_medial_right dsa_an_medial_right dsa_bp_medial_right dsa_bn_medial_right dsa_cp_medial_right dsa_cn_medial_right. (((((b) = 2 * (dsa_ap_medial_right) /\ (dsa_an_medial_right) = 0) \/ exists ge_signed_half_medial_rightleft. (((b) = 2 * ge_signed_half_medial_rightleft + 1 /\ (dsa_ap_medial_right) = 0) /\ (dsa_an_medial_right) = S ge_signed_half_medial_rightleft))) /\ ((((((cd) = 2 * (dsa_bp_medial_right) /\ (dsa_bn_medial_right) = 0) \/ exists ge_signed_half_medial_rightright. (((cd) = 2 * ge_signed_half_medial_rightright + 1 /\ (dsa_bp_medial_right) = 0) /\ (dsa_bn_medial_right) = S ge_signed_half_medial_rightright))) /\ ((((((x) = 2 * (dsa_cp_medial_right) /\ (dsa_cn_medial_right) = 0) \/ exists ge_signed_half_medial_rightoutput. (((x) = 2 * ge_signed_half_medial_rightoutput + 1 /\ (dsa_cp_medial_right) = 0) /\ (dsa_cn_medial_right) = S ge_signed_half_medial_rightoutput))) /\ ((dsa_ap_medial_right + dsa_bp_medial_right) + dsa_cn_medial_right = (dsa_an_medial_right + dsa_bn_medial_right) + dsa_cp_medial_right)))))) - 0021
specialize signed_add_associative (b) - 0022
specialize signed_add_associative (d) - 0023
specialize signed_add_associative (c) - 0024
specialize signed_add_associative (bd) - 0025
specialize signed_add_associative (cd) - 0026
specialize signed_add_associative (x) - 0027
apply signed_add_associative - 0028
exact hbd - 0029
specialize signed_add_commutative (c) - 0030
specialize signed_add_commutative (bd) - 0031
specialize signed_add_commutative (x) - 0032
apply signed_add_commutative - 0033
exact hcy_witness - 0034
specialize signed_add_commutative (c) - 0035
specialize signed_add_commutative (d) - 0036
specialize signed_add_commutative (cd) - 0037
apply signed_add_commutative - 0038
exact hcd - 0039
have hfull : exists dsa_ap_medial_full dsa_an_medial_full dsa_bp_medial_full dsa_bn_medial_full dsa_cp_medial_full dsa_cn_medial_full. (((((a) = 2 * (dsa_ap_medial_full) /\ (dsa_an_medial_full) = 0) \/ exists ge_signed_half_medial_fullleft. (((a) = 2 * ge_signed_half_medial_fullleft + 1 /\ (dsa_ap_medial_full) = 0) /\ (dsa_an_medial_full) = S ge_signed_half_medial_fullleft))) /\ ((((((x) = 2 * (dsa_bp_medial_full) /\ (dsa_bn_medial_full) = 0) \/ exists ge_signed_half_medial_fullright. (((x) = 2 * ge_signed_half_medial_fullright + 1 /\ (dsa_bp_medial_full) = 0) /\ (dsa_bn_medial_full) = S ge_signed_half_medial_fullright))) /\ ((((((out) = 2 * (dsa_cp_medial_full) /\ (dsa_cn_medial_full) = 0) \/ exists ge_signed_half_medial_fulloutput. (((out) = 2 * ge_signed_half_medial_fulloutput + 1 /\ (dsa_cp_medial_full) = 0) /\ (dsa_cn_medial_full) = S ge_signed_half_medial_fulloutput))) /\ ((dsa_ap_medial_full + dsa_bp_medial_full) + dsa_cn_medial_full = (dsa_an_medial_full + dsa_bn_medial_full) + dsa_cp_medial_full)))))) - 0040
specialize signed_add_associative (a) - 0041
specialize signed_add_associative (c) - 0042
specialize signed_add_associative (bd) - 0043
specialize signed_add_associative (ac) - 0044
specialize signed_add_associative (x) - 0045
specialize signed_add_associative (out) - 0046
apply signed_add_associative - 0047
exact hac - 0048
exact hout - 0049
exact hcy_witness - 0050
specialize signed_table_add_reassociate (a) - 0051
specialize signed_table_add_reassociate (b) - 0052
specialize signed_table_add_reassociate (cd) - 0053
specialize signed_table_add_reassociate (ab) - 0054
specialize signed_table_add_reassociate (x) - 0055
specialize signed_table_add_reassociate (out) - 0056
apply signed_table_add_reassociate - 0057
exact hab - 0058
exact hright - 0059
exact hfull