摘要

在本文中,我们将数据结构视为被赋予其可见部分的指定子集的排序代数,该子集表示真值集。我们方法的独创性在于将演绎系统的标准抽象代数逻辑理论应用于隐藏的异构情况。我们将依赖于状态间Nerode等价关系的有限自动机之间众所周知的等价关系推广到k个-数据结构。这是通过莱布尼兹同余得到的,莱布尼兹同余可以被视为自动机理论中Nerode等价的推广。

1.简介

在程序规范的传统代数方法中,排序代数用于对处理多种数据的程序进行建模。然而,面向对象(OO)系统对传统代数方法构成了挑战。它们通常提供封装内部数据的机制,以便更容易地更新程序,并保护内部数据;出于安全原因,可能需要后者。因此,数据应该自然地分为两类:用户可以直接访问的数据(可见数据)以及用户只能通过具有可见输出的程序的含义(输出)访问的内容(隐藏的数据).

在这项工作中,我们感兴趣的是研究隐藏数据元素之间的一种特殊关系,称为行为等价关系; 直观地说,当我们使用其中一个元素作为输入时,如果可见范围内每个程序的输出是相同的,那么两个隐藏数据元素就被称为行为等效的(这个关系是由Reichel引入的[1]).

观测技术在程序验证和规范的正式方法中非常重要。实际上,给定一个规范,为了证明抽象机器的正确性,我们应该忘记它的内部特征,因为内在行为只能通过具有可见输出的程序进行检查。

我们对行为等效的方法与该领域以前大多数作品中采用的方法有很大的不同,因为它受以下因素的影响很大抽象代数逻辑(AAL)。事实上,这是我们工作的主要新颖之处。AAL是代数逻辑的一个领域,专注于研究逻辑等价性和逻辑真理之间的关系(参见[2]). AAL以将一类代数与逻辑系统关联的过程为中心。这一特点与纯代数逻辑中的常用处理方法形成了对比,后者的重点是研究通过此过程获得的代数类。

为了将AAL的结果和工具应用于抽象数据类型的规格说明理论,我们必须将规格说明逻辑视为一个演绎系统,即视为一组适当公式上的替换-变闭包关系。演绎系统的类别必须扩展,以包括多分类系统和单分类系统,并提供“可见与隐藏”的二分法。在这种情况下,我们还必须能够将行为等效性表述为莱布尼茨同余的一些广义概念。

通过考虑数据的异构性,将演绎系统的概念进行了推广,并将其分为两类:可见的和隐藏的。k数据结构我们指的是不同种类的数据项的集合,如列表、布尔值、数字等,以及涉及它们的操作,以及一组k个-元素元组,作为一组广义真值,称为滤波器.作为排序代数的宇宙被分成两个不相交集,即:隐藏部件,对应于相关状态转换系统的状态和看得见的部分。操作符号也有两种不同的解释:属性方法前者返回可见数据,用于观察系统的状态,而后者可能表示状态的变化。这个k个-数据结构在面向对象程序的代数规范中起着重要作用。也就是说,它们是广义隐式的自然模型k个-逻辑(参见[,4]). 隐藏k个-逻辑之所以有用,主要是因为它们不仅包括二维隐藏和标准等式逻辑,还包括布尔逻辑; 这些是一维多分类逻辑,布尔型是唯一可见的排序,并且用等式测试操作代替等式谓词,对一些隐藏排序进行等式测试。它们还包括标准AAL的所有断言逻辑。

关于莱布尼茨同余的概念,必须通过考虑OO范式的独特特征来加以推广。在[4],作者提出了莱布尼茨同余的一般概念。他们表明,莱布尼茨同余与行为等价关系相一致;因此,值得在OO范式中探索这个概念。这个莱布尼茨同余关于代数A类在指定的过滤器上F类,用Ω表示(F类),定义为上的最大同余A类与…兼容F类.上的同余关系θA类与F兼容如果是所有人V(V)∈VIS和所有ā,ā′ ∈A类V(V)k个,V(V))为所有人k个,意味着(āF类V(V)敌我识别ā′∈F类V(V)). 一个有用的性质是,在满射同态的逆映象下,莱布尼兹同余保持不变。这使我们可以概括为k个-数据结构整体行为等效基于众所周知的有限自动机之间的关系Nerode等效自动机状态的关系。也就是说,我们展示了这两个k个-当且仅当数据结构在各自莱布尼茨同余下的商同构时,它们才是等价的(即它们具有相同的行为)(定理4.1)。

2.序言

设SORT是一个非空集合(SORT中的元素称为种类). 非空有限序列S公司0, … ,S公司n个SORT中的排序称为键入over排序。我们将把类型写为S公司0, … ,S公司n个−1S公司n个所有类型的集合用TYPE表示。从一开始,我们就通过拆分来区分可见数据和隐藏数据,在签名的定义中,对可见部分和隐藏部分的排序集进行了划分。A类隐藏(已排序)签名是三重∑=〈SORT,VIS,OP〉,其中SORT是一个非空的排序集,VIS是SORT的子集,我们称之为可见排序且OP=〈OPτ:τ∈TYPE〉,其中OPτ是τ型运算符号的可数集合。我们在SORT\VIS中调用排序隐藏排序。我们假设X(X)= 〈X(X)S公司:S公司∈SORT〉是一个固定的可数排序变量集。我们定义了排序集TeΣ(X(X))第页,共页条款(或公式)像往常一样在签名∑中。我们说这是一个术语t吨是一个地面术语(或变量自由项),如果它没有变量。我们说隐藏的签名是标准如果每种类型都有一个基本项。

2.1、。排序代数

按∑-代数(或者简单地说代数,如果∑从上下文中清晰可见),我们指的是一对A类= 〈〈A类S公司:S公司∈SORT〉,〈OPτA类:τ∈TYPE〉〉,其中A类S公司每个都是一个非空集合S公司∈SORT和,对于每个τ∈TYPE(τ=S公司0, … ,S公司n个−1S公司n个),操作τA类= 〈O(运行)A类:O(运行)∈OPτ〉,其中O(运行)A类是上的操作A类τ型,即O(运行)A类:A类S公司0× ··· ×A类S公司n个−1A类S公司n个。在本文中,我们假设A类S公司≠∅,适用于所有S公司∈SORT。在这个假设下,我们排除了一些实际感兴趣的数据结构。然而,在这种情况下,元数学更简单,泛代数的大多数结果都保持其通常的形式。更一般地说,如果∑是标准的,则该假设自动成立。

