Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wenkokke/firstorderunificationinagda
Implementation of McBride's "First-order unification by structural recursion" in Agda.
https://github.com/wenkokke/firstorderunificationinagda
first-order-unification library unification
Last synced: 10 days ago
JSON representation
Implementation of McBride's "First-order unification by structural recursion" in Agda.
- Host: GitHub
- URL: https://github.com/wenkokke/firstorderunificationinagda
- Owner: wenkokke
- License: mit
- Created: 2013-11-18T15:23:58.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2018-10-08T22:19:58.000Z (about 6 years ago)
- Last Synced: 2023-03-23T09:31:37.443Z (over 1 year ago)
- Topics: first-order-unification, library, unification
- Language: Agda
- Size: 12.7 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
First-Order Unification in Agda
===============================Implementation of Conor McBride's [First-order unification by structural recursion](http://journals.cambridge.org/action/displayFulltext?type=1&fid=185140&jid=JFP&volumeId=13&issueId=06&aid=185139) in Agda.
I'm personally using this implement proof search in Agda, but should you wish to use it
directly you can do so as follows:-- provide a datatype for the symbols and define a decidable equality
data Sym : ℕ → Set where
ADD : Sym 3
SUC : Sym 1
ZERO : Sym 0decEqSym : ∀ {k} (f g : Sym k) → Dec (f ≡ g)
decEqSym ADD ADD = yes refl
decEqSym SUC SUC = yes refl
decEqSym ZERO ZERO = yes refl
-- import and open the unification module
open import Unification Sym decEqSymIt uses version 0.7 of [the Agda "Standard Library"](http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary).