Definition of circulant graphs #
This file defines and proves several fact about circulant graphs.
A circulant graph over type G
with jumps s : Set G
is a graph in which two vertices u
and v
are adjacent if and only if u - v ∈ s
or v - u ∈ s
. The elements of s
are called jumps.
Main declarations #
SimpleGraph.circulantGraph s
: the circulant graph overG
with jumpss
.SimpleGraph.cycleGraph n
: the cycle graph overFin n
.
Circulant graph over additive group G
with jumps s
Equations
- SimpleGraph.circulantGraph s = SimpleGraph.fromRel fun (x1 x2 : G) => x1 - x2 ∈ s
Instances For
instance
SimpleGraph.instDecidableRelAdjCirculantGraphOfDecidableEqOfDecidablePredMemSet
{G : Type u_1}
[AddGroup G]
(s : Set G)
[DecidableEq G]
[DecidablePred fun (x : G) => x ∈ s]
:
Equations
- One or more equations did not get rendered due to their size.
theorem
SimpleGraph.circulantGraph_adj_translate
{G : Type u_1}
[AddGroup G]
{s : Set G}
{u : G}
{v : G}
{d : G}
:
(SimpleGraph.circulantGraph s).Adj (u + d) (v + d) ↔ (SimpleGraph.circulantGraph s).Adj u v
instance
SimpleGraph.instDecidableRelFinAdjCycleGraph
(n : ℕ)
:
DecidableRel (SimpleGraph.cycleGraph n).Adj
Equations
- SimpleGraph.instDecidableRelFinAdjCycleGraph 0 = fun (x x : Fin 0) => inferInstanceAs (Decidable False)
- SimpleGraph.instDecidableRelFinAdjCycleGraph n.succ = inferInstanceAs (DecidableRel (SimpleGraph.circulantGraph {1}).Adj)
theorem
SimpleGraph.cycleGraph_zero_adj
{u : Fin 0}
{v : Fin 0}
:
¬(SimpleGraph.cycleGraph 0).Adj u v
theorem
SimpleGraph.cycleGraph_neighborSet
{n : ℕ}
{v : Fin (n + 2)}
:
(SimpleGraph.cycleGraph (n + 2)).neighborSet v = {v - 1, v + 1}
theorem
SimpleGraph.cycleGraph_neighborFinset
{n : ℕ}
{v : Fin (n + 2)}
:
(SimpleGraph.cycleGraph (n + 2)).neighborFinset v = {v - 1, v + 1}
theorem
SimpleGraph.cycleGraph_degree_two_le
{n : ℕ}
{v : Fin (n + 2)}
:
(SimpleGraph.cycleGraph (n + 2)).degree v = {v - 1, v + 1}.card
theorem
SimpleGraph.cycleGraph_degree_three_le
{n : ℕ}
{v : Fin (n + 3)}
:
(SimpleGraph.cycleGraph (n + 3)).degree v = 2