As before, not being picky or whatever here, but I'm stll not understanding your use of 'recursively defined'. As a Algol/Algol68/Pascal/C/C++ (in order with some missed out), I would say that a recursive definition was
#define TRUE (! FALSE)
#define FALSE (! TRUE)
'recursively defined' has some implication that it is defined in terms of itself.
(As well as having a thing about correct use of data types (TRUE/FALSE are ONLY boolean), I have a thing about unnecessary use of recursion too. C++ classes are prone to some very nasty hidden recursion, especially in destuctors - a real 0x627567676572 to track down)
Mike
"I can live with doubt and uncertainty and not knowing. I think it is much more interesting to live not knowing than to have answers that might be wrong." - Richard Feynman