Piecewise Affine Function

From BusyBeaverWiki
Revision as of 15:07, 28 October 2025 by Sligocki (talk | contribs) (Sligocki moved page Linear-Inequality Affine Transformation Automata to Piecewise Affine Function: Switch to name more common in literature)
Jump to navigation Jump to search

Note: This article is currently in flux as we investigate previous literature on the topic (called piecewise affine functions (PAF)) shared by @savask: https://discord.com/channels/960643023006490684/1239205785913790465/1422997913558323392

Linear-Inequality Affine Transformation Automata (LIATA) are a model for computation based upon applying affine transformations to vectors based on cases defined by linear inequalities. They are a generalization of the rules for BMO1 and were proven to be Turing complete.

Formal Definition

A n-dimension, k-case LIATA is a piecewise defined partial function f:ℤn→ℤn:f(x→)={f0(x→)if C0(x→)f1(x→)if C1(x→)⋮fk−1(x→)if Ck−1(x→)Where each fi:ℤn→ℤn is an affine function and each Ci:ℤn→{T,F} is a "linear inequality condition" (defined below) such that for all x→ at most one condition Ci(x→) applies. If none of the conditions apply to x→, we say that it halts on that configuration.

Let a linear inequality term be any equation of the form g(x→)∼c where g:ℤn→ℤ is a linear function and ~ is replaced by any (in)equality relation (=,<,≤,>,≥). Then let a linear inequality condition be any combination of linear inequality terms using logical AND, OR and NOT operations.

So, for example, the following are all linear inequality conditions:

  • a<b represented formally as a−b<0
  • 3a≤b<4a represented formally as (b−3a≥0)∧(4a−b>0)
  • a=2 (note that we allow equalities as well)

Given a LIATA f, we say that it halts in k steps starting from configuration x→ iff fk(x→) is undefined.

Example

An example of a LIATA are the rules for BMO1:f(a,b)={(a−b,4b+2)if a>b(2a+1,b−a)if a<bwhere f(n,n) is undefined. BMO1 halts iff there exists k such that fk(1,2) is undefined (in other words fk−1(1,2)=(n,n) for some n).

This is a 2-dimension, 2-case LIATA. The 2 dimensions are the parameters a,b and the two cases are the a<b and a>b rows. For each case the parameters are transformed via an affine transformation.

Turing Complete

LIATA are Turing complete. This has been proven by implementing Minsky machines as LIATA:

  • @Bard's proved that 3-dim LIATA are Turing complete: Discord link
  • @star's proved that 2-dim LIATA are Turing complete: Discord link
  • In progress: Shawn Ligocki is working on a proof that 2-case LIATA are Turing complete: Discord link