铁路运营安全验证与CBTC系统安全分析
铁路运营的演绎验证
在铁路运营中,确保列车运行的安全性至关重要。这里涉及到对一些关键属性的验证,以保障列车运行的安全。
expectIn未修改的证明
首先,要证明在读取和第460行提到的保护条件之间, expectIn
未被修改。唯一能向 expectIn
添加元素的方法是 offer
。假设存在位置 k
,满足 i′ < k < i
且 h[k] = futEv(B, A, offer, f ′, [T, st])
,根据良构性公理,会存在索引 k′′
和 k′
,且 k′′ < k′
,使得 h[k′] = invEv(B, A, offer, f ′, [T, st, B])
和 h[k′′] = invREv(B, A, offer, f ′, [T, st, B])
。接下来分两种情况讨论:
- 情况1:i′ < k′′ :即 offer
进程在调用 rqPerm
之后调度。当 A.offer
终止时, A.allowed[A.other(st)]
会被设置为 True
,这由 KeY