Skip to content

Commit 517dd73

Browse files
committed
Log ground truth when it is SMT-unknown
1 parent e7381d7 commit 517dd73

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

booster/library/Booster/SMT/Interface.hs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import Control.Monad.IO.Class
2323
import Control.Monad.Trans.Class
2424
import Control.Monad.Trans.Except
2525
import Control.Monad.Trans.State
26+
import Data.Aeson (object, (.=))
2627
import Data.ByteString.Char8 qualified as BS
2728
import Data.Coerce
2829
import Data.Data (Proxy)
@@ -34,7 +35,7 @@ import Data.Map qualified as Map
3435
import Data.Set (Set)
3536
import Data.Set qualified as Set
3637
import Data.Text as Text (Text, pack, unlines, unwords)
37-
import Prettyprinter (Pretty, hsep)
38+
import Prettyprinter (Pretty, comma, hsep, punctuate, (<+>))
3839
import SMTLIB.Backends.Process qualified as Backend
3940

4041
import Booster.Definition.Base
@@ -46,6 +47,7 @@ import Booster.Prettyprinter qualified as Pretty
4647
import Booster.SMT.Base as SMT
4748
import Booster.SMT.Runner as SMT
4849
import Booster.SMT.Translate as SMT
50+
import Booster.Syntax.Json.Externalise (externaliseTerm)
4951

5052
data SMTError
5153
= GeneralSMTError Text
@@ -438,7 +440,15 @@ checkPredicates ctxt givenPs givenSubst psToCheck
438440
Log.logMessage ("Inconsistent ground truth" :: Text)
439441
pure (Unsat, Unsat)
440442
Unknown -> do
441-
Log.logMessage ("Unknown ground truth" :: Text)
443+
Log.getPrettyModifiers >>= \case
444+
ModifiersRep (_ :: FromModifiersT mods => Proxy mods) -> do
445+
Log.withContext Log.CtxDetail
446+
$ Log.logMessage
447+
$ Log.WithJsonMessage
448+
(object ["conditions" .= (map (externaliseTerm . coerce) . Set.toList $ givenPs)])
449+
$ Pretty.renderOneLineText
450+
$ "Unknown ground truth: "
451+
<+> (hsep . punctuate comma . map (pretty' @mods) . Set.toList $ givenPs)
442452
pure (Unknown, Unknown)
443453
_ -> do
444454
-- save ground truth for 2nd check

0 commit comments

Comments
 (0)