一阶逻辑

一阶逻辑是使用于数学、哲学、语言学及计算机科学中的一种形式系统。
过去一百多年，一阶逻辑出现过许多种名称，包括：一阶断言演算、低级断言演算、量化理论或谓词逻辑。一阶逻辑和命题逻辑的不同之处在于，一阶逻辑有使用量化变量。一个一阶逻辑，若具有由一系列量化变量、一个以上有意义的断言字母及包含了有意义的断言字母的纯公理所组成的特定论域，即是一个一阶理论。
一阶逻辑和其他高端逻辑不同之处在于，高端逻辑的断言可以有断言或函数当做引数，且允许断言量词或函数量词的（同时或不同时）存在。在一阶逻辑中，断言通常和集合相关连。在有意义的高端逻辑中，断言则会被解释为集合的集合。
存在许多对一阶逻辑是可靠（所有可证的叙述皆为真）且完备（所有为真的叙述皆可证）的演绎系统。虽然一阶逻辑的逻辑归结只是半可判定性的，但还是有许多用于一阶逻辑上的自动定理证明。一阶逻辑也匹配一些使其能通过证明论分析的元逻辑定理，如勒文海姆–斯科伦定理及紧致性定理。
一阶逻辑是数学基础中很重要的一部分，因为它是公理系统的标准形式逻辑。许多常见的公理系统，如一阶皮亚诺公理和包含策梅洛-弗兰克尔集合论的公理化集合论等，都可以形式化成一阶理论。然而，一阶定理并没有能力去完整描述及范畴性地建构如自然数或实数之类无限的概念。这些结构的公理系统可以由如二阶逻辑之类更强的逻辑来获取。

语法

一阶逻辑可分成两个主要的部分：语法决定哪些符号的组合是一阶逻辑内的合法表示式，而语义则决定这些表示式之前的意思。

词汇表

