Преобразование предложений в логику первого порядка - PullRequest
3 голосов
/ 12 марта 2011

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

некоторые примеры, где я делаю ошибки

Некоторые дети будут есть любую пищу

C(x) means “x is a child.”
F(x) means “x is food.”
Eat(x,y) x eats y
I would have written like this:

(∃x)(∀y) C(x) ∧ Eat(x,y)

edit:  (∃x)(∀y) C(x) ∧  F(y) ∧ Eat(x,y)

But the book write it like this

(∃x)(C(x) ∧ (∀y)(F(y)→Eat(x,y)))

Редактировать №2: 2-я Тип ошибки, которую я делаю: Черепахи переживают Кроликов.

i'm writing it like this: ∀x,y Turtle(x)  ∧  Rabbit(y)  ∧ Outlast(x,y)

 but according to the book  ∀x,y Turtle(x)  ∧  Rabbit(y)  --> Outlast(x,y)

Конечно, я согласен с книгой, ноесть ли проблемы с моей версией !!

Ответы [ 3 ]

3 голосов
/ 12 марта 2011

С

x y [C ( x ) ∧ F ( y )) At Ешьте ( x , y )]

Из этого следует, что 101 y F ( y ) т.е. все есть еда.(«Существует ребёнок x такой, что для всех y , y есть еда», и множество других предложений верны.) Из этого также следует, что ребеноксъедает себя: если мы обозначим ребенка произвольной константой c и заполним ее, мы получим

y [C ( c) ∧ F ( y ) ∧ Eat ( c , y )]

и с y универсально определен количественно, мы можем создать его экземпляр, заменив его на c , чтобы получить

C ( c ) ∧ F ( c) ∧ Ешьте ( c , c )

, что является нежелательным положением дел.

Из вашего второго примера

x y [Черепаха ( x ) ∧ Кролик ( y ) ∧ Outlasts ( x , y )]

Следовательно,

x Черепаха ( x ) ∧ ∀ y Кролик ( y ) ∧ ∀ x y Outlasts ( x , y )

То есть все черепаха, всекролик, и все переживает все, включая себя.

Версия в вашей книге использует →, чтобы указать, что для каждого объекта y , , если это еда, затем оно съедено x .Вам нужно условие для выражения предложений в форме "все X - Ys" или "каждый X делает Y".

2 голосов
/ 15 марта 2011

Всякий раз, когда у вас есть определитель каждые (или любой или нет ) в предложении на английском языке, соответствующее предложение FOL должно иметь как универсальный квантификатор, так и следствие вЭто.Например, шаблон перевода для существительной фразы every man будет выглядеть следующим образом:

∀ x (man(x) ⇒ ...)

Если ваше английское предложение не содержит никаких определителей, то переформулируйте его так, чтобы каждое существительное в нем сопровождалосьопределитель.Таким образом, сопоставление с FOL становится понятным.Например, двусмысленное / расплывчатое предложение

Turtles outlast Rabbits.

можно переформулировать несколькими семантически различными способами:

  • Каждая черепаха переживает каждого кролика.
  • Есть некоторые черепахи, которыепережить каждого кролика.
  • Есть некоторые черепахи, которые переживают некоторых кроликов.
  • Большинство черепах переживают большинство кроликов.
  • ...

КстатиЕсть онлайн-инструмент APE , который преобразует английские предложения в FOL при условии, что вы сначала переформулируете свои предложения так, чтобы они попадали во фрагмент английского языка, который поддерживает этот инструмент.Однако обратите внимание, что этот инструмент возвращает одно чтение FOL, то есть он не перечисляет всю неоднозначность, которую может содержать ввод.

1 голос
/ 12 марта 2011

Вы не проверяли, была ли y еда первой.Учитывая ваше утверждение, пусть a будет ребенком, т.е.C(a) верно.Тогда (∃x)(∀y) C(x) ∧ Eat(x,y) подразумевает (∃x) C(x) ∧ Eat(x,a).Другими словами, вы утверждаете, что некоторые дети будут есть что угодно, не только еду.

...