Abstract
The focal language (formerly Foc) allows a
programmer to incrementally build mathematical
structures and to formally prove their
correctness. focal encourages a development
process by refinement, deriving stepbystep
implementations from specifications. This
refinement process is realized using an
inheritance mechanism on structures which can mix
primitive operations, axioms, algorithms and
proofs. Inheritance from existing structures allows to reuse their components under some
conditions, which are statically checked by the compiler.
In this talk, we first present the main
constructions of the language. Then we show a
shallow embedding of these constructions in
the Coq proof assistant, which is used to check
the proofs made in Focal. Such a proof can be
either an handwritten Coq script, made in an
environment set up by the Focal compiler, or a
Coq term given the zenon theorem prover, which is partly developped within Focal. Last, we present a formalization of focal structures and show that the Coq embedding is conform to this model.
BibTeX  Entry
@InProceedings{prevosto:DagSemProc.05021.7,
author = {Prevosto, Virgile},
title = {{Certified mathematical hierarchies: the FoCal system}},
booktitle = {Mathematics, Algorithms, Proofs},
pages = {112},
series = {Dagstuhl Seminar Proceedings (DagSemProc)},
ISSN = {18624405},
year = {2006},
volume = {5021},
editor = {Thierry Coquand and Henri Lombardi and MarieFran\c{c}oise Roy},
publisher = {Schloss Dagstuhl  LeibnizZentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2006/274},
URN = {urn:nbn:de:0030drops2740},
doi = {10.4230/DagSemProc.05021.7},
annote = {Keywords: Specifications, proofs, inheritance, refinement, types, Focal, Coq, computer algebra, mathematics}
}
Keywords: 

Specifications, proofs, inheritance, refinement, types, Focal, Coq, computer algebra, mathematics 
Collection: 

05021  Mathematics, Algorithms, Proofs 
Issue Date: 

2006 
Date of publication: 

16.01.2006 