User blog:Vel!/BB(n) in FOST

Work in progress, but you know how I never finish what I sta

I'm slowly assembling all the pieces for writing \(\Sigma(n)\) in first-order set theory. Since \(\Sigma(n)\) is a well-known and well-respected function, it'd be nice to bound Rayo's function with it even in the face of larger competitors such as Xi or FGH.

N is a fixed positive integer written into the final formula.

// Halting state HALT = N // States, not including halt States* = N // States, including halt States = N ∪ {HALT} = N + 1 // Colors Colors = {0, 1} // Left and Right movements. The values don't matter as long as they're different. L ≠ R

Ruleset?(func) -> Is func a ruleset for a 2-color N-state TM? // Ensure that all members of the function are of the form ((State, Color), (State', Color', Movement)) // Note that (a, b, c) is a shortcut for (a, (b, c)) ∀x: x ∈ func ⇔ (∃s,c,s',c',m:           x = ((s, c), (s', c', m)) ∧            s ∈ States* ∧            c ∈ Colors ∧            s' ∈ States ∧            c' ∈ Colors ∧            m ∈ {L, R}) // Ensure that for each (State, Color) there is exactly one (State', Color', Movement) ∀s: ∀c: (s ∈ States* ∧ c ∈ Colors) → (∃s',c',m:           s' ∈ States* ∧            c' ∈ Colors ∧            m ∈ {L, R}            (∀x: ((s, c), x) ∈ func ⇔ x = (s', c', m)))

InitializeTape -> (tape) Creates a zero-filled tape.

∀x: x ∈ tape ⇔ (∃p: (p, 0) = x ∧ p ∈ ω)

Shift(tape) -> (tape') Shifts the tape over by one step, adding a zero at the left.

∀x: x ∈ tape' ⇔ ((∃p,c: (Sp, c) = x ∧ (p, c) ∈ tape) ∨        (x = (0, 0)))

Read(tape, position) -> (color) Read a color at a certain position.

(position, color) ∈ tape

Write(tape, position, color) -> (tape') Write a color at a certain position.

∀x: x ∈ tape' ⇔ (∃p,c: (p, c) = x ∧ ((p ≠ position ∧ (p, c) ∈ tape) ∨ (p = position ∧ c = color)))    // This is an example of an if statement in FOST

Transition(ruleset, tape, state, position) -> (tape', state', position') Simulates one step of a Turing machine with a given ruleset, returning the altered tape, state, and position.

(state', color', move) = Apply(ruleset, (state, Read(tape, position))) ∧ (tape' = Shift(Write(tape, position, color'))) ∧ ((move = L ∧ position' = position) ∨ (move = R ∧ position' = position + 2))

CountOnes(tape) -> (num) Count the number of ones on the tape.

Output(ruleset) -> (output) Simulates a Turing machine and returns its output. If the machine doesn't terminate, return 0.