WOLFRAM ALPHA

МАТЕМАТИЧЕСКАЯ ЛОГИКА


expr - анализ выражения булевой алгебры

Примеры

  • P and not Q
  • P && (Q||R)

---------

truth table expr - получение таблицы истинности для выражения

Примеры

  • truth table p xor q xor r xor s
  • truth table not a and (not b or c)

---------

ForAll[xexpr] – для всех значений x выражение expr имеет значение True
ForAll[xcondexpr] – для всех значений x, удовлетворяющих условию cond, выражение expr имеет значение True
ForAll[{x1, x2, x3}, expr] – выражение expr имеет значение True для всех x

---------

Exists[xexpr] – существует значение x, для которого выражение expr имеет значение True
Exists[xcondexpr] – существует значение x, удовлетворяющее условию cond, для которого expr имеет значение True
Exists[{x1, x2, x3}, expr] – cуществуют такие значения для всех х, что выражение expr имеет значение True

---------

DNF[expr] – построение ДНФ для выражения expr
CNF[expr] – построение КНФ для выражения expr

---------

FullSimplify [expr] - упрощение логических вырадений и доказательство теорем

Пример:

Вход: FullSimplify[ForAll[x, Exists[y, g[x, y] == e]], ForAll[{x, y, z}, g[x, g[y, z]] == g[g[x, y], z] && g[e, x] == x && g[inv[x], x] == e]]
Выход: True

---------

Resolve[expr, Booleans] - пытается разрешить уравнение в форму без кванторов ForAll и Exists.

Примеры:

Вход: Resolve[Exists[{a, b, c, d}, Xor[a, b, c, d] && (a || b) && (c || d)], Booleans]
Выход: True

Вход: Resolve[Exists[a, ForAll[b, Nand[a, b, c, d] && (a || b) && (c || d)]], Booleans]
Выход: (c && !d) || (!c && d)

--------

FindInstance[expr, vars, Booleans] - находит пример значений vars, при которых expr имеет значение True.
FindInstance[expr, vars, Booleans, n] - находит n примеров

Примеры:

Вход: FindInstance[ Xor[a, b, c, d] && (a || b) && ! (c || d), {a, b, c, d}, Booleans]
Выход: {{a -> False, b -> True, c -> False, d -> False}}

Вход: statement = (a && ((a && ! (b || (a && c))) || b || (a && c))) || ! a || ! ((a && ! (b || (a && c))) || b || (a && c)); FindInstance[! statement, {a, b, c}, Booleans]
Выход: {}

Вход: statement = (b && ((a && ! (b || (a && c))) || b || (a && c))) || ! a || ! ((a && ! (b || (a && c))) || b || (a && c)); FindInstance[! statement, {a, b, c}, Booleans]
Выход: {{a -> True, b -> False, c -> True}}