一句话:在 Isabelle 中形式化并验证 CXL.cache 缓存一致性协议,发现规范问题并开发证明自动化工具。
本文对 Compute Express Link 的跨设备缓存一致性协议 CXL.cache 进行形式化建模与验证。作者依据英文规范在 Isabelle 证明助手中建立形式模型,过程中发现规范中若干不清晰、歧义或不准确之处并提出修复;几乎所有问题与修复均已被 CXL 联盟确认并暂定采纳,仅一项仍在讨论。为验证模型忠实性,作者对 Snoop-pushes-GO 等关键限制进行场景验证,并机械化证明模型的一致性性质。该证明规模庞大,包含数万条引理,促使作者开发新的证明自动化工具,并开放给其他 Isabelle 用户使用。
We report our experience formally modelling and verifying CXL.cache, the inter-device cache coherence protocol of the Compute Express Link standard. We have used the Isabelle proof assistant to create a formal model for CXL.cache based on the English prose specification. This led to us identifying and proposing fixes to several parts of the specification that were unclear, ambiguous or inaccurate. Nearly all our issues and proposed fixes have been confirmed and tentatively accepted by the CXL consortium for adoption, save for one which is still under discussion. To validate the faithfulness of our model we performed scenario verification of essential restrictions such as ''Snoop-pushes-GO'', and used the Isabelle proof assistant to produce a fully mechanised proof of a coherence property of the model. The considerable size of this proof, comprising tens of thousands of lemmas, prompted us to develop new proof automation tools, which we have made available for other Isabelle users working with similarly cumbersome proofs.