@@ -23,6 +23,7 @@ import Control.Monad.IO.Class
23
23
import Control.Monad.Trans.Class
24
24
import Control.Monad.Trans.Except
25
25
import Control.Monad.Trans.State
26
+ import Data.Aeson (object , (.=) )
26
27
import Data.ByteString.Char8 qualified as BS
27
28
import Data.Coerce
28
29
import Data.Data (Proxy )
@@ -34,7 +35,7 @@ import Data.Map qualified as Map
34
35
import Data.Set (Set )
35
36
import Data.Set qualified as Set
36
37
import Data.Text as Text (Text , pack , unlines , unwords )
37
- import Prettyprinter (Pretty , hsep )
38
+ import Prettyprinter (Pretty , comma , hsep , punctuate , (<+>) )
38
39
import SMTLIB.Backends.Process qualified as Backend
39
40
40
41
import Booster.Definition.Base
@@ -46,6 +47,7 @@ import Booster.Prettyprinter qualified as Pretty
46
47
import Booster.SMT.Base as SMT
47
48
import Booster.SMT.Runner as SMT
48
49
import Booster.SMT.Translate as SMT
50
+ import Booster.Syntax.Json.Externalise (externaliseTerm )
49
51
50
52
data SMTError
51
53
= GeneralSMTError Text
@@ -438,7 +440,15 @@ checkPredicates ctxt givenPs givenSubst psToCheck
438
440
Log. logMessage (" Inconsistent ground truth" :: Text )
439
441
pure (Unsat , Unsat )
440
442
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)
442
452
pure (Unknown , Unknown )
443
453
_ -> do
444
454
-- save ground truth for 2nd check
0 commit comments