Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Предикат в программировании это

Предикаты и кванторы

Понятие предиката

Утверждения, содержащие в себе переменные, обладающие способностью принимать значения 0 или 1 (ложно или истинно) в зависимости от принимаемых переменными значений, называют предикатами.

В качестве примера может быть рассмотрено выражение x=x^5 представляет собой предикат, поскольку оно будет истинным исключительно в случае принятия переменной x значений 0 или 1 и будет ложным в случае присвоения переменной x всех стальных отличных от 0 и 1 значений.

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

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

Тождественно-истинным называют предикат, способный принимать истинное значение в случае использования любого набора значений аргумента:

Предикат, для которого использование любого набора значений аргумента приводит к принятию им ложного значения, называют тождественно-ложным:

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

Поскольку предикаты обладают способностью принимать исключительно значения двух видов – ложно или истинно (0 или 1), к ним могут быть применены все операции, относящиеся к алгебре логики: дизъюнкция, конъюнкция, отрицание и т.п.

Примеры предикатов

Допустим, что предикат, имеющий вид R(x,y): «x = y», где переменные x и y являются целыми числами, является обозначением отношения равенства. Принятие предикатом R истинного значения будет происходить исключительно в случае равенства всех x и y.

В качестве другого примера может быть рассмотрен предикат, имеющий вид ТРУДИТСЯ(x,y,z) образованный для отношения «x трудится в населённом пункте y на предприятии z».

Примером ещё одного вида может служить предикат — СИМПАТИЗИРУЕТ(x,y) характеризующий отношение «x симпатизирует y» для переменных x и y, принадлежащих к множеству М, включающему в себя всех людей.

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

Операции над предикатами

К предикатам могут быть применены операции, относящиеся к алгебре логики. Рассмотрим особенности применения подобных операций.

Операции логического характера:

Конъюнкцией предикатов A(x) и B(x) называют предикат нового вида, принимающий истинное значение исключительно при тех значениях переменной x из множества значений T, которые позволяют каждому из обоих предикатов приобретать истинное значение, в то время как ложное значение будет ими приниматься во всех иных случаях. Подобному предикату соответствует множество истинности T представляющее собой пересечение соответствующих заданным предикатам A(x) и B(x) множеств истинности. К примеру, если предикат A(x) характеризует отношение «x – число чётное», а предикат B(x) обозначает отношение «x делится на число 5», то конъюнкцией подобных предикатов станет предикат, характеризующий отношение следующего вида: «x – число чётное и кратно числу 5» или «x кратно 10».

Дизъюнкцией для предикатов A(x) и B(x) является предикат нового вида, принимающий ложное значение исключительно при тех значениях переменной x из множества значений T, которые позволяют каждому из обоих предикатов приобретать ложное значение, в то время как истинное значение будет ими приниматься во всех иных случаях. Ему соответствует множество истинности, представляющее собой пересечение соответствующих заданным предикатам A(x) и B(x) множеств истинности.

Отрицанием предиката A(x) является предикат нового вида, принимающий истинное значение в случае принятия переменной x всех значений из множества T, которые позволяют принимать предикату A(x) ложное значение или наоборот. Для подобного предиката множество истинности будет представлять собой дополнение T’ к соответствующему предикату A(x) множеству истинности.

Импликацией для предикатов A(x) и B(x) является предикат нового вида, принимающий ложное значение исключительно при тех значениях переменной x из множества значений T, которые позволяют предикату A(x) обретать истинное значение, в то время как предикат B(x) принимает значение ложное, принимая истинное значение во всех иных случаях. Запись подобной операции обычно имеет вид: «Если A(x), то B(x)».

Допустим, существуют предикаты A(x): «число x является натуральным и делится на 3» и B(x): «число x является натуральным и делится на 4».

Может быть составлен предикат определяющий отношение «если число x является натуральным и делится на 3, то такое число делится и на 4».

