/FirstOrderUnificationInAgda

Implementation of McBride's "First-order unification by structural recursion" in Agda.

Primary LanguageAgdaMIT LicenseMIT

First-Order Unification in Agda

Implementation of Conor McBride's First-order unification by structural recursion 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 0

decEqSym : ∀ {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 decEqSym

It uses version 0.7 of the Agda "Standard Library".