Skip to content

Commit 9879419

Browse files
author
Eddy Westbrook
committed
changed the translation of array literals to use Coq list literals
1 parent 966ab60 commit 9879419

File tree

1 file changed

+3
-8
lines changed
  • saw-core-coq/src/Verifier/SAW/Translation/Coq

1 file changed

+3
-8
lines changed

saw-core-coq/src/Verifier/SAW/Translation/Coq/Term.hs

+3-8
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import Prettyprinter
4646
import Data.Parameterized.Pair
4747
import Data.Parameterized.NatRepr
4848
import qualified Data.BitVector.Sized as BV
49-
import qualified Data.Vector as Vector (reverse, toList)
49+
import qualified Data.Vector as Vector (toList)
5050
import qualified Language.Coq.AST as Coq
5151
import qualified Language.Coq.Pretty as Coq
5252
import Verifier.SAW.Recognizer
@@ -290,13 +290,8 @@ flatTermFToExpr tf = -- traceFTermF "flatTermFToExpr" tf $
290290
return (Coq.App (Coq.Var "intToBv")
291291
[Coq.NatLit (intValue w), Coq.ZLit (BV.asSigned w bv)])
292292
ArrayValue _ vec -> do
293-
let addElement accum element = do
294-
elementTerm <- translateTerm element
295-
return (Coq.App (Coq.Var "Vector.cons")
296-
[Coq.Var "_", elementTerm, Coq.Var "_", accum]
297-
)
298-
in
299-
foldM addElement (Coq.App (Coq.Var "Vector.nil") [Coq.Var "_"]) (Vector.reverse vec)
293+
elems <- Vector.toList <$> mapM translateTerm vec
294+
return (Coq.App (Coq.Var "Vector.of_list") [Coq.List elems])
300295
StringLit s -> pure (Coq.Scope (Coq.StringLit (Text.unpack s)) "string")
301296

302297
ExtCns ec ->

0 commit comments

Comments
 (0)