Symbol.hs revision 5ad5dffe06818a13e1632b1119fbca7881085fc1
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder{-# OPTIONS -fallow-undecidable-instances #-}
456238178f89e5a3de2988ee6c8af924297d52d9Christian MaederModule : $Header$
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederDescription : Instance of class Logic for propositional logic
456238178f89e5a3de2988ee6c8af924297d52d9Christian MaederCopyright : (c) Dominik Luecke, Uni Bremen 2007
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederLicense : similar to LGPL, see HetCATS/LICENSE.txt or LIZENZ.txt
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederMaintainer : luecke@tzi.de
43b4c41fbb07705c9df321221ab9cb9832460407Christian MaederStability : experimental
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederPortability : portable
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian MaederDefinition of symbols for propositional logic
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder Symbol (..) -- Symbol type
a1ed34933c266ce85066acb0d7b20c90cb8eb213Christian Maeder , pretty -- pretty printing for Symbols
c0c2380bced8159ff0297ece14eba948bd236471Christian Maeder , symOf -- Extracts the symbols out of a signature
8ef75f1cc0437656bf622cec5ac9e8ea221da8f2Christian Maederimport qualified Data.Set as Set
74eed04be26f549d2f7ca35c370e1c03879b28b1Christian Maeder-- | Datatype for symbols
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maederdata Symbol = Symbol {symName :: Common.Id.Id}
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder deriving (Show, Eq, Ord)
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maederinstance Pretty Symbol where
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maeder pretty = printSymbol
e593b89bfd4952698dc37feced21cefe869d87a2Christian MaederprintSymbol :: Symbol -> Doc
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederprintSymbol x = idDoc $ symName x
7cc09dd93962a2155c34d209d1d4cd7d7b838264Christian Maeder-- | Extraction of symbols from a signature
1aee4aaddde105264c1faf394d88e302c05094ffChristian MaedersymOf :: Sign -> Set.Set Symbol
1aee4aaddde105264c1faf394d88e302c05094ffChristian MaedersymOf x = foldr (\y -> Set.insert $ Symbol {symName = y}) Set.empty $