The k-pebble refinement, over an abstract initial relation #
The combinatorial core of k-variable equivalence ≡ᵏ
(Abiteboul–Vianu 1991;
Ebbinghaus–Flum 1995, ch. 3), with no logic in sight:
positions are k-tuples over a bare type A, an initial relation E₀
stands in for «same atomic type», and one round of the k-pebble game refines
a relation E to DescriptiveComplexity.pebbleRefine E₀ E – the pairs that
are in E₀ and survive one exchange of a pebble
(DescriptiveComplexity.PebbleBackForth).
DescriptiveComplexity.EquivK E₀ is the limit of the descending refinement
chain DescriptiveComplexity.pebbleStage, that is, the greatest fixed point
of the refinement:
- the chain plateaus within the number of pairs of tuples
(
DescriptiveComplexity.exists_pebbleStage_succ_eq, the antitone half ofDescriptiveComplexity.exists_succ_eq_of_antitone_subset), so on a finite type the limit is a stage and is itself a fixed point (DescriptiveComplexity.equivK_iff, the interface characterization); - any relation below
E₀that survives its own back-and-forth condition is below the limit (DescriptiveComplexity.le_equivK, the coinduction principle), which is what «greatest» means and how anything is ever proved≡ᵏ-equivalent; - the limit is an equivalence relation whenever
E₀is (DescriptiveComplexity.equivK_equivalence); - refining the initial relation by anything the limit already refines does not
change the limit (
DescriptiveComplexity.equivK_inf_eq) – read withE₀'the agreement on a≡ᵏ-invariant relation, this is the expansion lemma:≡ᵏis unchanged when the structure is expanded by an≡ᵏ-invariant relation. It is the lemma that carries the≡ᵏ-invariance of fixed-point logics, each stage of an induction being such an expansion.
Keeping E₀ abstract keeps the vocabulary out: the instantiation at «same
atomic type over a structure» – necessarily over the finitely many symbols a
definition actually mentions – is where the logic enters, and lives with the
invariance results for the fixed-point logics, not here. The same skeleton
with rounds in place of pebbles is the Ehrenfeucht–Fraïssé refinement, a
second consumer this file is stated to serve.
Relations on k-tuples #
A relation between k-tuples over A: the positions of the k-pebble
game.
Equations
- DescriptiveComplexity.PebbleRel A k = ((Fin k → A) → (Fin k → A) → Prop)
Instances For
Dependency graph
Pointwise implication of relations on k-tuples, spelled out (the
lattice order, kept explicit per the conventions of this library).
Instances For
Dependency graph
One round of the game #
The back-and-forth condition of the k-pebble game relative to a
relation E: whichever pebble the spoiler moves, on whichever side, the
duplicator can move the same pebble on the other side and stay in E.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
One round of refinement: agree initially, and survive one exchange of a
pebble relative to E.
Equations
- DescriptiveComplexity.pebbleRefine E₀ E a b = (E₀ a b ∧ DescriptiveComplexity.PebbleBackForth E a b)
Instances For
Dependency graph
The back-and-forth condition is monotone in the relation it is relative to.
Dependency graph
One round of refinement is monotone in the refined relation.
Dependency graph
The refinement chain and its limit #
The descending refinement chain, from the all-relation: what one round cannot yet tell apart, twice refined, thrice refined …
Equations
- DescriptiveComplexity.pebbleStage E₀ 0 = fun (x x_1 : Fin k → A) => True
- DescriptiveComplexity.pebbleStage E₀ n.succ = DescriptiveComplexity.pebbleRefine E₀ (DescriptiveComplexity.pebbleStage E₀ n)
Instances For
Dependency graph
k-equivalence relative to an initial relation: the limit of the
refinement chain – equivalently (DescriptiveComplexity.equivK_iff,
DescriptiveComplexity.le_equivK) the greatest fixed point of one round of
refinement.
Equations
- DescriptiveComplexity.EquivK E₀ a b = ∀ (n : ℕ), DescriptiveComplexity.pebbleStage E₀ n a b
Instances For
Dependency graph
The refinement chain descends.
Dependency graph
The refinement chain descends, monotonically.
Dependency graph
The limit is below every stage.
Dependency graph
The limit is below the initial relation.
Dependency graph
Coinduction: the limit is the greatest post-fixed point #
The coinduction principle: a relation below its own refinement is
below the limit. This is how tuples are ever proved ≡ᵏ-equivalent – exhibit
a back-and-forth system containing the pair.
Dependency graph
Stabilization on a finite type #
The refinement chain plateaus within the number of pairs of k-tuples:
consecutive stages agree from there on.
Dependency graph
On a finite type the limit is a fixed point of the refinement – the
greatest one, by DescriptiveComplexity.le_equivK.
Dependency graph
The interface characterization of ≡ᵏ on a finite type: initial
agreement together with the back-and-forth condition relative to ≡ᵏ
itself. Consumers should use this, never the stages.
Dependency graph
The game move: from an equivalent pair, moving a pebble on the left can be answered on the right.
Dependency graph
The game move, from the right.
Dependency graph
Pair substructures #
A tuple pair obtained by selecting, permuting and repeating coordinate pairs
of an equivalent pair is equivalent: duplicated pebbles only make the
duplicator's task easier. This is the well-definedness lemma behind every
operation on ≡ᵏ-classes that rearranges coordinates – the substitution and
rearrangement relations of the invariant structure.
Equivalence is inherited by pair substructures: if every coordinate
pair of (x, y) is a coordinate pair of (u, v), and the initial relation is
closed under this passage, then u ≡ᵏ v forces x ≡ᵏ y. Coinduction: the
spoiler's move on (x, y) frees a pebble of (u, v) (at most k - 1 pairs
are still needed), where the duplicator answers via the game move.
Dependency graph
Equivalence #
The back-and-forth condition preserves reflexivity.
Dependency graph
The back-and-forth condition preserves symmetry.
Dependency graph
The back-and-forth condition preserves transitivity.
Dependency graph
Every stage of the refinement chain of an equivalence is an equivalence.
Dependency graph
≡ᵏ is an equivalence whenever the initial relation is one.
Dependency graph
Monotonicity and the expansion lemma #
The stages are monotone in the initial relation.
Dependency graph
≡ᵏ is monotone in the initial relation.
Dependency graph
The expansion lemma: refining the initial relation by anything ≡ᵏ
already refines does not change ≡ᵏ. Read with E₀' the conjunction of E₀
and agreement on an ≡ᵏ-invariant relation, this says ≡ᵏ is unchanged when
the structure is expanded by an ≡ᵏ-invariant relation – the lemma that
carries the ≡ᵏ-invariance of the fixed-point logics, stage by stage.