LogicList.hs revision 7bb0a9e92bc7a6f868eaa0b9c3212c0af4f96b7f
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder{-# LANGUAGE CPP #-}
c63ebf815c8a874525cf18670ad74847f7fc7b26Christian Maeder{- |
456238178f89e5a3de2988ee6c8af924297d52d9Christian MaederModule : ./Comorphisms/LogicList.hs
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederDescription : Assembles all the logics into a list, as a prerequisite
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder for the logic graph
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederCopyright : (c) Till Mossakowski and Uni Bremen 2003
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederLicense : GPLv2 or higher, see LICENSE.txt
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder
43b4c41fbb07705c9df321221ab9cb9832460407Christian MaederMaintainer : till@informatik.uni-bremen.de
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederStability : provisional
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian MaederPortability : non-portable (existential types)
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian Maeder
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian MaederAssembles all the logics into a list, as a prerequisite for the logic graph.
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maeder The modules for the Grothendieck logic are logic graph indepdenent,
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder and here is the logic graph that is used to instantiate these.
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder Since the logic graph depends on a large number of modules for the
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder individual logics, this separation of concerns (and possibility for
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder separate compilation) is quite useful.
a1ed34933c266ce85066acb0d7b20c90cb8eb213Christian Maeder
c0c2380bced8159ff0297ece14eba948bd236471Christian Maeder References:
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich
b1f59a4ea7c96f4c03a4d7cfcb9c5e66871cfbbbChristian Maeder J. A. Goguen, R. M. Burstall: Institutions:
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder Abstract Model Theory for Specification and Programming,
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich Journal of the Association for Computing Machinery 39, p. 95-146.
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder J. Meseguer: General logics. Logic Colloquium 87, p. 275-329, North Holland.
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maeder Todo:
bab2d88d650448628730ed3b65c9f99c52500e8cChristian Maeder Add many many logics.
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder-}
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maedermodule Comorphisms.LogicList
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder ( logicList
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder , addLogicName
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder , defaultLogic
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder , preLogicGraph
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder ) where
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroederimport qualified Data.Map as Map
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroederimport Logic.Logic
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroederimport Logic.Grothendieck
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroederimport CASL.Logic_CASL -- also serves as default logic
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroederimport HasCASL.Logic_HasCASL
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroederimport Propositional.Logic_Propositional
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroederimport QBF.Logic_QBF
825a1e4ca1e768de4b4883c65a6cb1dce6aa0002Christian Maederimport HolLight.Logic_HolLight
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroederimport CSL.Logic_CSL
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maederimport FreeCAD.Logic_FreeCAD
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maeder#ifdef PROGRAMATICA
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maederimport Haskell.Logic_Haskell
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maeder#endif
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maederimport Isabelle.Logic_Isabelle
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maederimport SoftFOL.Logic_SoftFOL
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maederimport CSMOF.Logic_CSMOF
d54cd08a4cfa26256c38d8ed12c343adbfe1a0e3Christian Maederimport QVTR.Logic_QVTR
308834907a120fd8771e18292ed2ca9cd767c12dChristian Maeder#ifdef CASLEXTENSIONS
bab2d88d650448628730ed3b65c9f99c52500e8cChristian Maederimport THF.Logic_THF
1f9274bb2aa44ea236327814dce99946be52e348Felix Gabriel Manceimport Fpl.Logic_Fpl
8cacad2a09782249243b80985f28e9387019fe40Christian Maederimport Adl.Logic_Adl
6a2dad705deefd1b7a7e09b84fd2d75f2213be47Christian Maederimport Modal.Logic_Modal
a7c27282e71cf4505026645f96d4f5cb8a284e32Christian Maederimport Hybrid.Logic_Hybrid
363939beade943a02b31004cea09dec34fa8a6d9Christian Maederimport TopHybrid.Logic_TopHybrid
014dc30f64ec25e4790cca987d4d1e6635430510Christian Maederimport ExtModal.Logic_ExtModal
f04e8f3ff56405901be968fd4c6e9769239f1a9bKlaus Luettichimport CoCASL.Logic_CoCASL
6aea82c63ba1d2efc0329bc784a14e521469ec20Christian Maederimport CspCASL.Logic_CspCASL
4ba08bfca0cc8d9da65397b8dfd2654fdb4c0e62Christian Maederimport COL.Logic_COL ()
feca1d35123d8c31aee238c9ce79947b0bf65494Christian Maederimport CASL_DL.Logic_CASL_DL
431d34c7007a787331c4e5ec997badb0f8190fc7Christian Maederimport ConstraintCASL.Logic_ConstraintCASL
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maederimport VSE.Logic_VSE
f5c0884429b01e74c6e658ded921fb2e16dfb478Christian Maeder-- no CASL extension, but omit them as non-essential
db675e8302ddb0d6528088ce68f5e98a00e890e3Christian Maederimport OMDoc.Logic_OMDoc
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maederimport RelationalScheme.Logic_Rel
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maederimport Temporal.Logic_Temporal
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maederimport DFOL.Logic_DFOL
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maederimport LF.Logic_LF
23ffcc44ca8612feccbd8fda63fa5be7ab5f9dc3Christian Maederimport Framework.Logic_Framework
61fa0ac06ede811c7aad54ec4c4202346727368eChristian Maederimport Maude.Logic_Maude
c0c2380bced8159ff0297ece14eba948bd236471Christian Maederimport CommonLogic.Logic_CommonLogic
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maederimport TPTP.Logic_TPTP
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#endif
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#ifndef NOOWLLOGIC
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maederimport DMU.Logic_DMU
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maederimport OWL2.Logic_OWL2
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder#endif
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder#ifdef RDFLOGIC
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maederimport RDF.Logic_RDF
a3c6d8e0670bf2aa71bc8e2a3b1f45d56dd65e4cChristian Maeder#endif
dc679edd4ca027663212afdf00926ae2ce19b555Christian Maederimport Comorphisms.DynLogicList
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder
ca074a78b8dcccbb8c419586787882f98d0c6163Christian MaederlogicList :: [AnyLogic]
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederlogicList =
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder [ Logic CASL
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder , Logic HasCASL
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder , Logic HolLight
4017ebc0f692820736d796af3110c3b3018c108aChristian Maeder , Logic Isabelle
b568982efd0997d877286faa592d81b03c8c67b8Christian Maeder , Logic SoftFOL
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder , Logic Propositional
0be0db405c49906bd7057255069bf6df53395ac9Klaus Luettich , Logic QBF
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder , Logic HolLight
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder , Logic FreeCAD
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder , Logic CSL
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#ifdef PROGRAMATICA
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian Maeder , Logic Haskell
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder#endif
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder#ifdef CASLEXTENSIONS
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder , Logic OMDoc_PUN
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder , Logic THF
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder , Logic Fpl
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder , Logic Adl
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder , Logic CoCASL
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder , Logic ExtModal
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder , Logic Modal
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder , Logic Hybrid
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder , Logic Hybridize
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder , Logic cspCASL
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder , Logic traceCspCASL
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder , Logic failureCspCASL
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder , Logic CASL_DL
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder , Logic ConstraintCASL
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder , Logic VSE
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder , Logic RelScheme
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maeder , Logic Temporal
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder , Logic DFOL
e6d5dbbc3308f05197868806e0b860f4f53875f1Christian Maeder , Logic LF
363939beade943a02b31004cea09dec34fa8a6d9Christian Maeder , Logic Framework
e4f4d096e5e6d60dd91c746d0e833d0ac7a29c50Christian Maeder , Logic Maude
eb74267cf39e4e95f9eeb5c765f4c8dac33971b4Christian Maeder , Logic CommonLogic
eb74267cf39e4e95f9eeb5c765f4c8dac33971b4Christian Maeder , Logic TPTP
e4f4d096e5e6d60dd91c746d0e833d0ac7a29c50Christian Maeder#endif
61fa0ac06ede811c7aad54ec4c4202346727368eChristian Maeder#ifndef NOOWLLOGIC
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder , Logic DMU
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder , Logic OWL2
8d178ae08a52d61379e6b8074f61646499bc88bbChristian Maeder#endif
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder#ifdef RDFLOGIC
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder , Logic RDF
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder#endif
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder , Logic CSMOF
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder , Logic QVTR
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder ] ++ dynLogicList
b2ac5a92cf36382e8deea5661c1964566caf72b3Christian Maeder
ea5432ff6f61c64469b11d9352b23fef4ff152e8Christian MaederaddLogicName :: AnyLogic -> (String, AnyLogic)
b2ac5a92cf36382e8deea5661c1964566caf72b3Christian MaederaddLogicName l@(Logic lid) = (language_name lid, l)
b2ac5a92cf36382e8deea5661c1964566caf72b3Christian Maeder
7d0ee72ee91ec305408688b969c43f07b9667c80Christian MaederdefaultLogic :: AnyLogic
7d0ee72ee91ec305408688b969c43f07b9667c80Christian MaederdefaultLogic = Logic CASL
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder
456238178f89e5a3de2988ee6c8af924297d52d9Christian MaederpreLogicGraph :: LogicGraph
0e5b095a19790411e5352fa7cf57cb0388e70472Christian MaederpreLogicGraph =
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder emptyLogicGraph { logics = Map.fromList $ map addLogicName logicList}
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder