Gödelfish

Gödelfish is based on a Gödel numbering of the esoteric programming language Deadfish. It is also a Turing complete Zero-dimensional programming language in its own right, based on a specific translation to (and from) Brainfoctal.
A Gödelfish program, 𝜑̈, can be formed from Deadfish by making the following substitutions and interpreting the result as a base 4 integer:
Deadfish	Gödelfish (Base 4)
d 	0
i 	1
s 	2
o 	3
==Conversion to Brainfoctal==
Any Gödelfish program, 𝜑̈, can be converted to a corresponding Brainfoctal value, β, using the bijectivethis is likely a lie, technically, and may need some qualification.
continuous piecewise linear function bidso(x):
b:\mathbb{R} \to \mathbb{N} \text{ given by } b(\ddot{\varphi}) = \beta
b^{-1}:\mathbb{N} \to \mathbb{R} \text{ given by }b^{-1}(\beta) = \ddot{\varphi}
b(\ddot{\varphi}) = 
 \begin{cases}
 \sum_{i=0}^{\lfloor \log_4 \ddot{\varphi} \rfloor + 1} b_{idso}\left(\left\lfloor{\frac{\ddot{\varphi}}{4^i}}\right\rfloor \bmod 4\right)
 \cdot 8^{\sum_{j=0}^{i} \left\lfloor \log_8\left(b_{idso}\left(\left\lfloor{\frac{\ddot{\varphi}}{4^j}}\right\rfloor \bmod 4\right)\right) \right\rfloor + 1} 
 ,& \text{if } \ddot{\varphi} \in \mathbb{N} \\
 b_{idso}(\ddot{\varphi}),& \text{if } \ddot{\varphi} \notin \mathbb{N} \\
 \end{cases}
where
b_{idso}(x) = \max(b_{id}(x), b_{so}(x))
b_{id}(x) = 216x \cdot 8^{136} + d 
b_{so}(x) = ox - g
and
d =
32370779665404705561807609489961735142772450595278948496424386
66768114984669819898111048909997575431027847057652566964551746
o = 
14405520897770861239295320965768628031155278608853989995878087
51039303575288379014650106747233088457451983932729811175340555
027052154015192163827170902870107520892608
g = 
26754243754103765292330832085990828424744263601285353899531352
52873368656423787611508483038332610047342918664129411722483469
658221319869868861186264640741264481336638
The resulting value can be executed as Brainfoctal, and will produce
the expected Deadfish output when 𝜑̈ ∈ ℕ, or Brainf*** output when 𝜑̈ ∉ ℕ ∧ β ∈ ℕ.
The crossover point for the two linear equations that make up bidso(x) is
roughly 1.9
 b_{idso}(x) =
 \begin{cases}
 b_{id}(x),& \text{if } x \lessapprox 1.9 \\
 b_{so}(x),& \text{if } x \gtrapprox 1.9 \\
 \end{cases}
===Variants===
There are two variants of Gödelfish.
# 𝜑̈ ∈ ℕ: Natural Gödelfish.
# 𝜑̈ ∈ ℝ: Real Gödelfish.
Where 𝜑̈ ∈ (ℝ − ℕ) can be termed Unnatural Gödelfish.
All valid Deadfish programs are represented in Natural Gödelfish. All valid Brainfoctal programs can be represented by at least one equivalent Unnatural Gödelfish program (i.e. non-integer value).
Not all Reals produce valid Brainfoctal. These values are deemed syntax errors (β ∉ ℕ ).
==Gödelfish Code Generation==
The following generates a Gödelfish program that sets the accumulator
to i, where i ∈ ℕi ≠ 256
This function is undefined when i = 256.
 \phi(i) = \frac{4^{\frac{\left\vert\alpha(i)\right\vert + \alpha(i)}{2}} - 1}{3}
 + \gamma(i)(38^2 + 2)4^{\left\vert i-17^2\right\vert}
 + \frac{0}{(4^4 - i)(\left\vert i \right\vert + i)}
where
\alpha(i) = i \left\vert 1 - \gamma(i) \right\vert
 + \gamma(i)(i - 17^{2})
and γ : ℕ → {0, 1}, given by
\gamma(i) = \left\lceil\frac{i - 4^{4}}{1 + (i - 4^{4})^{2}}\right\rceil
This is by no means an optimised conversion, but it does produce accurate
output for all valid inputs. There are other possible code generation functions.
To modify a program to output the accumulator value, simply multiply by
4, and add 3: 𝜑̈out = 4φ(i) + 3
==Evaluation and output encoding==
O(\ddot{\varphi}, r, d) = \left\lfloor \frac{E(\ddot{\varphi}, r^d)}{r^d} \right\rfloor
where
E(\ddot{\varphi}, z) = \sum_{i=0}^{\lfloor \log_4 \ddot{\varphi} \rfloor + 2}
 v\bigg(E\big(s(\ddot{\varphi}, i, 2), z\big) \bmod z, d\Big(E\big(s(\ddot{\varphi}, i, 2), z\big), c(\ddot{\varphi}, i), z\Big)\bigg)
s(\ddot{\varphi}, i, n) = \left\lfloor \frac{\ddot{\varphi}}{4^{\lfloor \log_4 \ddot{\varphi} \rfloor - i + n}} \right\rfloor
c(\ddot{\varphi}, i) = s(\ddot{\varphi}, i, 1) - 4s(\ddot{\varphi}, i, 2)
 v(a, x) =
 \begin{cases}
 -a,& \text{if } a + x < 0\\
 -a,& \text{if } a + x = 256\\
 x
 \end{cases}
 d(x, c, z) =
 \begin{cases}
 -1,& \text{if } c = 0\\
 1,& \text{if } c = 1\\
 (x \bmod z)^2 - x \bmod z,& \text{if } c = 2\\
 x(z - 1) + x \bmod z,& \text{if } c = 3\\
 \end{cases}