我们以通常的方式定义Te中的操作Σ(X(X))以获得项代数签名∑上,我们表示为Te公司Σ(X(X)). 众所周知Te公司Σ(X(X))具有通用映射属性X(X)在这个意义上,对于每个∑-代数A类和每个排序的地图小时:X(X)A类,称为分配,存在唯一的排序同态小时* :Te公司Σ(X(X)) →A类它延伸了小时。在续集中,我们不会区分这两张地图。来自的地图X(X)项集,及其对自同态的唯一扩展Te公司Σ(X(X)),称为替代.自X(X)假设在整个论文中都是固定的,我们通常写TeΣ代替TeΣ(X(X)); 此外,当∑从上下文中清晰可见时,我们可以简单地写出Te。

示例2.1。(标志)

 

标志的隐藏签名,∑旗帜,是用于指定信号量系统的签名。这些系统用于按以下方式调度资源:我们为每个资源关联一个标志。当某个进程正在使用某个资源时,其标志被设置为位置“向上”,以指示禁止访问。使用后,其标志被设置为位置“向下”,这意味着资源可供另一个进程使用。用户无权访问标志本身(即标志是隐藏排序)。唯一的途径是通过操作向上的?, 它用于测试信号量的状态并给出布尔值。如果实现的布尔部分是两个布尔代数,则向上的真的分别表示资源可用或不可用。隐藏的操作是向上的,dn(数字网络)转速.操作向上的dn(数字网络)分别固定标志“向上”和“向下”的位置,以及转速反转旗帜的位置(参见图12).

标志的隐藏签名。
图1。

标志的隐藏签名。

例2.2。(套)

 

隐藏签名∑有三种类型:设置,电子标签布尔,带有电子标签布尔作为可见的排序。可见操作是布尔操作:真的,、、∧和∨。隐藏的操作是常量空的表示空集;联盟、和否定分别表示集合理论的并集、交集和补集。将元素添加到集合的操作由添加和,在里面是用于测试元素是否属于集合的操作符号;即。,在里面(e(电子),X(X))表示“e(电子)在中X(X)’(参见图4).

集合的隐藏签名。
图3。

集合的隐藏签名。

∑集合图。
图4。

∑示意图.

例2.3。(堆叠)

 

自然数堆栈的签名,∑烟囱,可按以下方式进行描述。有两种类型:堆栈自然状态,带有自然状态唯一可见的排序。可见的操作通常是自然数的继承者和零。隐藏的操作是顶部,流行音乐计算堆栈的第一个元素,从堆栈中取出顶部元素,并分别向堆栈中添加一个自然元素(参见图56).

堆栈的隐藏签名。
图5。

堆栈的隐藏签名。

为了提供一个上下文,使我们能够同时处理语句逻辑(例如,布尔排序逻辑)和等式逻辑,我们引入了k个-任意非零自然数的项k个(参见[]). A类k项的排序S公司超过∑只是一个序列k个∑-相同种类的术语S公司.我们表示k个-重叠术语,φ̄:S公司= 〈φ0:S公司, … , φk个−1:S公司〉. 当我们不想明确φ̄的每个项的常见排序时,我们只需将其写为φ\772。Te公司Σk个是所有排序集k个-∑以上的项;即TeΣk个=〈TeS公司k个:S公司∈SORT〉。所有可见的集合k个-术语(TeΣk个)可视信息系统是集合〈(TeΣk个)V(V):V(V)∈VIS〉。A类k个-变量是特殊的k个-术语包括k个不同变量〈x个0:S公司, … ,x个k个−1:S公司〉所有这些都是同类。

回想一下,对于每个代数A类∑和每个赋值小时:X(X)A类,有一个唯一的同态小时*:TeΣA类它延伸了小时。我们还定义了一个映射*:TeΣk个A类k个通过*(φ̄) : =*(〈φ0, … , φk个−1〉) : =〈小时*(φ0), … ,小时*(φk个−1)〉. 在续集中,如果上下文清楚,我们将用同一个符号表示所有这些地图小时.

2.2. 数据结构

k数据结构我们指的是不同种类的数据项的集合,如列表、布尔值、数字等,以及涉及它们的操作。一些数据项被认为是隐藏的,因为我们无法直接访问它们。在我们的方法中k个-数据结构被赋予一组广义真值,称为滤波器(术语过滤器来自AAL字段中已排序的案例)。

定义2.1

 

A类看得见的k个-数据结构(或者只是一个k-数据结构)结束Σ是一对𝒜 = 〈A类,F类〉,哪里A类是一个Σ-代数与FA类可视信息系统k个: = 〈A类V(V)k个:V(V)∈VIS〉。A类被称为𝒜的基础代数F被称为指定的过滤器。

两数据结构的一个例子是∑(HEL)上自由隐藏方程逻辑的任何模型Σ)(参见[4]). HEL的标准模型Σ格式为〈A类,idA类可视信息系统〉,其中A类是∑-代数和idA类可视信息系统是的可见部分上的身份关系A类一种是通过在可视部分取任何同余关系,得到更通用的两个数据结构作为模型A类代替idA类可视信息系统我们也可以考虑∑上的自由布尔逻辑,如果它有布尔排序,并且它是唯一可见的排序。这里的标准模型是单数据结构〈A类, {真的}〉,其中A类∑-代数使得A类可视信息系统是二元布尔代数。在一般模型中,A类可视信息系统是任意布尔代数,并且{真的}被上的任意筛选器替换A类可视信息系统.

例2.4。(旗帜重访一)

 