和英语之类的自然语言不同，一阶逻辑的语言是完全角式的，因为可以机械式地判断一个给定的表示式是否合法。存在两种合法的表示式：“项”（直观上代表对象）和“公式”（直观上代表可真或伪的断言）。一阶逻辑的项与公式是一串符号，这些符号一起形成了这个语言的词汇表。如同所有的形式语言一般，符号本身的性质不在形式逻辑讨论的范围之内；它们通常只被当成字母及标点符号。
一般会将词汇表中的符号分成“逻辑符号”（总有相同的意思）及“非逻辑符号”（意思依解释不同而变动）。例如，逻辑符号总是解释成“且”，而绝不会解释成“或”。另一方面，一个非逻辑断言符号，如Phil(x），可以解释成“x是哲学家”、“x的个名为Philip　的人”或任何其他的1元断言，单看其解释为何。

形成规则

形成规则定义一阶逻辑的项及公式。因为项及公式被表示为一串符号，这些规则可被用来写成项及公式的形式文法。这些规则通常是上下文无关的（规则的每个结果在其左侧都会有单一个符号），除非允许有无限多符号，且有许多开始符号，如项中的变量。

语义

一阶语言的解释会对语言内的所有非逻辑常数赋予上意义，同时也决定能指明量化范围的论域。其结果为，每个项都会被赋予其代表的组件，每个句子也都会被赋予上一个真值。这样，解释即对语言内的项及公式提供了语义。研究形式语言的解释的学科称为形式语义学。
论域D是由某种类型的“对象”所组成的非空集合。直观上来看，一阶公式是有关这些对象的叙述。例如，叙述存在一个对象x，能使得指涉此对象的断言P为真。论域即是此类考量的对象的集合，例如可取D为整数的集合。
函数符号的解释是函数。举例来说，若论域由整数所组成，则一个2元的函数符号f能解释为给出其参数之和的函数。换句话说，符号f和在此解释下为加法的函数I(f)是相关连的。
常数符号的解释是一个从单元素集合D⁰映射至D的函数，也可简单视为是D内的一个对象。例如，一个解释可将值赋予常数符号。
n元断言符号的解释是由论域中的元素所组成的n对有序集。这意味着，给定一个解释、一个断言符号及论域中的n个元素，则可依给定的解释判断这些元素的断言是否为真。例如，一个2元断言符号P的解释I(P)可以是一对整数，能使得第一个整数小于第二个整数。依据这个解释，断言P在其第一个参数小于第二个参数时为真。

有效性、可满足性及逻辑结论

若句子φ在一给定解释M下为真，则称M 满足φ，标记为。一个句子称为可满足的，若存在某个解释使其为真。
具自由变量的公式的可满足性就较为复杂了，因为只用解释并无法决定此类公式的真值。一个常见的惯例是称一个具自由变量的公式在一个解释下为可满足的，若不论如何将论域中的个体赋予其自由变量，这个公式皆为真。这等价于称公式为可从足的，当且仅当其全称闭包为可满足的。
一个公式是逻辑有效的（或简单称为有效的），若在每一个解释之下皆为真。此类的公式和命题逻辑中的重言式扮演着相似的角色。
一个公式φ是公式ψ的逻辑结论，若每个使得ψ为真的解释皆会使得φ为真。在此一状况下，称φ被ψ逻辑蕴涵着。

一阶理论、模型及基本类

一阶理论是由在一特定一阶标识内的一组公理所组成的。公理所组成的集合通常是有限的或递归可枚举的，此类的理论称为是有效的。有些作者要求理论也要包括所有由公理导出的逻辑结论。
满足给定理论内的所有句子的一阶结构称为此理论的模型。基本类是由所有满足特定理论的结构所组成的集合。这些类是类型论里的研究主题。
许多理论都有一个预期解释，即一个在研究理论时会在意的某种模型。例如，皮亚诺公理的预期解释是由一般的自然数和其一般的运算所组成的。不过，勒文海姆–斯科伦定理证明，大多数的一阶理论也都会有其他的非标准模型。
一个理论是兼容的，若不可能由这个理论的公理中证明出矛盾来。一个理论是完备的，若对每个其标识内的公式，此公式或公式的否定会是个由理论公理导出的逻辑结论。哥德尔不完备定理证明，有效的一阶理论只要它强到足以蕴涵自然数的理论，即无法同时是兼容且完备的。

代换

设
t是项。φ(x)是可能包含x作为自由变量的公式。
φ(t)可定义为把自由变量x替代为t的结果，但前提是必须没有任何t在φ(x)中是约束的。
若非如此，则x替代成t之前，必须先把φ中的约束变量，改为不同于t的符号。
例如把公式φ(x)假定为∀y:y ≤ x（"x是极大的"）。
若用t代换x，则φ(t)即∀y:y ≤ t就表示t是极大的。
这里举个错误的例子，若在φ(x)中含有约束变量y的状况下，不去修改φ(x)中含有约束变量y，直接把x代换成y，代换结果如下
∀y:y ≤ y
如此一来即成为跟φ(x)意义完全不同的公式。
正确的演算方法为先把φ(x)中的约束变量用到y的地方改成不同于y的符号，好比z
即把∀y:y ≤ x改成∀z:z ≤ x，这两命题的意义一致。
再把x代换成y，即为∀z:z ≤ y
所以φ(y)表示∀z:z ≤ y，而不是∀y:y ≤ y
忘记这个条件是声名狼籍的犯错误原因。

公理

下面描述一阶逻辑的公理。如上所述，一个给定的一阶理论有进一步的非逻辑公理。下列逻辑公理刻画了本文的样例一阶逻辑的一种演算。
对于任何理论，知道公理的集合是否可用算法生成，或是否存在算法确定合式公式为公理，是很有价值的。
如果存在生成所有公理的算法，则公理的集合被称为递归可枚举的。
如果存在算法在有限步骤后确定一个公式是否是公理，则公理的集合被称为递归的或“可判定的”。在这种情况下，你还可以构造一个算法来生成所有的公理：这个算法简单的（随着长度增长）一个接一个的生成所有可能的公式，而算法对每个公式确定它是否是个公理。
一阶逻辑的公理总是可判定的。但是在一阶理论中非逻辑公式就不必需如此。

转换自然语言到一阶逻辑

用自然语言表达的概念必须在一阶逻辑（FOL）可以为为其效力之前必须被转换到FOL，而在这种转换中可能有一些潜在的缺陷。在FOL中，意味着“要么p要么q要么二者”，就是说它是“包容性”的。在英语中，单词“or”有时是包容性的（比如，“加牛奶或糖？”），有时是排斥性的（比如，“喝咖啡或茶？”，通常意味着取其中一个或另一个但非二者）。类似的，英语单词“some”可以意味着“至少一个，可能全部”，有时意味着“不是全部，可能没有”。英语单词“and”有时要按“or”转换（比如，“男人和女人可以申请”）。

一阶逻辑的限制

所有数学概念都有它的强项和弱点；下面列出一阶逻辑的一些问题。

难于表达if-then-else

带有等式的FOL不包含或允许定义if-then-else断言或函数if（c,a,b），这里的c是表达为公式的条件，而a和b是要么都是项要么都是公式，并且它的结果是a如果c为真，或者b如果它为假。问题在于FOL中，断言和函数二者只接受（“非布尔类型”）项作为参数，而条件的明确表达是（“布尔类型”）公式。这是不幸的，因为很多数学函数是依据if-then-else而方便的表达的，而if-then-else是描述大多数计算机程序的基础。
在数学上，有可能重定义匹配公式算子的新函数的完备集合，但是这是非常笨拙的。
断言if（c,a,b）如果重写为就可以在FOL中表达，但是如果条件c是复杂的这就是笨拙的。很多人扩展FOL增加特殊情况断言叫做“if（条件，a, b）”（这里a和b是公式）和／或函数“ite（条件，a, b）”（这里的a和b是项），它们都接受一个公式作为条件，并且等于a如果条件为真，或b如果条件为假。这些扩展使FOL易于用于某些问题，并使某类自动定理证明更容易。
其他人进一步扩展FOL使得函数和断言可以在任何位置接受项和公式二者。

难于刻画有限性或可数性

从Löwenheim–Skolem定理得出在一阶逻辑中不可能刻画有限性或可数性。例如，在一阶逻辑中你不能断言实数的集合的上确界性质，它声称实数的所有有界的、非空集合都有上确界；这就需要二阶逻辑了。

图可及性不能表达

很多情况可以被建模为节点和有向连接（边）的图。例如，效验很多系统要求展示不能从“好”状态触及到“坏”状态，而状态的相互连接经常可以建模为图。但是，可以证明这种可及性不能用断言逻辑完全表达。换句话说，没有断言逻辑公式f，带有u和v作为它的唯一自由变量，而R作为它唯一的（2元）断言符号，使得f在一个有向图中成立，如果在这个图中存在从关联于u的节点到关联于v的节点的路径。