Для такого предиката множеством истинности будет иметь вид объединения множества истинности для B(x) и дополнения к множеству истинности для A(x).

Кроме операций логического характера над предикатами могут выполняться квантовые операции – это использование кванторов существования, всеобщности и т.п.

Кванторы

Применяемые к предикатам логические операторы, превращающие их в высказывания, имеющие истинное или ложное значение, называются кванторами.

Существует другое определение кванторов, согласно которому, это логические операции, создающие высказывание и ограничивающие для предикатов, к которым они применяются, их область истинности.

Наиболее часто применяемыми являются следующие кванторы:

  • обозначаемый символом ∀, квантор всеобщности, который соответствует выражениям, имеющим вид «для всех значений x», «для любого значения x» и т.п.;
  • обозначаемый символом ∃, квантор существования, который соответствует выражению, имеющему вид «существует значение x такое, что…»;
  • обозначаемый символом ∃!, квантор существования и единственности, который соответствует выражению имеющему вид «существует всего одно такое значение x, что…».

Процессу приписывания квантора к формуле в математической логике соответствует понятие квантификации или связывания.

Примеры применения кванторов

Допустим, существует предикат, описывающий отношение «x кратно 7».

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

  • любое число, являющееся натуральным, делится на 7;
  • каждое из чисел, являющихся натуральным, делится на 7;
  • все существующие числа, являющиеся натуральными, способны делиться на 7.

Такой квантор будет иметь следующий вид:

Применяя квантор существования, истинные высказывания в отношении этого же предиката могут быть записаны следующим образом:

  • существуют числа, являющиеся натуральными, которые делятся на число 7;
  • может быть найдено натуральное число, кратное числу 7;
  • существует хотя бы одно число, являющееся натуральным, способное делиться на число 7.

Запись данного квантора приобретёт вид:

Допустим, для множества некоторых простых чисел x образован предикат, описывающий отношение «простое число является числом нечётным». Если перед предикатом вставить слово «любое» получим в результате ложное высказывание, имеющее вид: «любое простое число одновременно является числом нечётным» (число 2, например, будучи числом простым, являясь при этом чётным числом).

Если перед предикатом вставить слово «существует» получим в результате истинное высказывание в виде: «существует простое число, одновременно являющееся нечётным» (x=3, к примеру).

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

Операции над кванторами

Применяемым для образования отрицания высказываний, содержащих кванторы, является правило отрицания кванторов, имеющее вид:

Для примера рассмотрим некоторые предложения, определив среди них предикаты и область истинности для них:

  • предложение x – 2 = 0 – представляет собой предикат с множеством истинности Ip = <2>;
  • выполняемое при x=3 равенство x^2 — 8 = 0 — не является предикатом, являясь ложным высказыванием;
  • предложение x^2 — 4 x + 4 = 0 — является предикатом с множеством истинности Ip = <2>;
  • существует такое значение переменной x при котором x^2 — 4 x + 4 = 0 — не является предикатом, являясь истинным высказыванием;
  • предложение x – 2 0 – является предикатом, для которого область истинности это вся плоскость координат за исключением точки с координатами (0;0).

Что такое предикат?

Будучи любителем кодирования, мне не хватает некоторых фундаментальных знаний. Последние пару дней я кое-что читаю, и слово «predicate» все время всплывает. Я был бы очень признателен, если бы вы объяснили мне это.

11 Ответов

Определение предиката, которое можно найти в интернете в различных источниках, таких как здесь, является:

Логическое выражение, которое вычисляется как TRUE или FALSE, обычно для направления пути выполнения в коде.

Утверждение, которое является либо истинным, либо ложным. В программировании это обычно функция, которая возвращает логическое значение для некоторых входных данных.

Наиболее часто (я думаю) используется в контексте функции более высокого порядка. E.g. filter -это функция во многих языках, которая принимает предикат и список в качестве аргументов и возвращает элементы в списке, для которых предикат является истинным.

Пример в javascript:

