Sublogics.hs revision 1b3a2f98d1cd01fc9e0591f69507e20526727559
25cc5fbba63f84b47e389af749f55abbbde71c8cChristian MaederModule : $Header$
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederDescription : sublogic analysis for CASL_DL
25cc5fbba63f84b47e389af749f55abbbde71c8cChristian MaederCopyright : (c) Dominik Luecke 2008
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederLicense : similar to LGPL, see HetCATS/LICENSE.txt or LIZENZ.txt
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederMaintainer : luecke@informatik.uni-bremen.de
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederStability : experimental
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederPortability : portable
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederSublogic analysis for CASL_DL
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian MaederThis module provides the sublogic functions (as required by Logic.hs)
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder for CASL_DL. The functions allow to compute the minimal sublogics needed
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder by a given element, to check whether an item is part of a given
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder sublogic, and to project an element into a given sublogic.
83394c6b6e6de128e71b67c9251ed7a84485d082Christian Maeder , CASL_DL_SL(..)
ac0bbbcb2774629bb87986e69cf53d3402c5f575Christian Maederimport qualified CASL.Sign as CS
2e2094a642e3775b0d76b890556407941d3a53b6Christian Maederclass (Ord l, Show l) => Lattice l where
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder cjoin :: l -> l -> l
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maederinstance Lattice () where
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder cjoin _ _ = ()
4d56f2fa72e4aec20eb827c11ed49c8cbb7014bdChristian Maederinstance Lattice Bool where
57a2436f9d44e37042498a3b3dfacd301d91bb6dChristian Maederdata CASL_DL_SL = SROIQ
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maeder deriving (Ord,Eq)
d4892fa7401ceef014ea59d2d900773eaf88fcbdChristian Maederinstance Show CASL_DL_SL where
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maeder show SROIQ = "SROIQ"
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maederinstance Sublogics CASL_DL_SL where
eee4b2ee739f163e09d6af6e45c025681e6c01a0Christian Maeder sublogic_names SROIQ = ["SROIQ"]
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maederinstance SemiLatticeWithTop CASL_DL_SL where
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder join _ _ = SROIQ
8d97ef4f234681b11bb5924bd4d03adef858d2d2Christian Maederinstance ProjectSublogic CASL_DL_SL CS.Symbol where
8d97ef4f234681b11bb5924bd4d03adef858d2d2Christian Maeder projectSublogic _ i = i
e593b89bfd4952698dc37feced21cefe869d87a2Christian Maederinstance ProjectSublogicM CASL_DL_SL CS.Symbol where
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder projectSublogicM _ i = Just $ i
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maederinstance MinSublogic CASL_DL_SL CS.Symbol where
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder minSublogic _ = SROIQ