First-Order Structures in Graph Theory #
This file defines first-order languages, structures, and theories in graph theory.
Main Definitions #
FirstOrder.Language.graphis the language consisting of a single relation representing adjacency.SimpleGraph.structureis the first-order structure corresponding to a given simple graph.FirstOrder.Language.Theory.simpleGraphis the theory of simple graphs.FirstOrder.Language.simpleGraphOfStructuregives the simple graph corresponding to a model of the theory of simple graphs.
Simple Graphs #
Equations
Instances For
@[instance_reducible]
The language consisting of a single relation representing adjacency.
Equations
- FirstOrder.Language.graph = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.graphRel }
Instances For
@[reducible, inline]
The symbol representing the adjacency relation.
Instances For
@[instance_reducible]
Any simple graph can be thought of as a structure in the language of graphs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The theory of simple graphs.
Equations
Instances For
@[simp]
theorem FirstOrder.Language.Theory.simpleGraph_model_iff {V : Type u} [Language.graph.Structure V] :
V ⊨ Theory.simpleGraph ↔ (Std.Irrefl fun (x y : V) => Structure.RelMap adj ![x, y]) ∧ Std.Symm fun (x y : V) => Structure.RelMap adj ![x, y]
def FirstOrder.Language.simpleGraphOfStructure (V : Type u) [Language.graph.Structure V] [V ⊨ Theory.simpleGraph] :
Any model of the theory of simple graphs represents a simple graph.
Equations
- FirstOrder.Language.simpleGraphOfStructure V = { Adj := fun (x y : V) => FirstOrder.Language.Structure.RelMap FirstOrder.Language.adj ![x, y], symm := ⋯, loopless := ⋯ }
Instances For
@[simp]
theorem FirstOrder.Language.simpleGraphOfStructure_adj (V : Type u) [Language.graph.Structure V] [V ⊨ Theory.simpleGraph] (x y : V) :
@[simp]
@[simp]
theorem FirstOrder.Language.structure_simpleGraphOfStructure {V : Type u} [S : Language.graph.Structure V] [V ⊨ Theory.simpleGraph] :