FV Time is a small-scale verification project developed in the Coq proof assistant using the Mathematical Components libraries. It is a library for managing conversions between time formats (UTC and timestamps), as well as commonly used functions for time arithmetic. As a library for time conversions, its novelty is the implementation of leap seconds, which are part of the UTC standard but usually not implemented in existing libraries. Since the verified functions of FV Time are reasonably simple yet non-trivial, it nicely illustrates our methodology for verifying software with Coq. In this paper we present a description of the project, emphasizing the main problems faced while developing the library, as well as some general-purpose solutions that were produced as by-products and may be used in other verification projects. These include a refinement package between proof-oriented MathComp numbers and computation-oriented primitive numbers from the Coq standard library, as well as a set of tactics to automatically prove certain arithmetical statements through brute-force computation.
翻译:FV 时间是使用数学组成部分图书馆的 Coq 校对助理开发的一个小型核查项目,是一个管理时间格式(UTC和时间戳)之间转换的图书馆,以及常用的时间算术功能。作为时间转换的图书馆,它的新颖之处是执行跳秒,这是UTC 标准的一部分,但通常没有在现有图书馆中实施。由于FV 时间的核实功能相当简单,但非三重性,它很好地说明了我们与 Coq 一起核查软件的方法。在本文中,我们介绍了该项目的描述,强调了在开发图书馆时所面临的主要问题,以及作为副产品产生的一些普通用途解决方案,并可用于其他核查项目。其中包括一套在以证据为导向的数学复合数字和Coq 标准图书馆的以计算为主的原始数字之间加以改进的一揽子方案,以及一套通过粗力计算自动证明某些算术的策略。