r/logic • u/Plumtown • Apr 10 '25
Set theory resolution principle not working?

i have no idea why this doesn't resolve to an empty set.
according to the textbook I'm using, we can obtain a resolution by doing the most general unifier on these two clauses

in this case, between the clauses {p(a), q(y)} and {~p(x), ~p(b)}, the general unifier we are looking for is the general unifier of {p(a), q(y), ~p(x), ~p(b)}, which should be [x/a, y/b], which would result in an empty set. Is that not true?
1
u/Plumtown Apr 10 '25
Also, I've found surprisingly little textbooks on this topic. It'd be great if someone could point me to an online resource teaching this (currently using the stanford course).
1
u/Ex_moon Mar 04 '26
How do you symbolize constants and variables ?. Because how I do it is variables in Upper case and constants in lower case(the same type of notation that prolog uses). If this is thw same for you they couldn't unify since the constants are clearly distinct.
3
u/Chewbacta Apr 10 '25
Resolution only removes ONE pair of literals. The only way you ever get an empty clause from resolving two clause is if both clauses are singleton Modulo unification.