Coherent infinite Ehrenfeucht–Fraïssé strategies #
CoherentEFStrategy L a b records the paired tuples after every finite history of Spoiler
moves, preserving atomic type and extending the preceding position by exactly the chosen move
and its response. Histories list the most recent move first. An M ⊕ N move specifies both
which structure Spoiler plays in and the chosen element. Every such history is legal, so the
strategy carries no arbitrary values on unreachable histories.
Existence of a coherent strategy from the empty tuples is equivalent to potential isomorphism. A tuple back-and-forth system constructs a strategy by recursively choosing responses within the same system; conversely, the reached positions of one strategy form a system.
There is a genuine quantifier-order distinction: BFEquiv ω gives a winning strategy for each
finite length, allowing the response to depend on that length. A coherent strategy must fix a
response before knowing how many further moves will be made. The former condition does not
supply the latter: a response that works for every finite continuation must be chosen once,
not separately for each length. EFStrategy.nonempty_family_iff_bfEquiv_omega0 states precisely
what the unrelated family expresses, while potentialIso_iff_nonempty_coherentEFStrategy
characterizes the coherent object. The orders ℤ and ℤ ⊕ₗ ℤ separate the two notions: see
TauCeti.isEmpty_coherentEFStrategy_int_sumLex_int in
TauCeti.ModelTheory.BackAndForth.DiscreteOrder.
See Wilfrid Hodges, Model Theory (1993), for back-and-forth games, and Carol Karp, Finite-quantifier equivalence (1965), for back-and-forth systems. This construction uses the existing tuple-system API, not a family of unrelated finite strategies.
One winning Duplicator strategy for arbitrarily long play. The positions at all histories are compatible, so responses cannot depend on the future length of the game.
The first tuple after a history of Spoiler moves, newest move first.
The second tuple after the same history.
The first tuple starts at
a.The second tuple starts at
b.A move in the first structure appends exactly the element played.
- forth_right (h : List (M ⊕ N)) (x : M) : self.right (Sum.inl x :: h) = Fin.snoc (self.right h) (self.right (Sum.inl x :: h) (Fin.last (n + h.length)))
The matching response extends, rather than changes, the second tuple.
- back_left (h : List (M ⊕ N)) (y : N) : self.left (Sum.inr y :: h) = Fin.snoc (self.left h) (self.left (Sum.inr y :: h) (Fin.last (n + h.length)))
The matching response extends, rather than changes, the first tuple.
A move in the second structure appends exactly the element played.
- sameAtomicType (h : List (M ⊕ N)) : SameAtomicType (self.left h) (self.right h)
Duplicator wins at every finite position, including the initial position.
Instances For
A response to a move in the first structure preserves every earlier entry.
A response to a move in the second structure preserves every earlier entry.
A coherent strategy is determined by its paired positions at every history.
Restrict one coherent strategy, at any reached history, to a finite number of future rounds. All these restrictions use the same responses at their common histories.
Instances For
Finite restriction uses the coherent response, independently of the remaining length.
A coherent infinite strategy gives a winning strategy for every finite number of rounds.
A pair in a tuple back-and-forth system admits one coherent infinite strategy: each response and its continuation stay inside the same system.
Instances For
Reindexing the reached positions of a coherent strategy gives a tuple back-and-forth system containing its starting pair, even when the starting tuples are nonempty.
A pair admits a coherent strategy exactly when it belongs to a tuple back-and-forth system. This includes arbitrary starting tuples.
The reached positions of a coherent strategy from the empty tuples form a tuple back-and-forth system.
Potential isomorphism is exactly existence of one winning coherent infinite strategy. Unlike a family of finite-round strategies, the responses are fixed across all lengths.