5693N/ADescription : Instance of class Logic for Modal CASL
5693N/ACopyright : (c) Till Mossakowski, Uni Bremen 2002-2004
5693N/AMaintainer : luecke@informatik.uni-bremen.de
5693N/AInstance of class Logic for modal logic.
5693N/Adata Modal = Modal deriving Show
5693N/Ainstance Language Modal where
5693N/A [ "ModalCASL extends CASL by modal operators. Syntax for ordinary"
5693N/A , "modalities, multi-modal logics as well as term-modal"
5693N/A , "logic (also covering dynamic logic) is provided."
5693N/A , "Specific modal logics can be obtained via restrictions to"
5693N/Atype MSign = Sign M_FORMULA ModalSign
5693N/Atype ModalMor = Morphism M_FORMULA ModalSign ()
5693N/Atype ModalFORMULA = FORMULA M_FORMULA
5693N/Ainstance SignExtension ModalSign where
5693N/A isSubSignExtension = isSubModalSign
5693N/Ainstance Syntax Modal M_BASIC_SPEC SYMB_ITEMS SYMB_MAP_ITEMS where
5693N/A parse_basic_spec Modal = Just $ basicSpec modal_reserved_words
5693N/A parse_symb_items Modal = Just $ symbItems modal_reserved_words
5693N/A parse_symb_map_items Modal = Just $ symbMapItems modal_reserved_words
5693N/Amap_M_FORMULA :: MapSen M_FORMULA ModalSign ()
5693N/Amap_M_FORMULA mor (BoxOrDiamond b m f ps) =
5693N/A Term_mod t -> let newT = mapTerm map_M_FORMULA mor t
5693N/A newF = mapSen map_M_FORMULA mor f
5693N/A in BoxOrDiamond b newM newF ps
5693N/Ainstance Sentences Modal ModalFORMULA MSign ModalMor Symbol where
5693N/A map_sen Modal m = return . mapSen map_M_FORMULA m
5693N/A parse_sentence Modal = Nothing
5693N/A symmap_of Modal = morphismToSymbMap
5693N/A simplify_sen Modal = simplifySen minExpForm simModal
5693N/A print_sign Modal sig = printSign pretty
5693N/A (printModalSign $ simplifySen minExpForm simModal sig) sig
5693N/A-- simplifySen for ExtFORMULA
5693N/AsimModal :: Sign M_FORMULA ModalSign -> M_FORMULA -> M_FORMULA
5693N/AsimModal sign (BoxOrDiamond b md form pos) =
5693N/A Term_mod term -> Term_mod $ rmTypesT minExpForm
5693N/A (simplifySen minExpForm simModal sign form) pos
5693N/Ainstance StaticAnalysis Modal M_BASIC_SPEC ModalFORMULA
5693N/A basic_analysis Modal = Just $ basicModalAnalysis
5693N/A stat_symb_map_items Modal = statSymbMapItems
5693N/A stat_symb_items Modal = statSymbItems
5693N/A symbol_to_raw Modal = symbolToRaw
5693N/A empty_signature Modal = emptySign emptyModalSign
5693N/A signature_union Modal s = return . addSig addModalSign s
5693N/A intersection Modal s = return . interSig interModalSign s
5693N/A morphism_union Modal = morphismUnion (const id) addModalSign
5693N/A final_union Modal = finalUnion addModalSign
5693N/A inclusion Modal = sigInclusion () isSubModalSign diffModalSign
5693N/A cogenerated_sign Modal = cogeneratedSign () isSubModalSign
5693N/A generated_sign Modal = generatedSign () isSubModalSign
5693N/A induced_from_morphism Modal = inducedFromMorphism () isSubModalSign
5693N/A induced_from_to_morphism Modal =
5693N/A inducedFromToMorphism () isSubModalSign diffModalSign
5693N/A theory_to_taxonomy Modal = convTaxo
5693N/A M_BASIC_SPEC ModalFORMULA SYMB_ITEMS SYMB_MAP_ITEMS