User blog:Gonz0TheGreatt/Generalized Array Notation for Any Function

In an earlier blog post (see here) I defined my own array notation GGAN. In this post I want to generalize GGAN so that it can make an extension of any function. For a given function f, the array notation f[#] is called the GGAN extension of f. For instance, the GGAN extension of factorial is ![#], the GGAN extension of TREE(n) is TREE[#], etc.

Let f be any increasing function over the natural numbers. Define the critical point of f as the smallest positive integer c such that f(c) > c. From now on, c denotes the critical point of f.

Basic notation:

Here we define the array

$$f[n_1, n_2, ...]$$ . This is an array of iteration; each entry in the array iterates f.

B1: If there is only one entry, evaluate the function at that entry.

f[n] = f(n).

B2: If the last entry in the array is a 0, return the second to last entry.

f[#, n, 0] = n

B3: Otherwise, decrement the last entry and replace the second to last entry with the original array with the last entry cut off.

f[#, b, n] = f[#, f[#, b], n - 1]

Some theorems:

$$f[a, n] = f^n(a)$$ .

$$f[a, 1, 2] = f^{f(a)}(a)$$ .

Leading 1s can be removed: f[#, 1] = f[#].

Higher Separators:

Each separator in GGAN can be used analogously in the GGAN extension of any function. The rules are as follows:

Colon Notation:

C1: If the last entry is a 0 and occurs after a :, it can be removed.

f[# : 0] = f[#].

C2: If there is only one : and only one entry afterwards, place a c before the rest of the body, and decrement the last entry. (Recall that c is the critical point of f)

f[# : n] = f[c, # : n - 1]

C3: If the last entry is a 0 and it is after a comma, return the second to last entry.

C4: If the last entry is greater than 0 and is after a comma, replace the second to last entry with the array with the last entry cut off, and decrement the last entry.

C5: If there is more than one : and only one entry after the last :, place a c after the previous :.

The rest of the rules are the same as the rules for regular GGAN. The main difference is that the GGAN extension of a function does not have a base. Therefore, instead of using the base, I use f(c) for everything above Colon Notation.

For example, TREE[5 :: 4] = TREE[3 : 3 : 3 : 3 : 5] = TREE[3 : 3 : 3 : 2, 2, 2, 2, 2, 3]. This is because the critical point of TREE is 2, and TREE(2) = 3.

One way to view my original GGAN arrays are as the GGAN extensions of the function

$$f(n) = b \cdot n$$ for the base

$$b$$ . As long as

$$b > 1$$ (which will always be the case as long as our array is worth anything), the critical point of

$$f$$ is

$$c = 1$$ , and

$$f(c) = b$$ . Thus, regular GGAN could be viewed as the GGAN extension of multiplication.

Vertical Bar Notation: Similarly to Vertical Bar Notation for GGAN, the array f[n | #] tells us to ignore the critical point of f and use n everywhere instead. Additionally, the array f[n (a) | #] tells us to ignore the critical point of f at every separator whose degree is at least a.