Logic_HasCASL.hs revision fd896e2068ad7e50aed66ac18c3720ea7ff2619f
1a38107941725211e7c3f051f7a8f5e12199f03acmaeder-- {-# OPTIONS -fno-warn-missing-methods #-}
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens ElknerModule : $Header$
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyCopyright : (c) Christian Maeder and Uni Bremen 2003
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyLicence : All rights reserved.
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyMaintainer : hets@tzi.de
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyStability : experimental
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyPortability : non-portable (imports Logic.Logic)
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'Reilly Here is the place where the class Logic is instantiated for HasCASL.
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reilly Also the instances for Syntax an Category.
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reilly - writing real functions
648fe1220044aac847acbdfbc4155af5556063ebChristian Maederimport Common.AnnoState(emptyAnnos)
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reillytype HasCASL_Sublogics = ()
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reilly-- a dummy datatype for the LogicGraph and for identifying the right
7830e8fa7442fb7452af7ecdba102bc297ae367eChristian Maederdata HasCASL = HasCASL deriving (Show)
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reillyinstance Language HasCASL -- default definition is okay
036ecbd8f721096321f47cf6a354a9d1bf3d032fChristian MaederbasicSpecTc, envTc, termTc, morphismTc, symbolTc, rawSymbolTc, symbItemsTc
aa4d26536fffe0153cd81d28925985892ac2f300Christian Maeder , symbMapItemsTc :: TyCon
2a5b885d9350ec6dd8bc4992ee91d2f68aa592f4Christian MaederbasicSpecTc = mkTyCon "HasCASL.BasicSpec"
f21c7417bdd1c0282025cba0f5cb0ff5bc5c98eeLiam O'ReillyenvTc = mkTyCon "HasCASL.Env"
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillytermTc = mkTyCon "HasCASL.Term"
b1f12c962a6fb28a298b36cf6a1dcf2ad788fb58Christian MaedermorphismTc = mkTyCon "HasCASL.Morphism"
b1f12c962a6fb28a298b36cf6a1dcf2ad788fb58Christian MaedersymbolTc = mkTyCon "HasCASL.Symbol"
1a38107941725211e7c3f051f7a8f5e12199f03acmaederrawSymbolTc = mkTyCon "HasCASL.RawSymbol"
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillysymbItemsTc = mkTyCon "HasCASL.SymbItems"
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillysymbMapItemsTc = mkTyCon "HasCASL.SymbMapItems"
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reillyinstance Typeable BasicSpec where
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reilly typeOf _ = mkAppTy basicSpecTc []
9e5f4073e948104307d43c3962d624b8416f191fLiam O'Reillyinstance Typeable Env where
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder typeOf _ = mkAppTy envTc []
648fe1220044aac847acbdfbc4155af5556063ebChristian Maederinstance Typeable Term where
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder typeOf _ = mkAppTy termTc []
648fe1220044aac847acbdfbc4155af5556063ebChristian Maederinstance Typeable Morphism where
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder typeOf _ = mkAppTy morphismTc []
648fe1220044aac847acbdfbc4155af5556063ebChristian Maederinstance Typeable Symbol where
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder typeOf _ = mkAppTy symbolTc []
648fe1220044aac847acbdfbc4155af5556063ebChristian Maederinstance Typeable RawSymbol where
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder typeOf _ = mkAppTy rawSymbolTc []
648fe1220044aac847acbdfbc4155af5556063ebChristian Maederinstance Typeable SymbItems where
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder typeOf _ = mkAppTy symbItemsTc []
ebd23ec61635b0bebf7969d14f65b9d1e39f2b26Liam O'Reillyinstance Typeable SymbMapItems where
d5833d2ee7bafcbf2fdd2bdfd9a728c769b100c7Christian Maeder typeOf _ = mkAppTy symbMapItemsTc []
9aeda2b3ae8ce0b018955521e4ca835a8ba8a27bLiam O'Reilly-- abstract syntax, parsing (and printing)
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reillyinstance Syntax HasCASL BasicSpec
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder SymbItems SymbMapItems
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder parse_basic_spec HasCASL = Just(toParseFun basicSpec emptyAnnos)
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder parse_symb_items HasCASL = Just(toParseFun symbItems emptyAnnos)
d5833d2ee7bafcbf2fdd2bdfd9a728c769b100c7Christian Maeder parse_symb_map_items HasCASL = Just(toParseFun symbMapItems
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reillyinstance Category HasCASL Env Morphism where
fa373bc327620e08861294716b4454be8d25669fChristian Maeder ide HasCASL e = ideMor e
fa373bc327620e08861294716b4454be8d25669fChristian Maeder comp HasCASL m1 m2 = Just $ compMor m1 m2
fa373bc327620e08861294716b4454be8d25669fChristian Maeder dom HasCASL m = msource m
fa373bc327620e08861294716b4454be8d25669fChristian Maeder cod HasCASL m = mtarget m
fa373bc327620e08861294716b4454be8d25669fChristian Maeder legal_obj HasCASL e = legalEnv e
fa373bc327620e08861294716b4454be8d25669fChristian Maeder legal_mor HasCASL m = legalMor m
fa373bc327620e08861294716b4454be8d25669fChristian Maederinstance Sentences HasCASL Term () Env Morphism Symbol
fa373bc327620e08861294716b4454be8d25669fChristian Maederinstance StaticAnalysis HasCASL BasicSpec Term ()
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder SymbItems SymbMapItems
e8d99f05c231b379be702a1aa8c7dd0b3c666928Liam O'Reilly Symbol RawSymbol where
e8d99f05c231b379be702a1aa8c7dd0b3c666928Liam O'Reilly basic_analysis HasCASL = Just ( \ (b, e, ga) ->
7857a35e3af533dfbd0f0e18638ebd211e6358a0Christian Maeder let (nb, ne) = runState (anaBasicSpec ga b) e
7857a35e3af533dfbd0f0e18638ebd211e6358a0Christian Maeder in Result (reverse (envDiags ne)) $
9aeda2b3ae8ce0b018955521e4ca835a8ba8a27bLiam O'Reilly Just (nb, initialEnv, ne, sentences ne))
e7cd36335f0f7be9ed5005e71d94c2856b588d62Christian Maeder signature_union HasCASL = merge
e7cd36335f0f7be9ed5005e71d94c2856b588d62Christian Maeder empty_signature HasCASL = initialEnv
e7cd36335f0f7be9ed5005e71d94c2856b588d62Christian Maeder induced_from_to_morphism HasCASL _ e1 e2 = return $ mkMorphism e1 e2
e7cd36335f0f7be9ed5005e71d94c2856b588d62Christian Maeder induced_from_morphism HasCASL _ e = return $ ideMor e
e8d99f05c231b379be702a1aa8c7dd0b3c666928Liam O'Reilly morphism_union HasCASL m1 m2 = morphismUnion m1 m2
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder cogenerated_sign HasCASL _ e = return $ ideMor e
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder stat_symb_map_items HasCASL = statSymbMapItems
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder stat_symb_items HasCASL = statSymbItems
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder symbol_to_raw HasCASL = symbolToRaw
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder id_to_raw HasCASL = idToRaw
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder matches HasCASL = matchSymb
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder sym_name HasCASL = symName
648fe1220044aac847acbdfbc4155af5556063ebChristian Maederinstance Logic HasCASL HasCASL_Sublogics
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder BasicSpec Term SymbItems SymbMapItems
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder Symbol RawSymbol ()