Draft — mutable and not usable as a dependency; its citation marks the draft state.

Lax5.GraphTransductions

Graph transductions

concepts/Lax5/GraphTransductions.lean · Lax5

nothing to prove

Definition

A finite simple graph is a structure of the language of graphs, with the single binary relation interpreted as adjacency. A graph class transduces another if the corresponding classes of graph structures are related by a first-order transduction.

Lean source view on GitHub

1import Lax5.GraphClasses
2import Lax5.Transductions
3import Mathlib.ModelTheory.Graph
4
5/-!
6---
7title: Graph transductions
8type: definition
9---
10A finite simple graph is a structure of the language of graphs, with the
11single binary relation interpreted as adjacency. A graph class
12transduces another if the corresponding classes of graph structures are
13related by a first-order transduction.
14
15# Formalization notes
16
17Graphs enter as structures via mathlib's `SimpleGraph.structure`. The
18target structures of a graph transduction are therefore honest graph
19structures — symmetric and irreflexive — so the interpreting formula
20must define the output adjacency exactly. This matches the common
21convention of interpreting by an arbitrary formula `φ` and keeping the
22pairs `u ≠ v` with `φ(u,v) ∧ φ(v,u)`: that symmetrized condition is
23itself a formula, so both conventions define the same transduces
24relation on graph classes.
25-/
26
27namespace Lax5.GraphTransductions
28
29open FirstOrder Lax5.GraphClasses
30
31/-- The members of a graph class, as structures of the language of
32graphs: adjacency interprets the binary relation. -/
33def structureClass (C : GraphClass) :
34 Transductions.StructureClass Language.graph :=
35 fun n S => ∃ G : SimpleGraph (Fin n), C n G ∧ S = G.structure
36
37/-- `C` transduces `D` as graph classes: the corresponding classes of
38graph structures are related by a first-order transduction. -/
39def Transduces (C D : GraphClass) : Prop :=
40 Transductions.Transduces (structureClass C) (structureClass D)
41
42end Lax5.GraphTransductions
43

Formalization notes

Graphs enter as structures via mathlib's SimpleGraph.structure. The target structures of a graph transduction are therefore honest graph structures — symmetric and irreflexive — so the interpreting formula must define the output adjacency exactly. This matches the common convention of interpreting by an arbitrary formula φ and keeping the pairs u ≠ v with φ(u,v) ∧ φ(v,u): that symmetrized condition is itself a formula, so both conventions define the same transduces relation on graph classes.

Mathlib imports