Definition 21: LPS Expander Graphs #
Main Results #
PGL2: The projective general linear groupPGL(2, q).PSL2: The projective special linear groupPSL(2, q).SpTilde: The setS̃_p = {(a,b,c,d) ∈ ℤ⁴ | a² + b² + c² + d² = p}.Sp: The normalized subsetS_p ⊆ S̃_pwith|S_p| = p + 1.lpsMatrix: The matrixM(a,b,c,d)inGL(2, 𝔽_q).lpsGenSetPGL: The generating setS_{p,q} ⊆ PGL(2,q).lpsGenSetPSL: The generating setS_{p,q} ⊆ PSL(2,q).lpsGraphPGL: The LPS Cayley graph onPGL(2,q).lpsGraphPSL: The LPS Cayley graph onPSL(2,q).
Group definitions #
The projective special linear group PSL(2, q) = SL(2, 𝔽_q) / center(SL(2, 𝔽_q)).
Equations
- LPS.PSL2 q = (Matrix.SpecialLinearGroup (Fin 2) (ZMod q) ⧸ Subgroup.center (Matrix.SpecialLinearGroup (Fin 2) (ZMod q)))
Instances For
Equations
Equations
Equations
Equations
- LPS.PSL2.instDecidableEqSL q a b = decidable_of_iff (↑a = ↑b) ⋯
Equations
Equations
Equations
Equations
Equations
- LPS.PSL2.instDecidableLeftRel q a b = ⋯.mpr (LPS.PSL2.instDecidablePredCenter q (a⁻¹ * b))
Equations
The set S̃_p and the normalized subset S_p #
Predicate for the first nonzero element being positive (for p ≡ 3 mod 4 case).
Equations
Instances For
The normalized subset predicate for S_p.
When p ≡ 1 (mod 4): a is positive and odd.
When p ≡ 3 (mod 4): a is even and the first nonzero element is positive.
Equations
Instances For
Equations
The normalized subset S_p ⊆ S̃_p. Defined as the set of integer 4-tuples
(a,b,c,d) with a² + b² + c² + d² = p satisfying the normalization condition.
Each coordinate is bounded by √p ≤ p, so we filter from [-p, p]⁴.
Equations
- LPS.Sp p hoddp = Finset.filter (LPS.SpPred p) (Finset.Icc (-↑p) ↑p ×ˢ Finset.Icc (-↑p) ↑p ×ˢ Finset.Icc (-↑p) ↑p ×ˢ Finset.Icc (-↑p) ↑p)
Instances For
This follows from Jacobi's four-square theorem: r₄(p) = 8(p+1) for odd prime p, and the normalization conditions select exactly (p+1) representatives. Jacobi's four-square theorem is not available in Mathlib.
Witness lemmas for set non-emptiness #
Witness: SpTilde p is non-empty for any prime p ≥ 2.
For p = 3, the tuple (1, 1, 1, 0) satisfies 1² + 1² + 1² + 0² = 3.
Satisfiability witnesses for Sp #
The matrix M(a,b,c,d) and the LPS generating set #
The canonical projection from GL(2, ZMod q) to PGL(2, q).
Equations
- LPS.projPGL q = QuotientGroup.mk' (Subgroup.center (GL (Fin 2) (ZMod q)))
Instances For
The canonical projection from SL(2, ZMod q) to PSL(2, q).
Equations
- LPS.projPSL q = QuotientGroup.mk' (Subgroup.center (Matrix.SpecialLinearGroup (Fin 2) (ZMod q)))
Instances For
Map a tuple to PGL(2,q) via the LPS matrix, given membership in SpTilde.
Equations
- LPS.tupleToGLElement q p hpq x y hxy t ht = LPS.matToGL q (LPS.lpsMatrixVal q x y t) ⋯
Instances For
Helper lemmas for generating set properties #
If M(a,b,c,d) is in the center of GL(2, ZMod q), derive a contradiction.
The PGL image of tupleToGLElement(negConj t) equals the inverse of tupleToGLElement(t). This follows from adj(M(t)) * M(t) = det(M(t)) • I, and negConj gives the adjugate.
In the a=0 case, M(negConj t) = -M(t), so their PGL images coincide.
The LPS generating set in PGL(2, q), as a SymmGenSet.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Get a square root of (p : ZMod q) from the Legendre symbol condition.
Equations
- LPS.legendreSqrt q p hpq hleg = Exists.choose ⋯
Instances For
Construct an SL element from the LPS matrix using the Legendre symbol square root.
Equations
- LPS.tupleToSLElement q p hpq hleg x y hxy t ht = LPS.matToSL q (LPS.lpsMatrixVal q x y t) (LPS.legendreSqrt q p hpq hleg) ⋯ ⋯
Instances For
tupleToSLElement(negConj t) * tupleToSLElement(t) = 1 in SL.
In PSL, projPSL(negConj t) = projPSL(t) when a = 0 (since M(negConj t) = -M(t)).
The LPS generating set in PSL(2, q).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Satisfiability witnesses for generating set axioms #
The map from Sp to PGL(2,q) is injective (distinct tuples in Sp give distinct projective classes), and |Sp| = p+1 by Jacobi's four-square theorem. The injectivity requires that q > 2√p ensures no two distinct tuples can differ by a scalar multiple mod q. This deep number-theoretic result is not provable from Mathlib.
Same as lpsGenSetPGL_card but for the PSL case. The injectivity of the map
from Sp to PSL(2,q) via the scaled matrices requires the same deep number-theoretic
arguments about quaternion arithmetic modulo q.
Generation property #
The original statement asserts that S_{p,q} is a generating set of G, i.e.,
the subgroup generated by S_{p,q} equals all of G. This follows from the strong
approximation theorem for quaternion algebras (Lubotzky–Phillips–Sarnak), which is
far beyond current Mathlib infrastructure.
S_{p,q} generates all of PGL(2,q): the subgroup closure of the carrier
equals the whole group. This is a deep result following from the strong approximation
theorem for quaternion algebras (Lubotzky–Phillips–Sarnak).
S_{p,q} generates all of PSL(2,q): the subgroup closure of the carrier
equals the whole group. This is a deep result following from the strong approximation
theorem for quaternion algebras (Lubotzky–Phillips–Sarnak).
The LPS Cayley graphs #
The LPS graph on PGL(2,q): the Cayley graph Cay(PGL(2,q), S_{p,q}).
When (p/q) = -1 (Legendre symbol ≠ 1), the group is PGL(2,q).
Equations
- LPS.lpsGraphPGL q p hpq hoddp hoddq hq_gt x y hxy = CayleyGraph.cayleyGraph (LPS.lpsGenSetPGL q p hpq hoddp hoddq hq_gt x y hxy)
Instances For
The LPS graph on PSL(2,q): the Cayley graph Cay(PSL(2,q), S_{p,q}).
When (p/q) = 1 (Legendre symbol = 1), the group is PSL(2,q).
Equations
- LPS.lpsGraphPSL q p hpq hoddp hoddq hq_gt hleg x y hxy = CayleyGraph.cayleyGraph (LPS.lpsGenSetPSL q p hpq hoddp hoddq hq_gt hleg x y hxy)
Instances For
DecidableRel instances #
Equations
- LPS.lpsGraphPGL_decidableAdj q p hpq hoddp hoddq hq_gt x y hxy = CayleyGraph.cayleyGraph_decidableAdj (LPS.lpsGenSetPGL q p hpq hoddp hoddq hq_gt x y hxy)
Equations
- LPS.lpsGraphPSL_decidableAdj q p hpq hoddp hoddq hq_gt hleg x y hxy = CayleyGraph.cayleyGraph_decidableAdj (LPS.lpsGenSetPSL q p hpq hoddp hoddq hq_gt hleg x y hxy)
Regularity #
The LPS graph on PGL is (p+1)-regular.
The LPS graph on PSL is (p+1)-regular.
Independence of the choice of (x, y) #
For any two pairs (x₁,y₁), (x₂,y₂) with xᵢ²+yᵢ²+1=0, there exists g ∈ GL(2,𝔽_q) conjugating one quaternion embedding to the other, inducing a graph isomorphism via h ↦ ghg⁻¹. The proof requires constructing an explicit element of the orthogonal group of the norm form x²+y²+1 over 𝔽_q, which requires algebraic infrastructure not available in Mathlib.
Same as lpsGraphPGL_independent_of_xy but for the PSL case. The conjugation
by g ∈ GL(2,𝔽_q) preserves SL(2,𝔽_q) up to scaling, hence descends to PSL(2,q).
Requires the same orthogonal group infrastructure.