User blog:Pteriforever/Distortion-F Notation

I don't know if any of you people remember, but way back like 2 years ago, I created something called Ultra-F notation, which was the most powerful notation I have ever made.

I could've continued a bit further quite easily by going the Saibian route and shoving my notation inside BEAF as far as it'll go, but I decided against it. Instead, I envisioned a fabulously powerful extension which could defeat anything that approach had to offer. It was fiendishly complicated and messy, but had sooooo much potential. I called it Distortion-F. Past-me figured out most of it, but hit a critical snag that halted progress. Then, for a really really long time, I kinda lost interest in googology. However, a few days ago, I started thinking about Distortion-F again for no real reason, and then suddenly made a major breakthrough!

In the previous versions of Ultra-F, I built F-structures using the basic tools of up arrows and that kind of thing, then applied the resulting structure to a number to make a big number. The premise of Distortion-F is that it applies the F-structure, using a heavily modified ruleset, to F itself, quickly creating monstrous F-structures of great complexity.

Definitions
Here we go:

Distortion F-structures look like this:

\[\rangle%_1 + \odot,%_2,%_3\langle\]

\(%_1 + \odot\) is the seed object. It is a subexpression with all non-F-structure constants in it replaced with the special symbol "\(\odot\)". While it may experience activations and have further subexpressions inside it, these are strictly confined to the seed object and don't spawn new layers. The F-structure belonging to the seed object's innermost subexpression is called the seed level. The seed object could also be an illusory F-structure, which will require more explanation and I'll go into that later.

\(%_2\) is the functional power. It can be basically anything: it can be a subexpression, including a lone constant with no F-structure attached, or a raw F-structure with no constant attached, which may or may not have a subexpression embedded in it within strong brackets.

\(%_3\) is the base. It is strictly an F-structure, and must not be a subexpression nor contain any strong brackets.

If these conditions hold, then \(\rangle%_1 + \odot,%_2,%_3\langle\) should be a legal F-structure which can be used in subexpressions with no problems.

