root/trunk/Comorphisms/CASL2CspCASL.hs @ 11216

Revision 11216, 2.3 kB (checked in by maeder, 11 months ago)

extended symbol kinds i.e. for CspCASL

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1{- |
2Module      :  $Header$
3Copyright   :  (c) Till Mossakowski and Uni Bremen 2003
4License     :  similar to LGPL, see HetCATS/LICENSE.txt or LIZENZ.txt
5
6Maintainer  :  M.Roggenbach@swansea.ac.uk
7Stability   :  provisional
8Portability :  non-portable (imports Logic.Logic)
9
10The embedding comorphism from CASL to CspCASL.
11-}
12
13module Comorphisms.CASL2CspCASL where
14
15import Logic.Logic
16import Logic.Comorphism
17import Common.ProofTree
18
19-- CASL
20import CASL.Logic_CASL
21import CASL.Sublogic as SL
22import CASL.Sign
23import CASL.AS_Basic_CASL
24import CASL.Morphism
25
26-- CspCASL
27import CspCASL.Logic_CspCASL
28import CspCASL.AS_CspCASL (CspBasicSpec (..))
29import CspCASL.SignCSP
30
31-- | The identity of the comorphism
32data CASL2CspCASL = CASL2CspCASL deriving (Show)
33
34instance Language CASL2CspCASL -- default definition is okay
35
36instance Comorphism CASL2CspCASL
37               CASL CASL_Sublogics
38               CASLBasicSpec CASLFORMULA SYMB_ITEMS SYMB_MAP_ITEMS
39               CASLSign
40               CASLMor
41               Symbol RawSymbol ProofTree
42               CspCASL ()
43               CspBasicSpec CspCASLSen SYMB_ITEMS SYMB_MAP_ITEMS
44               CspCASLSign
45               CspMorphism
46               Symbol RawSymbol () where
47    sourceLogic CASL2CspCASL = CASL
48    sourceSublogic CASL2CspCASL = SL.top
49    targetLogic CASL2CspCASL = CspCASL
50    mapSublogic CASL2CspCASL _ = Just ()
51    map_theory CASL2CspCASL = return . simpleTheoryMapping mapSig mapSen
52    map_morphism CASL2CspCASL = return . mapMor
53    map_sentence CASL2CspCASL _sig = return . mapSen -- toSentence sig
54    -- this function has now the error implementation as default
55    -- map_symbol = errMapSymbol -- Set.singleton . mapSym
56    has_model_expansion CASL2CspCASL = True
57    is_weakly_amalgamable CASL2CspCASL = True
58    isInclusionComorphism CASL2CspCASL = True
59
60mapSig :: CASLSign -> CspCASLSign
61mapSig sign =
62     (emptySign emptyCspSign) {sortSet = sortSet sign
63               , sortRel = sortRel sign
64               , opMap = opMap sign
65               , assocOps = assocOps sign
66               , predMap = predMap sign }
67
68mapMor :: CASLMor -> CspMorphism
69mapMor m =
70  (embedMorphism emptyCspAddMorphism (mapSig $ msource m) $ mapSig $ mtarget m)
71  { sort_map = sort_map m
72  , op_map = op_map m
73  , pred_map = pred_map m }
74
75mapSen :: CASLFORMULA -> CspCASLSen
76mapSen _ = emptyCCSen
Note: See TracBrowser for help on using the browser.