LeanPool.EcTateLean.Algebra.EllipticCurve.Kronecker #
Imported Lean Pool material for LeanPool.EcTateLean.Algebra.EllipticCurve.Kronecker.
The Kronecker symbol (x / 2), which depends only on x mod 8.
Equations
- Int.kronecker_2 x = match x % 8 with | 1 => 1 | 7 => 1 | 3 => -1 | 5 => -1 | x => 0
Instances For
@[irreducible]
Auxiliary recursion computing the Kronecker symbol (a / b) for odd b,
carrying an accumulated sign k; it strips powers of two from a via quadratic
reciprocity until a is reduced.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Kronecker symbol (a / b) for integers a and b.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Decides whether the quadratic a x ^ 2 + b x + c has a root in ℤ / p ℤ,
assuming p > 1 and p ∤ a.
Equations
- One or more equations did not get rendered due to their size.
- a.quadRootInZpZ b c 0 = panicWithPosWithDecl "LeanPool.EcTateLean.Algebra.EllipticCurve.Kronecker" "Int.quadRootInZpZ" 177 9 "unreachable code has been reached"
- a.quadRootInZpZ b c 1 = panicWithPosWithDecl "LeanPool.EcTateLean.Algebra.EllipticCurve.Kronecker" "Int.quadRootInZpZ" 178 9 "unreachable code has been reached"