diff options
author | funemy | 2022-10-25 07:14:52 +0000 |
---|---|---|
committer | funemy | 2022-10-25 07:14:52 +0000 |
commit | 998ef837b43203319397f191036a97a5adc42220 (patch) | |
tree | 920558bd60d282c663fd2da1cd4144cac1849a1d /entries/ionathanch/Fib.agda | |
parent | fdac6c60e115297a58f5b81da0c4b7f18ac758f2 (diff) | |
parent | ce7544a6db594f7d3dfad0d7dc65d01515e57ad6 (diff) |
Merge branch 'main' of github.com:braxtonhall/fib
Diffstat (limited to 'entries/ionathanch/Fib.agda')
-rw-r--r-- | entries/ionathanch/Fib.agda | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/entries/ionathanch/Fib.agda b/entries/ionathanch/Fib.agda new file mode 100644 index 0000000..a12b0a5 --- /dev/null +++ b/entries/ionathanch/Fib.agda @@ -0,0 +1,19 @@ + +open import Agda.Builtin.Nat +open import Agda.Builtin.List +open import Agda.Builtin.Reflection + +data Fib : Nat → Nat → Set where + instance F0 : Fib 0 0 + instance F1 : Fib 1 1 + instance Fk : ∀ {k n m} → ⦃ Fib k n ⦄ → ⦃ Fib (suc k) m ⦄ → Fib (suc (suc k)) (n + m) + +fib' : ∀ k {n} → ⦃ Fib k n ⦄ → Nat +fib' k {n} ⦃ fib ⦄ = n + +macro + fib : Term → Term → TC _ + fib t hole = unify hole (def (quote fib') (arg i t ∷ [])) + where i = arg-info visible (modality relevant quantity-ω) + +{- Get the [n]th Fibonacci number by normalization via C-n `fib [n]`. -} |