здесь предикатом является функция lessThanTen , которая применяется к каждому элементу списка. Конечно, логическое выражение может быть использовано в качестве предиката вместо функции, например filter(true) вернет полный список, filter(false) -пустой список.

Предикат — это не просто выражение, которое оценивает значение true или false, но и нечто большее. Термин «predicate» используется для обозначения выражения, которое определяет , является ли что-то истинным или ложным. Или, другими словами, он делает утверждение и возвращает true или false, основываясь на этом.

Я понимаю, что то, что я здесь изложил, является чисто семантическим различием, но именно об этом и был задан этот вопрос, верно? Семантика?

В непрограммных терминах; вопрос . Как правило, общий вопрос с держателями мест (как и он сам), который можно задать о многих вещах.

  • Это красный цвет?
  • Это что, собака?
  • Неужели он принадлежит им ?

Базовая оценка, которая приводит к логическому значению 1 . Он часто ссылается на функцию или объект, который представляет оценку этого типа.

1: boolean используется свободно, не обязательно ссылаясь на переменные, объявленные bool или boolean .

Сначала давайте посмотрим на обычный словарь и посмотрим, что он говорит о том, что такое предикат:

Оксфордский Словарь Американского Языка (1980):

n. часть предложения, которая говорит что-то о грамматическом субъекте, как «is short» в «life is short»

Вот еще одно предложение: «John is tall.» предикат — это «is tall». Как вы можете видеть, он изменяет или описывает предмет, другой термин, похожий на predicate , — это adjective . По сути, это модификатор.

Технология IBM glossary предоставляет несколько определений, но лучше всего подходит вот это:

Выражение, используемое в составе фильтра, состоящего из элемента данных, оператора и значения

Вот пример использования SQL:

Предикатом в этом коде будет name = «john» . Он имеет все компоненты определения IBM и также соответствует регулярному определению предиката. Субъект — это name , а предикат- name = «john» .

Функция, которая возвращает логическое значение. Предикаты часто используются в функциональном и OO программировании для выбора подмножеств значений из структур данных, особенно списков и других коллекций. Вы найдете множество примеров в стандартных библиотеках для Haskell и Smalltalk.

Вероятно, полезно рассмотреть грамматическое значение этого понятия, чтобы экстраполировать концепцию программирования.

В традиционном grammar предикатом является одна из двух основных частей a предложение (другой является предметом, который модифицируется предикатом). Для простое предложение «John [is yellow],» Иоанн выступает в роли субъекта и является желтый выступает в качестве предиката, а последующее описание предмета во главе с глаголом.

В современной лингвистической семантике a предикат-это выражение, которое может быть правда в чем-то. Таким образом, выражения «is yellow» или «is like broccoli» являются истинными для этих вещей они желтые или как брокколи, соответственно. Это понятие тесно связано связано с понятием предиката в формальной логике, которая включает в себя более выражения, чем первый, например:, например, существительные и некоторые виды прилагательные.

В логических терминах:

Оператор в логике, который возвращает true или false.

Я не знаю, правильно ли я говорю, но есть класс Predicate в C#, который по сути является делегатом, который, учитывая элемент, определяет, соответствует ли объект набору критериев.

Например, следующий метод, который имеет тип Predicate , может быть использован для выбора всех целых чисел больше 5:

Я не знаю, как это переводится в более общий случай, но это начало. Для получения дополнительной информации нажмите здесь .

От C++ Primer 5th (§10.3.1):

Предикат-это выражение, которое можно вызвать и которое возвращает значение, которое можно использовать в качестве условия.

Также из раздела определенные термины главы:

предикат : функция, которая возвращает тип, который может быть преобразован в bool .

Также в некоторой степени связаны предикаты, связанные с базой данных:

Похожие вопросы:

Что такое семантический предикат в ANTLR?

Я перечисляю a PHFetchResult. Если я делаю println на PHAssets возвращается, я получаю это:

