# TPLHBPTBOTEW

**TPLHBPTBOTEW**, which is an acronym for **This Programming Language Has Been Proven To Be On The Esolangs Wiki**, is an esoteric programming language created by User:Andrew3335 and me (User:Gamer) that was designed to look like a math paper.

## Contents

## Language Overview

### Concept

Every TPLHBPTBOTEW program must start with `_Name of Your Paper_`

. If this is not found at the beginning of the program, it results in a syntax error.

The only data type in this language is the **set**. Sets are not unordered; they can be ordered in a specific way and they will stay ordered exactly that way. The thing that makes them different from lists in other languages, however, is that each element's **value** must be different. Their **names** do not have to be different.

An element has a name and a value which must be set simultaneously. How to do this is described in the **Commands** section.

You can add and remove elements (and sets, because sets are also considered elements) from a set, output elements of a set (or the set itself), explode and implode elements of a set, etc. More details are given in the **Commands** section.

As far as flow control goes, we decided to only add if statements, for loops and while loops. To our knowledge, nothing else is needed to make a language Turing-complete.

### Commands

`The element of the name x and value 2 has been proven to be in set P.`

adds an element named x with the value 2 to set P. Note that x cannot be a set. A different command is needed in order to add a set to another set.

`The proof for the element of the name x and value 2 being in set P has been proven weak.`

removes the element named x with the value 2 from set P.

`The nth element of set P has been fully computed.`

outputs the nth element of set P. You can also use `The last element ...`

to output the last element of set P.

`The element of the name x and value 2 of set P has been fully computed.`

outputs the element named x with the value of 2 in set P.

`The element of the name x and value 2 of set P has been calculated to be the sum of the element of the name x and value 2 of set P and 2.`

is equivalent to `x = 2; x = x + 2`

in Python 3.

`The element of the name x and value 2 of set P has been calculated to be the product of the element of the name x and value 2 of set P and 2.`

is equivalent to `x = 2; x = x * 2`

in Python 3.

`The element of the name x and value 2 of set P has been calculated to be the difference of the element of the name x and value 2 of set P and 2.`

is equivalent to `x = 2; x = x - 2`

in Python 3.

`The element of the name x and value 2 of set P has been calculated to be the quotient of the element of the name x and value 2 of set P and 2.`

is equivalent to `x = 2; x = x / 2`

in Python 3.

`The element of the name x and value 2 of set P has been calculated to be the modulus of the element of the name x and value 2 of set P and 2.`

is equivalent to `x = 2; x = x % 2`

in Python 3.

`Set P has been fully computed.`

outputs set P.

`Set A has been included in set P following intense calculation.`

adds set A to set P.

`Set P's elements have been mirrored after more calculations.`

mirrors set P, i.e. the first element becomes the last and vice versa.

`Set P has been computed to be {x: 1, y: 2, z: 3}.`

is *almost* equivalent to `P = set(["1", "2", "3"])`

in Python 3. However, sets are unordered in Python 3, while in TPLHBPTBOTEW, they are not. Names also can't be given to the elements in Python 3.

`Set P has been computed to be composed of its individual elements.`

explodes every element in set P, e.g. `{x: "Hello", y: "World"}`

becomes `{x: {a: "H", b: "e", c: "l", d: "l", e: "o"}, y: {a: "W", b: "o", c: "r", d: "l", e: "d"}}`

.

`Set P has been computed to be the joining of its individual elements.`

implodes every element in set P, e.g. `{x: {a: "H", b: "e", c: "l", d: "l", e: "o"}, y: {a: "W", b: "o", c: "r", d: "l", e: "d"}}`

becomes `{x: "Hello", y: "World"}`

.

`The element of the name x and value 2 of set P has been calculated to be multiple elements.`

explodes the element named x with the value 2 in set P.

`The elements of the names a, b, c, d, e and values "h", "e", "l", "l", "o" of set P have been calculated to be one element.`

implodes the elements `{a: "h", b: "e", c: "l", d: "l", e: "o"}`

in set P.

`Set P has been computed to contain a copy of itself, named set A.`

makes a copy of set P named set A and adds it to set P.

#### Flow Control Commands

If the element of the name x and value 2 has been proven to be in set P, then ... In the other case that the proof for the element of the name x and value 2 being in set P has been proven weak, then ...

The above is equivalent to `x = 2; if x in P: ...; elif x not in P: ...`

in Python 3.

`In any other case, ...`

is equivalent to `else: ...`

in Python 3.

**Important:** If you want to have multiple expressions in an if statement, seperate them with commas. The last one, however, should be preceded by `, and `

instead of `, `

. For example: `If the element of the name x and value 2 has been proven to be in set P, then the 1st element of set P has been fully computed, the element of the name x and value 2 of set P has been fully computed, the last element of set P has been fully computed, and set P has been fully computed.`

`For each element of the name e and value v in set P, applying to the nth next element, ...`

is *almost* equivalent to `for v in P: ...`

in Python 3, except each iteration uses the nth next element instead of the next one (however, you can use `... the 1st next element ...`

or just `... the next element ...`

to iterate over each element). Also note that e is not used in the Python 3 (semi-)equivalent at all, since you cannot name elements of a set in Python 3.

`While the element of the name x and value 2 has been proven to be in set P, ...`

is equivalent to `x = 2; while x in P: ...`

in Python 3.

## Examples

### Truth-machine

Due to the fact that this language has no input capabilities, this will have to do.

_Truth-machine_ 0/1 has been proven to be in set P. If 0 has been proven to be in set P, then the last element of set P has been fully computed. In any other case, 1 has been proven to be in set P, and while 1 has been proven to be in set P, the last element of set P has been fully computed.

## Computational class

We, the creators of TPLHBPTBOTEW, believe that it is Turing-complete, however it has not been proven yet.

## Implementations

Currently, there are no implementations for TPLHBPTBOTEW and we do not have the patience or skill to make an interpreter/compiler, however we would surely like to see an implementation of this language.

## See also

- English, the inspiration for this language.