Abstract
This paper gives an execution trace set based account of computability by imposing restrictions on sets of arbitrary sequences of objects, based on a supplied stock of unary tests and binary operations. This account of finite control computability provides a highly general, top down perspective on computability. We prove equivalence with the Turing machine model, under appropriate assumptions, and show how finite control computability can be used to provide a unified account of computability across multiple levels of abstraction.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
If not, we can define new Turing computable \(\textsc {q}_{i,j}'\) and \(\textsc {q}_{i,m}'\) that do satisfy this requirement by setting iff or and halts before ; and similarly for \(\textsc {q}_{i, m}'\).
References
Abramsky, S.: Information, processes and games. In: Adriaans, P., Benthem, J. (eds.) Philosophy of Information. No. 8 in Handbook of the Philosophy of Science, pp. 483–550. Elsevier (2008)
Blackburn, P., Rijke, M., Venema, Y.: Modal Logic. No. 53 in Cambridge Tracts in Theoretical Computer Science, 4th edn. Cambridge University Press (2002)
Dowek, G.: Execution traces and reduction sequences. lsv.fr/~dowek/Publi/traces.pdf
Gandy, R.: Church’s thesis and principles for mechanisms. In: Barwise, J., Keisler, H.J., Kunen, K. (eds.) Studies in Logic and the Foundations of Mathematics, The Kleene Symposium, vol. 101, pp. 123–148. Elsevier (1980). http://www.sciencedirect.com/science/article/pii/S0049237X08712576
Gurevich, Y.: Sequential abstract-state machines capture sequential algorithms. 1(1), 77–111 (2000). http://portal.acm.org/citation.cfm?doid=343369.343384
Harel, D., Kozen, D., Parikh, R.: Process logic: Expressiveness, decidability, completeness. 25(2), 144–170 (1982). http://www.sciencedirect.com/science/article/pii/0022000082900034
Huber, H.G.M.: Algorithm and formula. Commun. ACM 9(9), 653–654 (1966)
Ju, F., Cui, N., Li, S.: Trace semantics for IPDL. In: van der Hoek, W., Holliday, W.H., Wang, W. (eds.) LORI 2015. LNCS, vol. 9394, pp. 169–181. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-48561-3_14
Kozen, D., Smith, F.: Kleene algebra with tests: completeness and decidability. In: van Dalen, D., Bezem, M. (eds.) CSL 1996. LNCS, vol. 1258, pp. 244–259. Springer, Heidelberg (1997). https://doi.org/10.1007/3-540-63172-0_43
Milner, R.: An algebraic definition of simulation between programs. In: Proceedings of the 2nd International Joint Conference on Artificial Intelligence, pp. 481–489. Morgan Kaufmann Publishers Inc. (1971)
Moschovakis, Y.N.: The logic of functional recursion. In: Dalla Chiara, M.L., Doets, K., Mundici, D., Benthem, J. (eds.) Logic and Scientific Methods. Synthese Library (Studies in Epistemology, Logic, Methodology, and Philosophy of Science), vol. 259, pp. 179–207. Springer, Dordrecht (1997). https://doi.org/10.1007/978-94-017-0487-8_10
Nerode, A.: Linear automaton transformations. Proc. Am. Math. Soc. 9(4), 541–544 (1958)
Pégny, M.: How to make a meaningful comparison of models: the church-turing thesis over the reals. Minds Mach. 26(4), 359–388 (2016). https://doi.org/10.1007/s11023-016-9407-0
Rapaport, W.J.: What is an algorithm? In: Philosophy of Computer Science (Draft), pp. 229–291. https://cse.buffalo.edu/~rapaport/Papers/phics.pdf
Turing, A.M.: On computable numbers, with an application to the Entscheidungsproblem. 2(1), 230–265 (1937). http://onlinelibrary.wiley.com/doi/10.1112/plms/s2-42.1.230/full
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
A Technical Appendix
A Technical Appendix
1.1 A.1 Preliminaries
Fix potentially infinite sets \(\mathbb {G}\) and \(\mathbb {S}\), and a distinguished element \(\mathtt {B}\in \mathbb {G}\). \(\varGamma ^*\) is the set of finite strings over any \(\varGamma \subseteq \mathbb {G}\), with \(\epsilon \) the empty string and \(\varGamma ^+ = \varGamma ^* {\setminus }\{\epsilon \}\). We use \(\mathtt {a}, \mathtt {b}, \dots \) for elements of \(\varGamma \) and \(\mathtt {u}, \mathtt {v}, \dots \) for elements of \(\varGamma ^*\). Sequences of these symbols indicate concatenation.
Definition 6 (Turing machine)
A Turing machine is a tuple \( \mathfrak {M}= \langle S, \varGamma , \delta , s_0 \rangle \), where \(S \subseteq \mathbb {S}\) is a finite set; \(\varGamma \subseteq \mathbb {G}\) is a finite set with \(\mathtt {B}\in \varGamma \); \(\delta : S \times \varGamma \rightarrow S \times \varGamma \times \{\mathsf {L}, \mathsf {R}\}\) is a partial function; \(s_0 \in S\) is the start state.
A Turing machine tape is a pair of strings over \(\varGamma \), written with | indicating the position of an imagined read/write head. A blank tape is denoted . The set of all possible Turing machine tapes is . A configuration of \(\mathfrak {M}\) is a pair where \(s \in S\) and is a machine tape. We also sometimes write for configurations. \(\mathfrak {M}\) gives rise to a partial transition function on its configurations satisfying
is undefined if \(\delta (s, \mathtt {a})\) is. generates a set of sequences of configurations labelled \(\textsc {CRun}_\mathfrak {M}\). If is undefined then \(\vert \mathsf {\sigma } \vert = \alpha + 1\).
Each \(\mathsf {\sigma }\in \textsc {Run}_\mathfrak {M}\) corresponds to sequences \(\mathsf {\sigma }^C \in \textsc {CRun}_\mathfrak {M}\) and \(\mathsf {\sigma }^S \in \textsc {SRun}_\mathfrak {M}\) satisfying \( \mathsf {\sigma }^C[\alpha ] = \langle \mathsf {\sigma }^S[\alpha ], \mathsf {\tau }[\alpha ] \rangle \). Write if there is \(\mathsf {\sigma }\in \textsc {Run}_\mathfrak {M}\) with and .
1.2 A.2 Proof of Theorem 2
Proof. Let \(\boxed {\textsc {a}} / {\mathrel {\leftrightarrows }_{\textsc {a}}} = \{ C_0, C_1, \dots C_n \}\), with \(C_0\) the starting state. We will construct a Turing machine \(\mathfrak {M}\) by considering the tests and operations performed at each \(C_i\). Since \(\mathfrak {q}\) and \(\mathfrak {p}\) are Turing computable, \(\textsc {a}\) is a trace set over \(\mathcal {T}\).
Take \(0 \le i \le n\). Let \(\mathfrak {F}_i \subseteq \mathfrak {q}\times \mathfrak {p}\) be the construction set for \(C_i\) and \(\mathfrak {G}_i \subseteq \mathfrak {q}\) the halting set. Since \(\mathfrak {q}\) and \(\mathfrak {p}\) are both finite, so are \(\mathfrak {F}_i\) and \(\mathfrak {G}_i\). Suppose
for some \(0 \le k_i \le \ell _i\). Each test and operation is Turing computable, so \(\textsc {q}_{i, j}\) is associated with some Turing machine \(\mathfrak {N}_{i, j}\) and \(\textsc {p}_{i, j}\) some machine \(\mathfrak {O}_{i, j}\). Since \(\textsc {a}\) is fully deterministic, we may assume \(\textsc {q}_{i, j} \cap \textsc {q}_{i,m} = \emptyset \) when \(j \ne m\).Footnote 2 By consistency, each pair \(\langle \textsc {q}_{i, j}, \textsc {p}_{i, j} \rangle \) leads to a new equivalence class \(C_{c{(i, j)}}\).
Define a new machine \(\mathfrak {M}= \langle S, \varGamma , \delta , s_0 \rangle \) as follows:
\(\mathfrak {M}= \) “On tape contents with \(\mathtt {u}\in \varGamma ^*\), \(\mathtt {v}\in \varGamma ^+\):
- 1.
Assign \(\mathsf {x}\leftarrow 0\) and .
- 2.
Replace the tape contents with \(\mathsf {y}\).
- 3.
Run all \(\mathfrak {N}_{\mathsf {x}, j}\) with \(j < \ell _\mathsf {x}\) on copies of \(\mathsf {y}\) in parallel until some \(\mathfrak {N}_{\mathsf {x}, \mathsf {z}}\) halts with output .
- 4.
If \(\mathsf {z}< k_\mathsf {x}\):
- 5.
If \(\mathsf {z}\ge k_\mathsf {x}\): halt.”
There are two meta-variables: \(\mathsf {x}\) for the currently considered equivalence class of \(\boxed {\textsc {a}} / {\mathrel {\leftrightarrows }_{\textsc {a}}}\) and \(\mathsf {y}\) for the currently considered tape contents. \(\mathfrak {M}\)’s operation proper starts by carrying out all the tests required in \(C_\mathsf {x}\) (Stage 3). By Lemma 1, some test \(\textsc {q}_{\mathsf {x}, \mathsf {z}}\) will succeed (i.e. output ). If this \(\textsc {q}_{\mathsf {x}, \mathsf {z}}\) belongs to \(\mathfrak {F}_\mathsf {x}\) (i.e. \(\mathsf {z}< k_\mathsf {x}\)) \(\mathfrak {M}\) runs the operation \(\textsc {p}_{\mathsf {x}, \mathsf {z}}\) corresponding to \(\textsc {q}_{\mathsf {x}, \mathsf {z}}\), stores the result in \(\mathsf {y}\) and updates \(\mathsf {x}\) to the new equivalence class from consistency and the process is repeated (Stage 4). Otherwise, the sequence halts and so \(\mathfrak {M}\) halts (Stage 5). Since \(\textsc {a}\) is finite control, \(\mathsf {x}\) takes finitely many values and can be encoded in the states of \(\mathfrak {M}\). In implementing \(\mathfrak {M}\), we require for each \(i \le n\) a unique state \(s_i \in S\) corresponding to the end of Stage 2 with \(\mathsf {x}= i\). This preserves \(\mathsf {x}\)’s value through Stage 2.
Let \(S_\textsc {a}= \{ s_0, \dots s_n\}\). Intuitively, we will define an expansion mapping \((f, h)\) associating each \(C_i \in \boxed {\textsc {a}} / {\mathrel {\leftrightarrows }_{\textsc {a}}}\) with \(s_i\), satisfying \(h(C_i) = \{ \mathsf {\tau }\in \boxed {\textsc {Run}_\mathfrak {M}} \mid \mathsf {\tau }^S[-1] = s_i \} \in \boxed {\textsc {Run}_\mathfrak {M}} / {\mathrel {\leftrightarrows }_{\textsc {Run}_\mathfrak {M}}}\) for all \(i \le n\). Take \(f: \textsc {f}\rightarrow \textsc {Run}_\mathfrak {M}\) so that \(f(\mathsf {\sigma })[0] = \mathsf {\sigma }[0]\) for all \(\mathsf {\sigma }\in \textsc {f}\). Since \(\textsc {f}\) and \(\textsc {Run}_\mathfrak {M}\) are both fully deterministic, starting with the same domain, this is a well-defined bijection. If we can show \(\mathsf {\sigma }\mathrel {\ll }f(\mathsf {\sigma })\) and \(\vert \mathsf {\sigma } \vert < \omega \) implies \(\vert f(\mathsf {\sigma }) \vert < \omega \) then we can extend \(f\) to an expansion mapping \((f, h)\) using Lemma 3. To that end, take \(\mathsf {\sigma }\in \textsc {f}\) and let \(\mathsf {\tau }= f(\mathsf {\sigma })\). \(\mathsf {\tau }\in \textsc {Run}_\mathfrak {M}\) so is associated with sequences \(\mathsf {\tau }^S \in \textsc {SRun}_\mathfrak {M}\) and \(\mathsf {\tau }^C \in \textsc {CRun}_\mathfrak {M}\). Define \(g_\mathsf {\sigma }: \vert \mathsf {\sigma } \vert \rightarrow \vert \mathsf {\tau } \vert \) so that:
-
1.
\(g_\mathsf {\sigma }(0)\) is the least ordinal \(\beta \) for which \(\mathsf {\tau }^S[\beta ] \in S_\textsc {a}\);
-
2.
for all \(\alpha \) with \(\alpha + 1 < \vert \mathsf {\sigma } \vert \), \(g_\mathsf {\sigma }(\alpha +1)\) is the least ordinal \(\beta \) such that \(g_\mathsf {\sigma }(\alpha ) < \beta \) and \(\mathsf {\tau }^S[\beta ] \in S_\textsc {a}\);
Clearly, \(g_\mathsf {\sigma }\) is strictly increasing. We can show by induction that (I) \(\mathsf {\sigma }[\alpha ] = \mathsf {\tau }[g_\mathsf {\sigma }(\alpha )]\) and (II) \(\mathsf {\sigma }[0, \alpha +1) \in C_i\) iff \(\mathsf {\tau }^S[g_\mathsf {\sigma }(\alpha )] = s_i\) for all \(\alpha < \vert \mathsf {\sigma } \vert \) .
Thus for each \(\mathsf {\sigma }\in \textsc {a}\) we can define a strictly increasing \(g_\mathsf {\sigma }: \vert \mathsf {\sigma } \vert \rightarrow \vert f(\mathsf {\sigma }) \vert \) such that \(\mathsf {\sigma }[\alpha ] = f(\mathsf {\sigma })[g_\mathsf {\sigma }(\alpha )]\) for all \(\alpha \ < \vert \mathsf {\sigma } \vert \), so \(\mathsf {\sigma }\mathrel {\ll }f(\mathsf {\sigma })\) for all \(\mathsf {\sigma }\in \textsc {a}\). Next we show that \(\vert \mathsf {\sigma } \vert < \omega \) implies \(\vert f(\mathsf {\sigma }) \vert < \omega \). Suppose \(\mathsf {\sigma }\in \textsc {a}\) with \(\vert \mathsf {\sigma } \vert < \omega \). Then \(\mathsf {\sigma }\in C_i \cap \textsc {a}\) for some i and so by halting there is \(\textsc {q}_{i,j}\) with \(k_i \le j < \ell _i\) such that \(\mathsf {\sigma }[-1] \in \textsc {q}_{i,j}\). Thus . Let \(\mathsf {\tau }= f(\mathsf {\sigma })\). As established by Claims (I) and (II) above, \(\mathsf {\tau }[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)] = \mathsf {\sigma }[-1]\) and \(\mathsf {\tau }^S[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)] = s_i\). So in \(\mathsf {\tau }^C[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)]\) \(\mathfrak {M}\) has just finished Stage 2 with \(\mathsf {x}= i\). Since , when \(\mathfrak {M}\) moves to Stage 3 it sets \(\mathsf {z}\leftarrow j\). Thus \(\mathsf {z}\ge k_\mathsf {x}\) and so \(\mathfrak {M}\) next moves to Stage 5, halting. Thus, \(\mathsf {\tau }\) is finite and \(f\) meets the conditions of Lemma 3 and can be extended to an expansion mapping \((f, h)\) from \(\textsc {a}\) to \(\textsc {Run}_\mathfrak {M}\).
Finally, we turn to verifying that \(f(C_i) \in \boxed {\textsc {Run}_\mathfrak {M}} / {\mathrel {\leftrightarrows }_{\textsc {Run}_\mathfrak {M}}}\) for all \(C_i \in \boxed {\textsc {a}} / {\mathrel {\leftrightarrows }_{\textsc {a}}}\). It is a quick consequence of Claim (II) that if \(\mathsf {\sigma }\in C_i\) then \(h(\mathsf {\sigma })^S[-1] = s_i\). Conversely, suppose \(\mathsf {\tau }^S[-1] = s_i\) for some \(\mathsf {\tau }\in \boxed {\textsc {Run}_\mathfrak {M}}\). Since \(f\) is surjective onto \(\textsc {Run}_\mathfrak {M}\) there is \(\mathsf {\sigma }\in \textsc {a}\) with \(f(\mathsf {\sigma })[0, \vert \mathsf {\tau } \vert ) = \mathsf {\tau }\) and \(f(\mathsf {\sigma })^S[\vert \mathsf {\tau } \vert - 1] = s_i\). Let \( \alpha = \max \{ \beta \mid g_\mathsf {\sigma }(\beta ) < \vert \mathsf {\tau } \vert - 1 \} \). Using Claim (II), we can see that \(\mathsf {\sigma }[0, \alpha + 2) \in C_i\). From this we see \(f(C_i) = \{ \mathsf {\tau }\in \boxed {\textsc {Run}_\mathfrak {M}} \mid \mathsf {\tau }= f(\mathsf {\sigma }) \text { for some } \mathsf {\sigma }\in C_i \} = \{ \mathsf {\tau }\in \boxed {\textsc {Run}_\mathfrak {M}} \mid \mathsf {\tau }^S[-1] = s_i \}\). Hence \(f(C_i) \in \boxed {\textsc {Run}_\mathfrak {M}} / {\mathrel {\leftrightarrows }_{\textsc {Run}_\mathfrak {M}}}\) by definition of \(\mathrel {\leftrightarrows }_{\textsc {Run}_\mathfrak {M}}\).
1.3 A.3 Proof of Theorem 3
Definition 7
Let \(\mathfrak {M}= \langle S, \varGamma , \delta , s_0 \rangle \) be a Turing machine and \(T \subseteq S\). Write if either or for some \(u \notin T\) with . Write if is undefined or for \(t \notin T\) with .
Proof (Theorem 3). Part 1 is immediate from Lemma 6. Suppose \(\boxed {\textsc {a}} / {\mathrel {\leftrightarrows }_{\textsc {a}}} = \{ C_0, C_1, \dots C_n\}\) and \(\textsc {Run}_\mathfrak {M}\) carries out \(\textsc {a}\) via \((f, h)\). For each \(0\le i \le n\) there is an \(s_i \in S\) with \( h(C_i) = \{ \mathsf {\tau }\in \boxed {\textsc {Run}_\mathfrak {M}} \mid \mathsf {\tau }^S[-1] = s_i \} \). Take \(S_\textsc {a}= \{s_0, \dots s_n\}\).
Let \(0 \le i \le n\). Take the minimal set \(\{D_{i,0}, D_{i,1}, \dots D_{i,k_i}\} \subseteq \boxed {\textsc {a}} / {\mathrel {\leftrightarrows }_{\textsc {a}}}\) where \( \{ \mathsf {\sigma }\in \boxed {\textsc {a}} \mid \mathsf {\sigma }[0, -1) \in C_i \} \subseteq \bigcup _{0 \le j \le k_i} D_{i,j} \). Let \(0 \le j \le k_i\) and suppose \(h(D_{i,j}) = \{ \mathsf {\tau }\in \boxed {\textsc {Run}_\mathfrak {M}} \mid \mathsf {\tau }^S[-1] = t_{i,j} \}\) (so \(t_{i,j} = s_\ell \) for some \(\ell \)). Define \(\mathfrak {N}_{i,j}\) and \(\mathfrak {O}_{i, j}\) as:
We have that
Let . and . Clearly, \(\textsc {q}_{i, j}\) and \(\textsc {p}_{i,j}\) are Turing computable. Repeating the above for each \(0 \le j \le k_i\), take \(\mathfrak {F}_i := \{ \langle \textsc {q}_{i,j}, \textsc {p}_{i,j} \rangle \mid 0 \le j \le k_i \}\). The halting set \(\mathfrak {G}_i\) for \(C_i\) is defined similarly. Repeating the same process for each \(C_i\) provides \(\mathfrak {q}\) and \(\mathfrak {p}\).
In Stage (II), we verify that construction holds using \(\mathfrak {q}\) and \(\mathfrak {p}\). To do this, let \(0 \le i \le n\). We start with composition. Let \(\mathsf {\sigma }\in \{ \mathsf {\tau }\in \boxed {\textsc {a}} \mid \mathsf {\tau }[0, -1) \in C_i \}\). Then \(\mathsf {\sigma }[0, -1) \in C_i\) and \(\mathsf {\sigma }\in D_{i,j}\) for some j. Take \(\mathsf {\tau }= h{(\mathsf {\sigma })}\). We have \(h(\mathsf {\sigma }[0, -1)) = \mathsf {\tau }[0, g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2) + 1) \in h{(C_i)}\) and \(\mathsf {\tau }\in h{(D_{i,j})}\). Thus we know \(\mathsf {\tau }^S[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)] = s_i\) and \(\mathsf {\tau }^S[-1] = \mathsf {\tau }[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)] = t_{i,j}\). We claim that
If not, then there must be some \(g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)< \beta < g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)\) with
and \(\mathsf {\tau }^S[\beta ] \in S_\textsc {a}\). But then \(\mathsf {\tau }[0, \beta + 1) \in h(C_k)\) for some k, impossible by Corollary 1. Since \(\mathsf {\tau }[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)] = \mathsf {\sigma }[-2]\) and \(\mathsf {\tau }[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)] = \mathsf {\sigma }[-1]\), we conclude that \( \langle s_i, \mathsf {\sigma }[-2] \rangle \underset{S_\textsc {a}}{\overset{\mathfrak {M}}{\rightsquigarrow }} \langle t_{i,j}, \mathsf {\sigma }[-1] \rangle \). From this we have , so \(\mathsf {\sigma }[-2] \in \textsc {q}_{i,j}\), and that \(\mathfrak {O}_{i,j}(\mathsf {\sigma }[-2]) = \mathsf {\sigma }[-1]\), so . We have \(\mathsf {\sigma }\in C_i \circ \textsc {q}_{i,j} \circ \textsc {p}_{i,j}\).
In the other direction, suppose for some j that \(\mathsf {\sigma }\in C_i \circ \textsc {q}_{i, j} \circ \textsc {p}_{i,j}\), so as above \(\mathsf {\sigma }[0, -1) \in C_i\), and \(\mathfrak {O}_{i,j}(\mathsf {\sigma }[-2]) = \mathsf {\sigma }[-1]\). We wish to show that \(\mathsf {\sigma }\in \boxed {\textsc {a}}\). Since \(\mathsf {\sigma }[0, -1) \in C_i \subseteq \boxed {\textsc {a}}\), there is some \(\mathsf {\tau }\in \textsc {a}\) with \(\mathsf {\tau }[0, \vert \mathsf {\sigma } \vert - 1) = \mathsf {\sigma }[0, -1)\). If we can establish that \(\vert \mathsf {\sigma } \vert \le \vert \mathsf {\tau } \vert \) and \(\mathsf {\tau }[\vert \mathsf {\sigma } \vert - 1] = \mathsf {\sigma }[-1]\) we will have that \(\mathsf {\tau }[0, \vert \mathsf {\sigma } \vert ) = \mathsf {\sigma }\), so \(\mathsf {\sigma }\in \boxed {\textsc {a}}\). Since \(\mathfrak {O}_{i,j}(\mathsf {\sigma }[-2]) = \mathsf {\sigma }[-1]\), we have \( \langle s_i, \mathsf {\sigma }[-2] \rangle \underset{S_\textsc {a}}{\overset{\mathfrak {M}}{\rightsquigarrow }} \langle t_{i,j}, \mathsf {\sigma }[-1] \rangle \). By expansion, \(\mathsf {\sigma }[-2] = \mathsf {\tau }[\vert \mathsf {\sigma } \vert - 2] = f(\mathsf {\tau })[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)]\). Since \(\mathsf {\tau }[0, \vert \mathsf {\sigma } \vert - 1) = \mathsf {\sigma }[0, -1) \in C_i\) we know \(f(\mathsf {\tau })^S[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)] = h(\mathsf {\tau }[0, \vert \mathsf {\sigma } \vert - 1))^S[-1] = s_i\). Hence we have \(f(\mathsf {\tau })^C[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)] = \langle s_i, \mathsf {\sigma }[-2] \rangle \) so \( f(\mathsf {\tau })^C[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)] \underset{S_\textsc {a}}{\overset{\mathfrak {M}}{\rightsquigarrow }} \langle t_{i,j}, \mathsf {\sigma }[-1] \rangle \). It follows there must be \(\beta > g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)\) with \(f(\mathsf {\tau })^C[\beta ] = \langle t_{i,j}, \mathsf {\sigma }[-1] \rangle \). We then have \(f{(\mathsf {\tau })}[0, \beta + 1) \in h(D_{i,j})\) so by Lemma 5 \(f{(\mathsf {\tau })}[0, \beta + 1) = h{(\mathsf {\tau }[0, \alpha + 1))}\) for some \(\alpha < \vert \mathsf {\tau } \vert \), where \(g_\mathsf {\tau }(\alpha ) = \beta \). Since \(g_\mathsf {\tau }(\vert \mathsf {\sigma } \vert - 2) < \beta \), \(\vert \mathsf {\sigma } \vert - 2 < \alpha \). Thus \(\vert \mathsf {\sigma } \vert \le \vert \mathsf {\tau } \vert \) and so \(g_\mathsf {\tau }(\vert \mathsf {\sigma } \vert - 1)\) is defined. \(\beta \ge g_\mathsf {\tau }(\vert \mathsf {\sigma } \vert - 1)\) otherwise \(f{(\mathsf {\tau })}[0, \beta + 1) \notin h(D_{i,j})\) by Corollary 1. \(\mathsf {\tau }[0, \vert \mathsf {\sigma } \vert ) \in C_k\) for some k, so \(f(\mathsf {\tau })^S[g_\mathsf {\tau }(\vert \mathsf {\sigma } \vert - 1)] \in S_\textsc {a}\). Thus \(\beta \not > g_\mathsf {\tau }(\vert \mathsf {\sigma } \vert - 1)\) or else , contradicting \(f(\mathsf {\tau })^C[\beta ] = \langle t_{i,j}, \mathsf {\sigma }[-1] \rangle \). Thus \(g_\mathsf {\tau }(\vert \mathsf {\sigma } \vert - 1) = \beta \). We have \( \mathsf {\tau }[\vert \mathsf {\sigma } \vert - 1] = f(\mathsf {\tau })[g_\mathsf {\tau }(\vert \mathsf {\sigma } \vert - 1)] = f(\mathsf {\tau })[\beta ] = \mathsf {\sigma }[-1] \). Since \(\mathsf {\tau }[0, \vert \mathsf {\sigma } \vert -1) = \mathsf {\sigma }[0, -1)\) we conclude \(\mathsf {\tau }[0, \vert \mathsf {\sigma } \vert ) = \mathsf {\sigma }\). Thus \(\mathsf {\sigma }\in \{ \mathsf {\upsilon }\mid \mathsf {\upsilon }[0, -1) \in C_i \}\). This establishes composition.
Consistency is easy to verify, since if \(\mathsf {\sigma }\in C_i \circ \textsc {q}_{i,j} \circ \textsc {p}_{i,j}\) then following the reasoning above where \(\mathsf {\tau }\in \textsc {a}\) has \(\mathsf {\tau }[0, \vert \mathsf {\sigma } \vert ) = \mathsf {\sigma }\), \( h(\mathsf {\sigma }) = f(\mathsf {\tau })[0, g_\mathsf {\tau }(\vert \mathsf {\sigma } \vert - 1) + 1) \in h(D_{i,j}) \) and since \(h\) is injective \(\mathsf {\sigma }\in D_{i,j}\). Thus, construction holds with \(\mathfrak {q}\) and \(\mathfrak {p}\). Halting follows similar reasoning to construction, except that we must establish
The details are omitted for reasons of space.
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Thompson, D. (2021). Computable Execution Traces. In: Silva, A., Wassermann, R., de Queiroz, R. (eds) Logic, Language, Information, and Computation. WoLLIC 2021. Lecture Notes in Computer Science(), vol 13038. Springer, Cham. https://doi.org/10.1007/978-3-030-88853-4_15
Download citation
DOI: https://doi.org/10.1007/978-3-030-88853-4_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-88852-7
Online ISBN: 978-3-030-88853-4
eBook Packages: Computer ScienceComputer Science (R0)