{- | Description : Description logic in CASL notation Copyright : (c) Otto-von-Guericke University of Magdeburg License : GPLv2 or higher, see LICENSE.txt The CASL_DL folder contains the CASL_DL (see <http://www.informatik.uni-bremen.de/~luettich/papers/owl-casl-dl.pdf>) instance of "Logic.Logic". All the data for this instance is assembled in "CASL_DL.Logic_CASL_DL". Note that the data structures reuse the AbstractSyntax of "CASL" where it provides /holes/. /Abstract Syntax/ The additional abstract syntax of CASL_DL basic specifications is provided in "CASL_DL.AS_CASL_DL" as a Haskell algebraic datatype. /Parser/ The additional CASL_DL parser, written with <http://www.cs.uu.nl/people/daan/parsec.html>, is contained in "CASL_DL.Parse_AS". /Printing/ Pretty printing (based on "Common.Lib.Pretty") of CASL_DL basic specifications is provided in "CASL_DL.Print_AS". Pretty printing of signature elements is provided in "CASL_DL.Sign". /Signatures/ The data structures for CASL signatures are contained in "CASL_DL.Sign". CASL_DL sentences are represented as abstract syntax trees of type 'CASL.AS_Basic_CASL.FORMULA' filled with 'CASL_DL.AS_CASL_DL.DL_FORMULA'. In order to understand these data structures, you also should have a look at some of the "Common" modules, providing data structures for identifiers ("Common.Id"), sets ("Common.Lib.Set"), maps ("Common.Lib.Map") and relations ("Common.Lib.Rel"). /Static Analysis/ The main module for static analysis of CASL_DL basic specifications is "CASL_DL.StatAna". The outcome basically is a signature and a set of sentences. It wraps the CASL static analysis in a specific way. "CASL.Overload", "CASL.Inject" and "CASL.Project" deal with subsorting. /Predefined Datatypes/ "CASL_DL.PredefinedDatatypes" is generated from some CASL datatypes defined in CASL_DL\/Datatypes.dol. -} module CASL_DL where