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.
A floor quotient in the fundamental parallelogram already gives the required strict norm decrease; global nearest-point optimality is not asserted. The shared carrier is identical to the Gaussian carrier, but the multiplication law and norm are different. Eisenstein gcd, factorization, and prime classification remain separate targets.
Exact theorem in conservative defined notation
∀ ac. ∀ bc. ZPairValid(ac) → ZPairValid(bc) → ¬bc = 0 → ∃ x. ∃ y. ∃ z. ∃ n. EEuclideanDivision(ac,bc,x,y,z,n)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 133 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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 (3)
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
03Establish hAL14–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian decode representation.
- L14
have hA : ZPairRep(ac,x,x1,x2,x3)Definitions: ZPairRep(ac,x,x1,x2,x3)Original native command in the exact edition - L15
specialize gaussian_decode_representation ac - L16
specialize gaussian_decode_representation x - L17
specialize gaussian_decode_representation x1 - L18
specialize gaussian_decode_representation x2 - L19
specialize gaussian_decode_representation x3 - L20
apply gaussian_decode_representation - L21
exact hfirst_witness_witness_witness_witness
04Establish hBL22–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian decode representation.
- L22
have hB : ZPairRep(bc,x4,x5,x6,x7)Definitions: ZPairRep(bc,x4,x5,x6,x7)Original native command in the exact edition - L23
specialize gaussian_decode_representation bc - L24
specialize gaussian_decode_representation x4 - L25
specialize gaussian_decode_representation x5 - L26
specialize gaussian_decode_representation x6 - L27
specialize gaussian_decode_representation x7 - L28
apply gaussian_decode_representation - L29
exact hsecond_witness_witness_witness_witness
05Establish hzeroL30–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian representation zero iff.
- L30
have hzero : (bc = 0 -> (x4 = x5 /\ x6 = x7)) /\ ((x4 = x5 /\ x6 = x7) -> bc = 0) - L31
specialize gaussian_representation_zero_iff bc - L32
specialize gaussian_representation_zero_iff x4 - L33
specialize gaussian_representation_zero_iff x5 - L34
specialize gaussian_representation_zero_iff x6 - L35
specialize gaussian_representation_zero_iff x7 - L36
apply gaussian_representation_zero_iff - L37
exact hB
06Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases hzero
07Establish hraw_nonzeroL39–43
08Establish hdivisionL44–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein signed euclidean division exists.
- L44
have hdivision : ∃ i. ∃ j. ∃ k. ∃ l. ∃ o. ∃ p. ∃ s. ∃ t. ∃ U. ∃ V. EisensteinSignedDivisionRemainder(x,x1,x2,x3,x4,x5,x6,x7,i,j,k,l,o,p,s,t,U,V)Definitions: EisensteinSignedDivisionRemainder(x,x1,x2,x3,x4,x5,x6,x7,i,j,k,l,o,p,s,t,U,V)Original native command in the exact edition - L45
specialize eisenstein_signed_euclidean_division_exists x - L46
specialize eisenstein_signed_euclidean_division_exists x1 - L47
specialize eisenstein_signed_euclidean_division_exists x2 - L48
specialize eisenstein_signed_euclidean_division_exists x3 - L49
specialize eisenstein_signed_euclidean_division_exists x4 - L50
specialize eisenstein_signed_euclidean_division_exists x5 - L51
specialize eisenstein_signed_euclidean_division_exists x6 - L52
specialize eisenstein_signed_euclidean_division_exists x7 - L53
apply eisenstein_signed_euclidean_division_exists
09Use earlier factsL54–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
exact hraw_nonzero
10Separate the logical casesL55–64
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
cases hdivision - L56
cases hdivision_witness - L57
cases hdivision_witness_witness - L58
cases hdivision_witness_witness_witness - L59
cases hdivision_witness_witness_witness_witness - L60
cases hdivision_witness_witness_witness_witness_witness - L61
cases hdivision_witness_witness_witness_witness_witness_witness - L62
cases hdivision_witness_witness_witness_witness_witness_witness_witness - L63
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness - L64
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness
11Separate the logical casesL65–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness - L66
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right - L67
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right
12Establish hQL68–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian representation exists.
- L68
have hQ : ∃ qc. ZPairRep(qc,x8,x9,x10,x11)Definitions: ZPairRep(qc,x8,x9,x10,x11)Original native command in the exact edition - L69
specialize gaussian_representation_exists x8 - L70
specialize gaussian_representation_exists x9 - L71
specialize gaussian_representation_exists x10 - L72
specialize gaussian_representation_exists x11 - L73
apply gaussian_representation_exists
13Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
cases hQ
14Establish hRL75–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian representation exists.
- L75
have hR : ∃ rc. ZPairRep(rc,x12,x13,x14,x15)Definitions: ZPairRep(rc,x12,x13,x14,x15)Original native command in the exact edition - L76
specialize gaussian_representation_exists x12 - L77
specialize gaussian_representation_exists x13 - L78
specialize gaussian_representation_exists x14 - L79
specialize gaussian_representation_exists x15 - L80
apply gaussian_representation_exists
15Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
cases hR
16Construct an explicit witnessL82–85
17Separate the logical casesL86–86
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L86
split
18Use earlier factsL87–96
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
specialize eisenstein_division_remainder_of_representations ac - L88
specialize eisenstein_division_remainder_of_representations bc - L89
specialize eisenstein_division_remainder_of_representations x18 - L90
specialize eisenstein_division_remainder_of_representations x19 - L91
specialize eisenstein_division_remainder_of_representations x - L92
specialize eisenstein_division_remainder_of_representations x1 - L93
specialize eisenstein_division_remainder_of_representations x2 - L94
specialize eisenstein_division_remainder_of_representations x3 - L95
specialize eisenstein_division_remainder_of_representations x4 - L96
specialize eisenstein_division_remainder_of_representations x5
19Use earlier factsL97–106
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L97
specialize eisenstein_division_remainder_of_representations x6 - L98
specialize eisenstein_division_remainder_of_representations x7 - L99
specialize eisenstein_division_remainder_of_representations x8 - L100
specialize eisenstein_division_remainder_of_representations x9 - L101
specialize eisenstein_division_remainder_of_representations x10 - L102
specialize eisenstein_division_remainder_of_representations x11 - L103
specialize eisenstein_division_remainder_of_representations x12 - L104
specialize eisenstein_division_remainder_of_representations x13 - L105
specialize eisenstein_division_remainder_of_representations x14 - L106
specialize eisenstein_division_remainder_of_representations x15
20Use earlier factsL107–112
Instantiate or apply named facts and discharge the corresponding proof obligations.
21Separate the logical casesL113–113
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L113
split
22Use earlier factsL114–122
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
specialize eisenstein_norm_of_representation x19 - L115
specialize eisenstein_norm_of_representation x12 - L116
specialize eisenstein_norm_of_representation x13 - L117
specialize eisenstein_norm_of_representation x14 - L118
specialize eisenstein_norm_of_representation x15 - L119
specialize eisenstein_norm_of_representation x16 - L120
apply eisenstein_norm_of_representation - L121
exact hR_witness - L122
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
23Separate the logical casesL123–123
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L123
split
24Use earlier factsL124–133
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L124
specialize eisenstein_norm_of_representation bc - L125
specialize eisenstein_norm_of_representation x4 - L126
specialize eisenstein_norm_of_representation x5 - L127
specialize eisenstein_norm_of_representation x6 - L128
specialize eisenstein_norm_of_representation x7 - L129
specialize eisenstein_norm_of_representation x17 - L130
apply eisenstein_norm_of_representation - L131
exact hB - L132
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left - L133
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
Original defined command ledger · 133 lines
- 0001
intro ac - 0002
intro bc - 0003
intro hfirst - 0004
intro hsecond - 0005
intro hnonzero - 0006
cases hfirst - 0007
cases hfirst_witness - 0008
cases hfirst_witness_witness - 0009
cases hfirst_witness_witness_witness - 0010
cases hsecond - 0011
cases hsecond_witness - 0012
cases hsecond_witness_witness - 0013
cases hsecond_witness_witness_witness - 0014
have hA : ZPairRep(ac,x,x1,x2,x3) - 0015
specialize gaussian_decode_representation ac - 0016
specialize gaussian_decode_representation x - 0017
specialize gaussian_decode_representation x1 - 0018
specialize gaussian_decode_representation x2 - 0019
specialize gaussian_decode_representation x3 - 0020
apply gaussian_decode_representation - 0021
exact hfirst_witness_witness_witness_witness - 0022
have hB : ZPairRep(bc,x4,x5,x6,x7) - 0023
specialize gaussian_decode_representation bc - 0024
specialize gaussian_decode_representation x4 - 0025
specialize gaussian_decode_representation x5 - 0026
specialize gaussian_decode_representation x6 - 0027
specialize gaussian_decode_representation x7 - 0028
apply gaussian_decode_representation - 0029
exact hsecond_witness_witness_witness_witness - 0030
have hzero : (bc = 0 -> (x4 = x5 /\ x6 = x7)) /\ ((x4 = x5 /\ x6 = x7) -> bc = 0) - 0031
specialize gaussian_representation_zero_iff bc - 0032
specialize gaussian_representation_zero_iff x4 - 0033
specialize gaussian_representation_zero_iff x5 - 0034
specialize gaussian_representation_zero_iff x6 - 0035
specialize gaussian_representation_zero_iff x7 - 0036
apply gaussian_representation_zero_iff - 0037
exact hB - 0038
cases hzero - 0039
have hraw_nonzero : ~(x4 = x5 /\ x6 = x7) - 0040
intro hvanishing - 0041
apply hnonzero - 0042
apply hzero_right - 0043
exact hvanishing - 0044
have hdivision : ∃ i. ∃ j. ∃ k. ∃ l. ∃ o. ∃ p. ∃ s. ∃ t. ∃ U. ∃ V. EisensteinSignedDivisionRemainder(x,x1,x2,x3,x4,x5,x6,x7,i,j,k,l,o,p,s,t,U,V) - 0045
specialize eisenstein_signed_euclidean_division_exists x - 0046
specialize eisenstein_signed_euclidean_division_exists x1 - 0047
specialize eisenstein_signed_euclidean_division_exists x2 - 0048
specialize eisenstein_signed_euclidean_division_exists x3 - 0049
specialize eisenstein_signed_euclidean_division_exists x4 - 0050
specialize eisenstein_signed_euclidean_division_exists x5 - 0051
specialize eisenstein_signed_euclidean_division_exists x6 - 0052
specialize eisenstein_signed_euclidean_division_exists x7 - 0053
apply eisenstein_signed_euclidean_division_exists - 0054
exact hraw_nonzero - 0055
cases hdivision - 0056
cases hdivision_witness - 0057
cases hdivision_witness_witness - 0058
cases hdivision_witness_witness_witness - 0059
cases hdivision_witness_witness_witness_witness - 0060
cases hdivision_witness_witness_witness_witness_witness - 0061
cases hdivision_witness_witness_witness_witness_witness_witness - 0062
cases hdivision_witness_witness_witness_witness_witness_witness_witness - 0063
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness - 0064
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness - 0065
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness - 0066
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right - 0067
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right - 0068
have hQ : ∃ qc. ZPairRep(qc,x8,x9,x10,x11) - 0069
specialize gaussian_representation_exists x8 - 0070
specialize gaussian_representation_exists x9 - 0071
specialize gaussian_representation_exists x10 - 0072
specialize gaussian_representation_exists x11 - 0073
apply gaussian_representation_exists - 0074
cases hQ - 0075
have hR : ∃ rc. ZPairRep(rc,x12,x13,x14,x15) - 0076
specialize gaussian_representation_exists x12 - 0077
specialize gaussian_representation_exists x13 - 0078
specialize gaussian_representation_exists x14 - 0079
specialize gaussian_representation_exists x15 - 0080
apply gaussian_representation_exists - 0081
cases hR - 0082
exists x18 - 0083
exists x19 - 0084
exists x16 - 0085
exists x17 - 0086
split - 0087
specialize eisenstein_division_remainder_of_representations ac - 0088
specialize eisenstein_division_remainder_of_representations bc - 0089
specialize eisenstein_division_remainder_of_representations x18 - 0090
specialize eisenstein_division_remainder_of_representations x19 - 0091
specialize eisenstein_division_remainder_of_representations x - 0092
specialize eisenstein_division_remainder_of_representations x1 - 0093
specialize eisenstein_division_remainder_of_representations x2 - 0094
specialize eisenstein_division_remainder_of_representations x3 - 0095
specialize eisenstein_division_remainder_of_representations x4 - 0096
specialize eisenstein_division_remainder_of_representations x5 - 0097
specialize eisenstein_division_remainder_of_representations x6 - 0098
specialize eisenstein_division_remainder_of_representations x7 - 0099
specialize eisenstein_division_remainder_of_representations x8 - 0100
specialize eisenstein_division_remainder_of_representations x9 - 0101
specialize eisenstein_division_remainder_of_representations x10 - 0102
specialize eisenstein_division_remainder_of_representations x11 - 0103
specialize eisenstein_division_remainder_of_representations x12 - 0104
specialize eisenstein_division_remainder_of_representations x13 - 0105
specialize eisenstein_division_remainder_of_representations x14 - 0106
specialize eisenstein_division_remainder_of_representations x15 - 0107
apply eisenstein_division_remainder_of_representations - 0108
exact hA - 0109
exact hB - 0110
exact hQ_witness - 0111
exact hR_witness - 0112
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left - 0113
split - 0114
specialize eisenstein_norm_of_representation x19 - 0115
specialize eisenstein_norm_of_representation x12 - 0116
specialize eisenstein_norm_of_representation x13 - 0117
specialize eisenstein_norm_of_representation x14 - 0118
specialize eisenstein_norm_of_representation x15 - 0119
specialize eisenstein_norm_of_representation x16 - 0120
apply eisenstein_norm_of_representation - 0121
exact hR_witness - 0122
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left - 0123
split - 0124
specialize eisenstein_norm_of_representation bc - 0125
specialize eisenstein_norm_of_representation x4 - 0126
specialize eisenstein_norm_of_representation x5 - 0127
specialize eisenstein_norm_of_representation x6 - 0128
specialize eisenstein_norm_of_representation x7 - 0129
specialize eisenstein_norm_of_representation x17 - 0130
apply eisenstein_norm_of_representation - 0131
exact hB - 0132
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left - 0133
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right