4CBE5A4F-90BD-438B-954E-6FF1B14538CD/L0/001 mediaType=1/0, assetSource=3.

Я использую вариант более высокого порядка Prolog, в котором отсутствует findall . Существует еще один вопрос о реализации нашего собственного findall здесь: получение списка решений в Prolog .

Я очень новичок в использовании предикатов и только что научился писать: Predicate pre = delegate(int a)< a %2 == 0 >; Что вернет предикат и как он будет полезен при программировании?

Какой предикат мне нужно использовать, когда объекты возвращаются из массива Core Data: Первые объекты должны полностью совпадать; Другой объект должен просто содержать определенное слово; Например.

Возможный Дубликат : Что такое предикат в C++? Когда я читаю праймер C++, есть определенный термин, который является предикатом . Определение таково : Функции, возвращающие тип, который можно.

Я прохожу через код, который использует предикат в Java 8.Can кто-то поможет мне с лучшим сценарием использования предиката

Как создать такую логику в GNU Prolog? Как определить предикат not_a_parent() ? parent(john,chris). parent(mary,chris). not_a_parent(X) :- + parent(X,Y). Интересный ответ на подобный вопрос.

Racket содержит пути модулей (предикат module-path? ), разрешенные пути модулей (предикат resolved-module-path? ) и индексы путей модулей (предикат module-path-index? ). Я думаю, что module-path.

Когда я пытаюсь скомпилировать этот код: impl Storage for Database where S: StoredElement, V: VisibleElement, Компилятор жалуется error[E0207]: the type parameter `V` is not.

Предикат в программировании это

9. ЛОГИКА ПРЕДИКАТОВ ПЕРВОГО ПОРЯДКА

9.1. Основы логики предикатов первого порядка

Логика предикатов первого порядка является дальнейшим развитием традиционной логики Аристотеля и логики высказываний. Одним из ключевых понятий логики высказываний является непосредственно высказывание – выражение, записанное с помощью определенного синтаксиса, которому можно приписать истинностное значение (истина или ложь). Например, выражения «В сутках 24 часа» или «Инопланетяне существуют» являются высказываниями, т.к. могут быть истинными или ложными (в зависимости от принятой объективной или субъективной точки зрения). При этом само выражение в логике высказываний представляется неделимым целым, т.е. его нельзя разделить на отдельные компоненты и, соответственно, использовать сведения об его структуре.

Логика предикатов позволяет расчленить высказывание, представленное в виде предиката, на предикатный символ 1 (выражение, означающее свойство сущности или тип отношения между сущностями) и терм/термы (выражение/выражения, означающие значение свойства сущности или связываемые отношением сущности). Непосредственным аналогом предиката в программировании является логическая (булева) функция, где имя функции – предикатный символ, а ее аргументы – термы. Например, в предикате (логической функции) «простое_число(X)»: «простое_число» – предикатный символ (имя функции), а «X» – терм (аргумент функции). При одних значениях X (например, 13 или 17) это высказывание истинно, при других (например, 10 или 18) — ложно.

Аналогичным образом можно определить логическую функцию нескольких переменных предикат(X, Y, Z, . ), которая при одних сочетаниях переменных будет истинна, а при других — ложна. Такую функцию называют n-местным предикатом. Множество всех сочетаний переменных, при которых предикат принимает значение «истина», называется множеством истинности предиката.

Предикат первого порядка часто называют атомарной формулой (атомом), что означает неделимость предиката на подформулы, эквивалентные по своей семантике другому предикату. Номер порядка (первый) означает, что в качестве термов нельзя использовать другие предикаты. В то же время за счет использования логических операций (связок) предикаты можно объединять в более сложные высказывания.

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

1 В логике предикатов, с синтаксической точки зрения, под «символом» понимается, как одиночный символ, так и их набор.

9.2. Синтаксис и семантика логики предикатов первого порядка

Синтаксис и семантика логики предикатов первого порядка [2, 23, 31]:

