PrintLogics.hs revision cdcf5d3f1e79d8798d77efa29e6193af94ea0604
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens Elkner{- |
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel CalinModule : ./Logic/PrintLogics.hs
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel CalinDescription : Print list of all logics
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuCopyright : (c) Till Mossakowski, and OvGU Magdeburg 2017
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel CalinLicense : GPLv2 or higher, see LICENSE.txt
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel CalinMaintainer : till@iks.cs.ovgu.de
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel CalinStability : provisional
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel CalinPortability : non-portable (various -fglasgow-exts extensions)
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel CalinPrint list of all logics with some useful information.
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin-}
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin
f00edd94c598adc73dc4f6005d79d2295e463da5Georgel Calinmodule Logic.PrintLogics where
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel Calin
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calinimport Comorphisms.LogicList
f00edd94c598adc73dc4f6005d79d2295e463da5Georgel Calinimport Logic.Prover
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calinimport Logic.Logic
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel Calinimport Control.Monad
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel Calinimport Data.List
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroedermain :: IO ()
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroedermain = do
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin putStrLn "*** List of logics in Hets ***"
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder mapM_ printLogics [Stable, Testing, Experimental, Unstable]
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel CalinhasStability :: Stability -> AnyLogic -> Bool
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel CalinhasStability s (Logic l) = stability l == s
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel CalinprintLogics :: Stability -> IO ()
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel CalinprintLogics s = do
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel Calin putStrLn $ "Stability: "++show s
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder mapM_ printLogic $ filter (hasStability s) logicList
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel CalinprintLogic :: AnyLogic -> IO ()
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel CalinprintLogic (Logic l) = do
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin putStrLn $ " "++show l++": "++head ((lines $ description l) ++ [""])
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin let ps = provers l
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel Calin unless (null ps) $ do
2416ff1b5e23a72da496ab79aa1a7df85db32308Georgel Calin putStr " provers: "
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder putStrLn $ concat $ intersperse ", " $ map proverName ps
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin
edbee37fd0c724e09c8471d25d0dc48ac84ac12cGeorgel Calin