∑上的两个数据结构旗帜是由∑组成的对旗帜-代数和布尔域对的子集。一个例子是𝒜=〈A类,F类〉,其中A类定义了载波集和排序集A类= 〈A类布尔,A类旗帜〉,带A类布尔=B类2: ={真的,}和A类旗帜= {U型,U型′,D类}操作定义如下:

  • 向上的A类(U型) =向上的A类(U型′) =向上的A类(D类) =U型;

  • dn(数字网络)A类(U型) =dn(数字网络)A类(U型′) =dn(数字网络)A类(D类) =D类;

  • 转速A类(U型) =转速A类(U型′) =D类;转速A类(D类) =U型;

  • 向上的A类?(U型) =向上的A类?(U型′) =真的向上的A类?(D类) =.

我们采用二元布尔代数的常见布尔运算B类2和过滤器集合F类= {〈真的,真的〉, 〈,〉}⊆A类布尔2.

例2.5。(重新访问集)

 

这是一个更有趣的例子,因为涉及到两种可见的类型。B类电子标签是一组非空元素。然后我们定义B类设置≔ 𝒫(B类电子标签),所有子集的集合B类电子标签、和B类布尔: ={对,错}.

B类是排序集〈B类设置,B类电子标签,B类布尔〉. 我们捐赠B类具有∑结构-∑中运算符号的代数解释以一种自然的方式。

  • 空的B类=∅

  • 论坛

  • 联盟B类(C类1,C类2) =C类1C类2;添加B类(e(电子),C类) = {e(电子)} ∪C类;

  • 否定B类(C类) =B类电子标签\C类; &B类(C类1,C类2) =C类1C类2;

  • 真的B类=真的;B类=;

  • ¬B类= ¬; ∧B类= ∧; ∨B类= ∨

F类= 〈{〈真的,真的〉, 〈假,假〉},E类〉,其中E类是上的固定等价关系B类电子标签因此,ℬ=〈B类,F类〉是∑上的两个数据结构.

2.3. 莱布尼茨同余

让〈A类,F类〉成为一名k个-隐藏签名∑上的数据结构。上的同余关系θA类是VIS-兼容的(或者简单地兼容的)带F如果是所有人V(V)∈VIS和所有ā,ā′∈A类V(V)k个V(V))对所有人来说k个,意味着,āF类V(V)若(iff)ā′∈F类V(V)等价地,我们得到θ与F类当且仅当V(V)∈VIS,F类V(V)是θ的笛卡尔积的并集V(V)-类。如果同余θ与F类,则θ中包含的任何同余也与F类但θ与F类并不意味着θ与任何G公司包含在中F类然而,如果θ与集合的每个成员兼容U型则它与它的交集∏兼容U型.同余θ与F类也不意味着它与任何G公司包含F类不难看出最大同余与F类始终存在(参见[]).

定义2.2。(莱布尼茨同余)

 

𝒜 = 〈A类,F类隐藏签名上的k数据结构Σ.然后莱布尼茨同余A类结束F是上的最大同余关系A类与F兼容。我们用ΩA类(F类),或者简单地Ω(F类)什么时候A类从上下文来看很清楚.

我们使用术语“莱布尼茨同余”,因为这个概念从一种分类的情况中推广了类似的概念。莱布尼茨同余在我们的研究中起着核心作用。该术语于年引入[5]但这一概念在AAL的背景下出现得更早。在一类案件中,已经对其进行了广泛调查(参见[2,5]).

比多瓦等。英寸[6]考虑代数被赋予一个同余,这个同余可以被视为单位滤子上等式模型上的莱布尼茨同余。戈根和马尔科姆[7]还研究了等式模型的这种一致性。

我们说ak个-数据结构𝒜=〈A类,F类〉是减少如果Ω(F类)身份是否一致A类.

例2.6。(Nerode等效)

 

众所周知,任何有限自动机都可以自然地表示为多代数。然而,Blok和Pigozzi指出,它们更自然地被视为单数据结构(参见[8]). 设∑=ℱ{},其中ℱ是一组有限的运算符号是一个常量。A类是∑上的单排序代数。单数据结构𝒜=〈A类,F类〉称为∑-自动机。的元素A类被称为状态第页,共页,A类启动状态F类是一组最终状态。ℱ中的符号称为输入符号及其对A类状态转换函数自动机。不难看出Nerode等价关系与莱布尼茨一致A类结束F类注意接受的语言最小自动机可能在这种情况下自然形成。

示例2.7。(重访旗帜II)

 

设𝒜=〈A类, {〈真的,真的〉, 〈假,假〉}〉是示例2.4中给出的两个数据结构。莱布尼茨同余A类结束F类= {〈真的,真的〉, 〈假,假〉}是关系R(右),带有R(右)旗帜= {〈U型,U型〉, 〈U型,U型′〉, 〈U型′,U型〉, 〈D类,D类〉},和R(右)布尔= {〈真的,真的〉, 〈假,假〉}. 很容易看出这一点R(右)同余与F类,所以我们只需要证明它是最大的。这可以通过以下方式实现:R(右)所获得的生成同余不再与F类.

A类是代数φ̄(x个0:T型0, … ,x个n个−1:T型n个−1)一个k个-条款和0A类T型0, … ,n个−1A类T型n个−1然后,我们用φ̄表示A类(0, … ,n个−1)φ̄取值A类,当变量x个0, … ,x个n个−1分别由0, … ,n个−1更代数地说,φ̄A类(0, … ,n个−1) =小时(φ̄),其中小时:X(X)A类任何转让是否小时(x个) =为所有人<n个.

A(可见)k个-∑上的上下文是a(可见)k个-术语φ̄(z(z):S公司,x个0:T型0, … ,x个−1:T型−1) :V(V)∈TeΣk个(X(X)),具有可分辨变量z(z)的排序S公司和参数变量x个0, … ,x个−1.

隐式莱布尼茨同余性质的系统研究k个-逻辑可以在中找到[]; 特别是可以在那里找到莱布尼茨同余的以下特征的证明。

定理2.1。[4]

 

Σ成为一个隐藏的签名并让𝒜 = 〈A类,F类成为k数据结构Σ.然后,对于每个S∈分拣对于所有的,′ ∈A类S公司,′(Ω(F类)S公司)iff,对于每个可见的k-contextφ̄(z(z):S公司,u个0:T型0, … ,u个−1:T型−1) :V和所有b0A类T型0b条−1A类T型−1, φ̄A类(,b条0, … ,b条−1) ∈F类V(V)iffφ̄A类(′,b条0, … ,b条−1) ∈F类V(V).

