An Intermediate Language to Support Prolog's Unification