This paper introduces a new game-semantic model of computation based on viability, establishing Turing completeness for strategies and generalizing key computability theorems, offering a foundational perspective beyond natural number computation.
Contribution
It develops a novel, intrinsic notion of computability called viability within game semantics, demonstrating Turing completeness and extending classical computability results.
Findings
01
Viability is a new intrinsic notion of computability in game semantics.
02
Viable strategies are shown to be Turing complete.
03
Generalization of the smn-theorem and recursion theorem.
Abstract
The present paper introduces a novel notion of `(effective) computability', called viability, of strategies in game semantics in an intrinsic (i.e., without recourse to the standard Church-Turing computability), non-inductive and non-axiomatic manner, and shows, as a main technical achievement, that viable strategies are Turing complete. Consequently, we have given a mathematical foundation of computation in the same sense as Turing machines but beyond computation on natural numbers, e.g., higher-order computation, in a more abstract fashion. As immediate corollaries, some of the well-known theorems in computability theory such as the smn-theorem and the first recursion theorem are generalized. Notably, our game-semantic framework distinguishes `high-level' computational processes that operate directly on mathematical objects such as natural numbers (not on their symbolic…
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputability, Logic, AI Algorithms · Logic, Reasoning, and Knowledge · Advanced Algebra and Logic
The present paper introduces a novel notion of ‘(effective) computability’, called viability, of strategies in game semantics in an intrinsic (i.e., without recourse to the standard Church-Turing computability), non-inductive and non-axiomatic manner, and shows, as a main technical achievement, that viable strategies are Turing complete.
Consequently, we have given a mathematical foundation of computation in the same sense as Turing machines but beyond computation on natural numbers, e.g., higher-order computation, in a more abstract fashion.
As immediate corollaries, some of the well-known theorems in computability theory such as the smn-theorem and the first recursion theorem are generalized.
Notably, our game-semantic framework distinguishes ‘high-level’ computational processes that operate directly on mathematical objects such as natural numbers (not on their symbolic representations) and their ‘symbolic implementations’ that define their ‘computability’, which sheds new light on the very concept of computation.
This work is intended to be a stepping stone towards a new mathematical foundation of computation, intuitionistic logic and constructive mathematics.
1 Introduction
The present work introduces an intrinsic, non-inductive and non-axiomatic formulation of ‘effectively computable’ strategies in game semantics and proves that they are Turing complete.
This result leads to a novel mathematical foundation of computation beyond classical computation, e.g., higher-order computation, that distinguishes ‘high-level’ and ‘low-level’ computational processes, where the latter defines ‘effective computability’ of the former.
Convention*.*
We informally use computational processes and algorithms almost as synonyms of computation, but they put more emphasis on ‘processes’.
1.1 Search for Turing machines beyond classical computation
Turing machines (TMs) introduced in the classic work [Tur36] by Alan Turing have been widely accepted as providing a reasonable and highly convincing definition of ‘effectivity’ or ‘(effective) computability’ of functions on (finite sequences of) natural numbers, which we call recursiveness, classical computability or Church-Turing computability in the present paper, in a mathematically rigorous manner.
This is because ‘computability’ of a function intuitively means the very existence of an algorithm that ‘implements’ the function’s input/output-behavior, and TMs are none other than a mathematical formulation of this informal concept.
In mathematics, however, there are various kinds of non-classical computation, where by classical computation we mean what merely ‘implements’ a function on (finite sequences of) natural numbers, since there are a variety of mathematical objects other than natural numbers, for which TMs have certain limitations.
As an example of non-classical computation, consider higher-order computation [LN15], i.e., computation that takes (as an input) or produces (as an output) another computation, which abounds in mathematics, e.g., quantification in mathematical logic, differentiation in analysis or simply an application (f,a)↦f(a) of a function f:A→B to an argument a∈A.
However, TMs cannot capture higher-order computation in a natural or systematic fashion.
In fact, although TMs may compute on symbols that encode other TMs, e.g., consider universal TMs [Koz12, Sip12], they cannot compute on ‘external behavior’ of an input computation, which implies that the input is limited to a recursive one (to be encoded); however, it makes perfect sense to consider computation on non-recursive objects such as non-recursive real numbers.
For this point, one may argue that oracle TMs [Koz06, Sip12] may treat an input computation as an oracle, a ‘black-box-like’ computation that does not have to be recursive; however, it is like a function (rather than a computational process) that computes just in a single step, which appears conceptually mysterious and technically ad-hoc (another approach is to give an input computation as a potentially infinite sequence of symbols on the input tape [Wei12], but it may be criticized in a similar manner).
On the other hand, most of the other models of higher-order computation are, unlike TMs, either syntactic (such as λ-calculi and programming languages [B*+*84, LN15]), inductive and/or axiomatic (such as Kleene’s schemata S1-S9 [Kle59, Kle63]) or extrinsic (i.e., reducing to classical computation by encoding whose ‘effectivity’ is usually left imprecise [Cut80, LN15]), thus lacking the semantic, direct and intrinsic natures of TMs.
Also, unlike classical computability, a confluence between different notions of higher-order computability has been rarely established [LN15].
For this problem, it would be a key step to establish a ‘TMs-like’ model of higher-order computation since it may tell us which notion of higher-order computability is a ‘correct’ one.
1.2 Search for mathematics of ‘high-level’ computational processes
Perhaps more crucially than the limitation for non-classical computation mentioned above, one may argue that TMs are not appropriate as mathematics of computational processes since computational steps of TMs are often too ‘low-level’ to see what they are supposed to compute.
In other words, we need mathematics of ‘high-level’ computational processes that gives a ‘birds-eye-view’ of ‘low-level’ computational processes.111This idea is similar to that of denotational semantics of programming languages [SS71], but there is an important difference: Denotational semantics models programs usually by (extensional) functions, but we are concerned with (intensional) processes.
Also, what TMs formulate is essentially symbol manipulations; however, the content of computation on mathematical, semantic and non-symbolic objects seems completely independent of its symbolic representation, e.g., consider a process (not a function) to add numbers or to take the union of sets.
Therefore, it would be rather appropriate, at least from conceptual and mathematical points of view, to formulate such ‘high-level’ computational processes in a more abstract, in particular syntax-independent, manner, in order to explain ‘low-level’ computational processes, and then regard the latter as executable ‘symbolic implementations’ of the former.
1.3 Our research problem: mathematics of computational processes
To summarize, it would be reasonable and meaningful from both conceptual and mathematical points of view to develop mathematics of abstract (in particular syntax-independent) and ‘high-level’ computational processes as well as executable and ‘low-level’ ones beyond classical computation such that the former is defined to be ‘effectively computable’ if it is ‘implementable’ by the latter.
In fact, this (or similar) perspective is nothing new, and shared with various prominent researchers; for instance, Robin Milner stated:
… we should have achieved a mathematical model of computation, perhaps highly abstract in contrast with the concrete nature of paper and register machines, but such that programming languages are merely executable fragment of the theory … [Mil]
We address this problem in the present paper.
However, since there are so many kinds of computation, e.g., parallel, concurrent, probabilistic, non-deterministic, quantum, etc., as the first step, this paper focuses on a certain kind of higher-order and sequential (i.e., at most one computational step may be performed at a time) computation, which is based on (sequential) game semantics222It is both technically and conceptually simpler to focus on sequential games, in which two participants alternately take actions, than to consider more general concurrent games, in which both participants may be active simultaneously [AM99b]. introduced below.
1.4 Game semantics
Game semantics (of computation) [A*+*97, AM99a, Hyl97] is a particular kind of denotational semantics of programming languages [AC98, Win93, Gun92], in which types and terms are modeled as games and strategies (whose definitions are given in Section 2), respectively.
Historically, having its roots in ‘games-based’ approaches in mathematical logic to capture validity [RLL80, Fel86], higher-order computability [Kle78, Kle80, Kle82, Kle85, Kle91, Gan93] and proofs in linear logic [Bla92, AJ94, HO93], combined with ideas from sequential algorithms [BC82], process calculi [Mil80, Hoa78] and geometry of interaction [Gir89, Gir90, Gir95, Gir03, Gir11, Gir13] in computer science, several variants of game semantics in its modern form were developed in the early 1990’s to give the first syntax-independent characterization of the programming language PCF [AJM00, HO00, Nic94]; since then a variety of games and strategies have been proposed to model various programming features [AM99a].
An advantage of game semantics is this flexibility: It models a wide range of languages by simply varying constraints on strategies [AM99a], which enables one to systematically compare and relate different languages ignoring syntactic details.
Also, as full completeness and full abstraction results [Cur07] in the literature have demonstrated, game semantics in general has an appropriate degree of abstraction (and thus it has a good potential to be mathematics of ‘high-level’ computational processes).
Finally, yet another strong point of game semantics is its conceptual naturality: It interprets syntax as ‘dynamic interactions’ between the participants of games, providing a computational and intensional explanation of syntax in a natural and intuitive (yet mathematically precise) manner.
Informally, one can imagine that games provide a ‘high-level’ description of interactive computation between a TM and an oracle. Note that such an intensional nature stands in sharp contrast to the traditional domain-theoretic semantics [AC98] which for instance cannot capture sequentiality of PCF (but the game models [AJM00, HO00, Nic94] can).
Let us give a brief and informal introduction to games and strategies (as defined in [AM99a]) below in order to sketch the main idea of the present paper.
A game, roughly, is a certain kind of a rooted forest whose branches represent possible ‘developments’ or (valid) positions of a ‘game in the usual sense’ (such as chess, poker, etc.).
Moves of a game are nodes of the game, where some moves are distinguished and called initial; only initial moves can be the first element (or occurrence) of a position of the game.
Plays of a game are increasing sequences ϵ,m1,m1m2,… of positions of the game, where ϵ is the empty sequence.
For our purpose, it suffices to focus on rather standard sequential (as opposed to concurrent [AM99b]) and unpolarized (as opposed to *polarized *[Lau04]) games played by two participants, Player (P), who represents a ‘computational agent’, and Opponent (O), who represents an ‘environment’, in each of which O always starts a play (i.e., unpolarized), and then they alternately (i.e., sequential) perform moves allowed by the rules of the game.
Strictly speaking, a position of each game is not just a sequence of moves: Each occurrence m of O’s or O- (resp. P’s or P-) non-initial move in a position points to a previous occurrence m′ of P- (resp. O-) move in the position, representing that m is performed specifically as a response to m′.
A strategy on a game, on the other hand, is what tells P which move (together with a pointer) she should make at each of her turns in the game.
Hence, a game semantics [[_]]G of a programming language L interprets a type A of L as a game [[A]]G that specifies possible plays between P and O, and a term M:A333For simplicity, here we focus on closed terms, i.e., ones with the empty context. of L as a strategy [[M]]G that describes a ‘strategy’ for P on how to play in [[A]]G; an ‘execution’ of the term M is then modeled as a play in [[A]]G for which P follows [[M]]G.
Let us consider a simple example. The game N of natural numbers is the following rooted tree (which is infinite in width):
{diagram}
in which a play starts with O’s question q (‘What is your number?’) and ends with P’s answer n∈N (‘My number is n!’), where N is the set of all natural numbers, and n points to q (though this pointer is omitted in the diagram). A strategy 10 on N, for instance, that corresponds to 10∈N can be represented by the map q↦10 equipped with a pointer from 10 to q (though it is the only choice).
In the following, the pointers of most strategies are obvious, and thus we often omit them.
There is a construction ⊗ on games, called tensor (product).
Conceptually, a position s of the tensor A⊗B of games A and B is an interleaving mixture of a position t of A and a position u of B developed ‘in parallel without communication’; more specifically, t (resp. u) is the subsequence of s consisting of moves of A (resp. B) such that the change of AB-parity (i.e., the switch between t and u) in s must be made by O.
The pointers in t and u are inherited from s in the obvious manner; this point holds also for other constructions on games and strategies in the rest of the introduction, and thus we shall not mention it again.
For instance, a maximal position of the tensor N⊗N is either of the following forms444The diagrams are only to make it explicit which component game each move belongs to; the two positions are just finite sequences q[0]n[0]q[1]m[1] and q[1]m[1]q[0]n[0] equipped with the pointers q[i]←n[i] and q[i]←m[i] (i=0,1).:
[TABLE]
where n,m∈N, and (_)[i] (i=0,1) are (arbitrary and unspecified) ‘tags’ to distinguish the two copies of N (but we often omit them if it does not bring confusion), and the arrows represent pointers in positions (henceforth we employ this notation).
Next, a fundamental construction ! on games, called exponential, is basically the countably infinite iteration of ⊗, i.e., !A=df.A⊗A⊗… for each game A, where the ‘tag’ for each copy of A is typically given by a natural number i∈N.
Another central construction ⊸, called linear implication, captures the notion of linear functions, i.e., functions that consume exactly one input to produce an output.
A position of the linear implication A⊸B from A to B is almost like a position of the tensor A⊗B except the following three points:
The first occurrence in the position must be a move of B;
2. 2.
A change of AB-parity in the position must be made by P;
3. 3.
Each occurrence of an initial move (called an initial occurrence) of A points to an initial occurrence of B.
Thus, a typical position of the game N⊸N is the following:
[TABLE]
where n,m∈N, which can be read as follows:
O’s question q[1] for an output (‘What is your output?’);
2. 2.
P’s question q[0] for an input (‘Wait, what is your input?’);
3. 3.
O’s answer, say n[0], to q[0] (‘OK, here is an input n.’);
4. 4.
P’s answer, say m[1], to q[1] (‘Alright, the output is then m.’).
This play corresponds to any linear function that maps n↦m.
The strategy succ (resp. double) on N⊸N for the successor (resp. doubling) function is represented by the map q[1]↦q[0],q[1]q[0]n[0]↦n+1[1] (resp. q[1]↦q[0],q[1]q[0]n[0]↦2⋅n[1]).
Let us remark here that the following play, which corresponds to a constant linear function that maps x↦m for all x∈N, is also possible: ϵ,q[1],q[1]m[1].
Thus, strictly speaking, A⊸B is the game of affine functions from A to B, but we follow the standard convention to call it a linear implication.
Another construction & on games, called product, is similar to yet simpler than tensor: A position s of the product A&B of A and B is either a position t[0] of A[0] or a position u[1] of B[1].
It is the product in the category G of games and strategies, e.g., there is the pairing⟨σ,τ⟩:C⊸A&B of given strategies σ:C⊸A and τ:C⊸B that plays as σ (resp. τ) if O initiates a play by a move of A (resp. B).
Clearly, we may generalize product and pairing to n-ary operations for any n∈N.
These four constructions ⊗, !, ⊸ and & come from the corresponding ones in linear logic [AJ94].
Thus, in particular, the usual implication (or the function space) ⇒ is recovered by Girard translation [Gir87]: A⇒B=df.!A⊸B.
Girard translation makes explicit the point that some functions need to refer to an input more than once to produce an output, i.e., there are non-linear functions.
For instance, consider the game (N⇒N)⇒N of higher-order functions, in which the following position is possible:
[TABLE]
where n,n′,m,m′,l,i,i′,j,j′∈N, i=i′ and j=j′, which can be read as follows:
O’s question q for an output (‘What is your output?’);
2. 2.
P’s question (q,j) for an input function (‘Wait, your first output please!’);
3. 3.
O’s question ((q,i),j) for an input (‘What is your first input then?’);
4. 4.
P’s answer, say ((n,i),j), to ((q,i),j) (‘Here is my first input n.’);
5. 5.
O’s answer, say (m,j), to (q,j) (‘OK, here is my first output m.’);
6. 6.
P’s question (q,j′) for an input function (‘Your second output please!’);
7. 7.
O’s question ((q,i′),j′) for an input (‘What is your second input then?’);
8. 8.
P’s answer, say ((n′,i′),j′), to ((q,i′),j′) (‘Here is my second input n′.’);
9. 9.
O’s answer, say (m′,j′), to (q,j′) (‘OK, here is my second output m′.’);
10. 10.
P’s answer, say l, to q (‘Alright, my output is then l.’).
In this play, P asks O twice about an input strategy N⇒N.
Clearly, such a play is not possible on the linear implication (N⊸N)⊸N or (N⇒N)⊸N.
The strategy PlusAppToZeroAndOne:(N⇒N)⇒N that computes the sum f(0)+f(1) for a given function f:N⇒N, for instance, plays as follows:
[TABLE]
where the ‘tags’ j=0 and j′=1 are arbitrarily chosen, i.e., any j,j′∈N work.
Finally, let us point out that any strategy ϕ:!A⊸B induces its promotionϕ†:!A⊸!B such that if ϕ plays, for instance, as
[TABLE]
then ϕ† plays as
[TABLE]
where ⟨_,_⟩:N×N→∼N is an arbitrarily fixed bijection, i.e., ϕ† plays as ϕ for each thread in a position of !A⊸!B that corresponds to a position of !A⊸B.
1.5 Towards a game-semantic model of computation
As seen in the above examples, games and strategies capture higher-order (and sequential) computation in an abstract and conceptually natural fashion, where O plays the role of an oracle as a part of the formalization.
Note also that P computes on ‘external behavior’ of O, and thus O’s computation does not have to be recursive.
Thus, one may expect that games and strategies would be appropriate as mathematics of ‘high-level’ computational processes to solve our research problem defined in Section 1.3.
However, conventional games and strategies have never been formulated as a mathematical model of computation (in the sense of TMs); rather, a primary focus of the field has been full abstraction [Cur07, AC98], i.e., to characterize observational equivalences in syntax.
In other words, game semantics has not been concerned that much with step-by-step processes in computation or their ‘effective computability’, and it has been identifying programs with the same value [Win93, Gun92].
For instance, strategies on the game N⇒N typically play by q.(q,i).(n,i).m, where n,m,i∈N, as described above, and so they are essentially functions that map n↦m; in particular, it is not formulated at all how they calculate the fourth element m from the third one (n,i).555Nevertheless, they exhibit some simple communication between the participants as seen in the above examples; in other words, game semantics is intensional to some degree but not completely. This is roughly why game semantics has been very successful in the field of denotational semantics.
Consequently, ‘effective computability’ in game semantics has been extrinsic: A strategy has been defined to be ‘effective’ or recursive if it is representable by a partial recursive function [AJM00, HO00, Fér17].
This situation is in a sense frustrating since games and strategies seem to have a good potential to give a semantic, non-axiomatic, non-inductive and intrinsic (i.e., without recourse to an established model of computation) formulation of higher-order computation, but they have not taken advantage of this potential.
For the potential of game semantics, we have decided to employ games and strategies as our basic mathematical framework and extend them to give mathematics of computational processes in the sense described in Section 1.3.
For this aim, we shall first refine the category G of games and strategies in such a way that accommodates step-by-step processes in computation, and then define their ‘effectivity’ in terms of their ‘atomic steps’.
Fortunately, there is already the bicategory DG of dynamic games and strategies [YA16], which addresses the first point.
1.6 Dynamic games and strategies
In the literature, there are several game models [Gre05, BO08, Ong06, DGL05] that exhibit step-by-step processes in computation to serve as a tool for program verification and analysis (the work [Ghi05, DLL08] may be called ‘intensional game semantics’, but they rather keep track of ‘costs’ in computation, not computational steps themselves).
However, these variants of games and strategies are just conventional ones, and consequently such step-by-step processes have no official status in their categories.
The problem lies in the point that in conventional game semantics composition of strategies is executed as parallel composition plus hiding [A*+*97], where hiding excludes intermediate steps.
Let us illustrate this point by a simple and informal example as follows.
Consider again strategies succ and double, but this time they are adjusted to the game N⇒N.
Their computations can be described by the following diagrams:
[TABLE]
where the ‘tag’ (_,0) on moves of the domain !N has been arbitrarily chosen (i.e., any natural number i∈N instead of [math] works).
The composition double∙succ=df.double∘succ†=succ†;double:N⇒N is calculated as follows.
First, by internal communication, we mean that succ† and double ‘communicate’ to each other by ‘synchronizing’ the codomain !N[1] of succ† and the domain !N[2] of double, for which P plays the role of O in these intermediate games !N[1] and !N[2] by ‘copying’ her last moves666More precisely, they are the last occurrences of P-moves; however, for convenience we shall keep using this kind of abuse of terminology in the rest of the introduction. of !N[2] and !N[1], respectively, resulting in the following play:
[TABLE]
where moves for internal communication are marked by square boxes just for clarity, and a pointer from (q,0)[1] to (q,0)[2] is added because the move (q,0)[1] is no longer initial.
Importantly, it is assumed that O plays on the ‘external game’ !N[0]⊸N[3], ‘seeing’ only moves of !N[0] or N[3].
The resulting play is to be read as follows:
O’s question q[3] for an output in !N[0]⊸N[3] (‘What is your output?’);
2. 2.
P’s question (q,0)[2] by double for an input in !N[2]⊸N[3] (‘Wait, what is your input?’);
3. 3.
(q,0)[2] in turn triggers the question (q,0)[1] for an output in !N[0]⊸!N[1] (‘What is your output?’);
4. 4.
P’s question (q,⟨0,0⟩)[0] by succ† for an input in !N[0]⊸!N[1] (‘Wait, what is your input?’);
5. 5.
O’s answer, say (n,⟨0,0⟩)[1], to the question (q,⟨0,0⟩)[0] in !N[0]⊸!N[3] (‘Here is an input n.’);
6. 6.
P’s answer (n+1,0)[1] to the question (q,0)[1] by succ† in !N[0]⊸!N[1] (‘The output is then n+1.’);
7. 7.
(n+1,0)[1] in turn triggers the answer (n+1,0)[2] to the question (q,0)[2] in !N[2]⊸N[3] (‘Here is the input n+1.’);
8. 8.
P’s answer 2⋅(n+1)[3] to the initial question q[3] by double in !N[0]⊸N[3] (‘The output is then 2⋅(n+1)!’).
Next, hiding means to hide or delete all moves with square boxes from the play, resulting in the strategy for the function n↦2⋅(n+1) as expected:
[TABLE]
By the hiding operation, the resulting play is a legal one on the game N⇒N, but let us point out that the intermediate occurrence of moves, which represent step-by-step processes in computation, have been excluded by this operation.
Nevertheless, the present author and Samson Abramsky have introduced a novel, dynamic variant of games and strategies that systematically model ‘dynamics’ and ‘intensionality’ of computation, and also studied their algebraic structures [YA16].
In contrast to the previous work mentioned above, dynamic strategies themselves embody step-by-step processes in computation by retaining intermediate occurrences of moves, and composition of them is parallel composition without hiding.
In addition, the categorical structure of game semantics is not lost but rather refined by the cartesian closed bicategory [Oua97] DG of dynamic games and strategies, forming a categorical ‘universe’ of ‘high-level’ computational processes.
1.7 Viable strategies
Now, the remaining problem is to define ‘effective’ dynamic strategies in an intrinsic (i.e., solely in terms of games and strategies), non-inductive and non-axiomatic manner.
Of course, we need to provide a convincing argument that justifies their ‘effectivity’ (though such an argument can never be mathematically precise) as in the case of TMs.
Moreover, to obtain a powerful model of computation, they should be at least Turing complete, i.e., they ought to subsume all classically computable partial functions.
This sets up, in addition to the conceptual quest so far, an intriguing mathematical question in its own right:
Is there any intrinsic, non-inductive and non-axiomatic notion of ‘effective computability’ of dynamic strategies that is Turing complete?
Not surprisingly, perhaps, this problem has turned out to be challenging, and the main technical achievement of the present paper is to give a positive answer to it.
As already mentioned, our solution is to give ‘low-level’ computational processes (which are clearly ‘executable’) in order to define ‘effectivity’ of dynamic strategies (or ‘high-level’ computational processes).
This is achieved roughly as follows.
Remark*.*
The concepts introduced below make sense for conventional (i.e., non-dynamic) games and strategies too, but they do not give rise to a Turing complete model of computation for composition of conventional strategies does not preserve our notion of ‘effectivity’ or viability as we shall see.
First, we give, by an alphabet, a concrete formalization of ‘tags’ for disjoint union of sets of moves for constructions on games in order to rigorously formulate ‘effectivity’ of strategies.
As we have seen in Section 1.4, a finite number of ‘tags’ suffice for most constructions on games, but it is not the case for exponential !.
Then, we formalize ‘tags’ for exponential by an unary representation iℓℓ…ℓ of natural numbers i∈N (extended by a symbolic implementation of a recursive bijection N∗→∼N [Cut80], but here we omit the extension for simplicity), and employ, instead of the game N, the lazy variant N of natural number game whose maximal positions are either of the following forms:
[TABLE]
where the number n of yes in the position ranges over all natural numbers, which represents the number intended by P.
In this way, N gives an unary representation777This choice is far from canonical; it should also work to employ another representation of natural numbers, e.g., the binary one. We have chosen the unary representation for its (both conceptual and technical) simplicity. of natural numbers.
Note that the initial question q^ must be distinguished from the non-initial one q for a technical reason, which will be clarified in Section 2.
This sets up a finitary representation of game-semantic computation on natural numbers.
Let us write n for the position q^.yes.n−1q.yes…q.yes.q.no such that n⩾1, and 0 for the position q^.no, where we omit pointers (we shall often employ this convention).
Next, as we shall see, dynamic strategies modeling PCF only need to refer to at most three moves in the history of previous moves which may be ‘effectively’ identified by pointers (specifically the last three moves in the P-view [HO00, AM99a]; see Definition 15).
Thus, it may seem at first glance that finitary dynamic strategies in the following sense suffice: A strategy is finitary if its representation by a partial function [McC98, HO00] that assigns the next P-move to (at most) three previous moves, called its table, is finite.
However, it is not the case: Finitary strategies cannot handle unboundedly many manipulations of ‘tags’ for exponential (more precisely, manipulations such that the length of input or output ‘tags’ is unbounded), but such manipulations seem to be necessary for Turing completeness, e.g., a strategy that models primitive recursion or minimization has to interact with input strategies unboundedly many times, and thus it must handle unboundedly many ‘tags’.
Then, the main idea of our solution is to define a strategy to be viable if its table is ‘describable’ by a finitary strategy.
To state it more precisely, let us note that there is the terminal gameT which has only the empty sequence ϵ as a position, and each game G is isomorphic (or identical up to ‘tags’) to the implication T⇒G.
Hence, we may regard strategies σ:G as a one on the implication T⇒G up to ‘tags’, and vice versa.
Also, we define for each move m=[m′]e of a game G, where e=e1.e2…ek is a unary representation of the ‘tag’ for exponential on m, the strategy m on a suitable game G(MG) that plays as q^.m′.q1.e1.q2.e2…qk.ek.qk+1.✓ (which is a little bit simplified version of the strategy representation of moves defined in Section 3), where the font difference between the moves is just for clarity.
In this manner, the strategy m:G(MG) encodes the move m of G.
Then, viability of strategies is defined more precisely: A strategy σ:G is defined to be viable if its partial function representation (m3,m2,m1)↦m, where m1, m2 and m3 are the last, second last and third last moves of the current P-view, respectively, is ‘implementable’ by a finitary strategy A(σ)Ⓢ:G(MG)&G(MG)&G(MG)⇒G(MG), called an instruction strategy for σ, in the sense that the composition A(σ)Ⓢ∘⟨m3,m2,m1⟩†:G(MG) coincides with m:G(MG) for all quadruples (m3,m2,m1)↦m in the table of σ, where ⟨m3,m2,m1⟩:T⇒G(MG)&G(MG)&G(MG) is the ternary pairing of the strategies mi:T⇒G(MG) (i = 1, 2, 3).
For instance, consider the successor and doubling strategies modified for the lazy natural number game N, whose plays (on a non-zero input) are as in Figure 1.
Roughly, succ copies a given input on !N[0] and repeats it as an output on N[1], but it adds one more yes to N[1] before no; similarly, double copies an input and repeats it as an output, but it doubles the number of yes’s in the output.
It is easy to see that for computing the next P-move (and its pointer) at an odd-length position s=m1m2…m2i+1 the strategies only need to refer to at most the last O-move m2i+1, the P-move m2j pointed by m2i+1 and the O-move m2j−1 (they are the last three moves in the P-view of s), e.g., succ:(□,□,[q^[1]])↦[q^[0]], ([q^[1]],[q^[0]],[yes[0]])↦[yes[1]], and so on, where □ denotes ‘no move’.
Note that these strategies do not need unboundedly many manipulations of ‘tags’; they are in fact finitary (it is easy to construct finite tables for them, each of which consists of a finite number of quadruples of moves of the form (m3,m2,m1)↦m).
On the other hand, consider the strategy CountNonZeros:N⇒N that counts the number of non-zero inputs which a given dynamic strategy on !N provides before it does 0.
As described in Figure 2, it simply investigates if an input is 0 just by checking the first digit (yes[0] or no[0]) and adds yes[1] to the output if the input is not 0 (i.e., if the first digit is yes[0]), where each ‘round’ or thread of !N[0] corresponding to a position of N[0] is distinguished by ‘tags’ [_]ℓn for exponential.
Note that CountNonZeros only needs to refer to at most the last three moves in each odd-length position (n.b., in this case they are the last three moves in the P-view) since the number n of previous ‘rounds’ is recorded by the ‘tag’ [_]ℓn.
The point here is that the number of ‘tags’ for exponential that CountNonZeros has to manipulate is unbounded (though the manipulation is very simple), and therefore the strategy is not finitary; however, it is easy to show that the strategy is viable as follows.
First, its partial function representation can be given by the following infinitary table (n.b., n for [_]ℓn given below ranges over all natural numbers):
[TABLE]
This ‘high-level’ computational process is ‘implementable’ by an instruction strategy A(CNZ)Ⓢ:G(MN⇒N)&G(MN⇒N)&G(MN⇒N)⇒G(MN⇒N) which computes as in Figure 3, where ‘tags’ for G(MN⇒N)&G(MN⇒N)&G(MN⇒N)⇒G(MN⇒N) are omitted (that is, we do not write G(MN⇒N)[0]&G(MN⇒N)[1]&G(MN⇒N)[2]⇒G(MN⇒N)[3]) for brevity.
Note also the font difference between moves in the figure, which is again just for clarity.
Then clearly, there is a finite table for A(CNZ)Ⓢ that maps the last k-moves in the P-view of each odd-length position to the next P-move for some k∈N (though it is too tedious to write down the table here), proving the viability of CountNonZeros.
Observe in particular how the infinitary manipulations of ‘tags’ by CountNonZeros is reduced to finitary ones by A(CNZ)Ⓢ.
This example illustrates why we need viable (not only finitary) dynamic strategies for Turing completeness, where note that CountNonZero can be seen as a simplification of minimization.
Also, it should be now clear why we employ composition of strategies without hiding: An instruction strategy for the composition ψ∘ϕ†:A⇒C of strategies ϕ:A⇒B and ψ:B⇒C can be obtained simply as the disjoint union of instruction strategies for ϕ† and ψ, but it is not possible for composition with hiding (in fact, there is no obvious way to construct an instruction strategy for the composition of ϕ and ψwith hiding).
We advocate that viability of strategies gives a reasonable notion of ‘effective computability’ as finitary strategies are clearly ‘effective’, and so their ‘descriptions’ or instruction strategies can be ‘effectively read off’ by P.
Note also that viability is defined solely in terms of games and strategies without any axiom or induction.
Moreover, viability is at least as strong as Turing computability: As the main result of the present paper, we show that dynamic strategies definable in PCF are all viable (Theorem 79), and therefore they are Turing complete (Corollary 80).
Also, viable dynamic strategies solve the problem defined in Section 1.3 in the following sense.
First, since dynamic games and strategies are abstract and syntax-independent concepts, they give a formulation of ‘high-level’ computational processes, e.g., the lazy natural number game N defines natural numbers (not their symbolic representation) as ‘counting processes’ in an abstract and syntax-independent fashion.
Moreover, an instruction strategy for a viable strategy describes a ‘low-level’ computational process that ‘implements’ the strategy.
In this manner, we have obtained a single mathematical framework for both ‘high-level’ and ‘low-level’ computational processes as well as ‘effective computability’ of the former in terms of the latter.
1.8 Our contribution and related work
Our main technical achievement is to define an intrinsic, non-inductive and non-axiomatic notion of ‘effective computability’ of strategies in game semantics, namely viable dynamic strategies, and show that they are Turing complete (Corollary 80).
We have also shown the converse (though it is not that surprising): The input-output behavior of each viable dynamic strategy that computes on natural numbers coincides with a partial recursive function (Theorem 83).
This immediately implies a universality result [Plo77, AJM00] as well: Every viable dynamic strategy on a dynamic game interpreting a type of PCF is the denotation of a term of PCF (Corollary 84).
In addition, as immediate corollaries, some of the well-known theorems in computability theory [Cut80, RR67] such as the smn-theorem and the first recursion theorem are generalized to non-classical computation (Corollaries 81 and 82).
We hope that these technical results would convince the reader that viability of dynamic strategies is a natural and reasonable generalization of Church-Turing computability.
Another, more conceptual contribution of the paper is to establish a single mathematical framework for both ‘high-level’ and ‘low-level’ computational processes, where the former defines what computation does, while the latter describes how to execute the former.
In comparison with existing mathematical models of computation, our game-semantic approach has some novel features.
First, in comparison with computation by TMs or programming languages, plays of games are a more abstract concept; in particular they are not necessarily symbol manipulations, which is why they are suitable for abstract and ‘high-level’ computational processes.
Next, computation in a game proceeds as an interaction between P and O (not an encoding or a realizer of O), which may be seen as a generalization of computation by TMs in which just one interaction occurs (i.e., O gives an input on the infinite tape, and then P returns an output on the tape); this in particular means that O’s computation does not have to be recursive, and it is a part of our formalization, which is why game semantics in general captures higher-order computation in a natural and systematic manner.
The present work inherits this interactive nature of game semantics.
Last but not least, games are a semantic counterpart of types, where note that types do not a priori exist in TMs, and types in programming languages are syntactic entities.
Hence, our approach provides a deeper clarification of types in the context of theory of computation.
Moreover, by exploiting the flexibility of game semantics, our approach would be applicable to a wide range of computation though it is left as future work.
Also, game semantics has interpreted various logics as well [AJ94, Hyl97, AJV15, Yam16], and so it would be possible to employ our framework for a realizability interpretation of constructive logic [T*+*98, VO08], for which viable dynamic strategies would be more suitable as realizers than existing strategies such as [Blo17] since the former contains more ‘computational contents’ and makes more sense as a model of computation than the latter.
Furthermore, the game models [AJV15, Yam16] have interpreted Martin-Löf type theory, one of the most prominent foundations of constructive mathematics, and thus our framework would provide a mathematical and syntax-independent formalization of constructive mathematics too888This would be seen, if achieved, as a mathematical formalization of Brouwer’s intuitionism [TVD14], in which ‘(mental) constructions’ are made precise as game-semantic computational processes, viz., plays by viable dynamic strategies, and moreover extended to interactive ‘constructions’..
Of course, we need to work out details for these developments, which is out of the scope of the present paper, but it is in principle clear how to apply our framework to existing game semantics.
In this sense, the present work would serve as a stepping-stone towards these extensions.
In the literature, there have been several attempts to provide a mathematical foundation of computation beyond classical or symbolic ones.
We do not claim at all our game-semantic approach is best or canonical in comparison with the previous work; however, our approach certainly has some advantages.
For instance, Robin Gandy proposed in the famous paper [Gan80] a notion of ‘mechanical devices’, now known as Gandy machines (GMs), which appear more general than TMs, but showed that TMs are actually as powerful as GMs.
However, since GMs are an axiomatic approach to define a general class of ‘mechanical devices’ that are ‘effectively executable’, they do not give a distinction between ‘high-level’ and ‘low-level’ computational processes, where GMs formulate the latter.
The more recent abstract state machines (ASMs) [Gur04] developed by Yuri Gurevich employ an idea similar to GMs for ‘effective computability’, namely by requiring an upper bound of elements that may change in a single step of computation, utilizing structures in the sense of mathematical logic [Sho67].
Notably, ASMs define a very general notion of computation, namely computation as structure transition; however, it seems that this framework is in some sense too general.
For instance, it is possible that an ASM computes a real number in a single step, but then its ‘effective computability’ is questionable; in general, an appropriate notion of ‘effective computability’ of ASMs has been missing.
Also, the way of computing a function by an ASM is to update input/output-pairs of the function in the element-wise fashion, but it does not seem to be a common or natural processes in practice.
Yiannis Moschiovakis has also considered a mathematical foundation of algorithms [Mos98] in which, similarly to us, he proposed that algorithms and their ‘implementations’ should be distinguished, where by algorithms he refers to what we call ‘high-level’ computational processes.
However, his framework, called recursors, is also based on structures, and his notion of algorithms are relative to atomic operations given in each structure; thus, it does not give a foundational analysis on the notion of ‘effective computability’.
Therefore, although the previous work captures broader notions of computation, our approach has the advantage of achieving both of the distinction between ‘high-level’ and ‘low-level’ computational processes and the primitive notion of ‘effective computability’.
Also, the interactive and typed natures of game semantics stands in sharp contrast to the previous work as well.
At this point, we need to mention computability logic [Jap03] developed by Giorgi Japaridze since his idea is similar to ours; he defines ‘effective computability’ via computing machines playing in games.
Nevertheless, there are notable differences between computability logic and the present work.
First, computing machines in computability logic are a variant of TMs, and thus they are less novel as a model of computation than our approach; in fact, the definition of ‘effective computability’ in computability logic can be seen more or less as a consequence of just spelling out the standard notion of recursive strategies [AJM00, HO00, Fér17].
Next, our framework inherits the categorical structure of game semantics, providing a compositional formulation of logic and computation, i.e., a compound proof or program is constructed from its components, while there has been no known categorical structure of computability logic. Nevertheless, it would be interesting to adopt his ‘TMs-based’ approach in our framework and compare its computational power with that of the present work.
Finally, let us mention some of the precursors of game semantics.
To clarify the notion of higher-order computability, Stephen Cole Kleene considered a model of higher-order computation based on ‘dialogues’ between ‘computational oracles’ in a series of papers [Kle78, Kle80, Kle82], which can be seen as the first attempt to define a mathematical notion of algorithms in a higher-order setting [LN15].
Moreover, Gandy and his student Giovanni Pani refined these works by Kleene to obtain a model of PCF that satisfies universality [Cur07] though this work was not published. These previous works are direct ancestors of game semantics (in particular the so-called HO-games [HO00] by Martin Hyland and Luke Ong).
As another line of research (motivated by the problem of full abstraction for PCF [Plo77]), Pierre-Louis Curien and Gerard Berry conceive of sequential algorithms [BC82] which was the first attempt to go beyond (extensional) functions to capture sequentiality of PCF.
Sequential algorithms preceded and became highly influential to the development of game semantics; in fact, sequential algorithms are presented in the style of game semantics in [LN15], and it is shown in [Buc94] that the oracle computation by Kleene can be represented by sequential algorithms (but the converse does not hold).
Nevertheless, neither of the previous work defines ‘effective computability’ in a manner similar to the present work; our definition has an advantage in its intrinsic, non-inductive and non-axiomatic nature.
1.9 The structure of the paper
The rest of the paper proceeds roughly as follows. This introduction ends with fixing some notation. Then, recalling dynamic games and strategies in Section 2, we define viability of strategies and establish, as a main theorem, the fact that viable dynamic strategies may interpret all terms of PCF in Section 3, proving their Turing completeness as a corollary.
Finally, we draw a conclusion and propose some future work in Section 4.
Notation*.*
We use the following notation throughout the paper:
▶
We use bold letters s,t,u,v, etc. for sequences, in particular ϵ for the empty sequence, and letters a,b,c,d,m,n,x,y,z, etc. for elements of sequences;
▶
We often abbreviate a finite sequence s=(x1,x2,…,xn) as x1x2…xn, and write si, where i∈{1,2,…,n}, as another notation for xi;
▶
A concatenation of sequences is represented by the juxtaposition of them, but we often write as, tb, ucv for (a)s, t(b), u(c)v, etc., and also write s.t for st;
▶
We define sn=df.nss⋯s for any sequence s and natural number n∈N;
▶
We write Even(s) (resp. Odd(s)) iff s is of even-length (resp. odd-length);
▶
We define SP=df.{s∈S∣P(s)} for a set S of sequences and P∈{Even,Odd};
▶
s⪯t means s is a prefix of t, and given a set S of sequences, we define Pref(S)=df.{s∣∃t∈S.s⪯t};
▶
For a poset P and a subset S⊆P, Sup(S) denotes the supremum of S;
▶
X∗=df.{x1x2…xn∣n∈N,∀i∈{1,2,…,n}.xi∈X} for each set X;
▶
For a function f:A→B and a subset S⊆A, we define f↾S:S→B to be the restriction of f to S, and f∗:A∗→B∗ by f∗(a1a2…an)=df.f(a1)f(a2)…f(an)∈B∗ for all a1a2…an∈A∗;
▶
Given sets X1,X2,…,Xn and i∈{1,2,…,n}, we write πi (or πi(n)) for the ith-projection functionX1×X2×⋯×Xn→Xi that maps (x1,x2,…,xi,…,xn)↦xi for all xj∈Xj (j=1,2,…,i,…,n).
▶
≃ denote the Kleene equality, i.e., x≃y⇔df.(x↓∧y↓∧x=y)∨(x↑∧y↑), where we write x↓ if an element x is defined and x↑ otherwise.
2 Preliminary: games and strategies
Our games and strategies are essentially the ‘dynamic refinement’ of McCusker’s variant [AM99a, McC98]999Strictly speaking, the variants [AM99a, McC98] are slightly different, and [YA16] chooses [AM99a] as the basis, but [McC98] describes a lot of useful technical details. [AM99a] is chosen in [YA16] because it combines good points of the two best-known variants, AJM-games [AJM00] and HO-games [HO00] so that it may model linearity as in [AJ94] and also characterize various programming features as in [AM99a], though these points are left as future work in [YA16]., which has been proposed under the name of dynamic games and strategies by the present author and Abramsky in [YA16] to capture ‘dynamics’ (or rewriting) and ‘intensionality’ (or algorithms) of computation by mathematical, particularly syntax-independent, concepts.
As already explained in the introduction, we have chosen this variant since, in contrast to conventional games and strategies, dynamic games and strategies capture step-by-step processes in computation, which is essential for a ‘TMs-like’ model of computation.
However, we need some modifications of dynamic games and strategies.
First, although disjoint union of sets of moves (for constructions on games) is usually treated informally for brevity, we need to adopt a particular formalization of ‘tags’ for the disjoint union because we are concerned with ‘effectivity’ of strategies, and so we must show that manipulations of ‘tags’ are ‘effectively executable’ by strategies.
In particular, we have to employ exponential! in which different ‘rounds’ or threads are distinguished by such ‘effective tags’.
In addition, we slightly refine the original definition of dynamic games in [YA16] by requiring that an intermediate occurrence of an O-move in a position of a dynamic game must be a mere copy of the last occurrence of a P-move, which reflects the example of composition without hiding in the introduction.
This modification is due to our computability-theoretic motivation: Intermediate occurrences of moves are ‘invisible’ to O (as in the example of composition without hiding), and therefore P has to ‘effectively’ compute intermediate occurrences of O-moves too (though this point does not matter in [YA16]); note that it is clearly ‘effective’ to just copy the last occurrence.
Also, it conceptually makes sense too: Intermediate occurrences of O-moves are just ‘dummies’ of those of P-moves, and thus what happens in the intermediate part of each play is essentially P’s calculation only.
Technically, this is achieved by introducing dummy internal O-moves (in Definition 8), and strengthening the axiom DP2 (in Definition 17).
Let us remark, however, that this refinement is technically trivial, and it is not our main contribution.
This section presents the resulting variant of games and strategies.
Fixing an implementation of ‘tags’ in Section 2.1, we recall dynamic games and strategies in Sections 2.2 and 2.3, respectively.
To make this paper essentially self-contained, we shall explain motivations and intuitions behind the definitions.
2.1 On ‘tags’ for disjoint union of sets
We begin with fixing ‘tags’ for disjoint union that can be ‘effectively’ manipulated.
We first define outer tags or extended effective tags (Definition 3) for exponential, and then inner tags (Definition 5) for other constructions on games.
Definition 1** (Effective tags).**
An effective tag is a finite sequence over the two-element set Σ={ℓ,ℏ}, where ℓ and ℏ are arbitrarily fixed elements such that ℓ=ℏ.
We often abbreviate the sequence ℓi=ℓℓ…ℓ by i for each i∈N.
Definition 2** (Decoding and encoding).**
The decoding functionde:Σ∗→N∗ and the encoding functionen:N∗→Σ∗ are defined respectively by:
[TABLE]
for all γ∈Σ∗ and (j1,j2,…,jl)∈N∗, where γ=i1ℏi2ℏ…ik−1ℏik.
Clearly, the functions de:Σ∗⇆N∗:en are mutually inverses (n.b., they both map the empty sequence ϵ to itself).
In fact, each effective tag γ∈Σ∗ is intended to be a binary representations of the finite sequence de(γ)∈N∗ of natural numbers.
However, effective tags are not sufficient for our purpose: For ‘nested’ exponentials (Definition 33), we need to ‘effectively’ associate a natural number to each finite sequence of natural numbers in an ‘effectively’ invertible manner.
Of course it is possible as there is a recursive bijection ℘:N∗→∼N whose inverse is recursive too, which is an elementary fact in computability theory [Cut80, RR67], but we cannot rely on it for we are aiming at developing an autonomous foundation of ‘computability’.
On the other hand, this bijection is necessary only for manipulating effective tags, and so we would like to avoid an involved mechanism to achieve it.
Then, our solution for this problem is to simply introduce elements to denote the bijection:
Definition 3** (Extended effective tags).**
Extended effective tags are expressions e∈(Σ∪{\Lbag,\Rbag})∗, where \Lbag and \Rbag are arbitrary elements with \Lbag=\Rbag and Σ∩{\Lbag,\Rbag}=∅, generated by the grammar e≡df.γ∣e1ℏe2∣\Lbage\Rbag, where γ ranges over effective tags.
Notation*.*
Let T denote the set of all extended effective tags.
Definition 4** (Extended decoding).**
The extended decoding functionede:T→N∗ is recursively defined by:
[TABLE]
where ℘:N∗→∼N is any recursive bijection fixed throughout the present paper such that ℘(i1,i2,…,ik)=℘(j1,j2,…,jl) whenever k=l (see, e.g., [Cut80]).
Of course, we lose the bijectivity between Σ∗ and N∗ for extended effective tags (since if ede(\Lbage\Rbag)=(i), then ede(i)=(i) but \Lbage\Rbag=i), but in return, we may ‘effectively execute’ the bijection ℘:N∗→∼N by just inserting \Lbag and \Rbag.
We shall adopt extended effective tags to form countably infinite copies of moves for exponential; see Definition 33.
Convention*.*
From now on, outer tags refer to extended effective tags, and we write e,f,g,h, etc. for outer tags.
On the other hand, as ‘tags’ for other constructions on games, i.e., (_)[i] in the introduction, we simply use a finite number of distinguished symbols; as we shall see, four symbols suffice for this purpose.
Let us call them inner tags:
Definition 5** (Inner tags).**
Let W, E, N and S be arbitrarily fixed and pairwise distinct elements, each of which is called an inner tag.
We will focus on games whose moves are tagged elements in the following sense:
Definition 6** (Inner elements).**
An inner element is a finitely nested pair (…((m,t1),t2),…,tk), usually written mt1t2…tk, such that m is a distinguished element, called the substance of mt1t2…tk, and ti’s (i=1,2,…,k) are inner tags.
Definition 7** (Tagged elements).**
A tagged element is any pair (mt1t2…tk,e), usually written [mt1t2…tk]e, of an inner element mt1t2…tk and an outer tag e∈T.
Convention*.*
We often abbreviate tagged elements [mt1t2…tk]e as [m]e if the inner tags are not important, and inner elements mt1t2…tk as m for similar situations.
2.2 Games
As stated in the introduction, our games are dynamic games introduced in [YA16]. The main idea of dynamic games is to introduce, in McCusker’s games [AM99a, McC98], a distinction between internal and external moves, where internal moves constitute ‘internal communication’ between strategies (i.e., moves with square boxes in the introduction), and they are to be a posteriori hidden by the hiding operation, in order to capture ‘intensionality’ and ‘dynamics’ of computation by internal moves and the hiding operation, respectively.
Conceptually, internal moves are ‘invisible’ to O as they represent how P ‘internally’ calculates the next external P-move (i.e., step-by-step processes in computation).
In addition, unlike [YA16] we restrict internal O-moves to ‘dummies’ of internal P-moves via dummy functions (in Definition 8) for the computability-theoretic motivation mentioned above.
We first review the basic definitions of dynamic games in the present section; see [YA16] for the details, and [AM99a, A*+*97, Hyl97] for a general introduction to game semantics.
Convention*.*
To distinguish our ‘dynamic concepts’ from conventional ones [AM99a, McC98], we add the word static in front of the latter, e.g., static arenas, static games, etc.
2.2.1 Arenas and legal positions
Similarly to McCusker’s games, dynamic games are based on two preliminary concepts: arenas and legal positions. An arena defines the basic components of a game, which in turn induces legal positions that specify the basic rules of the game.
Let us begin with recalling these two concepts.
A dynamic arena is a quadruple G=(MG,λG,⊢G,ΔG), where:
▶
MG is a set of tagged elements, called moves, such that: (M) The set π1(MG) of inner elements of G is finite;
▶
λG is a function MG→{O,P}×{Q,A}×N, called the labeling function, where O, P, Q and A are arbitrarily fixed symbols, called the labels, that satisfies: (L) μ(G)=df.Sup({λGN(m)∣m∈MG})∈N;
▶
⊢G⊆({⋆}∪MG)×MG is a relation, where ⋆ is an arbitrarily fixed symbol such that ⋆∈MG, called the enabling relation, that satisfies:
▹
(E1) If ⋆⊢Gm, then λG(m)=(O,Q,0) and n=⋆ whenever n⊢Gm;
▹
(E2) If m⊢Gn and λGQA(n)=A, then λGQA(m)=Q and λGN(m)=λGN(n);
▹
(E3) If m⊢Gn and m=⋆, then λGOP(m)=λGOP(n);
▹
(E4) If m⊢Gn, m=⋆ and λGN(m)=λGN(n), then λGOP(m)=O;
▶
ΔG is a bijection MGPInt→∼MGOInt, called the dummy function, that satisfies: (D) For any [mt]e∈MGPInt and [nu]f∈MGOInt, if ΔG([mt]e)=[nu]f, then m=n, e=f, λGQA([mt]e)=λGQA([nu]f), λGN([mt]e)=λGN([nu]f), and u=δG(t) for some finite partial function δG on inner tags
in which λGOP=df.π1∘λG:MG→{O,P}, λGQA=df.π2∘λG:MG→{Q,A}, λGN=df.π3∘λG:MG→N, MGPInt=df.⟨λGOP,λGN⟩−1({(P,d)∣d⩾1}) and MGOInt=df.⟨λGOP,λGN⟩−1({(O,d)∣d⩾1}).
A move m∈MG is initial if ⋆⊢Gm, an O-move (resp. a P-move) if λGOP(m)=O (resp. if λGOP(m)=P), a question (resp. an answer) if λGQA(m)=Q (resp. if λGQA(m)=A), and internal or λGN(m)-internal (resp. external) if λGN(m)>0 (resp. if λGN(m)=0).
A finite sequence s∈MG∗ of moves is d-complete if it ends with a move m such that λGN(m)=0∨λGN(m)>d, where d∈N∪{ω}, and ω is the least transfinite ordinal.
For each m∈MGPInt, ΔG(m)∈MGOInt is called the dummy of m.
We write MGInit (resp. MGInt, MGExt) for the set of all initial (resp. internal, external) moves of G.
Remark*.*
Dynamic arenas in the sense defined above are dynamic arenas in the sense defined in [YA16] equipped with the additional structure of dummy functions.
A dynamic arena is a static arena defined in [AM99a], equipped with a labelingλGN on moves and dummies of internal P-moves, satisfying additional axioms about them.
From the opposite angle, dynamic arenas are a generalization of static arenas: A static arena is equivalent to a dynamic arena whose moves are all external.
Recall that a static arena G determines possible moves of a game, each of which is O’s/P’s question/answer, and specifies which move n can be performed for each move m by the relation m⊢Gn (and ⋆⊢Gm means that m can initiate a play). Its axioms are E1, E2 and E3 (excluding conditions on priority orders):
▶
E1 sets the convention that an initial move must be O’s question, and an initial move cannot be performed for a previous move;
▶
E2 states that an answer must be performed for a question;
▶
E3 mentions that an O-move must be performed for a P-move, and vice versa.
Then, as an additional structure for dynamic arenasG, [YA16] employs all natural numbers for λGN, not only the internal/external (I/E)-parity, to define a step-by-step execution of the hiding operationH: The operation H deletes all internal moves m such that λGN(m), called the priority order101010It is rather called degree of internality in [YA16]. This change of name is motivated by the hindsight that it should be possible to define another order of the step-by-step execution of the hiding operation H, where [YA16] defines the priority order particularly according to the ‘depth of composition’ or degree of internality of moves. (since it indicates the priority order of m with respect to the execution of H), is 1.111111Although the main focus of [YA16] is to capture a small-step operational semantics of a programming language by such a step-by-step hiding operation H, such fine-grained steps do not play a main role in this paper. Nevertheless, we keep the structure λGN as it makes sense for a model of computation to be equipped with the step-by-step hiding operation, and it would be interesting to consider ‘effectivity’ of the hiding operation as future work.
In addition, unlike [YA16] we have introduced the additional structure of dummy functions for the computability-theoretic motivation mentioned at the beginning of Section 2.
The idea is that each internal O-move m∈MGOInt of a dynamic game G must be a dummy of a unique internal P-move m′∈MGPInt, i.e., m=ΔG(m′), and m may occur in a play only right after an occurrence of m′, which axiomatizes the phenomenon of intermediate occurrences of moves in the composition of succ and doublewithout hiding described in the introduction.
We shall formalize the restriction on occurrences of internal O-moves by the axiom DP2 in Definition 17.
Note that the additional axioms for dynamic areas are intuitively natural:
▶
M requires the set π1(MG) to be finite so that each move is distinguishable, which is not required in [YA16] but necessary to define ‘effective computability’;
▶
L requires the least upper bound μ(G) to be finite as it is conceptually natural and technically necessary for concatenation‡ of games (Definition 36);
▶
E1 adds λGN(m)=0 for all m∈MGInit as O cannot ‘see’ internal moves, and thus he cannot initiate a play with an internal move;
▶
E2 additionally requires the priority orders between a ‘QA-pair’ to be the same since otherwise outputs of the hiding operation would not be well-defined;
▶
E4 states that only P can perform a move for a previous move if they have different priority orders because internal moves are ‘invisible’ to O (as we shall see, if λGN(m1)=k1<k2=λGN(m2), then after the k1-many iteration of the hiding operation, m1 and m2 become external and internal, respectively, i.e., the I/E-parity of moves is relative, which is why E4 is not only concerned with I/E-parity but more fine-grained priority orders);
▶
D requires that each internal P-move p∈MGPInt and its dummy ΔG(p)∈MGOInt may differ only in their inner tags since the latter is a ‘dummy’ of the former (again, it reflects the informal example in the introduction); also, ΔG(p) is ‘effectively’ obtainable from p by a finitary calculation δG on inner tags.
Convention*.*
From now on, arenas refer to dynamic arenas by default.
As explained previously, an interaction between P and O in a game is represented by a finite sequence of moves that satisfies certain axioms (under the name of (valid) positions; see Definition 17).
However, strictly speaking, we need to equip such sequences with an additional structure, called justifiers or pointers, to distinguish similar but different computational processes (see, e.g., [AM99a] for this point):
Notation*.*
The ith-occurrence of an element a in a sequence s is temporarily (see the convention below) written a[i].
A justified (j-) sequence of an arena G is a finite sequence s∈MG∗ in which each occurrence n[i] of a non-initial move n is associated with a unique occurrence m[j] of a move m in s, called the justifier of n[i] in s, that occurs previously in s and satisfies m⊢Gn.
In this case, we say that n[i] is justified by m[j], or equivalently there is a pointer from n[i] to m[j].
Convention*.*
In the rest of the paper, we simply say ‘an occurrence m (of a move)’ instead of ‘an occurrence m[i] of a move m’.
This abuse of notation does not bring any serious confusion in practice.
Moreover, we call an occurrence of an initial (resp. non-initial) move an initial occurrence (resp. a non-initial occurrence).
Notation*.*
We write Js(n) for the justifier of a non-initial occurrence n in a j-sequence s, where Js may be thought of as the ‘function of pointers in s’, and JG for the set of all j-sequences of an arena G.
We write s=t for any s,t∈JG if s and t are the same j-sequence of G, i.e., the same sequence with the same pointers.
The idea is that each non-initial occurrence in a j-sequence must be performed for a specific previous occurrence, viz., its justifier.
Since the present paper is not concerned with a faithful interpretation of programs, one may wonder if justifiers would play any important role in the rest of the paper; however, they do in a novel manner: They allow P to ‘effectively’ collect, from the history of previous moves, a bounded number of necessary ones, as we shall see in Section 3.1.
Note that the first element m of each non-empty j-sequence ms∈JG must be initial; we particularly call m the opening occurrence of ms.
Clearly, an opening occurrence must be an initial occurrence, but not necessarily vice versa.
Let us now consider justifiers, j-sequences and arenas from the ‘external viewpoint’ (Definitions 11, 12 and 13 below):
Definition 10** (J-subsequences).**
Given an arena G and a j-sequence s∈JG, a j-subsequence of s is a j-sequence t∈JG such that t is a subsequence of s, and Jt(n)=m iff there exist occurrences m1,m2,…,mk (k∈N) in s eliminated in t such that Js(n)=m1∧Js(m1)=m2∧⋯∧Js(mk−1)=mk∧Js(mk)=m.
Let G be an arena, s∈JG and d∈N∪{ω}.
Each non-initial occurrence n in s has a unique sequence of justifiers mm1m2…mkn(k⩾0), i.e., Js(n)=mk, Js(mk)=mk−1, …, Js(m2)=m1 and Js(m1)=m, such that λGN(m)=0∨λGN(m)>d and 0<λGN(mi)⩽d for i=1,2,…,k. m is called the d-external justifier of n in s, and written Js⊝d(n).
Note that d-external justifiers are a simple generalization of justifiers: [math]-external justifiers coincide with justifiers.
d-external justifiers are intended to be justifiers after the d-times iteration of the hiding operation H, as we shall see shortly.
Given an arena G, s∈JG and d∈N∪{ω}, the d-external justified (j-) subsequenceHGd(s) of s is obtained from s by deleting occurrences of internal moves m such that 0<λGN(m)⩽d and equipping the resulting subsequence of s with pointers Js⊝d121212Strictly speaking, JHGd(s) is the obvious restriction of Js⊝d..
Let G be an arena, and assume d∈N∪{ω}.
The d-external arenaHd(G) of G is defined by:
▶
MHd(G)=df.{m∈MG∣λGN(m)=0∨λGN(m)>d};
▶
λHd(G)=df.λG⊝d↾MHd(G), where λG⊝d=df.⟨λGOP,λGQA,m↦λGN(m)⊝d⟩ and n\circleddash d\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}n-d&\text{if n\geqslant d}\\
0&\text{otherwise}\end{cases} for all n∈N;
▶
m⊢Hd(G)n⇔df.∃k∈N,m1,m2,…,m2k−1,m2k∈MG∖MHd(G).m⊢Gm1∧m1⊢Gm2∧⋯∧m2k−1⊢Gm2k∧m2k⊢Gn (⇔m⊢Gn if k=0);
▶
ΔHd(G)=df.ΔG↾MHd(G).
Thus, Hd(G) is obtained from G by deleting all internal moves m such that 0<λGN(m)⩽d, decreasing by d the priority orders of the remaining moves, and ‘concatenating’ the enabling relation to form the ‘d-external’ one.
Convention*.*
For each d∈N∪{ω}, we regard Hd as an operation on arenas G, called the d-hiding operation on arenas, and HGd as an operation on j-sequences of G, called the d-hiding operation on j-sequences.
Lemma 14** (Closure of arenas and j-sequences under hiding [YA16]).**
If G is an arena, then, for all d∈N∪{ω}, so is Hd(G) and HGd(s)∈JHd(G) for all s∈JG.
Also, iH1∘H1⋯∘H1(G)=Hi(G) and HHi−1(G)1∘HHi−2(G)1∘⋯∘HH1(G)1∘HG1(s)=HGi(s) for any i∈N (it means G=G and s=s if i=0), arena G and s∈JG.
Proof.
We need to consider the additional structure of dummy functions; everything else has been proved in [YA16].
Let G be an arena, and d∈N∪{ω}.
For each p∈MGPInt, we clearly have p∈MHd(G)⇔ΔG(p)∈MHd(G); thus, ΔHd(G) is a well-defined bijection MHd(G)PInt→∼MHd(G)OInt.
Finally, the axiom D on ΔHd(G) clearly follows from that on G, completing the proof.
∎
Convention*.*
Thanks to Lemma 14, henceforth we regard the i-hiding operations Hi and HGi as the i-times iteration of the 1-hiding operations H1 and HG1, respectively, for all i∈N.
For this reason, we write H and HG for H1 and HG1, respectively, and call them the hiding operations (on arenas and j-sequences, respectively).
Next, let us recall the notion of ‘relevant part’ of previous moves, called views:
Given a j-sequence s of an arena G, the Player (P-) view⌈s⌉G and the Opponent (O-) view⌊s⌋G (we often omit the subscript G) are defined by induction on the length of s as follows:
▶
⌈ϵ⌉G=df.ϵ;
▶
⌈sm⌉G=df.⌈s⌉G.m if m is a P-move;
▶
⌈sm⌉G=df.m if m is initial;
▶
⌈smtn⌉G=df.⌈s⌉G.mn if n is an O-move with Jsmtn(n)=m;
▶
⌊ϵ⌋G=df.ϵ;
▶
⌊sm⌋G=df.⌊s⌋G.m if m is an O-move;
▶
⌊smtn⌋G=df.⌊s⌋G.mn if n is a P-move with Jsmtn(n)=m
where the justifiers of the remaining occurrences in ⌈s⌉G (resp. ⌊s⌋G) are unchanged if they occur in ⌈s⌉G (resp. ⌊s⌋G) and undefined otherwise.
A view is either a P-view or an O-view.
The idea behind this definition is as follows.
For a j-sequence tm of an arena G such that m is a P-move (resp. an O-move), the P-view ⌈t⌉G (resp. the O-view ⌊t⌋G) is intended to be the currently ‘relevant part’ of t for P (resp. O). That is, P (resp. O) is concerned only with the last O-move (resp. P-move), its justifier and that justifier’s ‘concern’, i.e., P-view (resp. O-view), which then recursively proceeds.
As explained in [AM99a], strategies (Definition 42) that model computation without state see only P-views, not entire histories of previous moves, as inputs; they are called innocent strategies (Definition 43).
In this sense, innocence captures state-freeness of strategies.
In this paper, however, P-views play a different yet fundamental role for our notion of ‘effective computability’ in Section 3.1.
A dynamic legal position of an arena G is a j-sequence s∈JG that satisfies:
▶
(Alternation) If s=s1mns2, then λGOP(m)=λGOP(n);
▶
(Generalized Visibility) If s=tmu with m non-initial and d∈N∪{ω} satisfy λGN(m)=0∨λGN(m)>d, then Js⊝d(m) occurs in ⌈HGd(t)⌉Hd(G) if m is a P-move, and it occurs in ⌊HGd(t)⌋Hd(G) if m is an O-move;
▶
(IE-switch) If s=s1mns2 with λGN(m)=λGN(n), then m is an O-move.
Notation*.*
We write LG for the set of all dynamic legal positions of an arena G.
Recall that a static legal position defined in [AM99a] is a j-sequence that satisfies alternation and visibility, i.e., generalized visibility only for d=0 [HO00, AM99a, McC98], which is technically to guarantee that the P-view and the O-view of a j-sequence are again j-sequences and conceptually to ensure that the justifier of each non-initial occurrence belongs to the ‘relevant part’ of the history of previous moves.
Static legal positions are to specify the basic rules of a static game in the sense that every (valid) position of the game must be a static legal position [AM99a]:
▶
In a position of the game, O always performs the first move by a question, and then P and O alternately play (by alternation), in which every non-initial move is made for a specific previous move (by justification);
▶
The justifier of each non-initial occurrence belongs to the ‘relevant part’, i.e., the view, of the previous moves (by visibility) in a position.
Similarly, dynamic legal positions are to specify the basic rules of a dynamic game (Definition 17). They are static legal positions that satisfy additional axioms:
▶
Generalized visibility is a generalization of visibility; it requires that visibility holds after any iteration of the hiding operations on arenas and j-sequences for Theorem 25 below;
▶
IE-switch states that only P can change a priority order during a play because internal moves are ‘invisible’ to O, where the same remark as in E4 is applied for its finer distinction of priority orders than the mere I/E-parity.
Note that a dynamic legal position in which no internal move occurs is equivalent to a static legal position.
Convention*.*
From now on, legal positions refer to dynamic legal positions by default.
A dynamic game is a quintuple G=(MG,λG,⊢G,ΔG,PG) such that the quadruple (MG,λG,⊢G,ΔG) is an arena, and PG is a subset of LG whose elements are called (valid) positions of G that satisfies:
▶
(P1) PG is non-empty and prefix-closed (i.e., sm∈PG⇒s∈PG);
▶
(DP2) If s=t.p.o′.u.p′.o (resp. s=t.o′.u.p′.o), where o is an internal O-move, and o′ is an internal (resp. external) O-move such that o′=Js(p′), then o=ΔG(p′) and Js(o)=p (resp. Js(o)=p′).
A play of G is a (finitely or infinitely) increasing (with respect to ⪯) sequence (ϵ,m1,m1m2,…) of valid positions of G.
Remark*.*
In [YA16], each dynamic game G is equipped with an equivalence relation ≃G on its positions in order to ignore permutations of ‘tags’ for exponential ! as in [AJM00] and Section 3.6 of [McC98].
Naturally, dynamic strategies σ:G are identified up to ≃G, i.e., the equivalence class [σ] of σ with respect to ≃G is a morphism in the category of dynamic games and strategies [YA16], which matches the syntactic equality on terms.
However, our notion of ‘effective computability’ or viability (Definition 68) is defined on dynamic strategies, not their equivalence classes, and our focus is not a (fully complete) interpretation of a programming language; thus, we do not have to take such equivalence classes at all.
Hence, for simplicity, we exclude such equivalence relations on positions from the structure of dynamic games in the present paper.
Of course, we may easily adopt the full definition of dynamic games G (i.e., with ≃G) and equivalence classes [σ] of dynamic strategies σ:G as in [YA16]: We may simply define [σ] to be viable if there is some viable representative τ∈[σ].
Thus, dynamic games are static games defined in [AM99a, McC98] except that their arenas are dynamic ones and they additionally satisfy the axiom DP2.
The axiom P1 talks about the natural phenomenon that each non-empty ‘moment’ of a play must have the previous ‘moment’.
In addition, by the axiom DP2 for dynamic games, internal O-moves must be performed as dummies of the last internal P-moves, where the pointers specified by the axiom would make sense if one considers the example of composition of succ and double without hiding in the introduction.
Conceptually, we impose the axiom because O cannot ‘see’ internal moves, and thus the internal part of each play must be essentially P’s calculation only; technically, it is to ensure external consistency of dynamic strategies: Dynamic strategies behave always in the same way from the viewpoint of O, i.e., the external part of each play by a dynamic strategy does not depend on the internal part (see [YA16] for the detail).
Remark*.*
The axiom DP2 defined in [YA16] just requires determinacy of internal O-moves in each play (it is similar to determinacy of P-moves for strategies), which works for the purpose of the paper.
However, in the present paper, we are concerned with ‘effective computability’ of strategies, and thus in particular computation of internal O-moves by P must be ‘effective’ (since O cannot compute them).
For this point, we have strengthened the axiom DP2 as above so that computation of internal O-moves becomes virtually nothing.
Convention*.*
Henceforth, games refer to dynamic games by default.
A subgame of a game G is a game H that satisfies MH⊆MG, λH=λG↾MH, ⊢H⊆⊢G∩({⋆}∪MH)×MH, ΔH=ΔG↾MH, PH⊆PG and μ(H)=μ(G).
In this case, we write H\trianglelefteqslantG.
Below, let us give some simple examples of games:
Example 19**.**
The terminal gameT is defined by T=df.(∅,∅,∅,∅,{ϵ}).
T is the simplest game as its position is only the empty sequence ϵ.
Example 20**.**
The boolean game2 is defined by:
▶
M2=df.{[q^],[tt],[ff]};
▶
λ2:[q^]↦(O,Q,0),[tt]↦(P,A,0),[ff]↦(P,A,0);
▶
⊢2=df.{(⋆,[q^]),([q^],[tt]),([q^],[ff])};
▶
Δ2=df.∅;
▶
P2=df.Pref({[q^].[tt],[q^].[ff]}), where each non-initial move is justified by [q^].
There are just two maximal positions of 2: [q^].[tt] and [q^].[ff], where each answer (i.e., [tt] or [ff]) is made for the respective initial question [q^].
The former (resp. the latter) is to represent the truth value true (resp. false).
Example 21**.**
The natural number gameN is defined by:
▶
MN=df.{[q^]}∪{[n]∣n∈N};
▶
λN:[q^]↦(O,Q,0),[n]↦(P,A,0);
▶
⊢N=df.{(⋆,[q^])}∪{([q^],[n])∣n∈N};
▶
ΔN=df.∅;
▶
PN=df.Pref({[q^].[n]∣n∈N}), where n is justified by [q^].
The position [q].[n] is to represent the natural number n∈N, where the answer [n] is made for the question [q].
This is the formal definition of N sketched in the introduction though we have slightly changed the notation for the moves.
This game N of natural numbers is, though standard in the literature, almost the same as the set N of natural numbers except the trivial one-round communication between the participants. This point is unsatisfactory for at least two reasons:
It is difficult to define an intrinsic, non-inductive and non-axiomatic notion of ‘effective computability’ of strategies on games generated from N via the construction ⇒ of function space defined below since there is no intensional or ‘low-level’ structure in N (see, e.g., [Abr14] for this point);
2. 2.
The game N has almost the same mathematical structure as that of N, and thus it contributes almost nothing to foundations of mathematics.
Motivated by these points, we adopt the following ‘lazy’ variant:
PN=df.Pref({[q^].([yes].[q])n.[no]∣n∈N}), where each non-initial occurrence is justified by the last occurrence.
We need two questions [q^] and [q], the initial and non-initial ones, respectively, for the axiom E1.
Intuitively, O asks by a question [q^] or [q] if P would like to ‘count one more’, and P replies it by [yes] if she would like to and by [no] otherwise. Thus, for each n∈N, the position [q^].([yes].[q])n.[no] is to represent the number n, where each occurrence of an answer (i.e., [yes] or [no]) is made for the last occurrence of a question (i.e., [q^] or [q]).
Let us define n=df.Pref({[q^].([yes].[q])n.[no]})Even.
The game N defines natural numbers in an intuitively natural manner, namely as ‘counting processes’, where our choice of notation for moves is inessential, i.e., N is syntax-independent.
Moreover, we may actually define it intrinsically, i.e., without recourse to the set N, by specifying its positions inductively: [q^].[no]∈PN∧([q^].s.[no]∈PN⇒[q^].s.[yes].[q].[no]∈PN).
Thus, we may define (rather than represent) natural numbers to be the positions of N though we will not investigate foundational consequences of this definition in the present paper.
As we shall see, such step-by-step processes underlying natural numbers allow us to define ‘effective computability’ of strategies in an intrinsic, non-inductive and non-axiomatic manner in Section 3.1.
Convention*.*
Henceforth, the natural number game refers to the lazy variant N.
The following game will play a key role in Section 3.1 when we define ‘effective computability’ of strategies:
Example 23**.**
The (outer) tag gameG(T) is defined by:
▶
MG(T)=df.{[q^T],[qT],[♯],[′],[✓],[⟨],[⟩]}, for which we define a function D:♯↦ℏ,′↦ℓ,⟨↦\Lbag,⟩↦\Rbag (n.b. this tells which outer tag each move represents);
▶
λG(T):[q]↦(O,Q,0),[a]↦(P,A,0), where q∈{q^T,qT},a∈{♯,′,✓,⟨,⟩};
PG(T)=df.Pref({[q^T].[b1].[qT].[b2]…[qT].[bk].[qT].[✓]∣k∈N,b1,b2,…,bk∈{♯,′,⟨,⟩},D∗(b1b2…bk)∈T}), where each non-initial occurrence is justified by the last occurrence.
Similarly to N, each position [q^T].[b1].[qT].[b2]…[qT].[bk].[qT].[✓] of G(T) is to represent the sequence b1b2…bk, which denotes the outer tag D∗(b1b2…bk)∈T.
Now, let us now recall the hiding operation on games:
For each d∈N∪{ω}, we define the d-hiding operationHd on games as follows. Given a game G, the d-external gameHd(G) of G consists of the d-external arena (MHd(G),λHd(G),⊢Hd(G),ΔHd(G)) of the arena G, and the set PHd(G)=df.{HGd(s)∣s∈PG} of positions. A game H is normalized if Hω(H)=H, i.e., if MH does not contain any internal move.
Theorem 25** (Closure of games under hiding [YA16]).**
For any game G, Hd(G) forms a well-defined game for all d∈N∪{ω}.
Moreover, if G\trianglelefteqslantH, then Hd(G)\trianglelefteqslantHd(H) for all d∈N∪{ω}.
Furthermore, iH1∘H1⋯∘H1(G)=Hi(G) for all i∈N.
Thanks to Theorem 25, the i-hiding operation Hi on games for each i∈N can be thought of as the i-times iteration of the 1-hiding operation H1, which we call the hiding operation on games and write H for it.
2.2.3 Constructions on games
Now, let us recall the constructions on games in [YA16] with ‘tags’ formalized by outer and inner tags defined in Section 2.1.
A tag refers to an outer or internal tag.
On the other hand, for readers who are not familiar with game semantics, we first give a rather standard presentation of each construction, which keeps ‘tags’ unspecified, before its formal definition.
For this aim, we employ:
Notation*.*
We write x∈S+T iff x∈S or x∈T, where we cannot have both x∈S and x∈T by the implicit ‘tag’ for the disjoint union S+T.
Also, given functions f:S→U and g:T→U, we write [f,g] for the function S+T→U that maps x∈S+T to f(x)∈U iff x∈S, and to g(x)∈U otherwise.
Moreover, given relations RS⊆S×S and RT⊆T×T, we write RS+RT for the relation on S+T such that (x,y)∈RS+RT⇔df.(x,y)∈RS∨(x,y)∈RT.
Let us begin with tensor (product)⊗.
As already mentioned in the introduction, a position of the tensor product A⊗B consists of a position of A and a position of B played ‘in parallel without communication’.
That is, given games A and B, their tensor A⊗B is defined by:
▶
MA⊗B=df.MA+MB;
▶
λA⊗B=df.[λA,λB];
▶
⊢A⊗B=df.⊢A+⊢B;
▶
ΔA⊗B=df.[ΔA,ΔB];
▶
PA⊗B=df.{s∈LA⊗B∣s↾A∈PA,s↾B∈PB}
where s↾A (resp. s↾B) denotes the j-subsequence of s that consists of moves of A (resp. B).
As an illustration, recall the example N⊗N in the introduction, in which the ‘tags’ are informally written as (_)[i] (i=0,1).
As explained in [A*+*97], it is easy to see that in a play of a tensor A⊗B only O can switch between the component games A and B (by alternation).
Let us now give the formal definition of tensor, for which the ‘tags’ (_)[0] and (_)[1] are formalized by inner tags (_,W) and (_,E), respectively:
PA⊗B=df.{s∈LA⊗B∣s↾W∈PA,s↾E∈PB}, where s↾X (with X∈{W,E}) is the j-subsequence of s that consists of moves of the form [(m,X)]e changed into [m]e.
Example 27**.**
Some typical plays in the tensor N⊗N are as follows:
[TABLE]
Next, the linear implicationA⊸B is a space of linear functions from A to B in the sense of linear logic [Gir87], i.e., they consume exactly one input in A to produces an output in B (n.b., strictly speaking, it is an affine implication for its functions are not necessarily strict as explained in the introduction).
Usually, the linear implication A⊸B is given by:
▶
MA⊸B=df.MHω(A)+MB;
▶
λA⊸B=df.[λHω(A),λB], where λHω(A)=df.⟨λHω(A)OP,λHω(A)QA⟩ and \overline{\lambda_{\mathcal{H}^{\omega}(A)}^{\textsf{OP}}}(m)\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\mathsf{P}\ &\text{if \lambda_{\mathcal{H}^{\omega}(A)}^{\textsf{OP}}(m)=\textsf{O}}\\
\textsf{O}\ &\text{otherwise}\end{cases};
As an illustration, recall the example N⊸N in the introduction.
Note that A must be normalized to Hω(A) since otherwise the linear implication A⊸B may not satisfy the axiom DP2 (and the dummy function ΔA⊸B would not be well-defined).
It conceptually makes sense too for the roles of P and O in the domain A are exchanged, and thus P should not be able to ‘see’ internal moves of A.
Note also that A⊸B is almost A⊗B if A is normalized except the switch of the roles in A; dually to A⊗B, in a play of A⊸B only P can switch between A and B by alternation (see, e.g., [A*+*97] for the proof).
Surprisingly, this simple point turns A⊸B into a game for linear functions from A to B.
Similarly to tensor, the formal definition of linear implication is as follows:
\lambda_{A\multimap B}([(m,X)]_{\bm{e}})\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\overline{\lambda_{A}}([m]_{\bm{e}})&\text{if X=\mathscr{W};}\\
\lambda_{B}([m]_{\bm{e}})&\text{if X=\mathscr{E}}\end{cases}, where λA=df.⟨λAOP,λAQA,λAN⟩ and \overline{\lambda_{A}^{\textsf{OP}}}([a]_{\bm{e}})\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\mathsf{P}\ &\text{if \lambda_{A}^{\textsf{OP}}([a]_{\bm{e}})=\textsf{O};}\\
\textsf{O}\ &\text{otherwise}\end{cases} for all [a]e∈MA;
ΔA⊸B([(b,E)]f)=df.[(b′,E)]f, where ΔB([b]f)=[b′]f;
▶
PA⊸B=df.{s∈LA⊸B∣s↾W∈PA,s↾E∈PB}, where pointers from initial occurrences in s↾W to initial occurrences in s↾E are simply deleted.
This construction ⊸ is then extended to any pair (C,B) of games: For a not necessarily normalized game C, we define C⊸B=df.Hω(C)⊸B.
Example 29**.**
Some typical plays of the linear implication 2⊸2 are as follows:
[TABLE]
Note that the left diagram describes a strict linear function, while the right diagram does a non-strict one.
Next, let us recall product& of games.
As stated in the introduction, a position of the product A&B is essentially a position of A or a one of B:
Given games A and B, their product A&B is given by:
For the cartesian closed bicategoryDG of dynamic games and strategies defined in [YA16], however, we need to generalize the construction C⊸A&B on normalized games A, B and C, where & precedes ⊸, because we need to pair strategies σ:L and τ:R such that Hω(L)\trianglelefteqslantC⊸A and Hω(R)\trianglelefteqslantC⊸B, and the ambient game of the pairing ⟨σ,τ⟩ would be such a generalization of C⊸A&B.
For this point, [YA16] defines the pairing⟨L,R⟩ of any games L and R with Hω(L)\trianglelefteqslantC⊸A and Hω(R)\trianglelefteqslantC⊸B for some normalized games A, B and C by:
where given a function f:X→Y and a subset Z⊆X we write f⇂Z:X∖Z→Y for the restrictions of f to the subset X∖Z⊆X.
Note that the definition of a pairing ⟨L,R⟩ does not depend on the choice of the normalized games A, B and C such that Hω(L)\trianglelefteqslantC⊸A and Hω(R)\trianglelefteqslantC⊸B.
Also, we have ⟨C⊸A,C⊸B⟩=C⊸A&B; pairing of games is to serve as a generalization of this phenomenon in the sense that Hω(⟨L,R⟩)\trianglelefteqslantC⊸A&B holds (see [YA16] for the proof), where note that the slightly involved disjoint union of sets of moves for M⟨L,R⟩ is to establish this subgame relation.
Let us now formalize ‘tags’ for the disjoint union MC+(ML∖MC)+(MR∖MC) as follows:
▶
Adding no tags for external moves of the form [(c,W)]e of L or R, where [c]e must be a move of C by the definition of tags for ⊸ (see Definition 28);
▶
Changing external moves of the form [(a,E)]f of L, where [a]f must be a move of A, into [((a,W),E)]f;
▶
Changing external moves of the form [(b,E)]g of R, where [b]g must be a move of B, into [((b,E),E)]g;
▶
Changing internal moves [l]h of L into [(l,S)]h;
▶
Changing internal moves [r]k of R into [(r,N)]k
where of course these tags are not canonical at all.
Then, we formalize the labeling function, the enabling relation and the dummy function of ⟨L,R⟩ by the obvious pattern matching on internal tags; positions of ⟨L,R⟩ are formalized in the obvious manner.
However, the enabling relation is rather involved; thus, for convenience, we define the peelingpeel⟨L,R⟩(m)∈ML∪MR of each move m∈M⟨L,R⟩ such that changing the inner tag of peel⟨L,R⟩(m) as defined above results in m, and also the attributeatt⟨L,R⟩(m)∈{L,R,C} of m by:
[TABLE]
The enabling relation m⊢⟨L,R⟩n is then easily defined as the conjunction of:
The pairing⟨L,R⟩ of games L and R such that Hω(L)\trianglelefteqslantC⊸A and Hω(R)\trianglelefteqslantC⊸B for any normalized games A, B and C is given by:
[(m,X)]e⊢⟨L,R⟩[(n,Y)]f⇔df.(att⟨L,R⟩([(m,X)]e)=att⟨L,R⟩([(n,Y)]f)∨att⟨L,R⟩([(m,X)]e)=C∨att⟨L,R⟩([(n,Y)]f)=C)∧(peel⟨L,R⟩([(m,X)]e)⊢Lpeel⟨L,R⟩([(n,Y)]f)∨peel⟨L,R⟩([(m,X)]e)⊢Rpeel⟨L,R⟩([(n,Y)]f)), where the function att⟨L,R⟩:M⟨L,R⟩→{L,R,C} is defined by [(c,W)]e↦C, [((a,W),E)]f↦L, [((b,E),E)]g↦R, [(l,S)]h↦L, [(r,N)]k↦R, and the function peel⟨L,R⟩:M⟨L,R⟩→ML∪MR by [(c,W)]e↦[(c,W)]e, [((a,W),E)]f↦[(a,E)]f, [((b,E),E)]g↦[(b,E)]g, [(l,S)]h↦[l]h, [(r,N)]k↦[r]k;
P⟨L,R⟩=df.{s∈L⟨L,R⟩∣(s↾L∈PL∧s↾B=ϵ)∨(s↾R∈PR∧s↾A=ϵ)}, where s↾L (resp. s↾R) is the j-subsequence of s that consists of moves x such that peel⟨L,R⟩(x)∈ML (resp. peel⟨L,R⟩(x)∈MR) changed into peel⟨L,R⟩(x), and s↾B (resp. s↾A) is the j-subsequence of s that consists of moves of the form [((b,E),E)]g with [b]g∈MB (resp. [((a0,W),E)]f with [a]g∈MA).
Example 32**.**
Some typical plays of the pairing ⟨2⊸2,2⊸2⟩ are as follows:
[TABLE]
Next, let us recall exponential! in the sense of linear logic, i.e., the exponential !A of a given game A is essentially a countably infinite tensor of A, i.e., !A=df.A⊗A⊗…
The exponential !A is usually given by:
▶
M!A=df.MA×N;
▶
λ!A:(a,i)↦λA(a);
▶
⋆⊢!A(a,i)⇔df.⋆⊢Aa;
▶
(a,i)⊢!A(a′,j)⇔df.i=j∧a⊢Aa′;
▶
Δ!A:(a,i)↦(ΔA(a),i);
▶
P!A=df.{s∈L!A∣∀i∈N.s↾i∈PA}
where s↾i is the j-subsequence of s that consists of occurrences of the form (a,i) but changed into a.
The naive idea is then to formalize each ‘tag’ (_,i) by an effective tag [_]i, but as already mentioned before, we need to generalize it to an extended effective tag [_]f.
Therefore, we formalize exponential as follows:
Δ!A([m]\Lbagf\Rbagℏe)=df.[m′]\Lbagf\Rbagℏe, where ΔA([m]e)=[m′]e;
▶
P!A=df.{s∈L!A∣∀f∈T.s↾f∈PA∧(s↾f=ϵ⇒∀g∈T.s↾g=ϵ⇒ede(f)=ede(g))}, where s↾f is the j-subsequence of s that consists of moves of the form [m]\Lbagf\Rbagℏe changed into [m]e.
Thus, our exponential !A is essentially a slight modification of the one in [McC98, Hyl97] which generalizes moves [m]iℏe to [m]\Lbagf\Rbagℏe, where [m]e∈MA, i∈N and f∈T.
By the condition on positions of !A, an element f in an outer tag [_]\Lbagf\Rbagℏe that represents a natural number i∈N, i.e., ede(f)=i, is unique in each s∈P!A.
Notation*.*
We often write A⇒B for the linear implication !A⊸B for any games A and B, which we call the implication or function space from A to B.
The constructions ⊸ and ⇒ are both right associative.
Example 34**.**
Some typical plays in the exponential !2 are as follows:
[TABLE]
Similarly to the case of pairing, exponential is generalized in [YA16]: Given a game G such that Hω(G)\trianglelefteqslant!A⊸B for some normalized games A and B, there is the promotionG† of G such that Hω(G†)\trianglelefteqslant!A⊸!B.
In fact, promotion is a generalization of exponential for (!T⊸B)†≃!B holds for any normalized game B, where note that !T⊸B≃B; see [YA16] for the proof.
Promotion of games has been defined in [YA16] because a morphism A→B in the bicategory DG is a strategy ϕ:G such that Hω(G)\trianglelefteqslant!A⊸B, and therefore it is necessary to take a generalized promotion ϕ† (Definition 55) for composition of strategies in DG, whose ambient game is G†.
The promotion G† is simply given by:
PG†=df.{s∈LG†∣∀i∈N.s↾i∈PG}, where s↾i is the j-subsequence of s that consists of moves of the form (m,i) with m∈MG∖M!A or (a,⟨i,j⟩) with a∈MA and j∈N but changed into m or (a,j), respectively.
Let us formalize ‘tags’ of moves of G† as follows:
▶
We do not change tags of moves of G coming from !A, i.e., ones of the form [(a,W)]\Lbagf\Rbagℏe;
▶
We duplicate moves of G coming from B, i.e., ones of the form [(b,E)]e, as [(b,E)]\Lbagf\Rbagℏe for each f∈T;
▶
We duplicate internal moves [m]e of G as [(m,S)]\Lbagf\Rbagℏe for each f∈T.
where again this way of formalizing ‘tags’ is far from canonical.
Then, the labeling function, the enabling relation and the dummy function of G† are again defined by pattern matching on inner tags in the obvious manner, for which unlike the case of pairing we do not use peeling or attributes as promotion is simpler.
Also, positions of G† are given by a straightforward generalization of those of exponential defined in Definition 33.
Formally, we define promotion on games as follows:
ΔG†:[(m,S)]\Lbagf\Rbagℏe=df.[(m′,S)]\Lbagf\Rbagℏe, where ΔG([m]e)=[m′]e;
▶
PG†=df.{s∈LG†∣∀f∈T.s↾f∈PG∧(s↾f=ϵ⇒∀g∈T.s↾g=ϵ⇒ede(f)=ede(g))}, where s↾f is a j-subsequence of s that consists of moves of the form [(a,W)]\Lbag\Lbagf\Rbagℏ\Lbagg\Rbag\Rbagℏe with [a]e∈MA, [(b,E)]\Lbagf\Rbagℏe with [b]e∈MB or [(m,S)]\Lbagf\Rbagℏe with [m]e∈MGInt changed into [(a,W)]\Lbagg\Rbagℏe, [(b,E)]e and [m]e, respectively.
Now, let us recall concatenation of games, which was first introduced in [YA16]:
Given games J and K such that Hω(J)\trianglelefteqslantA⊸B and Hω(K)\trianglelefteqslantB⊸C for some normalized games A, B and C, their concatenation J‡K is given by:
▶
MJ‡K=df.MJ+MK;
▶
λJ‡K=df.[λJ⇂MB[1],λJ+μ↾MB[1],λK+μ↾MB[2],λK⇂MB[2]], where λG+μ=df.⟨λGOP,λGQA,n↦λGN(n)+μ⟩ (G is J or K), and μ=df.Max(μ(J),μ(K))+1;
▶
⋆⊢J‡Km⇔df.⋆⊢Km;
▶
m⊢J‡Kn(m=⋆)⇔df.m⊢Jn∨m⊢Kn∨(⋆⊢B[2]m∧⋆⊢B[1]n);
▶
ΔJ‡K=df.[ΔJ,ΔK]↾MJ‡K;
▶
PJ‡K=df.{s∈JJ‡K∣s↾J∈PJ,s↾K∈PK,s↾B[1],B[2]∈prB}, where prB=df.{s∈PB[1]⊸B[2]∣∀t⪯s.Even(t)⇒t↾B[1]=t↾B[2]}.
Note that moves of B (in J or K) become internal in J‡K, and therefore they would be deleted by the hiding operation H on games.
Concatenation corresponds to composition without hiding in the introduction, and it plays a central role in [YA16].
We shall see later that concatenation σ‡τ of strategiesσ:J and τ:K (Definition 58), where Hω(J)\trianglelefteqslantA⊸B and Hω(K)\trianglelefteqslantB⊸C for some normalized games A, B and C, forms a strategy on the game J‡K, and also that Hω(σ):A⊸B, Hω(τ):B⊸C and Hω(σ);Hω(τ)=Hω(σ‡τ):Hω(J‡K)\trianglelefteqslantA⊸C, whence Hω(σ);Hω(τ):A⊸C (for ϕ:G\trianglelefteqslantH implies ϕ:H for any strategy ϕ and games G and H; see [YA16] for the proof).
Note that Hω(σ);Hω(τ):Hω(J‡K)\trianglelefteqslantA⊸C becomes just the familiar relation σ;τ:A⊸C when σ:J=A⊸B and τ:K=B⊸C; concatenation is to capture a generalization of this phenomenon.
Let us formalize ‘tags’ for concatenation as follows:
▶
We do not change moves of A or C, i.e., ones of the form [(a,W)]e∈MJExt or [(c,E)]f∈MKExt;
▶
We change moves of B in J, i.e., external ones of the form [(b,E)]g, into [((b,E),S)]g;
▶
We change moves of B in K, i.e., external ones of the form [(b,W)]g, into [((b,W),N)]g;
▶
We change internal moves [m]l of J into [(m,S)]l;
▶
We change internal moves [n]r of K into [(n,N)]r.
Then again, the labeling function, the enabling relation and the dummy function of J‡K are defined by the obvious pattern matching, and positions of J‡K are defined as usual.
Formally, concatenation of games is defined as follows, where it should be now clear how the peeling peelJ‡K and the attributes attJ‡K work:
Definition 36** (Concatenation of games [YA16]).**
Given games J, K, A, B and C with Hω(J)\trianglelefteqslantA⊸B and Hω(K)\trianglelefteqslantB⊸C, the concatenationJ‡K of J and K is defined by:
[(m,X)]e⊢J‡K[(n,Y)]f⇔df.⎩⎨⎧(attJ‡K([(m,X)]e)=J=attJ‡K([(n,Y)]f)∧peelJ‡K([(m,X)]e)⊢JpeelJ‡K([(n,Y)]f))∨(attJ‡K([(m,X)]e)=K=attJ‡K([(n,Y)]f)∧peelJ‡K([(m,X)]e)⊢KpeelJ‡K([(n,Y)]f))∨(X=N∧Y=S∧∃[b]e,[b′]f∈MBInit.m=(b,W)∧n=(b,E)) where the function attJ‡K:MJ‡K→{J,K} is defined by [(a,W)]e↦J, [(m,S)]l↦J, [((b,E),S)]g↦J, [(c,E)]f↦K, [(n,N)]r↦K, [((b,W),N)]g↦K, and the function peelJ‡K:MJ‡K→MJ∪MK by [(a,W)]e↦[(a,W)]e, [(c,E)]f↦[(c,E)]f, [((b,E),S)]g↦[(b,E)]g, [((b,W),N)]g↦[(b,W)]g, [(m,S)]l↦[m]l, [(n,N)]r↦[n]r;
PJ‡K=df.{s∈JJ‡K∣s↾J∈PJ,s↾K∈PK,s↾B[1],B[2]∈prB}, where s↾J (resp. s↾K) is the j-subsequence of s that consists of moves m such that attJ‡K(m)=J (resp. attJ‡K(m)=K) changed into peelJ‡K(m), B[1] and B[2] are two copies of B, s↾B[1],B[2] is the j-subsequence of s that consists of moves of B[1] or B[2], i.e., moves [((b,X),Y)]e such that [b]e∈MB∧((X=E∧Y=S)∨(X=W∧Y=N)) changed into [(b,X)]e, for which E=df.W and W=df.E, and prB=df.{t∈PB[1]⊸B[2]∣∀u⪯t.Even(u)⇒u↾W=u↾E}.
Example 37**.**
Typical plays of the concatenation (N⊸N)‡(N⊸N) are:
[TABLE]
Finally, let us recall the rather trivial curryingΛ and uncurryingΛ⊝ [AM99a]).
Roughly, currying Λ is a generalization of the map A⊗B⊸C↦A⊸(B⊸C), and uncurrying Λ⊝ is a generalization of the inverse A⊸(B⊸C)↦A⊗B⊸C, where A, B and C are arbitrary normalized games.
For their simplicity, let us skip their informal definitions and just present the formal ones:
[m]e⊢Λ(G)[n]f⇔df.peelΛ(G)([m]e)⊢GpeelΛ(G)([n]f), where the function peelΛ(G):MΛ(G)→MG is defined by [(a,W)]e↦[((a,W),W)]e, [((b,W),E)]f↦[((b,E),W)]f, [((c,E),E)]g↦[(c,E)]g, [(m,N)]h↦[m]h;
▶
ΔΛ(G):[(m,N)]e↦[(m′,N)]e, where ΔG:[m]e↦[m′]e;
▶
PΛ(G)=df.{s∈LΛ(G)∣peelΛ(G)∗(s)∈PG}, where the structure of justifiers in peelΛ(G)∗(s) is the same as the one in s.
It is easy to see that Hω(Λ(G))\trianglelefteqslantA⊸(B⊸C) if Hω(G)\trianglelefteqslantA⊗B⊸C, which is a generalization of the equation Λ(A⊗B⊸C)=A⊸(B⊸C).
[m]e⊢Λ⊝(H)[n]f⇔df.peelΛ⊝(H)([m]e)⊢HpeelΛ⊝(H)([n]f), where the function peelΛ⊝(H):MΛ⊝(H)→MH is defined by [((a,W),W)]e↦[(a,W)]e, [((b,E),W)]f↦[((b,W),E)]f, [(c,E)]g↦[((c,E),E)]g, [(m,S)]h↦[m]h;
▶
ΔΛ⊝(H):[(m,S)]h↦[(m′,S)]h, where ΔH:[m]h↦[m′]h;
▶
PΛ⊝(H)=df.{s∈LΛ⊝(H)∣peelΛ⊝(H)∗(s)∈PH}, where the structure of justifiers in peelΛ⊝(H)∗(s) is the same as the one in s.
Dually to currying, Hω(Λ⊝(H))\trianglelefteqslantA⊗B⊸C if Hω(H)\trianglelefteqslantA⊸(B⊸C), which is a generalization of the equation Λ⊝(A⊸(B⊸C))=A⊗B⊸C.
It is easy to see that Λ and Λ⊝ are inverses to each other for normalized games, i.e., Λ∘Λ⊝(A⊸(B⊸C))=A⊸(B⊸C) and Λ⊝∘Λ(A⊗B⊸C)=A⊗B⊸C for any normalized games A, B and C.
Note also that currying Λ(G) and uncurrying Λ⊝(H) do not depend on the choice of the normalized games A, B and C such that Hω(G)\trianglelefteqslantA⊗B⊸C and Hω(Λ⊝(H))\trianglelefteqslantA⊗B⊸C.
The following are two of the technical highlights of [YA16], where it is straightforward to see that the additional structure of dummy functions and the strengthened axiom DP2 are preserved under the operations on games introduced so far (and therefore the two results still hold).
Games are closed under ⊗, ⊸, &, ⟨_,_⟩, !, (_)†, ‡, Λ and Λ⊝.
Moreover, the subgame relation is preserved under these constructions, i.e., ♣i∈IGi\trianglelefteqslant♣i∈IHi if Gi\trianglelefteqslantHi for all i∈I, where ♣i∈I is either ⊗, ⊸, &, ⟨_,_⟩, !, (_)†, ‡, Λ or Λ⊝ (and thus, I is either {1} or {1,2}).
Let ♣i∈I be either ⊗, ⊸, &, ⟨_,_⟩, !, (_)†, ‡, Λ or Λ⊝, and d∈N∪{ω}. Then, for any family (Gi)i∈I of games,
Hd(♣i∈IGi)\trianglelefteqslant♣i∈IHd(Gi)* if ♣i∈I is not ‡;*
2. 2.
Hd(G1‡G2)=Hd(G1)‡Hd(G2)* if Hd(G1‡G2) is not yet normalized, and Hd(G1‡G2)\trianglelefteqslantA⊸C otherwise, where Hd−1(G1)\trianglelefteqslantA⊸B and Hd−1(G2)\trianglelefteqslantB⊸C for some normalized games A, B and C.*
2.3 Strategies
Next, let us recall another central notion of strategies.
2.3.1 Strategies
Our strategies are the dynamic variant defined in [YA16].
However, there is nothing special in the definition: A dynamic strategy on a (dynamic) game is a strategy on the game in the conventional sense [AM99a, McC98].
Formally:
A dynamic strategyσ on a (dynamic) game G, written σ:G, is a subset σ⊆PGEven that satisfies:
▶
(S1) It is non-empty and even-prefix-closed: σ=∅∧(smn∈σ⇒s∈σ);
▶
(S2) It is deterministic: smn,smn′∈σ⇒n=n′∧Jsmn(n)=Jsmn′(n′).
Convention*.*
From now on, strategies refer to dynamic strategies as defined above by default.
Next, let us recall two constraints on strategies: innocence and well-bracketing.
One of the highlights of HO-games [HO00] is to establish a one-to-one correspondence between terms of PCF in a certain η-long normal form, known as PCF Böhm trees [AC98], and innocent and well-bracketed strategies (on games modeling types of PCF).
That is, the two conditions limit the codomain of the interpretation of PCF, i.e., the category of HO-games, in such a way that the interpretation becomes full.
Roughly, a strategy is innocent if its computation depends only on the P-view of the current odd-length position (rather than the current position itself), and well-bracketed if every ‘question-answering’ by the strategy is done in the ‘last-question-first-answered’ fashion.
Formally:
A strategy σ:G is well-bracketed if, whenever there is a position sqta∈σ, where q is a question that justifies an answer a, every question in t′ defined by ⌈sqt⌉G=⌈sq⌉G.t′ justifies an answer in t′.
The bijective correspondence holds also for the game model [AM99a], on which our games and strategies are based.
Moreover, it corresponds respectively to modeling states and control operators to relax innocence and well-bracketing in the model; in this sense, the two conditions characterize ‘purely functional’ languages [AM99a].
Note that innocence and well-bracketing have been imposed on strategies in order to establish full abstraction and/or definability [Cur07], but neither is our main concern in this paper.
However, we would like P to be able to collect a bounded number of ‘relevant’ moves from the current odd-length position in an ‘effective’ fashion; for this point, it is convenient to focus on innocent strategies since it then suffices for P to trace back the chain of justifiers.
In fact, we shall define our notion of ‘computability’ only on innocent strategies in this paper.
On the other hand, we do not impose well-bracketing on strategies (thus, control operators are ‘effective’ in our sense); nevertheless, we shall consider only strategies modeling terms of PCF which are all well-bracketed.
Remark*.*
We conjecture that it is possible to define ‘effectivity’ of non-innocent strategies in a fashion similar to the case of innocent ones defined in Section 3.1.
For this, however, we need to modify the procedure for P to collect a bounded number of moves from the current odd-length position (defined in Section 3.1) so that she may refer to moves outside of the P-view, which is left as future work.
Convention*.*
From now on, a strategy refers to an innocent strategy by default.
We may clearly regard innocent strategies σ:G as (partial) view functionsfσ:⌈PGOdd⌉G⇀MG (see [McC98] for the detail); we shall freely exchange the tree-representation σ and the function representation fσ, and write σ for fσ.
Notation*.*
Henceforth, we abbreviate inner elements (…((m,X1),X2),…,Xk), where Xi∈{W,E,N,S} for i=1,2,…,k, as mX1X2…Xk.
Also, we often indicate the form of tags of moves [mX1X2…Xk]e of a game G informally by [GX1X2…Xk]e.
Example 45**.**
The successor strategysucc:[NW]\Lbage\Rbagℏ⇒[NE] is defined by:
[TABLE]
where y and n are abbreviates yes and no, respectively.
That is, succ copies an input ‘counting process’ n in the domain [!NW]\Lbage\Rbagℏ and repeats it in the codomain [NE] adding ‘one more counting’ as already mentioned in the introduction; thus, it makes sense to take succ as a strategy for the successor function n↦n+1.
Similarly, the predecessor strategypred:[NW]\Lbage\Rbagℏ⇒[NE] is defined by:
[TABLE]
Thus, if the input in the domain [!NW]\Lbage\Rbagℏ is 0, then pred simply ‘copy-cats’ it in the codomain [NE]; otherwise, i.e., if the input is n+1 for some n∈N, then pred ‘copy-cats’ it except the first ‘counting’.
Therefore pred ‘implements’ the predecessor function 0↦0, n+1↦n.
As in the case of games, we now define the hiding operation on strategies.
Note that an even-length position is not necessarily preserved under the hiding operation on j-sequences.
For instance, let smnt be an even-length position of a game G such that sm (resp. tn) consists of external (resp. internal) moves only.
By IE-switch on G, m is an O-move, and so Hω(smnt)=sm is of odd-length.
Thus, we define:
Given a game G, a position s∈PG and a number d∈N∪{ω}, let \bm{s}\natural\mathcal{H}_{G}^{d}\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\mathcal{H}_{G}^{d}(\bm{s})&\text{if \bm{s}isd-complete (Definition~{}\ref{DefArenas});}\\
\bm{t}&\text{otherwise, where \mathcal{H}_{G}^{d}(\bm{s})=\bm{t}m.}\end{cases}
We define the d-hiding operationHd on strategies by Hd:(σ:G)↦{s♮HGd∣s∈σ}.
A strategy σ:G is normalized if Hω(σ)=σ.
The following beautiful theorem in a sense implies that the above definition is a reasonable one.
Also, it induces the hiding functorHω from the bicategory DG of dynamic games and strategies to the category G of static games and strategies [YA16].
If σ:G, then Hd(σ):Hd(G) for all d∈N∪{ω}, and iH1∘H1⋯∘H1(σ)=Hi(σ):Hi(G) for all i∈N.
2.3.2 Constructions on strategies
Next, let us review standard constructions on strategies [AM99a, McC98], for which we need to adopt a formalization of ‘tags’.
Having introduced our formalization of ‘tags’ for constructions on games in Section 2.2.3, let us just present formalized constructions on strategies (without standard and informal versions) as it should be clear enough.
Copy-cat strategies are the most basic strategy, which, as the name indicates, just ‘copy-cats’ the last occurrence of an O-move in the current odd-length position:
Let A be a normalized game. The derelictionderA:A⇒A on A is defined by:
[TABLE]
where t↾(W)\Lbag\Rbagℏ_ (resp. t↾(E)_) is the j-subsequence of t that consists of moves of the form [(a,W)](\Lbagf\Rbagℏe) (resp. [(a′,E)]e′) changed into [a]e (resp. [a′]e′).
Next, as in the case of the tensor of games, we have:
Definition 50** (Tensor of strategies [AJ94, McC98]).**
Given static strategies σ:A⊸C and τ:B⊸D, their tensor (product)σ⊗τ:A⊗B⊸C⊗D is defined by:
[TABLE]
where s↾(W,_) (resp. s↾(E,_)) is the j-subsequence of s consisting of moves of the form [((m,W),X)]e (resp. [((m′,E),Y)]e) changed into [(m,X)]e (resp. [(m′,Y)]e).
Intuitively, the tensor σ⊗τ:A⊗B⊸C⊗D plays by σ if the last occurrence of an O-move belongs to A⊸C, and by τ otherwise.
Example 51**.**
Consider the tensor succ⊗pred:[!NWW]\Lbage\Rbagℏ⊗[!NEW]\Lbage′\Rbagℏ⊸[NWE]⊗[NEE].
A typical play by succ⊗pred is as follows:
[TABLE]
The next construction is the categorical pairing in the category G of static games and strategies [AM99a, McC98]:
Definition 52** (Pairing of strategies [AJM00, McC98]).**
Given strategies σ:C⊸A and τ:C⊸B, their pairing⟨σ,τ⟩:C⊸A&B is defined by:
[TABLE]
where s↾(W⊸WE) (resp. s↾(W⊸EE)) is the j-subsequence of s that consists of moves of the form [(c,W)]e or [((a,W),E)]f with [a]∈MA (resp. or [((b,E),E)]f with [b]∈MB) with the latter changed into [(a,E)]f (resp. [(b,E)]f).
However, for the bicategory DG of dynamic games and strategies [YA16], we need the following generalization (for the reason explained right before introducing pairing of games in Section 2.2.3):
Given strategies σ:L and τ:R such that Hω(L)\trianglelefteqslantC⊸A, Hω(R)\trianglelefteqslantC⊸B for some normalized games A, B and C, their (generalized) pairing⟨σ,τ⟩:⟨L,R⟩ is defined by:
[TABLE]
It is clearly a generalization of pairing; consider the case where L=C⊸A and R=C⊸B.
Convention*.*
Henceforth, pairing refers to generalized pairing by default.
Example 54**.**
Consider the pairing ⟨succ,pred⟩:[!NW]\Lbage\Rbagℏ⊸[NWE]&[NEE].
Its typical plays are as follows:
[TABLE]
[TABLE]
Next, let us recall promotion of strategies:
Definition 55** (Promotion of strategies [AJM00, McC98]).**
Given a strategy ϕ:!A⊸B, its promotionϕ†:!A⊸!B is defined by:
[TABLE]
where s↾e is the j-subsequence of s that consists of moves of the form [(b,E)]\Lbage\Rbagℏe′ with [b]e′∈MB or [(a,W)]\Lbag\Lbage\Rbagℏ\Lbagf\Rbag\Rbagℏf′ with [a]f′∈MA, which are respectively changed into [(b,E)]e′ and [(a,W)]\Lbagf\Rbagℏf′.
As stated before, [YA16] generalizes promotion of strategies (for the reason explained right before introducing promotion of games in Section 2.2.3) as follows:
Definition 56** (Generalized promotion of strategies [AJM00, McC98]).**
Given a strategy ϕ:G such that Hω(G)\trianglelefteqslant!A⊸!B for some normalized games A and B, its (generalized) promotionϕ†:G† is defined by:
[TABLE]
where s↾e is the j-subsequence of s that consists of moves of the form [(b,E)]\Lbage\Rbagℏe′ with [b]e′∈MB, [(a,W)]\Lbag\Lbage\Rbagℏ\Lbagf\Rbag\Rbagℏf′ with [a]f′∈MA, or [(m,S)]\Lbage\Rbagℏe′ with [m]e′∈MGInt, which are respectively changed into [(b,E)]e′, [(a,W)]\Lbagf\Rbagℏf′ and [m]e′.
It is clearly a generalization of promotion; consider the case G=!A⊸B.
Convention*.*
Henceforth, promotion refers to generalized promotion by default.
Example 57**.**
Consider the promotion succ†:[!NW]\Lbage\Rbagℏ⊸[!NE]\Lbage′\Rbagℏ.
Its typical play is as depicted in the following diagram:
[TABLE]
Note that there are two threads131313A thread in a j-sequence s is a j-subsequence of s that consists of moves hereditarily justified by the same initial occurrence in s; see [AM99a, McC98] for its precise definition. in the above play, and the strategy succ† behaves as succ in both of the threads.
Now, let us recall a central construction of strategies in [YA16], which reformulates composition of strategies as follows:
Definition 58** (Concatenation and composition of strategies [YA16]).**
Let σ:J and τ:K; and assume that Hω(J)\trianglelefteqslantA⊸B and Hω(K)\trianglelefteqslantB⊸C for some normalized games A, B and C. Their concatenationσ‡τ:J‡K is defined by:
[TABLE]
and their compositionσ;τ:Hω(J‡K) by σ;τ=df.Hω(σ‡τ) (see Theorem 47).
We also write τ∘σ for σ;τ.
If J=A⊸B, K=B⊸C, then our composition σ;τ:Hω(A⊸B‡B⊸C)\trianglelefteqslantA⊸C coincides with the standard one [HO00, AM99a, McC98]; see [YA16] for the detail.
In this sense, our composition generalizes the standard one, and it is decomposed into concatenation plus hiding.
Example 59**.**
Consider the concatenation succ†‡pred:([!NW]\Lbag\Lbag\Rbagℏ\Lbag\Rbag\Rbagℏ⊸[!NES]\Lbag\Rbagℏ)‡([!NWN]\Lbag\Rbagℏ⊸[NE]).
Its typical play is as follows:
[TABLE]
Finally, we introduce the currying and the uncurrying of strategies:
Definition 60** (Currying and uncurrying of strategies [AM99a]).**
If ϕ:G (resp. ψ:H) and Hω(G)\trianglelefteqslantA⊗B⊸C (resp. Hω(H)\trianglelefteqslantA⊸(B⊸C)) for some normalized games A, B and C, then its curryingΛ(ϕ):Λ(G) (resp. uncurryingΛ⊝(ψ):Λ⊝(H)) is defined by:
[TABLE]
Theorem 61** (Constructions on strategies [YA16]).**
The constructions ⊗, ⟨_,_⟩, (_)†, ‡, ;, Λ and Λ⊝ on strategies are all well-defined.
Let ♠i∈I be either ⊗, ⟨_,_⟩, (_)†, ‡, Λ or Λ⊝, and d∈N∪{ω}. Then, for any family (σi)i∈I of strategies, we have:
Hd(♠i∈Iσi)=♠i∈IHd(σi)* if ♠i∈I is not ‡;*
2. 2.
Hd(σ1‡σ2)=Hd(σ1)‡Hd(σ2)* if Hd(σ1‡σ2) is not yet normalized, and Hd(σ1‡σ2)=Hd(σ1);Hd(σ2) otherwise.*
3 Viable strategies
We have defined our games and strategies in the previous section.
In this main section of the paper, we introduce a novel notion of ‘effective’ or viable strategies, and show that they subsume all computations of the programming language PCF [Plo77, Mit96], and therefore they are Turing complete.
In Section 3.1, we define viability of strategies and show that it is preserved under the constructions on strategies defined in Section 2.3.2. We then describe various examples of viable strategies in Section 3.2, based on which we finally prove in Section 3.3 that viable strategies may interpret all terms of PCF.
3.1 Viable strategies
The idea of viable strategies is as follows.
First, it seems a reasonable idea to restrict the number of previous occurrences of moves which P is allowed to look at to calculate the next P-move to a bounded one.141414Note that this is analogous to the computation of a TM which looks at only one cell of an infinite tape at a time.
Fortunately, to model the language PCF, it turns out that strategies only need to read off at most last three moves in the P-view (and possibly a few initial and internal moves) as we shall see, which is clearly ‘effectively’ achievable in an informal sense.
Thus, it remains to formalize how strategies ‘effectively’ compute the next P-move from such a bounded number of previous occurrences.
Note that (as already mentioned) computation of internal O-moves should be done by P, but it is rather trivial by the axiom DP2, and therefore we do not have to take into account it.
We focus on innocent strategies as a means to narrow down previous occurrences to be concerned with.151515Of course, there would be another means to ‘effectively’ eliminate irrelevant moves from the history of previous moves; in fact, we need more than P-views in order to model languages with states [AM99a], which is left as future work.
As the set π1(MG) is finite for any game G, innocent strategies that are finitary in the sense that their view functions are finite seem sufficient at first glance.
However, to model fixed-point combinators in PCF, strategies need to initiate new threads unboundedly many times [HO00, AJM00]; also, they have to model promotion in which possible outer tags are infinitely many.
Thus, finitary strategies are not enough.
Then, how can we define a stronger notion of ‘effective computability’ of the next P-move from (a bounded number of) previous occurrences solely in terms of games and strategies?
Our solution is, which is the main achievement of the present paper, to define a strategy σ:G to be ‘effective’ or viable if it is ‘describable’ by a finitary strategy, called an instruction strategy, on the instruction game of G:
Notation*.*
For conceptual clarity, we assign a unique symbol m to each inner element m∈π1(MG) for a game G, for which we may assume that these symbols are pairwise distinct since the set π1(MG) is finite.
Also, we assign symbols to elements of outer tags by a function C:ℓ↦′, ℏ↦♯, \Lbag↦⟨ and \Rbag↦⟩.
Let us define Sym(π1(MG))=df.{m∣m∈π1(MG)}, Sym(T)=df.{′,♯,⟨,⟩} and Sym(MG)=df.Sym(π1(MG))×Sym(T).
(N.b., technically, these new symbols are not necessary; they are just for clarity.)
Definition 63** (Instruction games).**
The instruction gameG(MG) on a game G is the product G(π1(MG))&G(T), where G(T) is the tag game (Example 23), and the game G(π1(MG)) is defined by:
▶
MG(π1(MG))=df.{[q^G],[□]}∪{[m]∣m∈Sym(π1(MG))}, where q^G and □ are arbitrary chosen elements with q^G=□∧{q^G,□}∩Sym(π1(MG))=∅;
PG(π1(MG))=df.Pref({[q^G].[□]}∪{[q^G].[m]∣m∈Sym(π1(MG))}), where [q^G] justifies [□] and [m].
The positions [q^G].[m] and [q^G].[□] are to represent the inner element m∈π1(MG) and ‘no element’, respectively, which will be clearer shortly.
Convention*.*
Pointers in positions of instruction games are rather trivial, and thus we usually omit them.
Notation*.*
Let G be a game, and [m]e∈MG with e=e1e2…ek∈T. We write [m]e for the strategy ⟨m,e⟩:G(MG), where m:G(π1(MG)) and e:G(T) are defined respectively by m=df.Pref({[q^G].[m]})Even and e=df.Pref({[q^T].[C(e1)].[qT].[C(e2)]…[qT].[C(ek)].[qT].[✓]})Even.
Similarly, we define □=df.Pref({[q^G].[□]})Even:G(π1(MG)) and [□]=df.⟨□,ϵ⟩:G(MG).
For any finite sequence s=[ml]el[ml−1]el−1…[m1]e1∈MG∗ of moves and number n⩾l, we define sn=df.⟨n−l[□],…,[□],[ml]el,[ml−1]el−1,…,[m1]e1⟩:G(MG)n and G(MG)n=df.nG(MG)&G(MG)…&G(MG), where the n-ary pairing and product are just abbreviations of the (n−1)-times iteration of the usual (binary) ones from the left.
Given a strategy σ:G(MG), we define M(σ) to be the unique move in MG such that M(σ)=σ if it exists, and undefined otherwise.
The idea is to ‘describe’ or realize an ‘effective’ strategy σ on a game G by a finitary strategy A(σ)Ⓢ on the game G(MG)3⇒G(MG).
For instance, recall the successor strategy succ:N⇒N in Example 45, which computes as in Figure 4 below.
It is then easy to see that this computation can be described by a finite partial function (m3,m2,m1)↦m as already mentioned in the introduction, where m1, m2, m3 are the last, second last and third last occurrences in the P-view of the current odd-length position, respectively, and m is the next P-move.
Concretely, the finite partial function is given by the following table:
[TABLE]
where □ and _ mean ‘no move’ and ‘any move’, respectively.
Therefore, it can be realized by a finitary strategy A(succ)Ⓢ:G(MN⇒N)3⇒G(MN⇒N) in the sense that it satisfies A(succ)Ⓢ∘⟨m3,m2,m1⟩†=m for all input-output pairs (m3,m2,m1)↦m of succ.
Diagrammatically, A(succ)Ⓢ computes as follows:
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
Hence, we are particularly concerned with games of the form G(MG)3⇒G(MG), where G is a game.
We loosely call G(MG)3⇒G(MG)instruction games as well.
Clearly, the strategy A(succ)Ⓢ is finitary161616Note that succ is already finitary. A(succ)Ⓢ is just for an illustration, and the idea of ‘realizing strategies by strategies’ is necessary only for more complex strategies., and it correctly ‘describes’ the computation of succ.
In Definition 65 below, we define formalized finite tables A(σ) for such strategies A(σ)Ⓢ:G(MG)3⇒G(MG) on σ:G as st-algorithm for σ:G.
Notation*.*
We write ‘tags’ in G(MG)3⇒G(MG)informally for brevity, e.g., G(MG)[0]⇒G(MG)[1], G(MG)[0]&G(MG)[1]&G(MG)[2]⇒G(MG)[3], (q^G)[0], (qT)[1].
However, there remain two points to overcome.
The first point is the pairing ⟨σ,τ⟩:⟨L,R⟩ of strategies σ:L and τ:R such that Hω(L)\trianglelefteqslantC⇒A and Hω(R)\trianglelefteqslantC⇒B: Because moves of C are common to σ and τ, the last three moves in each P-view may not suffice; the pairing ⟨σ,τ⟩ needs to know whether A or B the first occurrence of a move in each play belongs to. We shall record this information as states of positions (see Definition 65 below).
The second point is how to ‘effectively’ calculate the finite and ‘relevant’ part of outer tags.
For this point, we introduce the notion of m-views as follows.
Note first that omitting tags for brevity occurrences of ⟨ and ⟩ in any position s∈PG(MG)3⇒G(MG) form unique pairs similarly to ‘QA-pairs’ for well-bracketing (Definition 44): Each occurrence of ⟩ is paired with the most recent yet unpaired occurrence of ⟨ in the same component game G(T) in G(MG)3⇒G(MG); one in such a pair is called the mate of the other.
Then, let us define:
Definition 64** (M-views).**
Let G be a game, and assume s∈PG(MG)3⇒G(MG), where we omit tags in s for brevity.
The depth of an occurrence of ⟨ in s is the number of previous occurrences of ⟨ in the same component game G(T) whose mate does not occur before that occurrence; the depth of an occurrence of ⟩ in s is the depth of its mate.
The matching view (m-view) [[s]]Gd of s up to depth d∈N is the j-subsequence of s that consists of occurrences of ⟨ or ⟩ of depth ⩽d.
Notation*.*
Given a finite sequence s=xkxk−1…x1 and a natural number l∈N, we define \bm{s}\downharpoonright l\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\bm{s}&\text{if l\geqslant k;}\\
x_{l}x_{l-1}\dots x_{1}&\text{otherwise.}\end{cases}
A function f:π1(MG)→{⊤,⊥}, where G is a game, and ⊤ and ⊥ are any symbols with ⊤=⊥, induces another function f⋆:MG∗→π1(MG)∗ defined by f⋆([mk]ek[mk−1]ek−1…[m1]e1)=df.milmil−1…mi1, where l⩽k and milmil−1…mi1 is the subsequence of mkmk−1…m1 that consists of mij such that f(mij)=⊤ for j=1,2,…,l.
It is clearly ‘effective’ to calculate the m-view of a position in an informal sense.
We are now ready to make the notion of ‘describable by a finitary strategy’ precise:
Definition 65** (St-algorithms).**
An st-algorithmA on a game G, written A::G, is a family A=(Am)m∈SA of finite partial functions Am:∂m(PG(MG)3⇒G(MG)Odd)⇀MG(MG)3⇒G(MG), which also specifies the justifier of each output in the input (but we usually treat this structure implicit as in [AM99a, McC98]), where:
▶
SA⊆π1(MG)∗ is a finite set of states;
▶
∂m(tx)=df.(tx⇂∣Am∣,[[tx]]G∥Am∥) for all tx∈PG(MG)3⇒G(MG)Odd, where ∣Am∣,∥Am∥∈N are natural numbers assigned to Am, called the view-scope and the mate-scope of Am, respectively
equipped with the query (function)QA:π1(MG)→{⊤,⊥} that satisfies:
▶
(Q1) [m]e∈MGInit⇒QA(m)=⊤;
▶
(Q2) QA(m)=⊤⇒∃e∈T.[m]e∈MGInit∪MGInt.
Remark*.*
The axiom Q2 is not necessary for the main theorem in Section 3.3, but it is informative and reasonable to ensure that states are initial or internal moves.
Definition 66** (Instruction strategies).**
Given a game G, an st-algorithm A::G and a state m∈SA, the instruction strategyAmⓈ of A at m is the strategy on the game G(MG)3⇒G(MG) defined by:
[TABLE]
Convention*.*
Since an st-algorithm A::G refers to m-views only occasionally, we treat Am for each m∈SA as a partial function Am:{tx⇂∣Am∣∣tx∈PG(MG)3⇒G(MG)Odd}⇀MG(MG)3⇒G(MG) in most cases.
Accordingly, AmⓈ is mostly a strategy G(MG)3⇒G(MG) whose function representation Am is finite.
Remark*.*
Note that it does not make difference if each st-algorithm A::G focuses on P-views of positions tx∈PG(MG)3⇒G(MG)Odd since ⌈tx⌉=tx.
Also, strictly speaking, each instruction strategy AmⓈ:G(MG)3⇒G(MG) has to specify justifiers (in PG) of outputs171717Though it is not complicated at all to specify justifiers since the choice is ternary, i.e., the last, third last or opening occurrence in the P-view..
However, since justifiers occurring in this paper are all obvious ones, we have adopted the abbreviated form of AmⓈ as above.
Thus, an instruction strategy is a strategy on the game G(MG)3⇒G(MG), where G is a game, that is finitary in the sense that it is representable by a finite partial function, and so it is clearly ‘computable’ in an informal sense.
We shall see that the number 3 on G(MG)3 is the least number to achieve Turing completeness in Section 3.3.
As already mentioned, our idea is to utilize such an instruction strategy as a ‘description’ of a strategy on G, which may be ‘effectively read-off’:
Definition 67** (Realizability).**
The strategy st(A)realized by an st-algorithm A::G is defined by:
[TABLE]
where AⓈ(⌈sa⌉⇂3)≃df.M(AQA⋆(⌈sa⌉)Ⓢ∘(⌈sa⌉⇂33)†), and AⓈ(⌈sa⌉⇂3)↓ presupposes QA⋆(⌈sa⌉)∈SA.
Clearly, A::G⇒st(A):G holds.
We are now ready to define the central notion of the paper, namely ‘effective computability’ of strategies:
Definition 68** (Viable strategies).**
A strategy σ:G is viable if there exists an st-algorithm A::G that realizes σ, i.e., st(A)=σ.
That is, a strategy σ:G is viable if there is a finitary strategy on G(MG)3⇒G(MG) that ‘describes’ the computation of σ.
The terms realize and realizability come from mathematical logic, in which a realizer refers to some computational information that ‘realizes’ the constructive truth of a mathematical statement [T*+*98].
Given an st-algorithm A::G that realizes a strategy σ:G, P may ‘effectively execute’ A to compute σ roughly as follows:
Given sa∈PGOdd, P calculates the current state m=df.QA⋆(⌈sa⌉) and the last (up to) three moves ⌈sa⌉⇂3 in the P-view; if m∈SA, then she stops, i.e., the next move is undefined;
2. 2.
Otherwise, she composes (⌈sa⌉⇂33)† with AmⓈ, calculating AmⓈ∘(⌈sa⌉⇂33)†;
3. 3.
Finally, she reads off the next move M(AmⓈ∘(⌈sa⌉⇂33)†) (and its justifier) and performes that move.
For conceptual clarity, here we assume that P may write down moves [m]e in P-views as [m]C∗(e) and execute strategies on instruction games symbolically on her ‘scratch pad’, and also she may read off strategies σ:G(MG) and reproduce them as moves M(σ)∈MG.
This procedure is clearly ‘effective’ in an informal sense, which is our justification of the notion of viable strategies.
Note that there are two kinds of processes in viable strategies σ:G.
The first kind is the process of σ per se whose atomic steps are (sa∈PGOdd)↦sa.σ(⌈sa⌉), and the second kind is the process of its st-algorithm A whose atomic steps are tx∈PG(MG)3⇒G(MG)Odd↦tx.Am∘∂m(tx), where m is the ‘current state’.
The former is abstract and ‘high-level’, while the latter is symbolic and ‘low-level’.
In this manner, we have achieved a mathematical formulation of ‘high-level’ and ‘low-level’ processes and ‘effective computability’ of the former in terms of the latter (as promised in the introduction).
In order to establish Theorem 74, which is our main theorem, later, we shall focus on the following st-algorithms:
Definition 69** (Standard st-algorithms).**
An st-algorithm A::G is standard if it satisfies the following three conditions:
It does not refer to any input outer tag when it computes the inner element, i.e., if s=[(q^G)WE]xt∈AmⓈ for some m∈SA, then q^T does not occur in s;
2. 2.
If it refers to input outer tags, they must belongs to the last move in the P-view of the current position of G, i.e., if q^T occurs as a P-move in some s∈AmⓈ, where m∈SA, then the inner tag of the move is EEW;
3. 3.
The symbol □ does not occur in Am for any m∈SA.
Example 70**.**
The zero strategyzeroA=df.Pref({[q^E][noE]})Even:[AW]\Lbage\Rbagℏ⇒[NE] on any normalized game A is viable since we may give an st-algorithm A(zeroA) by \mathcal{Q}_{\mathcal{A}(\mathit{zero}_{A})}(m)\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\top&\text{if m=\hat{q}_{\mathscr{E}};}\\
\bot&\text{otherwise}\end{cases}, SA(zeroA)=df.{q^E}, ∣A(zeroA)q^E∣=df.1, ∥A(zeroA)q^E∥=df.0 and A(zeroA)q^E:(q^A⇒N)[3]↦(noE)[3]∣(q^T)[3]↦(✓)[3].
Then, the instruction strategy A(zeroA)q^EⓈ is as depicted in the following diagram:
[TABLE]
Clearly, zeroA is standard, and st(A(zeroA))=zeroA.
Example 71**.**
Let us complete the example of successor strategy succ:[NW]\Lbage\Rbagℏ⇒[NE] (Example 45).
We give an st-algorithm A(succ) for succ by defining \mathcal{Q}_{\mathcal{A}(\mathit{succ})}(m)\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\top&\text{if m=\hat{q}_{\mathscr{E}};}\\
\bot&\text{otherwise}\end{cases}, SA(succ)=df.{q^E}, ∣A(succ)q^E∣=df.11, ∥A(succ)q^E∥=df.0 and the table is as given in Appendix A.
We clearly have st(A(succ))=succ, which establishes the viability of succ.
Also, it is easy to see that A(succ) is standard.
Example 72**.**
Similarly to zero and succ, we may give an st-algorithm A(pred) for the predecessor strategy pred:[!NW]\Lbage\Rbagℏ⊸[NE] (Example 45) as follows.
We define the states, the view- and mate-scopes and query of A(pred) to be the same as those of A(succ).
At this point, it should suffice to show diagrams for A(pred)q^EⓈ since it is clear that there is a finite table A(pred)q^E achieving it:
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
Clearly st(A(pred))=pred, establishing the viability of pred.
Also, it is easy to see that A(pred) is standard.
Example 73**.**
Consider the fixed-point strategyfixA:([AWW]\Lbage′\Rbagℏ\Lbage\Rbagℏf⇒[AEW]\Lbage′\Rbagℏf)⇒[AE]f for each normalized game A interpreting the fixed-point combinatorfixA in PCF [AJM00, HO00, McC98], where A is the interpretation of a type A of PCF.
Roughly, fixA computes as follows (for its detailed description, see [Hyl97, HO00]):
▶
After an opening occurrence [aE]f, fixA copies it and performs the second move [aEW]\Lbag\Rbagℏf.
▶
If O initiates a new thread [aWW′]\Lbage′\Rbagℏ\Lbage\Rbagℏf in the inner implication, then fixA copies it and launches a new thread in the outer implication by [aEW′]\Lbag\Lbage′\Rbagℏ\Lbage\Rbag\Rbagℏf.
▶
If O makes a move [aWW′′]\Lbage′\Rbagℏ\Lbage\Rbagℏf (resp. [aEW′′]\Lbag\Rbagℏf, [aEW′′]\Lbag\Lbage′\Rbagℏ\Lbage\Rbag\Rbagℏf, [aE′′]f) in an existing thread, then fixA copies it and makes the next move [aEW′′]\Lbag\Lbage′\Rbagℏ\Lbage\Rbag\Rbagℏf (resp. [aE′′]f, [aWW′′]\Lbage′\Rbagℏ\Lbage\Rbagℏf, [aEW′′]\Lbag\Rbagℏf) in the dual thread to which the third last occurrence in the current P-view belongs.
Clearly, fixA is not finitary for the calculation of a unbounded number of outer tags.
It is, however, viable for any game A, which is perhaps surprising to many readers.
Here, let us just informally describe an st-algorithm A(fixA) that realizes fixA as a preparation for Section 3.2.
Let QA(fixA)(m)=⊤⇔df.m∈π1(M(A⇒A)⇒AInit) and SA(fixA)=df.π1(M(A⇒A)⇒AInit). Since A(fixA)m does not depend on m, fix an arbitrary state m∈SA(fixA).
Below, we proceed by a case analysis on the rightmost component of input strategies on G(M(A⇒A)⇒A)3 for A(fixA)mⓈ (which corresponds to the last occurrence in the current P-view of (A⇒A)⇒A).
▶
If the rightmost component is of the form ([aE]f)†, then A(fixA)mⓈ recognizes it by the inner tag E, and calculates the next move [aEW]\Lbag\Rbagℏf once and for all for the inner element aEW and ‘digit-by-digit’ for the outer tag \Lbag\Rbagℏf (by producing \Lbag\Rbagℏ and copying f).
▶
If the rightmost component is of the form ([aEW]\Lbag\Rbagℏf)†, then the leftmost component (which corresponds to the third last occurrence in the current P-view of (A⇒A)⇒A) is of the form ([aE′]f)†, and thus A(fixA)mⓈ recognizes it by the inner tags EW and E, and calculates the next move [aE]f once and for all for the inner element aE and ‘digit-by-digit’ for the outer tag f (by ignoring \Lbag\Rbagℏ and copying f).
▶
If the rightmost component is of the form ([aEW]\Lbag\Lbage′\Rbagℏ\Lbage\Rbag\Rbagℏf)†, then A(fixA)mⓈ calculates the next move [aWW]\Lbage′\Rbagℏ\Lbage\Rbagℏf similarly to the above case but with the help of m-views for the outer tag; see Section 3.2 for the details.
▶
If the rightmost component is of the form ([aWW]\Lbage′\Rbagℏ\Lbage\Rbagℏf)†, then A(fixA)mⓈ calculates the next move [aEW]\Lbag\Lbage′\Rbagℏ\Lbage\Rbag\Rbagℏf in a similar manner to the above case with the help of m-views for the outer tag (n.b. only in this last case the justifier may not be the last or third last occurrence in the current P-view, but it may be the opening occurrence); see Section 3.2 for the detail.
We now turn to establishing a key theorem, which states that viability of strategies are preserved under the constructions on strategies defined in Section 2.3.2:
Theorem 74** (Preservation of viability).**
Viable strategies are closed under tensor ⊗, pairing ⟨_,_⟩, promotion (_)†, concatenation ‡, currying Λ and uncurrying Λ⊝ if the underlying st-algorithms are standard, where the standardness is also preserved.
Proof.
Let us first show that tensor ⊗ preserves viability of normalized strategies.
Let σ:[AW]e⊸[CE]e′ and τ:[BW]f⊸[DE]f′ be viable strategies with st-algorithms A(σ) and A(τ) realizing σ and τ, respectively.
We have to construct an st-algorithm A(σ⊗τ) such that st(A(σ⊗τ))=σ⊗τ:[AWW]e⊗[BEW]f⊸[CWE]e′⊗[DEE]f′.
Let us define the finite set SA(σ⊗τ) of states and the query QA(σ⊗τ) by:
[TABLE]
where Xk,Xk−1,…,X1,Yl,Yl−1,…,Y1∈{W,E} are inner tags that are the rightmost components of m(k),m(k−1),…,m(1)∈π1(MA∪MC),n(l),n(l−1),…,n(1)∈π1(MB∪MD), respectively.
Clearly, QA(σ⊗τ) satisfies the axioms Q1 and Q2.
For each mXk(k)mXk−1(k−1)…mX1(1)∈SA(σ) and nYl(l)nYl−1(l−1)…nY1(1)∈SA(τ), we construct the finite partial functions A(σ⊗τ)mWXk(k)mWXk−1(k−1)…mWX1(1) and A(σ⊗τ)nEYl(l)nEYl−1(l−1)…nEY1(1) from A(σ)mXk(k)mXk−1(k−1)…mX1(1) and A(τ)nYl(l)nYl−1(l−1)…nY1(1) simply by changing symbols mX∈Sym(π1(MA⊸C)) and nY∈Sym(π1(MB⊸D)) into mWX and nEY respectively in their finite tables, where the view-scopes are defined by:
[TABLE]
and the mate-scopes are defined similarly.
Then, because a P-view in σ⊗τ is either a P-view in σ or τ (which is shown by induction on the length of positions of σ⊗τ), it is straightforward to see that st(A(σ⊗τ))=σ⊗τ holds.
Also, it is clear that A(σ⊗τ) is standard if so are A(σ) and A(τ).
Intuitively, A(σ⊗τ) sees the new digit (W or E) of the current state s∈SA(σ⊗τ) and decides A(σ) or A(τ) to apply (n.b. since QA(σ⊗τ) ‘tracks’ every initial move by Q1, a state must be non-empty).
It is then clear that pairing of dynamic strategies may be handled in a completely similar manner; currying and uncurrying are even simpler.
Now, consider the concatenation ι‡κ:J‡K of viable dynamic strategies ι:J and κ:K such that Hω(J)\trianglelefteqslantA⊸B and Hω(K)\trianglelefteqslantB⊸C for some normalized games A, B and C. Let A(ι) and A(κ) be standard st-algorithms such that st(A(ι))=ι and st(A(κ))=κ.
We define the set SA(ι‡κ) of states and the query QA(ι‡κ) by:
[TABLE]
where
[TABLE]
We construct the finite partial function A(ι‡κ)nG(Yl)(l)nG(Yl−1)(l−1)…nG(Y1)(1)mF(Xk)(k)mF(Xk−1)(k−1)…mF(X1)(1) (including its view- and mate-scopes) from A(κ)nYl(l)nYl−1(l−1)…nY1(l) if k=0 and from A(ι)mXk(k)mXk−1(k−1)…mX1(1) otherwise, by modifying the symbols in the table similarly to the case of tensor (where the view- and mate-scopes are just inherited).
Again, QA(ι‡κ) clearly satisfies the axioms Q1 and Q2.
Because a P-view in ι‡κ is a one in κ or a one in ι followed by a one in κ (it is crucial here that QA(ι) ‘tracks’ initial moves by Q1, and □ does not appear in A(ι) for it is standard), we may conclude that st(A(ι‡κ))=ι‡κ.
Moreover, A(ι‡κ) is clearly standard as so are A(ι) and A(κ).
Finally, assume that φ†:[!AW]\Lbage\Rbagℏf⊸[!BE]\Lbage′\Rbagℏf′ is the promotion of a viable strategy φ:[!AW]\Lbage\Rbagℏf⊸[BE]f′ with a standard st-algorithm A(φ) that realizes φ.
As the more general case φ:G, where Hω(G)\trianglelefteqslantA⇒B, is similar (as internal moves of G† keep new digits of outer tags on moves of !B), we focus on the case φ:A⇒B for simplicity.
We define SA(φ†)=df.SA(φ) and QA(φ†)=df.QA(φ).
Then, roughly, the idea is that if φ makes the next P-move [aW]\Lbage\Rbagℏf (resp. [bE]f′) at an odd-length position tx of [!AW]\Lbage\Rbagℏf⊸[BE]f′, then φ† at an odd-length position t′x′ of [!AW]\Lbage\Rbagℏf⊸[!BE]\Lbage′\Rbagℏf′ that begins with an initial move [bE(0)]\Lbage(0)\Rbagℏf(0) and satisfies t′x′↾e(0)=tx makes the corresponding next P-move [aW]\Lbag\Lbage(0)\Rbagℏ\Lbage\Rbag\Rbagℏf (resp. [bE]\Lbage(0)\Rbagℏf′).
As opposed to the other constructions, however, the formal definition of the finite table for each A(φ†)m, where m∈SA(φ†), is rather involved; thus, we just informally describe how to obtain these tables from those for φ, which should suffice for the reader to see how to construct the tables if he or she wishes:
Fix s∈SA(φ†)=SA(φ).
Since A(φ) is standard, and P-views in !A⊸!B are those in !A⊸B, we define A(φ†)s’s calculation of inner elements to be exactly the same as that of A(φ)s, where we may assume that the computation of each inner element takes at most 8 moves since inputs for instruction strategies are ternary.
Thus, below we focus on A(φ†)s’s calculation of outer tags.
2. 2.
Let t[m]e~[n]e∈φ and t′[m]e~′[n]e′∈φ† such that QA(φ†)⋆(⌈t′[m]e~⌉)=s and t′[m]e~′[n]e′↾e(0)=t[m]e~[n]e, where the opening occurrence of the current thread in φ† is of the form [b(0)]\Lbage(0)\Rbagℏf(0).
Let us describe how A(φ†)s calculates C∗(e′) by a case analysis on m and n:
▶
If m and n both belong to A, which A(φ†)s may recognize by the method described below, then e~, e, e~′ and e′ are respectively of the form \Lbagg~\Rbagℏh~, \Lbagg\Rbagℏh, \Lbag\Lbage(0)\Rbagℏ\Lbagg~\Rbag\Rbagℏh~ and \Lbag\Lbage(0)\Rbagℏ\Lbagg\Rbag\Rbagℏh.
Note that the outer tags which A(φ)s refers to for computing e are only e~ as A(φ) is standard.
Then, with the help of m-views, A(φ†)s first calculates ⟨⟨C∗(e(0))⟩♯ by copying it from C∗(e~′), and then computes the remaining ⟨C∗(g)⟩⟩♯C∗(h) by simulating the computation of C∗(e) by A(φ)s, inserting ⟩ before ♯.
This computation of A(φ†)s is clearly standard.
▶
If m and n belong to A and B, respectively, then e~, e, e~′ and e′ are of the form \Lbagg~\Rbagℏh~, h,\Lbag\Lbage(0)\Rbagℏ\Lbagg~\Rbag\Rbagℏh~ and \Lbage(0)\Rbagℏh, respectively.
Again, with the help of m-views, A(φ†)s first calculates ⟨C∗(e(0))⟩♯ by copying C∗(e(0)) from C∗(e~′), and then computes C∗(h) by simulating the computation of C∗(e) by A(φ)s.
This computation of A(φ†)s is standard.
▶
The remaining two cases are completely analogous.
3. 3.
Now, it remains to stipulate how A(φ†)s distinguishes the above four cases.
Assume that (q!A⊸B)[3]v(n)[3] occurs when A(φ)s computes the inner element n.
Note that v has enough information to identify n.
Thus, by simulating A(φ)s’s computation for inner elements and replacing (n)[3] with (q!A⊸!B)[2] to learn about m, A(φ†)s may recognize the current case out of the four described above.
Specifically, if (qT)[3]↦x is the first step for A(φ)s to compute e, then correspondingly A(φ†)s computes as (qT)[3]↦v1, (qT)[3]v1v2↦v3, …, (qT)[3]v↦(q!A⊸!B)[2], (qT)[3]v(q!A⊸!B)[2](m)[2]↦x′, where x′ is the first step for A(φ†)s to compute e′, and if A(φ)s next computes (qT)[3]xy↦z, then correspondingly A(φ†)s computes as (qT)[3]v(q!A⊸!B)[2](m)[2]x′y′↦v1, (qT)[3]v(q!A⊸!B)[2](m)[2]x′y′v1v2↦v3, …, (qT)[3]v(q!A⊸!B)[2](m)2x′y′v↦(q!A⊸!B)[2], (qT)[3]v(q!A⊸!B)[2](m)[2]x′y′v(q!A⊸!B)[2](m)[2]↦z′, where y′,z′ are the second and third steps for A(φ†)s to compute e′, and so on. That is, A(φ†)s remembers the current case by inserting the sequence v(q!A⊸!B)[2](m)[2] (of length ⩽8) between each computational step.
It should be clear from the above description how to construct A(φ†)s from A(φ)s.
Finally, note that A(φ†) is clearly standard.
∎
3.2 Examples of viable strategies
This section presents various examples of a viable strategy realized by a standard st-algorithm.
These strategies except fixed-point strategiesfixA are actually finitary; thus, we need the notion of viable strategies only for promotion (_)† and fixA, both of which are necessary for the proof of Turing completeness in Section 3.3.
Example 75**.**
Given a normalized game A, we define an st-algorithm A(cpA) that realizes the copy-cat strategy cpA:[AW]e⊸[AE]e by \mathcal{Q}_{\mathit{cp}_{A}}(m)\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\top&\text{if m\in\pi_{1}(M_{A\multimap A}^{\mathsf{Init}})}\\
\bot&\text{otherwise}\end{cases}, ScpA=df.π1(MA⊸AInit), ∣A(cpA)m∣=df.3 and ∥A(cpA)m∥=df.0 for all m∈ScpA, and the table is as given in Appendix B.
QcpA clearly satisfies the required condition.
Accordingly, A(cpA)mⓈ computes as in the following diagrams:
[TABLE]
[TABLE]
Then it is easy to see that st(A(cpA))=cpA holds, showing viability of cpA.
Also, A(cpA) is clearly standard.
In a completely analogous (but slightly more complex for outer tags) manner, we may show that the dereliction derA:A⇒A for each normalized game A is viable with a standard st-algorithm realizing it as well.
Example 76**.**
The case strategycaseA:[AWWW]\Lbage′′\Rbagℏf&[AEWW]\Lbage′\Rbagℏf&[2EW]\Lbage\Rbagℏ⇒[AE]f for each normalized game A is defined by:
[TABLE]
where derAW:[AWWW]\Lbage′′\Rbagℏf⇒[AE]f and derAE:[AEWW]\Lbage′\Rbagℏf⇒[AE]f are the same as the usual dereliction derA:[AW]\Lbage′\Rbagℏf⇒[AE]f up to inner tags.
Given input strategies σ1,σ2:T⊸A and β:T⊸2, the composition caseA∘⟨⟨σ1,σ2⟩,β⟩† is σ1 (resp. σ2) if β is {ϵ,[q^E].[ttE]} (resp. {ϵ,[q^E].[ffE]}).
We give an st-algorithm A(caseA) that realizes caseA whose states and query function are similar to those of A(cpA), and for all m∈SA(caseA) the instruction strategy A(caseA)mⓈ is as follows (again, we skip formally writing down the table of A(caseA)m), where we write AA2&2 for A&A&2⇒A:
[TABLE]
where aE∈π1(MA⊸AInit), which can be recognized as it has no justifier.
[TABLE]
[TABLE]
[TABLE]
where aE∈π1(MA⊸AInit).
[TABLE]
where aE∈MA⊸AInit. Note that the iteration of (q^AA2&2)2.(aE)2 is to distinguish this case from other cases.
This remark is applied to the remaining diagrams below.
[TABLE]
[TABLE]
[TABLE]
where aE∈π1(MA⊸AInit).
Clearly, st(A(caseA))=caseA, and so caseA is viable.
And again, it is easy to see that A(caseA) is standard.
Example 77**.**
Consider the ifzero strategyzero?:[NW]\Lbage\Rbagℏ⇒[2E] defined by zero?=df.Pref({[q^E][q^W]\Lbag\Rbagℏ[noW]\Lbag\Rbagℏ[ttE],[q^E][q^W]\Lbag\Rbagℏ[yesW]\Lbag\Rbagℏ[ffE]})Even.
It outputs tt (resp. ff) if the input is 0 (resp. n+1 for some n∈N).
Let us give an st-algorithm A(zero?) that realizes zero? as follows.
Define \mathcal{Q}_{\mathcal{A}(\mathit{zero?})}(m)\stackrel{{\scriptstyle\mathrm{df.}}}{{=}}\begin{cases}\top&\text{if m=\hat{q}_{\mathscr{E}};}\\
\bot&\text{otherwise}\end{cases}, SA(zero?)=df.{q^E}, ∣A(zero?)q^E∣=df.3, ∥A(zero?)q^E∥=df.0, and the instruction strategy A(zero?)q^EⓈ is as depicted in the following diagrams (again, we omit the formal description of A(zero?)q^E as it should be clear at this point):
[TABLE]
[TABLE]
[TABLE]
[TABLE]
We clearly have st(A(zero?))=zero?, and A(zero?) is standard.
Example 78**.**
Consider the fixed-point strategyfixA:([AWW]\Lbage′\Rbagℏ\Lbage\Rbagℏf⇒[AEW]\Lbage′\Rbagℏf)⇒[AE]f for each normalized game A [AJM00, HO00, McC98].
We already described fixA informally in Example 73; here we give a more detailed account, but again, it should suffice to just give diagrams for A(fixA)mⓈ (where m∈SfixA):
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
[TABLE]
where (⟨)i@d (resp. (⟩)i@d) in the diagrams indicates that (⟨)i (resp. (⟩)i) is of depth d.
We have omitted the iteration of (q^A⇒A⇒)[2].(aEW)[2](q^A⇒A⇒)[0].(aWW′)[0] and (q^A⇒A⇒)[2].(aWW)[2] respectively in the last two diagrams for the lack of space. Also, the vertical dots abbreviate ‘copy-cat’ between (_)[3]- and (_)[2]-moves.
With m-views, there is clearly a finite table A(fixA)m that implements the instruction strategy A(fixA)mⓈ.
It is then not hard to see that st(A(fixA))=fixA holds, showing that fixA is viable.
Also, it is easy to see that A(fixA) is standard.
3.3 Turing completeness
In the last two sections, we have seen through examples that each ‘atomic’ strategy definable in PCF [AM99a] is viable, and it is realized by a standard st-algorithm.
In addition, Theorem 74 shows that constructions on strategies preserve this property.
From this fact, our main theorem immediately follows:
Theorem 79** (Main theorem).**
Every normalized strategy σ:Sσ definable in PCF has a viable strategy ϕσ:Dσ that satisfies σ=Hω(ϕσ):Hω(Dσ)\trianglelefteqslantSσ.
Proof.
First, see [AM99a] for normalized strategies definable in the language PCF.
We enumerate these normalized strategies by the following construction of a set PCF (which also contains strategies not definable in PCF):
(σ:Sσ)∈PCF if σ:Sσ is ‘atomic’, i.e., derA:A⇒A, zeroA:A⇒N, succ:N⇒N, pred:N⇒N, zero?:N⇒2, caseN:A⇒A⇒2⇒A or fixA:(A⇒A)⇒A, where A is a normalized game generated from N by & and ⇒ (n.b. the construction of A is ‘orthogonal’ to that of σ:Sσ);
2. 2.
(Λ(σ):A⇒(B⇒C))∈PCF if σ∈PCF and Sσ=A&B⇒C for some normalized games A, B and C;
3. 3.
(⟨φ,ψ⟩:C⇒A&B)∈PCF if φ,ψ∈PCF, Sφ=C⇒A and Sψ=C⇒B for some normalized games A, B and C;
4. 4.
(ι†;κ:A⇒C)∈PCF if ι,κ∈PCF, Sι=A⇒B and Sκ=B⇒C for some normalized games A, B and C
where since projections and evaluation are derelictions up to inner tags, we count them as ‘atomic’ ones as well.
Note that the strategy n:T⇒N (i.e., the one defined below Example 22) may be obtained by zero†;nsucc†;succ†;⋯;succ for each n∈N, which interprets numerals.
We assign a strategy ϕσ to each σ∈PCF along with the construction: 1. Dσ=df.Sσ and ϕσ=df.σ if σ is ‘atomic’; 2. DΛ(σ)=df.Λ(Dσ) and ϕΛ(σ)=df.Λ(ϕσ); 3. D⟨φ,ψ⟩=df.⟨Dφ,Dψ⟩ and ϕ⟨φ,ψ⟩=df.⟨ϕφ,ϕψ⟩; 4. Dι†;κ=df.D醇Dκ and ϕι†;κ=df.ϕ醇ϕκ.
We have shown in the previous sections that ‘atomic’ strategies are all viable, realized by standard st-algorithms.
Moreover, the operations Λ, ⟨_,_⟩ and (_)†‡(_) on strategies have been shown to preserve viability of strategies and standardness of the underlying st-algorithms in Theorem 74.
Therefore, we may conclude that ϕσ is viable (and realized by a standard st-algorithm) for each σ∈PCF.
It remains to show Hω(ϕσ)=σ and Hω(Dσ)\trianglelefteqslantSσ for all σ∈PCF; we show it by induction on the construction of σ:
Hω(ϕσ)=Hω(σ)=σ and Hω(Dσ)=Hω(Sσ)=Sσ if σ is ‘atomic’ since in this case σ and Sσ are both normalized;
2. 2.
Hω(ϕΛ(σ))=Hω(Λ(ϕσ))=Λ(Hω(ϕσ))=Λ(σ) and Hω(DΛ(σ))=Hω(Λ(Dσ))\trianglelefteqslantΛ(Hω(Dσ))\trianglelefteqslantΛ(Sσ) by the induction hypothesis, Theorem 40 and Lemmata 41 and 62;
3. 3.
Hω(ϕ⟨φ,ψ⟩)=Hω(⟨ϕφ,ϕψ⟩)=⟨Hω(ϕφ),Hω(ϕψ)⟩=⟨φ,ψ⟩ and Hω(D⟨φ,ψ⟩)=Hω(⟨Dφ,Dψ⟩)\trianglelefteqslant⟨Hω(Dφ),Hω(Dψ)⟩\trianglelefteqslant⟨Sφ,Sψ⟩=S⟨φ,ψ⟩ by the induction hypothesis, Theorem 40 and Lemmata 41 and 62;
4. 4.
Hω(ϕι†;κ)=Hω(ϕ醇ϕκ)=Hω(ϕι)†;Hω(ϕκ)=ι†;κ and Hω(Dι†;κ)=Hω(D醇Dκ)=H1(Hω(Dι†)‡Hω(Dκ))\trianglelefteqslantH1(S醇Sκ)\trianglelefteqslantA⇒C=Sι†;κ by the induction hypothesis, Theorem 40 and Lemmata 41 and 62
which completes the proof.
∎
Since PCF is Turing complete [Gun92, LN15], this result particularly implies:
Corollary 80** (Turing completeness).**
Every partial recursive function f:Nk⇀N, where k∈N, has a viable strategy ϕf:Df such that Hω(Df)\trianglelefteqslantNk⇒N and Hω(⟨n1,n2,…,nk⟩†‡ϕf)≃f(n1,n2,…,nk) for all (n1,n2,…,nk)∈Nk, where the strategy n:T⇒N for each n∈N is the one below Example 22 up to tags.181818Recall that ⟨_,_⟩, (_)† and ‡ are pairing, promotion and concatenation of strategies defined in Section 2.3.2.
Proof.
Let x1:N,x2:N,…,xk:N⊢F:N be a term of PCF that implements a given partial recursive function f:Nk⇀N, i.e., F[n1/x1,n2/x2,…,nk/xk] evaluates to f(n1,n2,…,nk) if f(n1,n2,…,nk) is defined and diverges otherwise, for all ni∈N (i=1,2,…,k), where n:N is the nth-numeral, and F[n1/x1,n2/x2,…,nk/xk] is the result of substituting ni for xi in F for i=1,2,…,k (see, e.g., [Gun92, LN15] for how to construct F from f).
Then, there exists a normalized strategy σf:Nk⇒N in PCF that interprets F in the game semantics of PCF in [AM99a].
By Theorem 79, there exists a viable strategy ϕf:Df such that Hω(ϕf)=σf and Hω(Df)\trianglelefteqslantNk⇒N.
Hence, Hω(⟨n1,n2,…,nk⟩†‡ϕf)=Hω(⟨n1,n2,…,nk⟩†);Hω(ϕf)=⟨n1,n2,…,nk⟩†;σf≃f(n1,n2,…,nk).
∎
Remark*.*
Crucially, there is clearly a partial recursive function f:Nk⇀N such that σf is not viable (but ϕf is viable) by the finitary nature of tables for st-algorithms.
As our game-semantic model of computation is Turing complete, some of the well-known theorems in computability theory [Cut80, RR67] are immediately generalized (in the sense that they are not restricted to computation on natural numbers):
Corollary 81** (Generalized smn-theorem).**
If strategies σi:T⇒Ai, i=1,2,…,n, and ϕ:D with Hω(D)\trianglelefteqslantA1&A2&…&An&B1&B2&…&Bm⇒C are realized by standard st-algorithms, then we may compute a standard st-algorithm that realizes a viable strategy ϕσ1,σ2,…,σn:DA1,A2,…,An such that:
⟨{ϵ},τ1,τ2,…,τm⟩†‡ϕσ1,σ2,…,σn≃⟨σ1,σ2,…,σn,τ1,τ2,…,τm⟩†‡ϕ* for any strategies τj:T⇒Bj, j=1,2,…,m.*
Proof.
We define ϕσ1,σ2,…,σn=df.mΛ⊝(⋯Λ⊝(⟨σ1,σ2,…,σn⟩†‡mΛ(⋯Λ(ϕ)⋯))⋯), where the proof of Theorem 74 describes how to ‘effectively’ obtain a standard st-algorithm that realizes ϕσ1,σ2,…,σn in an informal sense191919It is interesting future work to formalize this informal ‘effective computability’ by certain viable strategies.. Note that Corollary 80 implies that it is in fact a generalization of the conventional smn-theorem [Cut80].
∎
Corollary 82** (Generalized FRT).**
Given a viable strategy φ:D such that Hω(D)\trianglelefteqslantT⇒(A⇒A) realized by a standard st-algorithm, there exists another viable strategy σφ:Dφ with Hω(Dφ)\trianglelefteqslantT⇒A realized by a standard st-algorithm such that Hω(σφ†‡φ)=Hω(σφ):T⇒A.
Proof.
Just define σφ=df.φ†‡fixA.
∎
Finally, let us show that the converse of the main theorem also holds for classical computation because it would then give further naturality and/or reasonability of our definition of ‘effective computability’:
Theorem 83** (Conservativeness).**
Any viable strategy σ:G with Hω(G)\trianglelefteqslantNk⇒N, where k∈N, can be simulated by a partial recursive function fσ:N⇀N in the sense that Hω(⟨n1,n2,…,nk⟩†‡σ)≃fσ(n1,n2,…,nk) for all n1,n2,…,nk∈N.
Proof sketch.
This theorem is not as surprising as Theorem 79 for one may just employ Church’s thesis [Cut80].
Nevertheless, let us give a proof sketch for the theorem, by which an ardent reader can construct a detailed proof if she or he wishes to.
The idea is to simulate a given viable strategy σ:G by a 5-tape TM M by writing down an input on the first tape, the entire history of previous occurrences of moves, i.e., each position during a play, on the second tape, and the last three moves in each P-view as well as the next P-move on the third tape, where the fourth and fifth tapes are used for auxiliary computations (specified below).
Let us first specify the ‘format’ of the first and second tapes.
On each of these tapes, moves are separated by an occurrence of a distinguished symbol \mathsf{\},andeachmove[m]{e{1}e_{2}\dots e_{k}}togetherwiththe∗identifier∗j\in\mathbb{N}$ of its justifier defined below is written as the sequence
where there are j-many (′)’s (which represents j) between the left occurrence of \mathsf{\}andtheoccurrenceof\mathsf{m}.Wedefinethe∗∗identifier∗∗ofeachoccurrenceofamove[n]{f{1}f_{2}\dots f_{l}}onthetapetobethenumberi\in\mathbb{N}suchthat\mathsf{n}iswrittenonthei^{\textit{th}}−cellofthetape,wherenotethati\geqslant 1.Then,thenumberjof(\prime)’sdisplayedaboveisdefinedtobetheidentifierofthejustifierof[m]{e{1}e_{2}\dots e_{k}}ifitexists,and[math]if[m]{e{1}e_{2}\dots e_{k}}isinitial.Inthismanner,weencodepointersonthetape.202020Notethatpointersininstructiongamesarerathertrivial,andthusweomitthem.Wealsoassumewithoutlossofgeneralitythatthesymbol\mathsf{m}containsinformationfortheI/E−parityofeachmove[m]{e{1}e_{2}\dots e_{k}};anobvious(thoughnotcanonical)waytoachieveitistousetwodifferentfontsfor\mathsf{m}$.
On the other hand, the last three moves in the P-view of the current odd-length position (in the ‘format’ described above but without identifiers), their identifiers and m-views are written respectively on the third, fourth and fifth tapes, where each occurrence of a move, an identifier or an m-view is separated again by \mathsf{\}$.
Next, note that computation of the next move is trivial if it is an O-move because external O-moves in the output N are all obvious questions, external O-moves in the input N are already given as an input on the first tape, and internal O-moves are just ‘dummies’ of internal P-moves by the axiom DP2 (Definition 17).
Note also that M may recognize the O/P-parity of the next move by its state (and the I/E-parity by the symbolic information on the tape assumed above).
Hence, it suffices to focus on computation of the next P-move; M computes it as follows:
Copy the last occurrence [m1]e(1) of the current P-view on the second tape onto the initial cells of the third tape, compute its identifier and m-view in the obvious manner, and write them on the fourth and fifth tapes, respectively;
2. 2.
Locate the second last occurrence [m2]e(2) of the current P-view on the second tape by the identifier associated to the occurrence [m1]e(1), and then execute the same computation as the one on [m1]e(1), where the new content prefixed with \mathsf{\}$ on each tape is just concatenated to the existing one;
3. 3.
Similarly, locate the third last occurrence [m3]e(3) of the current P-view on the second tape (which is easy as it locates next to [m2]e(2)), and execute the same computation on it (so that the third, fourth and fifth tapes contain all information of the last three moves in the P-view);
4. 4.
With the current contents on the third, fourth and fifth tapes, compute the next P-move [m]e and the identifier of its justifier, write them on the second tape, and erase all contents on the third, fourth and fifth tapes.
Note that M is clearly able to execute the last step ([m3]e(3),[m2]e(2),[m1]e(1))↦[m]e by basically simulating the computation of an instruction strategy for σ, completing the proof.
∎
Remark*.*
Theorem 83 does not hold for higher-order computation because TMs cannot take additional inputs from O during the course of computation.
Of course, one may consider TMs that interact with O, like the model of computation employed in computability logic, but it is no longer TMs in the usual sense.
As an immediate corollary, we have:
Corollary 84** (Universality).**
Let A be a type of PCF, and A be the game that interprets A (as defined in [YA16]).
Then, any viable strategy α on A is the denotation a of a term a of PCF (as defined in [YA16]) up to internal moves, i.e., Hω(α)=Hω(a).
Proof.
First, recall that a strategy σ:G is total if s∈σ∧s.o∈PGOdd⇒∃p∈MG.s.o.p∈σ [A*+*97].
Next, let us identify the total strategy n:N with n:N for each n∈N, and any non-total strategy on N with ⊥=df.{ϵ}:N; in this way, the normalized one Hω(α):Hω(A) for each viable strategy α:A such that A is the dynamic game semantics of a type A of PCF [YA16] may be regarded as a static strategy in the conventional game semantics of PCF [McC98].
Then, by the proof of Theorem 83, Hω(α):Hω(A) is recursive, i.e., computable by a TM, and thus it is the conventional game semantics of a term a of PCF by the univarsality theorem of the conventional game semantics of PCF [AJM00, HO00].
Therefore, we may conclude that α coincides with the dynamic game semantics a of a up to internal moves, i.e., Hω(α)=Hω(a), completing the proof.
∎
Remark*.*
Our universality theorem (Corollary 84) holds only up to internal moves because (dynamic) strategies may compute internal moves in such a way that does not correspond to computation of PCF.
Certainly, it would be interesting as future work to refine this result so that it holds on the nose.
4 Conclusion and future work
We have given a novel notion of ‘effective computability’ in game semantics, namely viable strategies.
Due to its intrinsic, non-inductive and non-axiomatic natures, it can be seen as a fundamental investigation of ‘effective’ computation beyond classical one, where note that viability of strategies makes sense universally, i.e., regardless of the underlying games (e.g., games do not have to correspond to types of PCF).
Furthermore, our game-semantic model of computation formulates both ‘high-level’ and ‘low-level’ computational processes, and defines ‘computability’ of the former in terms of the latter, which sheds new light on the very notion of computation.
For instance, strategies n:N may be seen as the definition of natural numbers, and thus a viable strategy of the form ϕ:Nk⇒N can be regarded as ‘high-level’ computation on natural numbers, not on their representations, and (the table of) an st-algorithm that realizes ϕ can be seen as its symbolic implementation.
There are various directions for further work. First, we need to analyze the exact computational power of viable strategies, in comparison with other known notion of higher-order computability [LN15].
Also, as an application, the present framework may give an accurate measure for computational complexity [Koz06], where note that the work on dynamic games and strategies [YA16] has already given such a measure via internal moves, but the present work may refine it further since two single steps in a game G may take different numbers of steps in the instruction game G(MG)3⇒G(MG).
Moreover, it is of theoretical interest to see which theorems in computability theory can be generalized by the present framework in addition to the smn- and the first recursion theorems.
However, the most imminent future work is perhaps, by exploiting the flexibility of game semantics, to enlarge the scope of the present work (i.e., not only the language PCF) in order to establish a computational model of various (constructive) logics and programming languages.
We are particularly interested in how to apply our approach to non-innocent strategies.
Finally, let us propose two open questions.
Since the definition of viable strategies is somewhat reflexive (as it is via strategies), we may naturally consider strategies that can be realized by a viable strategy.
Let us define such strategies to be 2-viable.
More generally, rephrasing viability as 1-viability, we define a strategy to be (n+1)-viable if it can be realized by an n-viable strategy for each n∈N.
Clearly, any n-viable strategy is ‘effective’ in an informal sense.
Then, the first questions is:
Is the class of all (n+1)-viable strategies strictly larger than that of all n-viable strategies for each n∈N?
This question seems highly interesting from a theoretical perspective.212121Note that this question would not have arised if we had not defined ‘effective computability’ solely in terms of games and strategies.
If the answer is positive, then there would be an infinite hierarchy of generalized viable strategies.
It is then natural to ask the following second question:
Does the hierarchy, if it exists, correspond to any known hierarchy (perhaps in computability theory or proof theory)?
We shall aim to answer these questions as future work as well.
Acknowledgements
The author acknowleges support from Funai Overseas Scholarship, and also he is grateful to Samson Abramsky and Robin Piedeleu for fruitful discussions.
Appendix A A Finite Table for Successor Strategy
The finite table for an st-algorithm A(succ) for the successor strategy succ:N⇒N is as follows:
[TABLE]
where xW∈{yesW,noW}.
Appendix B A Finite Table for Copy-Cat Strategy
The finite table for an st-algorithm A(cpA) for the copy-cat strategy cp:A⊸A is as follows:
[TABLE]
where a∈π1(MA), x,y∈π1(MG(T)).
Bibliography71
The reference list from the paper itself. Each links out to its DOI / PubMed record.
1[A + 97] Samson Abramsky et al. Semantics of Interaction: An Introduction to Game Semantics. Semantics and Logics of Computation, Publications of the Newton Institute , pages 1–31, 1997.
2[Abr 14] Samson Abramsky. Intensionality, Definability and Computation. In Johan van Benthem on Logic and Information Dynamics , pages 121–142. Springer, 2014.
3[AC 98] Roberto M Amadio and Pierre-Louis Curien. Domains and Lambda-calculi . Number 46. Cambridge University Press, 1998.
4[AJ 94] Samson Abramsky and Radha Jagadeesan. Games and Full Completeness for Multiplicative Linear Logic. The Journal of Symbolic Logic , 59(02):543–574, 1994.
5[AJM 00] Samson Abramsky, Radha Jagadeesan, and Pasquale Malacaria. Full Abstraction for PCF. Information and Computation , 163(2):409–470, 2000.
6[AJV 15] Samson Abramsky, Radha Jagadeesan, and Matthijs Vákár. Games for Dependent Types. In Automata, Languages, and Programming , pages 31–43. Springer, 2015.
7[AM 99a] Samson Abramsky and Guy Mc Cusker. Game Semantics. In Computational logic , pages 1–55. Springer, 1999.
8[AM 99b] Samson Abramsky and P-A Mellies. Concurrent games and full completeness. In Logic in Computer Science, 1999. Proceedings. 14th Symposium on , pages 431–442. IEEE, 1999.