The first period of the project has been devoted to advancing the two first objectives of the project. In the frame of the first objective, we have designed a novel low-level language for computer algebra, called Capla. Halfway between C and Rust, Capla is designed to be both safe and verification-friendly, while being low-level enough to be suitable for computationally intensive applications. The Capla language comes equipped with a formally proved semantics, using the Coq/Rocq interactive prover, and with a formally verified compiler.
Regarding the second objective, the main milestone reached during this first period is a fundamental result in type theory, the logical foundations underlying proof assistants like Coq/Rocq or Lean, or Agda. This theorem explains how to transfer arbitrary properties between related mathematical concepts or data structures, in an automated fashion. This theoretical contribution has enabled the implementation of Trocq, a concrete tool for proof transfer, which provides a Swiss-army knife for automating mundane parts of formal libraries, in particular in the case of code refinements.
Finally, during this period we have developed a computer-aided tool for reliable, machine-checked categorical diagrammatic reasoning. When category theory is used to justify a proof step deemed both technical and little informative, authors often provide succinct descriptions of such a step, under the form of a diagram that guides the intuition of the audience. These diagrams help visualizing the existence of certain morphisms or objects, identities between composition of morphisms, etc. In practice however, diagrammatic proofs soon become overly complex. Such complex proofs only remain readable at the price of hiding non-trivial technical arguments and are, as a result, challenging to rigorously verify by hand. We have designed and studied a dedicated first-order language for proofs by diagram chasing, which constitutes the foundations of a formally verified tool for writing reliable diagrammatic proofs in Abelian categories.