我們之前說過,對於像
(現在是
)這樣的形式語言的形式語義分為兩部分。
- 指定解釋的規則。一個解釋為形式語法中非邏輯符號分配語義值。就像一個賦值是對命題語言的解釋一樣,一個模型是對謂詞語言的解釋。
- 為語言中較大的表示式分配語義值的規則。命題語言
的所有公式都是句子。這使得能夠直接為較大的公式分配真值。對於謂詞語言
,情況更加複雜。並非
的所有公式都是句子。我們需要定義輔助概念滿足,並在分配真值時使用它。
一個模型是對謂詞語言的解釋。它包括兩個部分:域和解釋函式。在此過程中,我們將逐步指定一個示例模型
.
直觀地說,域包含當前考慮的所有物件。它包含量詞範圍內的所有物件。
然後解釋為“對於域中的任何物件
…”;
解釋為“存在域中的至少一個物件
,使得…”。我們的謂詞邏輯要求域是非空的,即它至少包含一個物件。
我們示例模型
的域,記為
,是 {0, 1, 2}。
- 解釋函式是將語義值分配給每個運算子字母和謂詞字母的函式。
模型
的解釋函式是
。
- 對每個常數符號(即零元運算子字母)分配一個域中的成員。
直觀地,常數符號命名該物件,該物件是域中的一個成員。如果域是上面的
並且
被分配到 0,那麼我們認為
命名 0,就像名字'蘇格拉底'命名蘇格拉底這個人,或者數字'0'命名數字 0 一樣。將 0 分配給
可以表示為

- 對每個n元運算子字母,其中n大於零,分配一個n+1元函式,該函式以物件(域中的成員)的有序n元組作為其引數,並以物件(域中的成員)作為其值。該函式必須在域中的所有n元組上定義。
假設域是上面的
,我們有一個二元運算子字母
。分配給
的函式必須在域中的每個有序對上定義。例如,它可以是函式
,使得



對運算子的賦值寫成

假設
如上所述賦值為 0,並且
賦值為 1。 然後我們可以直觀地認為非正式書寫形式
代表(指代、具有值)1。 這類似於 “蘇格拉底最著名的學生” 代表(指代)柏拉圖,或 “2 + 3” 代表(具有值)5。
- 每個句子符號(即零元謂詞符號)都被分配一個真值。 對於
一個句子符號,要麼

或

這與句子符號在命題邏輯中所接受的處理方式相同。 直觀地說,句子是真還是假,取決於句子符號是否被賦值為 “真” 或 “假”。
- 每個n元謂詞符號,其中n大於零,都被分配一個n元關係(一個域成員的有序n元組集)。
直觀地說,謂詞對分配集中每個n元組都是真的。 令域為
如上,並假設賦值

假設
被賦值為0,
被賦值為1,
被賦值為2。然後直觀地,
,
和
都應該是真的。然而,
等應該為假。這類似於“是否鷹鉤鼻”對蘇格拉底為真,而“是否大於”對
為真。
這個定義穿插著例子,因此比較分散。這裡是一個更緊湊的總結。模型由兩個部分組成:域和解釋函式。
- 一個解釋函式是將語義值賦予每個運算子字母和謂詞字母。此分配按以下步驟進行
- 將每個常量符號(即零元運算子字母)分配給域中的一個成員。
- 將每個n元運算子字母(n大於零)分配給一個n+1元函式,該函式以物件的有序n元組(域的成員)作為其引數,並以物件(域的成員)作為其值。
- 將每個句子字母(即零元謂詞字母)分配給一個真值。
- 將每個n元謂詞字母(n大於零)分配給一個n元關係(一個有序n元組的集合),這些關係都是域中的成員。
一個例子模型在上面以片段的形式指定。這些片段,在
這個名字下收集在一起,是







我們還沒有定義生成較大表達式語義值的規則。但是,我們可以看到一些我們希望該定義能夠實現的簡單結果。已經描述了一些這樣的結果。



可以新增一些更多期望的結果




我們可以暫時假設數字 '0'、'1' 和 '2' 被新增到
並分別為它們分配數字 0、1 和 2。那麼我們想要


由於 (1),我們希望得到這樣的結果

由於 (2),我們希望得到這樣的結果

域
只有有限多個成員;準確來說是 3 個。域可以有無限多個成員。下面是一個具有無限大域的示例模型
。
域
是自然數的集合

對單個常量符號的賦值可以與之前相同



例如,可以將二元運算子字母
賦值為加法函式

例如,可以將二元謂詞字母
賦值為 *小於* 關係

擴充套件模型的規範應該產生一些結果。



對於每個 *x*,都存在一個 *y* 使得 *x* < *y*。因此我們希望得到的結果是

不存在 *y* 使得 *y* < 0 (記住,我們把自己限制在沒有小於 0 的數字的域中)。因此,並非對於每個 *x* 來說,都存在一個 *y* 使得 *y* < *x*。因此我們希望得到的結果是
