# 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 arrays 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. Note that the value part is optional: if we only consider the name of element x (exclude the value part of the command) element x is considered to be a letter in data storage, corresponding to its name.

`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. Note that the value part is optional.

`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. Note that the value part is optional.

`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. Note that the value part is optional: if only the value part here is considered, the element of the name x is concatenated with the value it is being summed with.

`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. Note that the value part is optional.

`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. Here, the value part is needed.

`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. Here, the value part is needed.

`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. Here, the value part is needed.

`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: "123", y: "456"}`

becomes `{x: {a: "1", b: "2", c: "3"}, y: {a: "4", b: "5", c: "6"}}`

.

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

implodes every element in set P, e.g. `{x: {a: "1", b: "2", c: "3"}, y: {a: "4", b: "5", c: "6"}}`

becomes `{x: "123", y: "456"}`

.

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

explodes the element named x with the value "123" in set P.

`The elements of the names a, b, c and values "1", "2", "3" of set P have been calculated to be one element.`

implodes the elements `{a: "1", b: "2", c: "3"}`

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, separate 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.