Model 是使用Isabelle';s定理证明器在编程模式下编码,然后在证明模式下验证?

Model 是使用Isabelle';s定理证明器在编程模式下编码,然后在证明模式下验证?,model,transformation,isabelle,formal-languages,formal-verification,Model,Transformation,Isabelle,Formal Languages,Formal Verification,我的问题是关于Isabelle定理证明器的证明过程 我目前对模型转换的正确性的研究工作感兴趣。然而,在形式化建模语言时遇到了一些问题。对于形式化建模语言(包括源元模型、目标元模型、转换本身),但不确定定理证明器的证明机制 我是否应该在编程模式下用.thy后缀自行编写一个理论文件,然后在证明模式下运行它以获得正确性证明?Isabelle有许多编码字段,如数据类型、常数、函数、定义、引理和定理。我是否应该将这些单独编码以证明模型转换的正确性?我不确定我是否正确理解了您的问题,但我将尝试回答部分问题

我的问题是关于Isabelle定理证明器的证明过程

我目前对模型转换的正确性的研究工作感兴趣。然而,在形式化建模语言时遇到了一些问题。对于形式化建模语言(包括源元模型、目标元模型、转换本身),但不确定定理证明器的证明机制


我是否应该在编程模式下用.thy后缀自行编写一个理论文件,然后在证明模式下运行它以获得正确性证明?Isabelle有许多编码字段,如数据类型、常数、函数、定义、引理和定理。我是否应该将这些单独编码以证明模型转换的正确性?

我不确定我是否正确理解了您的问题,但我将尝试回答部分问题

然而,在形式化建模语言时遇到了一些问题

您能否澄清您遇到的问题,或者给出一个您想要形式化的建模语言的具体示例

我是否应该在编程模式下用.thy后缀自行编写一个理论文件,然后在证明模式下运行它以获得正确性证明

Isabelle没有单独的编程和验证模式。您可以在同一
文件中混合函数定义和引理

正确性的大部分方面都是在引理/定理中完成的,但是即使你只是在Isabelle中定义了一个递归函数,你也会得到一些正确性保证:你需要证明你的定义是定义良好的

Isabelle有许多编码字段,如数据类型、常数、函数、定义、引理和定理。我应该分别编写这些代码来证明模型转换的正确性吗

正如我上面所说的,您不需要将它们分离到不同的文件中。 然而,在伊莎贝尔身上,一切都必须井然有序。 例如,如果你想证明一个函数,那么这个函数必须在源代码中的引理之前定义。 如果函数在某些数据结构上工作,则相应的类型定义必须在函数之前