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 a b e. (exists dsa_ap_cancel_first dsa_an_cancel_first dsa_bp_cancel_first dsa_bn_cancel_first dsa_cp_cancel_first dsa_cn_cancel_first. (((((r) = 2 * (dsa_ap_cancel_first) /\ (dsa_an_cancel_first) = 0) \/ exists ge_signed_half_cancel_firstleft. (((r) = 2 * ge_signed_half_cancel_firstleft + 1 /\ (dsa_ap_cancel_first) = 0) /\ (dsa_an_cancel_first) = S ge_signed_half_cancel_firstleft))) /\ ((((((a) = 2 * (dsa_bp_cancel_first) /\ (dsa_bn_cancel_first) = 0) \/ exists ge_signed_half_cancel_firstright. (((a) = 2 * ge_signed_half_cancel_firstright + 1 /\ (dsa_bp_cancel_first) = 0) /\ (dsa_bn_cancel_first) = S ge_signed_half_cancel_firstright))) /\ ((((((e) = 2 * (dsa_cp_cancel_first) /\ (dsa_cn_cancel_first) = 0) \/ exists ge_signed_half_cancel_firstoutput. (((e) = 2 * ge_signed_half_cancel_firstoutput + 1 /\ (dsa_cp_cancel_first) = 0) /\ (dsa_cn_cancel_first) = S ge_signed_half_cancel_firstoutput))) /\ ((dsa_ap_cancel_first + dsa_bp_cancel_first) + dsa_cn_cancel_first = (dsa_an_cancel_first + dsa_bn_cancel_first) + dsa_cp_cancel_first))))))) -> (exists dsa_ap_cancel_second dsa_an_cancel_second dsa_bp_cancel_second dsa_bn_cancel_second dsa_cp_cancel_second dsa_cn_cancel_second. (((((r) = 2 * (dsa_ap_cancel_second) /\ (dsa_an_cancel_second) = 0) \/ exists ge_signed_half_cancel_secondleft. (((r) = 2 * ge_signed_half_cancel_secondleft + 1 /\ (dsa_ap_cancel_second) = 0) /\ (dsa_an_cancel_second) = S ge_signed_half_cancel_secondleft))) /\ ((((((b) = 2 * (dsa_bp_cancel_second) /\ (dsa_bn_cancel_second) = 0) \/ exists ge_signed_half_cancel_secondright. (((b) = 2 * ge_signed_half_cancel_secondright + 1 /\ (dsa_bp_cancel_second) = 0) /\ (dsa_bn_cancel_second) = S ge_signed_half_cancel_secondright))) /\ ((((((e) = 2 * (dsa_cp_cancel_second) /\ (dsa_cn_cancel_second) = 0) \/ exists ge_signed_half_cancel_secondoutput. (((e) = 2 * ge_signed_half_cancel_secondoutput + 1 /\ (dsa_cp_cancel_second) = 0) /\ (dsa_cn_cancel_second) = S ge_signed_half_cancel_secondoutput))) /\ ((dsa_ap_cancel_second + dsa_bp_cancel_second) + dsa_cn_cancel_second = (dsa_an_cancel_second + dsa_bn_cancel_second) + dsa_cp_cancel_second))))))) -> a=bConstructive proof overview
Generated structural guide
Cancellation of a common canonical signed summand follows by constructing its actual additive inverse.
The unchanged tactic script uses 5 declared prerequisites and contains 43 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
signed_negate_total Alpha theorem; checked-use authorized signed_add_functional Alpha theorem; checked-use authorized signed_add_associative Alpha theorem; checked-use authorized signed_add_negate_left_zero Alpha theorem; checked-use authorized signed_add_zero_left 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–6
02Establish hnL7–9
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed negate total.
- L7
have hn : ∃ n. ∃ x. ∃ y. SignedDecode(r,x,y) ∧ SignedDecode(n,y,x)Definitions: SignedDecode - L8
specialize signed_negate_total (r) - L9
apply signed_negate_total
03Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases hn
04Use earlier factsL11–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
specialize signed_add_functional (x) - L12
specialize signed_add_functional (e) - L13
specialize signed_add_functional (a) - L14
specialize signed_add_functional (b) - L15
apply signed_add_functional - L16
specialize signed_add_associative (x) - L17
specialize signed_add_associative (r) - L18
specialize signed_add_associative (a) - L19
specialize signed_add_associative (0) - L20
specialize signed_add_associative (e)
05Use earlier factsL21–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
specialize signed_add_associative (a) - L22
apply signed_add_associative - L23
specialize signed_add_negate_left_zero (r) - L24
specialize signed_add_negate_left_zero (x) - L25
apply signed_add_negate_left_zero - L26
exact hn_witness - L27
specialize signed_add_zero_left (a) - L28
apply signed_add_zero_left - L29
exact ha - L30
specialize signed_add_associative (x)
06Use earlier factsL31–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
specialize signed_add_associative (r) - L32
specialize signed_add_associative (b) - L33
specialize signed_add_associative (0) - L34
specialize signed_add_associative (e) - L35
specialize signed_add_associative (b) - L36
apply signed_add_associative - L37
specialize signed_add_negate_left_zero (r) - L38
specialize signed_add_negate_left_zero (x) - L39
apply signed_add_negate_left_zero - L40
exact hn_witness
Original exact command ledger · 43 lines
- 0001
intro r - 0002
intro a - 0003
intro b - 0004
intro e - 0005
intro ha - 0006
intro hb - 0007
have hn : exists n. (exists mps_positive_cancel_negate mps_negative_cancel_negate. (((((r) = 2 * (mps_positive_cancel_negate) /\ (mps_negative_cancel_negate) = 0) \/ exists ge_signed_half_cancel_negatesource. (((r) = 2 * ge_signed_half_cancel_negatesource + 1 /\ (mps_positive_cancel_negate) = 0) /\ (mps_negative_cancel_negate) = S ge_signed_half_cancel_negatesource))) /\ ((((n) = 2 * (mps_negative_cancel_negate) /\ (mps_positive_cancel_negate) = 0) \/ exists ge_signed_half_cancel_negatetarget. (((n) = 2 * ge_signed_half_cancel_negatetarget + 1 /\ (mps_negative_cancel_negate) = 0) /\ (mps_positive_cancel_negate) = S ge_signed_half_cancel_negatetarget))))) - 0008
specialize signed_negate_total (r) - 0009
apply signed_negate_total - 0010
cases hn - 0011
specialize signed_add_functional (x) - 0012
specialize signed_add_functional (e) - 0013
specialize signed_add_functional (a) - 0014
specialize signed_add_functional (b) - 0015
apply signed_add_functional - 0016
specialize signed_add_associative (x) - 0017
specialize signed_add_associative (r) - 0018
specialize signed_add_associative (a) - 0019
specialize signed_add_associative (0) - 0020
specialize signed_add_associative (e) - 0021
specialize signed_add_associative (a) - 0022
apply signed_add_associative - 0023
specialize signed_add_negate_left_zero (r) - 0024
specialize signed_add_negate_left_zero (x) - 0025
apply signed_add_negate_left_zero - 0026
exact hn_witness - 0027
specialize signed_add_zero_left (a) - 0028
apply signed_add_zero_left - 0029
exact ha - 0030
specialize signed_add_associative (x) - 0031
specialize signed_add_associative (r) - 0032
specialize signed_add_associative (b) - 0033
specialize signed_add_associative (0) - 0034
specialize signed_add_associative (e) - 0035
specialize signed_add_associative (b) - 0036
apply signed_add_associative - 0037
specialize signed_add_negate_left_zero (r) - 0038
specialize signed_add_negate_left_zero (x) - 0039
apply signed_add_negate_left_zero - 0040
exact hn_witness - 0041
specialize signed_add_zero_left (b) - 0042
apply signed_add_zero_left - 0043
exact hb