首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么存在词在最强后置条件中是必要的?

为什么存在词在最强后置条件中是必要的?
EN

Stack Overflow用户
提问于 2016-08-09 22:33:57
回答 1查看 115关注 0票数 2

我所见过的最强后置条件谓词转换器的每个公式都给出了如下赋值规则:

代码语言:javascript
复制
sp(X:=E, P) = ∃v. (X=E[v/X] ∧ P[v/X])

我想知道,为什么在上面的规则中存在词(以及存在量化的变量"v")是必要的?在我看来,最强的后置条件谓词转换器几乎与符号求值相同,因为您维护状态(从变量到值的映射)和路径条件(在程序中的特定点必须为真的谓词)。然而,符号计算并不依赖于存在量词。

所以,我想我一定是漏掉了什么。如有任何帮助,我们不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2018-02-03 02:12:46

我将给出一些直观的描述,因为您对符号计算有一定的了解

如果您有一个到变量的任意映射,那么在分析过程中查看它们之前,您不能对程序中未来的状态更改说任何话。

符号求值记住了每条选定的路径状态空间的分离,因此不需要包含在求值公式中求解。

然而,在这里,你会争论每一条可能的路径,因此需要一个任意的公式来描述行为。

假设您将变量保留在公式中,那么您将只争论可能运行的一条路径。如果您知道您的变量不会导致其他路径,那么您可以简化此行为。

然而,在最弱的自由前提下,您知道从哪条可能的路径开始,并将所有路径包装在一起,以证明您的系统的属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38853691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档