论文标题
Isabelle的Linter:实施和评估
A Linter for Isabelle: Implementation and Evaluation
论文作者
论文摘要
在交互式定理中,形式化质量是可维护性和发展性可重复使用的关键因素,也可能影响证明检查性能。通常,有经验的用户已知引起质量问题的反故事。但是,在许多定理私人系统中,没有自动工具可以检查其存在并使经验较低的用户了解它们。我们试图通过开发衬里作为公开可用的附加组件来填补这一空白。 Linter提供了基本的可配置性,可扩展性,Isabelle/Jedit集成以及独立的命令行工具。我们发现了伊莎贝尔/hol中的480个潜在问题,14016在伊莎贝尔分布的其他形式上,在法新社中有一个惊人的59573。通过针对法新社提交的特定棉绒捆绑包,我们发现在1595案件中违反了提交准则。我们着手减轻伊莎贝尔/霍尔的问题,并解决了迄今为止的168个问题。我们发现,在大多数情况下,高度严重的绒毛与实际问题相对应,个人用户通常在许多地方犯同样的错误,并且回顾性地解决这些问题等于大量工作。相比之下,正如我们在22名参与者的定量用户调查中发现的那样,为新发展解决这些问题通常只会产生很少的开销(对于60%以上的参与者而言,不到一分钟不到一分钟)。我们还发现,对问题的良好解释是用户易于解决这些问题的关键(相关系数0.48),并且对最终结果的满意度(相关系数为0.62)。
In interactive theorem proving, formalization quality is a key factor for maintainability and re-usability of developments and can also impact proof-checking performance. Commonly, anti-patterns that cause quality issues are known to experienced users. However, in many theorem prover systems, there are no automatic tools to check for their presence and make less experienced users aware of them. We attempt to fill this gap in the Isabelle environment by developing a linter as a publicly available add-on component. The linter offers basic configurability, extensibility, Isabelle/jEdit integration, and a standalone command-line tool. We uncovered 480 potential problems in Isabelle/HOL, 14016 in other formalizations of the Isabelle distribution, and an astonishing 59573 in the AFP. With a specific lint bundle for AFP submissions, we found that submission guidelines were violated in 1595 cases. We set out to alleviate problems in Isabelle/HOL and solved 168 of them so far; we found that high-severity lints corresponded to actual problems most of the time, individual users often made the same mistakes in many places, and that solving those problems retrospectively amounts to a substantial amount of work. In contrast, solving these problems interactively for new developments usually incurs only little overhead, as we found in a quantitative user survey with 22 participants (less than a minute for more than 60% of participants). We also found that a good explanation of problems is key to the users' ease of solving these problems (correlation coefficient 0.48), and their satisfaction with the end result (correlation coefficient 0.62).