\[(\rangle%_1 + \odot,%_2,%_3\langle\)

Any distortion structure is said to be a "distortion" of its seed object.

For the sake of neatness, objects of the form \(\rangle% + \odot,F,F\langle\) will be abbreviated to \(\rangle %\langle\). An object of this form is referred to as the simple distortion of %, while an object which doesn't fit this definition is called a rogue distortion of %.

Ruleset
Oh, boy.

Where order of operations is unclear, the one which appears earlier in the list is the one which should be used first.

1: If the functional power is 0, return 0:

\[\rangle %_1 + \odot,0,%_3\langle = 0\]

This is an even more general version of the \(% \{m\} 0 = 0\) rule from basic Ultra-F.

2: If the functional power is 1, return the base:

\[\rangle %_1 + \odot,1,%_3\langle = %_3\]

This is also a more general version of a rule from basic Ultra-F: \(% \{m\} 1 = %\)

3: If the seed object is \(\odot\), also return the base:

\[\rangle\odot,%_2,%_3\langle\] = %_3

This derives from the fact that a subexpression containing no F-structure must be a constant. For practical reasons, I choose to place the notation's normal "end case" at \(\rangle F\cdot2\langle\) instead.

4: If the seed object is \(F*2 + \odot\), take the base to the power of the functional power:

\[\rangle F\cdot2 + \odot,%_2,%_3\langle = %_3\uparrow %_2\]

This is considered to be the normal end case.

5: If the seed object is of the form \(F + (F + ... + (F + \odot) + ... + \odot) + \odot\), take the base to the power of the number of nested \(F+&+\odot\), then multiply by the functional power:

\[\rangle F + \hat{F} + \odot|a,%_2,%_3\langle = [%_3\uparrow a] \cdot %_2\]

This fills in a gap between rules 3 and 4, and fits in neatly with both of them.

6: If the seed level is \(F\) but rule 5 doesn't apply (ie. the deepest subexpression is \(F + \odot\) but there is at least one larger F-structure present elsewhere), replace the functional power with the whole structure, remove one nested \(F+&+\odot\) from the inner copy, and all of them from the outer copy:

\[\rangle %_1 + (F + \hat{F} + \odot) + \odot|a,%_2,%_3\langle = \rangle %_1 + \odot,\rangle %_1 + (F + \hat{F} + \odot) + \odot|a-1,%_2,%_3\langle,%_3\langle\]

This is analagous to the unravelling of up-arrows: \(a\{m\}b = a\{m-1\}a\{m\}(b-1)\).

7: If the seed object has a second layer containing a number greater than 1, perform an intra-seed object subexpression substitution:

\[\rangle%_1 + \hat{F} + \odot|a,%_2,%_3\langle\] = \[\rangle%_1 + (%_1 + \hat{F} + \odot) + \odot|a-1,%_2,%_3\langle\]

8: If the seed object has a second later containing 1, remove the activated F and the second layer:

\[\rangle%_1 + \hat{F} + \odot|1,%_2,%_3\langle\] = \[\rangle%_1 + \odot,%_2,%_3\langle\]

9: If the functional power is 2 and the seed level is \(F\cdot2\), delete the seed object's final subexpression and replace the functional power with the base:

\[\rangle %_1 + (F\cdot2 + \odot) + \odot,2,%_3\langle = \rangle %_1 + \odot,%_3,%_3\langle\]

This reflects the fact that \(a\{m\}2 = a\{m-1\}a\).

11: If the functional power is a constant of 3 or greater and the seed level is \(F\cdot2\), activate the final F in the seed object's final subexpression, place the functional power minus 2 in the second layer, and replace the functional power with the base:

\[\rangle %_1 + (F\cdot2 + \odot) + \odot,a,%_3\langle = \rangle %_1 + (F + \hat{F} + \odot) + \odot|a-2,%_3,%_3\langle\]

12: If the functional power is a constant of 2 or greater and the seed level is greater than \(F\cdot2\), activate the appropriate F in the seed object's final subexpression, place the functional power in the second layer (don't subtract 2), and replace the functional power with the base:

\[\rangle %_1 + (%_4 + \odot) + \odot,a,%_3\langle = \rangle %_1 + (\hat{%_4} + \odot) + \odot|a,%_3,%_3\langle\]

13: If the functional power is an F-structure expressible as the sum of smaller F-structures and the seed level is \(F\cdot2\), replace the base with the distortion structure with the final term removed, and replace the original structure's functional power with the final term.

\[\rangle %_1 + (F\cdot2 + \odot) + \odot,%_2 + %_4,%_3\langle = \rangle %_1 + (F\cdot2 + \odot) + \odot,%_4,\rangle %_1 + (F\cdot2 + \odot) + \odot,%_2,%_3\langle\langle\]

This is analagous to my left-associative polyponent rule from basic Ultra-F.

14: If the seed level is \(F\cdot2\) and the functional power is a subexpression with no further subexpressions within it, replace the functional power with the whole distortion structure, activate the last F in the outer structure's seed object, remove the constant term from the functional power of the inner structure, and place it in the outer structure's seed object's second layer instead.

This is analagous to the rule \(F\{m\}(% + a) = F\{m-1\}F\{m\}(% + a - 1)\).

The above rules should shuffle around most distortion structures into a format where there is an F which can be activated if necessary, either by reducing it to basic Ultra-F or placing an F-structure in the functional power.

When the distortion structure is the last F-structure in the final layer and thus an F in it needs to be activated, the functional power is an F-structure, and rules 3, 4, 5, and 12 don't apply, activate the F in the functional power which would normally be activated if the functional power were in the place of the whole structure. That is, activate the last F in the deepest subexpression of the functional power if that turns out to be basic Ultra-F. If the last F-structure in the functional power is itself a distortion structure, activate the appropriate F in that structure's functional power.

