-
Notifications
You must be signed in to change notification settings - Fork 0
A module for the inductive theorem prover Coq, which generates function and theorems based on inductive type definitions.
License
simonr89/SyDRec
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
=== SyDRec : Systematic Development of Recursive programs === DESCRIPTION This plugin for Coq provides tools to construct and derive programs in the BMF style. The module SyDRec.Morphisms provides the 'Catamorphism' command, which generate a catamorphism function and a fusion theorem according to an arbitrary inductive type definition. A similar command 'Paramorphism' is also provided. The module SyDRec.Constructive provides the 'beta' tactic as well as other tools for constructive proofs (mostly extending the type sig to n-ary propositions). REQUIREMENTS This module is known to be compatible with Coq 8.4. Other versions have not been tested, and the module is almost certainly NOT compatible with versions 8.2 or earlier. TO INSTALL from the top directory: make make install (may require super-user privileges) make clean TO USE In coq, load the modules with: Require SyDRec.Constructive. Require SyDRec.Morphisms. CATAMORPHISM AND PARAMORPHISM COMMANDS To use the Catamorphism command: Catamorphism foo. where foo is a reference to an inductive type. This command generates two definitions 'cata_foo' and 'cata_foo_fusion', which correspond to the catamorphism function (generalized fold) over type foo and its fusion theorem. The use of the paramorphism command is similar. BETA TACTIC beta This tactic performs beta-expansion. It applies to a goal of the form {f x = e} and yields the goal {f = (fun x0 => e0)} where {e0} is {e[x := x0]} This tactic is mostly useful when f is an existential variable. It can be used to solve higher-order equations. Error messages: 1. The goal does not have the required form: f x = e OTHER TOOLS AND TACTICS Other tools and tactics are documented in the file Constructive.v as well as the examples provided.
About
A module for the inductive theorem prover Coq, which generates function and theorems based on inductive type definitions.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published