← 集合论 · 从 ∈ 到映射与量词 / 集合推导与量词 ∀ ∃ 待审核 9 / 11
逻辑运算 · {x | P(x)} · ∀ ∃

集合推导与量词 ∀ ∃

集合和逻辑是一体两面。集合推导 {x ∈ U | P(x)} 用一个谓词 P(对每个 x 或真或假的条件)从全集 U出满足的元素。量词则对整个集合下一句总判断:xP(x)\exists x P(x)存在至少一个满足)与 xP(x)\forall x P(x)所有都满足)。

选一个谓词 P:满足它的元素在全集里高亮,{x ∈ U | P(x)} 即时列出;下方两枚徽章判定 \exists\forall 是否成立,并给出见证(一个满足的元素)或反例(一个不满足的元素)。

1 · 一个谓词,三种用法

logic · {x | P(x)} · ∃ · ∀

两条常被用到的规则:量词与否定对偶——¬xP(x)\neg \exists x P(x) 等价于 x¬P(x)\forall x \neg P(x)(「没有一个满足」=「所有都不满足」),¬xP(x)\neg \forall x P(x) 等价于 x¬P(x)\exists x \neg P(x)(「并非都满足」=「存在一个不满足」)。另外,空集上的 \forall 恒真vacuous truth,「所有」没有对象可反驳),而空集上的 \exists 恒假

写进代码:集合推导 {x ∈ U | P(x)} 就是 U.filter(P);量词 \exists / \forall 对应 some / every——它们对空数组的取值([].some() 为假、[].every() 为真)恰好是 vacuous truth 的落地。

2 · 相关链接

  • Set-builder notation — en.wikipedia.org — 集合推导 {x | P(x)} 的写法与「限定域」形式 {x ∈ U | P(x)}
  • Quantifiers — ∀ / ∃ — en.wikipedia.org — 全称与存在量词、量词的否定对偶,以及作用域与嵌套。
  • Array.every / some — MDN — developer.mozilla.org — \forallevery\existssome,以及它们对空数组的返回值(恰好对应 vacuous truth)。