Writing declarative models has numerous benefits, ranging from automated reasoning and correction of design-level properties be-fore systems are built, to automated testing and debugging of their implementations after they are built. Alloy is a declarative modeling language that is well suited for verifying system designs. A key strength of Alloy is its scenario-finding toolset, the Analyzer, which allows users to explore all valid scenarios that adhere to the model's constraints up to a user-provided scope. In Alloy, it is common for users to desire to first validate smaller scenarios, then once confident, move onto validating larger scenarios. However, the Analyzer only presents scenarios in the order they are discovered by the SAT solver. This paper presents Reach, an extension to the Analyzer which allows users to explore scenarios by size. Experimental results reveal Reach's enumeration improves performance while having the added benefit of maintaining a semi-sorted ordering of scenarios for the user. Moreover, we highlight Reach's ability to improve the performance of Alloy's analysis when the user makes incremental changes to the scope of the enumeration.
翻译:声明性模型有许多好处,从自动推理和校正设计层面的属性前方系统,到建立后自动测试和调试其实施。Alloy是一种非常适合核查系统设计的宣言性模型语言。Alloy的关键优点是其情景调查工具Analyzer,它使用户能够探索所有符合模型制约的、直至用户提供范围的有效情景。在Alloy,用户通常希望首先验证较小的情景,然后一旦有信心,就转向更大的情景。然而,Analyzer只按SAT解答者发现的顺序展示情景。本文展示了Analyzer的扩展,允许用户按规模探索情景。实验结果显示“Allez”的插图提高了性能,同时为用户维持半分类的情景排序。此外,我们强调,当用户对查点范围作出递增变化时,Sache有能力改进Aloy的分析性能。