Naming conventions are an important concern in large verification projects using proof assistants, such as Coq. In particular, lemma names are used by proof engineers to effectively understand and modify Coq code. However, providing accurate and informative lemma names is a complex task, which is currently often carried out manually. Even when lemma naming is automated using rule-based tools, generated names may fail to adhere to important conventions not specified explicitly. We demonstrate a toolchain, dubbed Roosterize, which automatically suggests lemma names in Coq projects. Roosterize leverages a neural network model trained on existing Coq code, thus avoiding manual specification of naming conventions. To allow proof engineers to conveniently access suggestions from Roosterize during Coq project development, we integrated the toolchain into the popular Visual Studio Code editor. Our evaluation shows that Roosterize substantially outperforms strong baselines for suggesting lemma names and is useful in practice. The demo video for Roosterize can be viewed at: https://youtu.be/HZ5ac7Q14rc.
翻译:在使用证据助理的大型核查项目中,例如Coq,命名公约是使用证据助理(例如Coq)进行大型核查项目的一个重要问题。特别是,校对工程师使用利玛名字来有效理解和修改科克代码。然而,提供准确和知情的利玛名字是一项复杂的任务,目前往往是手工完成的。即使Lemma命名是使用基于规则的工具自动化的,所产生的名字也可能没有遵守未明确规定的重要公约。我们展示了一个工具链,即假的Roosterizize,自动暗示科克项目中的利玛名字。Roosterizizize 利用了一个经现有科克代码培训的神经网络模型,从而避免了命名公约的手工规格。为了让校对工程师在科克项目开发期间方便地查阅Roosteriz化的建议,我们将工具链纳入了流行的视觉工作法典编辑。我们的评估表明,Roosteriz化在很大程度上超越了推荐利玛名字的强大基线,在实践中是有用的。Rosterize的演示视频可在以下网址上查看:https://yotu.be/HZ5ac7Q14rc。