2013年8月2日

回想起來,有時讀書組雖不是在討論數學、邏輯,但我也會莫名其妙講到遞迴性定義(recursive definition)。這種場合,我最常引用的例子不是過往在數學、邏輯書見到的,反而是從一本知識論入門書學會的定義。那是 Richard Feldman 的 Epistemology (2003, p. 92) 在介紹可靠論(Reliabilism)前的一個小例子,是一個關於「公民」的定義。

據我理解,遞迴性有兩個特徵,第一是要有基點(base case),第二是要有某種循環(circularity)。有些人學過批判思考,聽過「循環論證」,會誤以為所有循環都是惡性,但其實遞迴性剛好證明並非如此。先考慮一個有惡性循環(vicious circle)的定義,

S 是一個公民 $=_{df}$ S 是公民的孩子

這是個有循環性質的定義,因為它定義公民,但卻在定義端(即「$=_{df}$」右側)使用了公民,所以它用了「公民」的概念來定義「公民」的概念。套一種常見的解釋:如果你沒有事先知道「公民」的意思,看了這個定義,你還是不會知道甚麼是公民,因為要透過這定義明白何謂「公民」,你首先要明白定義端,但要明白定義端,你卻要先明白何謂「公民(的孩子)」。這是個有惡性循環的定義,不是遞迴性定義。以下這個來自 Feldman 的例子,才是個遞迴性定義:

S 是一個公民 $=_{df}$ (1) S 通過公民測試,或者 (2) S 是公民的孩子

根據此定義,成為公民有兩個條件,第二個條件是循環的,因為它定義「公民」,自己卻用到「公民」。但這個定義卻沒有惡性循環,因為它有第一個條件作為基點。第一個條件的「公民測驗」完全不涉及「公民」的概念,它只是某個測驗制度的名字,只是恰好為了方便叫做「公民測驗」(正如你可以將「公民測驗」叫做「奴民測驗」,只要那名字仍指同一個測驗制度,便不會影響定義)。根據這兩個條件,我們可以掌握到,哪一批人會是公民:第一批會是通過公民測驗的人,然後會是通過公民測驗的人的子孫。我們可以從另一個角度看這兩個條件如何「遞迴」:有了第一個條件後,第二個條件可以不停循環再用,它適用的對象不限於通過公民測驗的人(符合條件一),還可以包括通過公民測驗的人的孩子(符合條件二)、通過公民測驗的人的孩子的孩子(符合條件二)、通過公民測驗的人的孩子的孩子的孩子(符合條件二),等等。


由此可見,遞迴性定義具有某種便利性,它可以透過基點以及有循環特質的條件,不斷「產生」符合定義的東西。在公民的例子,便是透過「通過公民測驗」和「是公民的孩子」不斷「產生」符合公民定義的東西。

其實,所有學過語句邏輯的學生都會見過遞迴性定義,因為語句邏輯也是用遞迴性定義來界定何謂 well-formed formula (wff):

$φ$ 是一個 wff $=_{df}$
(1-a) $φ$ 是簡單語句,或
(1-b) $α, β$ 都是 wff ,而且 $φ=(∼α)$, 或 $φ=(α∨β)$, 或 $φ=(α∧β)$, 或 $φ=(α→β)$, 或 $φ=(α↔β)$

或者另一個更常見的陳構方式:

(1-a) 簡單語句都是 wff
(1-b) 如果 α, β 都是 wff ,則 ∼α, (α∨β), (α∧β), (α→β), (α↔β) 都會是 wff
(2) 只有符合 (1-a) 和 (1-b) 條件的才是 wff 

當中的條件 (1-b) ,正正是具有循環性質的條件。

0 comments:

張貼留言

 
Toggle Footer