— логическая константа – true (истина) и false (ложь);

— константа – символьное выражение, начинающееся со строчной буквы (например, cat, blue);

— переменная – символьное выражение, начинающееся с прописной буквы или знака подчеркивания (например, X, Сat, _blue);

— функция и предикат – символьное выражение, начинающееся со строчной буквы, за которым следует список аргументов (термов), заключенных в скобки (например, кошка(катя), sin(X), друзья(вася, петя)). Отличие функции от предиката, заключается в том, что функция возвращает результаты любого типа (строку, число, дату и т.д.), а предикат – только логического типа (истину или ложь);

— список – упорядоченный набор элементов (констант, переменных или предикатов), указанных через запятую и заключенных в квадратные скобки (например, [red, blue], [X, Сat, _blue], [кошка(катя)]);

— терм – константа, переменная, функция или список;

— ∨ – логическое ИЛИ (дизъюнкция, логическое сложение);

— → (⇒) – импликация (если — то);

— вспомогательный символ: круглые скобки, запятые, +, — и т.п;

— формула (предложение, правило, правильно построенная формула) — предикат (атом), логическое выражение или одна из следующих конструкций: ¬А, A∧B, A∨B, A→B, A↔B, (∀X) A и (∃X) A, где A и B — формулы, а X — переменная. Результатом вычисления формулы является либо истина либо ложь.

При вычислении составных формул приняты правила вывода, показанные в табл.8.1.

Приоритет операций и кванторов при исчислении формул показан ниже.

В скобках показаны операции (кванторы) с одинаковым приоритетом. Если в формуле используются операции (кванторы) с одинаковым приоритетом, то порядок исчисления слева-направо. Изменение порядка исчисления можно добиться за счет использования круглых скобок «( )».

— если Маша мать X и Y, то X является братом или сестрой Y:

мать(маша, X) ∧ мать(маша, Y) → брат(X, Y) ∨ сестра(X, Y).

— если X – человек, то он смертен:

Квантор существования ∃ указывает, что предложение истинно, по крайней мере, для одного значения переменной. Например, ∃X друзья(X, петя) – существует, по крайней мере, один субъект X, который является другом Пети.

Квантор всеобщности ∀ указывает, что предложение истинно, для всех значений переменной. Например, ∀X человек(X) → смертен(Х) – все люди смертны.

При комбинации кванторов очень важен порядок их использования, например [22]:

— ∀X∃Y любит(Х, Y) – любой Х любит хотя бы одного Y;

— ∀Y∃X любит(Х, Y) – любого Y любит хотя бы один Х;

— ∃X∀Y любит(Х, Y) – существует такой Х, который любит всех Y;

— ∃Y∀X любит(Х, Y) – существует такой Y, которого любят все X;

— ∀X∀Y любит(Х, Y) и ∀Y∀Х любит(Х, Y) – любой X любит всех Y и любой Y любим всеми X (эквивалентные предложения);

— ∃X∃Y любит(Х, Y) – существует такой X, который любит хотя бы одного из Y;

— ∃Y∃Х любит(Х, Y) – существует такой Y, которого любит хотя бы один X.

9.3. Исчисление предикатов

Исчисление предикатов использует для вывода те же правила, что и классическое исчисление высказываний: правило Modus Ponens и правило подстановки.

Основными отличиями логики предикатов от логики высказываний являются:

— использование в формулах кванторов;

— использование в формулах предикатов и функций;

— в логике предикатов к компонентам логического выражения можно получить доступ, а в логике высказываний — нет. Например:

— логика высказываний: «Я человек» → «Я смертен»;

— логика предикатов: человек(X) → смертен(X) — X = «Я», «Вася», «Петя» и т.д.

Наиболее известным языком логического программирования, реализующим модифицированную логику предикатов первого порядка, является Пролог (Prolog — PROgramming LOGig, логическое программирование). Для записи формул в Прологе используются т.н. фразы Хорна, синтаксис которых немного отличается от классического.

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

