Copies of Simple Graphs #
This file introduces the concept of one simple graph containing a copy of another.
Main definitions #
SimpleGraph.Copy A B
is the type of copies ofA
inB
, implemented as the subtype of injective homomorphisms.SimpleGraph.IsContained A B
,A ⊑ B
is the relation thatB
contains a copy ofA
, that is, the type of copies ofA
inB
is nonempty. This is equivalent to the existence of an isomorphism fromA
to a subgraph ofB
.This is similar to
SimpleGraph.IsSubgraph
except that the simple graphs here need not have the same underlying vertex type.SimpleGraph.Free
is the predicate thatB
isA
-free, that is,B
does not contain a copy ofA
. This is the negation ofSimpleGraph.IsContained
implemented for convenience.
Notation #
The following notation is declared in locale SimpleGraph
:
G ⊑ H
forSimpleGraph.IsContained G H
.
The type of copies as a subtype of injective homomorphisms.
Instances For
An injective homomorphism gives rise to a copy.
Instances For
An embedding gives rise to a copy.
Instances For
An isomorphism gives rise to a copy.
Equations
- f.toCopy = f.toEmbedding.toCopy
Instances For
A copy gives rise to a homomorphism.
Equations
Instances For
Equations
- SimpleGraph.Copy.instFunLike = { coe := fun (f : A.Copy B) => ⇑f.toHom, coe_injective' := ⋯ }
A copy induces an embedding of edge sets.
Equations
- f.mapEdgeSet = { toFun := f.toHom.mapEdgeSet, inj' := ⋯ }
Instances For
A copy induces an embedding of neighbor sets.
Equations
- f.mapNeighborSet a = { toFun := fun (v : ↑(A.neighborSet a)) => ⟨f ↑v, ⋯⟩, inj' := ⋯ }
Instances For
A copy gives rise to an embedding of vertex types.
Equations
- f.toEmbedding = { toFun := ⇑f, inj' := ⋯ }
Instances For
The identity copy from a simple graph to itself.
Equations
Instances For
The composition of copies is a copy.
Instances For
The copy from a subgraph to the supergraph.
Equations
- SimpleGraph.Copy.ofLE G₁ G₂ h = ⟨SimpleGraph.Hom.ofLE h, ⋯⟩
Instances For
The copy from an induced subgraph to the initial simple graph.
Equations
Instances For
The copy of ⊥
in any simple graph that can embed its vertices.
Equations
- SimpleGraph.Copy.bot f = ⟨{ toFun := ⇑f, map_rel' := ⋯ }, ⋯⟩
Instances For
The relation IsContained A B
, A ⊑ B
says that B
contains a copy of A
.
This is equivalent to the existence of an isomorphism from A
to a subgraph of B
.
Equations
- A.IsContained B = Nonempty (A.Copy B)
Instances For
The relation IsContained A B
, A ⊑ B
says that B
contains a copy of A
.
This is equivalent to the existence of an isomorphism from A
to a subgraph of B
.
Equations
- SimpleGraph.«term_⊑_» = Lean.ParserDescr.trailingNode `SimpleGraph.«term_⊑_» 50 50 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊑ ") (Lean.ParserDescr.cat `term 51))
Instances For
A simple graph contains itself.
A simple graph contains its subgraphs.
If A
contains B
and B
contains C
, then A
contains C
.
If B
contains C
and A
contains B
, then A
contains C
.
Alias of SimpleGraph.IsContained.mono_right
.
Alias of SimpleGraph.IsContained.mono_left
.
If A ≃g B
, then A
is contained in C
if and only if B
is contained in C
.
A simple graph having no vertices is contained in any simple graph.
⊥
is contained in any simple graph having sufficently many vertices.
Alias of SimpleGraph.bot_isContained_iff_card_le
.
⊥
is contained in any simple graph having sufficently many vertices.
A simple graph G
contains all Subgraph G
coercions.
The isomorphism from Subgraph A
to its map under a copy Copy A B
.
Equations
- SimpleGraph.Subgraph.Copy.map f A' = { toEquiv := Equiv.Set.image (⇑f.toHom) A'.verts ⋯, map_rel_iff' := ⋯ }
Instances For
B
contains A
if and only if B
has a subgraph B'
and B'
is isomorphic to A
.
Alias of the reverse direction of SimpleGraph.isContained_iff_exists_iso_subgraph
.
B
contains A
if and only if B
has a subgraph B'
and B'
is isomorphic to A
.
Alias of the forward direction of SimpleGraph.isContained_iff_exists_iso_subgraph
.
B
contains A
if and only if B
has a subgraph B'
and B'
is isomorphic to A
.
The proposition that a simple graph does not contain a copy of another simple graph.
Equations
- A.Free B = ¬A.IsContained B
Instances For
If A ≃g B
, then C
is A
-free if and only if C
is B
-free.