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
∀ a. ∀ b. ∀ c. ∀ d. ∀ e. ∀ f. ∀ g. ∀ h. ¬(e = f ∧ g = h) → ∃ x. ∃ y. ∃ z. ∃ n. ∃ m. ∃ k. ∃ i. ∃ j. ∃ u. ∃ v. EisensteinSignedDivisionRemainder(a,b,c,d,e,f,g,h,x,y,z,n,m,k,i,j,u,v)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 192 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 (10)
01Fix variables and assumptionsL1–9
02Establish hdivisorL10–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein coordinate norm exists.
- L10
have hdivisor : ∃ N. EisensteinCoordinateNorm(e,f,g,h,N)Definitions: EisensteinCoordinateNorm(e,f,g,h,N)Original native command in the exact edition - L11
specialize eisenstein_coordinate_norm_exists e - L12
specialize eisenstein_coordinate_norm_exists f - L13
specialize eisenstein_coordinate_norm_exists g - L14
specialize eisenstein_coordinate_norm_exists h - L15
apply eisenstein_coordinate_norm_exists
03Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
cases hdivisor
04Establish hNL17–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein coordinate norm nonzero.
- L17
have hN : ~(x = 0) - L18
intro hzero - L19
specialize eisenstein_coordinate_norm_nonzero e - L20
specialize eisenstein_coordinate_norm_nonzero f - L21
specialize eisenstein_coordinate_norm_nonzero g - L22
specialize eisenstein_coordinate_norm_nonzero h - L23
specialize eisenstein_coordinate_norm_nonzero x - L24
apply eisenstein_coordinate_norm_nonzero - L25
exact hdivisor_witness - L26
exact hnonzero
05Use earlier factsL27–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
exact hzero
06Establish hrealL28–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed integer floor exists.
- L28
have hreal : ∃ qp. ∃ qn. ∃ r. SignedFloor((e + h) · a + (f + g) · b + (h · d + g · c),(e + h) · b + (f + g) · a + (h · c + g · d),x,qp,qn,r)Definitions: SignedFloor((e + h) · a + (f + g) · b + (h · d + g · c),(e + h) · b + (f + g) · a + (h · c + g · d),x,qp,qn,r)Original native command in the exact edition - L29
specialize signed_integer_floor_exists ((((((((e) + (h))) * (a))) + (((((f) + (g))) * (b))))) + (((((h) * (d))) + (((g) * (c)))))) - L30
specialize signed_integer_floor_exists ((((((((e) + (h))) * (b))) + (((((f) + (g))) * (a))))) + (((((h) * (c))) + (((g) * (d)))))) - L31
specialize signed_integer_floor_exists x - L32
apply signed_integer_floor_exists - L33
exact hN
07Separate the logical casesL34–37
08Establish himaginaryL38–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed integer floor exists.
- L38
have himaginary : ∃ qp. ∃ qn. ∃ r. SignedFloor((e + h) · c + (f + g) · d + (h · a + g · b) + (h · d + g · c),(e + h) · d + (f + g) · c + (h · b + g · a) + (h · c + g · d),x,qp,qn,r)Definitions: SignedFloor((e + h) · c + (f + g) · d + (h · a + g · b) + (h · d + g · c),(e + h) · d + (f + g) · c + (h · b + g · a) + (h · c + g · d),x,qp,qn,r)Original native command in the exact edition - L39
specialize signed_integer_floor_exists ((((((((((e) + (h))) * (c))) + (((((f) + (g))) * (d))))) + (((((h) * (a))) + (((g) * (b))))))) + (((((h) * (d))) + (((g) * (c)))))) - L40
specialize signed_integer_floor_exists ((((((((((e) + (h))) * (d))) + (((((f) + (g))) * (c))))) + (((((h) * (b))) + (((g) * (a))))))) + (((((h) * (c))) + (((g) * (d)))))) - L41
specialize signed_integer_floor_exists x - L42
apply signed_integer_floor_exists - L43
exact hN
09Separate the logical casesL44–47
10Establish hremainderL48–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein coordinate norm exists.
- L48
have hremainder : ∃ M. EisensteinCoordinateNorm(a + (e · x2 + f · x1 + (g · x4 + h · x5)),b + (e · x1 + f · x2 + (g · x5 + h · x4)),c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)),d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)),M)Definitions: EisensteinCoordinateNorm(a + (e · x2 + f · x1 + (g · x4 + h · x5)),b + (e · x1 + f · x2 + (g · x5 + h · x4)),c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)),d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)),M)Original native command in the exact edition - L49
specialize eisenstein_coordinate_norm_exists ((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - L50
specialize eisenstein_coordinate_norm_exists ((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - L51
specialize eisenstein_coordinate_norm_exists ((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - L52
specialize eisenstein_coordinate_norm_exists ((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - L53
apply eisenstein_coordinate_norm_exists
11Separate the logical casesL54–54
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L54
cases hremainder
12Establish herrorL55–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein natural norm exists.
13Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
cases herror
14Establish herrornormL60–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein natural norm coordinates.
- L60
have herrornorm : EisensteinCoordinateNorm(x3,0,x6,0,x8)Definitions: EisensteinCoordinateNorm(x3,0,x6,0,x8)Original native command in the exact edition - L61
specialize eisenstein_natural_norm_coordinates x3 - L62
specialize eisenstein_natural_norm_coordinates x6 - L63
specialize eisenstein_natural_norm_coordinates x8 - L64
apply eisenstein_natural_norm_coordinates - L65
exact herror_witness
15Establish herror_equationL66–66
Establish this local claim before using it. It is not an additional assumption.
- L66
have herror_equation · expand full local formula (609 characters)
have herror_equation : ((((((((((((((e) + (h))) * (a))) + (((((f) + (g))) * (b))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x2))))) + (0)) = ((x3) + (((((((((((e) + (h))) * (b))) + (((((f) + (g))) * (a))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x1))))))) /\ (((((((((((((((e) + (h))) * (c))) + (((((f) + (g))) * (d))))) + (((((h) * (a))) + (((g) * (b))))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x5))))) + (0)) = ((x6) + (((((((((((((e) + (h))) * (d))) + (((((f) + (g))) * (c))))) + (((((h) * (b))) + (((g) * (a))))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x4))))))))
16Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
17Calculate and transport equalitiesL68–68
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L68
trans ((((((((((e) + (h))) * (a))) + (((((f) + (g))) * (b))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x2))))
18Use earlier factsL69–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
apply PA3
19Calculate and transport equalitiesL70–70
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L70
trans ((((((((((((e) + (h))) * (b))) + (((((f) + (g))) * (a))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x1))))) + (x3))
20Use earlier factsL71–72
21Calculate and transport equalitiesL73–73
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L73
trans ((((((((((((e) + (h))) * (c))) + (((((f) + (g))) * (d))))) + (((((h) * (a))) + (((g) * (b))))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x5))))
22Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
apply PA3
23Calculate and transport equalitiesL75–75
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L75
trans ((((((((((((((e) + (h))) * (d))) + (((((f) + (g))) * (c))))) + (((((h) * (b))) + (((g) * (a))))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x4))))) + (x6))
24Use earlier factsL76–77
25Establish hconjugate_errorL78–87
Establish this local claim before using it. It is not an additional assumption.
- L78
have hconjugate_error : EisensteinCoordinateProduct(e + h,f + g,h,g,a + (e · x2 + f · x1 + (g · x4 + h · x5)),b + (e · x1 + f · x2 + (g · x5 + h · x4)),c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)),d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)),x3,0,x6,0)Definitions: EisensteinCoordinateProduct(e + h,f + g,h,g,a + (e · x2 + f · x1 + (g · x4 + h · x5)),b + (e · x1 + f · x2 + (g · x5 + h · x4)),c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)),d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)),x3,0,x6,0)Original native command in the exact edition - L79
specialize gaussian_equal_transitive ((((((((e) + (h))) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((((f) + (g))) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))) + (((((h) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))))))))) - L80
specialize gaussian_equal_transitive ((((((((e) + (h))) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((((f) + (g))) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))) + (((((h) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))))))))) - L81
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + ( · expand full local formula (840 characters)
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((((f) + (g))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))) + (((((h) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))))) + (((((h) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))))))))) - L82
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + ( · expand full local formula (840 characters)
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((((f) + (g))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))) + (((((h) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))))) + (((((h) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))))))))) - L83
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (a))) + (((((f) + (g))) * (b))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x2)))) - L84
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (b))) + (((((f) + (g))) * (a))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x1)))) - L85
specialize gaussian_equal_transitive ((((((((((((e) + (h))) * (c))) + (((((f) + (g))) * (d))))) + (((((h) * (a))) + (((g) * (b))))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x5)))) - L86
specialize gaussian_equal_transitive ((((((((((((e) + (h))) * (d))) + (((((f) + (g))) * (c))))) + (((((h) * (b))) + (((g) * (a))))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x4)))) - L87
specialize gaussian_equal_transitive x3
26Use earlier factsL88–97
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L88
specialize gaussian_equal_transitive 0 - L89
specialize gaussian_equal_transitive x6 - L90
specialize gaussian_equal_transitive 0 - L91
apply gaussian_equal_transitive - L92
specialize eisenstein_residual_conjugate_identity a - L93
specialize eisenstein_residual_conjugate_identity b - L94
specialize eisenstein_residual_conjugate_identity c - L95
specialize eisenstein_residual_conjugate_identity d - L96
specialize eisenstein_residual_conjugate_identity e - L97
specialize eisenstein_residual_conjugate_identity f
27Use earlier factsL98–107
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L98
specialize eisenstein_residual_conjugate_identity g - L99
specialize eisenstein_residual_conjugate_identity h - L100
specialize eisenstein_residual_conjugate_identity x1 - L101
specialize eisenstein_residual_conjugate_identity x2 - L102
specialize eisenstein_residual_conjugate_identity x4 - L103
specialize eisenstein_residual_conjugate_identity x5 - L104
specialize eisenstein_residual_conjugate_identity x - L105
apply eisenstein_residual_conjugate_identity - L106
exact hdivisor_witness - L107
exact herror_equation
28Establish hproduct_normL108–117
Establish this local claim before using it. It is not an additional assumption.
- L108Definitions: EisensteinCoordinateNorm((e + h) · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + (f + g) · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + (h · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + g · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)))),(e + h) · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + (f + g) · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + (h · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + g · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)))),(e + h) · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + (f + g) · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + (h · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + g · (b + (e · x1 + f · x2 + (g · x5 + h · x4)))) + (h · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + g · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)))),(e + h) · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + (f + g) · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + (h · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + g · (a + (e · x2 + f · x1 + (g · x4 + h · x5)))) + (h · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + g · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)))),x · x7)Original native command in the exact edition
have hproduct_norm · expand full local formula (1,345 characters)
have hproduct_norm : EisensteinCoordinateNorm((e + h) · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + (f + g) · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + (h · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + g · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)))),(e + h) · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + (f + g) · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + (h · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + g · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)))),(e + h) · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + (f + g) · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + (h · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + g · (b + (e · x1 + f · x2 + (g · x5 + h · x4)))) + (h · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + g · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)))),(e + h) · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + (f + g) · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + (h · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + g · (a + (e · x2 + f · x1 + (g · x4 + h · x5)))) + (h · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + g · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)))),x · x7) - L109
specialize eisenstein_coordinate_norm_product ((e) + (h)) - L110
specialize eisenstein_coordinate_norm_product ((f) + (g)) - L111
specialize eisenstein_coordinate_norm_product h - L112
specialize eisenstein_coordinate_norm_product g - L113
specialize eisenstein_coordinate_norm_product ((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - L114
specialize eisenstein_coordinate_norm_product ((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - L115
specialize eisenstein_coordinate_norm_product ((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - L116
specialize eisenstein_coordinate_norm_product ((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - L117
specialize eisenstein_coordinate_norm_product x
29Use earlier factsL118–127
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L118
specialize eisenstein_coordinate_norm_product x7 - L119
apply eisenstein_coordinate_norm_product - L120
specialize eisenstein_coordinate_norm_conjugate e - L121
specialize eisenstein_coordinate_norm_conjugate f - L122
specialize eisenstein_coordinate_norm_conjugate g - L123
specialize eisenstein_coordinate_norm_conjugate h - L124
specialize eisenstein_coordinate_norm_conjugate x - L125
apply eisenstein_coordinate_norm_conjugate - L126
exact hdivisor_witness - L127
exact hremainder_witness
30Establish htransportedL128–137
Establish this local claim before using it. It is not an additional assumption.
- L128
have htransported : EisensteinCoordinateNorm(x3,0,x6,0,x · x7)Definitions: EisensteinCoordinateNorm(x3,0,x6,0,x · x7)Original native command in the exact edition - L129
specialize eisenstein_coordinate_norm_transport ((((((((e) + (h))) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((((f) + (g))) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))) + (((((h) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))))))))) - L130
specialize eisenstein_coordinate_norm_transport ((((((((e) + (h))) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((((f) + (g))) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))) + (((((h) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))))))))) - L131
specialize eisenstein_coordinate_norm_transport ((((((((((e) + (h))) * (((c) + (((((((((e) * (x5))) + (((f) * ( · expand full local formula (851 characters)
specialize eisenstein_coordinate_norm_transport ((((((((((e) + (h))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((((f) + (g))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))) + (((((h) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))))) + (((((h) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))))))))) - L132
specialize eisenstein_coordinate_norm_transport ((((((((((e) + (h))) * (((d) + (((((((((e) * (x4))) + (((f) * ( · expand full local formula (851 characters)
specialize eisenstein_coordinate_norm_transport ((((((((((e) + (h))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((((f) + (g))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))) + (((((h) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))))) + (((((h) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))))))))) - L133
specialize eisenstein_coordinate_norm_transport x3 - L134
specialize eisenstein_coordinate_norm_transport 0 - L135
specialize eisenstein_coordinate_norm_transport x6 - L136
specialize eisenstein_coordinate_norm_transport 0 - L137
specialize eisenstein_coordinate_norm_transport (x * x7)
31Use earlier factsL138–138
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L138
apply eisenstein_coordinate_norm_transport
32Separate the logical casesL139–139
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L139
cases hconjugate_error
33Use earlier factsL140–140
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L140
exact hconjugate_error_left
34Separate the logical casesL141–141
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L141
cases hconjugate_error
35Use earlier factsL142–143
36Establish hnormequationL144–153
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein coordinate norm functional.
- L144
have hnormequation : x * x7 = x8 - L145
specialize eisenstein_coordinate_norm_functional x3 - L146
specialize eisenstein_coordinate_norm_functional 0 - L147
specialize eisenstein_coordinate_norm_functional x6 - L148
specialize eisenstein_coordinate_norm_functional 0 - L149
specialize eisenstein_coordinate_norm_functional (x * x7) - L150
specialize eisenstein_coordinate_norm_functional x8 - L151
apply eisenstein_coordinate_norm_functional - L152
exact htransported - L153
exact herrornorm
37Establish hstrictL154–162
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein parallelogram norm strict.
- L154
- L155
specialize eisenstein_parallelogram_norm_strict x3 - L156
specialize eisenstein_parallelogram_norm_strict x6 - L157
specialize eisenstein_parallelogram_norm_strict x - L158
specialize eisenstein_parallelogram_norm_strict x8 - L159
apply eisenstein_parallelogram_norm_strict - L160
exact hreal_witness_witness_witness_right - L161
exact himaginary_witness_witness_witness_right - L162
exact herror_witness
38Construct an explicit witnessL163–172
Supply the displayed value, then prove that it has the required property.
- L163
exists x1 - L164
exists x2 - L165
exists x4 - L166
exists x5 - L167
exists ((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - L168
exists ((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - L169
exists ((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - L170
exists ((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - L171
exists x7 - L172
exists x
39Separate the logical casesL173–173
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L173
split
40Use earlier factsL174–182
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L174
specialize gaussian_difference_reconstructs_dividend a - L175
specialize gaussian_difference_reconstructs_dividend b - L176
specialize gaussian_difference_reconstructs_dividend c - L177
specialize gaussian_difference_reconstructs_dividend d - L178
specialize gaussian_difference_reconstructs_dividend ((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4)))))) - L179
specialize gaussian_difference_reconstructs_dividend ((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5)))))) - L180
specialize gaussian_difference_reconstructs_dividend ((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))) - L181
specialize gaussian_difference_reconstructs_dividend ((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))) - L182
apply gaussian_difference_reconstructs_dividend
41Separate the logical casesL183–183
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L183
split
42Use earlier factsL184–184
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L184
exact hremainder_witness
43Separate the logical casesL185–185
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L185
split
44Use earlier factsL186–192
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L186
exact hdivisor_witness - L187
specialize four_square_descent_norm_bound_forces_smaller_multiplier x - L188
specialize four_square_descent_norm_bound_forces_smaller_multiplier x7 - L189
specialize four_square_descent_norm_bound_forces_smaller_multiplier x8 - L190
apply four_square_descent_norm_bound_forces_smaller_multiplier - L191
exact hnormequation - L192
exact hstrict
Original defined command ledger · 192 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro f - 0007
intro g - 0008
intro h - 0009
intro hnonzero - 0010
have hdivisor : ∃ N. EisensteinCoordinateNorm(e,f,g,h,N) - 0011
specialize eisenstein_coordinate_norm_exists e - 0012
specialize eisenstein_coordinate_norm_exists f - 0013
specialize eisenstein_coordinate_norm_exists g - 0014
specialize eisenstein_coordinate_norm_exists h - 0015
apply eisenstein_coordinate_norm_exists - 0016
cases hdivisor - 0017
have hN : ~(x = 0) - 0018
intro hzero - 0019
specialize eisenstein_coordinate_norm_nonzero e - 0020
specialize eisenstein_coordinate_norm_nonzero f - 0021
specialize eisenstein_coordinate_norm_nonzero g - 0022
specialize eisenstein_coordinate_norm_nonzero h - 0023
specialize eisenstein_coordinate_norm_nonzero x - 0024
apply eisenstein_coordinate_norm_nonzero - 0025
exact hdivisor_witness - 0026
exact hnonzero - 0027
exact hzero - 0028
have hreal : ∃ qp. ∃ qn. ∃ r. SignedFloor((e + h) · a + (f + g) · b + (h · d + g · c),(e + h) · b + (f + g) · a + (h · c + g · d),x,qp,qn,r) - 0029
specialize signed_integer_floor_exists ((((((((e) + (h))) * (a))) + (((((f) + (g))) * (b))))) + (((((h) * (d))) + (((g) * (c)))))) - 0030
specialize signed_integer_floor_exists ((((((((e) + (h))) * (b))) + (((((f) + (g))) * (a))))) + (((((h) * (c))) + (((g) * (d)))))) - 0031
specialize signed_integer_floor_exists x - 0032
apply signed_integer_floor_exists - 0033
exact hN - 0034
cases hreal - 0035
cases hreal_witness - 0036
cases hreal_witness_witness - 0037
cases hreal_witness_witness_witness - 0038
have himaginary : ∃ qp. ∃ qn. ∃ r. SignedFloor((e + h) · c + (f + g) · d + (h · a + g · b) + (h · d + g · c),(e + h) · d + (f + g) · c + (h · b + g · a) + (h · c + g · d),x,qp,qn,r) - 0039
specialize signed_integer_floor_exists ((((((((((e) + (h))) * (c))) + (((((f) + (g))) * (d))))) + (((((h) * (a))) + (((g) * (b))))))) + (((((h) * (d))) + (((g) * (c)))))) - 0040
specialize signed_integer_floor_exists ((((((((((e) + (h))) * (d))) + (((((f) + (g))) * (c))))) + (((((h) * (b))) + (((g) * (a))))))) + (((((h) * (c))) + (((g) * (d)))))) - 0041
specialize signed_integer_floor_exists x - 0042
apply signed_integer_floor_exists - 0043
exact hN - 0044
cases himaginary - 0045
cases himaginary_witness - 0046
cases himaginary_witness_witness - 0047
cases himaginary_witness_witness_witness - 0048
have hremainder : ∃ M. EisensteinCoordinateNorm(a + (e · x2 + f · x1 + (g · x4 + h · x5)),b + (e · x1 + f · x2 + (g · x5 + h · x4)),c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)),d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)),M) - 0049
specialize eisenstein_coordinate_norm_exists ((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - 0050
specialize eisenstein_coordinate_norm_exists ((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - 0051
specialize eisenstein_coordinate_norm_exists ((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - 0052
specialize eisenstein_coordinate_norm_exists ((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - 0053
apply eisenstein_coordinate_norm_exists - 0054
cases hremainder - 0055
have herror : exists M. ((((x3) * (x3)) + ((x6) * (x6))) = (((x3) * (x6)) + (M))) - 0056
specialize eisenstein_natural_norm_exists x3 - 0057
specialize eisenstein_natural_norm_exists x6 - 0058
apply eisenstein_natural_norm_exists - 0059
cases herror - 0060
have herrornorm : EisensteinCoordinateNorm(x3,0,x6,0,x8) - 0061
specialize eisenstein_natural_norm_coordinates x3 - 0062
specialize eisenstein_natural_norm_coordinates x6 - 0063
specialize eisenstein_natural_norm_coordinates x8 - 0064
apply eisenstein_natural_norm_coordinates - 0065
exact herror_witness - 0066
have herror_equation : ((((((((((((((e) + (h))) * (a))) + (((((f) + (g))) * (b))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x2))))) + (0)) = ((x3) + (((((((((((e) + (h))) * (b))) + (((((f) + (g))) * (a))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x1))))))) /\ (((((((((((((((e) + (h))) * (c))) + (((((f) + (g))) * (d))))) + (((((h) * (a))) + (((g) * (b))))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x5))))) + (0)) = ((x6) + (((((((((((((e) + (h))) * (d))) + (((((f) + (g))) * (c))))) + (((((h) * (b))) + (((g) * (a))))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x4)))))))) - 0067
split - 0068
trans ((((((((((e) + (h))) * (a))) + (((((f) + (g))) * (b))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x2)))) - 0069
apply PA3 - 0070
trans ((((((((((((e) + (h))) * (b))) + (((((f) + (g))) * (a))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x1))))) + (x3)) - 0071
exact hreal_witness_witness_witness_left - 0072
apply add_comm - 0073
trans ((((((((((((e) + (h))) * (c))) + (((((f) + (g))) * (d))))) + (((((h) * (a))) + (((g) * (b))))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x5)))) - 0074
apply PA3 - 0075
trans ((((((((((((((e) + (h))) * (d))) + (((((f) + (g))) * (c))))) + (((((h) * (b))) + (((g) * (a))))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x4))))) + (x6)) - 0076
exact himaginary_witness_witness_witness_left - 0077
apply add_comm - 0078
have hconjugate_error : EisensteinCoordinateProduct(e + h,f + g,h,g,a + (e · x2 + f · x1 + (g · x4 + h · x5)),b + (e · x1 + f · x2 + (g · x5 + h · x4)),c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)),d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)),x3,0,x6,0) - 0079
specialize gaussian_equal_transitive ((((((((e) + (h))) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((((f) + (g))) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))) + (((((h) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))))))))) - 0080
specialize gaussian_equal_transitive ((((((((e) + (h))) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((((f) + (g))) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))) + (((((h) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))))))))) - 0081
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((((f) + (g))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))) + (((((h) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))))) + (((((h) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))))))))) - 0082
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((((f) + (g))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))) + (((((h) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))))) + (((((h) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))))))))) - 0083
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (a))) + (((((f) + (g))) * (b))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x2)))) - 0084
specialize gaussian_equal_transitive ((((((((((e) + (h))) * (b))) + (((((f) + (g))) * (a))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x1)))) - 0085
specialize gaussian_equal_transitive ((((((((((((e) + (h))) * (c))) + (((((f) + (g))) * (d))))) + (((((h) * (a))) + (((g) * (b))))))) + (((((h) * (d))) + (((g) * (c))))))) + (((x) * (x5)))) - 0086
specialize gaussian_equal_transitive ((((((((((((e) + (h))) * (d))) + (((((f) + (g))) * (c))))) + (((((h) * (b))) + (((g) * (a))))))) + (((((h) * (c))) + (((g) * (d))))))) + (((x) * (x4)))) - 0087
specialize gaussian_equal_transitive x3 - 0088
specialize gaussian_equal_transitive 0 - 0089
specialize gaussian_equal_transitive x6 - 0090
specialize gaussian_equal_transitive 0 - 0091
apply gaussian_equal_transitive - 0092
specialize eisenstein_residual_conjugate_identity a - 0093
specialize eisenstein_residual_conjugate_identity b - 0094
specialize eisenstein_residual_conjugate_identity c - 0095
specialize eisenstein_residual_conjugate_identity d - 0096
specialize eisenstein_residual_conjugate_identity e - 0097
specialize eisenstein_residual_conjugate_identity f - 0098
specialize eisenstein_residual_conjugate_identity g - 0099
specialize eisenstein_residual_conjugate_identity h - 0100
specialize eisenstein_residual_conjugate_identity x1 - 0101
specialize eisenstein_residual_conjugate_identity x2 - 0102
specialize eisenstein_residual_conjugate_identity x4 - 0103
specialize eisenstein_residual_conjugate_identity x5 - 0104
specialize eisenstein_residual_conjugate_identity x - 0105
apply eisenstein_residual_conjugate_identity - 0106
exact hdivisor_witness - 0107
exact herror_equation - 0108
have hproduct_norm : EisensteinCoordinateNorm((e + h) · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + (f + g) · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + (h · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + g · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)))),(e + h) · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + (f + g) · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + (h · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + g · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)))),(e + h) · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + (f + g) · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + (h · (a + (e · x2 + f · x1 + (g · x4 + h · x5))) + g · (b + (e · x1 + f · x2 + (g · x5 + h · x4)))) + (h · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + g · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5)))),(e + h) · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4))) + (f + g) · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + (h · (b + (e · x1 + f · x2 + (g · x5 + h · x4))) + g · (a + (e · x2 + f · x1 + (g · x4 + h · x5)))) + (h · (c + (e · x5 + f · x4 + (g · x2 + h · x1) + (g · x4 + h · x5))) + g · (d + (e · x4 + f · x5 + (g · x1 + h · x2) + (g · x5 + h · x4)))),x · x7) - 0109
specialize eisenstein_coordinate_norm_product ((e) + (h)) - 0110
specialize eisenstein_coordinate_norm_product ((f) + (g)) - 0111
specialize eisenstein_coordinate_norm_product h - 0112
specialize eisenstein_coordinate_norm_product g - 0113
specialize eisenstein_coordinate_norm_product ((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - 0114
specialize eisenstein_coordinate_norm_product ((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - 0115
specialize eisenstein_coordinate_norm_product ((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - 0116
specialize eisenstein_coordinate_norm_product ((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - 0117
specialize eisenstein_coordinate_norm_product x - 0118
specialize eisenstein_coordinate_norm_product x7 - 0119
apply eisenstein_coordinate_norm_product - 0120
specialize eisenstein_coordinate_norm_conjugate e - 0121
specialize eisenstein_coordinate_norm_conjugate f - 0122
specialize eisenstein_coordinate_norm_conjugate g - 0123
specialize eisenstein_coordinate_norm_conjugate h - 0124
specialize eisenstein_coordinate_norm_conjugate x - 0125
apply eisenstein_coordinate_norm_conjugate - 0126
exact hdivisor_witness - 0127
exact hremainder_witness - 0128
have htransported : EisensteinCoordinateNorm(x3,0,x6,0,x · x7) - 0129
specialize eisenstein_coordinate_norm_transport ((((((((e) + (h))) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((((f) + (g))) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))) + (((((h) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))))))))) - 0130
specialize eisenstein_coordinate_norm_transport ((((((((e) + (h))) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((((f) + (g))) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))) + (((((h) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))))))))) - 0131
specialize eisenstein_coordinate_norm_transport ((((((((((e) + (h))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((((f) + (g))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))) + (((((h) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))))))) + (((((h) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))))))))) - 0132
specialize eisenstein_coordinate_norm_transport ((((((((((e) + (h))) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((((f) + (g))) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))) + (((((h) * (((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4))))))))))) + (((g) * (((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5))))))))))))))) + (((((h) * (((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5))))))))))) + (((g) * (((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))))))))) - 0133
specialize eisenstein_coordinate_norm_transport x3 - 0134
specialize eisenstein_coordinate_norm_transport 0 - 0135
specialize eisenstein_coordinate_norm_transport x6 - 0136
specialize eisenstein_coordinate_norm_transport 0 - 0137
specialize eisenstein_coordinate_norm_transport (x * x7) - 0138
apply eisenstein_coordinate_norm_transport - 0139
cases hconjugate_error - 0140
exact hconjugate_error_left - 0141
cases hconjugate_error - 0142
exact hconjugate_error_right - 0143
exact hproduct_norm - 0144
have hnormequation : x * x7 = x8 - 0145
specialize eisenstein_coordinate_norm_functional x3 - 0146
specialize eisenstein_coordinate_norm_functional 0 - 0147
specialize eisenstein_coordinate_norm_functional x6 - 0148
specialize eisenstein_coordinate_norm_functional 0 - 0149
specialize eisenstein_coordinate_norm_functional (x * x7) - 0150
specialize eisenstein_coordinate_norm_functional x8 - 0151
apply eisenstein_coordinate_norm_functional - 0152
exact htransported - 0153
exact herrornorm - 0154
have hstrict : Lt(x8,x · x) - 0155
specialize eisenstein_parallelogram_norm_strict x3 - 0156
specialize eisenstein_parallelogram_norm_strict x6 - 0157
specialize eisenstein_parallelogram_norm_strict x - 0158
specialize eisenstein_parallelogram_norm_strict x8 - 0159
apply eisenstein_parallelogram_norm_strict - 0160
exact hreal_witness_witness_witness_right - 0161
exact himaginary_witness_witness_witness_right - 0162
exact herror_witness - 0163
exists x1 - 0164
exists x2 - 0165
exists x4 - 0166
exists x5 - 0167
exists ((a) + (((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - 0168
exists ((b) + (((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - 0169
exists ((c) + (((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))))) - 0170
exists ((d) + (((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))))) - 0171
exists x7 - 0172
exists x - 0173
split - 0174
specialize gaussian_difference_reconstructs_dividend a - 0175
specialize gaussian_difference_reconstructs_dividend b - 0176
specialize gaussian_difference_reconstructs_dividend c - 0177
specialize gaussian_difference_reconstructs_dividend d - 0178
specialize gaussian_difference_reconstructs_dividend ((((((e) * (x1))) + (((f) * (x2))))) + (((((g) * (x5))) + (((h) * (x4)))))) - 0179
specialize gaussian_difference_reconstructs_dividend ((((((e) * (x2))) + (((f) * (x1))))) + (((((g) * (x4))) + (((h) * (x5)))))) - 0180
specialize gaussian_difference_reconstructs_dividend ((((((((e) * (x4))) + (((f) * (x5))))) + (((((g) * (x1))) + (((h) * (x2))))))) + (((((g) * (x5))) + (((h) * (x4)))))) - 0181
specialize gaussian_difference_reconstructs_dividend ((((((((e) * (x5))) + (((f) * (x4))))) + (((((g) * (x2))) + (((h) * (x1))))))) + (((((g) * (x4))) + (((h) * (x5)))))) - 0182
apply gaussian_difference_reconstructs_dividend - 0183
split - 0184
exact hremainder_witness - 0185
split - 0186
exact hdivisor_witness - 0187
specialize four_square_descent_norm_bound_forces_smaller_multiplier x - 0188
specialize four_square_descent_norm_bound_forces_smaller_multiplier x7 - 0189
specialize four_square_descent_norm_bound_forces_smaller_multiplier x8 - 0190
apply four_square_descent_norm_bound_forces_smaller_multiplier - 0191
exact hnormequation - 0192
exact hstrict