Введем несколько важных синтаксических понятий, относящихся к языку логики предикатов. Область действия квантора. В формулах вида ∀αA и ∃αA формула А называется областью действия квантора (∀ или ∃) по переменной α. Например, в формуле ∀х(∃у¬P(х, у) ⊃ Q(у, z)) областью действия квантора ∀ по переменной х является формула ∃у¬P(х, у) ⊃ Q(у, z), а областью действия квантора ∃ по переменной у – формула ¬P(х, у): ∀х(∃у¬P(х, у) ⊃ Q(у, z)) область действия квантора ∃ по у область действия квантора ∀ по х. В произвольной формуле каждая предметная переменная встречается некоторое число раз (это число может быть равно 0, 1, 2 и т. д.). Иначе говоря, переменная имеет некоторое число вхождений в данную формулу. Например, в формуле ∀х(∃у¬P(х, у) ⊃ Q(у, z)) переменная x имеет два вхождения, у – три вхождения, z –одно вхождение, а остальные переменные – ни одного вхождения. Свободные и связанные вхождения переменных. Вхождение предметной переменной в некоторую формулу называется связанным, если оно следует непосредственно за квантором или же находится в области действия квантора по данной переменной. В противном случае вхождение переменной называется свободным. Например, в формуле, указанной выше, первые вхождения переменных х и у связаны, поскольку они следуют непосредственно за кванторами ∀ и ∃. Второе вхождение х находится в области действия квантора ∀ по переменной x, т. е. в формуле ∃у¬P(х, у) ⊃ Q(у, z), а второе вхождение у расположено в области действия квантора ∃ по переменной у, т. е. в формуле ¬P(х, у), поэтому указанные вхождения являются связанными. Что же касается третьего вхождения переменной у и единственного вхождения z, то они являются свободными. ∀х(∃у¬P(х, у) ⊃ Q(у, z)) свободные вхождения переменных связанные вхождения переменных Свободные и связанные переменные. Предметная переменная называется свободной в некоторой формуле, если существует по крайней мере одно ее свободное вхождение в эту формулу. Переменная называется связанной в формуле, если существует по крайней мере одно ее связанное вхождение в эту формулу. Например, в рассматриваемой формуле свободными являются переменные у и z, а связанными – переменные x и у. Обратим внимание на то, что одна и та же переменная может быть и свободной, и связанной в некоторой формуле. В нашем примере такой переменной является у, которая имеет как свободное, так и связанное вхождение в указанную формулу. Местность терма. Местность терма есть число входящих в него различных предметных переменных. Замкнутые термы. Терм, не содержащий в своем составе предметных переменных, называется замкнутым. Например, терм f(x, у, z) является трехместным, так как именно это число различных переменных встречается в его составе, термы f(x, b, z) и f(х, у, у) – двухместные, терм f(x, b, а) – одноместный, а терм f(c, b, a) – нульместный, т. е. замкнутый терм. Замкнутые (нульместные) термы являются аналогами имен естественного языка; поэтому и р е з ул ьт а т о м п е р е в о д а л ю б о г о и м е н и е сте ственного я зыка на я зык логики предикатов должен явля ться им енно замкн утый терм . Не следует путать местность функтора и местность терма, который строится из функтора и имеющихся термов за счет их конкатенации (сочленения). В нашем примере функтор f не изменяет свою местность и постоянно остается трехместным, так как именно это количество аргументов требуется для построения с его помощью именных форм (термов). Сами же термы могут быть разной местности – как меньшей, чем местность функтора, так и большей. Местность формулы. Местность формулы логики предикатов первого порядка есть число входящих в нее различных свободных предметных переменных. Замкнутые формулы (предложения). Формула, не содержащая свободных переменных, называется замкнутой. Замкнутые формулы есть предложения. Обратите внимание на принципиальное отличие определения местности формулы в логике высказываний и логике предикатов. Если в логике высказываний местность формулы определялась простым подсчетом числа различных пропозициональных переменных, входящих в ее состав, то в логике предикатов мы должны подсчитывать не просто различные индивидные переменные, входящие в формулу, а именно различные с в о б о д н ы е и н д и в и д н ы е п е р е м е н н ы е . С учетом только что сказанного, формула ∀х(∃у¬P(х, у) ⊃ Q(у, z)) является двухместной, поскольку она содержит две различные свободные переменные – у и z, а формула ∃z∀х(∃у¬P(х, у) ⊃ ∀yQ(у, z)) не имеет ни одной свободной переменной, поэтому она нульместная, т. е. замкнутая. Р е з ул ьт а т о м перевода произвольного высказывания е сте ственного я зы ка обя зательно д о л ж н а б ы т ь з а м к н у т а я ф о р м ул а . Простые высказывания, в которых утверждается наличие свойства у отдельного предмета, записываются в языке логики предикатов посредством формул вида П1(t), где t есть терм, соответствующий имени предмета, а П1 – одноместная предикаторная константа, соответствующая знаку свойства. Например, переводом высказывания «Ромео – юноша» может быть формула Р(а), где предметная константа а соответствует имени «Ромео», а одноместная предикаторная константа Р – знаку свойства «юноша». Высказывание «Отец Ромео храбр» может быть записано в виде Q(f(a)), если одноместному предметному функтору «отец» сопоставить одноместную предметнофункциональную константу f, а знаку свойства «храбрый» – одноместную предикаторную константу Q. Высказывания, в которых отрицается наличие свойства у отдельного предмета, переводятся на язык логики предикатов посредством формул вида ¬П1(t). Например, переводом высказывания «Отец Ромео не является юношей» будет формула ¬Р(f(а)). Высказывания, в которых утверждается наличие отношения между двумя предметами, записываются в виде формул П2(t1, t2), где П2 – двухместная предикаторная константа, соответствующая знаку двухместного отношения, a t1 и t2 – термы, соответствующие именам предметов. Например, высказывание «Ромео любит Джульетту» может быть записано в виде R(a, b), где R соответствует двухместному предикатору «любит», а а и b – именам «Ромео» и «Джульетта», соответственно. Переводом высказывания «Джульетта любит саму себя» будет формула R(b, b), a переводом высказывания «Джульетта любит своего отца» – R(b, f(b)). Высказывания, в которых отрицается наличие отношения между двумя предметами, выражаются с помощью формул вида ¬П2(t1, t2). Например, переводом высказывания «Отец Ромео не любит отца Джульетты» является формула ¬R(f(a), f(b)). Вообще, высказывания о наличии отношения между п предметами записываются в виде Пn(t1, t2,..., tn), где Пn – n-местная предикаторная константа, соответствующая знаку n-местного отношения. Например, высказывание «Джульетта любит Ромео больше, чем своего отца» может быть записано в виде формулы R1(b, a, f(b)), где R1 – трехместная предикаторная константа, соответствующая трехместному отношению «любит больше, чем». Высказывания об отсутствии отношения между п предметами переводятся посредством формул вида ¬Пn(t1, t2,..., tn). Высказывания, в которых говорится о существовании объекта, удовлетворяющего некоторому условию, записываются в языке логики предикатов посредством формул вида ∃αА(α), где α – индивидная переменная, пробегающая по области объектов, о которых идет речь в высказывании, а А(α) – формула, выражающая утверждение о том, что α удовлетворяет условию А. Например, высказывание «Кто-то является храбрым» может быть переведено формулой ∃xQ(x), где х здесь и далее пробегает по классу людей, а Q – одноместная предикаторная константа, соответствующая предикатору «храбрый». Высказывание «Кто-то не является храбрым» может быть записано как ∃x¬Q(x). Высказывание «Кто-то любит Джульетту» переводится с помощью формулы вида ∃xR(x, b), где R соответствует двухместному предикатору «любит», a b – имени «Джульетта». Высказывание «Джульетта любит кого-нибудь» может быть записано в виде ∃xR(b, x), а высказывание «Кто-то не любит самого себя» – в виде ∃x¬R(x, x). Высказывания, в которых утверждается, что условию А удовлетворяет любой объект предметной области, переводятся на язык логики предикатов формулами вида ∀αA(α). Например, высказыванию «Все являются храбрецами» соответствует ∀xQ(x), высказыванию «Всякий любит Джульетту» – ∀xR(x, b), высказыванию «Никто не любит отца Ромео» – ∀x¬R(x, f(a)), высказыванию «Отец Ромео не любит никого» – ∀x¬R(f(a), x). Простые высказывания могут содержать в своем составе несколько кванторов. Поясним на примерах, каким образом осуществляются переводы на язык логики предикатов в подобных случаях. Высказыванию «Каждый любит кого-нибудь» соответствует формула ∀x∃yR(x, у); высказыванию «Кто-то кого-то не любит» – формула ∃x∃y¬R(x, у); высказыванию «Кто-то любит Ромео больше, чем кого-либо» – формула ∃х∀уR1(х, а, у). В состав каждого из рассмотренных ранее высказываний входил только один предикатор – «юноша», «храбрый», «любит» или «любит больше, чем». Однако простые высказывания могут содержать два, три и более предикаторов. Каким же образом осуществляется их формальная запись? Если подобное высказывание содержит квантор, то его переводом будет формула вида ∃αА(α) или ∀αA(α) с той лишь разницей, что условие А(α) будет иметь более сложную структуру. Начнем с формальной записи высказываний, содержащих два одноместных предикатора. Высказывание «Некоторый юноша храбр» может быть переведено на формальный язык посредством формулы ∃х(P(х) & Q(х)), которая имеет следующий буквальный смысл (с учетом того, что константам Р и Q соответствуют предикаторы «юноша» и «храбрый») – «Существует объект х (человек), который является юношей и является храбрым». Этот смысл в точности соответствует смыслу исходного высказывания. Высказывание «Всякий юноша храбр» может быть записано как ∀x(P(x) ⊃ Q(x)). Буквальный смысл этой формулы – «Для всякого объекта х (из класса людей) верно, что если он юноша, то он храбр» – также соответствует смыслу исходного высказывания. Отрицательные высказывания «Некоторый юноша не храбр» и «Ни один юноша не храбр» могут быть переведены соответственно формулами ∃х(P(х) & ¬Q(х)) и ∀x(P(x) ⊃ ¬Q(x)). Рассмотрим теперь простые высказывания с одним одноместным и одним двухместным предикатором. Например, переводом высказывания «Некоторый юноша любит Джульетту» будет формула ∃х(P(х) & R(x, b)) – «Существует человек х такой, что он является юношей и любит Джульетту». Переводом высказывания «Джульетта любит какого-то юношу» является формула ∃х(P(х) & R(b, x)) – «Существует человек х такой, что он является юношей и Джульетта любит его». Переводом высказывания «Каждый юноша любит Джульетту» является формула ∀x(P(x) ⊃ R(x, b)) – «Для всякого человека х верно, что если он юноша, то он любит Джульетту». Более трудными являются случаи, когда в состав высказываний об отношениях входят несколько одноместных предикаторов. Рассмотрим, например, высказывание «Всякий юноша любит какуюнибудь девушку». Как и раньше, предикаторам «юноша» и «любит» сопоставим константы Р и R, а одноместному предикатору «девушка» сопоставим одноместную предикаторную константу S. Тогда формальная запись нашего высказывания может иметь следующий вид: ∀x(P(x) ⊃ ∃у(S(у) & R(x, у))). Буквальный смысл этой записи с учетом принятых обозначений – «Для всякого x из класса людей, верно, что если он юноша, то существует у из этого же класса такой, что он девушка и х любит у» – в точности соответствует смыслу исходного высказывания. Высказывание «Некоторые юноши любят всякую девушку» может быть выражено формулой ∃х(Р(х) & ∀х(S(y) ⊃ R(x, у))) – «Существует человек х из класса людей такой, что он юноша и для всякого человека у верно, что если у – девушка, то х любит у». Соответствующим переводом высказывания «Некоторые юноши не любят ни одной девушки» является формула ∃х(Р(х) & ∀y(S(у) ⊃ ¬R(х, y))). Приведем еще несколько достаточно трудных примеров формальной записи простых высказываний естественного языка: «Всякий храбрец является юношей или девушкой» – ∀х(Q(х) ⊃ (Р(х) ∨ S(х))); «Всякая храбрая девушка не любит ни одного нехраброго юношу» – ∀х((S(х) & Q(х)) ⊃ ∀у((Р(у) & ¬Q(у)) ⊃ ¬R(х, у))); «Всякий юноша любит некоторую девушку больше, чем отца этой девушки» – ∀х(Р(х) ⊃ ∃у(S(у) & R1(х, у, f(у)))); «Некоторая девушка, отец которой храбр, любит его больше, чем некоторого не храброго юношу» – ∃х(S(х) & Q(f(х)) & ∃у((Р(у) & ¬Q(у)) & R1(х, f(х), у))).