当前位置:
X-MOL 学术
›
Form. Methods Syst. Des.
›
论文详情
Our official English website, www.x-mol.net, welcomes your
feedback! (Note: you will need to create a separate account there.)
Alloy*: a general-purpose higher-order relational constraint solver
Formal Methods in System Design ( IF 0.7 ) Pub Date : 2017-01-27 , DOI: 10.1007/s10703-016-0267-2 Aleksandar Milicevic , Joseph P. Near , Eunsuk Kang , Daniel Jackson
Formal Methods in System Design ( IF 0.7 ) Pub Date : 2017-01-27 , DOI: 10.1007/s10703-016-0267-2 Aleksandar Milicevic , Joseph P. Near , Eunsuk Kang , Daniel Jackson
The last decade has seen a dramatic growth in the use of constraint solvers as a computational mechanism, not only for analysis of software, but also at runtime. Solvers are available for a variety of logics but are generally restricted to first-order formulas. Some tasks, however, most notably those involving synthesis, are inherently higher order; these are typically handled by embedding a first-order solver (such as a SAT or SMT solver) in a domain-specific algorithm. Using strategies similar to those used in such algorithms, we show how to extend a first-order solver (in this case Kodkod, a model finder for relational logic used as the engine of the Alloy Analyzer) so that it can handle quantifications over higher-order structures. The resulting solver is sufficiently general that it can be applied to a range of problems; it is higher order, so that it can be applied directly, without embedding in another algorithm; and it performs well enough to be competitive with specialized tools. Just as the identification of first-order solvers as reusable backends advanced the performance of specialized tools and simplified their architecture, factoring out higher-order solvers may bring similar benefits to a new class of tools.
中文翻译:
Alloy*:通用高阶关系约束求解器
在过去十年中,约束求解器作为计算机制的使用急剧增长,不仅用于软件分析,而且用于运行时。求解器可用于各种逻辑,但通常仅限于一阶公式。然而,一些任务,尤其是那些涉及综合的任务,本质上是更高阶的;这些通常通过在特定领域算法中嵌入一阶求解器(例如 SAT 或 SMT 求解器)来处理。使用与此类算法中使用的策略类似的策略,我们展示了如何扩展一阶求解器(在本例中为 Kodkod,用作 Alloy Analyzer 引擎的关系逻辑模型查找器),以便它可以处理更高级别的量化 -秩序结构。由此产生的求解器具有足够的通用性,可以应用于一系列问题;它是更高阶的,以便它可以直接应用,无需嵌入其他算法;它的性能足以与专业工具竞争。正如将一阶求解器识别为可重复使用的后端提高了专用工具的性能并简化了它们的架构一样,分解出高阶求解器可能会给新型工具带来类似的好处。
更新日期:2017-01-27
中文翻译:
Alloy*:通用高阶关系约束求解器
在过去十年中,约束求解器作为计算机制的使用急剧增长,不仅用于软件分析,而且用于运行时。求解器可用于各种逻辑,但通常仅限于一阶公式。然而,一些任务,尤其是那些涉及综合的任务,本质上是更高阶的;这些通常通过在特定领域算法中嵌入一阶求解器(例如 SAT 或 SMT 求解器)来处理。使用与此类算法中使用的策略类似的策略,我们展示了如何扩展一阶求解器(在本例中为 Kodkod,用作 Alloy Analyzer 引擎的关系逻辑模型查找器),以便它可以处理更高级别的量化 -秩序结构。由此产生的求解器具有足够的通用性,可以应用于一系列问题;它是更高阶的,以便它可以直接应用,无需嵌入其他算法;它的性能足以与专业工具竞争。正如将一阶求解器识别为可重复使用的后端提高了专用工具的性能并简化了它们的架构一样,分解出高阶求解器可能会给新型工具带来类似的好处。