We describe the design and implementation of a reasoning engine that facilitates the gamification of loop-invariant discovery. Our reasoning engine enables students, computational agents and regular software engineers with no formal methods expertise to collaboratively prove interesting theorems about simple programs using browser-based, online games. Within an hour, players are able to specify and verify properties of programs that are beyond the capabilities of fully-automated tools. The hour limit includes the time for setting up the system, completing a short tutorial explaining game play and reasoning about simple imperative programs. Players are never required to understand formal proofs; they only provide insights by proposing invariants. The reasoning engine is responsible for managing and evaluating the proposed invariants, as well as generating actionable feedback.
翻译:我们描述一个推理引擎的设计和实施过程,它能促进循环变化的发现。我们的推理引擎使学生、计算代理人和没有正规方法专门知识的常规软件工程师能够合作证明使用浏览器在线游戏的简单程序的有趣理论。在一小时内,玩家可以指定和验证超出完全自动工具能力的程序的特性。小时限制包括设置系统的时间,完成简短的辅导性解释游戏和简单必要程序的理由。玩家从不需要理解正式证据;他们只能通过提出变量来提供洞察力。推理引擎负责管理和评估提议的变量,并产生可操作的反馈。