Skolem Functions
First-order logic is great because ? and ? right?
Can eliminate existenially quantified vars!
- Replace with a skolem function
? X president_of(usa, X)
- president_of(usa, bill_clinton)
- president_of(usa, f())
?D ?T dog(D) ? has-tail(D, T)
- ?D dog(D) ? has-tail(D, g(D))
- g is the “tail-choosing” function; it maps dogs to their tails
- Skolem function takes all (only!) preceding ? vars as args