9.4. Достоинства и недостатки логики предикатов первого порядка

Достоинства логики предикатов первого порядка [21]:

— в качестве «фундамента» используется классический аппарат математической логики, методы которой достаточно хорошо изучены и формально обоснованы;

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

Недостатки логики предикатов первого порядка [4, 23]:

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

— невозможность применения в качестве термов (параметров) предикатов других предикатов, т.е. невозможность формулирования знаний о знаниях.

Что такое предикат: определение и примеры

Что такое предикат? Это слово встречается в лингвистике, математике, философии и программировании. Но не может же быть так, что в этих столь разных науках это слово имеет одинаковое значение? Математическая логика дает свою, особую трактовку этого термина. Начнем с нее.

Предикат в математике

В математической логике предикат обычно понимается как функция P: X → <правда, ложь>, называемая предикатом X. Однако предикаты имеют много разных применений и интерпретаций в математике и логике, и их точное определение, смысл и использование будут варьироваться от теории к теории. Так, например, если теория определяет понятие отношения, то предикат является просто характеристической функцией, иначе известной как индикаторная функция отношения. Однако не все теории имеют отношения или основаны на теории множеств, поэтому нужно быть осторожным с правильным определением и семантической интерпретацией предиката.

Правда или ложь

Если вам все еще непонятно, что такое предикат в математике, то стоит остановиться на этом подробнее. Неформально предикат — это утверждение, которое может быть истинным или ложным в зависимости от значений его переменных. Его можно рассматривать как оператора или функцию, которая возвращает значение, являющееся истинным или ложным. Например, предикаты иногда используются для указания набора элементов: при разговоре о наборах иногда бывает неудобно или невозможно описать набор, перечисляя все его элементы. Таким образом, предикат P (x) будет истинным или ложным, в зависимости от того, принадлежит ли x множеству.

Свойства объектов

Предикаты в математической логике также широко используются, чтобы говорить о свойствах объектов, определяя набор всех объектов, имеющих общее свойство. Так, например, когда P является предикатом X, иногда можно сказать, что P является свойством X. Аналогично, обозначение P (x) используется для обозначения предложения или утверждения P относительно объекта переменной Х. Множество, определенное P (x), записывается как и является множеством объектов, для которых P истинно.

Если t — элемент множества , то утверждение P (t) истинно.

Здесь P (x) называется предикатом, а x — заполнителем предложения. Иногда P (x) также называется пропозициональной функцией, так как каждый выбор с Х создает предложение.

Простым видом предиката (П) является булево выражение, и в этом случае входы в выражение сами являются значениями, объединенными с использованием булевых операций. Булево выражение со множеством истинности предиката является более сложным явлением.

Формальное определение

  • Точная семантическая интерпретация атомной формулы и атомного предложения будет варьироваться от теории к теории.
  • В пропозициональной логике атомные формулы называются пропозициональными переменными. В некотором смысле это предикаты с нулевыми значениями.
  • В логике первого порядка атомная формула состоит из предикатного символа, применяемого к соответствующему числу членов.
  • В теории множеств предикаты понимаются как характерные функции или задают функции индикатора, т. е. функции от заданного элемента до значения истины.
  • Метод построения видов суждений использует предикаты для их определения.
  • В автоэпистемической логике, которая отвергает закон исключенного среднего, предикаты могут быть истинными, ложными или просто неизвестными, т. е. данный набор фактов может быть недостаточным для определения истины или ложности предиката.
  • В нечеткой логике предикаты являются характерными функциями распределения вероятностей. То есть строгая истинная / ложная оценка предиката заменяется величиной, интерпретируемой как степень правды.

Предикат в грамматике

Существует два конкурирующих понятия предиката в теориях грамматики. Конкуренция между этими двумя концепциями породила путаницу в отношении использования термина «предикат» в теориях грамматики. Так что такое предикат? В этой статье рассматриваются оба эти понятия.

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

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

