Recursive Array Function Language has these symbols:
S 0 1 2 3 4 5 6 7 8 9 ( ) , = > < : ; and countably many variable and function symbols.
The , is to separate inputs of a function, the : is for conditions after statements, and the ; is to separate statements.
S is Successor function by default.
Pillar(n) is the smallest natural number greater than all numbers that can be obtained by inputting 10^n in any terminating function defined with n symbols or less in Recursive Array Function Language.
Pillar(f(x),n) is the smallest natural number greater than all numbers that can be obtained by inputting 10^n in any terminating function defined with n symbols or less in Recursive Array Function Language with S being f(x) instead of Successor function.
Small Pillar = Pillar(10^100)
Medium Pillar = Pillar(Pillar(x),10^100)
Pillar{0}(n) = Pillar(n)
Pillar{m+1}(n) = Pillar(Pillar{m}(x),n)
Alternatively Pillar{m+1}(f(x),n) = Pillar(Pillar{m}(f(x),y),n)
Big Pillar = Pillar{10^100}(Pillar{x}(x),10^100)
With Pillar function already defined, I add P to Recursive Array Function Language as a binary function of the form P(x,y) where x is a function and y is a number/variable and P(x,y)=Pillar{x}(y).
Pillarpillar(n) = is the smallest natural number greater than all numbers that can be obtained by inputting 10^n in any terminating function defined with n symbols or less in Recursive Array Function Language with P symbol.
Caterpillar = Pillarpillar(3^^3)
Pillars Of Creation = Pillarpillar((4^^4)^4^^4(4^^4))