If anyone is interested in playing with this branch, this is a key line. This line basically says that `x.is_real` or `ask(Q.real(x))` checks both the old and the new assumptions on `x`. It might be worth playing with only doing one or the other (essentially ignoring the assumptions made in one system, but still allowing the ask syntax for it).  Replacing `and` with `or` might also be interesting.