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
@[instance_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) ⋯
@[instance_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]
@[instance_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
@[instance_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