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 sto_ap_four_ab sto_an_four_ab sto_bp_four_ab sto_bn_four_ab sto_cp_four_ab sto_cn_four_ab. (((((a) = 2 * (sto_ap_four_ab) /\ (sto_an_four_ab) = 0) \/ exists ge_signed_half_four_ableft. (((a) = 2 * ge_signed_half_four_ableft + 1 /\ (sto_ap_four_ab) = 0) /\ (sto_an_four_ab) = S ge_signed_half_four_ableft))) /\ ((((((b) = 2 * (sto_bp_four_ab) /\ (sto_bn_four_ab) = 0) \/ exists ge_signed_half_four_abright. (((b) = 2 * ge_signed_half_four_abright + 1 /\ (sto_bp_four_ab) = 0) /\ (sto_bn_four_ab) = S ge_signed_half_four_abright))) /\ ((((((ab) = 2 * (sto_cp_four_ab) /\ (sto_cn_four_ab) = 0) \/ exists ge_signed_half_four_aboutput. (((ab) = 2 * ge_signed_half_four_aboutput + 1 /\ (sto_cp_four_ab) = 0) /\ (sto_cn_four_ab) = S ge_signed_half_four_aboutput))) /\ ((sto_ap_four_ab * sto_bp_four_ab + sto_an_four_ab * sto_bn_four_ab) + sto_cn_four_ab = (sto_ap_four_ab * sto_bn_four_ab + sto_an_four_ab * sto_bp_four_ab) + sto_cp_four_ab))))))) -> (exists sto_ap_four_cd sto_an_four_cd sto_bp_four_cd sto_bn_four_cd sto_cp_four_cd sto_cn_four_cd. (((((c) = 2 * (sto_ap_four_cd) /\ (sto_an_four_cd) = 0) \/ exists ge_signed_half_four_cdleft. (((c) = 2 * ge_signed_half_four_cdleft + 1 /\ (sto_ap_four_cd) = 0) /\ (sto_an_four_cd) = S ge_signed_half_four_cdleft))) /\ ((((((d) = 2 * (sto_bp_four_cd) /\ (sto_bn_four_cd) = 0) \/ exists ge_signed_half_four_cdright. (((d) = 2 * ge_signed_half_four_cdright + 1 /\ (sto_bp_four_cd) = 0) /\ (sto_bn_four_cd) = S ge_signed_half_four_cdright))) /\ ((((((cd) = 2 * (sto_cp_four_cd) /\ (sto_cn_four_cd) = 0) \/ exists ge_signed_half_four_cdoutput. (((cd) = 2 * ge_signed_half_four_cdoutput + 1 /\ (sto_cp_four_cd) = 0) /\ (sto_cn_four_cd) = S ge_signed_half_four_cdoutput))) /\ ((sto_ap_four_cd * sto_bp_four_cd + sto_an_four_cd * sto_bn_four_cd) + sto_cn_four_cd = (sto_ap_four_cd * sto_bn_four_cd + sto_an_four_cd * sto_bp_four_cd) + sto_cp_four_cd))))))) -> (exists sto_ap_four_ac sto_an_four_ac sto_bp_four_ac sto_bn_four_ac sto_cp_four_ac sto_cn_four_ac. (((((a) = 2 * (sto_ap_four_ac) /\ (sto_an_four_ac) = 0) \/ exists ge_signed_half_four_acleft. (((a) = 2 * ge_signed_half_four_acleft + 1 /\ (sto_ap_four_ac) = 0) /\ (sto_an_four_ac) = S ge_signed_half_four_acleft))) /\ ((((((c) = 2 * (sto_bp_four_ac) /\ (sto_bn_four_ac) = 0) \/ exists ge_signed_half_four_acright. (((c) = 2 * ge_signed_half_four_acright + 1 /\ (sto_bp_four_ac) = 0) /\ (sto_bn_four_ac) = S ge_signed_half_four_acright))) /\ ((((((ac) = 2 * (sto_cp_four_ac) /\ (sto_cn_four_ac) = 0) \/ exists ge_signed_half_four_acoutput. (((ac) = 2 * ge_signed_half_four_acoutput + 1 /\ (sto_cp_four_ac) = 0) /\ (sto_cn_four_ac) = S ge_signed_half_four_acoutput))) /\ ((sto_ap_four_ac * sto_bp_four_ac + sto_an_four_ac * sto_bn_four_ac) + sto_cn_four_ac = (sto_ap_four_ac * sto_bn_four_ac + sto_an_four_ac * sto_bp_four_ac) + sto_cp_four_ac))))))) -> (exists sto_ap_four_bd sto_an_four_bd sto_bp_four_bd sto_bn_four_bd sto_cp_four_bd sto_cn_four_bd. (((((b) = 2 * (sto_ap_four_bd) /\ (sto_an_four_bd) = 0) \/ exists ge_signed_half_four_bdleft. (((b) = 2 * ge_signed_half_four_bdleft + 1 /\ (sto_ap_four_bd) = 0) /\ (sto_an_four_bd) = S ge_signed_half_four_bdleft))) /\ ((((((d) = 2 * (sto_bp_four_bd) /\ (sto_bn_four_bd) = 0) \/ exists ge_signed_half_four_bdright. (((d) = 2 * ge_signed_half_four_bdright + 1 /\ (sto_bp_four_bd) = 0) /\ (sto_bn_four_bd) = S ge_signed_half_four_bdright))) /\ ((((((bd) = 2 * (sto_cp_four_bd) /\ (sto_cn_four_bd) = 0) \/ exists ge_signed_half_four_bdoutput. (((bd) = 2 * ge_signed_half_four_bdoutput + 1 /\ (sto_cp_four_bd) = 0) /\ (sto_cn_four_bd) = S ge_signed_half_four_bdoutput))) /\ ((sto_ap_four_bd * sto_bp_four_bd + sto_an_four_bd * sto_bn_four_bd) + sto_cn_four_bd = (sto_ap_four_bd * sto_bn_four_bd + sto_an_four_bd * sto_bp_four_bd) + sto_cp_four_bd))))))) -> (exists sto_ap_four_source sto_an_four_source sto_bp_four_source sto_bn_four_source sto_cp_four_source sto_cn_four_source. (((((ac) = 2 * (sto_ap_four_source) /\ (sto_an_four_source) = 0) \/ exists ge_signed_half_four_sourceleft. (((ac) = 2 * ge_signed_half_four_sourceleft + 1 /\ (sto_ap_four_source) = 0) /\ (sto_an_four_source) = S ge_signed_half_four_sourceleft))) /\ ((((((bd) = 2 * (sto_bp_four_source) /\ (sto_bn_four_source) = 0) \/ exists ge_signed_half_four_sourceright. (((bd) = 2 * ge_signed_half_four_sourceright + 1 /\ (sto_bp_four_source) = 0) /\ (sto_bn_four_source) = S ge_signed_half_four_sourceright))) /\ ((((((out) = 2 * (sto_cp_four_source) /\ (sto_cn_four_source) = 0) \/ exists ge_signed_half_four_sourceoutput. (((out) = 2 * ge_signed_half_four_sourceoutput + 1 /\ (sto_cp_four_source) = 0) /\ (sto_cn_four_source) = S ge_signed_half_four_sourceoutput))) /\ ((sto_ap_four_source * sto_bp_four_source + sto_an_four_source * sto_bn_four_source) + sto_cn_four_source = (sto_ap_four_source * sto_bn_four_source + sto_an_four_source * sto_bp_four_source) + sto_cp_four_source))))))) -> (exists sto_ap_four_target sto_an_four_target sto_bp_four_target sto_bn_four_target sto_cp_four_target sto_cn_four_target. (((((ab) = 2 * (sto_ap_four_target) /\ (sto_an_four_target) = 0) \/ exists ge_signed_half_four_targetleft. (((ab) = 2 * ge_signed_half_four_targetleft + 1 /\ (sto_ap_four_target) = 0) /\ (sto_an_four_target) = S ge_signed_half_four_targetleft))) /\ ((((((cd) = 2 * (sto_bp_four_target) /\ (sto_bn_four_target) = 0) \/ exists ge_signed_half_four_targetright. (((cd) = 2 * ge_signed_half_four_targetright + 1 /\ (sto_bp_four_target) = 0) /\ (sto_bn_four_target) = S ge_signed_half_four_targetright))) /\ ((((((out) = 2 * (sto_cp_four_target) /\ (sto_cn_four_target) = 0) \/ exists ge_signed_half_four_targetoutput. (((out) = 2 * ge_signed_half_four_targetoutput + 1 /\ (sto_cp_four_target) = 0) /\ (sto_cn_four_target) = S ge_signed_half_four_targetoutput))) /\ ((sto_ap_four_target * sto_bp_four_target + sto_an_four_target * sto_bn_four_target) + sto_cn_four_target = (sto_ap_four_target * sto_bn_four_target + sto_an_four_target * sto_bp_four_target) + sto_cp_four_target)))))))Constructive proof overview
Generated structural guide
Reorder four actual signed factors by constructing the intermediate product and using checked associativity and commutativity.
The unchanged tactic script uses 4 declared prerequisites and contains 61 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
signed_mul_total Alpha theorem; checked-use authorized signed_mul_associative Alpha theorem; checked-use authorized signed_weighted_scalar_commute Alpha theorem; checked-use authorized signed_mul_commutative 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–10
02Fix variables and assumptionsL11–14
03Establish hkL15–18
04Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hk
05Establish hakL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed mul associative.
- L20
have hak : SignedMul(a,x,out)Definitions: SignedMul - L21
specialize signed_mul_associative (a) - L22
specialize signed_mul_associative (c) - L23
specialize signed_mul_associative (bd) - L24
specialize signed_mul_associative (ac) - L25
specialize signed_mul_associative (x) - L26
specialize signed_mul_associative (out) - L27
apply signed_mul_associative - L28
exact hac - L29
exact hout
06Use earlier factsL30–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
exact hk_witness
07Establish hbkL31–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed weighted scalar commute.
- L31
have hbk : SignedMul(b,cd,x)Definitions: SignedMul - L32
specialize signed_weighted_scalar_commute (b) - L33
specialize signed_weighted_scalar_commute (d) - L34
specialize signed_weighted_scalar_commute (c) - L35
specialize signed_weighted_scalar_commute (bd) - L36
specialize signed_weighted_scalar_commute (cd) - L37
specialize signed_weighted_scalar_commute (x) - L38
apply signed_weighted_scalar_commute - L39
exact hbd - L40
exact hcd
08Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hk_witness
09Establish hcbL42–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed mul commutative.
- L42
have hcb : SignedMul(cd,b,x)Definitions: SignedMul - L43
specialize signed_mul_commutative (b) - L44
specialize signed_mul_commutative (cd) - L45
specialize signed_mul_commutative (x) - L46
apply signed_mul_commutative - L47
exact hbk - L48
specialize signed_mul_commutative (cd) - L49
specialize signed_mul_commutative (ab) - L50
specialize signed_mul_commutative (out) - L51
apply signed_mul_commutative
10Use earlier factsL52–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
specialize signed_weighted_scalar_commute (cd) - L53
specialize signed_weighted_scalar_commute (b) - L54
specialize signed_weighted_scalar_commute (a) - L55
specialize signed_weighted_scalar_commute (x) - L56
specialize signed_weighted_scalar_commute (ab) - L57
specialize signed_weighted_scalar_commute (out) - L58
apply signed_weighted_scalar_commute - L59
exact hcb - L60
exact hab - L61
exact hak
Original exact command ledger · 61 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 hk : exists k. (exists sto_ap_four_construct sto_an_four_construct sto_bp_four_construct sto_bn_four_construct sto_cp_four_construct sto_cn_four_construct. (((((c) = 2 * (sto_ap_four_construct) /\ (sto_an_four_construct) = 0) \/ exists ge_signed_half_four_constructleft. (((c) = 2 * ge_signed_half_four_constructleft + 1 /\ (sto_ap_four_construct) = 0) /\ (sto_an_four_construct) = S ge_signed_half_four_constructleft))) /\ ((((((bd) = 2 * (sto_bp_four_construct) /\ (sto_bn_four_construct) = 0) \/ exists ge_signed_half_four_constructright. (((bd) = 2 * ge_signed_half_four_constructright + 1 /\ (sto_bp_four_construct) = 0) /\ (sto_bn_four_construct) = S ge_signed_half_four_constructright))) /\ ((((((k) = 2 * (sto_cp_four_construct) /\ (sto_cn_four_construct) = 0) \/ exists ge_signed_half_four_constructoutput. (((k) = 2 * ge_signed_half_four_constructoutput + 1 /\ (sto_cp_four_construct) = 0) /\ (sto_cn_four_construct) = S ge_signed_half_four_constructoutput))) /\ ((sto_ap_four_construct * sto_bp_four_construct + sto_an_four_construct * sto_bn_four_construct) + sto_cn_four_construct = (sto_ap_four_construct * sto_bn_four_construct + sto_an_four_construct * sto_bp_four_construct) + sto_cp_four_construct))))))) - 0016
specialize signed_mul_total (c) - 0017
specialize signed_mul_total (bd) - 0018
apply signed_mul_total - 0019
cases hk - 0020
have hak : exists sto_ap_four_first_rebracket sto_an_four_first_rebracket sto_bp_four_first_rebracket sto_bn_four_first_rebracket sto_cp_four_first_rebracket sto_cn_four_first_rebracket. (((((a) = 2 * (sto_ap_four_first_rebracket) /\ (sto_an_four_first_rebracket) = 0) \/ exists ge_signed_half_four_first_rebracketleft. (((a) = 2 * ge_signed_half_four_first_rebracketleft + 1 /\ (sto_ap_four_first_rebracket) = 0) /\ (sto_an_four_first_rebracket) = S ge_signed_half_four_first_rebracketleft))) /\ ((((((x) = 2 * (sto_bp_four_first_rebracket) /\ (sto_bn_four_first_rebracket) = 0) \/ exists ge_signed_half_four_first_rebracketright. (((x) = 2 * ge_signed_half_four_first_rebracketright + 1 /\ (sto_bp_four_first_rebracket) = 0) /\ (sto_bn_four_first_rebracket) = S ge_signed_half_four_first_rebracketright))) /\ ((((((out) = 2 * (sto_cp_four_first_rebracket) /\ (sto_cn_four_first_rebracket) = 0) \/ exists ge_signed_half_four_first_rebracketoutput. (((out) = 2 * ge_signed_half_four_first_rebracketoutput + 1 /\ (sto_cp_four_first_rebracket) = 0) /\ (sto_cn_four_first_rebracket) = S ge_signed_half_four_first_rebracketoutput))) /\ ((sto_ap_four_first_rebracket * sto_bp_four_first_rebracket + sto_an_four_first_rebracket * sto_bn_four_first_rebracket) + sto_cn_four_first_rebracket = (sto_ap_four_first_rebracket * sto_bn_four_first_rebracket + sto_an_four_first_rebracket * sto_bp_four_first_rebracket) + sto_cp_four_first_rebracket)))))) - 0021
specialize signed_mul_associative (a) - 0022
specialize signed_mul_associative (c) - 0023
specialize signed_mul_associative (bd) - 0024
specialize signed_mul_associative (ac) - 0025
specialize signed_mul_associative (x) - 0026
specialize signed_mul_associative (out) - 0027
apply signed_mul_associative - 0028
exact hac - 0029
exact hout - 0030
exact hk_witness - 0031
have hbk : exists sto_ap_four_middle_swap sto_an_four_middle_swap sto_bp_four_middle_swap sto_bn_four_middle_swap sto_cp_four_middle_swap sto_cn_four_middle_swap. (((((b) = 2 * (sto_ap_four_middle_swap) /\ (sto_an_four_middle_swap) = 0) \/ exists ge_signed_half_four_middle_swapleft. (((b) = 2 * ge_signed_half_four_middle_swapleft + 1 /\ (sto_ap_four_middle_swap) = 0) /\ (sto_an_four_middle_swap) = S ge_signed_half_four_middle_swapleft))) /\ ((((((cd) = 2 * (sto_bp_four_middle_swap) /\ (sto_bn_four_middle_swap) = 0) \/ exists ge_signed_half_four_middle_swapright. (((cd) = 2 * ge_signed_half_four_middle_swapright + 1 /\ (sto_bp_four_middle_swap) = 0) /\ (sto_bn_four_middle_swap) = S ge_signed_half_four_middle_swapright))) /\ ((((((x) = 2 * (sto_cp_four_middle_swap) /\ (sto_cn_four_middle_swap) = 0) \/ exists ge_signed_half_four_middle_swapoutput. (((x) = 2 * ge_signed_half_four_middle_swapoutput + 1 /\ (sto_cp_four_middle_swap) = 0) /\ (sto_cn_four_middle_swap) = S ge_signed_half_four_middle_swapoutput))) /\ ((sto_ap_four_middle_swap * sto_bp_four_middle_swap + sto_an_four_middle_swap * sto_bn_four_middle_swap) + sto_cn_four_middle_swap = (sto_ap_four_middle_swap * sto_bn_four_middle_swap + sto_an_four_middle_swap * sto_bp_four_middle_swap) + sto_cp_four_middle_swap)))))) - 0032
specialize signed_weighted_scalar_commute (b) - 0033
specialize signed_weighted_scalar_commute (d) - 0034
specialize signed_weighted_scalar_commute (c) - 0035
specialize signed_weighted_scalar_commute (bd) - 0036
specialize signed_weighted_scalar_commute (cd) - 0037
specialize signed_weighted_scalar_commute (x) - 0038
apply signed_weighted_scalar_commute - 0039
exact hbd - 0040
exact hcd - 0041
exact hk_witness - 0042
have hcb : exists sto_ap_four_middle_commute sto_an_four_middle_commute sto_bp_four_middle_commute sto_bn_four_middle_commute sto_cp_four_middle_commute sto_cn_four_middle_commute. (((((cd) = 2 * (sto_ap_four_middle_commute) /\ (sto_an_four_middle_commute) = 0) \/ exists ge_signed_half_four_middle_commuteleft. (((cd) = 2 * ge_signed_half_four_middle_commuteleft + 1 /\ (sto_ap_four_middle_commute) = 0) /\ (sto_an_four_middle_commute) = S ge_signed_half_four_middle_commuteleft))) /\ ((((((b) = 2 * (sto_bp_four_middle_commute) /\ (sto_bn_four_middle_commute) = 0) \/ exists ge_signed_half_four_middle_commuteright. (((b) = 2 * ge_signed_half_four_middle_commuteright + 1 /\ (sto_bp_four_middle_commute) = 0) /\ (sto_bn_four_middle_commute) = S ge_signed_half_four_middle_commuteright))) /\ ((((((x) = 2 * (sto_cp_four_middle_commute) /\ (sto_cn_four_middle_commute) = 0) \/ exists ge_signed_half_four_middle_commuteoutput. (((x) = 2 * ge_signed_half_four_middle_commuteoutput + 1 /\ (sto_cp_four_middle_commute) = 0) /\ (sto_cn_four_middle_commute) = S ge_signed_half_four_middle_commuteoutput))) /\ ((sto_ap_four_middle_commute * sto_bp_four_middle_commute + sto_an_four_middle_commute * sto_bn_four_middle_commute) + sto_cn_four_middle_commute = (sto_ap_four_middle_commute * sto_bn_four_middle_commute + sto_an_four_middle_commute * sto_bp_four_middle_commute) + sto_cp_four_middle_commute)))))) - 0043
specialize signed_mul_commutative (b) - 0044
specialize signed_mul_commutative (cd) - 0045
specialize signed_mul_commutative (x) - 0046
apply signed_mul_commutative - 0047
exact hbk - 0048
specialize signed_mul_commutative (cd) - 0049
specialize signed_mul_commutative (ab) - 0050
specialize signed_mul_commutative (out) - 0051
apply signed_mul_commutative - 0052
specialize signed_weighted_scalar_commute (cd) - 0053
specialize signed_weighted_scalar_commute (b) - 0054
specialize signed_weighted_scalar_commute (a) - 0055
specialize signed_weighted_scalar_commute (x) - 0056
specialize signed_weighted_scalar_commute (ab) - 0057
specialize signed_weighted_scalar_commute (out) - 0058
apply signed_weighted_scalar_commute - 0059
exact hcb - 0060
exact hab - 0061
exact hak