FV Time: a formally verified Coq library

09/28/2022
by   Ana de Almeida Borges, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/24/2022

Comparative Verification of the Digital Library of Mathematical Functions and Computer Algebra Systems

Digital mathematical libraries assemble the knowledge of years of mathem...
research
04/06/2023

Logipedia: a multi-system encyclopedia of formal proofs

Libraries of formal proofs are an important part of our mathematical her...
research
01/10/2019

Towards platform-independent specification and verification of the standard trigonometry functions

Research project "Platform-independent approach to formal specification ...
research
08/06/2021

Plotting in a Formally Verified Way

An invaluable feature of computer algebra systems is their ability to pl...
research
01/25/2020

SLEEF: A Portable Vectorized Library of C Standard Mathematical Functions

In this paper, we present techniques used to implement our portable vect...
research
07/02/2019

Specifying verified x86 software from scratch

We present a simple framework for specifying and proving facts about the...

Please sign up or login with your details

Forgot password? Click here to reset