Instead of trying to make LLMs stop hallucinating, put them in a straightjacket: let them translate language into formal logic, then have a deterministic system (Prolog) do the reasoning, force every assumption into the open, test every conclusion with and without each assumption, and never claim a solution is unique unless you can prove it.