本文主要是介绍Formal sys-Pradicate semantic,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
介绍个定义
Interpretation
已知有 ∑ 是一阶谓词逻辑(PL1)的Signatur
那么我们定义这个Signatur的interpretation 为(D,I),并且具有以下性质:
1.D是任意的非空的集合
2.I是Signatur符号的映射:
1).对任意常数c有:I(c) ∈ D
2).n>=1,对于有n个参数的函数符号f有:I(f): Dn→D
3).对于任意不含有参数的谓词符号 P有:I(P) ∈ {T,F}
4).n>=1,对于任意的含有n个参数的谓词符号p存在对应的一个n阶关系I(p) ⊆Dn
断言(Variablenbelegung) β
β :Var → D.
已知有x ∈ Var d ∈ D,那么使x取d值的断言为:
//已知x取d值,那么关于变量y的断言是:如果x=y,那么结果就是d,而如果x不等于y,那么关于y的断言还是未知,用 β(y) 表示
评价Formel(Auswertungsfunktion):
已知(D,I)是 ∑ 的Interpretation, β 是关于D的断言。那么我们定义一个评价函数 ValD,I,β ,并且他满足以下属性:
valD,I,β(t)∈D 当 t∈Term∑
valD,I,β(A)∈ {T,F} 当A ∈For∑
valD,I,β(x)=β(x)其中x∈Var
valD,I,β(f(t1,...,tn))=(I(f))(valD,I,β(t1),...,valD,I,β(tn))
1.
valD,I,β(1)=T
valD,I,β(0)=F
valD,I,β(P):=I(P) 其中P不包含参数的谓词符号
//有点问号???
2. valD,I,β(X)其中X∈ { ¬A,A∧B,A∨B,A→B,A↔B }的情况和表达逻辑的相同
3.
4.
等价定理
已知有 是一个Interpretation, β,γ 是两个变量断言(Variablenbelegung),那么就有:
1.已知 β(x)=γ(x) 其中 x∈Var(t),t为Term ,可以推出: val,β(t)=val,γ(t)
2.已知针对Formel A有 β(x)=γ(x) 其中x ∈Frei(A) ,那么可以推出 val,β(A)=val,β(A)
3.如果 A∈For∑ 是封闭的,那么就有 val,β(A)=val,γ(A)
算数结构(Arithmetic structure)
Signatur ∑arith= {0,1,*,+,<}
在这里要认识两种结构,一种是普通的数学整数结构,在这里就跳了,另一种是Java的整数结构(就是有溢出的那种)他表示如下:
Jint=(ℤ,∗,+,<)
ℤJint:= [int_MIN,int_MAX]=[ −232,232−1 ]
n+m:=int_MIN+(int_HALFRANGE+(n+m))%int_RANGE
n*m:=int_MIN+(int_HALFRANGE+(n*m))%int_RANGE
其中:int_HALFRANGE= 231 int_RANGE= 232
⇒
int_MAX+1=int_MIN
int_MIN+(-1)=int_MAX
比较 ℤ和ℤJint
Term的替换原则(Substitutionslemma)
已知 ∑ 是一个Signatur, 是对 ∑ 的一个Interpretation, β,β′ 是两个断言, σ 是一个替换,那么就有:
val,β(σ(t))=val,β′(t)
其中对于所有的变量x ∈Var 有:
β′(x)=val,β(σ(x))
//也就是说 β′(x)=β(σ(x)) 吗
证明:略//呵呵呵呵呵呵呵呵呵呵呵????
//另外上述原则同时适用于不含冲突的替换证明同略???
Hoare 赋值规则
Hoare是一个三元式,分别为前置条件、操作、后置条件,其赋值规则表达如下:
{{x/s}A} x:=s {A}
可以这么理解,如果前置条件为真,那么进行赋值操作(就是替换了,把x替换为s),那么得到的相应的结果也为真。
由上述规则可以推出:
已知 ∑ 是一个Signatur, 是针对 ∑ 的一个Interpretation, β 是一个断言, σ 是一个无冲突的替换其中对于所有的不等于x的变量y满足 σ(y)=y 。那么就有:
val,β(∀xA→σ(A))=W
val,β(σ(A)→∃xA)=W
证明看不懂
Model
以下有关仅用于不含有自由变量的Formel。
我们说针对一个 ∑ 的Interpretation是一个关于不含有自由变量的Formel A的Model,当 val(A)=T .
对Formel集合的Model的定义与此类似:要求集合中的每一个Formel B都满足 val=T .
推出 ⊨
已知有: M∈For∑,A∈For∑ 并且两者都不含有自由变量,那么有:
M⊨∑A:⇔ M中的每一个Model,同时也是A的Model :⇔M∪ { ¬A }没有Model
我们就说由M可以推出M或者A跟随M(Aus M folgt A)
一些简化表达:
用 ⊨ 代替 ⊨∑
用 ⊨A 代替 ∅⊨A
用 B⊨A 代替{B} ⊨A
普遍成立
A∈For∑ 是:
普遍成立的(allgemeingültig)当且仅当 ⊨A
可实现的(erfüllbar)当且仅当 ¬A 不是普遍成立的
1.下面的说法是等价的:
1).A 是普遍成立的
2).A的每一个Interpretation都是Model
3).对于所有的 有 val(A)=T
2.下面说法也是等价的:
1).A是可实现的
2).存在 满足 val(A)=W
一些普遍成立的Formel
$$
1.\lnot \forall xA \leftrightarrow \exists x \lnot A \
2.\lnot \exists xA \leftrightarrow \forall x \lnot A \
3.\forall x \forall y A \leftrightarrow \forall y \forall x A \
4.\exists x \exists y A \leftrightarrow \exists y \exists x A \
5.\forall x(A \land B) \leftrightarrow \forall A \land \forall B \
6.\exists x(A \lor B) \leftrightarrow \exists x A \lor \exists x B \
$$
这篇关于Formal sys-Pradicate semantic的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!