F calculus
F Calculus is a Combinatory logic system with as only combinator 'F'
It was devised to see how simple a Combinator could be when it has to both access an oracle and do logic. it is also inspired by SE calculus
Description
F i => if i has a beta normal form then λx.λy.λz.xz(y(λw.z)) else λx.x
Function application through .
Although it does not matter, you can use brackets
Spacing allowed but not needed.
Examples
Tromp's & mtve's α
.FF
Reads as: If F has a normal form (it does) return λx.λy.λz.xz(y(λw.z)) (alpha) else return λx.x
Identity function I
.F.....FF.FF.FF..FF.FF.FF
.....FF.FF.FF..FF.FF.FF
does not have a beta normal form, and thus applying F on it returns the identity function. Abreviated as I
Becomes λx.x
Constant making function K
...FF..FF.FF.......FF..FF.FF.FF.FF.FF.FF.FF
Alternatively read as ..A.AA......A.AAAAAAA
where A is alpha
Becomes λx.λy.x, And abreviated as K
Substitution function S
....FF..FF....FF.FF...FF.FF..FF.FF..FF..FF...FF.FF..FF.FF.FF.FF
Read as ...A.A...AA..AA.AA.A.A..AA.AAAA
Becomes λx.λy.λz.(xz)(yz), Abreviated As S
Boolean oracle
..S..S..S..S.KFI.KK.K.KI.KK
Returns True if the input has a normal form, else false.