1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
module Main where
import Interpreter
import Text.Pretty.Simple
import qualified Data.Map as M
ppr :: Show a => a -> IO ()
ppr = pPrintOpt CheckColorTty defaultOutputOptionsDarkBg {outputOptionsCompactParens = True, outputOptionsIndentAmount = 2, outputOptionsPageWidth=80}
main :: IO ()
main = do
let (res, interp) =
prove [Goal, U (Struct (1, 2)), U (Atom 1), U (Atom 2), LastCall] $
M.fromList
[ ( (1, 2)
, [ [U (Atom 333), U (Atom 444), NoGoal]
, [ U (Atom 1)
, U (Atom 2)
, Goal
, U (Struct (2, 0))
, Call
, Goal
, U (Struct (5, 2))
, U (Atom 333)
, U (Atom 444)
, LastCall
]
])
, ((2, 0), [[NoGoal]])
]
ppr interp
ppr res
|