В традиционной грамматике

Понятие П в традиционной грамматике вдохновлено пропозициональной логикой древности (в отличие от более современной логики предикатов). Предикат рассматривается как свойство, которое субъект имеет. Следовательно, предикат является выражением, которое может быть истинным. Таким образом, выражение «движется» верно для всего, что движется. Это дает ответ на вопрос, что такое предикат.

Такое классическое понимание предикатов было принято более или менее непосредственно в латинской и греческой грамматиках, и оттуда оно попало в грамматику английского и русского языков, где применяется непосредственно к анализу структуры предложения. Это понимание П также используется в англоязычных словарях.

Субъект и предикат

Предикат является одной из двух основных частей предложения (другой — субъект, который предикат модифицирует). Он должен содержать глагол, и глагол требует или разрешает другим элементам заполнять предикат.

Предикат предоставляет информацию о предмете: чем он является, что делает субъект, или что такое объект. Связь между субъектом и его предикатом иногда называется языком предикатов. Его номинал — это существительная фраза. Например, в фразе «Джордж III — король Англии», король Англии является предикативным номиналом. Субъект и предикативный номинал должны быть соединены связующим глаголом, также называемым копулой. Субъект и предикативное прилагательное также должны быть связаны связкой.

В синтаксисе

Синтаксический П указывает синтаксическую обоснованность применения произведения в формальной грамматике и аналогичен семантическому предикату, который определяет семантическую действительность применения произведения. В своей первоначальной реализации синтаксические предикаты имели форму «(α)?» и могли появляться только на левом краю произведения. Необходимым синтаксическим условием α может быть любой допустимый контекстно-свободный фрагмент грамматики.

Более формально синтаксический предикат представляет собой форму производственного пересечения, используемого в спецификациях парсера или в формальных грамматиках. В этом смысле термин имеет значение математической функции индикатора. Если p1 и p2 являются производственными правилами, язык, сгенерированный как p1, так и p2, является их заданным пересечением.

Размышляющие грамматики выражений (PEGs), изобретенные Брайаном Фордом, расширяют эти простые П, позволяя им появляться где угодно в пределах производства наравне с «не предикатами». Более того, Форд изобрел процедуру разбора для обработки этих грамматик в линейном времени.

Этот подход реализуется в ANTLR версии 3, которая использует детерминированные конечные автоматы для просмотра. Это может потребовать тестирования предиката для выбора между синтаксическими переходами (так называемый «пред-LL (*)» синтаксический анализ).

В современных теориях синтаксиса

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

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

В логике

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

Логика первого порядка

Подобные теории, как правило, является частью логики первого порядка вместе с определенной областью дискурса, по которой варьируются квантифицированные переменные. Иногда теория понимается в более формальном смысле, а это всего лишь набор предложений в логике первого порядка.

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

Теоретическая часть

Существует много дедуктивных систем для видов суждений и логики первого порядка, которые являются как звуковыми (все доказуемые утверждения верны во всех моделях), так и полными (утверждения, которые верны для всех моделей, являются доказуемыми). Хотя отношение логического следствия разрешимо лишь наполовину, в автоматизированной теореме, доказанной в логике первого порядка, достигнут значительный прогресс. Логика первого порядка также удовлетворяет нескольким металогическим теоремам, которые делают ее пригодной для анализа в теории доказательств, такой как теорема Левенхайма-Сколема и теорема о компактности.

Логика первого порядка является стандартом для формализации математики в аксиомах и изучается в основах математики. Арифметика Пеано и теория множеств Цермело-Френкеля являются аксиоматизациями теории чисел и теории множеств, соответственно, являются частью логики первого порядка. Однако теория первого порядка не имеет возможности однозначно описывать структуру с бесконечной областью, например натуральные числа. Системы аксиом, которые полностью описывают эти две структуры (то есть системы категориальной аксиомы), могут быть получены в более сильных формах логики, таких как логика второго порядка.

