Предикатный логический квантователь и скобки

Взято из: https://cs.nyu.edu/faculty/davise/ai/pred-examples.html

Пусть U будет вселенной, содержащей людей и песни. Пусть L будет языком со следующими примитивами.

c(P,S) --- Person P composed song S.
l(P,S) --- Person P likes song S.
s(P,S) --- Person P sings song S.
m(S) --- Song S is in a major key.
Constants: a --- Amy; b --- Barry; d --- David; y -- Yankee Doodle. 

Дэвиду нравятся некоторые песни, которые написала Эми (то есть, по крайней мере, одна песня). существует (S) c(a,S) ^ l(d,S).

Есть ли разница в значении между существует (S) c (a, S) ^ l (d, S) против существует (S) [c(a,S) ^ l(d,S)]?

1 ответ

exists(S) c(a,S) ^ l(d,S) неоднозначно. Это может означать либо exists(S) [c(a,S) ^ l(d,S)] или же exists(S) [c(a,S)] ^ l(d,S), Две формулы разные. Первая - это закрытая формула, которую также часто называют предложением, вторая - формула со свободными переменными.

Вы можете лучше понять разницу между двумя формулами. Применяя правило переименования к закрытой подформуле последней, вы получаете

exists(R) [c(a,R)] ^ l(d,S)

Эта формула означает a сочинил какую-то песню и d любит песню S,

В печати определенное соглашение обычно заключается в восстановлении такой неоднозначности, чтобы избежать использования многих скобок в формулах. Однако универсального соглашения не существует.

По моему опыту логические связки обычно связывают сильнее, чем квантификаторы. Если принять это соглашение, неопределенность разрешается в отношении первого варианта, то есть exists(S) c(a,S) ^ l(d,S) как ожидается, будет означать exists(S) [c(a,S) ^ l(d,S)], Однако вы должны проверить это, прежде чем полагаться на это.

Другие вопросы по тегам