Model(Structure、结构、模型)
用途
Model 的主要作用是可以在给定一个 Model 的情况下,给一个谓词逻辑表达式求值。
前置定义
函数符号(function symbol)
A logical symbol that may be applied to an object term to produce another object term.
按我理解来说就是一个可以应用在某个 term1 上生成另一个 term 的一个逻辑符号。
函数符号是一个符号,他可以代表,但并不等同于某一个具体函数。
谓词符号(predicate symbol)
A notation for some concrete predicate or relation.
就是代表 predicate 的符号。
定义
设有函数符号集合 $F$ 和谓词符号集合 $P$,一个 Model $M$ 包含:
- 一个包含了所有具体值的集合,称为 $A$
- 对 $F$ 中每个函数符号,一个(每个参数的)定义域和值域均是 $A$ 的具体函数2
- 对 $P$ 中每个谓词符号,$A$ 上的一个具体谓词(或者说由这个谓词定义的关系)
例
这里有一个函数符号集合 $F_symbols = \{ i: () \rightarrow Value \}$,
一个谓词符号集合 $P = \{ R: (Value, Value) \rightarrow bool, F: (Value) \rightarrow bool\}$
可以利用以上两个集合,加上一个状态集合 $A$,来建立状态机的 model,比如:
对以上这一个状态机,对应的模型 M 就是:
$$ \displaylines { M.A = \{a, b, c\} \\ M.i = a \\ M.R = \{(a, a), (a, b), (b, c), (a, c), (c, c)\} \\ M.F = \{b, c\} \\ } $$
我们来给以下表达式求值:
$$ \forall x \exists y R(x, y) $$
这个表达式意思是从某个状态出去一定能到达其他状态,显然是对的。
表示论域内元素的正规表达式。
这帮子数学家老喜欢把无参函数和值等价起来,所以书里面这条对有参和无参函数是分开的……我不觉得这么搞很好,函数就是函数,所以就揉在一起了。当然也可以完全分开,即有常量符号但没有无参函数。