𝜑̈ = Natural Gödelfish value, 𝜑̈ ∈ ℕ
r = radix of output values
d = number of digits per output value in base r
==Examples==
===Hello World (Natural)===
hwℕ = 220004154300346839601141697640197817404810450964612631879016141088612008430732504789405572021198350571970553520586755
O(hwℕ, 16, 2) = 0x48656c6c6f20776f726c64 (i.e. 'Hello world' in ASCII)
O(hwℕ, 10, 3) = 72101108108111032119111114108100 (base 10 version of the above. Same information, different output encoding)
See #External links for a Try It Online! link to the output of b(hwℕ). 
===Hello World (Unnatural)===
hw𝕌ℕ = -0.02267050412500270959407579713247251696870738403389181782725188269749688319088642196836222187626319203264982082686924411902690
b(hw𝕌ℕ) = 228855768768422936408264393456423041692937029376710995071693817276469283765324982920591645725405 (in Brainfoctal)
which represents bf:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++., Output: Hello World!
===Cat program===
A notable example because Deadfish does not have any input ability, and neither does Natural Gödelfish. Unnatural Gödelfish however does support input and looping, as demonstrated by this code.
-0.022670504125002709594075797134075282086978542505248915011217737915032694422870805248545387883658040503097960748512306158803077
===Deadfish overflow test===
One of the mandatory test cases for Deadfish arithmetic is diissisdo, to produce 288. In Gödelfish: 0d011221203, using a custom `0d` notation prefix for base 4 (d= 4th letter, and d=Deadfish), or 23139 in base 10.
O(23139, 10, 3) = 288
b(23139) = 1992383016428349379845507622404809953112874611861926515895523484704100169565280320846715649660189154160692239791778226306121802756581767877274244662399303495671723772618198640181726493099998422897294003276426465702182811842417559278638227066244354421033194410526449783769732849072628823136889528739121209015839000488795682675246514108752176227702793908289610150999450135418832560874409687851879319092072332109144798720273206158129513802909039262780743465844978721861502244168217079743493841505119880986566503697853499091509206772695008175788258561297441411606177281225180180093510826638501901080096493385844333703547878624301929687825312398581066719234186975850736749259170298477303649768062659142193389341897700256044528403897763101681597105296857074760171490523865079937455449993074674865404868638147157077294631471857215867519480707945364944621002983939712957287912867032309100052322811534536978440854749102465031414831196101671976346382463888623962187629355044934873788522944045314847727884853596071036481207346819004012449632131297026103248359413632478710300690032013059452103369673613851608185560775591029690750031864172533961702325600009914576626630402
Which is equivalent to bf
++-[>+>+<<-]>>[<<+>>-]>-<<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>+>+<<-]>>[<<+>>-]>+>++>+[->+++[-<++++>]<<]<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<++-[>+>+<<-]>>[<<+>>-]>-<<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>+>+<<-]>>[<<+>>-]>+>++>+[->+++[-<++++>]<<]<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>>>+<+<<-]>>[>[<<<+>+>>-]<<[>>+<<-]>-]>[-]<<<[>+>+<<-]>>[<<+>>-]>-<<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>+>+<<-]>>[<<+>>-]>+>++>+[->+++[-<++++>]<<]<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>>>+<+<<-]>>[>[<<<+>+>>-]<<[>>+<<-]>-]>[-]<<<[>+>+<<-]>>[<<+>>-]>-<<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>+>+<<-]>>[<<+>>-]>+>++>+[->+++[-<++++>]<<]<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<++-[>+>+<<-]>>[<<+>>-]>-<<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>+>+<<-]>>[<<+>>-]>+>++>+[->+++[-<++++>]<<]<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>>>+<+<<-]>>[>[<<<+>+>>-]<<[>>+<<-]>-]>[-]<<<[>+>+<<-]>>[<<+>>-]>-<<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>+>+<<-]>>[<<+>>-]>+>++>+[->+++[-<++++>]<<]<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<-[>+>+<<-]>>[<<+>>-]>-<<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>+>+<<-]>>[<<+>>-]>+>++>+[->+++[-<++++>]<<]<[->>-<<]+>>[<<->>[-]]<<[[-]<[-]>]<[>>+>+<<<-]>>>[<<<+>>>-]<<+>[<->[>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]++++++++[<++++++>-]>[<<+>>-]>[<<+>>-]<<]>]<[->>++++++++[<++++++>-]]<[.[-]<]<>++++++++++.++++++++++++[-]<.
The above code does not produce the expected result on tio.run, or any other bf interpreter limited to 8 bit cells. See #External resources for a link to an online interpreter with a 16 bit cell option which does produce the expected ASCII character output of '288'.
==Computational class==
Gödelfish is TG.
==External resources==
* Converter and utilities in Python on Github
* Try it online!, Conversion of Natural Hello World example above using the function b() to Brainfoctal, then to brainfuck, to illustrate Deadfish output resulting from applying the language conversion function.
* Deadfish arithmetic test, on the copy.sh online interpreter which provides an option for 16 bit cells. You'll need to select this manually after following the link.
Category:Languages
Category:Zero-dimensional
Category:2019
Category:Turing complete
Category:Implemented