summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud@pankzsoft.com>2025-11-05 09:09:53 +0100
committerArnaud Bailly <arnaud@pankzsoft.com>2025-11-05 09:09:53 +0100
commit62651f13e08304d8fa6395fde7352984f48adb46 (patch)
treec6b4045e154bef30170c4ce5a7be430e453a1bf4 /lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs
parent246d370bd903edeb5570b6f016556528b8ca57fc (diff)
downloadlambda-nantes-62651f13e08304d8fa6395fde7352984f48adb46.tar.gz
evaluate deBruijn terms in environment
Diffstat (limited to 'lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs')
-rw-r--r--lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs7
1 files changed, 6 insertions, 1 deletions
diff --git a/lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs b/lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs
index cff047d..85c9d6b 100644
--- a/lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs
+++ b/lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE TypeApplications #-}
module Minilang.Lambda.DeBruijnSpec where
-import Minilang.Lambda.DeBruijn (DeBruijn (..), eval, toDeBruijn)
+import Minilang.Lambda.DeBruijn (DeBruijn (..), eval, toDeBruijn, eval')
import qualified Minilang.Lambda.Eval as Eval
import Test.Hspec (Spec, it, shouldBe)
import Data.Text (Text)
@@ -18,3 +18,8 @@ spec = do
let term = App (App (Lam "x" (Lam "y" (Var "x" 1))) (FV "z")) (FV "t")
eval @Text term `shouldBe` FV "z"
+
+ it "evaluates deBruijn term in env" $ do
+ let term = App (FV "z") (FV "t")
+ env = [("z", toDeBruijn $ Eval.Lam "x" (Eval.Var "x"))]
+ eval' @Text env term `shouldBe` FV "t"