Comorphisms.hs revision 3b48e17c1da54ee669e70b626d9fbc32ce495b2c
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian Maeder{-# LANGUAGE MultiParamTypeClasses, TypeSynonymInstances #-}
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian Maeder{- |
81d182b21020b815887e9057959228546cf61b6bChristian MaederModule : $Header$
62ecb1e7f8fd9573eea8369657de12c7bf9f4f25Christian MaederDescription : generic CspCASL instance for comorphisms
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuCopyright : (c) Liam O'Reilly, Swansea University 2009
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian MaederLicense : GPLv2 or higher, see LICENSE.txt
3f69b6948966979163bdfe8331c38833d5d90ecdChristian Maeder
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian MaederMaintainer : csliam@swansea.ac.uk
fbb66ee3e170624835b99f7aa91980753cb5b472Christian MaederStability : experimental
f3a94a197960e548ecd6520bb768cb0d547457bbChristian MaederPortability : non-portable(import Logic.Logic)
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian Maeder
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian Maeder-}
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian Maeder
0ea85310d2beb8aa03cac481ad2a6564e6b8ddbcChristian Maedermodule CspCASL.Comorphisms where
0ea85310d2beb8aa03cac481ad2a6564e6b8ddbcChristian Maeder
bdce0d5f7e435df37670d3720929d97ab0043b6bChristian Maederimport Logic.Logic
bdce0d5f7e435df37670d3720929d97ab0043b6bChristian Maederimport Logic.Comorphism
bdce0d5f7e435df37670d3720929d97ab0043b6bChristian Maeder
0ea85310d2beb8aa03cac481ad2a6564e6b8ddbcChristian Maeder-- CspCASL
0ea85310d2beb8aa03cac481ad2a6564e6b8ddbcChristian Maederimport CspCASL.AS_CspCASL (CspBasicSpec (..))
66b0bf1e3102c83f5728cf6cfecbd07444276a5fChristian Maederimport CspCASL.Morphism
722e8a91f69209ba0e99bf799c4989801d78cf16Christian Maederimport CspCASL.Logic_CspCASL
0ea85310d2beb8aa03cac481ad2a6564e6b8ddbcChristian Maederimport CspCASL.SignCSP
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian Maederimport CspCASL.SymbItems
72b9099aeec0762bae4546db3bc4b48721027bf4Christian Maederimport CspCASL.Symbol
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian Maeder
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian Maederimport qualified Data.Set as Set
5e26bfc8d7b18cf3a3fa7b919b4450fb669f37a5Christian Maeder
ee9eddfa6953868fd6fbaff0d9ff68675a13675aChristian Maeder-- | The identity of the comorphism
33a5d53a412ba0a4e5847f7538d6da2e22bd116cChristian Maederdata CspCASL2CspCASL a b = CspCASL2CspCASL a b deriving Show
715ffaf874309df081d1e1cd8e05073fc1227729Christian Maeder
72b9099aeec0762bae4546db3bc4b48721027bf4Christian MaedercspCASLTrace :: CspCASL2CspCASL () Trace
72b9099aeec0762bae4546db3bc4b48721027bf4Christian MaedercspCASLTrace = CspCASL2CspCASL () Trace
e774ab5733a1d673b123b0e63b14dd533e6fd4fcChristian Maeder
bbae6e6ca0de7f2ffbb44d2c8da179f2b717237fChristian MaedercspCASLFailure :: CspCASL2CspCASL () Failure
72b9099aeec0762bae4546db3bc4b48721027bf4Christian MaedercspCASLFailure = CspCASL2CspCASL () Failure
72b9099aeec0762bae4546db3bc4b48721027bf4Christian Maeder
72b9099aeec0762bae4546db3bc4b48721027bf4Christian Maederinstance (Show a, Show b) => Language (CspCASL2CspCASL a b) where
72b9099aeec0762bae4546db3bc4b48721027bf4Christian Maeder language_name (CspCASL2CspCASL a b) =
72b9099aeec0762bae4546db3bc4b48721027bf4Christian Maeder language_name (GenCspCASL a)
72b9099aeec0762bae4546db3bc4b48721027bf4Christian Maeder ++ "2" ++ language_name (GenCspCASL b)
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian Maeder
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian Maederinstance (CspCASLSemantics a, CspCASLSemantics b)
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian Maeder => Comorphism (CspCASL2CspCASL a b)
62ecb1e7f8fd9573eea8369657de12c7bf9f4f25Christian Maeder (GenCspCASL a) ()
66b0bf1e3102c83f5728cf6cfecbd07444276a5fChristian Maeder CspBasicSpec CspCASLSen SymbItems SymbMapItems
66b0bf1e3102c83f5728cf6cfecbd07444276a5fChristian Maeder CspCASLSign CspCASLMorphism CspSymbol CspRawSymbol ()
66b0bf1e3102c83f5728cf6cfecbd07444276a5fChristian Maeder (GenCspCASL b) ()
42c01284bba8d7c8d995c8dfb96ace57d28ed1bcTill Mossakowski CspBasicSpec CspCASLSen SymbItems SymbMapItems
2bf209888545860dc77b9c3f2198d00eeab30d20Christian Maeder CspCASLSign CspCASLMorphism CspSymbol CspRawSymbol () where
66b0bf1e3102c83f5728cf6cfecbd07444276a5fChristian Maeder sourceLogic (CspCASL2CspCASL a _) = GenCspCASL a
715ffaf874309df081d1e1cd8e05073fc1227729Christian Maeder sourceSublogic _ = ()
715ffaf874309df081d1e1cd8e05073fc1227729Christian Maeder targetLogic (CspCASL2CspCASL _ b) = GenCspCASL b
66b0bf1e3102c83f5728cf6cfecbd07444276a5fChristian Maeder mapSublogic _ _ = Just ()
715ffaf874309df081d1e1cd8e05073fc1227729Christian Maeder map_theory _ = return
60303deac79adb97a71e55a4d66f95f26688f05aChristian Maeder map_morphism _ = return
2bf209888545860dc77b9c3f2198d00eeab30d20Christian Maeder map_sentence _ = const return
60303deac79adb97a71e55a4d66f95f26688f05aChristian Maeder map_symbol _ _ = Set.singleton
60303deac79adb97a71e55a4d66f95f26688f05aChristian Maeder is_model_transportable _ = True
715ffaf874309df081d1e1cd8e05073fc1227729Christian Maeder has_model_expansion _ = True
60303deac79adb97a71e55a4d66f95f26688f05aChristian Maeder is_weakly_amalgamable _ = True
66b0bf1e3102c83f5728cf6cfecbd07444276a5fChristian Maeder isInclusionComorphism _ = True
66b0bf1e3102c83f5728cf6cfecbd07444276a5fChristian Maeder