User blog:Fejfo/Using functions as fundamental sequences for the fgh

In a few of my googological programs I've used functions to represent the fundamental sequence of ordinals. Since I thought it's an intersting concept and I coudn't find anything about it online.

The basic idea is to let an ordinal α be a function so So in general α is a function (there are multiple possibilities for fundamental sequences so there are multiple possibilites for functions) for which α(n)=a[n]
 * α(0)=α[0]
 * α(1)=α[1]
 * α(2)=α[2]

0 isn't a function (it doens't have fundamental sequence) 1 is the function that returns 0 for all input λn.0, this satisfies 1[n]=0 2 is the function that returns 1 for all input λn.1 = λn.(λm.0)), this satisfies 2[n][m]=1[m]=0 … So a function ordinal is a function that eventually evaluates to 0 when enough arguments are put in:
 * ∀α, ∃n: α(a1)(a2)(…)(aN)=0 where aM is an argument of the right domain

The defintion of the function and that of the fundamental sequence conincide nearly perfectly (you can see it even works for uncountable ordinals), this means you could define a hierachy of functions indected by functions.

When the functions are untyped ω=Ω but this problem disapears when the functions are typed. A more anoying problem is that you can't easily tell if a function-ordinal is smaller that an other altough you could use this pseudo-code:

def ≤(α,β): if α==β: return True elif β==0: return False n=0 while True: if ≤(α,β(n)): return True elif ≤(β,α(n)): return False n+=1

where α==β represents equivalence of the λ-calculus expressions.

You can also define higher level functions like the succesor function for functions λα.(λn.α) or an addition function for function ordinals add=λα,β.(λn.add(α,β(n))) or even a fixed point naming function.