Основы логики первого порядка были разработаны независимо Готлобом Фреге и Чарльзом Сандерсом Пирсом.

Что такое предикат?

будучи любителем кодера, мне не хватает некоторых фундаментальных знаний. В течение последних нескольких дней я читал некоторые вещи, и слово «предикат» продолжает появляться. Я был бы очень признателен за объяснение по этому вопросу.

11 ответов:

определение предиката, который можно найти в интернете в различных источниках, таких как здесь, является:

логическое выражение, которое вычисляется как TRUE или FALSE, обычно для направления пути выполнения в коде.

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

чаще всего (я думаю) используется в контексте функции высшего порядка. Е. Г. filter — это функция на многих языках, которая принимает и список в качестве аргументов и возвращает элементы в списке, для которых предикат имеет значение true.

пример в javascript:

функции lessThanTen здесь предикат, который применяется к каждому элементу в списке. Конечно, логическое выражение может быть использовано в качестве предиката вместо функции, например filter(true) вернет полный список, filter(false) пустой список.

предикат — это не просто выражение, которое оценивается как true или false, это еще не все. Термин «предикат» используется для обозначения выражения, которое определяет есть ли что-то истинным или ложным. Или другими словами, он делает утверждение и возвращает true или false в зависимости от того.

Я понимаю, что я поставил здесь чисто разница в семантике, но это то, что этот вопрос был о праве? Семантика?

базовая оценка, которая приводит к логическому 1 значение. Это часто относится к функции или объекту, который представляет оценку этого типа.

1: boolean используется свободно, не обязательно ссылаясь на переменные, объявленные bool или boolean .

в плане программирования; вопрос. Обычно общий вопрос с держателями мест (например,это и их) Это можно спросить о многих вещах.

  • и это красный?
  • и это собака?
  • и это принадлежащий их?

Я не знаю, если я говорю в правильном контексте, но есть Predicate класс В C#, который по существу является делегатом, который, учитывая элемент, определяет, соответствует ли объект набору критериев.

например, следующий метод, который имеет тип Predicate , может использоваться для выбора всех целых чисел больше 5:

Я не уверен, как это переводится в более общий случай, но это начало. Для получения дополнительной информации,клик здесь.

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

вероятно, полезно рассмотреть грамматическое значение понятия для экстраполяции концепции программирования.

в традиционной грамматике, предикат — один из двух главных частей предложение (другой субъект, который предикат изменяет). Для простое предложение «Джон [желтый],» Иоанн действует как субъект и является желтый действует как предикат, а последующее описание предмет: во главе с глаголом.

в современной лингвистической семантике, a предикат-это выражение, которое может быть правда в чем-то. Таким образом, выражения «желтый» или » похоже брокколи » верны те вещи это желтый или как брокколи, соответственно. Это понятие тесно связано связанный с понятием предиката в формальной логике, которая включает в себя более выражения, чем первый, например, например, существительные и некоторые виды прилагательные.

с точки зрения логики:

оператор в логике, который возвращает true или false.

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

Оксфордский Американский Словарь(1980):

n. часть предложения, которая говорит что-то о грамматическом предмете, как «коротка» в «жизнь коротка»

вот еще одно предложение: «Джон высок.»предикат — это «высокий». Как вы можете видеть, он изменяет или описывает предмет, другой термин, похожий на predicate и adjective . По сути это модификатор.

технология IBM глоссарий предоставляет несколько определений, но больше всего подходит этот:

выражение, используемое в составе фильтра, состоящего из элемента данных, оператора и значения

вот пример использования SQL:

предикат в этом коде будет name = «john» . Оно имеет все компоненты определения IBM и также приспосабливает с регулярн определением предикат. Субъект является name и предикат, будучи name = «john» .

Читать еще:  Технологии визуального программирования
Ссылка на основную публикацию
Adblock
detector