在两个数据结构中,滤波器本身是成对的集合,因此它们与莱布尼茨同余之间可以建立严格的关系(参见[]). 作为一个例子,我们有以下建议。

提议2.1

 

𝒜 = 〈A类,F类是一个两数据结构并让θ为上的同余A类.然后,

  1. θ与F iff兼容θ可视信息系统F类θ可视信息系统F类;

  2. 如果F是自反的(在A上可视信息系统)然后是可传递的θ与F iff兼容θ可视信息系统F类.

A类成为一个代数和C类A类2. The由C生成的同余A类是上的最小同余A类包含C类; 它将用θ表示(C类).

给定两个数据结构𝒜=〈A类,F类〉与F类反射的(开A类可视信息系统)和及物,如果是θ(F类∪ {〈,′〉})可视信息系统=F类,然后,从(2)命题2.1,θ(F类Ş{〈,〃〉})兼容F类因此,θ(F类∪ {〈,′〉})⊆ Ω(F类). 因此,′ (Ω(F类)).

3.同构和产品

设∑是一个隐藏签名,且,𝒜=〈A类,F类〉和ℬ=〈B类,G公司〉是k个-∑以上的数据结构。我们说𝒜是一个k数据子结构ℬ的,符号为𝒜⊆\8492»,如果A类是的子代数B类G公司A类可视信息系统k个=F类.让小时是代数中的排序同态A类进入代数B类; 我们这么说小时是一个数据结构同态𝒜如果小时(F类)⊆G公司,或等效的,如果F类小时−1(G公司),我们用小时:𝒜→ℬ。如果F类=小时−1(G公司),然后小时据说是严格的我们这么说小时满腹经纶的如果它是一张经过排序的地图,我们写小时: 𝒜 ↠ ℬ;小时据说是内射的如果它作为排序映射是内射的,并且小时(F类) =G公司小时(A类k个),即。小时−1(G公司) =F类,我们写小时:𝒜→ℬ。我们这么说小时是一个数据结构同构如果它是内射的和满射的,即。小时是代数同构小时(F类) =G公司在这种情况下,我们写“𝒜≅ℬ”。

我们定义直接产品家庭成员(𝒜)属于k个-数据结构是k个-数据结构∏𝒜= 〈∏A类,∏F类〉,其中∏A类是代数族的直积(A类)和∏F类= 〈∏(F类)V(V):V(V)∈VIS〉。索引集可能为空;在这种情况下∏A类是平凡的一元代数。A类k个-∏的数据子结构ℬ𝒜被称为次直积家庭成员(𝒜),符号为ℬ⊆标准偏差𝒜,如果同态投影π:B类A类对每个人来说都是悲观的.

莱布尼茨同余的一个主要性质是它在满射同态的逆象下保持不变。

引理3.1。[4]

 

𝒜=〈A类,F类成为k数据结构Σ,B类Σ代数与h:B类A类满射同态。然后是h−1A类(F类)) = ΩB类(小时−1(F类))).

如果𝒜=〈A类,F类〉是一个k个-∑和θ上的数据结构是A类与…兼容F类,那么我们可以通过θ来考虑\119964;的商,𝒜/θ:=〈A类/θ, 〈F类V(V)V(V):V(V)∈VIS〉〉,其中F类V(V)V(V)= {〈0V(V), … ,k个−1V(V)〉 : 〈0, … ,k个−1〉 ∈F类V(V)}. 我们应该注意,兼容性条件意味着〈0V(V)k个−1V(V)〉 ∈F类V(V)V(V)当且仅当〈0, … ,k个−1〉 ∈F类V(V).如果θ=Ω(G公司)对于某些过滤器G公司A类可视信息系统k个,然后我们可以简单地写𝒜/G公司= 〈A类/Ω(G公司),F类/Ω(G公司)〉. θ为Ω时的特例(F类),商𝒜/F类被称为减少𝒜 用𝒜*.Bidoit表示等。将𝒜的减少称为的黑盒视图𝒜 (参见[6]). 它在年被证明了[4]任何k个-数据结构中的莱布尼茨同余总是被约化的。很容易看出,自然同态小时:A类A类/Ω(F类)是数据结构同态。实际上,它是一个严格的同态。因此,如果𝒜本身被减少,那么\119964;≅\119964]*。

下面的定理说明同态定理的自然推广适用于k个-数据结构。

定理3.1。(同态定理)

 

𝒜 = 〈A类,F类ℬ = 〈B类,G公司是同一签名中的k-数据结构且设h: 𝒜↠ℬ是一个严格的满射数据结构同态。如果减少了,那么𝒜* ≅ ℬ.

证明

 

小时是严格的,F类=小时−1(G公司). 因此𝒜/F=〈A类/Ω(小时−1(G公司)),小时−1(G公司)/Ω(小时−1(G公司))〉。我们知道Ω(F类) = Ω(小时−1(G公司)) =小时−1(Ω(G公司)) =小时−1B类) =克尔(小时); 第三个等式成立是因为ℬ减少了。

然后利用排序代数的同态定理小时* :A类/Ω(小时−1(G公司)) →B类,由定义小时*(/Ω(小时−1(G公司))) : =小时()是一个代数同构。仍需证明这是𝒜/Ω之间的数据结构同构(小时−1(G公司))也就是说,小时*(小时−1(G公司)/Ω(小时−1(G公司))) =G公司.根据定义小时*,小时*(小时−1(G公司)/Ω(小时−1(G公司))) =小时(小时−1(G公司)). 小时在上,小时(小时−1(G公司))=G公司.□

这个定理的一个更一般的版本可以被公式化。它适用于任意k个-数据结构:如果𝒜可能是非简化的k数据结构和h: 𝒜↠ℬ是满射数据结构的态射,那么𝒜/小时−1(G公司)≅*。这个结果可以作为定理3.1的推论来表示,它指出了在定理的假设中减少ℬ的重要性。

