首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TLC模型检查器不会终止于公式的和/或列表版本

TLC模型检查器不会终止于公式的和/或列表版本
EN

Stack Overflow用户
提问于 2020-02-21 22:44:07
回答 2查看 46关注 0票数 0

这也许是个很愚蠢的问题,但我还是会问的。

我正在看莱斯利·兰波特关于TLA+的视频。在四号录影带中,他给出了一个实现BigToSmallSmallToBig公式的练习。长话短说:我们需要正确地计算3加仑和5加仑的水壶在从一个倒到另一个后的水量。

这是他的解决办法:

代码语言:javascript
复制
SmallToBig == IF big + small =< 5
               THEN /\ big'   = big + small
                    /\ small' = 0
               ELSE /\ big'   = 5
                    /\ small' = small - (5 - big)

BigToSmall == IF big + small =< 3
               THEN /\ big'   = 0 
                    /\ small' = big + small
               ELSE /\ big'   = small - (3 - big)
                    /\ small' = 3

我试着用这个和/或列出一些东西:

代码语言:javascript
复制
SmallToBig == \/ /\ big + small =< 5
                 /\ big'   = big + small
                 /\ small' = 0
              \/ /\ big'   = 5
                 /\ small' = small - (5 - big)

BigToSmall == \/ /\ big + small =< 3
                 /\ big'   = 0 
                 /\ small' = big + small
              \/ /\ big'   = small - (3 - big)
                 /\ small' = 3

然而,当我运行它时,检查并没有终止,我也不知道为什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-22 01:24:18

如果我把它重写为

代码语言:javascript
复制
\* Old
SmallToBig == 
   IF Condition
     THEN A
     ELSE B

\* New
SmallToBig == 
  \/ /\ Condition
     /\ A
  \/ B

在这两个版本中,我们都不能没有A而没有Condition。在旧版本中,我们不能使用BCondition。但是,在新版本中,我们可以使用BCondition:这是一个有效的操作。

票数 2
EN

Stack Overflow用户

发布于 2020-02-22 01:01:21

让TLC检查一下TypeOK。反例会告诉你发生了什么。

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

https://stackoverflow.com/questions/60347161

复制
相关文章

相似问题

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