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 original first-admission records.
Exact expanded first-order arithmetic statement
forall ap an bp bn cp cn dp dn n. (((ap) + (cn)) = ((cp) + (an))) -> (((bp) + (dn)) = ((dp) + (bn))) -> (((((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn))))))) + (((((ap) * (bn))) + (((an) * (bp)))))) = ((((((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp))))))) + (((((ap) * (bp))) + (((an) * (bn))))))) + (n))) -> (((((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn))))))) + (((((cp) * (dn))) + (((cn) * (dp)))))) = ((((((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp))))))) + (((((cp) * (dp))) + (((cn) * (dn))))))) + (n)))Constructive proof overview
Generated structural guide
The norm depends only on the represented integers, not on a chosen positive/negative decomposition of either coordinate.
The unchanged tactic script uses 4 declared prerequisites and contains 87 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
matrix_integer_pair_product_balance Alpha theorem; checked-use authorized matrix_integer_pair_negation_balance Alpha theorem; checked-use authorized integer_span_pair_add_congruence Alpha theorem; checked-use authorized EI000A eisenstein_pair_natural_value_transportDirect 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–12
03Establish haaL13–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix integer pair product balance.
- L13
have haa : ((((((ap) * (ap))) + (((an) * (an))))) + (((((cp) * (cn))) + (((cn) * (cp)))))) = ((((((cp) * (cp))) + (((cn) * (cn))))) + (((((ap) * (an))) + (((an) * (ap)))))) - L14
specialize matrix_integer_pair_product_balance ap - L15
specialize matrix_integer_pair_product_balance an - L16
specialize matrix_integer_pair_product_balance cp - L17
specialize matrix_integer_pair_product_balance cn - L18
specialize matrix_integer_pair_product_balance ap - L19
specialize matrix_integer_pair_product_balance an - L20
specialize matrix_integer_pair_product_balance cp - L21
specialize matrix_integer_pair_product_balance cn - L22
apply matrix_integer_pair_product_balance
04Use earlier factsL23–24
05Establish hbbL25–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix integer pair product balance.
- L25
have hbb : ((((((bp) * (bp))) + (((bn) * (bn))))) + (((((dp) * (dn))) + (((dn) * (dp)))))) = ((((((dp) * (dp))) + (((dn) * (dn))))) + (((((bp) * (bn))) + (((bn) * (bp)))))) - L26
specialize matrix_integer_pair_product_balance bp - L27
specialize matrix_integer_pair_product_balance bn - L28
specialize matrix_integer_pair_product_balance dp - L29
specialize matrix_integer_pair_product_balance dn - L30
specialize matrix_integer_pair_product_balance bp - L31
specialize matrix_integer_pair_product_balance bn - L32
specialize matrix_integer_pair_product_balance dp - L33
specialize matrix_integer_pair_product_balance dn - L34
apply matrix_integer_pair_product_balance
06Use earlier factsL35–36
07Establish habL37–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix integer pair product balance.
- L37
have hab : ((((((ap) * (bp))) + (((an) * (bn))))) + (((((cp) * (dn))) + (((cn) * (dp)))))) = ((((((cp) * (dp))) + (((cn) * (dn))))) + (((((ap) * (bn))) + (((an) * (bp)))))) - L38
specialize matrix_integer_pair_product_balance ap - L39
specialize matrix_integer_pair_product_balance an - L40
specialize matrix_integer_pair_product_balance cp - L41
specialize matrix_integer_pair_product_balance cn - L42
specialize matrix_integer_pair_product_balance bp - L43
specialize matrix_integer_pair_product_balance bn - L44
specialize matrix_integer_pair_product_balance dp - L45
specialize matrix_integer_pair_product_balance dn - L46
apply matrix_integer_pair_product_balance
08Use earlier factsL47–48
09Establish hsquaresL49–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply integer span pair add congruence.
- L49
have hsquares : ((((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn))))))) + (((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp)))))))) = ((((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn))))))) + (((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp)))))))) - L50
specialize integer_span_pair_add_congruence ((((ap) * (ap))) + (((an) * (an)))) - L51
specialize integer_span_pair_add_congruence ((((ap) * (an))) + (((an) * (ap)))) - L52
specialize integer_span_pair_add_congruence ((((bp) * (bp))) + (((bn) * (bn)))) - L53
specialize integer_span_pair_add_congruence ((((bp) * (bn))) + (((bn) * (bp)))) - L54
specialize integer_span_pair_add_congruence ((((cp) * (cp))) + (((cn) * (cn)))) - L55
specialize integer_span_pair_add_congruence ((((cp) * (cn))) + (((cn) * (cp)))) - L56
specialize integer_span_pair_add_congruence ((((dp) * (dp))) + (((dn) * (dn)))) - L57
specialize integer_span_pair_add_congruence ((((dp) * (dn))) + (((dn) * (dp)))) - L58
apply integer_span_pair_add_congruence
10Use earlier factsL59–60
11Establish hnegativeL61–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix integer pair negation balance.
- L61
have hnegative : ((((((ap) * (bn))) + (((an) * (bp))))) + (((((cp) * (dp))) + (((cn) * (dn)))))) = ((((((cp) * (dn))) + (((cn) * (dp))))) + (((((ap) * (bp))) + (((an) * (bn)))))) - L62
specialize matrix_integer_pair_negation_balance ((((ap) * (bp))) + (((an) * (bn)))) - L63
specialize matrix_integer_pair_negation_balance ((((ap) * (bn))) + (((an) * (bp)))) - L64
specialize matrix_integer_pair_negation_balance ((((cp) * (dp))) + (((cn) * (dn)))) - L65
specialize matrix_integer_pair_negation_balance ((((cp) * (dn))) + (((cn) * (dp)))) - L66
apply matrix_integer_pair_negation_balance - L67
exact hab
12Establish hnormpairL68–77
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply integer span pair add congruence.
- L68
have hnormpair : ((((((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn))))))) + (((((ap) * (bn))) + (((an) * (bp))))))) + (((((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp))))))) + (((((cp) * (dp))) + (((cn) * (dn)))))))) = ((((((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn))))))) + (((((cp) * (dn))) + (((cn) * (dp))))))) + (((((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp))))))) + (((((ap) * (bp))) + (((an) * (bn)))))))) - L69
specialize integer_span_pair_add_congruence ((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn)))))) - L70
specialize integer_span_pair_add_congruence ((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp)))))) - L71
specialize integer_span_pair_add_congruence ((((ap) * (bn))) + (((an) * (bp)))) - L72
specialize integer_span_pair_add_congruence ((((ap) * (bp))) + (((an) * (bn)))) - L73
specialize integer_span_pair_add_congruence ((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn)))))) - L74
specialize integer_span_pair_add_congruence ((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp)))))) - L75
specialize integer_span_pair_add_congruence ((((cp) * (dn))) + (((cn) * (dp)))) - L76
specialize integer_span_pair_add_congruence ((((cp) * (dp))) + (((cn) * (dn)))) - L77
apply integer_span_pair_add_congruence
13Use earlier factsL78–87
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
exact hsquares - L79
exact hnegative - L80
specialize eisenstein_pair_natural_value_transport ((((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn))))))) + (((((ap) * (bn))) + (((an) * (bp)))))) - L81
specialize eisenstein_pair_natural_value_transport ((((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp))))))) + (((((ap) * (bp))) + (((an) * (bn)))))) - L82
specialize eisenstein_pair_natural_value_transport ((((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn))))))) + (((((cp) * (dn))) + (((cn) * (dp)))))) - L83
specialize eisenstein_pair_natural_value_transport ((((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp))))))) + (((((cp) * (dp))) + (((cn) * (dn)))))) - L84
specialize eisenstein_pair_natural_value_transport n - L85
apply eisenstein_pair_natural_value_transport - L86
exact hnorm - L87
exact hnormpair
Original exact command ledger · 87 lines
- 0001
intro ap - 0002
intro an - 0003
intro bp - 0004
intro bn - 0005
intro cp - 0006
intro cn - 0007
intro dp - 0008
intro dn - 0009
intro n - 0010
intro ha - 0011
intro hb - 0012
intro hnorm - 0013
have haa : ((((((ap) * (ap))) + (((an) * (an))))) + (((((cp) * (cn))) + (((cn) * (cp)))))) = ((((((cp) * (cp))) + (((cn) * (cn))))) + (((((ap) * (an))) + (((an) * (ap)))))) - 0014
specialize matrix_integer_pair_product_balance ap - 0015
specialize matrix_integer_pair_product_balance an - 0016
specialize matrix_integer_pair_product_balance cp - 0017
specialize matrix_integer_pair_product_balance cn - 0018
specialize matrix_integer_pair_product_balance ap - 0019
specialize matrix_integer_pair_product_balance an - 0020
specialize matrix_integer_pair_product_balance cp - 0021
specialize matrix_integer_pair_product_balance cn - 0022
apply matrix_integer_pair_product_balance - 0023
exact ha - 0024
exact ha - 0025
have hbb : ((((((bp) * (bp))) + (((bn) * (bn))))) + (((((dp) * (dn))) + (((dn) * (dp)))))) = ((((((dp) * (dp))) + (((dn) * (dn))))) + (((((bp) * (bn))) + (((bn) * (bp)))))) - 0026
specialize matrix_integer_pair_product_balance bp - 0027
specialize matrix_integer_pair_product_balance bn - 0028
specialize matrix_integer_pair_product_balance dp - 0029
specialize matrix_integer_pair_product_balance dn - 0030
specialize matrix_integer_pair_product_balance bp - 0031
specialize matrix_integer_pair_product_balance bn - 0032
specialize matrix_integer_pair_product_balance dp - 0033
specialize matrix_integer_pair_product_balance dn - 0034
apply matrix_integer_pair_product_balance - 0035
exact hb - 0036
exact hb - 0037
have hab : ((((((ap) * (bp))) + (((an) * (bn))))) + (((((cp) * (dn))) + (((cn) * (dp)))))) = ((((((cp) * (dp))) + (((cn) * (dn))))) + (((((ap) * (bn))) + (((an) * (bp)))))) - 0038
specialize matrix_integer_pair_product_balance ap - 0039
specialize matrix_integer_pair_product_balance an - 0040
specialize matrix_integer_pair_product_balance cp - 0041
specialize matrix_integer_pair_product_balance cn - 0042
specialize matrix_integer_pair_product_balance bp - 0043
specialize matrix_integer_pair_product_balance bn - 0044
specialize matrix_integer_pair_product_balance dp - 0045
specialize matrix_integer_pair_product_balance dn - 0046
apply matrix_integer_pair_product_balance - 0047
exact ha - 0048
exact hb - 0049
have hsquares : ((((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn))))))) + (((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp)))))))) = ((((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn))))))) + (((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp)))))))) - 0050
specialize integer_span_pair_add_congruence ((((ap) * (ap))) + (((an) * (an)))) - 0051
specialize integer_span_pair_add_congruence ((((ap) * (an))) + (((an) * (ap)))) - 0052
specialize integer_span_pair_add_congruence ((((bp) * (bp))) + (((bn) * (bn)))) - 0053
specialize integer_span_pair_add_congruence ((((bp) * (bn))) + (((bn) * (bp)))) - 0054
specialize integer_span_pair_add_congruence ((((cp) * (cp))) + (((cn) * (cn)))) - 0055
specialize integer_span_pair_add_congruence ((((cp) * (cn))) + (((cn) * (cp)))) - 0056
specialize integer_span_pair_add_congruence ((((dp) * (dp))) + (((dn) * (dn)))) - 0057
specialize integer_span_pair_add_congruence ((((dp) * (dn))) + (((dn) * (dp)))) - 0058
apply integer_span_pair_add_congruence - 0059
exact haa - 0060
exact hbb - 0061
have hnegative : ((((((ap) * (bn))) + (((an) * (bp))))) + (((((cp) * (dp))) + (((cn) * (dn)))))) = ((((((cp) * (dn))) + (((cn) * (dp))))) + (((((ap) * (bp))) + (((an) * (bn)))))) - 0062
specialize matrix_integer_pair_negation_balance ((((ap) * (bp))) + (((an) * (bn)))) - 0063
specialize matrix_integer_pair_negation_balance ((((ap) * (bn))) + (((an) * (bp)))) - 0064
specialize matrix_integer_pair_negation_balance ((((cp) * (dp))) + (((cn) * (dn)))) - 0065
specialize matrix_integer_pair_negation_balance ((((cp) * (dn))) + (((cn) * (dp)))) - 0066
apply matrix_integer_pair_negation_balance - 0067
exact hab - 0068
have hnormpair : ((((((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn))))))) + (((((ap) * (bn))) + (((an) * (bp))))))) + (((((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp))))))) + (((((cp) * (dp))) + (((cn) * (dn)))))))) = ((((((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn))))))) + (((((cp) * (dn))) + (((cn) * (dp))))))) + (((((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp))))))) + (((((ap) * (bp))) + (((an) * (bn)))))))) - 0069
specialize integer_span_pair_add_congruence ((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn)))))) - 0070
specialize integer_span_pair_add_congruence ((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp)))))) - 0071
specialize integer_span_pair_add_congruence ((((ap) * (bn))) + (((an) * (bp)))) - 0072
specialize integer_span_pair_add_congruence ((((ap) * (bp))) + (((an) * (bn)))) - 0073
specialize integer_span_pair_add_congruence ((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn)))))) - 0074
specialize integer_span_pair_add_congruence ((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp)))))) - 0075
specialize integer_span_pair_add_congruence ((((cp) * (dn))) + (((cn) * (dp)))) - 0076
specialize integer_span_pair_add_congruence ((((cp) * (dp))) + (((cn) * (dn)))) - 0077
apply integer_span_pair_add_congruence - 0078
exact hsquares - 0079
exact hnegative - 0080
specialize eisenstein_pair_natural_value_transport ((((((((ap) * (ap))) + (((an) * (an))))) + (((((bp) * (bp))) + (((bn) * (bn))))))) + (((((ap) * (bn))) + (((an) * (bp)))))) - 0081
specialize eisenstein_pair_natural_value_transport ((((((((ap) * (an))) + (((an) * (ap))))) + (((((bp) * (bn))) + (((bn) * (bp))))))) + (((((ap) * (bp))) + (((an) * (bn)))))) - 0082
specialize eisenstein_pair_natural_value_transport ((((((((cp) * (cp))) + (((cn) * (cn))))) + (((((dp) * (dp))) + (((dn) * (dn))))))) + (((((cp) * (dn))) + (((cn) * (dp)))))) - 0083
specialize eisenstein_pair_natural_value_transport ((((((((cp) * (cn))) + (((cn) * (cp))))) + (((((dp) * (dn))) + (((dn) * (dp))))))) + (((((cp) * (dp))) + (((cn) * (dn)))))) - 0084
specialize eisenstein_pair_natural_value_transport n - 0085
apply eisenstein_pair_natural_value_transport - 0086
exact hnorm - 0087
exact hnormpair