当限制于约化类时,Birkhoff的次直表示也成立k个-数据结构。该证明类似于一个已分类案例的证明(参见[8]).

定理3.2

 

简化的k数据结构𝒜 = 〈A类,F类同构于简化k数据结构族的次直积= 〈B类,G公司〉,如果有FA类可视信息系统k个,一、 这样的话

  1. F类=F类

  2. 𝒜/F类≅ ℬ,∀.

证明

 

假设标准偏差定义,针对每个,F类= π−1(G公司),式中π:A类B类是投影同态。根据定义k个-数据子结构,F类G公司●A型k个。这意味着F类= ∩F类.

由于投影同态是满射的,每个同态都是ℬ根据同态定理简化(2)持有。

为了证明倒数,假设有F类,,F类A类视觉k个这样的话(1)和(2)保持。定义地图小时:A类→π𝒜/Ω(F类)由小时() = 〈/Ω(F类) :〉. 我们有那个Ω(F类)与∏兼容F类=F类.由于𝒜减小,Ω(F类) = ΔA类和,因此为Ω(F类) = ΔA类.

然后小时是的子直嵌入A类单位:∏A类/Ω(F类),作为代数。此外,小时(F类) = (∏F类/Ω(F类)) ∩小时(A类). 即〈小时(A类),小时(F类)〉是该家族的次级产品(ℬ).  □

4.全球行为等效性

在本节中,我们考虑k个-数据结构,在此基础上k个-第1节中描述的数据结构。我们将这种关系称为整体行为等效实际上,这个关系推广了自动机理论中自动机等价的概念(参见[9,10]). 我们展示了这两个k个-当且仅当数据结构的约简(莱布尼茨同余关系的商)同构时,数据结构才是行为等效的(参见定理4.1)。

定义4.1。[11]

 

𝒜 = 〈A类,F类ℬ=〈B类,G公司隐藏签名上的两个k数据结构Σ.我们这么说𝒜全球行为相当于ℬ,在符号中𝒜 ≡ℬ,如果有一组经过排序的变量Y并且有推测赋值σ :Y(Y)A和τ :Y(Y)B类(这里Y可能无法保证στ是猜测)对于每个可见的k项φ∈(TeΣ(Y(Y))k个)可视信息系统

很容易表明k个-数据结构是all类上的等价关系k个-∑以上的数据结构。如果𝒜≡ℬ, 我们有时会说𝒜和ℬ有相同的“行为”.

给定两个全球行为等效值k个-数据结构𝒜=〈A类,F类〉和ℬ=〈B类,G公司〉,我们可以用以下方式定义它们的宇宙之间的关系(通常称为互刺激)。设σ:Y(Y)A类和τ:Y(Y)B类是见证𝒜和ℬ之间等价的映射。然后相互模拟关系𝒜 而ℬ是关系R(右)A类×B类由定义R(右)S公司= {〈σ(),τ()〉 :Y(Y)S公司}.

正如莱布尼茨同余可以被视为自动机理论中Nerode等价关系的推广一样(例2.6)k个-数据结构可以看作是有限状态机等价性的推广。

下面的定理概括了有限自动机之间等价性的特征。它指出两个k个-当且仅当数据结构在各自的莱布尼茨同余下的商同构时,数据结构才具有相同的行为。

在隐藏的等式逻辑和观察逻辑的背景下也建立了类似的结果(参见亨尼克[12]还有霍夫曼和桑内拉[11]). 我们的结果更一般,因为它适用于任何隐藏的k个-逻辑。

定理4.1

 

两个k数据结构𝒜当且仅当𝒜*≅ ℬ*.

证明

 

假设𝒜≡ℬ. 设σ:Y(Y)A类和τ:Y(Y)B类是证人的任务。

我们声称:

索赔

 

有一个代数满态A类到上面B类/G公司.

事实上,让我们定义小时:A类B类/G公司通过
哪里t吨是这样的= σ(t吨). 这样的t吨总是存在的,因为σ是满射的。
首先我们证明地图小时定义明确。那就是,如果t吨t吨'是这样的= σ(t吨) = σ(t吨′),然后τ(t吨)/Ω(G公司)=τ(t吨′)/Ω(G公司). t吨t吨“是这样的条款:
1

我们得到由τ(σ)生成的同余θ−1(Ω(F类)))与兼容G公司事实上,由于τ是满射的,θ是τ(σ)的传递闭包−1(Ω(F类))). 因此,足以证明τ(σ−1(Ω(F类)))与兼容G公司因为如果是这样,传递闭包显然也与G公司.

