TLA+ 《Specifying Systems》翻译初稿——Section 2.3 A Closer Look at the Specification(仔细查看规约)

本节要点

  • 公式 H C HC 是一个时态公式,时态公式是关于行为的断言。我们说一个行为满足 H C HC 当且仅当 H C HC 对行为是一个为真的断言。
  • 一个被所有行为满足的时态公式称为定理,所以 H C H C i n i HC \Rightarrow \square HCini 是一个定理。

状态是为变量赋值的操作,是什么变量呢?答案很简单:所有变量。在第16页的行为(2.1)中, [ h r = 1 ] [hr=1] 表示将值1赋给 h r hr 的某个特定状态,也可以将值23赋给变量 t m p tmp ,将值 17 \sqrt{-17} 赋给变量 m _ p o s m\_pos 。我们可以把一种状态看作是整个宇宙的一种可能的状态。把1赋值给 h r hr 的状态和将三维空间中某个特定的点赋值给 m p o s m_pos 的状态也描述了宇宙的一种状态,在这种状态中,时针指向1,月亮在一个特定的位置。将 2 \sqrt{-2} 赋值给 h r hr 的状态并不对应于我们所认识的宇宙的任何状态,因为小时时钟无法显示 2 \sqrt{-2} 值。它可能代表了炸弹落在钟上爆炸之后的宇宙状态,钟的读数显示完全凭想象了。

行为是无限状态序列,例如:
(2.2) [ h r = 11 ] [ h r = 77.2 ] [ h r = 78.2 ] [ h r = 2 ] [hr=11] \rightarrow [hr=77.2] \rightarrow [hr=78.2] \rightarrow [hr=\sqrt{-2}] \rightarrow \cdots
这样的行为描述了宇宙可能的历史,上述行为(2.2)与我们所理解的历史并不对应,因为我们的时钟不会突然从11跳到77.2,无论这个行为所代表的历史是怎样的,都不是我们所期望的。

公式 H C HC 是一个时态公式,时态公式是关于行为的断言。我们说一个行为满足 H C HC 当且仅当 H C HC 对行为是一个为真的断言。行为(2.1)满足公式 H C HC 。行为(2.2)没有,因为 H C HC 断言每一步都满足 H C n x t HCnxt 或保持hr不变,而(2.2)的第一步和第三步不满足公式(第二步, [ h r = 77.2 ] [ h r = 78.2 ] [hr=77.2] \rightarrow [hr=78.2] 是满足公式的)。我们认为公式 H C HC 是一个小时时钟的规约,因为那些时钟正常工作的宇宙,其历史行为正好满足公式 H C HC

如果时钟正常工作,那么它的读数应该是从1到12的整数,因此在任何一个满足时钟规约 H C HC 的行为中,在其任何一个状态下, h r hr 的取值都应该是一个从1到12的整数。公式 H C i n i HCini 断言 h r hr 是从1到12的整数, H C i n i \square HCini 断言 H C i n i HCini 永远为真。所以, H C i n i \square HCini 对于任何满足 H C HC 的行为都为真。另一种说法是对于任何行为, H C HC 蕴含 H C i n i \square HCini 。因此,所有行为应该都满足 H C H C i n i HC \Rightarrow \square HCini 公式。一个被所有行为满足的时态公式称为定理,所以 H C H C i n i HC \Rightarrow \square HCini 应该是一个定理1。很容易看出: H C HC 意味着 H C i n i HCini 初始时为真( H C i n i HCini 是行为的第1个状态),而 [ H C n x t ] h r \square[HCnxt]_{hr} 则意味着每一步要么将 h r hr 增长到合适的下一个值,要么保持hr不变。我们可以使用TLA的证明规则来形式化这个推理,但是我们不打算深入研究证明和证明规则。


  1. 如果一个公式被每一个行为所满足,逻辑学家就称之为有效公式;他们保留定理的定义为可证明的有效的公式。 ↩︎

发布了4 篇原创文章 · 获赞 1 · 访问量 5518

猜你喜欢

转载自blog.csdn.net/robinhzp/article/details/103665883