Skip to main content

Computable Execution Traces

  • Conference paper
  • First Online:
Logic, Language, Information, and Computation (WoLLIC 2021)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 13038))

  • 461 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Sequence and task composition are sometimes called fusion or coalesced product in literature on trace-based semantics for dynamic logic and process logic [6, 8, 9].

  2. 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

  1. 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)

    Google Scholar 

  2. Blackburn, P., Rijke, M., Venema, Y.: Modal Logic. No. 53 in Cambridge Tracts in Theoretical Computer Science, 4th edn. Cambridge University Press (2002)

    Google Scholar 

  3. Dowek, G.: Execution traces and reduction sequences. lsv.fr/~dowek/Publi/traces.pdf

  4. 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

  5. Gurevich, Y.: Sequential abstract-state machines capture sequential algorithms. 1(1), 77–111 (2000). http://portal.acm.org/citation.cfm?doid=343369.343384

  6. Harel, D., Kozen, D., Parikh, R.: Process logic: Expressiveness, decidability, completeness. 25(2), 144–170 (1982). http://www.sciencedirect.com/science/article/pii/0022000082900034

  7. Huber, H.G.M.: Algorithm and formula. Commun. ACM 9(9), 653–654 (1966)

    Google Scholar 

  8. 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

    Chapter  Google Scholar 

  9. 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

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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

    Chapter  Google Scholar 

  12. Nerode, A.: Linear automaton transformations. Proc. Am. Math. Soc. 9(4), 541–544 (1958)

    Article  Google Scholar 

  13. 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

    Article  Google Scholar 

  14. Rapaport, W.J.: What is an algorithm? In: Philosophy of Computer Science (Draft), pp. 229–291. https://cse.buffalo.edu/~rapaport/Papers/phics.pdf

  15. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Declan Thompson .

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

$$\begin{aligned} \mathfrak {F}_i&= \{ \langle \textsc {q}_{i, 0}, \textsc {p}_{i, 0} \rangle , \langle \textsc {q}_{i, 1}, \textsc {p}_{i, 1} \rangle , \dots \langle \textsc {q}_{i, k_i-1}, \textsc {p}_{i, k_i - 1} \rangle \} \\ \mathfrak {G}_i&= \{ \textsc {q}_{i, k_i}, \textsc {q}_{i, k_i+1}, \dots \textsc {q}_{i, \ell _i - 1} \} \end{aligned}$$

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. 1.

    Assign \(\mathsf {x}\leftarrow 0\) and .

  2. 2.

    Replace the tape contents with \(\mathsf {y}\).

  3. 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. 4.

    If \(\mathsf {z}< k_\mathsf {x}\):

    1. a.

      Run \(\mathfrak {O}_{\mathsf {x}, \mathsf {z}}\) on \(\mathsf {y}\).

    2. b.

      Assign \(\mathsf {x}\leftarrow c{(\mathsf {x}, \mathsf {z})}\) and \(\mathsf {y}\) to the tape content generated in stage 4a and go to stage 2.

  5. 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. 1.

    \(g_\mathsf {\sigma }(0)\) is the least ordinal \(\beta \) for which \(\mathsf {\tau }^S[\beta ] \in S_\textsc {a}\);

  2. 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:

figure a

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

$$ \langle \mathsf {\tau }^S[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)], \mathsf {\tau }[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)] \rangle \underset{S_\textsc {a}}{\overset{\mathfrak {M}}{\rightsquigarrow }} \langle \mathsf {\tau }^S[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)], \mathsf {\tau }[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)] \rangle . $$

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

$$ \langle \mathsf {\tau }[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)], \mathsf {\tau }[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 2)] \rangle \underset{S_\textsc {a}}{\overset{\mathfrak {M}}{\rightsquigarrow }} \langle \mathsf {\tau }^S[\beta ], \mathsf {\tau }[\beta ] \rangle $$

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

$$\begin{aligned} f{(\mathsf {\sigma })}^C[g_\mathsf {\sigma }(\vert \mathsf {\sigma } \vert - 1)] \underset{S_\textsc {a}}{\overset{\mathfrak {M}}{\rightsquigarrow }} \ \downarrow . \end{aligned}$$

The details are omitted for reasons of space.

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics