跳到正文
格致开物MATHWIKI

逻辑:修订间差异

AIContentBot留言 | 贡献
扩充定义、推导、算例、边界条件与原创 SVG 配图(AI 辅助整理,算例已复算)
AIContentBot留言 | 贡献
重编数学讲解:连贯例题、逐步推导与多幅过程图;更新写作规范
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
数理逻辑研究数学陈述的形式、推理规则以及证明与模型之间的关系。命题逻辑处理陈述之间的连接,一阶逻辑进一步使用变量、量词和关系描述对象。逻辑的作用是把“结论为什么跟随前提成立”说清楚。
'''数理逻辑'''(mathematical logic)研究数学陈述怎样组成,以及结论在什么条件下能由前提推出。它为“所有”“存在”“如果……那么……”等常用表达规定明确含义,也是组织数学证明的基础。


== 命题与连接词 ==
例如,“一个整数能被 4 整除,那么它是偶数”成立,因为 <math>n=4k</math> 可以写成 <math>n=2(2k)</math>。反过来说“一个整数是偶数,那么它能被 4 整除”,却被 6 推翻。两句话使用相同的词,却表达了不同方向的要求。
命题是具有确定真值的陈述。“2 是偶数”为真命题;“x 是偶数”在没有给定 <math>x</math> 或量词时是含自由变量的谓词,不能直接作为确定真假的封闭命题。


常见连接词为否定 <math>\neg P</math>、合取 <math>P\land Q</math>、析取 <math>P\lor Q</math> 与蕴含 <math>P\Rightarrow Q</math>。普通逻辑中的析取允许两者同时为真。
== 从包含关系理解“如果……那么……” ==
下图的矩形表示全体整数 <math>\mathbb Z</math>,大椭圆表示偶数 <math>2\mathbb Z</math>,小椭圆表示 4 的倍数 <math>4\mathbb Z</math>。小椭圆完全位于大椭圆内,因此每个 4 的倍数也都是偶数。数字 6 在大椭圆中、小椭圆外,显示反向推理为何失败;3 在两个椭圆外。


[[File:Gezhi-logic-subsets-theme.svg|frame|center|alt=四的倍数集合包含于偶数集合,偶数集合包含于整数集合;六为偶数但不是四的倍数,三不是偶数|“能被 4 整除”保证“是偶数”,而偶数中还包含额外的整数。]]
把“n 能被 4 整除”记为 P,把“n 是偶数”记为 Q,则原条件句写成 <math>P\Rightarrow Q</math>,读作“P 蕴含 Q”。它排除的是 P 成立而 Q 不成立的情况,也就是图中“小椭圆内却在大椭圆外”的点。
P 是 Q 的'''充分条件''',因为 P 成立足以保证 Q;Q 是 P 的'''必要条件''',因为 P 成立时 Q 不可缺少。若两个方向都成立,写作 <math>P\Leftrightarrow Q</math>,称为充要条件。例如对整数 n,“n 是偶数”与“n 的平方是偶数”互为充要条件,两个方向的证明将在后面给出。
== 命题与逻辑连接词 ==
具有确定真值的陈述称为'''命题''',例如“2 是偶数”是真命题,“3 是偶数”是假命题。“x 是偶数”还含有未确定的变量;指定 x 的值,或者说明“对所有整数 x”,才得到真值确定的陈述。
逻辑连接词把已有陈述组成新陈述:
* <math>\neg P</math> 表示“不是 P”,称为否定。
* <math>P\land Q</math> 表示“P 并且 Q”,两者都真时才真。
* <math>P\lor Q</math> 表示“P 或者 Q”,至少一个真时就真,允许两者同时真。
* <math>P\Rightarrow Q</math> 表示“如果 P,那么 Q”,只有 P 真、Q 假时为假。
将 P、Q 的四种真假组合逐项写下,就得到'''真值表''':
<div class="math-table-scroll" role="region" aria-label="并且或者和蕴含的真值表" tabindex="0">
{| class="wikitable"
{| class="wikitable"
! P !! Q !! P∧Q !! P∨Q !! P⇒Q
! P !! Q !! <math>P\land Q</math> !! <math>P\lor Q</math> !! <math>P\Rightarrow Q</math>
|-
|-
| 真 || 真 || 真 || 真 || 真
| 真 || 真 || 真 || 真 || 真
第17行: 第35行:
| 假 || 假 || 假 || 假 || 真
| 假 || 假 || 假 || 假 || 真
|}
|}
蕴含只在“前提真、结论假”时为假。它表达真值之间的约束,并不自动表示因果关系;前提为假时蕴含为真,也不能由此断定结论本身为真。
</div>
最后两行表示:P 不成立时,并没有出现“满足 P 却违反 Q”的反例。例如 n=3 既不是 4 的倍数,也不是偶数,它没有推翻“每个 4 的倍数都是偶数”。但从 n=3 不满足前提,也得不出它是偶数。条件句的真假与结论 Q 单独的真假,是两件事。
 
逻辑蕴含表达这种真假约束,不自行表达时间先后或因果。现实问题中哪些因素导致哪些结果,还需要另行建立模型与证据。
 
== 逆命题与逆否命题 ==
对原句“若 P 则 Q”,交换两者得到'''逆命题''' <math>Q\Rightarrow P</math>;把前后都否定,得到 <math>\neg P\Rightarrow\neg Q</math>。开头的偶数例子已经表明,这两个变化后的句子可能为假。
 
另一种变换是既交换又否定,得到'''逆否命题'''
<math display="block">\neg Q\Rightarrow\neg P.</math>
它与原命题等价。原命题唯一排除的情况是 P 真、Q 假;逆否命题唯一排除的情况是“非 Q 真、非 P 假”,仍然是同一情况。因此
<math display="block">(P\Rightarrow Q)\Longleftrightarrow(\neg Q\Rightarrow\neg P).</math>
在整数例子中,“若不是偶数,就不是 4 的倍数”与原句表达了同一项约束。
 
这一点给出两种有效推理:已知 P 和 <math>P\Rightarrow Q</math>,可推出 Q;已知非 Q 和同一条件句,可推出非 P。只知道 Q 则不能反推 P,因为 Q 可能包含图中 6 这样的额外对象。
 
=== 完整证明:整数与其平方同奇偶 ===
先证正向:若 n 为偶数,就存在整数 k 使 <math>n=2k</math>,因此
<math display="block">n^2=4k^2=2(2k^2).</math>
括号内仍为整数,所以平方是偶数。
 
反向要证“若平方为偶数,则 n 为偶数”。证明它的逆否命题更直接:若 n 是奇数,写成 <math>n=2k+1</math>,展开得到
<math display="block">n^2=4k^2+4k+1=2(2k^2+2k)+1.</math>
这说明平方也是奇数。整数按奇偶两类划分,因而逆否命题成立,所需反向也成立。两个方向合并,才得到“n 为偶数当且仅当 n² 为偶数”。
 
== “所有”与“存在”怎样写清楚 ==
'''全称量词''' <math>\forall</math> 表示“对所有”,'''存在量词''' <math>\exists</math> 表示“至少存在一个”。例如
<math display="block">\forall n\in\mathbb Z,\quad 4\mid n\Rightarrow2\mid n</math>
说明对每个整数,4 整除它时,2 也整除它。而
<math display="block">\exists n\in\mathbb Z,\quad 2\mid n\ \land\ 4\nmid n</math>
说明存在偶数不是 4 的倍数,取 n=6 就能证实。
 
量词给出的对象范围同样重要。方程 <math>x^2=4</math> 在实数范围有两个解 2、−2,在非负实数范围只有一个解。若说“存在唯一解”,就同时要求存在一个解,以及任意两个解都相等;找到一个候选并不能独自证明唯一性。
 
全称陈述也不自动保证有对象存在。如果方程没有实数解,“它的每个实数解都是正数”没有反例,仍为真;但“存在一个正实数解”为假。这与空集上的量词有关:空集上所有元素满足某条件为真,空集中存在满足条件的元素为假。通常一阶逻辑的总论域取非空,空集可以作为其中用于限制量词的子集。
 
== 量词顺序表示谁可以依赖谁 ==
在实数范围考虑
<math display="block">\forall x\in\mathbb R\ \exists y\in\mathbb R,\quad y>x.</math>
它说:先任意给一个 x,再找一个比它大的 y。选择 <math>y=x+1</math> 就够了,y 可以随 x 改变。
 
交换量词,得到
<math display="block">\exists y\in\mathbb R\ \forall x\in\mathbb R,\quad y>x.</math>
这回要先选定一个 y,然后让它比所有 x 都大。对于任何候选 y,取 <math>x=y</math> 就使严格不等式失败,因此这个陈述为假。两个句子的差别,不在于能否写出两个数,而在于第二个数能否依赖第一个数。
 
图中左排让 y 在知道 x 后选择,下面三组数只是同一规则 y=x+1 的实例;右排先固定 y=a,再取 x=a,就得到无法成立的 a>a。这里 a 可以是任意实数,所以右边的失败并不限于某一个数值。
 
[[File:Gezhi-teaching-foundation-logic-quantifiers.svg|frame|center|alt=左图先给x再取y等于x加一,右图先固定y为a再选x等于a使a大于a失败|量词顺序规定后面的对象可以依赖哪些已知选择。]]
 
[[极限]]定义中的“对任意正误差,都存在一个足够小的输入邻域”,采用前一种次序。邻域可以根据误差选择;选定以后,又必须同时适用于该邻域内的所有输入点。这些依赖关系是定义内容的一部分。
 
== 否定一句话,需要否定到哪里 ==
“所有整数都是偶数”的否定,是“存在一个整数不是偶数”。它不要求所有整数都不是偶数,一个反例就足够。相应地,
<math display="block">\neg(\forall x\,P(x))\Longleftrightarrow\exists x\,\neg P(x),</math>
<math display="block">\neg(\exists x\,P(x))\Longleftrightarrow\forall x\,\neg P(x).</math>
多层量词需要逐层处理。例如“每个学生都做对至少一道题”,否定后是“有一个学生一道题也没做对”。若 <math>P(s,q)</math> 表示学生 s 做对题 q,则原句为 <math>\forall s\,\exists q\,P(s,q)</math>,否定为 <math>\exists s\,\forall q\,\neg P(s,q)</math>。
 
连接词的否定则遵循德摩根律:
<math display="block">\neg(P\land Q)\Longleftrightarrow\neg P\lor\neg Q,</math>
<math display="block">\neg(P\lor Q)\Longleftrightarrow\neg P\land\neg Q.</math>
例如“输入合法并且余额足够”不成立,可能是输入非法,也可能是余额不足,或者两者都失败。这种否定与[[集合]]中交、并、补的关系一致。
 
=== 最小正实数的命题与否定 ===
“存在最小正实数”可以写为
<math display="block">\exists a>0\ \forall x>0,\quad a\le x.</math>
否定时,先把存在 a 改为对每个 a,再把对所有 x 改为存在 x,最后否定不等式,得到
<math display="block">\forall a>0\ \exists x>0,\quad x<a.</math>
这句话能直接证明:给定任意正数 a,取 <math>x=a/2</math>,便有 <math>0<x<a</math>。所以每个正实数都不是最小的,最小正实数不存在。
 
如果对象换成正整数,这个结论就改变了。1 是最小正整数,而将 a=1 除以 2 会离开整数范围。证明里的构造既要满足关系,也要留在量词指定的集合内。
 
== 证明怎样覆盖全部情形 ==
要证明一个全称陈述,可以任取一个满足条件的对象,再用这些条件推出结论。前面的偶数平方证明采用了任意整数 k,因而同时覆盖所有偶数。
 
要推翻全称陈述,只需一个反例。例如“所有素数都是奇数”被 2 推翻;但列出许多奇素数只能提供一些实例,不能证明全部素数都如此。
 
'''反证法'''从相反假设出发,推出矛盾。例如假设有最大的整数 N,那么 N+1 仍是整数且大于 N,与最大性矛盾,所以最大的整数不存在。这里的加一给出了对任意候选 N 都有效的反驳。


== 必要条件、充分条件与逆否命题 ==
=== 数学归纳法为何不是检查前几项 ===
<math>P\Rightarrow Q</math>,则 <math>P</math> 是 <math>Q</math> 的充分条件,<math>Q</math> 是 <math>P</math> 的必要条件。例如“整数能被 4 整除”足以推出“整数是偶数”,反向却不成立,6 就是反例。
要证明对所有非负整数 n 都成立的公式
<math display="block">1+2+\cdots+n=\frac{n(n+1)}2,</math>
先检查 n=0:左边为空和,取值 0,右边也为 0。这是基础步。


[[File:Gezhi-logic-subsets.svg|frame|center|alt=能被四整除的整数集合包含在偶数集合中,偶数集合又包含在整数集合中,六位于内圈之外|集合包含关系解释蕴含:所有满足强条件的对象都满足弱条件,但弱条件可能包括额外对象。]]
接着设公式在某个任意的非负整数 k 处成立。再加下一项 k+1:
蕴含与逆否命题等价:
<math display="block">\begin{aligned}
<math display="block">(P\Rightarrow Q)\ \Longleftrightarrow\ (\neg Q\Rightarrow\neg P).</math>
1+2+\cdots+k+(k+1)
它通常不等价于逆命题 <math>Q\Rightarrow P</math>。若两个方向都成立,才写作 <math>P\Leftrightarrow Q</math>,称为充要条件。
&=\frac{k(k+1)}2+(k+1)\\
&=\frac{(k+1)(k+2)}2.
\end{aligned}</math>
这正是 n=k+1 时的公式,故完成归纳步。


== 量词顺序不能随意交换 ==
基础步使命题从 0 启动;归纳步保证每次成立都能传到下一个整数。因此所有非负整数都被覆盖。归纳步没有先假设全部 n 的结论,而是在一个任意 k 处作条件假设,再证明下一步。这与仅计算前若干个数值有本质不同。
<math>\forall</math> 表示“对所有”,<math>\exists</math> 表示“存在”。例如在实数范围内,
<math display="block">\forall x\ \exists y\ (y>x)</math>
为真,因为对每个 <math>x</math> 可选择 <math>y=x+1</math>。交换后
<math display="block">\exists y\ \forall x\ (y>x)</math>
却为假,它要求找到一个比所有实数都大的固定实数。前者允许 <math>y</math> 依赖 <math>x</math>,后者不允许。


这正是[[极限]]定义中“任给误差,存在足够小的邻域”的核心:邻域可以依赖误差,而不是预先选好同一个邻域应对一切误差。
== 真值、证明与形式系统 ==
真值表处理有限个命题变量的真假组合。例如可逐行核验原命题与逆否命题在四种赋值下总有相同真假。如果一个公式在所有赋值下都为真,称为'''重言式'''。


== 怎样正确否定一句话 ==
带量词的陈述还涉及变量取值的集合及关系的解释。例如 <math>\forall x\,x^2\ge0</math> 在实数及其通常运算下成立;变量范围和符号的意义提供了判断陈述的背景。数理逻辑进一步研究怎样精确定义这些语言、解释和推导规则。
否定全称命题得到存在反例;否定存在命题得到全部不成立:
<math display="block">\neg(\forall x\,P(x))\Leftrightarrow\exists x\,\neg P(x),\qquad\neg(\exists x\,P(x))\Leftrightarrow\forall x\,\neg P(x).</math>
“所有整数都是偶数”的否定是“存在一个整数不是偶数”,不是“所有整数都不是偶数”。对于复合语句,德摩根律给出 <math>\neg(P\land Q)\Leftrightarrow\neg P\lor\neg Q</math>


== 证明与反例承担不同任务 ==
一个形式证明是依照已规定规则组成的有限推导。证明是否有效,与所采用的公理是否适合描述某个现实问题,也是不同问题。[[数学建模]]既需要有效推理,也需要为模型中的假设提供现实依据。上述真值与证明方法使用经典逻辑;其他逻辑体系可以采用不同的规则。
全称命题不能靠检查有限个普通例子证明,却可以被一个满足前提、违反结论的反例推翻。例如“所有素数都是奇数”被 2 推翻。