假设āG公司ā(τ(σ−1(Ω(F类))k个). 然后是φ, ψ∈Te(Y(Y))这样的话= τ(φ),b条=τ (ψ),<k个和φ≡ψ(σ−1(Ω(F类))k个). 然后,
2
因为假设ā=τ(φ̄)为inG公司,σ(φ̄)∈F类因此,通过兼容性,方程式(2)意味着σ(ψ̄)∈F类又一次,根据行为等效的定义,我们得到了= τ(ψ̄) ∈G公司.

根据方程式(1),我们有τ(t吨) ≡ τ(t吨′)(θ)。事实上,由于σ(t吨) = σ(t吨′),t吨选择t吨′(σ−1(Ω(F类))). 因此,τ(t吨) ≡ τ(t吨′)(τ(σ−1(Ω(F类)))). 因此,由于τ(σ−1(Ω(F类)))与兼容G公司, τ(t吨) ≡ τ(t吨′) (Ω(G公司)).

很容易看出这一点小时是满射的,因为τ是满射。为了证明这一点小时是代数同态letO(运行)是∑类型的运算符号S公司0,… ,S公司n个−1S公司n个和〈0,… ,n个−1〉 ∈A类S公司0× ···×A类S公司n个−1.对于每个<n个,有一个术语t吨这样的话小时()= τ(t吨)/Ω(G公司)带σ(t吨) =.

另一方面,
此外,
因此,
为了使用同态定理k个-我们只需要显示数据结构小时是一种严格的数据结构同态。

F类。那么小时() = τ(φ̄)/Ω(G公司),其中(f)= σ (φ)<k个(注意,对于āA类k个和任意同余θ,ā/θ表示〈0/θ, … ,k个−1/θ〉). 因此τ(φ̄)∈G公司根据假设。因此,小时(F类)⊆G公司/Ω(G公司). 那就是,小时是数据结构同态。

让我们现在G公司/Ω(G公司). 因此,=/Ω(G公司)对一些人来说G公司.由于τ是满射的<k个有一个φ这样τ(φ) =.让≔ 〈σ(φ0), … , σ(φk个−1)〉. 我们有这个F类,因为〈τ(φ0), … ,τ(φk个−1)〉 =G公司此外,小时((f)) = τ(φ)/Ω(G公司) =/Ω(G公司). 因此,小时() =/Ω(G公司). 因此,小时−1(G公司/Ω(G公司)) =F类也就是说,小时是严格的。

自ℬ/G公司通过同态定理,我们得到了𝒜/F类与ℬ同构/G公司.

为了证明定理中的互易蕴涵,假设𝒜/F类≅ ℬ/G公司.让: 𝒜/F类→ ℬ/G公司是一种数据结构同构。假设A类B类是不相交的(如果不是,用不相交的同构副本替换它们)。采取Y(Y)是由定义的变量集Y(Y)= {:A类} ∪ {b条:b条B类}.

对于每个b条B类,我们选择b条A类这样的话(b条/Ω(F类)) =b条/Ω(G公司)以及每个A类我们选择b条B类这样的话(/Ω(F类)) =b条/Ω(G公司).

按以下方式定义赋值σ和τ:

  • σ :Y(Y)A类通过
  • τ:Y(Y)B类通过
根据同构的定义,我们有
另一方面,可以通过归纳证明,对于每个φ∈Te(Y(Y)),

现在我们要证明σ(φ̄)∈F类τ(φ̄)∈G公司.设σ(φ̄)∈F类那么σ(φ̄)/Ω(F类) ∈F类/Ω(F类). 因此,(σ(φ̄)/Ω(F类)) ∈(F类/Ω(F类)). 是数据结构同构,(σ(φ̄)/Ω(F类)) ∈G公司/Ω(G公司).

通过方程式(), τ(φ̄)/Ω(G公司) ∈G公司/Ω(G公司). 即τ(φ̄)≡(Ω(G公司)k个),对于一些G公司因此,根据相容性,τ(φ̄)∈G公司.

设τ(φ̄)∈G公司然后τ(φ̄)/Ω(G公司) ∈G公司/Ω(G公司). 因此,−1(τ(φ̄)/Ω(G公司)) ∈F类/Ω(F类). 通过方程式(), σ(φ̄)/Ω(F类) ∈F类/Ω(F类). 所以,存在(f)F类这样σ(φ̄)≡(f)(Ω(F类)k个). 根据相容性,σ(φ̄)∈F类.□

在文献中,例如[11],all类上的等价关系≡k个-固定签名上的数据结构k个-数据结构\119964;和ℬ,𝒜≡\8492;表示\119964]*≅\8492;*,称为行为可分解的.

5.隐藏逻辑

由于它通常用于句子逻辑框架中,我们将提到k个-公式作为的同义词k个-条款。A类有限k序列是的有限序列k个-公式〈φ̄0:S公司0, … ,φ̄n个−1:S公司n个−1,φ̄n个:S公司n个〉我们以以下形式书写:
4
如果所有k个-公式φ̄0,… ,φ̄n个在中k个-序列可见k个-公式,然后我们称之为可见k序列.

这套F类给定的k个-数据结构𝒜=〈A类,F类〉被理解为代表𝒜的一组“真值”。考虑到这一含义,下面对一些语义概念的定义似乎更为自然。

A可见k个-公式φ̄:V(V)据说是一个语义结果𝒜一组可见的k个-公式Γ,用符号Γ⊧表示𝒜φ、 如果,对于每个任务小时:X(X)A类,小时(φ̄) ∈F类V(V)无论何时小时(ψ̄) ∈F类W公司对于每个ψ̄:W公司∈Γ. 一个可见的k个-公式φ̄是一个有效的k公式,或者只是一个有效性,是𝒜的,反之,𝒜是模型(或a正确的抽象机)属于φ̄,如果⊧𝒜φ̄. A可见k个-序列,如等式(4)是一个有效规则,或者只是一个有效性,属于\119964;,反之,𝒜是一个模型k个-序列,如果{φ̄0,… ,φ̄n个−1}⊧𝒜φ̄n个.

A可见k个-公式φ̄是一个语义结果任意类中Γ的K(K)属于k个-∑上的数据结构,符号Γ⊧K(K)φ̄,如果Γ⊧𝒜φ̄对于每个𝒜∈K。类似地,ak个-公式或规则是K的有效性,如果它是有效性的每个成员K(K).

在我们的方法中,用于指定计算系统的底层逻辑,我们称之为隐藏k逻辑,定义为可见集合上的抽象闭包关系k个-公式(参见[4]). 具体来说隐藏k逻辑是一对ℒ=〈∑,⊢〉,其中∑是隐藏签名,⊢是可见集上的替换变量闭包关系k个-公式,称为的结果关系ℒ. 这个结果关系可能是有限的,也可能不是。据说是有限的以防它接受公理和推理规则的表示,采用通常的希尔伯特风格。在这种情况下,⊢据说是可指定的一个隐藏的ℒ理论k个-逻辑是一组可见的k个-在结果关系下闭合的公式⊢所有ℒ理论的集合用Th(\8466»)表示;它在集合包含下形成一个格。一个重要的隐藏双逻辑是隐式等式逻辑,其中它仅被视为可视数据之间相等的原始概念。它被自反性、对称性、及物性和同余规则定义为一种分类的等式逻辑,但仅限于可见部分(参见[4]).

以下命题表明,对于任何类K(K)属于k个-数据结构⊧K(K)总是隐藏的k个-逻辑。

提议5.1

 

设K是一类K数据结构,它们都在同一个隐藏签名上Σ.然后K(K)是一个隐藏的k逻辑.

证明

 

