LogicList.hs revision 36b9e4cf34070e81d93765f129044abc5dbcf678
8a77240a809197c92c0736c431b4b88947a7bac1Christian Maeder{-# LANGUAGE CPP #-}
8a77240a809197c92c0736c431b4b88947a7bac1Christian Maeder{- |
6ea54752d184beb92c92fbae17ae9f7dd065d988Christian MaederModule : $Header$
306763c67bb99228487345b32ab8c5c6cd41f23cChristian MaederDescription : Assembles all the logics into a list, as a prerequisite
3a6c7a7ff823616f56cd3d205fc44664a683effdChristian Maeder for the logic graph
6ea54752d184beb92c92fbae17ae9f7dd065d988Christian MaederCopyright : (c) Till Mossakowski and Uni Bremen 2003
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuLicense : similar to LGPL, see HetCATS/LICENSE.txt or LIZENZ.txt
2eeec5240b424984e3ee26296da1eeab6c6d739eChristian Maeder
306763c67bb99228487345b32ab8c5c6cd41f23cChristian MaederMaintainer : till@informatik.uni-bremen.de
306763c67bb99228487345b32ab8c5c6cd41f23cChristian MaederStability : provisional
f3a94a197960e548ecd6520bb768cb0d547457bbChristian MaederPortability : non-portable (existential types)
9f87aabedf02d74917d94fe1ac0300e07d3d4bc2Christian Maeder
44fb55f639914f4f531641f32dd4904f15c510a4Till MossakowskiAssembles all the logics into a list, as a prerequisite for the logic graph.
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski The modules for the Grothendieck logic are logic graph indepdenent,
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski and here is the logic graph that is used to instantiate these.
af0cbe339851fc558d2b18cde3666981325e667cTill Mossakowski Since the logic graph depends on a large number of modules for the
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski individual logics, this separation of concerns (and possibility for
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski separate compilation) is quite useful.
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maeder References:
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder J. A. Goguen, R. M. Burstall: Institutions:
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder Abstract Model Theory for Specification and Programming,
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder Journal of the Association for Computing Machinery 39, p. 95-146.
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder J. Meseguer: General logics. Logic Colloquium 87, p. 275-329, North Holland.
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maeder
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder Todo:
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder Add many many logics.
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder-}
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maedermodule Comorphisms.LogicList
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maeder ( logicList
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maeder , addLogicName
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maeder , defaultLogic
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maeder , preLogicGraph
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maeder ) where
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maeder
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maederimport qualified Data.Map as Map
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maederimport Logic.Logic
1bc5dccbf0083a620ae1181c717fea75e4af5e5cChristian Maederimport Logic.Grothendieck
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport CASL.Logic_CASL -- also serves as default logic
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport HasCASL.Logic_HasCASL
922819b1c2d383a0fa5d70e1c4aa76667e2f1ca3Christian Maederimport Propositional.Logic_Propositional
63324a97283728a30932828a612c7b0b0f687624Christian Maederimport QBF.Logic_QBF
27166b063721ef1a2efd8f00ab3d9bc820b315fbChristian Maeder#ifdef PROGRAMATICA
19298cbfd6ee2abd904f3181af7760b965b822c3Christian Maederimport Haskell.Logic_Haskell
9f87aabedf02d74917d94fe1ac0300e07d3d4bc2Christian Maeder#endif
9f87aabedf02d74917d94fe1ac0300e07d3d4bc2Christian Maederimport Isabelle.Logic_Isabelle
27166b063721ef1a2efd8f00ab3d9bc820b315fbChristian Maederimport SoftFOL.Logic_SoftFOL
27166b063721ef1a2efd8f00ab3d9bc820b315fbChristian Maeder#ifdef CASLEXTENSIONS
27166b063721ef1a2efd8f00ab3d9bc820b315fbChristian Maederimport Modal.Logic_Modal
27166b063721ef1a2efd8f00ab3d9bc820b315fbChristian Maederimport ExtModal.Logic_ExtModal
27166b063721ef1a2efd8f00ab3d9bc820b315fbChristian Maederimport CoCASL.Logic_CoCASL
27166b063721ef1a2efd8f00ab3d9bc820b315fbChristian Maederimport CspCASL.Logic_CspCASL
63324a97283728a30932828a612c7b0b0f687624Christian Maederimport COL.Logic_COL ()
556f473448dfcceee22afaa89ed7a364489cdbbbChristian Maederimport CASL_DL.Logic_CASL_DL
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport ConstraintCASL.Logic_ConstraintCASL
59fa9b1349ae1e001d996da732c4ac805c2938e2Christian Maederimport VSE.Logic_VSE
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski-- no CASL extension, but omit them as non-essential
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport RelationalScheme.Logic_Rel
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport Temporal.Logic_Temporal
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport DFOL.Logic_DFOL
53310804002cd9e3c9c5844db3b984abcf001788Christian Maederimport LF.Logic_LF
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport Framework.Logic_Framework
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski--import OMDoc.Logic_OMDoc ()
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport Maude.Logic_Maude
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport Reduce.Logic_Reduce
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowskiimport CommonLogic.Logic_CommonLogic
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski#endif
3a87487c048b275c56e502c4a933273788e8d0bbChristian Maeder#ifndef NOOWLLOGIC
2b565fe5cfb9f99857fd25b52304758d8544e266Mihai Codescuimport DMU.Logic_DMU
2b565fe5cfb9f99857fd25b52304758d8544e266Mihai Codescuimport OWL.Logic_OWL
2b565fe5cfb9f99857fd25b52304758d8544e266Mihai Codescu#endif
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski
b5056cf24da461ee868c4be7b803a76b677fa21dChristian MaederlogicList :: [AnyLogic]
b5056cf24da461ee868c4be7b803a76b677fa21dChristian MaederlogicList =
4184cb191a9081cb2a9cf3ef5f060f56f0ca5922Till Mossakowski [ Logic CASL
8731f7b93b26083dc34a2c0937cd6493b42f2c2cTill Mossakowski , Logic HasCASL
fd496ec12c6be2731410ea84111f1ff88d8b6384Christian Maeder , Logic Isabelle
fd496ec12c6be2731410ea84111f1ff88d8b6384Christian Maeder , Logic SoftFOL
4184cb191a9081cb2a9cf3ef5f060f56f0ca5922Till Mossakowski , Logic Propositional
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder , Logic QBF
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder#ifdef PROGRAMATICA
bba825b39570777866d560bfde3807731131097eKlaus Luettich , Logic Haskell
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder#endif
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder#ifdef CASLEXTENSIONS
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder , Logic CoCASL
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder , Logic ExtModal
fd496ec12c6be2731410ea84111f1ff88d8b6384Christian Maeder , Logic Modal
fd496ec12c6be2731410ea84111f1ff88d8b6384Christian Maeder , Logic cspCASL
a89e661aad28f1b39f4fc9f9f9a4d46074234123Christian Maeder , Logic traceCspCASL
a89e661aad28f1b39f4fc9f9f9a4d46074234123Christian Maeder , Logic failureCspCASL
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder , Logic CASL_DL
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder , Logic ConstraintCASL
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder , Logic VSE
b60a22e76e983e8129c5dae4d713fe2794ed7054Christian Maeder , Logic RelScheme
83b3260413a3b1b7dee1f9c4d3249dec994a875cMihai Codescu , Logic Temporal
b60a22e76e983e8129c5dae4d713fe2794ed7054Christian Maeder , Logic DFOL
a975722baf6fee1ca3e67df170c732c4abd0a945Christian Maeder , Logic LF
a975722baf6fee1ca3e67df170c732c4abd0a945Christian Maeder , Logic Framework
a975722baf6fee1ca3e67df170c732c4abd0a945Christian Maeder , Logic Maude
a975722baf6fee1ca3e67df170c732c4abd0a945Christian Maeder , Logic Reduce
63324a97283728a30932828a612c7b0b0f687624Christian Maeder , Logic CommonLogic
fd496ec12c6be2731410ea84111f1ff88d8b6384Christian Maeder#endif
a98fd29a06e80e447af26d898044c23497adbc73Mihai Codescu#ifndef NOOWLLOGIC
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder , Logic DMU
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder , Logic OWL
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder#endif
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder ]
b5056cf24da461ee868c4be7b803a76b677fa21dChristian Maeder
f2c050360525df494e6115073b0edc4c443a847cMihai CodescuaddLogicName :: AnyLogic -> (String,AnyLogic)
b60a22e76e983e8129c5dae4d713fe2794ed7054Christian MaederaddLogicName l@(Logic lid) = (language_name lid, l)
f2c050360525df494e6115073b0edc4c443a847cMihai Codescu
b60a22e76e983e8129c5dae4d713fe2794ed7054Christian MaederdefaultLogic :: AnyLogic
f2c050360525df494e6115073b0edc4c443a847cMihai CodescudefaultLogic = Logic CASL
0e51a998b1b213654c7a9eca451562041971f100Till Mossakowski
0e51a998b1b213654c7a9eca451562041971f100Till MossakowskipreLogicGraph :: LogicGraph
b60a22e76e983e8129c5dae4d713fe2794ed7054Christian MaederpreLogicGraph =
b60a22e76e983e8129c5dae4d713fe2794ed7054Christian Maeder emptyLogicGraph { logics = Map.fromList $ map addLogicName logicList }
e9249d3ecd51a2b6a966a58669953e58d703adc6Till Mossakowski