Pretty exciting stuff! I'd also be curious how well CTEs work; Postgres seems to have Turing-complete recursive CTEs, while SQLite and ANSI have some peculiar restrictions presumably to guarantee termination. They might even be the same restrictions, I don't know.
Unfortunate you can't add new operators in Python the way you can in Prolog or OCaml to get a readable infix syntax like the one you chose but without the misleading operators like <= for :-. (I've done worse, though...)