package coq-functional-algebra

  1. Overview
  2. Homepage
This package provides a Coq formalization of abstract algebra using

Install

Dune Dependency

Authors

Maintainers

Sources

1.0.2.tar.gz
md5=669f85d5dd1aa2fa235e5518432896a1

Description

a functional programming style. The modules contained within the package span monoids, groups, rings, and fields and provides both axiom definitions for these structures and proofs of foundational results. The current package contains over 800 definitions and proofs.

This module is unique in that it eschews the tactic-oriented style of traditional Coq developments. As pointed out by others, programs written in that style are brittle, hard to read, and generally inefficient.

While tactic driven development is useful for sketching out proofs, these disadvantages should dissuade us from publising proofs in this form.

In this library, I provide a worked example of using Gallina directly and demonstrate both the feasibility of this approach and its advantages in terms of clarity, maintainability, and compile-time efficiency.

In addition, this module includes two expression simplifiers. The first, defined in monoid_expr.v simplifies monoid expressions. The second, defined in group_expr.v simplifies group expressions.

These functions allow us to automate many of the steps involved in proving algebraic theorems directly in Gallina, and represent an alternative to relying on tactics such as auto, omega, etc.

For more information about this package, please read its Readme file, which can be found here:

https://github.com/llee454/functional-algebra.

Dependencies (2)

  1. coq >= "8.4" & < "8.13~"
  2. ocaml

Dev Dependencies

None

Used by

None

Conflicts

None

Rocq

Interactive Theorem Prover