形式語義學是把數學(以及邏輯學)應用於語義學研究的現代語言學分支學科,此一學科與數學的關係就像「消費者」與「供給者」的關係那樣,即數學提供一套工具供形式語義學使用。可是,近年來我發現,上述這種「供求」關係不是單一方向的,在某些情況下,形式語義學也可以充當「供給者」的角色。那麼數學究竟能從形式語義學得到甚麼以供其「消費」?以下就形式語義學的兩套理論作一些簡要論述。
第一套理論是「廣義量詞理論」(Generalized Quantifier Theory,以下簡稱GQT)中與「單調性推理」(monotonicity inference)相關的理論。「量詞」是指「每一個/所有」、「至少一個」、「沒有一個」等表示數量的詞,這些詞可以與名詞、動詞等(稱為其「論元」argument)連用,形成量化句。GQT把這些論元的語義看成集合,而量詞則代表集合之間的某種關係。以下句為例:
在這句中,「孩子」和「唱歌」分別是量詞「每一個」的「左論元」和「右論元」,它們的語義可分別被看成「孩子」和「唱歌者」的集合,而「每一個/所有」則代表「子集」關係。把以上單詞(不包括虛詞「都」)的語義組合起來,便得到以下命題:「孩子集合是唱歌者集合的子集」,這正是(1)要表達的意思。
GQT除研究量化句的語義組合外,還研究量詞的推理特性,其中一種重要性質是「單調性」。以「每一個/所有」為例,這個量詞具有「左遞減,右遞增」的推理特性,下例可闡明這一點:
在上句中,「⇒」代表「衍推」(entailment)關係,即如果前句真,則後句也必真。請注意在上例中,後句是把前句「每一個」的左論元從「孩子」換成其子集「男孩」,並把其右論元從「唱歌」換成其母集「發出聲音」的結果。此一例子顯示,把某個以「每一個」為量詞的量化句的左論元和右論元分別換成其子集(此即「遞減」)和母集(此即「遞增」)後,前句衍推後句。
不同量詞的單調性可能各有不同,例如「至少一個」便是「左遞增,右遞增」,而「沒有一個」則是「左遞減,右遞減」的,這可以從以下衍推實例得到驗證:
以上例句都只包含一個量詞,所以其推理特性較為直觀,對於包含多個量詞的量化句來說,其推理特性便不那麼直觀,這時便要借助「單調性演算」(monotonicity calculus),以下用一個實例闡述這種演算:
我們集中看前句中的「愛情小說」,這個詞項位於「沒有一個」的右論元和「所有」的左論元位置,因此它同時受到「沒有一個」的「右遞減」和「所有」的「左遞減」的影響。根據單調性演算的「減減得增」(類似於數學上的「負負得正」)演算規則,可知「愛情小說」處於一個遞增的論元位置,因此把前句的「愛情小說」換成其母集「小說」後,前句衍推後句。
Icard & Moss在Recent Progress on Monotonicity一文中提到GQT的單調性演算可以應用於數學。在數學上,我們有時要判斷不等式符號的方向,當數式頗為複雜時,這種判斷有時不那麼直觀。舉例說,下式中「?」號所在位置究竟應為「≤」還是「≥」號(其中x、y和z是任意實數):
仿照GQT,我們可以先行確定各種數學運算子的單調性。為此,先看以下實例:
在這裡我們可以把x / y中的x和y分別看作「/」的左論元和右論元,並把數字之間的「≤」關係看作相當於命題之間的「⇒」關係(這是合理的,因為從真值的角度看,p ⇒ q當且僅當p的真值 ≤ q的真值)。上例顯示,當把「/」的左論元和右論元分別換成較大和較小的數字後,前式的值 ≤ 後式的值,由此可以總結出「/」是「左遞增,右遞減」的。類似地,我們也能總結出,「e^」的唯一論元是「遞增」,「−」是「左遞增,右遞減」,而「+」是「左遞增,右遞增」的。
由於在(6)中,9處於「/」的右論元、「e^」的唯一論元、「−」的右論元和「+」的左論元位置,它同時受到「/」的右遞減、「e^」的遞增、「−」的右遞減和「+」的左遞增的影響。根據單調性演算的「減增得減」、「減減得增」和「增增得增」演算規則,可知9處於遞增位置,因此上式中「?」號所在位置應為「≥」號。
第二套理論是配以「λ表達式」(λ-expression)的「類型論」(Type Theory)。形式語義學把「個體詞項」和「真值」定為兩個基本類型,分別用e和t來代表,分別作為「專名」和「句子」的類型,所有其他詞項的類型都由這兩個基本類型以函數方式組合而成。例如由於把一個專名與一個「不及物動詞」結合可形成一個句子,「不及物動詞」可被看成以個體詞項作為論元並以真值作為輸出值的函數,因此「不及物動詞」的類型可記作e→t (也就是「謂詞」的類型),其中「→」是代表「映射」(mapping)的符號(請注意函數的作用就是把「論元」映射為「輸出值」)。
由於類型論大量應用函數概念,它需要一套有效表達函數的符號系統,當代形式語義學採用一種以「λ」為特徵的符號系統以表達函數。簡言之,一個函數具有λx[p(x)]的一般形式,其中x是函數的論元,p(x)則是函數的輸出值。由於這個值會隨x而變化,故寫作p(x)。利用λ表達式,便可以把自然語言中各個語法位置上的詞項的語義表達出來。
舉例說,在謂詞邏輯中,無法單獨表達「所有」,因為我們總是把整個全稱命題一次過表達出來。例如「所有X是Y」是表達成下式(其中x是具有類型e的變項,即個體變項,X和Y是具有類型e→t的變項,即謂詞變項,1是代表「真」的真值,而「→」則是代表「蘊涵」而非「映射」的符號):
上式的意思是:對所有個體x而言,如果x具有謂詞X所述的性質,則x具有謂詞Y所述的性質,這正是「所有X是Y」的意思。現在如果對上式中的X和Y進行「λ抽象」(λ-abstraction),可得到下式:
上式表達一個二元函數,把謂詞論元X和Y輸入,這個函數就會輸出「所有X是Y」這個命題,因此抽象地看,上式表達「所有…是…」這個結構,由於「是」的意義虛無,可把它略去,所以上式就是量詞「所有」的表達式。從類型的角度看,由於「所有」需要兩個類型為e→t的論元並輸出真值,所以「所有」這個量詞的類型是(e→t)→(e→t)→t。
上面說過,不及物動詞與專名的關係一般被看成函數與論元的關係,但在GQT中,也可將這種關係顛倒過來,這是因為不及物動詞與專名相對於句子的關係其實是互相依存的關係:兩者結合可得到一個句子,因此兩者中任何一方都可被看成函數,而另一方則是論元。
在上述觀點下,專名可被處理成以謂詞作為論元,並以真值作為輸出值的函數。由於謂詞的類型是e→t,因此在此觀點下的專名的類型就是(e→t)→t,這樣我們便把專名的類型從e轉換成(e→t)→t。在形式語義學中,常常需要把某詞項從一種類型轉換成另一種類型,此即「類型轉換」(type shift)。
數學上廣泛應用函數的概念,但很少使用類型論和λ表達式。不過,在某些情況下,類型論和λ表達式可以幫助理解某些涉及函數的複雜問題。以下使用「流形分析」(analysis on manifolds)中的一個例子,首先引入「餘向量」(covector)的概念。餘向量是相對於「向量」(vector)的概念,為免引入過多技術細節,以下僅把向量看成一組被排成n × 1矩陣的實數(其中n是正整數,稱為向量的「維度」dimension)。如果你不知道甚麼是n × 1矩陣,那麼只需把向量看成一組被放在[ ]T內的數(讀者可不必理會這個T代表甚麼),例如[1, 3]T就是一個2維向量。餘向量則可被看成一組被排成1 × n矩陣的實數,或者被看成一組被放在[ ]內的數(請注意這裡沒有T),例如[5, 7]就是一個2維餘向量。
在流形分析中,可以把餘向量c作用於有相同維度的向量u,作用的結果是把代表c的1 × n矩陣乘以代表u的n × 1矩陣,其結果是一個1 × 1矩陣,也就是一個實數(如果你不懂矩陣乘法,那麼可以把上述乘法簡單看成把c和u的對應位置上的實數相乘,然後把各個乘積相加,例如[5, 7]與[1, 3]T相乘的結果就是5 × 1 + 7 × 3 = 26)。因此餘向量可被看成以向量作為論元,並以實數作為輸出值的函數。借用λ表達式,可以把餘向量[5, 7]表達成下式:
從類型的角度看,如把n維向量和實數看成分別具有類型v和r,那麼n維餘向量的類型就是v→r。
有趣的是,在流形分析中,餘向量與向量的上述關係有時可以顛倒過來,這是因為餘向量與向量其實也是互相依存的關係:兩者結合可得到一個實數,因此兩者中任何一方都可被看成函數,而另一方則是論元,此一觀點在「張量分析」(tensor analysis)中更被廣泛應用。在此觀點下,向量可被處理成以餘向量作為論元,並以實數作為輸出值的函數,這實質上把n維向量的類型從v轉換成(v→r)→r。
對於初學流形分析(和張量分析)的人來說,上述顛倒關係頗令人費解,但是對於學過GQT的人來說,這卻是毫不希奇的事。事實上,餘向量與向量的關係就正像不及物動詞與專名的關係那樣。由此可見,形式語義學概念有時的確有助理解某些數學概念。
總括而言,由於形式語義學的研究課題與數學、邏輯學接近,其研究成果容易應用於數學中。本文提供的例子只是把形式語義學應用於數學的極少數例子,相信還有更多應用例子有待我們去發掘。