证明⊧K(K)是一个闭包关系是直接的。证明⊧K(K)是替换不变的,假设Γ⊧K(K)φ̄,设σ:X(X)Te公司Σ.设𝒜∈K(K)小时:X(X)A类是一项任务。首先注意到小时* ○ σ :X(X)A类是这样一种分配(小时*○σ)*=小时*○σ*(这里我们区分替换和赋值以及它们的唯一扩展,以澄清论点)。因为我们假设Γ⊧K(K)φ̄, Γ⊧𝒜φ̄. 假设h*(σ*(Γ))⊆F类因此(小时* ○ σ)(φ̄))⊆F类也就是说,小时*(σ*(φ̄))⊆F类因此,σ*(Γ)⊧𝒜σ*(φ̄).

𝒜 是一个模型隐藏的k个-逻辑如果ℒ的每个结果都是𝒜的语义结果,即Γ⊢φ̄表示Γ⊧𝒜φ̄. ℒ的所有模型的类都用Mod(\8466;)表示。如果\8466»是可指定的隐藏k个-逻辑由一组公理和推理规则表示,则𝒜是ℒ的当且仅当𔪴的每个公理和每个推理规则都是\119964 ;的有效性的模型。完整性定理适用于隐藏的k个-逻辑,即任何隐藏的k个-逻辑ℒ与每个Γк{φ̄}⊆(Tek个Σ)可视信息系统, Γ⊢φ̄iffΓ⊧型号(ℒ)φ̄(参见[]).

A类k个-数据结构𝒜=〈A类,F〉是一个行为模型(简化模型在AAL意义上),如果它被简化,则为ℒ模型。所有行为模型的类都用Mod*(\8466;)表示。Bidoit等。在观测逻辑的背景下,称这类模型为,黑盒语义(参见[6]). 在[13],作者通过将闭包性质与它所承认的公理化的分类联系起来,对这类行为模型进行了详尽的研究。

示例5.1。(堆栈-重访I)

 
自然数堆栈的标准代数是以下排序代数。
S公司自然状态=ℕ,S公司堆栈= {〈0,… ,n个−1〉 ∈ ℕ*:0≠0,如果n个≠ 0}; S公司堆栈是所有有限的自然数序列的集合,如果序列非空,则序列的第一个元素为非零。常数的解释零,零S公司以及常数的解释空,空S公司分别为0和空序列〈〉,即“空堆栈”;S公司是对自然数的后续操作。其余操作定义如下。

请注意S公司(〈〉,0) = 〈〉; 也就是说,如果将空烟囱推到上面,那么它会吸收0,并且流行音乐S公司(〈〉)=〈〉,以及顶部S公司(〈〉)= 0. 我们采用标准堆栈代数的这种非标准定义,因为所有操作都必须是总计的,为了简单起见,我们希望避免引入特殊的错误元素。

两个数据结构\119982;=〈S公司,idS公司自然状态〉是堆栈逻辑的模型(参见[3])。此外,通过使用堆栈的等效系统(参见[13])这是一种行为模型。

5.2号提案

 

设𝒜=〈A类,F类ℬ = 〈B类,G公司是k个数据结构Σ和f: 𝒜↠ℬ一个严格的满射同态𝒜到上面ℬ.然后

  1. 对于每个φ∈(Tek个Σ)视觉和所有h:X(X)A类,小时(φ̄) ∈F若F(小时(φ̄)) ∈G公司.

  2. 对于所有Γм{φ}⊆(Tek个Σ)可视信息系统, Γ⊧𝒜φ̄若(iff)Γ ⊧φ̄.

证明

 

  1. 假设小时(φ̄) ∈F类因此,(f)(小时(φ̄)) ∈(f)(F类). (f)是同态(f)(F类)⊆G公司,然后(f)(小时(φ̄)) ∈G公司假设现在(f)(小时(φ̄)) ∈G公司因此,小时(φ̄) ∈(f)−1(G公司) =F类,自(f)是严格的。

  2. 假设Γ⊧φ̄,让小时:X(X)A类是任何分配A类这样的话小时(γ̄) ∈F类对于每个γ∈Γ。因此,根据条件(1)(f)(小时(γ̄)) ∈G公司,对于每个γ∈Γ。然后通过假设,(f)(小时(φ)) ∈G公司,因此小时(φ) ∈F类因此,Γ⊧𝒜φ̄. 相反,假设Γ⊧𝒜φ̄,让小时:X(X)B类任何转让小时(γ̄) ∈G公司对于每个γ∈Γ。(f)很悲观,有一个任务:X(X)A类这样的话(f)=小时.然后,(f)((γ)) =小时(γ̄) ∈G公司、和(γ̄) ∈F类,对于每个γ∈Γ。所以,(φ̄) ∈F类小时(φ̄) =(f)((φ̄)) ∈(f)(F类) =G公司因此,Γ⊧φ̄.

根据这个定理,我们得出𝒜和\119964;*是相同的模型k个-序列,或具有相同的有效规则,因为从𝒜到\119964;的自然同态*是严格的。此外,如果𝒜lect那么𝒜和ℬ具有相同的有效规则。

推论5.1

 

𝒜是两个k数据结构。如果𝒜 ≡贝赫然后𝒜具有相同的有效k序列.

证明

 

这是在假定𝒜≡根据定理4.1,我们知道𝒜*和ℬ*是同构的,这意味着它们具有相同的有效性k个-顺序。

从这个推论中,我们可以很容易地得出结论,Mod(ℒ)在行为等价Select下是封闭的.

6.结论和相关工作

AAL理论的这种泛化,允许引入多重分类,并适应了“可见与隐藏”的二分法,这本身就是相关的。此外,人们认识到,它在OO范式中的应用非常成功;使用AAL方法获得了一些结果(参见[,4,13,14]). 此外,AAL与程序规范和验证理论之间的这座新桥梁对于新的开发具有巨大的潜力。

隐藏k个-逻辑是演绎系统的自然推广,由马丁斯和皮戈齐介绍[4]. 该理论是在年发展起来的[]其中,使用AAL的工具对程序的规范和验证进行了改进。隐藏理论k个-逻辑为几个逻辑系统提供了统一的处理方法,例如断言逻辑、布尔逻辑(一维多分类逻辑,布尔是唯一可见的排序,并用等式测试操作代替等式谓词对某些隐藏排序),等式和不等式逻辑以及所有这些逻辑的相应隐藏版本。

