LPTA

From Esolang
Jump to navigation Jump to search

Linear Pinball Transition Automata (abbreviated as LPTA) is a collision-based esoteric programming language and abstract computational model, created in 2025 by User:I am islptng. It generalizes the behavior of "pinballs" (marbles) moving on a line into a Markov-like string rewriting system, but with semantics inspired by physical collisions.

Overview

LPTA models computation as a set of marbles moving along an infinite one-dimensional track. Each marble moves either left or right, and computation emerges solely from collisions between marbles. No external controller is assumed: all dynamics are determined by the collision rules.

Formal definition

An LPTA consists of:

  • A countable set of types Σ.
  • A finite sequence of marbles placed on an infinite track.
    • A marble is either <A (type A moving left) or A> (type A moving right).
  • A finite ordered list of collision rules.

Transition

Given a configuration C = sequence of marbles:

  1. Identify an adjacent colliding pair X> <Y.
  2. Apply the first matching rule in the ruleset.
  3. Replace the pair with the result marbles as specified by the rule.
  4. Repeat until no further collisions are possible.

The system halts when no rewrite step is available. Rules are checked in textual order, and the first applicable one takes precedence, exactly as in a Markov algorithm.

If no rule matches a collision, the two marbles pass through each other unchanged.

LPTA-Lang notation

LPTA-Lang is a minimal syntax for encoding LPTA computations. It directly expresses marbles, collision rules, and the initial track state.

Marble notation

  • <TYPE for a left-moving marble. Example: <Head, <1.
  • TYPE> for a right-moving marble. Example: 0>, Add>.
  • Type names may include any characters except spaces, <, and >.

Collision rules

Rules must be written in the format:

NAME: X + Y = RESULT;
  • X, Y ∈ Σ (types only; direction is ignored).
  • The left-hand side matches any collision of the form X> <Y.
  • The right-hand side RESULT is a sequence of marbles, possibly empty, written using < and >.
  • Rules are checked in order, with the first applicable one applied.

Example:

Annihilate: A + B = ;
Bounce: A + C = <A C>;

Initial track state

The starting configuration is written as a space-separated sequence of marbles, ordered from left to right. Example:

<A B> <C

means <A is leftmost, B> is in the middle, and <C is rightmost.

Computational class

LPTA is a collision-based rewriting system closely related to Markov algorithms. By encoding strings into marble arrangements and simulating rewriting, LPTA can simulate Markov algorithms and is therefore Turing complete.