@@ -25,6 +25,7 @@ import qualified Data.ByteString.Lazy as BS
2525import qualified Data.IntMap as IntMap
2626import Data.List (isPrefixOf , isInfixOf , sort , intersperse )
2727import qualified Data.Map as Map
28+ import Data.Maybe (catMaybes )
2829import Data.Parameterized.Classes (KnownRepr (.. ))
2930import Data.Set (Set )
3031import qualified Data.Set as Set
@@ -63,9 +64,10 @@ import SAWCore.ExternalFormat
6364import SAWCore.FiniteValue
6465 ( FiniteType (.. ), readFiniteValue
6566 )
66- import SAWCore.Name (ModuleName , VarName (.. ), mkModuleName )
67+ import SAWCore.Name (ModuleName , VarName (.. ), mkModuleName , moduleIdentToURI )
6768import SAWCore.SATQuery
6869import SAWCore.SCTypeCheck
70+ import SAWCore.Simulator.Concrete (constMap )
6971import SAWCore.Recognizer
7072import SAWCore.Prelude (scEq )
7173import SAWCore.SharedTerm
@@ -571,7 +573,10 @@ goal_normalize opaque =
571573 execTactic $ tacticChange $ \ goal ->
572574 do sc <- getSharedContext
573575 idxs <- mconcat <$> mapM (resolveName sc) opaque
574- let opaqueSet = Set. fromList idxs
576+ -- Also exclude defined SAWCore constants that are implemented as primitives
577+ let primURIs = map moduleIdentToURI (Map. keys constMap)
578+ primIdxs <- io $ traverse (scResolveNameByURI sc) primURIs
579+ let opaqueSet = Set. fromList (catMaybes primIdxs ++ idxs)
575580 sqt' <- io $ traverseSequentWithFocus (normalizeProp sc opaqueSet) (goalSequent goal)
576581 return (sqt', NormalizePropEvidence opaqueSet)
577582
0 commit comments