一个与我们的互模拟概念类似的概念,称为同态关系Leavens和Pigozzi使用,研究了具有相同可见部分的隐藏等式逻辑模型中的行为子类型,过滤器是可见部分上的身份关系;即,超固定数据语义(参见[15,16]). 这种关系也在其他情况下进行了研究:(1)卡萨诺瓦斯等。检查于[17]这种关系在无等式逻辑的背景下。他们称这种关系为相关性对应. (2)马尔科姆研究了余代数领域的互模拟(例如[18]). 他假设可见部分固定在签名级别,并且操作符号有限制,以便能够将模型作为余代数处理;也就是说,这些方法最多只能有一个隐藏参数。()霍夫曼和桑内拉于[11]与我们的定理4.1类似,但他们只处理隐藏的方程情况,即他们分析了普通两数据结构的互模拟关系。

所有这些方法,以及我们的方法,都可以被视为Schoett技术的推广(参见[19]). 他认为代数A类可以用来代替另一个代数B类如果两个代数在行为上等价,即在这两个代数中运行的任何程序都会产生相同的输出,则不会表现出令人惊讶的行为。他提出了额外的假设,即只有可见的数据才能是程序的合法输出。此外,他证明了在A类B类对于A类行为上等同于B类.

我们的结果与上面列出的不同,因为它们适用于任何隐藏的k个-逻辑,而之前的结果仅限于观察逻辑,或隐藏的等式逻辑或无等式逻辑。此外,我们的k个-数据结构被赋予一组真值,以便成为隐藏的一部分k个-逻辑语义。与行为等效是数据结构的一部分的其他情况相反,行为等效是与真值集兼容的最大一致性。实际上,在我们看来,这种方法是处理OO系统的最合适的方法:k个-数据结构应该被视为满足某些可见属性(用公理表示)的抽象机器,其行为是通过测试抽象机器在“实验”下的行为而引出的。

致谢

作者要感谢裁判的评论,他们的评论提高了本文的质量,感谢唐·皮戈齐和伊莎贝尔·费雷里姆就这项工作进行了富有成果的讨论。

笔记

这项研究得到了技术基金会(葡萄牙)至马蒂马提卡大学阿维罗大学。

参考文献

1
雷切尔
H(H)
抽象数据类型中条件方程的行为有效性
1985
对普通代数的贡献3。程序。Conf.,维也纳,1984
六月
斯图加特,图布纳
Verlag B.G公司
(第
301
-
324
)
2
皮戈齐
D类
哈泽温克尔
M。
抽象代数逻辑
数学百科全书,补编III
2001
多德雷赫特
Kluwer学术出版社
(第
2
-
13
)
马丁斯
M(M)
广义隐逻辑中的行为推理
博士论文
2004
里斯本大学(Faculdade de Ciéncias)
4
马丁斯
M。
皮戈齐
D类
条件方程的行为推理
数学。结构。在Comp。科学类
2007
,卷。 
17
 
5
(第
1075
-
1113
)
5
布洛克
西。
皮戈齐
D类
代数化逻辑
内存。美国数学。Soc公司。
1989
,卷。 
77
 
396
6
比多特
M。
亨尼克
R。
维尔辛
M(M)
行为和抽象规范
科学。计算。程序。
1995
,卷。 
25
(第
149
-
186
)
7
戈根
J。
马尔科姆
G公司
隐藏的议程
西奥。计算。科学。
2000
,卷。 
245
(第
55
-
101
)
8
布洛克
西。
皮戈齐
D类
罗曼诺夫斯卡
答:。
史密斯
J.D.H.公司。
无等式泛霍恩逻辑的代数语义
Res.Expo公司。数学
1992
,卷。 
19
 
泛代数与拟群理论,Lect。Conf公司
1989
柏林
赫尔德曼·弗拉格
(第
1
-
56
)
9
德内克
K。
维斯马思
S公司
泛代数及其在理论计算机科学中的应用。
2002
佛罗里达州博卡拉顿
查普曼和霍尔/CRC
10
霍普克罗夫特
J。
乌尔曼
J。
莫特瓦尼
R(右)
自动机理论、语言和计算导论
2001
第2版。
雷丁,马萨诸塞州
出版商
11
霍夫曼
M。
圣内拉
D类
高阶逻辑中的行为抽象与行为满足
西奥。计算。科学。
1996
,卷。 
167
(第
-
45
)
12
亨尼克
R(右)
带有行为运算符的结构规范:语义、证明方法和应用
1997
 
习惯改变。慕尼黑大学路德维希·马克西米利安信息研究所。
13
马丁斯
M(M)
行为模型类的闭包属性
西奥。计算。科学。
2007
,卷。 
379
 
1–2
(第
53
-
83
)
14
马丁斯
M(M)
广义隐逻辑中的行为制度与精化
J.通用。计算。科学。
2006
,卷。 
12
 
8
(第
1020
-
1049
)
15
Leavens公司
G.公司。
皮戈齐
D类
行为实现附加与广义同态关系
西奥。计算。科学。
1997
,卷。 
177
(第
183
-
216
)
16
Leavens公司
G.公司。
皮戈齐
D类
行为子类型的完整代数表征
学报信息。
2000
,卷。 
36
(第
617
-
663
)
17
卡萨诺瓦斯
E.公司。
德尔隆德
第页。
雅萨纳
R(右)
关于无等式逻辑的初等等价
圣母院J.Form.Log。
1996
,卷。 
37
(第
506
-
522
)
18
马尔科姆
G公司
马格纳
哈夫雷恩
奥拉夫
Owe公司
奥列·约翰
达尔
行为等效、相互模拟和最小实现
1996
数据类型规范的最新趋势。1995年第11次抽象数据类型规范研讨会
九月
(第
359
-
378
)
19
肖特
O(运行)
数据表示的行为正确性
科学。计算。程序。
1990
,卷。 
14
(第
43
-
57
)