R. Caballero
等人
/
理论计算机科学电子笔记
238
(
2009
)
63
2.1
隶属方程逻辑
MEL中的
签名
是一个三元组(K
,
S
,
S)(在下文中仅为K),其中K
是
一组
类
型
,
太空
一号
... k
n
,
k
(
k
1
. k
n
,
k
)
K
K
一个多类签名,S
=
S
K k
∈
K
是
两两不相交的K-类
集合族.直观地说,有kind但没有sort的术语表示未定义或错误的元素。
MEL
原
子公式可以是
等式
t
=
t
J
,其中
t
和
t
J
是相同种类的项,也可以是t:s形式的
成员关
系断言
,其中项t具有种类k,
而
s S
k
。
句子
是形式为(
X
)
A
0
A
1
.. A
n
,其中每个
A
i
要么是一个方程,要么是一个成员断
言。排序符号
s
1
<s
2
(对于某种类型
的
k
,
有
s
1
,
s
2
S
k
)可以用来表示条件隶属度
(
x
:
k
)
x
:
s
2
x
:
s
1
。 一个
specification
是一个pair(n
,
E
),其中
E
是签名n上
的一组句子
MEL
规范的模型称为代数。一 个λ
-
代数
A由一个集合
A
k
(对于每一种
k
∈
K
)
,一个函数
A
f
:
A
k
1
×··×
A
k
n
−→
A
k
(
对于每一个算子
f
∈
λ
k
1
.组成。k
n
,k
,
和一个子集
A
s
<$
A
k
,
对于每个排序
s
∈
S
k
。在一个代数A中,项t的意义
[
t
]]
A
像
往常一样归纳定义。然后,一个代数A满足一个方程
t
=
t
J
(或者这个方程在
代数中成立),记为A|当两项具有相同含义时,= t = t j:
[
t
]]
A
=
[[
t
J
]]
A
。 同
样,成员满意度定义为:A|当
[
t
]]
A
∈
A
s
时,
= t
:
s
。 一个规范(t
,
E
)有一个初
始模型
t/E
,其元素是项[ t ]的E -等价类。我们
参考[2,13]详细介绍(E
,
E
)-代数,健全和完整的演绎规则,初始和自由代数,
以及特定态射。
由于我们考虑的MEL规范被假设为满足连续性、终止性和排序递减性的可执
行性要求,因此它们的方程t
=
t
J
可以从左向右定向,t
→
t
J
。这样的陈述在代数中
成立,记为
=
t t
J
,确切地说,当
=
t
=
t
J
时,即,当[t]]
A
=
[[t
J
]]
A
时
, 此外,在这些
假设下,条件方程中的方程条件u
=
v可以通过找到公共项t来检查,使得u t和v
t
, 也就是说,
u v
。这是我们将在第二节中研究的推理规则和调试树中使用的
符号。2.3.
2.2
在
Maude
的
Maude功能模块,采用语法fmod... endfm,是可执行的
MEL
规范,它们的语义由
满足该规范的代数类中相应的初始代数给出。
在函数模块中,我们可以声明排序(通过关键字sort(s));排序之间的
子排序关系(subsort);用于构建这些排序的值的运算符(op),给出它们的
参 数 和 结 果 的 排 序 , 并 且 可 以 具 有 诸 如 结 合 ( associative ) 或 交 换
(commutative)等属性;
成员资格(mb)断言一个项具有排序;以及标识项的等
式(eq)
。成员资格和方程都可以是有条件的(cmb和ceq)。
Maude根据用户声明的排序及其子排序关系进行自动的类型推断。类型
未
显式声
明,并且对应于