From bb3ffde9ba3c7ca2c4017e3a6200bfd13e673e33 Mon Sep 17 00:00:00 2001 From: Brian Huffman Date: Wed, 22 Oct 2014 20:04:24 -0700 Subject: [PATCH] Fix implementation of append in symbolic simulator The case 'VWord # VStream' was previously missing from the definition. This addresses issue #131. --- src/Cryptol/Symbolic/Prims.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cryptol/Symbolic/Prims.hs b/src/Cryptol/Symbolic/Prims.hs index 293c2281..7c3cd29f 100644 --- a/src/Cryptol/Symbolic/Prims.hs +++ b/src/Cryptol/Symbolic/Prims.hs @@ -323,10 +323,10 @@ mapV f v = _ -> panic "Cryptol.Symbolic.Prims.mapV" [ "non-mappable value" ] catV :: Value -> Value -> Value +catV xs (VStream ys) = VStream (fromSeq xs ++ ys) catV (VWord x) ys = VWord (cat x (fromWord ys)) catV xs (VWord y) = VWord (cat (fromWord xs) y) catV (VSeq b xs) (VSeq _ ys) = VSeq b (xs ++ ys) -catV (VSeq _ xs) (VStream ys) = VStream (xs ++ ys) catV _ _ = panic "Cryptol.Symbolic.Prims.catV" [ "non-concatenable value" ] dropV :: Integer -> Value -> Value