LPTA
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
(typeA
moving left) orA>
(typeA
moving right).
- A marble is either
- A finite ordered list of collision rules.
Transition
Given a configuration C = sequence of marbles:
- Identify an adjacent colliding pair
X> <Y
. - Apply the first matching rule in the ruleset.
- Replace the pair with the result marbles as specified by the rule.
- 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.