集合建構式符號

在數學裡，集合建構式符號（set-builder notation）是常用于描述集合的一種記號，這種描述集合的方式一般也稱為集合抽象化（set abstraction）或set comprehension。一般寫為 { x : P ( x ) } {\displaystyle \{x:P(x)\}} 或 { x ∈ S : P ( x ) } {\displaystyle \{x\in S:P(x)\}} ，分別只在於論域的不同，前者的元素恰好是那些符合謂詞P的集合，而後者的元素除了符合謂詞P，還得是S的元素。 以三角形數的集合為例。三角形數有一個規則，它是正整數的和。 下面的每一個等式給出了三角形數集合T的一個元素： 1 = 1 {\displaystyle 1=1} 1 + 2 = 3 {\displaystyle 1+2=3} 1 + 2 + 3 = 6 {\displaystyle 1+2+3=6} 1 + 2 + 3 + 4 = 10 {\displaystyle 1+2+3+4=10} 1 + 2 + 3 + 4 + 5 = 15 {\displaystyle 1+2+3+4+5=15} 1 + 2 + 3 + 4 + 5 + 6 = 21 {\displaystyle 1+2+3+4+5+6=21} ⋮ {\displaystyle \qquad \qquad \quad \vdots } 1 + 2 + 3 + … + n = S {\displaystyle 1+2+3+\ldots +n=S} 其中，n是正整數，S是左式的結果。 於是我們歸納出一個規則（即公式）： 1 + 2 + 3 + … + n = n ( n + 1 ) 2 {\displaystyle 1+2+3+\ldots +n={\frac {n(n+1)}{2}}} 這個規則可代表集合T中的元素。於是，集合T可以簡寫為： T = { S   |   S = n ( n + 1 ) 2 , n ∈ N + } {\displaystyle T=\left\{S~\left|~S={\frac {n(n+1)}{2}},n\in \mathbb {N} ^{+}\right.\right\}} 在上面的簡單範例中，我們將一個繁複的集合表示法，透過一個簡單的規則，重新以簡單的符號來表示這個集合。 當一個集合的元素是用某種公式或條件（亦即，一個函數）所產生，這時候就可以用集合建構式來表示，例如： 偶數集合 = { x : x {\displaystyle \{x:x} 是2的倍數 } {\displaystyle \}} 負數集合 = { x : x {\displaystyle \{x:x} 是小於0的數 } {\displaystyle \}} 就哲學上來說，這些元素具有某種共同的性質（2的倍數，或是小於0）；在一階邏輯中，這個性質可以使用謂詞來表示，而該集合的一般格式為： A = { x : P ( x ) } {\displaystyle A=\{x:P(x)\}} 以偶數集合為例，其謂詞 P = {\displaystyle P=} 「是2的倍數」。 P ( x ) = {\displaystyle P(x)=} 「 x {\displaystyle x} 是2的倍數」，被稱為一個命題函數。 集合 A {\displaystyle A} 的元素必定是另一個集合 B {\displaystyle B} 的元素 x {\displaystyle x} ，使得 P ( x ) {\displaystyle P(x)} 為真（亦即， A {\displaystyle A} 是 B {\displaystyle B} 的一個子集），一般表述為： A = { x : x ∈ B , P ( x ) } {\displaystyle A=\{x:x\in B,P(x)\}} 或是 A = { x ∈ B : P ( x ) } {\displaystyle A=\{x\in B:P(x)\}} 在這裡， P {\displaystyle P} 是謂詞， x {\displaystyle x} 是主詞（ B {\displaystyle B} 集合中的一個元素）， P ( x ) {\displaystyle P(x)} 是一個傳回真假值的命題函數： P : B → { t r u e , f a l s e } {\displaystyle P\colon B\rightarrow \{true,false\}} 所以，在數學中，謂詞被視為一種布林值函數。 在實例中，如果沒有指定 B {\displaystyle B} 集合，就表示 B {\displaystyle B} 集合是由謂詞 P {\displaystyle P} 所給出。 正整數集合可用下列建構式表示： { x : x {\displaystyle \{x:x} 是大於0的整數 } {\displaystyle \}} { x : x > 0 ∧ x ∈ Z } {\displaystyle \{x:x>0\land x\in \mathbb {Z} \}} 偶數集合可用下列建構式表示： { x : x {\displaystyle \{x:x} 是2的倍數 } {\displaystyle \}} { x : x = 2 k , k ∈ Z } {\displaystyle \{x:x=2k,k\in \mathbb {Z} \}} 負數集合可用下列建構式表示： { x   |   x {\displaystyle \{x~|~x} 是小於0的數 } {\displaystyle \}} { x   |   ∀ x ∈ R , x < 0 } {\displaystyle \{x~|~\forall x\in \mathbb {R} ,x<0\}} { x ∈ R   |   x < 0 } {\displaystyle \{x\in \mathbb {R} ~|~x<0\}} 平方數集合可用下列建構式表示： { x   |   x {\displaystyle \{x~|~x} 是某個整數的平方 } {\displaystyle \}} { x : x = k 2 ; k ∈ Z } {\displaystyle \{x:x=k^{2};k\in \mathbb {Z} \}} { x 2 : x ∈ Z } {\displaystyle \{x^{2}:x\in \mathbb {Z} \}} { x ∈ N : ∃ k ∈ Z {\displaystyle \{x\in \mathbb {N} :\exists k\in \mathbb {Z} } s.t. k 2 = x } {\displaystyle k^{2}=x\}} 在這裡，有幾個習慣用法： 冒號和豎線是一樣的，意思是「使得（such that，簡寫為s.t.）」。一般來說，冒號與豎線只使用在最前面，接下來的「使得」都使用別的符號，例如s.t.或是 ∋ {\displaystyle \ni } 。但是偶爾也會看到這樣的句子，奇數： { n ∈ Z : ∃ k ∈ Z : n = 2 k + 1 } {\displaystyle \{n\in \mathbb {Z} :\exists k\in \mathbb {Z} :n=2k+1\}} 另一個更簡潔的句子可以表達相同的意思： { 2 n + 1 : n ∈ Z } {\displaystyle \{2n+1:n\in \mathbb {Z} \}} 一般來說， ∀ {\displaystyle \forall } 是省略不寫的，但是偶爾會看到使用 ∀ {\displaystyle \forall } 的句子。一個複雜的例句如下，非平方數： { x ∈ N : ∀ k ∈ Z , k 2 ≠ x } {\displaystyle \{x\in \mathbb {N} :\forall k\in \mathbb {Z} ,k^{2}\neq x\}} 逗號（,）、分號（;）與合取（ ∧ {\displaystyle \land } ）的意思是一樣的，都是合取（ ∧ {\displaystyle \land } ）。 當元素的數域已經由命題所給出，通常就省略不寫。 抽象化 (數學) 一階邏輯 StackExchange: Set-builder notation: is there another symbol for“such that”? （页面存档备份，存于互联网档案馆） StackExchange: When are these set-builder notations the same and different? （页面存档备份，存于互联网档案馆） Some Fregean Considerations on Predicates and Their Reference （页面存档备份，存于互联网档案馆）