Clique, Independent Set and Vertex Cover: definitions #
The three classical threshold problems on graphs, as decision problems on
marked graphs: FirstOrder.Language.markedGraph-structures, carrying a
binary adjacency relation and a unary mark. The marked set carries the numeric
threshold k of the textbook problems in the unary representation of
DescriptiveComplexity.Numbers.Unary: the threshold is the cardinality
Set.ncard of the marked set, order-free and isomorphism-invariant for free.
DescriptiveComplexity.Clique: some clique is at least as large as the marked set;DescriptiveComplexity.IndependentSet: some independent set is at least as large as the marked set;DescriptiveComplexity.VertexCover: some vertex cover is at most as large as the marked set.
The threshold comparisons are comparisons of decoded numbers, and the
cardinality arithmetic they need is the shared kit of
DescriptiveComplexity.Numbers.Unary: invariance of a decoded number under an
equivalence of universes (DescriptiveComplexity.ncard_image_equiv) for the
isomorphism-invariance proofs, the reversal of a comparison under
complementation (DescriptiveComplexity.ncard_compl_le_ncard_compl_iff) for the
Vertex Cover ↔ Independent Set reductions, and the equivalence with the
existence of an injection (DescriptiveComplexity.nonempty_embedding_iff_ncard_le,
here DescriptiveComplexity.cliqueOn_iff_embedding) for the second-order definition,
which guesses that injection as a relation variable. Since cardinality
thresholds are only meaningful on finite structures, finiteness of the
universe is part of the yes-instances; by ComplexityClass.mem_congr_finite
this does not affect any complexity-theoretic statement.
Self-loops are ignored (all three properties are about the underlying loopless graph), and adjacency is required in both directions on ordered pairs, so the problems agree with their standard versions on (structures encoding) simple graphs.
The three predicates are instances of generic properties DescriptiveComplexity.CliqueOn
/ IndepOn / CoverOn of a binary and a unary predicate on a type; the
generic form is shared by the isomorphism-invariance proofs and by the
reductions of DescriptiveComplexity.Problems.CliqueFamily.Reductions.
Relation symbols of the language of marked graphs.
- adj : markedGraphRel 2
adj a b: there is an edge fromatob. - marked : markedGraphRel 1
marked a: the elementabelongs to the marked set.
Instances For
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
The relational language of marked graphs: a graph together with a marked subset of its vertices, whose cardinality serves as threshold.
Equations
- FirstOrder.Language.markedGraph = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.markedGraphRel }
Instances For
Dependency graph
Dependency graph
The adjacency symbol of marked graphs.
Instances For
Dependency graph
The mark symbol of marked graphs.
Instances For
Dependency graph
Generic threshold properties #
The properties underlying the three problems, for an arbitrary binary
predicate Adjp (adjacency) and unary predicate Kp (marks) on a type.
Some set that is pairwise Adjp-related (off the diagonal) is at least as
large as the number encoded by the Kp-marked elements: “some clique is at
least as large as the marked set”.
Equations
Instances For
Dependency graph
Some set that is pairwise non-Adjp-related (off the diagonal) is at least
as large as the number encoded by the Kp-marked elements: “some independent
set is at least as large as the marked set”.
Equations
- DescriptiveComplexity.IndepOn Adjp Kp = DescriptiveComplexity.CliqueOn (fun (x y : A) => ¬Adjp x y) Kp
Instances For
Dependency graph
Some set meeting every (off-diagonal) Adjp-edge is at most as large as
the number encoded by the Kp-marked elements: “some vertex cover is at most
as large as the marked set”.
Equations
Instances For
Dependency graph
The threshold as an injection #
On a finite universe, comparing the decoded numbers is comparing sizes, so the threshold conditions can equivalently be read as the existence of an injection. This is the form the second-order definitions guess.
The clique threshold as an injection of the marked set into the clique.
Dependency graph
The independent-set threshold as an injection of the marked set into the independent set.
Dependency graph
The vertex-cover threshold as an injection of the cover into the marked set.
Dependency graph
CliqueOn transports along an equivalence commuting with the two
predicates.
Dependency graph
IndepOn transports along an equivalence commuting with the two
predicates.
Dependency graph
CoverOn transports along an equivalence commuting with the two
predicates.
Dependency graph
CliqueOn transports along an equivalence, iff version.
Dependency graph
IndepOn transports along an equivalence, iff version.
Dependency graph
CoverOn transports along an equivalence, iff version.
Dependency graph
CliqueOn only depends on the off-diagonal part of the adjacency
predicate and on the extension of the mark predicate.
Dependency graph
IndepOn only depends on the off-diagonal part of the adjacency
predicate and on the extension of the mark predicate.
Dependency graph
The three problems #
Adjacency in a marked graph.
Equations
Instances For
Dependency graph
Markedness in a marked graph.
Equations
Instances For
Dependency graph
A marked graph contains a clique at least as large as its marked set. (Finiteness of the universe is part of the property: cardinality thresholds are only meaningful on finite structures.)
Equations
Instances For
Dependency graph
A marked graph contains an independent set at least as large as its marked set.
Equations
Instances For
Dependency graph
A marked graph contains a vertex cover at most as large as its marked set.
Equations
Instances For
Dependency graph
Isomorphism-invariance and the bundled problems #
The clique threshold property is isomorphism-invariant.
Dependency graph
The independent-set threshold property is isomorphism-invariant.
Dependency graph
The vertex-cover threshold property is isomorphism-invariant.
Dependency graph
CLIQUE, as a problem on marked graphs: is there a clique at least as large as the marked set?
Equations
- DescriptiveComplexity.Clique = { Holds := fun (A : Type) (inst : FirstOrder.Language.markedGraph.Structure A) => DescriptiveComplexity.HasLargeClique A, iso_invariant := ⋯ }
Instances For
Dependency graph
INDEPENDENT SET, as a problem on marked graphs: is there an independent set at least as large as the marked set?
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
VERTEX COVER, as a problem on marked graphs: is there a vertex cover at most as large as the marked set?
Equations
- DescriptiveComplexity.VertexCover = { Holds := fun (A : Type) (inst : FirstOrder.Language.markedGraph.Structure A) => DescriptiveComplexity.HasSmallVertexCover A, iso_invariant := ⋯ }