Table of Contents
Fetching ...

AuDaLa is Turing Complete

Tom T. P. Franken, Thomas Neele

TL;DR

This work addresses the expressiveness of the data-autonomous language AuDaLa by showing it can simulate a Turing machine, thereby proving Turing completeness. It introduces a concrete AuDaLa encoding of a TM using TapeCell and Control structures and guides the verification through a semantic mapping between AuDaLa implementation configurations and TM configurations, supported by auxiliary lemmas. The main contribution is establishing a formal bridge between AuDaLa's data-centric execution model and classical computability theory, enabling verification of AuDaLa programs. Future work aims to generalize the approach to a full system and to accommodate weak memory semantics.

Abstract

AuDaLa is a recently introduced programming language that follows the new data autonomous paradigm. In this paradigm, small pieces of data execute functions autonomously. Considering the paradigm and the design choices of AuDaLa, it is interesting to determine the expressiveness of the language and to create verification methods for it. In this paper, we take our first steps to such a verification method by implementing Turing machines in AuDaLa and proving that implementation correct. This also proves that AuDaLa is Turing complete.

AuDaLa is Turing Complete

TL;DR

This work addresses the expressiveness of the data-autonomous language AuDaLa by showing it can simulate a Turing machine, thereby proving Turing completeness. It introduces a concrete AuDaLa encoding of a TM using TapeCell and Control structures and guides the verification through a semantic mapping between AuDaLa implementation configurations and TM configurations, supported by auxiliary lemmas. The main contribution is establishing a formal bridge between AuDaLa's data-centric execution model and classical computability theory, enabling verification of AuDaLa programs. Future work aims to generalize the approach to a full system and to accommodate weak memory semantics.

Abstract

AuDaLa is a recently introduced programming language that follows the new data autonomous paradigm. In this paradigm, small pieces of data execute functions autonomously. Considering the paradigm and the design choices of AuDaLa, it is interesting to determine the expressiveness of the language and to create verification methods for it. In this paper, we take our first steps to such a verification method by implementing Turing machines in AuDaLa and proving that implementation correct. This also proves that AuDaLa is Turing complete.
Paper Structure (10 sections, 17 theorems, 5 equations)

This paper contains 10 sections, 17 theorems, 5 equations.

Key Result

Lemma 1

An AuDaLa step $s$ is deterministic if it cannot be executed by an idle state $P$ in the execution of $P_{\mathit{TS}}$ s.t. $s$ contains a data race starting in $P$.

Theorems & Definitions (35)

  • Definition 1: Turing machine transition
  • Definition 2: Implementation Configuration
  • Definition 3: Determinism
  • Definition 4: Data Race
  • Lemma 1: AuDaLa Determinism
  • proof
  • Lemma 2
  • proof
  • Lemma 3: Executing init in the initial state
  • proof
  • ...and 25 more