直接证明从假设按有效规则推出结论;逆否证明转而证明等价的逆否命题;反证法假设所求结论的否定并导出矛盾。数学归纳法则需要同时给出初始情形和从 <math>n</math> 到 <math>n+1</math> 的一般推理,仅检查前几项并不构成归纳证明。
== 历史 ==
George Boole 在 1847 年的《The Mathematical Analysis of Logic》和 1854 年的《An Investigation of the Laws of Thought》中发展了逻辑的代数处理,将部分推理关系写成可以计算的符号形式。[https://georgeboole.com/boole/legacy/phil/ University College Cork 的 Boole 纪念项目]介绍了两部作品及其研究背景。


本条使用经典逻辑。形式证明保证结论跟随前提,但现实建模中前提是否符合实际,还需要定义、观测和验证。
布尔式运算后来成为数字电路与程序条件的重要语言。前面表中的“并且”“或者”“否定”,既可连接数学命题,也可组织程序判断;加入量词以后,又能表达“每个元素满足什么”及“是否存在满足要求的对象”等数学陈述。


== 延伸阅读 ==
== 参考资料 ==
* [https://discrete.openmathbooks.org/dmoi3.html Oscar Levin,《Discrete Mathematics: An Open Introduction》第 0、3 章]:量词、逻辑与证明。
* [https://discrete.openmathbooks.org/dmoi3/sec_propositional.html Oscar Levin:命题逻辑]。
* [[极限]] · [[组合数学]] · [[数学建模]]
* [https://discrete.openmathbooks.org/dmoi3.html Oscar Levin,Discrete Mathematics: An Open Introduction,第 0、3 章]:量词与证明方法。
* [https://georgeboole.com/boole/legacy/phil/ University College Cork:Boole 的逻辑研究]。
* [https://mathshistory.st-andrews.ac.uk/Biographies/Boole/ MacTutor:George Boole]。
* 相关条目:[[集合]]、[[极限]][[组合数学]][[数学建模]]
[[分类:离散数学]]
[[分类:离散数学]]
[[分类:基础与逻辑]]

2026年9月20日 (日) 07:16的最新版本

数理逻辑(mathematical logic)研究数学陈述怎样组成,以及结论在什么条件下能由前提推出。它为“所有”“存在”“如果……那么……”等常用表达规定明确含义,也是组织数学证明的基础。

例如,“一个整数能被 4 整除,那么它是偶数”成立,因为 n=4k 可以写成 n=2(2k)。反过来说“一个整数是偶数,那么它能被 4 整除”,却被 6 推翻。两句话使用相同的词,却表达了不同方向的要求。

从包含关系理解“如果……那么……”

下图的矩形表示全体整数 ,大椭圆表示偶数 2,小椭圆表示 4 的倍数 4。小椭圆完全位于大椭圆内,因此每个 4 的倍数也都是偶数。数字 6 在大椭圆中、小椭圆外,显示反向推理为何失败;3 在两个椭圆外。

四的倍数集合包含于偶数集合,偶数集合包含于整数集合;六为偶数但不是四的倍数,三不是偶数
“能被 4 整除”保证“是偶数”,而偶数中还包含额外的整数。

把“n 能被 4 整除”记为 P,把“n 是偶数”记为 Q,则原条件句写成 PQ,读作“P 蕴含 Q”。它排除的是 P 成立而 Q 不成立的情况,也就是图中“小椭圆内却在大椭圆外”的点。

P 是 Q 的充分条件,因为 P 成立足以保证 Q;Q 是 P 的必要条件,因为 P 成立时 Q 不可缺少。若两个方向都成立,写作 PQ,称为充要条件。例如对整数 n,“n 是偶数”与“n 的平方是偶数”互为充要条件,两个方向的证明将在后面给出。

命题与逻辑连接词

具有确定真值的陈述称为命题,例如“2 是偶数”是真命题,“3 是偶数”是假命题。“x 是偶数”还含有未确定的变量;指定 x 的值,或者说明“对所有整数 x”,才得到真值确定的陈述。

逻辑连接词把已有陈述组成新陈述:

  • ¬P 表示“不是 P”,称为否定。
  • PQ 表示“P 并且 Q”,两者都真时才真。
  • PQ 表示“P 或者 Q”,至少一个真时就真,允许两者同时真。
  • PQ 表示“如果 P,那么 Q”,只有 P 真、Q 假时为假。

将 P、Q 的四种真假组合逐项写下,就得到真值表

P Q PQ PQ PQ

最后两行表示:P 不成立时,并没有出现“满足 P 却违反 Q”的反例。例如 n=3 既不是 4 的倍数,也不是偶数,它没有推翻“每个 4 的倍数都是偶数”。但从 n=3 不满足前提,也得不出它是偶数。条件句的真假与结论 Q 单独的真假,是两件事。

逻辑蕴含表达这种真假约束,不自行表达时间先后或因果。现实问题中哪些因素导致哪些结果,还需要另行建立模型与证据。

逆命题与逆否命题

对原句“若 P 则 Q”,交换两者得到逆命题 QP;把前后都否定,得到 ¬P¬Q。开头的偶数例子已经表明,这两个变化后的句子可能为假。

另一种变换是既交换又否定,得到逆否命题 ¬Q¬P. 它与原命题等价。原命题唯一排除的情况是 P 真、Q 假;逆否命题唯一排除的情况是“非 Q 真、非 P 假”,仍然是同一情况。因此 (PQ)(¬Q¬P). 在整数例子中,“若不是偶数,就不是 4 的倍数”与原句表达了同一项约束。

这一点给出两种有效推理:已知 P 和 PQ,可推出 Q;已知非 Q 和同一条件句,可推出非 P。只知道 Q 则不能反推 P,因为 Q 可能包含图中 6 这样的额外对象。

完整证明:整数与其平方同奇偶

先证正向:若 n 为偶数,就存在整数 k 使 n=2k,因此 n2=4k2=2(2k2). 括号内仍为整数,所以平方是偶数。

反向要证“若平方为偶数,则 n 为偶数”。证明它的逆否命题更直接:若 n 是奇数,写成 n=2k+1,展开得到 n2=4k2+4k+1=2(2k2+2k)+1. 这说明平方也是奇数。整数按奇偶两类划分,因而逆否命题成立,所需反向也成立。两个方向合并,才得到“n 为偶数当且仅当 n² 为偶数”。

“所有”与“存在”怎样写清楚

全称量词 表示“对所有”,存在量词 表示“至少存在一个”。例如 n,4n2n 说明对每个整数,4 整除它时,2 也整除它。而 n,2n  4n 说明存在偶数不是 4 的倍数,取 n=6 就能证实。

量词给出的对象范围同样重要。方程 x2=4 在实数范围有两个解 2、−2,在非负实数范围只有一个解。若说“存在唯一解”,就同时要求存在一个解,以及任意两个解都相等;找到一个候选并不能独自证明唯一性。

全称陈述也不自动保证有对象存在。如果方程没有实数解,“它的每个实数解都是正数”没有反例,仍为真;但“存在一个正实数解”为假。这与空集上的量词有关:空集上所有元素满足某条件为真,空集中存在满足条件的元素为假。通常一阶逻辑的总论域取非空,空集可以作为其中用于限制量词的子集。

量词顺序表示谁可以依赖谁

在实数范围考虑 x y,y>x. 它说:先任意给一个 x,再找一个比它大的 y。选择 y=x+1 就够了,y 可以随 x 改变。

交换量词,得到 y x,y>x. 这回要先选定一个 y,然后让它比所有 x 都大。对于任何候选 y,取 x=y 就使严格不等式失败,因此这个陈述为假。两个句子的差别,不在于能否写出两个数,而在于第二个数能否依赖第一个数。

图中左排让 y 在知道 x 后选择,下面三组数只是同一规则 y=x+1 的实例;右排先固定 y=a,再取 x=a,就得到无法成立的 a>a。这里 a 可以是任意实数,所以右边的失败并不限于某一个数值。

左图先给x再取y等于x加一,右图先固定y为a再选x等于a使a大于a失败
量词顺序规定后面的对象可以依赖哪些已知选择。

极限定义中的“对任意正误差,都存在一个足够小的输入邻域”,采用前一种次序。邻域可以根据误差选择;选定以后,又必须同时适用于该邻域内的所有输入点。这些依赖关系是定义内容的一部分。

否定一句话,需要否定到哪里

“所有整数都是偶数”的否定,是“存在一个整数不是偶数”。它不要求所有整数都不是偶数,一个反例就足够。相应地, ¬(xP(x))x¬P(x), ¬(xP(x))x¬P(x). 多层量词需要逐层处理。例如“每个学生都做对至少一道题”,否定后是“有一个学生一道题也没做对”。若 P(s,q) 表示学生 s 做对题 q,则原句为 sqP(s,q),否定为 sq¬P(s,q)

连接词的否定则遵循德摩根律: ¬(PQ)¬P¬Q, ¬(PQ)¬P¬Q. 例如“输入合法并且余额足够”不成立,可能是输入非法,也可能是余额不足,或者两者都失败。这种否定与集合中交、并、补的关系一致。

最小正实数的命题与否定

“存在最小正实数”可以写为 a>0 x>0,ax. 否定时,先把存在 a 改为对每个 a,再把对所有 x 改为存在 x,最后否定不等式,得到 a>0 x>0,x<a. 这句话能直接证明:给定任意正数 a,取 x=a/2,便有 0<x<a。所以每个正实数都不是最小的,最小正实数不存在。

如果对象换成正整数,这个结论就改变了。1 是最小正整数,而将 a=1 除以 2 会离开整数范围。证明里的构造既要满足关系,也要留在量词指定的集合内。

证明怎样覆盖全部情形

要证明一个全称陈述,可以任取一个满足条件的对象,再用这些条件推出结论。前面的偶数平方证明采用了任意整数 k,因而同时覆盖所有偶数。

要推翻全称陈述,只需一个反例。例如“所有素数都是奇数”被 2 推翻;但列出许多奇素数只能提供一些实例,不能证明全部素数都如此。

反证法从相反假设出发,推出矛盾。例如假设有最大的整数 N,那么 N+1 仍是整数且大于 N,与最大性矛盾,所以最大的整数不存在。这里的加一给出了对任意候选 N 都有效的反驳。

数学归纳法为何不是检查前几项

要证明对所有非负整数 n 都成立的公式 1+2++n=n(n+1)2, 先检查 n=0:左边为空和,取值 0,右边也为 0。这是基础步。

接着设公式在某个任意的非负整数 k 处成立。再加下一项 k+1: 1+2++k+(k+1)=k(k+1)2+(k+1)=(k+1)(k+2)2. 这正是 n=k+1 时的公式,故完成归纳步。

基础步使命题从 0 启动;归纳步保证每次成立都能传到下一个整数。因此所有非负整数都被覆盖。归纳步没有先假设全部 n 的结论,而是在一个任意 k 处作条件假设,再证明下一步。这与仅计算前若干个数值有本质不同。

真值、证明与形式系统

真值表处理有限个命题变量的真假组合。例如可逐行核验原命题与逆否命题在四种赋值下总有相同真假。如果一个公式在所有赋值下都为真,称为重言式

带量词的陈述还涉及变量取值的集合及关系的解释。例如 xx20 在实数及其通常运算下成立;变量范围和符号的意义提供了判断陈述的背景。数理逻辑进一步研究怎样精确定义这些语言、解释和推导规则。

一个形式证明是依照已规定规则组成的有限推导。证明是否有效,与所采用的公理是否适合描述某个现实问题,也是不同问题。数学建模既需要有效推理,也需要为模型中的假设提供现实依据。上述真值与证明方法使用经典逻辑;其他逻辑体系可以采用不同的规则。

历史

George Boole 在 1847 年的《The Mathematical Analysis of Logic》和 1854 年的《An Investigation of the Laws of Thought》中发展了逻辑的代数处理,将部分推理关系写成可以计算的符号形式。University College Cork 的 Boole 纪念项目介绍了两部作品及其研究背景。

布尔式运算后来成为数字电路与程序条件的重要语言。前面表中的“并且”“或者”“否定”,既可连接数学命题,也可组织程序判断;加入量词以后,又能表达“每个元素满足什么”及“是否存在满足要求的对象”等数学陈述。

参考资料