def
Graph.copy
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{X : Set α}
{P : Partition α}
{l : β → α → α → Prop}
(G : Graph α β)
{E : Set β}
(hP : G.vertexPartition = P)
(hV : G.vertexSet = X)
(hE : G.edgeSet = E)
(h_isLink : ∀ (e : β) (x y : α), G.IsLink e x y ↔ l e x y)
:
Graph α β
Copy
creates an identical graph with different definitions for its vertex set and edge set.
This is mainly used to create graphs with improved definitional properties.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
@[simp]
theorem
Graph.copy_isLink
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{X : Set α}
{P : Partition α}
{l : β → α → α → Prop}
(G : Graph α β)
{E : Set β}
(hP : G.vertexPartition = P)
(hV : G.vertexSet = X)
(hE : G.edgeSet = E)
(h_isLink : ∀ (e : β) (x y : α), G.IsLink e x y ↔ l e x y)
(a✝ : β)
(a✝¹ a✝² : α)
:
@[simp]
def
Graph.mk_of_symm
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(P : Partition α)
(l : β → α → α → Prop)
[∀ (e : β), IsSymm α (l e)]
:
Graph α β
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Graph.mk_of_symm_vertexPartition
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(P : Partition α)
(l : β → α → α → Prop)
[∀ (e : β), IsSymm α (l e)]
:
@[simp]
theorem
Graph.mk_of_symm_edgeSet
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(P : Partition α)
(l : β → α → α → Prop)
[∀ (e : β), IsSymm α (l e)]
:
@[simp]
theorem
Graph.mk_of_symm_vertexSet
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(P : Partition α)
(l : β → α → α → Prop)
[∀ (e : β), IsSymm α (l e)]
:
@[simp]
theorem
Graph.mk_of_symm_isLink
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(P : Partition α)
(l : β → α → α → Prop)
[∀ (e : β), IsSymm α (l e)]
(e : β)
(x y : α)
:
(mk_of_symm P l).IsLink e x y = have l' := Relation.restrict (l e) P.parts;
(∀ ⦃a b c d : α⦄, l' a b → l' c d → a = c ∨ a = d) ∧ l' x y
theorem
Graph.IsLink.of_mk_of_symm
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{x y : α}
{e : β}
{P : Partition α}
{l : β → α → α → Prop}
[∀ (e : β), IsSymm α (l e)]
(h : (mk_of_symm P l).IsLink e x y)
:
l e x y
theorem
Graph.mk_of_symm_eq_self
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(G : Graph α β)
:
def
Graph.mk'
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(V : Partition α)
(l : β → α → α → Prop)
:
Graph α β
Equations
- Graph.mk' V l = Graph.mk_of_symm V fun (e : β) => Relation.SymmClosure (l e)
Instances For
@[simp]
theorem
Graph.mk'_isLink
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(V : Partition α)
(l : β → α → α → Prop)
(e : β)
(x y : α)
:
(mk' V l).IsLink e x y = ((∀ ⦃a b c d : α⦄,
Relation.restrict (Relation.SymmClosure (l e)) V.parts a b →
Relation.restrict (Relation.SymmClosure (l e)) V.parts c d → a = c ∨ a = d) ∧ Relation.restrict (Relation.SymmClosure (l e)) V.parts x y)
@[simp]
theorem
Graph.mk'_vertexPartition
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(V : Partition α)
(l : β → α → α → Prop)
:
@[simp]
theorem
Graph.mk'_edgeSet
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(V : Partition α)
(l : β → α → α → Prop)
:
(mk' V l).edgeSet = {e : β | (∀ ⦃a b c d : α⦄,
Relation.restrict (Relation.SymmClosure (l e)) V.parts a b →
Relation.restrict (Relation.SymmClosure (l e)) V.parts c d → a = c ∨ a = d) ∧ ∃ (x : α) (x_1 : α), Relation.restrict (Relation.SymmClosure (l e)) V.parts x x_1}
The graph with vertex set V
and no edges
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Graph.noEdge_vertexSet
{α : Type u_1}
[CompleteLattice α]
(P : Partition α)
(β : Type u_3)
:
@[simp]
theorem
Graph.noEdge_isLink
{α : Type u_1}
[CompleteLattice α]
(P : Partition α)
(β : Type u_3)
(x✝ : β)
(x✝¹ x✝² : α)
:
@[simp]
@[simp]
theorem
Graph.noEdge_vertexPartition
{α : Type u_1}
[CompleteLattice α]
(P : Partition α)
(β : Type u_3)
:
theorem
Graph.eq_empty_or_vertexSet_nonempty
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(G : Graph α β)
:
@[simp]
theorem
Graph.noEdge_le_iff
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{G : Graph α β}
{P : Partition α}
:
@[simp]
theorem
Graph.noEdge_not_inc
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{x : α}
{e : β}
{P : Partition α}
:
¬(Graph.noEdge P β).Inc e x
@[simp]
theorem
Graph.noEdge_not_isLoopAt
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{x : α}
{e : β}
{P : Partition α}
:
¬(Graph.noEdge P β).IsLoopAt e x
@[simp]
theorem
Graph.noEdge_not_isNonloopAt
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{x : α}
{e : β}
{P : Partition α}
:
¬(Graph.noEdge P β).IsNonloopAt e x
@[simp]
theorem
Graph.noEdge_not_adj
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{x y : α}
{P : Partition α}
:
¬(Graph.noEdge P β).Adj x y
theorem
Graph.edgeSet_eq_empty_iff
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
{G : Graph α β}
:
Equations
- Graph.instOrderBot = { bot := Graph.noEdge ⊥ β, bot_le := ⋯ }
@[simp]
@[simp]
@[simp]
theorem
Graph.bot_isClosedSubgraph
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(G : Graph α β)
:
@[simp]
theorem
Graph.bot_isInducedSubgraph
{α : Type u_1}
{β : Type u_2}
[CompleteLattice α]
(G : Graph α β)
:
@[simp]
@[simp]
Complete graphs #
@[simp]
@[simp]