Legendre symbol #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file contains results about Legendre symbols.
We define the Legendre symbol $\Bigl(\frac{a}{p}\Bigr)$ as legendre_sym p a
.
Note the order of arguments! The advantage of this form is that then legendre_sym p
is a multiplicative map.
The Legendre symbol is used to define the Jacobi symbol, jacobi_sym a b
, for integers a
and (odd) natural numbers b
, which extends the Legendre symbol.
Main results #
We also prove the supplementary laws that give conditions for when -1
is a square modulo a prime p
:
legendre_sym.at_neg_one
and zmod.exists_sq_eq_neg_one_iff
for -1
.
See number_theory.legendre_symbol.quadratic_reciprocity
for the conditions when 2
and -2
are squares:
legendre_sym.at_two
and zmod.exists_sq_eq_two_iff
for 2
,
legendre_sym.at_neg_two
and zmod.exists_sq_eq_neg_two_iff
for -2
.
Tags #
quadratic residue, quadratic nonresidue, Legendre symbol
Definition of the Legendre symbol and basic properties #
The Legendre symbol of a : ℤ
and a prime p
, legendre_sym p a
,
is an integer defined as
0
ifa
is0
modulop
;1
ifa
is a nonzero square modulop
-1
otherwise.
Note the order of the arguments! The advantage of the order chosen here is
that legendre_sym p
is a multiplicative function ℤ → ℤ
.
Equations
- legendre_sym p a = ⇑(quadratic_char (zmod p)) ↑a
We have the congruence legendre_sym p a ≡ a ^ (p / 2) mod p
.
If p ∤ a
, then legendre_sym p a
is 1
or -1
.
The Legendre symbol is multiplicative in a
for p
fixed.
The Legendre symbol depends only on a
mod p
.
When p ∤ a
, then legendre_sym p a = 1
iff a
is a square mod p
.
legendre_sym p a = -1
iff a
is a nonsquare mod p
.
Applications to binary quadratic forms #
The Legendre symbol legendre_sym p a = 1
if there is a solution in ℤ/pℤ
of the equation x^2 - a*y^2 = 0
with y ≠ 0
.
The Legendre symbol legendre_sym p a = 1
if there is a solution in ℤ/pℤ
of the equation x^2 - a*y^2 = 0
with x ≠ 0
.
The value of the Legendre symbol at -1
#
See jacobi_sym.at_neg_one
for the corresponding statement for the Jacobi symbol.
legendre_sym p (-1)
is given by χ₄ p
.