Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Verification 合金映射关系_Verification_Alloy - Fatal编程技术网

Verification 合金映射关系

Verification 合金映射关系,verification,alloy,Verification,Alloy,我几乎开始研究合金来做一些验证。我正在努力练习如何使编程语言具有简单的结构 映射实体具有程序和依赖关系 程序有多种功能 函数有代码行 依赖关系是一个实体,它将程序中某个函数中的两行代码相互映射 下面是我试图做的,但输出图显示了一行代码,它链接到依赖元组,但与函数不匹配。我需要所有的代码行都在一个函数中,它们可以在依赖项中,也可以不在依赖项中 abstract sig mapping{} sig Dependency extends mapping {dep0,dep1: one line}

我几乎开始研究合金来做一些验证。我正在努力练习如何使编程语言具有简单的结构

映射实体具有程序和依赖关系

程序有多种功能

函数有代码行

依赖关系是一个实体,它将程序中某个函数中的两行代码相互映射

下面是我试图做的,但输出图显示了一行代码,它链接到依赖元组,但与函数不匹配。我需要所有的代码行都在一个函数中,它们可以在依赖项中,也可以不在依赖项中

abstract sig mapping{}

sig Dependency extends mapping {dep0,dep1: one line}

one sig Program extends mapping{ F: some function, D: some Dependency }

//mapping entity is composed of Dependency pairs 2 lines of code 
//and one program which has functions and dependency pairs

sig function { Line : some line}
//Function is made of line of code

abstract sig line{}

run {}

您应该添加一些事实,这些事实将强制您为模型考虑的约束

例如,为了确保每一行都有相应的函数,您可以编写如下代码

fact LinesBelongToFunctions {
  all ln: line | 
    one f: function | 
      ln in f.Line
}

这一事实表明,对于每一行
ln
而言,只有一个函数
f
,因此
f.Lines
包含行
ln

您应该添加一些事实,以强制执行您为模型考虑的约束

例如,为了确保每一行都有相应的函数,您可以编写如下代码

fact LinesBelongToFunctions {
  all ln: line | 
    one f: function | 
      ln in f.Line
}
这一事实表明,对于每一行
ln
而言,只有一个函数
f
,因此
f.Lines
包含行
ln