{-# OPTIONS --allow-unsolved-metas #-} module Unifier where open import Data.Nat.Base using (ℕ; zero; suc) open import StateOfTheArt using ( _×_; ⊤ ; _,_ ; _≡_; refl ) _ : _ _ = _ _ : (_ → _) ≡ (ℕ → ℕ) _ = refl _ : let ?A = _ in (?A → ?A) ≡ (ℕ → ℕ) _ = refl _ : (ℕ → _) ≡ (ℕ → ℕ) _ = refl _ : _ ≡ (_ → _) _ = refl private variable A : Set nary : ℕ → Set → Set nary zero A = A nary (suc n) A = ℕ → nary n A at0 : ∀ n → nary n A → A at0 zero f = f at0 (suc n) f = at0 n (f 0) _ : nary 1 _ ≡ (ℕ → ℕ) _ = refl _ : nary 0 _ ≡ (ℕ → ℕ) _ = refl _ : nary _ _ ≡ (ℕ → A) _ = refl _ : nary _ ℕ ≡ ℕ _ = refl _ : nary _ ℕ ≡ (ℕ → ℕ) _ = refl _ : nary _ (ℕ → ℕ) ≡ (ℕ → ℕ) _ = refl