Definition of Cayley graphs #
This file defines and proves several fact about Cayley graphs.
A Cayley graph over type M with generators s : Set M is a graph in which two vertices u ≠ v
are adjacent if and only if there is some g ∈ s such that u * g = v or v * g = u.
The elements of s are called generators.
Main declarations #
SimpleGraph.mulCayley s: the Cayley graph overMinduced by[Mul M]with generatorss.SimpleGraph.addCayley s: the Cayley graph overMinduced by[Add M]with generatorss.
TODOS #
- Add API describing behaviour w/r/t
MulOpposite. - Add lemma showing this graph is the same as
SimpleGraph.circulantGraphin appropriate settings.
The Cayley graph induced by an operation [Mul M] with generators s
Equations
- SimpleGraph.mulCayley s = SimpleGraph.fromRel fun (x1 x2 : M) => ∃ g ∈ s, x1 * g = x2
Instances For
The Cayley graph induced by an operation [Add M] with generators s
Equations
- SimpleGraph.addCayley s = SimpleGraph.fromRel fun (x1 x2 : M) => ∃ g ∈ s, x1 + g = x2
Instances For
@[implicit_reducible]
instance
SimpleGraph.instDecidableRelAdjMulCayleyOfFintypeOfDecidableEqOfDecidablePredMemSet
{M : Type u_1}
(s : Set M)
[Mul M]
[Fintype M]
[DecidableEq M]
[DecidablePred fun (x : M) => x ∈ s]
:
DecidableRel (mulCayley s).Adj
Equations
- SimpleGraph.instDecidableRelAdjMulCayleyOfFintypeOfDecidableEqOfDecidablePredMemSet s u v = decidable_of_iff (u ≠ v ∧ ∃ g ∈ s, u * g = v ∨ u = v * g) ⋯
@[implicit_reducible]
instance
SimpleGraph.instDecidableRelAdjAddCayleyOfFintypeOfDecidableEqOfDecidablePredMemSet
{M : Type u_1}
(s : Set M)
[Add M]
[Fintype M]
[DecidableEq M]
[DecidablePred fun (x : M) => x ∈ s]
:
DecidableRel (addCayley s).Adj
Equations
- SimpleGraph.instDecidableRelAdjAddCayleyOfFintypeOfDecidableEqOfDecidablePredMemSet s u v = decidable_of_iff (u ≠ v ∧ ∃ g ∈ s, u + g = v ∨ u = v + g) ⋯
@[simp]
theorem
SimpleGraph.addCayley_adj_add_iff_right
{M : Type u_1}
[AddSemigroup M]
[IsLeftCancelAdd M]
{s : Set M}
{u v d : M}
:
@[simp]
@[simp]
@[simp]
@[simp]
@[implicit_reducible]
instance
SimpleGraph.instDecidableRelAdjMulCayleyOfDecidableEqOfDecidablePredMemSet
{M : Type u_1}
(s : Set M)
[Group M]
[DecidableEq M]
[DecidablePred fun (x : M) => x ∈ s]
:
DecidableRel (mulCayley s).Adj
@[implicit_reducible]
instance
SimpleGraph.instDecidableRelAdjAddCayleyOfDecidableEqOfDecidablePredMemSet
{M : Type u_1}
(s : Set M)
[AddGroup M]
[DecidableEq M]
[DecidablePred fun (x : M) => x ∈ s]
:
DecidableRel (addCayley s).Adj