{-# LANGUAGE DeriveDataTypeable #-} {- | Module : ./CASL_DL/Sublogics.hs Description : sublogic analysis for CASL_DL Copyright : (c) Dominik Luecke 2008 License : GPLv2 or higher, see LICENSE.txt Maintainer : luecke@informatik.uni-bremen.de Stability : experimental Portability : portable Sublogic analysis for CASL_DL This module provides the sublogic functions (as required by Logic.hs) for CASL_DL. The functions allow to compute the minimal sublogics needed by a given element, to check whether an item is part of a given sublogic, and to project an element into a given sublogic. -} module CASL_DL.Sublogics where import Data.Data data CASL_DL_SL = SROIQ deriving (CASL_DL_SL -> CASL_DL_SL -> Bool (CASL_DL_SL -> CASL_DL_SL -> Bool) -> (CASL_DL_SL -> CASL_DL_SL -> Bool) -> Eq CASL_DL_SL forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CASL_DL_SL -> CASL_DL_SL -> Bool $c/= :: CASL_DL_SL -> CASL_DL_SL -> Bool == :: CASL_DL_SL -> CASL_DL_SL -> Bool $c== :: CASL_DL_SL -> CASL_DL_SL -> Bool Eq, Eq CASL_DL_SL Eq CASL_DL_SL => (CASL_DL_SL -> CASL_DL_SL -> Ordering) -> (CASL_DL_SL -> CASL_DL_SL -> Bool) -> (CASL_DL_SL -> CASL_DL_SL -> Bool) -> (CASL_DL_SL -> CASL_DL_SL -> Bool) -> (CASL_DL_SL -> CASL_DL_SL -> Bool) -> (CASL_DL_SL -> CASL_DL_SL -> CASL_DL_SL) -> (CASL_DL_SL -> CASL_DL_SL -> CASL_DL_SL) -> Ord CASL_DL_SL CASL_DL_SL -> CASL_DL_SL -> Bool CASL_DL_SL -> CASL_DL_SL -> Ordering CASL_DL_SL -> CASL_DL_SL -> CASL_DL_SL forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: CASL_DL_SL -> CASL_DL_SL -> CASL_DL_SL $cmin :: CASL_DL_SL -> CASL_DL_SL -> CASL_DL_SL max :: CASL_DL_SL -> CASL_DL_SL -> CASL_DL_SL $cmax :: CASL_DL_SL -> CASL_DL_SL -> CASL_DL_SL >= :: CASL_DL_SL -> CASL_DL_SL -> Bool $c>= :: CASL_DL_SL -> CASL_DL_SL -> Bool > :: CASL_DL_SL -> CASL_DL_SL -> Bool $c> :: CASL_DL_SL -> CASL_DL_SL -> Bool <= :: CASL_DL_SL -> CASL_DL_SL -> Bool $c<= :: CASL_DL_SL -> CASL_DL_SL -> Bool < :: CASL_DL_SL -> CASL_DL_SL -> Bool $c< :: CASL_DL_SL -> CASL_DL_SL -> Bool compare :: CASL_DL_SL -> CASL_DL_SL -> Ordering $ccompare :: CASL_DL_SL -> CASL_DL_SL -> Ordering $cp1Ord :: Eq CASL_DL_SL Ord, Typeable, Typeable CASL_DL_SL Constr DataType Typeable CASL_DL_SL => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CASL_DL_SL -> c CASL_DL_SL) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CASL_DL_SL) -> (CASL_DL_SL -> Constr) -> (CASL_DL_SL -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CASL_DL_SL)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CASL_DL_SL)) -> ((forall b. Data b => b -> b) -> CASL_DL_SL -> CASL_DL_SL) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CASL_DL_SL -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CASL_DL_SL -> r) -> (forall u. (forall d. Data d => d -> u) -> CASL_DL_SL -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> CASL_DL_SL -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL) -> Data CASL_DL_SL CASL_DL_SL -> Constr CASL_DL_SL -> DataType (forall b. Data b => b -> b) -> CASL_DL_SL -> CASL_DL_SL (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CASL_DL_SL -> c CASL_DL_SL (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CASL_DL_SL forall a. Typeable a => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a) -> (a -> Constr) -> (a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c a)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)) -> ((forall b. Data b => b -> b) -> a -> a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall u. (forall d. Data d => d -> u) -> a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> Data a forall u. Int -> (forall d. Data d => d -> u) -> CASL_DL_SL -> u forall u. (forall d. Data d => d -> u) -> CASL_DL_SL -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CASL_DL_SL -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CASL_DL_SL -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CASL_DL_SL forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CASL_DL_SL -> c CASL_DL_SL forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CASL_DL_SL) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CASL_DL_SL) $cSROIQ :: Constr $tCASL_DL_SL :: DataType gmapMo :: (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL $cgmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL gmapMp :: (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL $cgmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL gmapM :: (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL $cgmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> CASL_DL_SL -> m CASL_DL_SL gmapQi :: Int -> (forall d. Data d => d -> u) -> CASL_DL_SL -> u $cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> CASL_DL_SL -> u gmapQ :: (forall d. Data d => d -> u) -> CASL_DL_SL -> [u] $cgmapQ :: forall u. (forall d. Data d => d -> u) -> CASL_DL_SL -> [u] gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CASL_DL_SL -> r $cgmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CASL_DL_SL -> r gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CASL_DL_SL -> r $cgmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CASL_DL_SL -> r gmapT :: (forall b. Data b => b -> b) -> CASL_DL_SL -> CASL_DL_SL $cgmapT :: (forall b. Data b => b -> b) -> CASL_DL_SL -> CASL_DL_SL dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CASL_DL_SL) $cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CASL_DL_SL) dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c CASL_DL_SL) $cdataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CASL_DL_SL) dataTypeOf :: CASL_DL_SL -> DataType $cdataTypeOf :: CASL_DL_SL -> DataType toConstr :: CASL_DL_SL -> Constr $ctoConstr :: CASL_DL_SL -> Constr gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CASL_DL_SL $cgunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CASL_DL_SL gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CASL_DL_SL -> c CASL_DL_SL $cgfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CASL_DL_SL -> c CASL_DL_SL $cp1Data :: Typeable CASL_DL_SL Data) instance Show CASL_DL_SL where show :: CASL_DL_SL -> String show SROIQ = "SROIQ"