All of the above I figured out in 2016. The problem is there are some objects greater than \(\rangle F\cdot3\langle\) which are totally inexpressible using everything so far. A simple example of this is the object which we could consider to be equal to \(F\{F\}[F\cdot2]\). There are also objects such as \(\rangle F\cdot3,F+1,F\langle\) which are perfectly valid but which the above rules can't deal with -- the functional power is a subexpression containing an F, but rule 13 doesn't apply because the seed level is \(F\cdot3\).

There are huge holes in the notation. We can easily guess what kinds of objects we should expect to find in these holes, but these can't be expressed as a distortion of any F-structure.

The solution? Pretend that they can, and keep going.

This is where I break out the illusory F-structure. The idea is to invent an imaginary F-structure which only exists in the seed object, the distortion of which results in whatever we want. We do this with the use of the reformattor, which takes the form:

\[[%_1\strike{R}%_2]\]

This reads as "\(%_1\)reformatted by\(%_2\)".

An illusory F-structure is one containing at least one reformattor.

We then set up our definitions so that every rogue distortion of something is the simple distortion of some illusory structure. You might have noticed that the previous rules list has no rule 10. This is because it needs to pre-empt rules 11 and 12 but I wanted to save it for later because it's really complicated:

10: If the functional power is a subexpression containing an F-structure with no further subexpressions within it and the seed level is greater than or equal to \(F\cdot3\), replace the final subexpression in the seed object with its corresponding F-structure reformatted by the F-structure in the functional power, plus the original final subexpression itself with the final F activated, then place the constant from the functional power in the second later of the seed object and finally replace the functional power with the base:

\[\rangle %_1 +\odot,%_2+a,%_3\langle =\rangle [%_1\strike{R}%_2] + (\hat{%}_1+\odot)+\odot|a,%_3,%_3\langle\]

Corollary: Illusory structures can be converted to real structures if the reformattor is the final F-structure in the seed object and the base is equal to the functional power by replacing the functional power by the reformattor's second argument and replacing the reformattor itself by its own first argument:

\[\rangle [%_1\strike{R}%_2]+\odot,%_3,%_3\langle = \rangle %_1+\odot,%_2,%_3\langle\]

Special note: If the final F-structure in the seed object is a reformattor, the seed level of the whole distortion structure is equal to the seed object's first argument with the last F deleted.

We can now write and process the structures we couldn't before:

\["F\{F\}[F\cdot2]" =\rangle [[F\cdot3]\strike{R}F]+\odot,F\cdot2,F\langle\]

\[\rangle F\cdot3,F+1,F\langle =\rangle [[F\cdot3]\strike{R}F]+(F\cdot2 + \odot) + \odot,F,F\langle\]

In the many ensuing steps, there will be eventually come a point after the \((F\cdot2 + \odot)\) is completely resolved when the functional power, through a combination of rule 12 (which applies here because the reformattor has changed the seed level from \(F\cdot3\) to \(F\cdot2\)) and the normal rules from basic Ultra-F, falls back to F, thus causing the illusory structure \([[F\cdot3]\strike{R}F]\) to collapse back into regular old \(F\cdot3\). This means, unless we both start with an illusory structure in the seed object and something weird in the base, rules 11 and 12 should never cause any crises by trying to activate a reformattor. You can write expressions which crash into that scenario if you like, but if one starts with a real structure for a seed object, uses a normal base, or is really careful, it should be well-defined.

Results
To start with, my old ultimate googolism, which was previously on somewhat shaky ground, is now well-defined:

\[\rangle F\cdot3\langle + 100 = \mbox{Endrallhyiighsze}\]

Beyond that... don't know yet! I need to make some more numbers.

I don't want to make any grandiose statements about its power, because I haven't done much analysis yet and there could easily be some hidden flaw which shows up when the seed object becomes large, but I'm fairly certain that it beats #xE^ with reasonable ease.

Will add more soon!