如果一个语句是一个合取(由一个或多个AND组成的序列),并且每个合取项是一个析取(OR),由一个或多个文字(即,语句字母和否定的语句字母;Mendelson 1997, p. 30)组成,那么这个语句就处于合取范式。合取范式的例子包括
(1)
| |
(2)
| |
(3)
| |
(4)
|
其中 表示 OR,
表示 AND,而
表示 NOT (Mendelson 1997, p. 30)。
逻辑中由多个 ,
, 和
s 组合构成的每个语句都可以写成合取范式。
可以使用 Wolfram 语言和以下代码将表达式转换为合取范式
ConjunctiveNormalForm[f_] := Not[LogicalExpand[Not[f]]] //. { Not[a_Or] :> And @@ (Not /@ List @@ a), Not[a_And] :> Or @@ (Not /@ List @@ a) }