Not to be confused with the G(n) function used to define Graham's number.

A G function is a type of pseudo-function used by Jonathan Bowers in his Array Notation.^{[1]} If a G function has base b, we say that:

\(G(a) = b\underbrace{\uparrow\ldots\uparrow}_ab = \{b, b, a\}\), using Arrow Notation and BEAF, respectively.

When the letter G is written by itself in a mathematical context, it simply means b. Therefore, we can write G = b.

When a G function is iterated over itself, Bowers omits the parentheses. For example, G(G(G(4))) could be written GGG4. If G was in base 4, then this could also be written GGGG, since G = 4.

We can commit an abuse of notation by treating concatenated Gs as multiplication, and then extrapolating to exponentiation, tetration, etc. Thus GGGG could also be written as G^{4}, which is G "multiplied" (iterated) by itself 4 times. An extended example would be ^{G}G = G tetrated to G, which is equal to G^{GGG} in base 4. We can even extend "G arithmetic" to BEAF: ^{G}G is the same as {G, G, 2}. Allowing G to be both a constant and a function is crucial to these generalized notations.