convert predicate to clausal form

Started by
4 comments, last by TheAdmiral 17 years, 6 months ago
Hi, I am reviewing my lecture notes for an AI class and I have a question about a derivation that I am hoping someone on this board can help me clarify better than was done in the class. I have a feeling it is unclear because they want to use it as a test question -- so I want to be ready! So here I am converting from first-order predicate logic to clausal form through these 6 steps... 1. remove implications 2. move negations to atomic level 3. apply disjunctions to only connect atoms (keep conjuncts) 4. eliminate existential quantifier by using All Y Exists X ( S(y,x) ) = All Y ( S ( y, f(n))) substition (to apply sigma substitution set) 5. rename vars that have the same name and give specific instances to universal quantifier 6. re--express disjunctions as clauses. Here is the series of steps that I am questioning. Original statement: All X Exists Y ( person(x) -> person(y) & loyal_to(x,y) ) (REMOVE IMPLICATION) All X Exists Y ( !person(x) OR person(y) & loyal_to(x,y) ) (MOVE NEGATIONS TO ATOMIC LEVEL -- HERE IS WHERE I AM CONFUSED AT THEIR ANSWER All X Exists Y [ ( !person(x) OR person(y) ) & ( !person(x) OR (loyalto(x,y) ) ] Okay my question is this -- Where did the !person(x) come from in the second term? I don't see how distributing the disjunction turns it into that. Or is it because the conjunct got distributed? That seems to be true, however I don't know WHY they use & in stead of the ^ symbol. There are other places where they use the upside-down caret for OR so why do they then use the & here? Any clarification on this issue would be appreciated
Advertisement
A ∨(B∧C) = (A∨B)∧(A∨C)
ok, thanks! I have one other related question.. for the modus ponens inference rule, I want to mentally have a way of thinking of it that makes sense to me that jives with the boolean values represented.

The rule, X -> Y & X gives Y is true.

If you represent this as a truth table, then it doesn't seem to add up.

EDIT: I have really tried to get this to format properly and I cant' seem to do it -- but the values in column 4 should match those in column 2 if I understand it properly -- however, this may be exactly the point that I am understanding wrong. If so, this is what I would like to know what to understand differently.


X Y X->Y (X->Y) ^ X
0 0 1 0
0 1 1 0
1 0 0 1
1 1 1 1



I know that in terms of knowledge representation, it makes perfect sense -- right now X is true, and X implies Y therefore Y must be true. But why is this not consistent with the truth table representation? Please, I know this seems simple but I want to understand it properly.. Any clarification would be greatly appreciated.
because your truth table is wrong! check it again :)

metrix
ack! thanks, that's what I get for trying to look at this stuff too late at night. Here's the revised truth table, which does reflect that the rule holds:

X Y X->Y (X->Y) ^ X
0 0 1 0
0 1 1 0
1 0 0 0
1 1 1 1

Hi jregan.

While your logic is reasonably sound, you shouldn't really think of modus ponens in terms of truth tables. It is a rule, not a formula. While it is similar to the formula (((a -> b) ^ a) -> b), its use is very different.
If I know both of

1. If it is raining, the floor will be wet
2. It is raining

then I can deduce that

3. The floor will be wet.

This is application of MP, on the formulas 1, 2, and 3, which is keenly dissociated from a formula that combines 1, 2 and 3. Given soundness and completeness (and hence the deduction theorem), the two are equivalent, but in order to establish either of these you must not confuse truth with proof.

Regards
Admiral
Ring3 Circus - Diary of a programmer, journal of a hacker.

This topic is closed to new replies.

Advertisement