Our games and strategies are essentially the ‘dynamic refinement’ of McCusker’s variant [6, 51],Footnote 9 which has been proposed under the name of dynamic games and strategies by the present author and Abramsky in [71] to capture dynamics (or rewriting) and intensionality (or algorithms) of computation by mathematical, particularly syntax-independent, concepts. As already explained, 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 ‘effective computability’ of strategies, and thus, we must show that manipulations of ‘tags’ are all ‘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 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 [71]); note that it is clearly ‘effective’ to just copy and repeat a move. Also, it conceptually makes sense as well: Intermediate occurrences of O-moves are just copies or 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 (Definition 8) and strengthening the axiom DP2 (Definition 18). 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 Sect. 2.1 as a preparation, we recall (the slightly modified) dynamic games and strategies in Sects. 2.2 and 2.3, respectively. To make this paper essentially self-contained, we shall explain motivations and intuitions behind the definitions.
On ‘tags’ for disjoint union of sets
Let us begin with fixing ‘tags’ for disjoint union of sets that can be ‘effectively’ manipulated. We first define outer tags (Definition 3) for exponential (Definition 33), 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 \(\Sigma = \{ \ell , \hbar \}\), where \(\ell \) and \(\hbar \) are arbitrarily fixed elements such that \(\ell \ne \hbar \).
Definition 2
(Decoding and encoding) The decoding function
\( de : \Sigma ^*\rightarrow \mathbb {N}^*\) and the encoding function
\( en : \mathbb {N}^*\rightarrow \Sigma ^*\) are defined, respectively, by:
$$\begin{aligned} de (\varvec{\gamma })&{\mathop {=}\limits ^{\mathrm {df. }}} (i_1, i_2, \dots , i_k) \\ en (j_1, j_2, \dots , j_l)&{\mathop {=}\limits ^{\mathrm {df. }}} \ell ^{j_1} \hbar \ \! \ell ^{j_2} \hbar \dots \ell ^{j_{l-1}} \hbar \ \! \ell ^{j_l} \end{aligned}$$
for all \(\varvec{\gamma } \in \Sigma ^*\) and \((j_1, j_2, \dots , j_l) \in \mathbb {N}^*\), where \(\varvec{\gamma } = \ell ^{i_1} \hbar \ \! \ell ^{i_2} \hbar \dots \ell ^{i_{k-1}} \hbar \ \! \ell ^{i_k}\).
Clearly, the functions \( de : \Sigma ^*\leftrightarrows \mathbb {N}^*: en \) are mutually inverses (n.b., they both map the empty sequence \(\varvec{\epsilon }\) to itself). In fact, each effective tag \(\varvec{\gamma } \in \Sigma ^*\) is intended to be a binary representation of the finite sequence \( de (\varvec{\gamma }) \in \mathbb {N}^*\) of natural numbers.
However, effective tags are not sufficient for our purpose: For nested exponentials occurring in promotion (Definition 57) and fixed-point strategies (Example 75), we need to ‘effectively’ associate a natural number to each pair of natural numbers in an ‘effectively’ invertible manner. Of course it is possible as there is a recursive bijection \(\mathbb {N} \times \mathbb {N} {\mathop {\rightarrow }\limits ^{\sim }} \mathbb {N}\) whose inverse is recursive too, which is an elementary fact in computability theory [16, 60], but we cannot rely on it for we are aiming at developing an autonomous foundation of ‘effective computability.’
On the other hand, such a 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
(Outer tags) An outer tag or an extended effective tags is an expression
, where
and
are arbitrarily fixed elements such that
and
, generated by the grammar \(\varvec{e} {\mathop {\equiv }\limits ^{\mathrm {df. }}} \varvec{\gamma } \mid \varvec{e}_1 \hbar \ \! \varvec{e}_2 \mid \)
, where \(\varvec{\gamma }\) ranges over effective tags.
Notation
Let \(\mathcal {T}\) denote the set of all outer tags.
Definition 4
(Extended decoding) The extended decoding function
\( ede : \mathcal {T} \rightarrow \mathbb {N}^*\) is recursively defined by:
where \(\wp : \mathbb {N}^*{\mathop {\rightarrow }\limits ^{\sim }} \mathbb {N}\) is any recursive bijection fixed throughout the present paper such that \(\wp (i_1, i_2, \dots , i_k) \ne \wp ( j_1, j_2, \dots , j_l)\) whenever \(k \ne l\) (see, e.g., [16]).
Of course, we lose the bijectivity between \(\Sigma ^*\) and \(\mathbb {N}^*\) for outer tags (e.g., if
, then \( ede (\ell ^{i}) = (i)\), but
), but in return, we may ‘effectively execute’ the bijection \(\wp : \mathbb {N}^*{\mathop {\rightarrow }\limits ^{\sim }} \mathbb {N}\) by just inserting the elements
and
.Footnote 10 We shall utilize outer tags for exponential !; see Definition 33.
On the other hand, for ‘tags’ on moves for other constructions on games, i.e., \((\_)^{[i]}\) in the introduction, let us employ just four distinguished elements:
Definition 5
(Inner tags) Let \(\mathscr {W}\), \(\mathscr {E}\), \(\mathscr {N}\) and \(\mathscr {S}\) be arbitrarily fixed, pairwise distinct elements. A finite sequence \(\varvec{s} \in \{ \mathscr {W}, \mathscr {E}, \mathscr {N}, \mathscr {S} \}^*\) is called an inner tag.
We shall focus on games whose moves are all tagged elements:
Definition 6
(Inner elements) An inner element is a finitely nested pair \(( \dots ((m, t_1), t_2), \dots , t_k)\), usually written \(m_{t_1 t_2 \dots t_k}\), such that m is a distinguished element, called the substance of \(m_{t_1 t_2 \dots t_k}\), and \(t_1 t_2 \dots t_k\) is an inner tag.
Definition 7
(Tagged elements) A tagged element is any pair \((m_{t_1 t_2 \dots t_k}, \varvec{e})\), usually written \([m_{t_1 t_2 \dots t_k}]_{\varvec{e}}\), of an inner element \(m_{t_1 t_2 \dots t_k}\) and an outer tag \(\varvec{e} \in \mathcal {T}\).
Convention
We often abbreviate an inner element \(m_{t_1 t_2 \dots t_k}\) as m if the inner tag \(t_1 t_2 \dots t_k\) is not very important.
Games
As already stated, our games are (slightly modified) dynamic games introduced in [71]. The main idea of dynamic games is to introduce, in McCusker’s games [6, 51], 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 [71], we restrict internal O-moves to dummies of internal P-moves (Definition 8) for the computability-theoretic motivation already mentioned at the beginning of Sect. 2.
We first review (the slightly modified) dynamic games in the present section; see [71] for the details, and [3, 6, 37] for a general introduction to game semantics.
Convention
To distinguish our ‘dynamic concepts’ from conventional ones [6, 51], we add the word static in front of the latter, e.g., static arenas, static games, etc.
Arenas and legal positions
Similarly to McCusker’s games, dynamic games are based on two preliminary concepts: (dynamic) arenas and legal positions. An arena defines the basic components of a game, which in turn induces its legal positions that specify the basic rules of the game. Let us begin with recalling these two concepts.
Definition 8
(Dynamic arenas [71]) A dynamic arena is a quadruple \(G = (M_G, \lambda _G, \vdash _G, \Delta _G)\), where:
-
\(M_G\) is a set of tagged elements, called moves, such that: (M) the set \(\pi _1(M_G)\) of all inner elements of G is finite;
-
\(\lambda _G\) is a function \(M_G \rightarrow \{ \mathsf {O}, \mathsf {P} \} \times \{ \mathsf {Q}, \mathsf {A} \} \times \mathbb {N}\), called the labeling function, where \(\mathsf {O}\), \(\mathsf {P}\), \(\mathsf {Q}\) and \(\mathsf {A}\) are arbitrarily fixed, pairwise distinct symbols, called the labels, that satisfies: (L)
\(\mu (G) {\mathop {=}\limits ^{\mathrm {df. }}} \mathsf {Sup}(\{ \lambda _G^{\mathbb {N}}(m) \mid m \in M_G \ \! \}) \in \mathbb {N}\);
-
\(\vdash _G\) is a subset of \((\{ \star \} \cup M_G) \times M_G\), where \(\star \) is an arbitrarily fixed symbol such that \(\star \not \in M_G\), called the enabling relation, that satisfies:
-
(E1) If \(\star \vdash _G m\), then \(\lambda _G(m) = (\mathsf {O}, \mathsf {Q}, 0)\), and \(n = \star \) whenever \(n \vdash _G m\);
-
(E2) If \(m \vdash _G n\) and \(\lambda _G^{\mathsf {QA}}(n) = \mathsf {A}\), then \(\lambda _G^{\mathsf {QA}}(m) = \mathsf {Q}\) and \(\lambda _G^{\mathbb {N}}(m) = \lambda _G^{\mathbb {N}}(n)\);
-
(E3) If \(m \vdash _G n\) and \(m \ne \star \), then \(\lambda _G^{\mathsf {OP}}(m) \ne \lambda _G^{\mathsf {OP}}(n)\);
-
(E4) If \(m \vdash _G n\), \(m \ne \star \) and \(\lambda _G^{\mathbb {N}}(m) \ne \lambda _G^{\mathbb {N}}(n)\), then \(\lambda _G^{\mathsf {OP}}(m) = \mathsf {O}\);
-
\(\Delta _G\) is a bijection \(M_G^{\mathsf {PInt}} {\mathop {\rightarrow }\limits ^{\sim }} M_G^{\mathsf {OInt}}\), called the dummy function, that satisfies: (D) there exists some finite partial function \(\delta _G\) on inner tags such that if \([m_{\varvec{t}}]_{\varvec{e}} \in M_G^{\mathsf {PInt}}\), \([n_{\varvec{u}}]_{\varvec{f}} \in M_G^{\mathsf {OInt}}\) and \(\Delta _G([m_{\varvec{t}}]_{\varvec{e}}) = [n_{\varvec{u}}]_{\varvec{f}}\), then \(m = n\), \(\varvec{e} = \varvec{f}\), \(\lambda _G^{\mathsf {QA}}([m_{\varvec{t}}]_{\varvec{e}}) = \lambda _G^{\mathsf {QA}}([n_{\varvec{u}}]_{\varvec{f}})\), \(\lambda _G^{\mathbb {N}}([m_{\varvec{t}}]_{\varvec{e}}) = \lambda _G^{\mathbb {N}}([n_{\varvec{u}}]_{\varvec{f}})\) and \(\varvec{u} = \delta _G(\varvec{t})\)
in which \(\lambda _G^{\mathsf {OP}} {\mathop {=}\limits ^{\mathrm {df. }}} \pi _1 \circ \lambda _G : M_G \rightarrow \{ \mathsf {O}, \mathsf {P} \}\), \(\lambda _G^{\mathsf {QA}} {\mathop {=}\limits ^{\mathrm {df. }}} \pi _2 \circ \lambda _G : M_G \rightarrow \{ \mathsf {Q}, \mathsf {A} \}\), \(\lambda _G^{\mathbb {N}} {\mathop {=}\limits ^{\mathrm {df. }}} \pi _3 \circ \lambda _G : M_G \rightarrow \mathbb {N}\), \(M_G^{\mathsf {PInt}} {\mathop {=}\limits ^{\mathrm {df. }}} \langle \lambda _G^{\mathsf {OP}}, \lambda _G^{\mathbb {N}} \rangle ^{-1}(\{ (\mathsf {P}, d) \mid d \geqslant 1 \ \! \})\) and \(M_G^{\mathsf {OInt}} {\mathop {=}\limits ^{\mathrm {df. }}} \langle \lambda _G^{\mathsf {OP}}, \lambda _G^{\mathbb {N}} \rangle ^{-1}(\{ (\mathsf {O}, d) \mid d \geqslant 1 \ \! \})\). A move \(m \in M_G\) is initial if \(\star \vdash _G m\), an O-move (resp. a P-move) if \(\lambda _G^{\mathsf {OP}}(m) = \mathsf {O}\) (resp. if \(\lambda _G^{\mathsf {OP}}(m) = \mathsf {P}\)), a question (resp. an answer) if \(\lambda _G^{\mathsf {QA}}(m) = \mathsf {Q}\) (resp. if \(\lambda _G^{\mathsf {QA}}(m) = \mathsf {A}\)), and internal or \(\varvec{\lambda _{{\varvec{G}}}^{\mathbb {N}}({{\varvec{m}}})}\)-internal (resp. external) if \(\lambda _G^{\mathbb {N}}(m) > 0\) (resp. if \(\lambda _G^{\mathbb {N}}(m) = 0\)). A finite sequence \(\varvec{s} \in M_G^*\) of moves is \({{{\varvec{d}}}}\)-complete if it ends with a move m such that \(\lambda _G^{\mathbb {N}}(m) = 0 \vee \lambda _G^{\mathbb {N}}(m) > d\), where \(d \in \mathbb {N} \cup \{ \omega \}\), and \(\omega \) is the least transfinite ordinal. For each \(m \in M_G^{\mathsf {PInt}}\), \(\Delta _G(m) \in M_G^{\mathsf {OInt}}\) is the dummy of m.
Notation
We write \(M_G^{\mathsf {Init}}\) (resp. \(M_G^{\mathsf {Int}}\), \(M_G^{\mathsf {Ext}}\)) for the set of all initial (resp. internal, external) moves of a dynamic arena G.
A dynamic arena is a static arena defined in [6], equipped with another labeling \(\lambda _G^{\mathbb {N}}\) 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 A 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 \vdash _A n\) (and \(\star \vdash _A m\) means that m can initiate a play). Its axioms are E1, E2 and E3 (excluding the conditions on \(\lambda _A^{\mathbb {N}}\)):
-
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 arenas G, the work [71] employs all natural numbers for \(\lambda _G^{\mathbb {N}}\), not only the internal/external (I/E)-parity, to define a step-by-step execution of the hiding operation
\(\mathcal {H}\): The operation \(\mathcal {H}\) deletes all internal moves m such that \(\lambda _G^{\mathbb {N}}(m)\), called the priority order of m (since it indicates the priority order of m with respect to the execution of \(\mathcal {H}\)), is 1 and decreases the priority orders of the remaining internal moves by 1.Footnote 11
In addition, unlike [71], we have introduced the additional structure of dummy functions for the computability-theoretic motivation mentioned at the beginning of Sect. 2. The idea is that each internal O-move \(m \in M_G^{\mathsf {OInt}}\) of a dynamic game G must be the dummy of a unique internal P-move \(m' \in M_G^{\mathsf {PInt}}\), i.e., \(m = \Delta _G(m')\), and m may occur in a position only right after an occurrence of \(m'\), which axiomatizes the phenomenon of intermediate occurrences of moves in the composition of \( succ \) and \( double \) without hiding described in the introduction. We shall formalize this restriction on occurrences of internal O-moves by the axiom DP2 in Definition 18.
Note that the additional axioms for dynamic areas are intuitively natural:
-
M requires the set \(\pi _1 (M_G)\) to be finite so that each move is distinguishable, which is not required in [71] yet necessary to define ‘effectivity’ in the present work;
-
L requires the least upper bound \(\mu (G)\) to be finite as it is conceptually natural and technically necessary for concatenation \(\ddagger \) of games (Definition 36);
-
E1 adds \(\lambda _G^{\mathbb {N}}(m) = 0\) for all \(m \in M_G^{\mathsf {Init}}\) 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 an output of the hiding operation may 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 \(\lambda _G^{\mathbb {N}}(m_1) = k_1 < k_2 = \lambda _G^{\mathbb {N}}(m_2)\), then after the \(k_1\)-many iteration of the hiding operation, \(m_1\) and \(m_2\) 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 \in M_G^{\mathsf {PInt}}\) and its dummy \(\Delta _G(p) \in M_G^{\mathsf {OInt}}\) may differ only in their inner tags since the latter is the dummy of the former (n.b., it reflects the informal example in the introduction), and \(\Delta _G(p)\) is ‘effectively’ obtainable from p by a finitary calculation \(\delta _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 18). Strictly speaking, however, we equip such sequences with an additional structure, called justifiers or pointers, to distinguish similar yet different computational processes (see, e.g., [6] for this point):
Definition 9
(Occurrences of moves) Given a finite sequence \(\varvec{s} \in M_G^*\) of moves of an arena G, an occurrence (of a move) in \(\varvec{s}\) is a pair \((\varvec{s}(i), i)\) such that \(i \in \{ 1, 2, \dots , |\varvec{s}| \}\). More specifically, we call the pair \((\varvec{s}(i), i)\) an initial occurrence (resp. a non-initial occurrence) in \(\varvec{s}\) if \(\star \vdash _G \varvec{s}(i)\) (resp. otherwise).
Remark
We have been so far casual about the distinction between moves and occurrences, but we shall be more precise from now on.
Definition 10
(J-sequences [6, 38]) A justified (j-) sequence of an arena G is a pair \(\varvec{s} = (\varvec{s}, \mathcal {J}_{\varvec{s}})\) of a finite sequence \(\varvec{s} \in M_G^*\) and a map \(\mathcal {J}_{\varvec{s}} : \{ 1, 2, \dots , |\varvec{s}| \} \rightarrow \{ 0, 1, 2, \dots , |\varvec{s}| \}\) such that for all \(i \in \{ 1, 2, \dots , |\varvec{s}| \}\)
\(\mathcal {J}_{\varvec{s}}(i) = 0\) if \(\star \vdash _G \varvec{s}(i)\), and \(0< \mathcal {J}_{\varvec{s}}(i) < i \wedge \varvec{s}({\mathcal {J}_{\varvec{s}}(i)}) \vdash _G \varvec{s}(i)\) otherwise. The justifier of each non-initial occurrence \((\varvec{s}(i), i)\) in \(\varvec{s}\) is the occurrence \((\varvec{s}({\mathcal {J}_{\varvec{s}}(i)}), \mathcal {J}_{\varvec{s}}(i))\) in \(\varvec{s}\). We say that \((\varvec{s}(i), i)\) is justified by \((\varvec{s}({\mathcal {J}_{\varvec{s}}(i)}), \mathcal {J}_{\varvec{s}}(i))\), or there is a (necessarily unique) pointer from the former to the latter.
Notation
We write \(\mathscr {J}_G\) for the set of all j-sequences of an arena G.
Convention
By abuse of notation, we usually keep the pointer structure \(\mathcal {J}_{\varvec{s}}\) of each j-sequence \(\varvec{s} = (\varvec{s}, \mathcal {J}_{\varvec{s}})\) implicit and often abbreviate occurrences \((\varvec{s}(i), i)\) in \(\varvec{s}\) as \(\varvec{s}(i)\). Thus, \(\varvec{s} = \varvec{t} \in \mathscr {J}_G\) means \(\varvec{s} = \varvec{t}\)
and
\(\mathcal {J}_{\varvec{s}} = \mathcal {J}_{\varvec{t}}\). Moreover, we usually write \(\mathcal {J}_{\varvec{s}}(\varvec{s}(i)) = \varvec{s}(j)\) for \(\mathcal {J}_{\varvec{s}}(i) = j\). This convention is mathematically imprecise, but it is very convenient in practice, and it does not bring any serious confusion (in fact, it has been standard in the literature of game semantics).
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 occurrences, a bounded number of necessary ones, as we shall see in Sect. 3.1.
Note that the first element m of each non-empty j-sequence \(m \varvec{s} \in \mathscr {J}_G\) must be initial; we particularly call m the opening occurrence of \(m \varvec{s}\). 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 12, 13 and 14):
Definition 11
(J-subsequences [71]) Given an arena G and a j-sequence \(\varvec{s} \in \mathscr {J}_G\), a j-subsequence of \(\varvec{s}\) is a j-sequence \(\varvec{t} \in \mathscr {J}_G\) such that \(\varvec{t}\) is a subsequence of \(\varvec{s}\), and \(\mathcal {J}_{\varvec{t}}(n) = m\) iff there are occurrences \(m_1, m_2, \dots , m_k\) (\(k \in \mathbb {N}\)) in \(\varvec{s}\) eliminated in \(\varvec{t}\) such that \(\mathcal {J}_{\varvec{s}}(n) = m_1 \wedge \mathcal {J}_{\varvec{s}}(m_1) = m_2 \dots \wedge \mathcal {J}_{\varvec{s}}(m_{k-1}) = m_k \wedge \mathcal {J}_{\varvec{s}}(m_{k}) = m\).
Definition 12
(External justifiers [71]) Let G be an arena, \(\varvec{s} \in \mathscr {J}_G\) and \(d \in \mathbb {N} \cup \{ \omega \}\). Each non-initial occurrence n in \(\varvec{s}\) has a unique sequence of justifiers \(m m_k \dots m_2 m_1 n\)
\((k \in \mathbb {N})\) such that \(\mathcal {J}_{\varvec{s}}(n) = m_1\), \(\mathcal {J}_{\varvec{s}}(m_1) = m_{2}\), ..., \(\mathcal {J}_{\varvec{s}}(m_{k-1}) = m_k\), \(\mathcal {J}_{\varvec{s}}(m_k) = m\), \(\lambda _G^{\mathbb {N}}(m) = 0 \vee \lambda _G^{\mathbb {N}}(m) > d\) and \(0 < \lambda _G^{\mathbb {N}}(m_i) \leqslant d\) for \(i = 1, 2, \dots , k\). The occurrence m is called the \({{{\varvec{d}}}}\)-external justifier of n in \(\varvec{s}\), and written \(\mathcal {J}_{\varvec{s}}^{\circleddash d}(n)\).
Note that d-external justifiers are a simple generalization of justifiers: 0-external justifiers coincide with justifiers. d-external justifiers are intended to be justifiers after the d-times iteration of the hiding operation \(\mathcal {H}\), as we shall see shortly.
Definition 13
(External j-subsequences [71]) Given an arena G, \(\varvec{s} \in \mathscr {J}_G\) and \(d \in \mathbb {N} \cup \{ \omega \}\), the \({{{\varvec{d}}}}\)-external justified (j-) subsequence
\(\mathcal {H}^d_G(\varvec{s})\) of \(\varvec{s}\) is obtained from \(\varvec{s}\) by deleting occurrences of internal moves m such that \(0 < \lambda _G^{\mathbb {N}}(m) \leqslant d\) and equipping the resulting subsequence of \(\varvec{s}\) with pointers \(\mathscr {J}_{\mathcal {H}_G^d(\varvec{s})} : n \mapsto \mathscr {J}_{\varvec{s}}^{\circleddash d}(n)\).
Remark
It should be clear how to reformulate Definitions 11, 12 and 13 more formally, following Definitions 9 and 10.
Definition 14
(External arenas [71]) Let G be an arena, and assume \(d \in \mathbb {N} \cup \{ \omega \}\). The \({{{\varvec{d}}}}\)-external arena
\(\mathcal {H}^d(G)\) of G is defined by:
-
\(M_{\mathcal {H}^d(G)} {\mathop {=}\limits ^{\mathrm {df. }}} \{ m \in M_G \mid \lambda _G^{\mathbb {N}}(m) = 0 \vee \lambda _G^{\mathbb {N}}(m) > d \ \! \}\);
-
\(\lambda _{\mathcal {H}^d(G)} {\mathop {=}\limits ^{\mathrm {df. }}} \lambda _G^{\circleddash d} \upharpoonright M_{\mathcal {H}^d(G)}\), where \(\lambda _G^{\circleddash d} {\mathop {=}\limits ^{\mathrm {df. }}} \langle \lambda _G^{\mathsf {OP}}, \lambda _G^{\mathsf {QA}}, m \mapsto \lambda _G^{\mathbb {N}} (m) \circleddash d \rangle \) and \(n \circleddash d {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} n - d &{}\text {if }n \geqslant d; \\ 0 &{}\text {otherwise} \end{array}\right. }\) for all \(n \in \mathbb {N}\);
-
\(m \vdash _{\mathcal {H}^d(G)} \! n {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} \exists k \in \mathbb {N}, m_1, m_2, \dots , m_{2k-1}, m_{2k} \in M_G {\setminus } M_{\mathcal {H}^d(G)} . \ \! m \vdash _G m_1 \wedge m_1 \vdash _G m_2 \dots \wedge m_{2k-1} \vdash _G m_{2k} \wedge m_{2k} \vdash _G n\) (\(\Leftrightarrow m \vdash _G n\) if \(k = 0\));
-
\(\Delta _{\mathcal {H}^d(G)} {\mathop {=}\limits ^{\mathrm {df. }}} \Delta _G \upharpoonright M_{\mathcal {H}^d(G)}\).
That is, \(\mathcal {H}^d(G)\) is obtained from G by deleting internal moves m such that \(0 < \lambda _G^{\mathbb {N}}(m) \leqslant d\), decreasing by d the priority orders of the remaining internal moves, ‘concatenating’ the enabling relation to form the ‘d-external’ one and taking the obvious restrictions of the labeling and the dummy functions.
Convention
Given \(d \in \mathbb {N} \cup \{ \omega \}\), we regard \(\mathcal {H}^d\) as an operation on arenas G, called the \({{{\varvec{d}}}}\)-hiding operation (on arenas), and \(\mathcal {H}_G^d\) as an operation on j-sequences of G, called the \({{{\varvec{d}}}}\)-hiding operation (on j-sequences).
Lemma 15
(Closure of arenas and j-sequences under hiding [71]) If G is an arena, then, for all \(d \in \mathbb {N} \cup \{ \omega \}\), so is \(\mathcal {H}^d(G)\), and \(\mathcal {H}_G^d(\varvec{s}) \in \mathscr {J}_{\mathcal {H}^d(G)}\) for all \(\varvec{s} \in \mathscr {J}_G\). Also, \(\underbrace{\mathcal {H}^1 \circ \mathcal {H}^1 \cdots \circ \mathcal {H}^1}_i(G) = \mathcal {H}^i (G)\) and \(\mathcal {H}^1_{\mathcal {H}^{i-1}(G)} \circ \mathcal {H}^1_{\mathcal {H}^{i-2}(G)} \cdots \circ \mathcal {H}^1_{\mathcal {H}^{1}(G)} \circ \mathcal {H}^1_{G}(\varvec{s}) = \mathcal {H}_G^i(\varvec{s})\) for any \(i \in \mathbb {N}\) (it means \(G = G\) and \(\varvec{s} = \varvec{s}\) if \(i = 0\)), arena G and \(\varvec{s} \in \mathscr {J}_G\).
Proof
We need to consider the additional structure of dummy functions; everything else has been proved in [71]. Let G be an arena, and \(d \in \mathbb {N} \cup \{ \omega \}\). For each \(p \in M_G^{\mathsf {PInt}}\), we clearly have \(p \in M_{\mathcal {H}^d(G)} \Leftrightarrow \Delta _G(p) \in M_{\mathcal {H}^d(G)}\) by the axiom D on \(\Delta _G\); thus, \(\Delta _{\mathcal {H}^d(G)}\) is a well-defined bijection \(M_{\mathcal {H}^d(G)}^{\mathsf {PInt}} {\mathop {\rightarrow }\limits ^{\sim }} M_{\mathcal {H}^d(G)}^{\mathsf {OInt}}\). Finally, the axiom D on \(\Delta _{\mathcal {H}^d(G)}\) clearly follows from that on \(\Delta _G\), completing the proof. \(\square \)
Convention
Thanks to Lemma 15, we henceforth regard the i-hiding operations \(\mathcal {H}^i\) and \(\mathcal {H}^i_G\) as the i-times iteration of the 1-hiding operations \(\mathcal {H}^1\) and \(\mathcal {H}^1_G\), respectively, for all \(i \in \mathbb {N}\). For this reason, we write \(\mathcal {H}\) and \(\mathcal {H}_G\) for \(\mathcal {H}^1\) and \(\mathcal {H}^1_G\), 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:
Definition 16
(Views [6, 38]) Given a j-sequence \(\varvec{s}\) of an arena G, the Player (P-) view
\(\lceil \varvec{s} \rceil _G\) and the Opponent (O-) view
\(\lfloor \varvec{s} \rfloor _G\) (we often omit the subscript G) are given by the following induction on \(|\varvec{s}|\):
-
\(\lceil \varvec{\epsilon } \rceil _G {\mathop {=}\limits ^{\mathrm {df. }}} \varvec{\epsilon }\);
-
\(\lceil \varvec{s} m \rceil _G {\mathop {=}\limits ^{\mathrm {df. }}} \lceil \varvec{s} \rceil _G . m\) if m is a P-move;
-
\(\lceil \varvec{s} m \rceil _G {\mathop {=}\limits ^{\mathrm {df. }}} m\) if m is initial;
-
\(\lceil \varvec{s} m \varvec{t} n \rceil _G {\mathop {=}\limits ^{\mathrm {df. }}} \lceil \varvec{s} \rceil _G . m n\) if n is an O-move with \(\mathcal {J}_{\varvec{s} m \varvec{t} n}(n) = m\);
-
\(\lfloor \varvec{\epsilon } \rfloor _G {\mathop {=}\limits ^{\mathrm {df. }}} \varvec{\epsilon }\);
-
\(\lfloor \varvec{s} m \rfloor _G {\mathop {=}\limits ^{\mathrm {df. }}} \lfloor \varvec{s} \rfloor _G . m\) if m is an O-move;
-
\(\lfloor \varvec{s} m \varvec{t} n \rfloor _G {\mathop {=}\limits ^{\mathrm {df. }}} \lfloor \varvec{s} \rfloor _G . m n\) if n is a P-move with \(\mathcal {J}_{\varvec{s} m \varvec{t} n}(n) = m\)
where the justifiers of the remaining non-initial occurrences in \(\lceil \varvec{s} \rceil \) (resp. \(\lfloor \varvec{s} \rfloor \)) are unchanged if they occur in \(\lceil \varvec{s} \rceil \) (resp. \(\lfloor \varvec{s} \rfloor \)), and undefined otherwise. A view is a P- or O-view.
The idea behind Definition 16 is as follows. For a j-sequence \(\varvec{t}m\) of an arena G such that m is a P-move (resp. an O-move), the P-view \(\lceil \varvec{t} \rceil \) (resp. the O-view \(\lfloor \varvec{t} \rfloor \)) is intended to be the currently ‘relevant part’ of \(\varvec{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 P-view (resp. O-view), which then recursively proceeds.
As explained in [6], strategies (Definition 42) that model computation without state refer only to P-views, not entire histories of previous occurrences, as inputs; they are called innocent strategies (Definition 46). 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 Sect. 3.1.
We are now ready to define:
Definition 17
(Dynamic legal positions [71]) A dynamic legal position of an arena G is a j-sequence \(\varvec{s} \in \mathscr {J}_G\) that satisfies:
-
(Alternation) If \(\varvec{s} = \varvec{t} m n \varvec{u}\), then \(\lambda _G^\mathsf {OP} (m) \ne \lambda _G^\mathsf {OP} (n)\);
-
(Generalized visibility) If \(\varvec{s} = \varvec{v} m \varvec{w}\) with m non-initial, and \(d \in \mathbb {N} \cup \{ \omega \}\) satisfy \(\lambda _G^{\mathbb {N}}(m) = 0 \vee \lambda _G^{\mathbb {N}}(m) > d\), then \(\mathcal {J}^{\circleddash d}_{\varvec{s}}(m)\) occurs in \(\lceil \mathcal {H}_G^d(\varvec{v}) \rceil _{\mathcal {H}^d(G)}\) if m is a P-move, and it occurs in \(\lfloor \mathcal {H}_G^d(\varvec{v}) \rfloor _{\mathcal {H}^d(G)}\) if m is an O-move;
-
(IE-switch) If \(\varvec{s} = \varvec{t} m n \varvec{u}\) with \(\lambda _G^{\mathbb {N}}(m) \ne \lambda _G^{\mathbb {N}}(n)\), then m is an O-move.
Notation
We write \(\mathscr {L}_G\) for the set of all dynamic legal positions of an arena G.
Recall that a static legal position defined in [6] is a j-sequence that satisfies alternation and visibility, i.e., generalized visibility only for \(d = 0\) [6, 38, 51], which is technically to guarantee that the P- and the O-views 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 occurrences.
Static legal positions specify the basic rules of a static game: Every (valid) position of the game must be a static legal position of the underlying arena [6]:
-
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 occurrence is performed for a specific previous occurrence (by justification);
-
The justifier of each non-initial occurrence in a position belongs to the ‘relevant part’ of the previous occurrences in the position (by visibility).
Similarly, dynamic legal positions are to specify the basic rules of a dynamic game (Definition 18). 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;
-
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 I/E-parity.
Note that a dynamic legal position in which no internal move occurs is equivalent to a static legal position.
Convention
Legal positions henceforth mean dynamic legal positions.
Games
We are now ready to recall dynamic games:
Definition 18
(Dynamic games [71]) A dynamic game is a quintuple \(G = (M_G, \lambda _G, \vdash _G, \Delta _G, P_G)\) such that the quadruple \((M_G, \lambda _G, \vdash _G, \Delta _G)\) is an arena, and \(P_G\) is a subset of \(\mathscr {L}_G\) whose elements are called (valid) positions of G that satisfies:
-
(P1)
\(P_G\) is non-empty and prefix-closed (i.e., \(\varvec{s}m \in P_G \Rightarrow \varvec{s} \in P_G\));
-
(DP2) If \(\varvec{s} = \varvec{t} . p . o' . \varvec{u} . p' . o\) (resp. \(\varvec{s} = \varvec{t} . o' . \varvec{u} . p' . o\)), where o is an internal O-move, and \(o'\) is an internal (resp. external) O-move such that \(o' = \mathcal {J}_{\varvec{s}}(p')\), then \(o = \Delta _G(p')\) and \(\mathcal {J}_{\varvec{s}}(o) = p\) (resp. \(\mathcal {J}_{\varvec{s}}(o) = p'\)).
A play of G is a (finitely or infinitely) increasing (with respect to \(\preceq \)) sequence \((\varvec{\epsilon }, m_1, m_1m_2, \dots )\) of positions of G.
Remark
In [71], each dynamic game G is equipped with an equivalence relation \(\simeq _G\) on its positions in order to ignore permutations of ‘tags’ for exponential ! as in [7] and Section 3.6 of [51]. Naturally, dynamic strategies \(\sigma : G\) are identified up to \(\simeq _G\), i.e., the equivalence class \([\sigma ]\) of \(\sigma \) with respect to \(\simeq _G\) is a morphism in the bicategory of dynamic games and strategies [71], which matches the syntactic equality on terms. However, our notion of ‘effective computability’ or viability (Definition 70) 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 \(\simeq _G\)) and equivalence classes \([\sigma ]\) of dynamic strategies \(\sigma : G\) as in [71]: We may simply define \([\sigma ]\) to be viable if there is some viable representative \(\tau \in [\sigma ]\).
Thus, dynamic games are static games defined in [6, 51] 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 position or ‘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 for 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 act 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 [71] for the details).
Remark
The axiom DP2 defined in [71] 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 work. 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 trivial.
Convention
Henceforth, games refer to dynamic games by default.
Definition 19
(Subgames [71]) A subgame of a game G is a game H that satisfies \(M_H \subseteq M_G\), \(\lambda _H = \lambda _G \upharpoonright M_H\), \(\vdash _H \ \subseteq \ \vdash _G \cap \ (\{ \star \} \cup M_H) \times M_H\), \(\Delta _H = \Delta _G \upharpoonright M_H\), \(P_H \subseteq P_G\) and \(\mu (H) = \mu (G)\). In this case, we write
.
Example 20
The terminal game
T is defined by \(T {\mathop {=}\limits ^{\mathrm {df. }}} (\emptyset , \emptyset , \emptyset , \emptyset , \{ \varvec{\epsilon } \})\). Note that T is the simplest game as its position is only the empty sequence \(\varvec{\epsilon }\).
Example 21
The boolean game
\(\varvec{2}\) is defined by:
-
\(M_{\varvec{2}} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [\hat{q}], [ tt ], [ ff ] \}\);
-
\(\lambda _{\varvec{2}} : [\hat{q}] \mapsto (\mathsf {O}, \mathsf {Q}, 0), [ tt ] \mapsto (\mathsf {P}, \mathsf {A}, 0), [ ff ] \mapsto (\mathsf {P}, \mathsf {A}, 0)\);
-
\(\vdash _{\varvec{2}} {\mathop {=}\limits ^{\mathrm {df. }}} \{ (\star , [\hat{q}]), ([\hat{q}], [ tt ]), ([\hat{q}], [ ff ]) \}\);
-
\(\Delta _{\varvec{2}} {\mathop {=}\limits ^{\mathrm {df. }}} \emptyset \);
-
\(P_{\varvec{2}} {\mathop {=}\limits ^{\mathrm {df. }}} \mathsf {Pref}(\{ [\hat{q}] [ tt ], [\hat{q}] [ ff ] \})\), where \([ tt ]\) and \([ ff ]\) are both justified by \([\hat{q}]\).
There are just two maximal positions of \(\varvec{2}\): \([\hat{q}] [ tt ]\) and \([\hat{q}] [ ff ]\), where each answer (i.e., \([ tt ]\) or \([ ff ]\)) is performed for the initial question \([\hat{q}]\). The former (resp. the latter) is to represent the truth value true (resp. false).
Example 22
The natural number game
N is defined by:
-
\(M_{N} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [\hat{q}] \} \cup \{ [n] \mid n \in \mathbb {N} \ \! \}\);
-
\(\lambda _{N} : [\hat{q}] \mapsto (\mathsf {O}, \mathsf {Q}, 0), [n] \mapsto (\mathsf {P}, \mathsf {A}, 0)\);
-
\(\vdash _{N} {\mathop {=}\limits ^{\mathrm {df. }}} \{ (\star , [\hat{q}]) \} \cup \{ ([\hat{q}], [n]) \mid n \in \mathbb {N} \ \! \}\);
-
\(\Delta _{N} {\mathop {=}\limits ^{\mathrm {df. }}} \emptyset \);
-
\(P_{N} {\mathop {=}\limits ^{\mathrm {df. }}} \mathsf {Pref}(\{ [\hat{q}] [n] \mid n \in \mathbb {N} \ \! \})\), where [n] is justified by \([\hat{q}]\).
The position \([\hat{q}] [n]\) is to represent the natural number \(n \in \mathbb {N}\), where the answer [n] is performed for the question \([\hat{q}]\). This is the formal definition of N sketched in the introduction though we have slightly changed the notation for the moves.
However, although the game N is standard in the literature, the ‘content’ of N is almost the same as that of the set \(\mathbb {N}\) of all natural numbers except the trivial one-round communication between the participants. This point is unsatisfactory because:
-
1.
It is difficult to define an intrinsic, non-inductive, non-axiomatic notion of ‘effective computability’ of strategies on games generated from N via the construction \(\Rightarrow \) of function space (which will be given shortly) since there is no intensional or low-level structure in N (see, e.g., [4] for this point);
-
2.
The game N contributes almost nothing new to foundations of mathematics.
Motivated by these points, we adopt the following ‘lazy’ variant:
Example 23
The lazy natural number game
\(\mathcal {N}\) is defined by:
-
\(M_{\mathcal {N}} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [\hat{q}], [q], [ yes ], [ no ] \}\);
-
\(\lambda _{\mathcal {N}} : [\hat{q}] \mapsto (\mathsf {O}, \mathsf {Q}, 0), [q] \mapsto (\mathsf {O}, \mathsf {Q}, 0), [ yes ] \mapsto (\mathsf {P}, \mathsf {A}, 0), [ no ] \mapsto (\mathsf {P}, \mathsf {A}, 0)\);
-
\(\vdash _{\mathcal {N}} {\mathop {=}\limits ^{\mathrm {df. }}} \{ (\star , [\hat{q}]), ([\hat{q}], [ no ]), ([\hat{q}], [ yes ]), ([q], [ no ]), ([q], [ yes ]), ([ yes ], [q]) \}\);
-
\(\Delta _{\mathcal {N}} {\mathop {=}\limits ^{\mathrm {df. }}} \emptyset \);
-
\(P_{\mathcal {N}} {\mathop {=}\limits ^{\mathrm {df. }}} \mathsf {Pref}(\{ [\hat{q}] . ([ yes ] . [q])^n . [ no ] \mid n \in \mathbb {N} \ \! \})\), where each non-initial occurrence is justified by the last occurrence.
We need two questions \([\hat{q}]\) and [q], the initial and non-initial ones, respectively, for the axiom E1. Intuitively, a play of \(\mathcal {N}\) proceeds by repeating the following: O asks by a question \([\hat{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 \in \mathbb {N}\), the position \([\hat{q}] . ([ yes ] . [q])^n . [ no ]\) is to represent the number n, where each occurrence of an answer (i.e., \([ yes ]\) or \([ no ]\)) is performed for the last occurrence of a question (i.e., \([\hat{q}]\) or [q]).
The game \(\mathcal {N}\) defines natural numbers in an intuitively natural manner, namely as ‘counting processes,’ where our choice of notation for moves is inessential, i.e., \(\mathcal {N}\) is syntax-independent. Moreover, we may actually define it intrinsically, i.e., without recourse to the set \(\mathbb {N}\), by specifying its positions inductively: \([\hat{q}] [ no ] \in P_{\mathcal {N}} \wedge ([\hat{q}] . \varvec{s} . [ no ] \in P_{\mathcal {N}} \Rightarrow [\hat{q}] . \varvec{s} . [ yes ] [q] [ no ] \in P_{\mathcal {N}})\). Thus, we may define (rather than represent) natural numbers to be positions of \(\mathcal {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 on natural numbers in an intrinsic, non-inductive, non-axiomatic manner in Sect. 3.1.
Now, let us recall the hiding operation on games:
Definition 24
(Hiding on games [71]) Let \(d \in \mathbb {N} \cup \{ \omega \}\); the \({{{\varvec{d}}}}\)-hiding operation
\(\mathcal {H}^{{\varvec{d}}}\)
on games is defined as follows. Given a game G, the \({{{\varvec{d}}}}\)-external game
\(\mathcal {H}^d(G)\) of G consists of the d-external arena \((M_{\mathcal {H}^d(G)}, \lambda _{\mathcal {H}^d(G)}, \vdash _{\mathcal {H}^d(G)}, \Delta _{\mathcal {H}^d(G)})\) of the arena G, and the set \(P_{\mathcal {H}^d(G)} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \mathcal {H}^d_G(\varvec{s}) \mid \varvec{s} \in P_G \ \! \}\) of positions. A game H is normalized if \(\mathcal {H}^\omega (H) = H\), i.e., if \(M_H\) does not contain any internal moves.
Theorem 25
(Closure of games under hiding [71]) For any game G, \(\mathcal {H}^d(G)\) forms a well-defined game for all \(d \in \mathbb {N} \cup \{ \omega \}\). Moreover, if
, then
for all \(d \in \mathbb {N} \cup \{ \omega \}\). Furthermore, \(\underbrace{\mathcal {H}^1 \circ \mathcal {H}^1 \cdots \circ \mathcal {H}^1}_i(G) = \mathcal {H}^i(G)\) for all \(i \in \mathbb {N}\).
Proof
Based on Lemma 15; see [71]. \(\square \)
Convention
Thanks to Theorem 25, the i-hiding operation \(\mathcal {H}^i\) on games for each \(i \in \mathbb {N}\) can be thought of as the i-times iteration of the 1-hiding operation \(\mathcal {H}^1\), which we call the hiding operation (on games) and write \(\mathcal {H}\) for it.
Constructions on games
Now, let us recall the constructions on games given in [71] with ‘tags’ formalized by outer and inner tags defined in Sect. 2.1. A tag refers to an outer or inner 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’ informal and unspecified, before its formal definition. For this aim, we employ:
Notation
Let S and T be sets, and we write \(S + T\) for their disjoint union. Then, we write \(x \in S + T\) if \(x \in S\) or \(x \in T\), where we cannot have both \(x \in S\) and \(x \in T\) by the implicit ‘tag’ for the disjoint union \(S+T\). Also, given functions \(f : S \rightarrow U\) and \(g : T \rightarrow U\), we write [f, g] for the function \(S + T \rightarrow U\) that maps \(x \in S + T\) to \(f(x) \in U\) if \(x \in S\), and to \(g(x) \in U\) otherwise (n.b., it is generalized to more than two functions in the obvious manner). Moreover, given relations \(R_S \subseteq S \times S\) and \(R_T \subseteq T \times T\), we write \(R_S + R_T\) for the relation on \(S + T\) such that \((x, y) \in R_S + R_T {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} (x, y) \in R_S \vee (x, y) \in R_T\).
Let us begin with tensor (product)
\(\otimes \). As mentioned in the introduction, a position of the tensor \(A \otimes B\) of given games A and B consists of a position of A and a position of B played ‘in parallel without communication.’ More precisely, the tensor \(A \otimes B\) is given by:
-
\(M_{A \otimes B} {\mathop {=}\limits ^{\mathrm {df. }}} M_A + M_B\);
-
\(\lambda _{A \otimes B} {\mathop {=}\limits ^{\mathrm {df. }}} [\lambda _A, \lambda _B]\);
-
\(\vdash _{A \otimes B} \ {\mathop {=}\limits ^{\mathrm {df. }}} \ \vdash _A + \ \! \vdash _B\);
-
\(\Delta _{A \otimes B} {\mathop {=}\limits ^{\mathrm {df. }}} [\Delta _A, \Delta _B]\);
-
\(P_{A \otimes B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{A \otimes B} \mid \varvec{s} \upharpoonright A \in P_A, \varvec{s} \upharpoonright B \in P_B \ \! \},\) where \(\varvec{s} \upharpoonright A\) (resp. \(\varvec{s} \upharpoonright B\)) denotes the j-subsequence of \(\varvec{s}\) that consists of moves of A (resp. B). As an illustration, recall the example \(N \otimes N\) in the introduction, in which the ‘tags’ are informally written as \((\_)^{[i]}\) (\(i = 0, 1\)).
As explained in [3], it is easy to see that during a play of the tensor \(A \otimes 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 \((\_, \mathscr {W})\) and \((\_, \mathscr {E})\), respectively:
Definition 26
(Tensor of games [6]) The tensor (product)
\(A \otimes B\) of games A and B is defined by:
-
\(M_{A \otimes B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [(a, \mathscr {W})]_{\varvec{e}} \mid [a]_{\varvec{e}} \in M_A \ \! \} \cup \{ [(b, \mathscr {E})]_{\varvec{f}} \mid [b]_{\varvec{f}} \in M_B \ \! \}\);
-
\(\lambda _{A \otimes B} ([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \lambda _A([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {W}; \\ \lambda _B([m]_{\varvec{e}}) &{}\text {otherwise;} \end{array}\right. }\)
-
\(\star \vdash _{A \otimes B} [(m, X)]_{\varvec{e}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} (X = \mathscr {W} \wedge \star \vdash _A [m]_{\varvec{e}}) \vee (X = \mathscr {E} \wedge \star \vdash _B [m]_{\varvec{e}})\);
-
\([(m, X)]_{\varvec{e}} \vdash _{A \otimes B} [(n, Y)]_{\varvec{f}} {\mathop {\Leftrightarrow }\limits ^{{\mathrm {df. }}}} (X = \mathscr {W} = Y \wedge [m]_{\varvec{e}} \vdash _A [n]_{\varvec{f}}) \vee (X = \mathscr {E} = Y \wedge [m]_{\varvec{e}} \vdash _B [n]_{\varvec{f}})\);
-
\(\Delta _{A \otimes B} ([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{{\mathrm {df. }}}} \left\{ \begin{array}{lll} {[}(m', \mathscr {W})]_{\varvec{e}} &{}\text {if }X = \mathscr {W},\text { where } \Delta _A([m]_{\varvec{e}}) = [m']_{\varvec{e}}; \\ {[}(m'', \mathscr {E})]_{\varvec{e}} &{}\text {otherwise, where } \Delta _B([m]_{\varvec{e}}) = [m'']_{\varvec{e}}; \end{array}\right. \)
-
\(P_{A \otimes B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{A \otimes B} \mid \varvec{s} \upharpoonright \mathscr {W} \in P_A, \varvec{s} \upharpoonright \mathscr {E} \in P_B \ \! \}\), where \(\varvec{s} \upharpoonright X\) is the j-subsequence of \(\varvec{s}\) that consists of moves of the form \([(m, X)]_{\varvec{e}}\) yet changed into \([m]_{\varvec{e}}\) (\(X \in \{ \mathscr {W}, \mathscr {E} \}\)).
Example 27
Some typical plays of the tensor \(\mathcal {N} \otimes \mathcal {N}\) are as follows:
Next, the linear implication
\(A \multimap B\) is the space of linear functions from A to B in the sense of linear logic [27], i.e., they consume exactly one input in A to produce an output in B (n.b., strictly speaking, it is an affine implication as explained in the introduction). Usually, the linear implication \(A \multimap B\) is given by:
-
\(M_{A \multimap B} {\mathop {=}\limits ^{\mathrm {df. }}} M_{\mathcal {H}^\omega (A)} + M_B\);
-
\(\lambda _{A \multimap B} {\mathop {=}\limits ^{\mathrm {df. }}} [\overline{\lambda _{\mathcal {H}^\omega (A)}}, \lambda _B]\), where \(\overline{\lambda _{\mathcal {H}^\omega (A)}} {\mathop {=}\limits ^{\mathrm {df. }}} \langle \overline{\lambda _{\mathcal {H}^\omega (A)}^\textsf {OP}}, \lambda _{\mathcal {H}^\omega (A)}^\textsf {QA}, \lambda _{\mathcal {H}^\omega (A)}^\mathbb {N} \rangle \), and \(\overline{\lambda _{G}^\textsf {OP}} (m) {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \mathsf {P} \ &{} \text {if }\lambda _{G}^\textsf {OP} (m) = \textsf {O}; \\ \textsf {O} \ &{}\text {otherwise} \end{array}\right. }\) for any game G;
-
\(\star \vdash _{A \multimap B} m {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} \star \vdash _B m\);
-
\(m \vdash _{A \multimap B} n \ (m \ne \star ) {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} (m \vdash _{\mathcal {H}^\omega (A)} n) \vee (m \vdash _B n) \vee (\star \vdash _B m \wedge \star \vdash _{\mathcal {H}^\omega (A)} n)\);
-
\(\Delta _{A \multimap B} {\mathop {=}\limits ^{\mathrm {df. }}} [\emptyset , \Delta _B]\) (n.b., note that \(\Delta _{\mathcal {H}^\omega (A)} = \emptyset \));
-
\(P_{A \multimap B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{\mathcal {H}^\omega (A) \multimap B} \mid \varvec{s} \upharpoonright \mathcal {H}^\omega (A) \in P_{\mathcal {H}^\omega (A)}, \varvec{s} \upharpoonright B \in P_B \ \! \}\).
As an illustration, recall the example of \(N \multimap N\) in the introduction.
Note that the domain A must be normalized into \(\mathcal {H}^\omega (A)\) since otherwise the linear implication \(A \multimap B\) may not satisfy the axiom DP2. It conceptually makes sense too for the roles of P and O in A are exchanged, and thus P should not be able to ‘see’ internal moves of A. Note also that \(A \multimap B\) is almost \(A \otimes B\) if A is normalized except the switch of the roles in A; dually to \(A \otimes B\), only P can switch between A and B during a play of \(A \multimap B\) (see [3] for the proof). Surprisingly, this simple point changes \(A \otimes B\) into \(A \multimap B\).
Similarly to tensor, the formal definition of linear implication is as follows:
Definition 28
(Linear implication between games [6]) The linear implication
\(A \multimap B\) between games A and B is defined by:
-
\(M_{A \multimap B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [(a, \mathscr {W})]_{\varvec{e}} \mid [a]_{\varvec{e}} \in M_{\mathcal {H}^\omega (A)} \ \! \} \cup \{ [(b, \mathscr {E})]_{\varvec{f}} \mid [b]_{\varvec{f}} \in M_B \ \! \}\);
-
\(\lambda _{A \multimap B} ([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \overline{\lambda _{\mathcal {H}^\omega (A)}}([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {W}, \text { where } \overline{\lambda _{\mathcal {H}^\omega (A)}}\text { is defined above;} \\ \lambda _B([m]_{\varvec{e}}) &{}\text {otherwise;} \end{array}\right. }\)
-
\(\star \vdash _{A \multimap B} [(m, X)]_{\varvec{e}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} X = \mathscr {E} \wedge \star \vdash _B [m]_{\varvec{e}}\);
-
\([(m, X)]_{\varvec{e}} \vdash _{A \multimap B} [(n, Y)]_{\varvec{f}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \begin{aligned} &{}(X = \mathscr {W} = Y \wedge [m]_{\varvec{e}} \vdash _{\mathcal {H}^\omega (A)} [n]_{\varvec{f}}) \\ &{}\vee (X = \mathscr {E} = Y \wedge [m]_{\varvec{e}} \vdash _B [n]_{\varvec{f}}) \\ &{}\vee (X = \mathscr {E} \wedge Y = \mathscr {W} \wedge \star \vdash _B [m]_{\varvec{e}} \wedge \star \vdash _{\mathcal {H}^\omega (A)} [n]_{\varvec{f}}); \end{aligned} \end{array}\right. }\)
-
\(\Delta _{A \multimap B}([(b, \mathscr {E})]_{\varvec{f}}) {\mathop {=}\limits ^{\mathrm {df. }}} [(b', \mathscr {E})]_{\varvec{f}}\), where \(\Delta _B([b]_{\varvec{f}}) = [b']_{\varvec{f}}\);
-
\(P_{A \multimap B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{\mathcal {H}^\omega (A) \multimap B} \mid \varvec{s} \upharpoonright \mathscr {W} \in P_{\mathcal {H}^\omega (A)}, \varvec{s} \upharpoonright \mathscr {E} \in P_B \ \! \}\), where pointers in \(\varvec{s}\) from initial occurrences of A to those of B are deleted in \(\varvec{s} \upharpoonright \mathscr {W}\) and \(\varvec{s} \upharpoonright \mathscr {E}\).
Example 29
Any game B and the linear implication \(T \multimap B\) coincide up to tags. Also, some typical plays of the linear implication \(\varvec{2} \multimap \varvec{2}\) are as follows:
Note that the left diagram describes a strict linear function, i.e., a one that asks an input before producing an output, 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 B; it is given by:
-
\( M_{A \& B} {\mathop {=}\limits ^{\mathrm {df. }}} M_A + M_B\);
-
\( \lambda _{A \& B} {\mathop {=}\limits ^{\mathrm {df. }}} [\lambda _A, \lambda _B]\);
-
\( \vdash _{A \& B} \ {\mathop {=}\limits ^{\mathrm {df. }}} \ \vdash _A + \ \! \vdash _B\);
-
\( \Delta _{A \& B} {\mathop {=}\limits ^{\mathrm {df. }}} [\Delta _A, \Delta _B]\);
-
\( P_{A \& B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{A \& B} \mid (\varvec{s} \upharpoonright A \in P_A \wedge \varvec{s} \upharpoonright B = \varvec{\epsilon }) \vee (\varvec{s} \upharpoonright A = \varvec{\epsilon } \wedge \varvec{s} \upharpoonright B \in P_B) \ \! \}\).
Similarly to the case of tensor, we formalize product as follows:
Definition 30
(Product of games [6]) The product
\( A \& B\) of games A and B is given by:
-
\( M_{A \& B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [(a, \mathscr {W})]_{\varvec{e}} \mid [a]_{\varvec{e}} \in M_A \ \! \} \cup \{ [(b, \mathscr {E})]_{\varvec{f}} \mid [b]_{\varvec{f}} \in M_B \ \! \}\);
-
\( \lambda _{A \& B} ([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \lambda _A([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {W}; \\ \lambda _B([m]_{\varvec{e}}) &{}\text {otherwise;} \end{array}\right. }\)
-
\( \star \vdash _{A \& B} [(m, X)]_{\varvec{e}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} (X = \mathscr {W} \wedge \star \vdash _A [m]_{\varvec{e}}) \vee (X = \mathscr {E} \wedge \star \vdash _B [m]_{\varvec{e}})\);
-
\( [(m, X)]_{\varvec{e}} \vdash _{A \& B} [(n, Y)]_{\varvec{f}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} (X = \mathscr {W} = Y \wedge [m]_{\varvec{e}} \vdash _A [n]_{\varvec{f}}) \vee (X = \mathscr {E} = Y \wedge [m]_{\varvec{e}} \vdash _B [n]_{\varvec{f}})\);
-
\( \Delta _{A \& B} ([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{\mathrm {df. }}} \left\{ \begin{array}{ll} {[}(m',\mathscr {W})]_{\varvec{e}} &{}\text {if }X = \mathscr {W},\text { where } \Delta _A([m]_{\varvec{e}}) = [m']_{\varvec{e}}; \\ {[}(m'', \mathscr {E})]_{\varvec{e}} &{}\text {otherwise, where } \Delta _B([m]_{\varvec{e}}) = [m'']_{\varvec{e}}; \end{array}\right. \)
-
\( P_{A \& B} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{A \& B} \mid (\varvec{s} \upharpoonright \mathscr {W} \in P_A \wedge \varvec{s} \upharpoonright \mathscr {E} = \varvec{\epsilon }) \vee (\varvec{s} \upharpoonright \mathscr {W} = \varvec{\epsilon } \wedge \varvec{s} \upharpoonright \mathscr {E} \in P_B) \ \! \}\).
For the cartesian closed bicategory
\(\mathcal {DG}\) of dynamic games and strategies defined in [71], however, we have to generalize the construction \( C \multimap A \& B\) on normalized games A, B and C, where & precedes \(\multimap \), because we need to pair strategies \(\sigma : L\) and \(\tau : R\) such that
and
, and the ambient game of the pairing \(\langle \sigma , \tau \rangle \) would be such a generalization of \( C \multimap A \& B\).
For this point, [71] defines the pairing
\(\langle L, R \rangle \) of such games L and R by:
-
\(M_{\langle L, R \rangle } {\mathop {=}\limits ^{\mathrm {df. }}} M_C + (M_L {\setminus } M_C) + (M_R {\setminus } M_C)\);
-
\(\lambda _{\langle L, R \rangle } {\mathop {=}\limits ^{\mathrm {df. }}} [\overline{\lambda _C}, \lambda _L \downharpoonright M_C, \lambda _R \downharpoonright M_C]\);
-
\(m \vdash _{\langle L, R \rangle } n {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} m \vdash _L n \vee m \vdash _R n\);
-
\(\Delta _{\langle L, R \rangle } {\mathop {=}\limits ^{\mathrm {df. }}} [\Delta _L, \Delta _R]\);
-
\( P_{\langle L, R \rangle } {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{L \& R} \mid (\varvec{s} \upharpoonright L \in P_L \wedge \varvec{s} \upharpoonright B = \varvec{\epsilon }) \vee (\varvec{s} \upharpoonright A = \varvec{\epsilon } \wedge \varvec{s} \upharpoonright R \in P_R) \ \! \}\)
where given a function \(f : X \rightarrow Y\) and a subset \(Z \subseteq X\) we write \(f \downharpoonright Z : X {\setminus } Z \rightarrow Y\) for the restrictions of f to the subset \(X {\setminus } Z \subseteq X\).
Note that the pairing \(\langle L, R \rangle \) does not depend on the choice of the normalized games A, B and C such that
and
. Also, we have \( \langle C \multimap A, C \multimap B \rangle = C \multimap A \& B\); in particular, \(\langle T \multimap A, T \multimap B\rangle \) and \( A \& B\) coincide up to tags; pairing of games generalizes this phenomenon in the sense that
holds (see [71] for the proof), where the ‘tags’ for the disjoint union \(M_{\langle L, R \rangle } = M_C + (M_L {\setminus } M_C) + (M_R {\setminus } M_C)\) must be formulated in such a way that establishes the subgame relation
Let us now formalize ‘tags’ for the disjoint union \(M_{\langle L, R \rangle }\) by:
-
Adding no tags on external moves of the form \([(c, \mathscr {W})]_{\varvec{e}}\) of L or R, where \([c]_{\varvec{e}}\) must be a move of C by the definition of \(\multimap \) (Definition 28);
-
Changing external moves of the form \([(a, \mathscr {E})]_{\varvec{f}}\) of L, where \([a]_{\varvec{f}}\) must be a move of A by the definition of \(\multimap \), into \([((a, \mathscr {W}), \mathscr {E})]_{\varvec{f}}\);
-
Changing external moves of the form \([(b, \mathscr {E})]_{\varvec{g}}\) of R, where \([b]_{\varvec{g}}\) must be a move of B by the definition of \(\multimap \), into \([((b, \mathscr {E}), \mathscr {E})]_{\varvec{g}}\);
-
Changing internal moves \([l]_{\varvec{h}}\) of L into \([(l, \mathscr {S})]_{\varvec{h}}\);
-
Changing internal moves \([r]_{\varvec{k}}\) of R into \([(r, \mathscr {N})]_{\varvec{k}}\).
These tags are of course not canonical at all, but they would certainly achieve the required subgame relation
Then, we formalize the labeling function, the enabling relation and the dummy function of \(\langle L, R \rangle \) by the obvious pattern matching on inner tags; positions of \(\langle L, R \rangle \) are formalized in the obvious manner. However, the enabling relation is rather involved; thus, for convenience, we define the peeling
\( peel _{\langle L, R \rangle }(m) \in M_L \cup M_R\) of each move \(m \in M_{\langle L, R \rangle }\) such that changing the inner tag of \( peel _{\langle L, R \rangle }(m)\) as defined above results in m, and also the attribute
\( att _{\langle L, R \rangle }(m) \in \{ L, R, C \}\) of m by:
$$\begin{aligned} att _{\langle L, R \rangle }(m) {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} L &{}\text {if } peel _{\langle L, R \rangle }(m) \in M_L {\setminus } M_C; \\ R &{}\text {if } peel _{\langle L, R \rangle }(m) \in M_R {\setminus } M_C; \\ C &{}\text {otherwise (i.e., if } peel _{\langle L, R \rangle }(m) \in M_C). \end{array}\right. } \end{aligned}$$
The enabling relation \(m \vdash _{\langle L, R \rangle } n\) is then easily defined as the conjunction of:
-
\( att _{\langle L, R \rangle }(m) = att _{\langle L, R \rangle }(n) \vee att _{\langle L, R \rangle }(m) = C \vee att _{\langle L, R \rangle }(n) = C\);
-
\( peel _{\langle L, R \rangle }(m) \vdash _L peel _{\langle L, R \rangle }(n) \vee peel _{\langle L, R \rangle }(m) \vdash _R peel _{\langle L, R \rangle }(n)\).
Formally, we define pairing of games as follows:
Definition 31
(Pairing of games [71]) The pairing
\(\langle L, R \rangle \) of games L and R such that
and
for any normalized games A, B and C is given by:
-
\(\centerdot M_{\langle L, R \rangle } {\mathop {=}\limits ^{\mathrm {df. }}} \{ [(c, \mathscr {W})]_{\varvec{e}} \mid [(c, \mathscr {W})]_{\varvec{e}} \in M_L^{\mathsf {Ext}} \cup M_R^{\mathsf {Ext}}, [c]_{\varvec{e}} \in M_C \ \! \}\)
\( \cup \{ [((a, \mathscr {W}), \mathscr {E})]_{\varvec{f}} \mid [(a, \mathscr {E})]_{\varvec{f}} \in M_L^{\mathsf {Ext}}, [a]_{\varvec{f}} \in M_A \ \! \}\)
\(\cup \{ [((b, \mathscr {E}), \mathscr {E})]_{\varvec{g}} \mid [(b, \mathscr {E})]_{\varvec{g}} \in M_R^{\mathsf {Ext}}, [b]_{\varvec{g}} \in M_B \ \! \}\)
\(\cup \{ [(l, \mathscr {S})]_{\varvec{h}} \mid [l]_{\varvec{h}} \in M_L^{\mathsf {Int}} \} \cup \{ [(r, \mathscr {N})]_{\varvec{k}} \mid [r]_{\varvec{k}} \in M_R^{\mathsf {Int}} \ \! \};\)
-
\(\lambda _{\langle L, R \rangle } ([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \overline{\lambda _C} ([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {W}; \\ \lambda _A([a]_{\varvec{e}}) &{}\text {if }X = \mathscr {E},\text { and }m \text { is of the form } (a, \mathscr {W}); \\ \lambda _B([b]_{\varvec{e}}) &{}\text {if }X = \mathscr {E}, \text { and } m \text { is of the form }(b, \mathscr {E}); \\ \lambda _L([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {S}; \\ \lambda _R([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {N}; \end{array}\right. }\)
-
\(\star \vdash _{\langle L, R \rangle } [(m, X)]_{\varvec{e}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} X = \mathscr {E} \wedge (\exists [a]_{\varvec{e}} \in M_A^{\mathsf {Init}} . \ \! m = (a, \mathscr {W}) \vee \exists [b]_{\varvec{e}} \in M_B^{\mathsf {Init}} . \ \! m = (b, \mathscr {E}))\);
-
\([(m, X)]_{\varvec{e}} \vdash _{\langle L, R \rangle } [(n, Y)]_{\varvec{f}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} ( att _{\langle L, R \rangle }([(m, X)]_{\varvec{e}}) = att _{\langle L, R \rangle }([(n, Y)]_{\varvec{f}}) \vee att _{\langle L, R \rangle }([(m, X)]_{\varvec{e}}) = C \vee att _{\langle L, R \rangle }([(n, Y)]_{\varvec{f}}) = C) \wedge ( peel _{\langle L, R \rangle }([(m, X)]_{\varvec{e}}) \vdash _L peel _{\langle L, R \rangle }([(n, Y)]_{\varvec{f}}) \vee peel _{\langle L, R \rangle }([(m, X)]_{\varvec{e}}) \vdash _R peel _{\langle L, R \rangle }([(n, Y)]_{\varvec{f}}))\), where the map \( peel _{\langle L, R \rangle } : M_{\langle L, R \rangle } \rightarrow M_L \cup M_R\) is given by \([(c, \mathscr {W})]_{\varvec{e}} \mapsto [(c, \mathscr {W})]_{\varvec{e}}\), \([((a, \mathscr {W}), \mathscr {E})]_{\varvec{f}} \mapsto [(a, \mathscr {E})]_{\varvec{f}}\), \([((b, \mathscr {E}), \mathscr {E})]_{\varvec{g}} \mapsto [(b, \mathscr {E})]_{\varvec{g}}\), \([(l, \mathscr {S})]_{\varvec{h}} \mapsto [l]_{\varvec{h}}\), \([(r, \mathscr {N})]_{\varvec{k}} \mapsto [r]_{\varvec{k}}\), and the map \( att _{\langle L, R \rangle } : M_{\langle L, R \rangle } \rightarrow \{ L, R, C \}\) by \([(c, \mathscr {W})]_{\varvec{e}} \mapsto C\), \([((a, \mathscr {W}), \mathscr {E})]_{\varvec{f}} \mapsto L\), \([((b, \mathscr {E}), \mathscr {E})]_{\varvec{g}} \mapsto R\), \([(l, \mathscr {S})]_{\varvec{h}} \mapsto L\), \([(r, \mathscr {N})]_{\varvec{k}} \mapsto R\);
-
\(\Delta _{\langle L, R \rangle } ([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{\mathrm {df. }}} \left\{ \begin{array}{ll} {[}(l', \mathscr {S})]_{\varvec{e}} &{}\text {if }X = \mathscr {S}, \text { where } \Delta _L([l]_{\varvec{e}}) = [l']_{\varvec{e}}; \\ {[}(r', \mathscr {N})]_{\varvec{e}} &{}\text {if }X = \mathscr {N}, \text { where } \Delta _R([r]_{\varvec{e}}) = [r']_{\varvec{e}}; \end{array}\right. \)
-
\(P_{\langle L, R \rangle } {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{\langle L, R \rangle } \mid (\varvec{s} \upharpoonright L \in P_L \wedge \varvec{s} \upharpoonright B = \varvec{\epsilon }) \vee (\varvec{s} \upharpoonright R \in P_R \wedge \varvec{s} \upharpoonright A = \varvec{\epsilon }) \ \! \}\), where \(\varvec{s} \upharpoonright L\) (resp. \(\varvec{s} \upharpoonright R\)) is the j-subsequence of \(\varvec{s}\) that consists of moves x such that \( peel _{\langle L, R \rangle }(x) \in M_L\) (resp. \( peel _{\langle L, R \rangle }(x) \in M_R\)) yet changed into \( peel _{\langle L, R \rangle }(x)\), and \(\varvec{s} \upharpoonright B\) (resp. \(\varvec{s} \upharpoonright A\)) is the j-subsequence of \(\varvec{s}\) that consists of moves \([((b, \mathscr {E}), \mathscr {E})]_{\varvec{g}}\) with \([b]_{\varvec{g}} \in M_B\) (resp. \([((a, \mathscr {W}), \mathscr {E})]_{\varvec{f}}\) with \([a]_{\varvec{f}} \in M_A\)) yet changed into \([b]_{\varvec{g}}\) (resp. \([a]_{\varvec{f}}\)).
Example 32
Some typical plays of the pairing \(\langle \varvec{2} \multimap \varvec{2}, \varvec{2} \multimap \varvec{2} \rangle \) are as follows:
Next, let us recall exponential ! in the sense of linear logic, i.e., \(!A {\mathop {=}\limits ^{\mathrm {df. }}} A \otimes A \otimes \dots \) The exponential !A is usually given by:
-
\(M_{!A} {\mathop {=}\limits ^{\mathrm {df. }}} M_A \times \mathbb {N}\);
-
\(\lambda _{!A} : (a, i) \mapsto \lambda _A(a)\);
-
\(\star \vdash _{!A} (a, i) {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} \star \vdash _A a\);
-
\((a, i) \vdash _{!A} (a', j) {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} i = j \wedge a \vdash _A a'\);
-
\(\Delta _{!A} : (a, i) \mapsto (\Delta _A(a), i)\);
-
\(P_{!A} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{!A} \mid \forall i \in \mathbb {N} . \ \! \varvec{s} \upharpoonright i \in P_A \ \! \}\), where \(\varvec{s} \upharpoonright i\) is the j-subsequence of \(\varvec{s}\) that consists of moves (a, i) yet changed into a.
A naive idea is then to formalize each ‘tag’ \((\_, i)\) for exponential by an effective tag \([\_]_{\ell ^{i}}\) (Definition 1), but as mentioned before, we need to generalize it to an extended effective tag \([\_]_{\varvec{f}}\) (Definition 3). Thus, we formalize exponential as follows:
Definition 33
(Exponential of games [6, 51]) The exponential !A of a game A is defined by:
-
;
-
;
-
;
-
;
-
, where \(\Delta _A([m]_{\varvec{e}}) = [m']_{\varvec{e}}\);
-
\(P_{!A} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{!A} \mid \forall \varvec{f} \in \mathcal {T} . \ \! \varvec{s} \upharpoonright \varvec{f} \in P_A \wedge (\varvec{s} \upharpoonright \varvec{f} \ne \varvec{\epsilon } \Rightarrow \forall \varvec{g} \in \mathcal {T} . \ \! \varvec{s} \upharpoonright \varvec{g} \ne \varvec{\epsilon } \Rightarrow ede (\varvec{f}) \ne ede (\varvec{g})) \ \! \}\), where \(\varvec{s} \upharpoonright \varvec{f}\) is the j-subsequence of \(\varvec{s}\) that consists of moves of the form
yet changed into \([m]_{\varvec{e}}\).
Thus, our exponential !A is essentially a slight modification of the one in [37, 51] which generalizes moves \([m]_{\ell ^{i} \hbar \varvec{e}}\) to
, where \([m]_{\varvec{e}} \in M_A\), \(i \in \mathbb {N}\) and \(\varvec{f} \in \mathcal {T}\). By the condition on positions of !A, an element \(\varvec{f}\) in an outer tag
that represents a natural number \(i \in \mathbb {N}\), i.e., \( ede (\varvec{f}) = (i)\), is unique in each \(\varvec{s} \in P_{!A}\).
Notation
We often write \(A \Rightarrow B\) for the linear implication \(!A \multimap B\) for any games A and B, which we call the implication or function space from A to B. The constructions \(\multimap \) and \(\Rightarrow \) are both right associative.
Example 34
Any game B and the implication \(T \Rightarrow B\) coincide up to tags. Also, some typical plays of the exponential \(! \varvec{2}\) are as follows:
Similarly to the case of pairing, exponential is generalized in [71]: Given a game G such that
for some normalized games A and B, there is the promotion
\(G^{\dagger }\) of G such that
In fact, promotion is a generalization of exponential because \((!T \multimap B)^{\dagger }\) and !B coincide up to tags for any normalized game B; see [71] for the proof. Promotion of games is defined in [71] because a morphism \(A \rightarrow B\) in the bicategory \(\mathcal {DG}\) is a strategy \(\phi : G\) such that
and therefore, it is necessary to take a generalized promotion \(\phi ^{\dagger }\) (Definition 57) for composition of strategies in \(\mathcal {DG}\), whose ambient game is \(G^{\dagger }\).
The promotion \(G^{\dagger }\) is simply given by:
-
\(M_{G^{\dagger }} {\mathop {=}\limits ^{\mathrm {df. }}} ((M_G {\setminus }M_{!A})\times \mathbb {N})+ \{ (a, \langle i, k \rangle ) \mid (a, k) \in M_{!A}, i \in \mathbb {N} \}\);
-
\(\lambda _{G^{\dagger }} : ((m, i) \in (M_G {\setminus } M_{!A}) \times \mathbb {N}) \mapsto \lambda _G(m), (a, \langle i, k \rangle ) \mapsto \lambda _G(a, k)\);
-
\(\star \vdash _{G^{\dagger }} (m, i) {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} \star \vdash _G m\) for all \(i \in \mathbb {N}\);
-
$$\begin{aligned}&(m, i) \vdash _{G^{\dagger }} (n, j) {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} (i = j \wedge m, n \in M_G {\setminus } M_{!A} \wedge m \vdash _G n) \\&\quad \vee (i = j \wedge m \vdash _A n) \vee (m \in M_G {\setminus } M_{!A} \wedge (n, j) \in M_{!A} \wedge m \vdash _G (n, j) \wedge \exists k \in \mathbb {N} . \ \! j = \langle i, k \rangle ; \end{aligned}$$
-
\(\Delta _{G^{\dagger }} : (m, i) \mapsto (\Delta _G(m), i)\);
-
\(P_{G^{\dagger }} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{G^{\dagger }} \mid \forall i \in \mathbb {N} . \ \! \varvec{s} \upharpoonright i \in P_G \ \! \}\), where \(\varvec{s} \upharpoonright i\) is the j-subsequence of \(\varvec{s}\) that consists of moves of the form (m, i) with \(m \in M_G {\setminus } M_{!A}\) or \((a, \langle i, k \rangle )\) with \(a \in M_A \wedge k \in \mathbb {N}\) yet changed into m and (a, k), respectively.
Note that the promotion \(G^{\dagger }\) does not depend on the choice of normalized games A and B such that
Also, we in fact get
Then, let us formalize ‘tags’ on moves of \(G^{\dagger }\) as follows:
-
We duplicate moves of G coming from !A, i.e., ones of the form
for each \(\varvec{g} \in \mathcal {T}\);
-
We duplicate moves of G coming from B, i.e., ones of the form \([(b, \mathscr {E})]_{\varvec{e}}\), as
for each \(\varvec{g} \in \mathcal {T}\);
-
We duplicate internal moves \([m]_{\varvec{e}}\) of G as
for each \(\varvec{g} \in \mathcal {T}\)
where note again that this way of formalizing ‘tags’ is far from canonical, but it certainly achieves the required subgame relation
Then, the labeling function, the enabling relation and the dummy function of \(G^{\dagger }\) are again defined by pattern matching on inner tags in the obvious manner, for which like the case of pairing we use peeling and attributes just for convenience. Also, positions of \(G^{\dagger }\) are given by a straightforward generalization of those of exponential defined in Definition 33. Formally, we define promotion of games as follows:
Definition 35
(Promotion of games [71]) Given a game G with
for some normalized games A and B, the promotion
\(G^{\dagger }\) of G is given by:
Now, let us recall concatenation of games, which was first introduced in [71]: Given games J and K such that
and
for some normalized games A, B and C, the concatenation \(J \ddagger K\) of J and K is given by:
-
\(M_{J \ddagger K} {\mathop {=}\limits ^{\mathrm {df. }}} M_J + M_K\), where let \((\_)^{[0]}\) (resp. \((\_)^{[1]}\)) be the ‘tag’ on B in J (resp. K);
-
\(\lambda _{J \ddagger K} {\mathop {=}\limits ^{\mathrm {df. }}} [\lambda _J \downharpoonright M_{B^{[0]}}, \lambda ^{+\mu }_J \upharpoonright M_{B^{[0]}}, \lambda ^{+\mu }_K \upharpoonright M_{B^{[1]}}, \lambda _K \downharpoonright M_{B^{[1]}}]\), where \(\lambda _G^{+ \mu } {\mathop {=}\limits ^{\mathrm {df. }}} \langle \lambda _G^{\mathsf {OP}}, \lambda _G^{\mathsf {QA}}, n \mapsto \lambda _G^{\mathbb {N}} (n) + \mu \rangle \) (G is J or K), and \(\mu {\mathop {=}\limits ^{\mathrm {df. }}} \mathsf {Max}(\mu (J), \mu (K)) + 1\);
-
\(\star \vdash _{J \ddagger K} m {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} \star \vdash _K m\);
-
\(m \vdash _{J \ddagger K} n \ (m \ne \star ) {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} m \vdash _J n \vee m \vdash _K n \vee (\star \vdash _{B^{[1]}} m \wedge \star \vdash _{B^{[0]}} n)\);
-
\(\Delta _{J \ddagger K} {\mathop {=}\limits ^{\mathrm {df. }}} [\Delta _J, \Delta _K] \upharpoonright M_{J \ddagger K}\);
-
\(P_{J \ddagger K} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {J}_{J \ddagger K} \mid \varvec{s} \upharpoonright J \in P_J, \varvec{s} \upharpoonright K \in P_K, \varvec{s} \upharpoonright B^{[0]}, B^{[1]} \in pr _B \ \! \}\), where \( pr _B {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in P_{B^{[0]} \multimap B^{[1]}} \mid \forall \varvec{t} \preceq {\varvec{s}}. \ \mathsf {Even}(\varvec{t}) \Rightarrow \varvec{t} \upharpoonright B^{[0]} = \varvec{t} \upharpoonright B^{[1]} \ \! \}\).
Note that moves of B (in J or K) become internal in \(J \ddagger K\), and therefore, they would be deleted by the hiding operation \(\mathcal {H}\) on games. Note also that the concatenation \(J \ddagger K\) does not depend on the choice of normalized games A, B and C such that
and
Concatenation corresponds to composition without hiding in the introduction, and it plays a central role in [71]. We shall see later that concatenation
\(\sigma \ddagger \tau \)
of strategies
\(\sigma : J\) and \(\tau : K\) (Definition 60), where
and
for some normalized games A, B and C, forms a well-defined strategy on the game \(J \ddagger K\), and also \(\mathcal {H}^\omega (\sigma ) : A \multimap B\), \(\mathcal {H}^\omega (\tau ) : B \multimap C\) and
whence the composition (with hiding) \(\mathcal {H}^\omega (\sigma ) ; \mathcal {H}^\omega (\tau )\) of \(\mathcal {H}^\omega (\sigma )\) and \(\mathcal {H}^\omega (\tau )\) (Definition 60) satisfies \(\mathcal {H}^\omega (\sigma ) ; \mathcal {H}^\omega (\tau ) : A \multimap C\) (for
implies \(\phi : H\) for any strategy \(\phi \) and games G and H; see [71] for the proof).
Note that
is just the familiar relation \(\sigma ; \tau : A \multimap C\) when \(\sigma : J = A \multimap B\) and \(\tau : K = B \multimap 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, \mathscr {W})]_{\varvec{e}} \in M_J^{\mathsf {Ext}}\) or \([(c, \mathscr {E})]_{\varvec{f}} \in M_K^{\mathsf {Ext}}\);
-
We change moves of \(B^{[0]}\) in J, i.e., external ones of the form \([(b, \mathscr {E})]_{\varvec{g}}\), into \([((b, \mathscr {E}), \mathscr {S})]_{\varvec{g}}\);
-
We change moves of \(B^{[1]}\) in K, i.e., external ones of the form \([(b, \mathscr {W})]_{\varvec{g}}\), into \([((b, \mathscr {W}), \mathscr {N})]_{\varvec{g}}\);
-
We change internal moves \([m]_{\varvec{l}}\) of J into \([(m, \mathscr {S})]_{\varvec{l}}\);
-
We change internal moves \([n]_{\varvec{r}}\) of K into \([(n, \mathscr {N})]_{\varvec{r}}\).
Again, this implementation of ‘tags’ is not canonical at all, but the point is that it achieves the required subgame relation
Then, the labeling function, the enabling relation and the dummy function of \(J \ddagger K\) are defined by the obvious pattern matching on inner tags, and positions of \(J \ddagger K\) are defined as usual. Formally, concatenation of games is defined as follows, where it should be clear how the peeling \( peel _{J \ddagger K}\) and the attributes \( att _{J \ddagger K}\) work:
Definition 36
(Concatenation of games [71]) Given games J and K, and normalized games A, B and C such that
and
, the concatenation
\(J \ddagger K\) of J and K is defined by:
-
$$\begin{aligned}&M_{J \ddagger K} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [(a, \mathscr {W})]_{\varvec{e}} \mid [(a, \mathscr {W})]_{\varvec{e}} \in M_J^{\mathsf {Ext}}, [a]_{\varvec{e}} \in M_A \ \! \} \\&\quad \cup \{ [(c, \mathscr {E})]_{\varvec{f}} \mid [(c, \mathscr {E})]_{\varvec{f}} \in M_K^{\mathsf {Ext}}, [c]_{\varvec{f}} \in M_C \ \! \} \\&\quad \cup \{ [((b, \mathscr {E}), \mathscr {S})]_{\varvec{g}} \mid [(b, \mathscr {E})]_{\varvec{g}} \in M_J^{\mathsf {Ext}}, [b]_{\varvec{g}} \in M_B \ \! \} \\&\quad \cup \{ [((b, \mathscr {W}), \mathscr {N})]_{\varvec{g}} \mid [(b, \mathscr {W})]_{\varvec{g}} \in M_K^{\mathsf {Ext}}, [b]_{\varvec{g}} \in M_B \ \! \} \\&\quad \cup \{ [(m, \mathscr {S})]_{\varvec{l}} \mid [m]_{\varvec{l}} \in M_J^{\mathsf {Int}} \ \! \} \cup \{ [(n, \mathscr {N})]_{\varvec{r}} \mid [n]_{\varvec{r}} \in M_K^{\mathsf {Int}} \ \! \}; \end{aligned}$$
-
\(\lambda _{J \ddagger K}([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \lambda _J^{+\mu }([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {S} \wedge \exists [b]_{\varvec{e}} \in M_B . \ \! [m]_{\varvec{e}} = [(b, \mathscr {E})]_{\varvec{e}} \in M_J^{\mathsf {Ext}}; \\ \lambda _J([m]_{\varvec{e}}) &{}\text {if } X = \mathscr {W} \vee (X = \mathscr {S} \wedge [m]_{\varvec{e}} \in M_J^{\mathsf {Int}}); \\ \lambda _K^{+\mu }([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {N} \wedge \exists [b]_{\varvec{e}} \in M_B . \ \! [m]_{\varvec{e}} = [(b, \mathscr {W})]_{\varvec{e}} \in M_K^{\mathsf {Ext}}; \\ \lambda _K([m]_{\varvec{e}}) &{}\text {if }X = \mathscr {E} \vee (X = \mathscr {N} \wedge [m]_{\varvec{e}} \in M_K^{\mathsf {Int}}) \end{array}\right. }\) where \(\lambda _J^{+ \mu }\) and \(\lambda _K^{+ \mu }\) are as defined above;
-
\(\star \vdash _{J \ddagger K} [(m, X)]_{\varvec{e}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} X = \mathscr {E} \wedge \star \vdash _C [m]_{\varvec{e}}\);
-
\([(m, X)]_{\varvec{e}} \vdash _{J \ddagger K} [(n, Y)]_{\varvec{f}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \begin{aligned} &{} ( att _{J \ddagger K}([(m, X)]_{\varvec{e}}) = J = att _{J \ddagger K}([(n, Y)]_{\varvec{f}}) \\ &{} \ \wedge peel _{J \ddagger K}([(m, X)]_{\varvec{e}}) \vdash _J peel _{J \ddagger K}([(n, Y)]_{\varvec{f}})) \\ &{}\vee ( att _{J \ddagger K}([(m, X)]_{\varvec{e}}) = K = att _{J \ddagger K}([(n, Y)]_{\varvec{f}}) \\ &{} \ \ \ \ \wedge peel _{J \ddagger K}([(m, X)]_{\varvec{e}}) \vdash _K peel _{J \ddagger K}([(n, Y)]_{\varvec{f}})) \\ &{}\vee (X = \mathscr {N} \wedge Y = \mathscr {S} \wedge \exists [b]_{\varvec{e}}, [b']_{\varvec{f}} \in M_B^{\mathsf {Init}} . \\ &{} \ \ \ \ \ m = (b, \mathscr {W}) \wedge n = (b, \mathscr {E})) \end{aligned} \end{array}\right. }\) where the function \( att _{J \ddagger K} : M_{J \ddagger K} \rightarrow \{ J, K \}\) is defined by \([(a, \mathscr {W})]_{\varvec{e}} \mapsto J\), \([(m, \mathscr {S})]_{\varvec{l}} \mapsto J\), \([((b, \mathscr {E}), \mathscr {S})]_{\varvec{g}} \mapsto J\), \([(c, \mathscr {E})]_{\varvec{f}} \mapsto K\), \([(n, \mathscr {N})]_{\varvec{r}} \mapsto K\), \([((b, \mathscr {W}), \mathscr {N})]_{\varvec{g}} \mapsto K\), and the function \( peel _{J \ddagger K} : M_{J \ddagger K} \rightarrow M_J \cup M_K\) by \([(a, \mathscr {W})]_{\varvec{e}} \mapsto [(a, \mathscr {W})]_{\varvec{e}}\), \([(c, \mathscr {E})]_{\varvec{f}} \mapsto [(c, \mathscr {E})]_{\varvec{f}}\), \([((b, \mathscr {E}), \mathscr {S})]_{\varvec{g}} \mapsto [(b, \mathscr {E})]_{\varvec{g}}\), \([((b, \mathscr {W}), \mathscr {N})]_{\varvec{g}} \mapsto [(b, \mathscr {W})]_{\varvec{g}}\), \([(m, \mathscr {S})]_{\varvec{l}} \mapsto [m]_{\varvec{l}}\), \([(n, \mathscr {N})]_{\varvec{r}} \mapsto [n]_{\varvec{r}}\);
-
\(\Delta _{J \ddagger K} ([(m, X)]_{\varvec{e}}) {\mathop {=}\limits ^{\mathrm {df. }}} \left\{ \begin{array}{ll} { [}(m', \mathscr {S})]_{\varvec{e}} &{}\text {if }X = \mathscr {S} \text { and } \Delta _J([m]_{\varvec{e}}) = [m']_{\varvec{e}}; \\ {[}(m'', \mathscr {N})]_{\varvec{e}} &{}\text {if }X = \mathscr {N}\text { and } \Delta _K([m]_{\varvec{e}}) = [m'']_{\varvec{e}}; \\ {[}((b, \mathscr {W}), \mathscr {N})]_{\varvec{e}} &{}\text {if }X = \mathscr {S}, \Delta _J([m]_{\varvec{e}}) \uparrow \text { and }m = (b, \mathscr {E}); \\ {[}((b, \mathscr {E}), \mathscr {S})]_{\varvec{e}} &{}\text {if }X = \mathscr {N}, \Delta _K([m]_{\varvec{e}}) \uparrow \text { and }m = (b, \mathscr {W}); \end{array}\right. \)
-
\(P_{J \ddagger K} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {J}_{J \ddagger K} \mid \varvec{s} \upharpoonright J \in P_J, \varvec{s} \upharpoonright K \in P_K, \varvec{s} \upharpoonright B^{[0]}, B^{[1]} \in pr _B \ \! \}\), where \(\varvec{s} \upharpoonright J\) (resp. \(\varvec{s} \upharpoonright K\)) is the j-subsequence of \(\varvec{s}\) that consists of moves m such that \( att _{J \ddagger K}(m) = J\) (resp. \( att _{J \ddagger K}(m) = K\)) yet changed into \( peel _{J \ddagger K}(m)\), \(\varvec{s} \upharpoonright B^{[0]}, B^{[1]}\) is the j-subsequence of \(\varvec{s}\) that consists of moves of \(B^{[0]}\) or \(B^{[1]}\), i.e., moves \([((b, X), Y)]_{\varvec{e}}\) such that \([b]_{\varvec{e}} \in M_B \wedge ((X = \mathscr {E} \wedge Y = \mathscr {S}) \vee (X = \mathscr {W} \wedge Y = \mathscr {N}))\) yet changed into \([(b, \overline{X})]_{\varvec{e}}\), for which \(\overline{\mathscr {E}} {\mathop {=}\limits ^{\mathrm {df. }}} \mathscr {W}\) and \(\overline{\mathscr {W}} {\mathop {=}\limits ^{\mathrm {df. }}} \mathscr {E}\), and \( pr _B {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{t} \in P_{B \multimap B} \mid \forall \varvec{u} \preceq {\varvec{t}}. \ \mathsf {Even}(\varvec{u}) \Rightarrow \varvec{u} \upharpoonright \mathscr {W} = \varvec{u} \upharpoonright \mathscr {E} \ \! \}\).
Example 37
A typical plays of the concatenation \((\mathcal {N} \multimap \mathcal {N}) \ddagger (\mathcal {N} \multimap \mathcal {N})\) is:
Finally, let us recall the rather trivial currying
\(\Lambda \) and uncurrying
\(\Lambda ^{\circleddash }\) [6] of games. Roughly, currying \(\Lambda \) generalizes the map \(A \otimes B \multimap C \mapsto A \multimap (B \multimap C)\), and uncurrying \(\Lambda ^\circleddash \) does the inverse \(A \multimap (B \multimap C) \mapsto A \otimes B \multimap C\), where A, B and C are arbitrary normalized games. Note that the games \(A \otimes B \multimap C\) and \(A \multimap (B \multimap C)\) coincide up to ‘tags,’ and therefore, the currying and the uncurrying operations boil down to the trivial manipulations on ‘tags.’
Nevertheless, we formalize such manipulations of ‘tags’ here. For their simplicity, let us skip their informal definitions and just present the formal ones:
Definition 38
(Currying of games [71]) If a game G satisfies
for some normalized games A, B and C, then the currying
\(\Lambda (G)\) of G is given by:
-
$$\begin{aligned}&M_{\Lambda (G)} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [(a, \mathscr {W})]_{\varvec{e}} \mid [((a, \mathscr {W}), \mathscr {W})]_{\varvec{e}} \in M_G^{\mathsf {Ext}}, [a]_{\varvec{e}} \in M_A \ \! \} \\&\cup \{ [((b, \mathscr {W}), \mathscr {E})]_{\varvec{f}} \mid [((b, \mathscr {E}), \mathscr {W})]_{\varvec{f}} \in M_G^{\mathsf {Ext}}, [b]_{\varvec{f}} \in M_B \ \! \} \\&\cup \{ [((c, \mathscr {E}), \mathscr {E})]_{\varvec{g}} \mid [(c, \mathscr {E})]_{\varvec{g}} \in M_G^{\mathsf {Ext}}, [c]_{\varvec{g}} \in M_C \ \! \} \cup \{ [(m, \mathscr {N})]_{\varvec{h}} \mid [m]_{\varvec{h}} \in M_G^{\mathsf {Int}} \ \! \}; \end{aligned}$$
-
\(\lambda _{\Lambda (G)}(x) {\mathop {=}\limits ^{\mathrm {df. }}} \lambda _G( peel _{\Lambda (G)}(x))\) for all \(x \in M_{\Lambda (G)}\), where the map \( peel _{\Lambda (G)} : M_{\Lambda (G)} \rightarrow M_G\) is given by \([(a, \mathscr {W})]_{\varvec{e}} \mapsto [((a, \mathscr {W}), \mathscr {W})]_{\varvec{e}}\), \([((b, \mathscr {W}), \mathscr {E})]_{\varvec{f}} \mapsto [((b, \mathscr {E}), \mathscr {W})]_{\varvec{f}}\), \([((c, \mathscr {E}), \mathscr {E})]_{\varvec{g}} \mapsto [(c, \mathscr {E})]_{\varvec{g}}\), \([(m, \mathscr {N})]_{\varvec{h}} \mapsto [m]_{\varvec{h}}\);
-
\(\star \vdash _{\Lambda (G)} [m]_{\varvec{e}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} \exists [c]_{\varvec{e}} \in M_C^{\mathsf {Init}} . \ \! m = ((c, \mathscr {E}), \mathscr {E})\);
-
\([m]_{\varvec{e}} \vdash _{\Lambda (G)} [n]_{\varvec{f}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} peel _{\Lambda (G)}([m]_{\varvec{e}}) \vdash _{G} peel _{\Lambda (G)}([n]_{\varvec{f}})\);
-
\(\Delta _{\Lambda (G)} : [(m, \mathscr {N})]_{\varvec{e}} \mapsto [(m', \mathscr {N})]_{\varvec{e}}\), where \(\Delta _G : [m]_{\varvec{e}} \mapsto [m']_{\varvec{e}}\);
-
\(P_{\Lambda (G)} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{\Lambda (G)} \mid peel _{\Lambda (G)}^*(\varvec{s}) \in P_G \ \! \}\), where pointers in \( peel _{\Lambda (G)}^*(\varvec{s})\) are inherited from the ones in \(\varvec{s}\) in the obvious sense.
It is easy to see that
if
which is a generalization of the equation \(\Lambda (A \otimes B \multimap C) = A \multimap (B \multimap C)\).
Definition 39
(Uncurrying of games [71]) If a game H, and normalized games A, B and C satisfy
then the uncurrying
\(\Lambda ^{\circleddash }(H)\) of H is defined by:
-
$$\begin{aligned}&M_{\Lambda ^\circleddash (H)} {\mathop {=}\limits ^{\mathrm {df. }}} \{ [((a, \mathscr {W}), \mathscr {W})]_{\varvec{e}} \mid [(a, \mathscr {W})]_{\varvec{e}} \in M_H^{\mathsf {Ext}}, [a]_{\varvec{e}} \in M_A \ \! \} \\&\quad \cup \{ [((b, \mathscr {E}), \mathscr {W})]_{\varvec{f}} \mid [((b, \mathscr {W}), \mathscr {E})]_{\varvec{f}} \in M_H^{\mathsf {Ext}}, [b]_{\varvec{f}} \in M_B \ \! \} \\&\quad \cup \{ [(c, \mathscr {E})]_{\varvec{g}} \mid [((c, \mathscr {E}), \mathscr {E})]_{\varvec{g}} \in M_H^{\mathsf {Ext}}, [c]_{\varvec{g}} \in M_C \ \! \} \cup \{ [(m, \mathscr {S})]_{\varvec{h}} \mid [m]_{\varvec{h}} \in M_H^{\mathsf {Int}} \ \! \}; \end{aligned}$$
-
\(\lambda _{\Lambda ^\circleddash (H)}(x) {\mathop {=}\limits ^{\mathrm {df. }}} \lambda _H( peel _{\Lambda ^\circleddash (H)}(x))\) for all \(x \in M_{\Lambda ^\circleddash (H)}\), where the map \( peel _{\Lambda ^\circleddash (H)} : M_{\Lambda ^\circleddash (H)} \rightarrow M_H\) is defined by \([((a, \mathscr {W}), \mathscr {W})]_{\varvec{e}} \mapsto [(a, \mathscr {W})]_{\varvec{e}}\), \([((b, \mathscr {E}), \mathscr {W})]_{\varvec{f}} \mapsto [((b, \mathscr {W}), \mathscr {E})]_{\varvec{f}}\), \([(c, \mathscr {E})]_{\varvec{g}} \mapsto [((c, \mathscr {E}), \mathscr {E})]_{\varvec{g}}\), \([(m, \mathscr {S})]_{\varvec{h}} \mapsto [m]_{\varvec{h}}\);
-
\(\star \vdash _{\Lambda ^\circleddash (H)} [m]_{\varvec{e}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} \exists [c]_{\varvec{e}} \in M_C^{\mathsf {Init}} . \ \! m = (c, \mathscr {E})\);
-
\([m]_{\varvec{e}} \vdash _{\Lambda ^\circleddash (H)} [n]_{\varvec{f}} {\mathop {\Leftrightarrow }\limits ^{\mathrm {df. }}} peel _{\Lambda ^\circleddash (H)}([m]_{\varvec{e}}) \vdash _{H} peel _{\Lambda ^\circleddash (H)}([n]_{\varvec{f}})\);
-
\(\Delta _{\Lambda ^\circleddash (H)} : [(m, \mathscr {S})]_{\varvec{h}} \mapsto [(m', \mathscr {S})]_{\varvec{h}}\), where \(\Delta _H : [m]_{\varvec{h}} \mapsto [m']_{\varvec{h}}\);
-
\(P_{\Lambda ^\circleddash (H)} {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{\Lambda ^\circleddash (H)} \mid peel _{\Lambda ^\circleddash (H)}^*(\varvec{s}) \in P_H \ \! \}\), where pointers in \( peel _{\Lambda ^\circleddash (H)}^*(\varvec{s})\) are inherited from the ones in \(\varvec{s}\).
Dually to currying,
holds if
which generalizes the equation \(\Lambda ^\circleddash (A \multimap (B \multimap C)) = A \otimes B \multimap C\). It is also easy to see that \(\Lambda \) and \(\Lambda ^\circleddash \) are inverses to each other on normalized games, i.e., \(\Lambda \circ \Lambda ^\circleddash (A \multimap (B \multimap C)) = A \multimap (B \multimap C)\) and \(\Lambda ^\circleddash \circ \Lambda (A \otimes B \multimap C) = A \otimes B \multimap C\) for any normalized games A, B and C. Note also that currying \(\Lambda (G)\) and the uncurrying \(\Lambda ^\circleddash (H)\) both do not depend on the choice of the normalized games A, B and C such that
and
The following are two of the technical highlights of [71], where it is straightforward to see that the additional structure of dummy functions and the strengthened axiom DP2 are preserved under the constructions on games introduced so far (and therefore the two results still hold).
Theorem 40
(Constructions on games [71]) Games are closed under \(\otimes \), \(\multimap \),&, \(\langle \_, \_ \rangle \), !, \((\_)^{\dagger }\), \(\ddagger \), \(\Lambda \) and \(\Lambda ^{\circleddash }\). Moreover, the subgame relation is preserved under these constructions, i.e.,
if
for all \(i \in I\), where \(\clubsuit _{i \in I}\) is either \(\otimes \), \(\multimap \),&, \(\langle \_, \_ \rangle \), !, \((\_)^{\dagger }\), \(\ddagger \), \(\Lambda \) or \(\Lambda ^{\circleddash }\) (and thus, I is either \(\{ 1 \}\) or \(\{ 1, 2 \}\)).
Lemma 41
(Hiding lemma on games [71]) Let \(\clubsuit _{i \in I}\) be either \(\otimes \), \(\multimap \),&, \(\langle \_, \_ \rangle \), !, \((\_)^{\dagger }\), \(\ddagger \), \(\Lambda \) or \(\Lambda ^\circleddash \), and \(d \in \mathbb {N} \cup \{ \omega \}\). Then, for any family \((G_i)_{i \in I}\) of games,
-
1
if \(\clubsuit _{i \in I}\) is not \(\ddagger \);
-
2
\(\mathcal {H}^d (G_1 \ddagger G_2) = \mathcal {H}^d(G_1) \ddagger \mathcal {H}^d(G_2)\) if \(\mathcal {H}^d(G_1 \ddagger G_2)\) is not yet normalized, and
otherwise, where
and
for some normalized game B.
Strategies
Next, let us recall another central notion of strategies.
Strategies
Our strategies are the dynamic variant introduced in [71]. 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 [6, 51], i.e.,
Definition 42
(Dynamic strategies [6, 51, 71]) A dynamic strategy
\(\sigma \) on a (dynamic) game G, written \(\sigma : G\), is a subset \(\sigma \subseteq P_G^{\mathsf {Even}}\) that satisfies:
-
(S1) It is non-empty and even-prefix-closed (i.e., \(\varvec{s}mn \in \sigma \Rightarrow \varvec{s} \in \sigma )\);
-
(S2) It is deterministic (i.e., \(\varvec{s}mn, \varvec{s'}m'n' \in \sigma \wedge \varvec{s}m = \varvec{s'}m' \Rightarrow \varvec{s}mn = \varvec{s'}m'n'\)).
Convention
Henceforth, strategies refer to dynamic strategies by default.
Notation
Henceforth, we often indicate the form of tags of moves \([m_{X_1 X_2 \dots X_k}]_{\varvec{e}}\) of a game G informally by \([G_{X_1 X_2 \dots X_k}]_{\varvec{e}}\).
Example 43
Given a natural number \(n \in \mathbb {N}\), the \({{{\varvec{n}}}}{{{{\varvec{th}}}}}\)
numeral strategy is the strategy
defined by:
$$\begin{aligned} \underline{n} {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \{ \varvec{\epsilon }, [\hat{q}_{\mathscr {E}}] [ no _{\mathscr {E}}] \} &{}\text {if }n = 0; \\ \mathsf {Pref}(\{ [\hat{q}_{\mathscr {E}}] [ yes _{\mathscr {E}}] \underbrace{[q_{\mathscr {E}}] [ yes _{\mathscr {E}}] \dots [q_{\mathscr {E}}] [ yes _{\mathscr {E}}]}_{n-1} [q_{\mathscr {E}}] [ no _{\mathscr {E}}] \})^{\mathsf {Even}} &{}\text {otherwise.} \end{array}\right. } \end{aligned}$$
Example 44
The successor strategy
is defined by:
where \( y \) and \( n \) abbreviate \( yes \) and \( no \), respectively. Note that it is a formalization of the successor strategy in the introduction.
Example 45
The predecessor strategy
is defined by:
It is easy to see that \( pred \) implements the predecessor function \(0 \mapsto 0\), \(n+1 \mapsto n\).
Next, let us recall two constraints on strategies: innocence and well bracketing. One of the highlights of HO-games [38] is to establish a one-to-one correspondence between terms of PCF in a certain \(\eta \)-long normal form, known as PCF Böhm trees [8], and innocent, 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 each odd-length position (rather than the entire position), and well bracketed if every ‘question-answering’ by the strategy is done in the ‘last-question-first-answered’ fashion. Formally:
Definition 46
(Innocence of strategies [6, 38, 51]) A strategy \(\sigma : G\) is innocent if \(\varvec{s}mn, \varvec{t} \in \sigma \wedge \varvec{t} m \in P_G \wedge \lceil \varvec{t} m \rceil _G = \lceil \varvec{s} m \rceil _G \Rightarrow \varvec{t}mn \in \sigma \wedge \lceil \varvec{t}mn \rceil _G = \lceil \varvec{s}mn \rceil _G\).
Definition 47
(Well bracketing of strategies [6, 38, 51]) A strategy \(\sigma : G\) is well bracketed if, whenever \(\varvec{s} q \varvec{t} a \in \sigma \), where q is a question that justifies an answer a, every question in \(\varvec{t'}\) defined by \(\lceil \varvec{s} q \varvec{t} \rceil _G = \lceil \varvec{s} q \rceil _G . \varvec{t'}\)
Footnote 12 justifies an answer in \(\varvec{t'}\).
The bijective correspondence holds also for the game model [6], on which our games and strategies are based. Moreover, it corresponds to modeling states and control operators to relaxing innocence and well bracketing in the model; in this sense, the two conditions characterize ‘purely functional’ languages [6].
Note that innocence and well bracketing have been imposed on strategies in order to establish full abstraction and/or definability [15], but neither is our main concern in the present paper. However, we would like P to be able to collect a bounded number of ‘relevant’ moves from each 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 ‘effective computability’ only on innocent strategies in Sect. 3.
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 in the present work, 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 Sect. 3.1. For this, however, we need to modify the procedure for P to collect a bounded number of moves from each odd-length position (defined in Sect. 3.1) so that she may refer to moves outside of P-views, 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 \(\sigma : G\) as (partial) view functions
\(f_\sigma : \lceil P_G^{\mathsf {Odd}} \rceil _G \rightharpoonup M_G\) with the pointer structure implicit (see [51] for the details); we shall freely exchange the tree-representation \(\sigma \) and the function representation \(f_\sigma \), and often write \(\sigma \) for \(f_\sigma \).
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 \(\varvec{s} m n \varvec{t}\) be an even-length position of a game G such that \(\varvec{s} m\) (resp. \(\varvec{t} n\)) consists of external (resp. internal) moves only. By IE-switch on G, m is an O-move, and so \(\mathcal {H}^\omega (\varvec{s} m n \varvec{t}) = \varvec{s} m\) is of odd-length. Thus, we define:
Definition 48
(Hiding on strategies [71]) Given a game G, a position \(\varvec{s} \in P_G\) and a number \(d \in \mathbb {N} \cup \{ \omega \}\), let
$$\begin{aligned} \varvec{s} \natural \mathcal {H}_G^d {\mathop {=}\limits ^{\mathrm {df. }}} {\left\{ \begin{array}{ll} \mathcal {H}_G^d(\varvec{s}) &{}\text {if }\varvec{s}\text { is } d\text {-complete (Definition}~8); \\ \varvec{t} &{}\text {otherwise, where }\mathcal {H}_G^d(\varvec{s}) = \varvec{t}m. \end{array}\right. } \end{aligned}$$
The \({{{\varvec{d}}}}\)-hiding operation
\(\mathcal {H}^{{\varvec{d}}}\)
on strategies is given by \(\mathcal {H}^d : (\sigma : G) \mapsto \{ \varvec{s} \natural \mathcal {H}_G^d \mid \varvec{s} \in \sigma \ \! \}\). A strategy \(\sigma : G\) is normalized if \(\mathcal {H}^\omega (\sigma ) = \sigma \).
The following beautiful theorem in a sense implies that the above definition is a reasonable one. Also, it induces the hiding functor
\(\mathcal {H}^\omega \) from the bicategory \(\mathcal {DG}\) of dynamic games and strategies to the category \(\mathcal {G}\) of static games and strategies [71].
Theorem 49
(Hiding theorem [71]) If \(\sigma : G\), then \(\mathcal {H}^d(\sigma ) : \mathcal {H}^d(G)\) for all \(d \in \mathbb {N} \cup \{ \omega \}\), and \(\underbrace{\mathcal {H}^1 \circ \mathcal {H}^1 \cdots \circ \mathcal {H}^1}_i (\sigma ) = \mathcal {H}^i(\sigma ) : \mathcal {H}^i(G)\) for all \(i \in \mathbb {N}\).
Convention
Thanks to Theorem 49, the i-hiding operation \(\mathcal {H}^i\) on strategies for each \(i \in \mathbb {N}\) can be thought of as the i-times iteration of the 1-hiding operation \(\mathcal {H}^1\), which we call the hiding operation (on strategies) and write \(\mathcal {H}\) for it.
It is straightforward to see that normalized games (resp. strategies) are equivalent to static games (resp. strategies) given in [6]; see [71] for the details.
Constructions on strategies
Next, let us review standard constructions on strategies [6, 51], for which we need to adopt our tags. Having introduced our formalization of ‘tags’ for constructions on games in Sect. 2.2.3, let us just present formalized constructions on strategies (without standard, informal versions) as it should be clear enough.
First, the following derelictions just ‘copy-cat’ the last occurrence of an O-move:
Definition 50
(Derelictions [6, 7, 51]) The dereliction
\( der _A : A \Rightarrow A\) on a normalized game A is defined by:
where
(resp. \(\varvec{t} \upharpoonright (\mathscr {E})_{\_}\)) is the j-subsequence of \(\varvec{t}\) that consists of moves of the form
(resp. \([(a', \mathscr {E})]_{\varvec{e'}}\)) yet changed into \([a]_{\varvec{e}}\) (resp. \([a']_{\varvec{e'}}\)).
Example 51
The computation of the dereliction \( der _A\) may be depicted as follows:
where \([a^{(1)}]_{\varvec{e^{(1)}}} [a^{(2)}]_{\varvec{e^{(2)}}} [a^{(3)}]_{\varvec{e^{(3)}}} [a^{(4)}]_{\varvec{e^{(4)}}} \dots \in P_A\).
Next, as in the case of tensor of games, we have:
Definition 52
(Tensor of strategies [5, 6, 51]) Given normalized games A, B, C and D, and normalized strategies \(\sigma : A \multimap C\) and \(\tau : B \multimap D\), the tensor (product)
\(\sigma \! \otimes \! \tau : A \otimes B \multimap C \otimes D\) of \(\sigma \) and \(\tau \) is defined by:
$$\begin{aligned} \sigma \! \otimes \! \tau {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{A \otimes B \multimap C \otimes D} \mid \varvec{s} \upharpoonright (\mathscr {W}, \_) \in \sigma , \varvec{s} \upharpoonright (\mathscr {E}, \_) \in \tau \ \! \} \end{aligned}$$
where \(\varvec{s} \upharpoonright (\mathscr {W}, \_)\) (resp. \(\varvec{s} \upharpoonright (\mathscr {E}, \_)\)) is the j-subsequence of \(\varvec{s}\) that consists of moves of the form \([((m, \mathscr {W}), X)]_{\varvec{e}}\) (resp. \([((m', \mathscr {E}), Y)]_{\varvec{e'}}\)) yet changed into \([(m, X)]_{\varvec{e}}\) (resp. \([(m', Y)]_{\varvec{e'}}\)).
Intuitively, the tensor \(\sigma \! \otimes \! \tau : A \otimes B \multimap C \otimes D\) plays by \(\sigma \) if the last occurrence of an O-move belongs to \(A \multimap C\), and by \(\tau \) otherwise.
Example 53
Consider the tensor
. A typical play by \( succ \otimes pred \) is as follows:
The next one is the pairing in the category \(\mathcal {G}\) of static games and strategies [6]:
Definition 54
(Pairing of strategies [6, 7, 38]) Given normalized games A, B and C, and normalized strategies \(\sigma : C \multimap A\) and \(\tau : C \multimap B\), the pairing
\( \langle \sigma , \tau \rangle : C \multimap A \& B\) of \(\sigma \) and \(\tau \) is defined by:
$$ \begin{aligned} \langle \sigma , \tau \rangle {\mathop {=}\limits ^{\mathrm {df. }}}&\ \! \{ \varvec{s} \in \mathscr {L}_{C \multimap A \& B} \mid \varvec{s} \upharpoonright (\mathscr {W} \multimap \mathscr {W} \mathscr {E}) \in \sigma , \varvec{s} \upharpoonright (\mathscr {W} \multimap \mathscr {E} \mathscr {E}) = \varvec{\epsilon } \ \! \}\\&\cup \ \! \{ \varvec{s} \in \mathscr {L}_{C \multimap A \& B} \mid \varvec{s} \upharpoonright (\mathscr {W} \multimap \mathscr {E} \mathscr {E}) \in \tau , \varvec{s} \upharpoonright (\mathscr {W} \multimap \mathscr {W} \mathscr {E}) = \varvec{\epsilon } \ \! \} \end{aligned}$$
where \(\varvec{s} \upharpoonright (\mathscr {W} \multimap \mathscr {W} \mathscr {E})\) (resp. \(\varvec{s} \upharpoonright (\mathscr {W} \multimap \mathscr {E} \mathscr {E})\)) is the j-subsequence of \(\varvec{s}\) that consists of moves of the form \([(c, \mathscr {W})]_{\varvec{e}}\) or \([((a, \mathscr {W}), \mathscr {E})]_{\varvec{f}}\) with \([a] \in M_A\) (resp. or \([((b, \mathscr {E}), \mathscr {E})]_{\varvec{g}}\) with \([b] \in M_B\)) yet the latter changed into \([(a, \mathscr {E})]_{\varvec{f}}\) (resp. \([(b, \mathscr {E})]_{\varvec{g}}\)).
However, for the bicategory \(\mathcal {DG}\) of dynamic games and strategies [71], we need the following generalization (for the reason explained right before Definition 31):
Definition 55
(Generalized pairing of strategies [71]) Given strategies \(\sigma : L\) and \(\tau : R\) such that
for some normalized games A, B and C, the generalized pairing
\(\langle \sigma , \tau \rangle : \langle L, R \rangle \) of \(\sigma \) and \(\tau \) is defined by:
$$\begin{aligned} \langle \sigma , \tau \rangle {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{\langle L, R \rangle } \mid (\varvec{s} \upharpoonright L \in \sigma \wedge \varvec{s} \upharpoonright B = \varvec{\epsilon }) \vee (\varvec{s} \upharpoonright R \in \tau \wedge \varvec{s} \upharpoonright A = \varvec{\epsilon }) \ \! \}. \end{aligned}$$
It is clearly a generalization of static pairing; consider the case where \(L = C \multimap A\) and \(R = C \multimap B\).
Convention
Henceforth, pairing of strategies refers to the generalized one.
Example 56
Consider the pairing
. Its typical plays are as follows:
Next, let us recall promotion of strategies:
Definition 57
(Promotion of strategies [6, 7, 51]) Given normalized games A and B, and a normalized strategy \(\phi : \ !A \multimap B\), the promotion
\(\phi ^{\dagger } : \ !A \multimap \ !B\) of \(\phi \) is given by:
$$\begin{aligned} \phi ^{\dagger } {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{!A \multimap !B} \mid \forall \varvec{e} \in \mathcal {T} . \ \! \varvec{s} \upharpoonright \varvec{e} \in \phi \ \! \} \end{aligned}$$
where \(\varvec{s} \upharpoonright \varvec{e}\) is the j-subsequence of \(\varvec{s}\) that consists of moves of the form
with
with \([a]_{\varvec{f'}} \in M_A\), which are, respectively, changed into \([(b, \mathscr {E})]_{\varvec{e'}}\) and
.
As stated before, [71] generalizes promotion of strategies (for the reason explained before Definition 35) as follows:
Definition 58
(Generalized promotion of strategies [71]) Given a strategy \(\phi : G\) such that
for some normalized games A and B, the generalized promotion
\(\phi ^{\dagger } : G^{\dagger }\) of \(\phi \) is defined by:
$$\begin{aligned} \phi ^{\dagger } {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{G^{\dagger }} \mid \forall \varvec{e} \in \mathcal {T} . \ \! \varvec{s} \upharpoonright \varvec{e} \in \phi \ \! \} \end{aligned}$$
where \(\varvec{s} \upharpoonright \varvec{e}\) is the j-subsequence of \(\varvec{s}\) that consists of moves of the form
with \([b]_{\varvec{e'}} \in M_B\),
with \([a]_{\varvec{f'}} \in M_A\), or
with \([m]_{\varvec{e'}} \in M_G^{\mathsf {Int}}\), which are respectively changed into \([(b, \mathscr {E})]_{\varvec{e'}}\),
.
It is clearly a generalization of static promotion; consider the case \(G = \ !A \multimap B\).
Convention
Henceforth, promotion of strategies refers to the generalized one.
Example 59
Consider the promotion
. Its typical play is as depicted in the following diagram:
Note that there are two threads
Footnote 13 in the above play, and the strategy \( succ ^{\dagger }\) behaves as \( succ \) in both of the threads.
Now, let us recall a central construction of strategies in [71], which reformulates composition (with hiding) of strategies as follows:
Definition 60
(Concatenation and composition of strategies [71]) Let \(\sigma : J\) and \(\tau : K\) such that
and
for some normalized games A, B and C. The concatenation
\(\sigma \ddagger \tau : J \ddagger K\) of \(\sigma \) and \(\tau \) is defined by:
$$\begin{aligned} \sigma \ddagger \tau {\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {J}_{J \ddagger K} \mid \varvec{s} \upharpoonright J \in \sigma , \varvec{s} \upharpoonright K \in \tau , \varvec{s} \upharpoonright B^{[0]}, B^{[1]} \in pr _B \ \! \} \end{aligned}$$
and their composition
\(\sigma ; \tau : \mathcal {H}^\omega (J \ddagger K)\) by \(\sigma ; \tau {\mathop {=}\limits ^{\mathrm {df. }}} \mathcal {H}^\omega (\sigma \ddagger \tau )\) (see Theorem 49).
We also write \(\tau \circ \sigma \) for \(\sigma ; \tau \). If \(J = A \multimap B\), \(K = B \multimap C\), then our composition
coincides with the standard one [6, 38, 51]; see [71] for the details. In this sense, our composition generalizes the standard one, and moreover it is decomposed into concatenation plus hiding.
Example 61
Consider the concatenation
. Its typical play is as follows:
Finally, we recall the currying and the uncurrying of strategies:
Definition 62
(Currying and uncurrying of strategies [6]) If \(\phi : G\) (resp. \(\psi : H\)) and
(resp.
) for some normalized games A, B and C, then the currying
\(\Lambda (\phi ) : \Lambda (G)\) of \(\phi \) (resp. the uncurrying
\(\Lambda ^\circleddash (\psi ) : \Lambda ^\circleddash (H)\) of \(\psi \)) is defined, respectively, by:
$$\begin{aligned} \Lambda (\phi )&{\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{\Lambda (G)} \mid peel _{\Lambda (G)}^*(\varvec{s}) \in \phi \ \! \} \\ \Lambda ^\circleddash (\psi )&{\mathop {=}\limits ^{\mathrm {df. }}} \{ \varvec{s} \in \mathscr {L}_{\Lambda ^\circleddash (H)} \mid peel _{\Lambda ^\circleddash (H)}^*(\varvec{s}) \in \psi \ \! \}. \end{aligned}$$
Theorem 63
(Constructions on strategies [71]) Derelictions are well-defined strategies, and strategies are closed under \(\otimes \), \(\langle \_, \_ \rangle \), \((\_)^{\dagger }\), \(\ddagger \), \(\Lambda \) and \(\Lambda ^\circleddash \).
Lemma 64
(Hiding lemma on strategies [71]) Let \(\spadesuit _{i \in I}\) be either \(\otimes \), \(\langle \_, \_ \rangle \), \((\_)^{\dagger }\), \(\ddagger \), \(\Lambda \) or \(\Lambda ^\circleddash \), and \(d \in \mathbb {N} \cup \{ \omega \}\). Then, for any family \((\sigma _i)_{i \in I}\) of strategies, we have:
-
1
\(\mathcal {H}^d(\spadesuit _{i \in I}\sigma _i) = \spadesuit _{i \in I} \mathcal {H}^d(\sigma _i)\) if \(\spadesuit _{i \in I}\) is not \(\ddagger \);
-
2
\(\mathcal {H}^d (\sigma _1 \ddagger \sigma _2) = \mathcal {H}^d(\sigma _1) \ddagger \mathcal {H}^d(\sigma _2)\) if \(\mathcal {H}^d(\sigma _1 \ddagger \sigma _2)\) is not yet normalized, and \(\mathcal {H}^d(\sigma _1 \ddagger \sigma _2) = \mathcal {H}^d(\sigma _1) ; \mathcal {H}^d(\sigma _2)\) otherwise.