Hets - the Heterogeneous Tool Set
Hets is the main analysis tool for the specification language heterogeneous CASL. Heterogeneous CASL (HetCASL, see http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/HetCASL/index_e.htm) combines the specification language CASL with CASL extensions and sublanguages, as well as completely different logics and even programming languages such as Haskell, including its module system. Hets provides parsing, static analysis and proof management (via development graphs), as well as many other functionalities. Hets is written in Haskell (see http://www.haskell.org and http://trac.informatik.uni-bremen.de:8080/hets/wiki/HetsForDevelopers)
The general background of Hets is explained in /Heterogeneous specification and the heterogeneous tool set/ (http://www.informatik.uni-bremen.de/~till/papers/habil.ps). A short introduction is given in http://www.informatik.uni-bremen.de/~till/papers/hets-tacas.pdf.
The Hets modules are grouped using hierarchical modules (where modules can be grouped into folders); we here only discuss the top view on this hierarchy. For a more details, look at the descriptions of the folders or the individual modules.
The folder Logic contains the infrastructure needed for presenting a logic to Hets. This is complemented by folders working at the heterogeneous level --- the code in modules in these folders is parameterized over an arbitrary but fixed logic graph. Existential types are used for implementing the heterogeneity, see http://haskell.org/haskellwiki/Existential_type. The folder Syntax (see Syntax.ADoc) provides abstract syntax and parsing of heterogeneous structured specifications. Static is for the static analysis, based on the verification static semantics for Heterogeneous CASL. Static.DevGraph contains the data structures for heterogeneous development graphs, including proof management. Finally, the folder Proofs contains an implementation of the proof calculus for heterogeneous development graphs.
The folders CASL, CoCASL, HasCASL,
Haskell, CspCASL, Modal, Isabelle
contain different instances of the type class Logic of the
module Logic.Logic. These instances always are contained in
a module named Logic_xxx, where xxx is the name of
the language at hand. Since the integration of a new logic into Hets
requires writing a new instantiation of the type class Logic,
it is advisable to consult the module Logic_xxx (and the modules
imported there) for some logic that is in some sense similar to the new
logic to be integrated.
In particular, we have
implemented the CASL logic in such a way that much of the folder
CASL can be re-used for CASL extensions as well; this is
achieved via holes (realized via polymorphic variables) in the
types for signatures, morphisms, abstract syntax etc. This eases
integration of CASL extensions and keeps the effort quite moderate.
The folder Comorphisms contains various comorphisms and other translations that constitute the logic graph. Note that these modules can be compiled independently of the logic independent heterogeneous modules listed above. The module Comorphisms.LogicList assembles all the logics into one (heterogeneous) list, while Comorphisms.LogicGraph builds up the logic graph, i.e. it assembles all the (co)morphisms among the logics, and also specifies which ones are standard inclusions. This module also provides a partial union for logics, which is crucial for the static analysis of unions of specifications (which may occur explicitly or implicitly).
Last but not least, there are general purpose folders. The most important one is the folder Common. It contains general purpose libraries, e.g. for relations, and for parsing and pretty printing. Common.Result provides a monad for error handling and error messages that is used at many places throughout Hets.
The folder ATC is for conversion from and to shared ATerms http://hackage.haskell.org/package/aterm. The utils folder contains tools like DriFT.
The command line interface is contained in Driver, the graphical interface in GUI. The latter is based on the UniForM Workbench that provides an event system and encapsulations of TclTk http://www.informatik.uni-bremen.de/htk/ and uDraw(Graph) http://www.informatik.uni-bremen.de/uDrawGraph/en/index.html, http://hackage.haskell.org/package/uni-uDrawGraph.
Hets is also based on the following third-party libraries:
- expat for fast XML parsing, see http://hackage.haskell.org/package/hexpat
- The combinator parser library Parsec, see http://www.haskell.org/haskellwiki/Parsec, http://hackage.haskell.org/package/parsec1 and Propositional.Parse_AS_Basic for a sample use
- finite sets and maps, see http://hackage.haskell.org/package/containers
- finite graphs from the functional graph library (fgl), see http://web.engr.oregonstate.edu/~erwig/fgl/haskell/ and http://hackage.haskell.org/package/fgl
- the xml light package, see http://hackage.haskell.org/package/xml
Visit Driver.Version for the date of this documentation.
Modules
- ATCshared ATerm conversion instances
- ATC.AS_Annotationgenerated Typeable, ShATermConvertible instances
- ATC.AS_Architecturegenerated Typeable, ShATermLG instances
- ATC.AS_Librarygenerated Typeable, ShATermLG instances
- ATC.AS_Structuredgenerated Typeable, ShATermLG instances
- ATC.Consistencygenerated Typeable, ShATermConvertible instances
- ATC.DefaultMorphismgenerated Typeable, ShATermConvertible instances
- ATC.DevGraphgenerated Typeable, ShATermLG instances
- ATC.DgUtilsgenerated Typeable, ShATermLG instances
- ATC.ExtSigngenerated Typeable, ShATermConvertible instances
- ATC.GlobalAnnotationsgenerated Typeable, ShATermConvertible instances
- ATC.Graphgenerated Typeable, ShATermConvertible instances
- ATC.Grothendieckmanually created ShATermConvertible instances
- ATC.IRIgenerated Typeable, ShATermConvertible instances
- ATC.Idgenerated Typeable, ShATermConvertible instances
- ATC.LibNamegenerated Typeable, ShATermConvertible instances
- ATC.OrderedMapgenerated Typeable, ShATermConvertible instances
- ATC.ProofTreegenerated Typeable, ShATermConvertible instances
- ATC.Provergenerated Typeable, ShATermConvertible instances
- ATC.Resultgenerated Typeable, ShATermConvertible instances
- ATC.Sml_catsconversions to and from old SML aterm format
- ATC.XGraphgenerated Typeable, ShATermLG instances
- Adl
- Adl.ATC_Adlgenerated Typeable, ShATermConvertible instances
- Adl.Asabstract ADL syntax
- Adl.Logic_Adlthe Logic instance for ADL
- Adl.ParseADL syntax parser
- Adl.Printpretty printing ADL syntax
- Adl.SignADL signature and sentences
- Adl.StatAnastatic ADL analysis
- CASLbasics of the common algebraic specification language
- CASL.AS_Basic_CASLAbstract syntax of CASL basic specifications
- CASL.ATC_CASLgenerated Typeable, ShATermConvertible instances
- CASL.AmalgamabilityAmalgamability analysis for CASL.
- CCC
- CASL.CCC.FreeTypesconsistency checking of free types
- CASL.CCC.OnePointCheck for truth in one-point model
- CASL.CCC.TermFormulaauxiliary functions on terms and formulas
- CASL.CCC.TerminationProoftermination proofs for equation systems, using AProVE
- CASL.ColimSignCASL signatures colimits
- CompositionTable
- CASL.CompositionTable.CompositionTablecomposition tables of qualitative calculi
- CASL.CompositionTable.ComputeTableCompute the composition table of a relational algebra
- CASL.CompositionTable.ModelCheckerchecks validity of models regarding a composition table
- CASL.CompositionTable.ParseSparQparsing SparQ CompositionTables
- CASL.CompositionTable.ToXmlXML output for composition tables of qualitative calculi
- CASL.Foldfolding functions for CASL terms and formulas
- CASL.FormulaParser for CASL terms and formulae
- CASL.FreenessComputation of the constraints needed for free definition links.
- CASL.InductionDerive induction schemes from sort generation constraints
- CASL.InjectReplace Sorted_term(s) with explicit injection functions.
- CASL.Logic_CASLInstance of class Logic for the CASL logic
- CASL.MapSentencerename symbols of sentences according to a signature morphisms
- CASL.MixfixParserMixfix analysis of terms
- CASL.Monotonmonotonicities of the overload relation
- CASL.MorphismSymbols and signature morphisms for the CASL logic
- CASL.OMDocCASL specific OMDoc constants
- CASL.OMDocExportCASL-to-OMDoc conversion
- CASL.OMDocImportOMDoc-to-CASL conversion
- CASL.OpItemParser for OP-ITEMs (operation declarations and definitions)
- CASL.OverloadOverload resolution
- CASL.Parse_AS_BasicParsing CASL's SIG-ITEMS, BASIC-ITEMS and BASIC-SPEC
- CASL.Projectreplace casts with explicit projection functions
- CASL.QualifyCode out overloading and qualify all names
- CASL.QuantificationFree variables; getting rid of superfluous quantifications
- CASL.QuickCheckQuickCheck model checker for CASL.CFOL
- CASL.ShowMixfixuniquely show mixfix terms with sufficient parenthesis
- CASL.SignCASL signatures and local environments for basic analysis
- CASL.Simplifyresolve empty conjunctions and other trivial cases
- CASL.SimplifySensimplification of formulas and terms for output after analysis
- CASL.SortItemparser for SORT-ITEMs
- CASL.StaticAnaCASL static analysis for basic specifications
- CASL.Sublogicsublogic analysis for CASL
- CASL.SymbolMapAnalysissymbol map analysis for the CASL logic.
- CASL.SymbolParserParser for symbols in translations and reductions
- CASL.Taxonomyconverters for theories to MMiSSOntology (subsorting and concept taxonomies)
- CASL.ToDocpretty printing data types of BASIC_SPEC
- CASL.ToItemextracted annotated items as strings from BASIC_SPEC
- CASL.ToSExprtranslate CASL to S-Expressions
- CASL.UtilsUtilities for CASL and its comorphisms
- CASL_DL
- CASL_DL.AS_CASL_DLabstract syntax for CASL_DL logic extension of CASL
- CASL_DL.ATC_CASL_DLgenerated Typeable, ShATermConvertible instances
- CASL_DL.Logic_CASL_DLInstance of class Logic for CASL DL
- CASL_DL.Parse_ASParser for CASL_DL
- CASL_DL.PredefinedCASLAxiomswith inlined axioms
- CASL_DL.Print_AS
- CASL_DL.SignSignatures for DL logics, as extension of CASL signatures
- CASL_DL.StatAnastatic analysis of DL parts
- CASL_DL.Sublogicssublogic analysis for CASL_DL
- CMDL
- CMDL.Commandslist of all commands of CMDL interface
- CMDL.ConsCommandsCMDL interface commands
- CMDL.DataTypesInternal data types of the CMDL interface
- CMDL.DataTypesUtilsutilitary functions used throughout the CMDL interface
- CMDL.DgCommandsCMDL interface development graph commands
- CMDL.InfoCommandsCMDL interface commands
- CMDL.InterfaceThe definition of CMDL interface for standard input and file input
- CMDL.ParseProofScriptparse a heterogeneous proof script
- CMDL.ProcessScriptprocess script commands
- CMDL.ProveCommandsCMDL interface commands
- CMDL.ProveConsistencyCMDL interface commands
- CMDL.Shellshell related functions
- CMDL.UndoRedodescription of undo and redo functions
- CMDL.Utilsutilitary functions used throughout the CMDL interface
- COL
- COL.AS_COLAbstract syntax for COL extension of CASL
- COL.ATC_COLgenerated Typeable, ShATermConvertible instances
- COL.COLSignSignatures of COL as extension of CASL signatures
- COL.Logic_COLCOL instance of class Logic
- COL.Parse_ASParser for COL
- COL.Print_ASPretty printing for COL
- COL.StatAnaStatic analysis for COL
- CSL
- CSL.ASUtilsUtils for the abstract syntax of EnCL
- CSL.AS_BASIC_CSLAbstract syntax for EnCL
- CSL.ATC_CSLgenerated Typeable, ShATermConvertible instances
- CSL.AnalysisStatic Analysis for EnCL
- CSL.Foldfolding functions for CSL terms and commands
- CSL.KeywordsString constants for CSL keywords to be used for parsing and printing
- CSL.Lemma_ExportGeneration of Lemmata for CMDs
- CSL.Logic_CSLInstance of class Logic for CSL
- CSL.MorphismAbstract syntax for reduce
- CSL.Parse_AS_BasicParser for basic specs
- CSL.Print_ASPrinter for abstract syntax of CSL
- CSL.ReduceProveinterface to Reduce CAS
- CSL.Reduce_Interfaceinterface to Reduce CAS
- CSL.SignSignatures for the EnCL logic
- CSL.Symbolsymbols for CSL
- CSL.ToolsAbstract syntax for reduce
- CSL.TreePOHandling of tree-like partial ordering relations
- CoCASLCo-algebraic CASL extension
- CoCASL.AS_CoCASLAbstract syntax for CoCASL
- CoCASL.ATC_CoCASLgenerated Typeable, ShATermConvertible instances
- CoCASL.CoCASLSignSignatures for CoCASL, as extension of CASL signatures
- CoCASL.Logic_CoCASLInstance of class Logic for CoCASL
- CoCASL.Parse_ASParser for CoCASL
- CoCASL.Print_ASpretty print abstract syntax of CoCASL
- CoCASL.StatAnastatic analysis for CoCASL
- CoCASL.Sublogicsublogic analysis for CoCASL
- Commoncommonly used modules
- Common.AS_Annotationdatastructures for annotations of (Het)CASL.
- ATerm
- Common.ATerm.ConvInstancesspecial ShATermConvertible instances
- Common.Amalgamatedata types for amalgamability options and analysis
- Common.AnalyseAnnosanalyse annotations and add them to global ones
- Common.AnnoParserparsers for annotations and annoted items
- Common.AnnoStateparsing of interspersed annotations
- Common.Consistencydata types for consistency aka conservativity
- Common.ConvertGlobalAnnosconvert global annotations to a list of annotations
- Common.ConvertLiteralgeneric conversion of literals
- Common.ConvertMixfixTokengeneric conversion of mixfix tokens
- Common.DefaultMorphismsupply a default morphism for a given signature type
- Common.Docdocument data type Doc for (pretty) printing in various formats
- Common.DocUtilsPretty class for pretty printing with instances plus utilities
- Common.Earleygeneric mixfix analysis, using an Earley parser
- Common.ExtSignsignatures with symbol sets
- Common.GlobalAnnotationsdata structures for global annotations
- Common.GtkGoal
- Common.IOwrapper module for changed IO handling since ghc-6.12.1
- Common.IRI
- Common.Idpositions, simple and mixfix identifiers
- Common.InjMapinjective maps
- Common.Itempositions, simple and mixfix identifiers
- Common.KeywordsString constants for CASL keywords to be used for parsing and printing
- Common.LaTeX_funsauxiliary functions for LaTeX printing
- Common.LaTeX_mapsseveral tables needed for LaTeX formatting
- Common.Latticelattice classes
- Common.Lexerscanner for Casl tokens using Parsec
- Lib
- Common.Lib.GraphTree-based implementation of
GraphandDynGraphusing Data.Map - Common.Lib.MapSetMaps of sets
- Common.Lib.MaybeMaybeT monad transformer without the non-portable features
- Common.Lib.Pretty
- Common.Lib.RelRelations, based on maps
- Common.Lib.SizedListlists with their size similar to Data.Edison.Seq.SizedSeq
- Common.Lib.StateState type from Control.Monad.State but no class MonadState
- Common.Lib.Tabularparts of the tabular package
- Common.Lib.GraphTree-based implementation of
- Common.LibNamelibrary names for HetCASL and development graphs
- Common.LogicTcolimit of an arbitrary diagram in Set
- Common.OrderedMapordered maps (these keep insertion order)
- Common.ParsecParsec extensions
- Common.Partialsupport for partial orders
- Common.Precprecedence checking
- Common.PrintLaTeXfunctions for LaTeX pretty printing
- Common.ProofTreea simple proof tree
- Common.ProofUtilsfunctions useful for all prover connections in Hets
- Common.ProverToolsCheck for availability of provers
- Common.ResultResult monad for accumulating Diagnosis messages
- Common.ResultTResultT type and a monadic transformer instance
- Common.SAXA few helper functions to work with the sax parser
- Common.SExprS-Expressions as intermediate output format
- Common.SFKT
- Common.SZSOntologyThe SZS ontology for TPTP prover results
- Common.SetColimitcolimit of an arbitrary diagram in Set
- Common.Taxonomytype for selecting different kinds of taxonomy graphs
- Common.Timingutility module for measuring execution time
- Common.ToXmlxml utilities
- Common.Tokenparser for CASL
Ids based on Common.Lexer - Common.UniUtilswrapper for utilities from the uniform workbench
- Common.Unlitunlit a source string
- Common.Utilsutility functions that can't be found in the libraries
- Common.XPathXPath utilities
- Common.XUpdateanalyse xml update input
- Common.XmlDiffcompute xml diffs
- Common.XmlExpatInterface to the Hexpat Library
- Common.XmlParserInterface to the Xml Parsing Facility
- CommonLogic
- CommonLogic.AS_CommonLogicAbstract syntax for common logic
- CommonLogic.ATC_CommonLogicgenerated Typeable, ShATermConvertible instances
- CommonLogic.AnalysisBasic analysis for common logic
- CommonLogic.ExpandCurie
- CommonLogic.Lexer_CLIFParser of common logic interchange format
- CommonLogic.Logic_CommonLogicInstance of class Logic for common logic
- CommonLogic.MorphismMorphism of Common Logic
- CommonLogic.OMDocCommon Logic specific OMDoc constants
- CommonLogic.OMDocExportCommonLogic-to-OMDoc conversion
- CommonLogic.OMDocImportOMDoc-to-CommonLogic conversion
- CommonLogic.ParseCLAsLibDefn
- CommonLogic.Parse_CLIFParser of common logic interchange format
- CommonLogic.Parse_SymbolsParser of common logic symbols
- CommonLogic.PredefinedCASLAxioms
- CommonLogic.SignSignature for common logic
- CommonLogic.SublogicSublogics for CommonLogic
- CommonLogic.SymbolSymbols of common logic
- CommonLogic.ToolsTools for CommonLogic static analysis
- Comorphismsvarious encodings
- Comorphisms.Adl2CASLCoding a description language into CASL
- Comorphisms.CASL2CoCASLembedding from CASL to CoCASL
- Comorphisms.CASL2CspCASL
- Comorphisms.CASL2ExtModalembedding from CASL to ExtModal
- Comorphisms.CASL2HasCASLembedding CASL into HasCASL
- Comorphisms.CASL2Modalembedding from CASL to ModalCASL
- Comorphisms.CASL2PCFOLcoding out subsorting
- Comorphisms.CASL2PropCoding of a CASL sublogic to Propositional
- Comorphisms.CASL2SubCFOLcoding out partiality
- Comorphisms.CASL2TopSort
- Comorphisms.CASL2VSEembedding from CASL to VSE
- Comorphisms.CASL2VSEImportembedding from CASL to VSE, plus wrapping procedures with default implementations
- Comorphisms.CASL2VSERefineVSE refinement as comorphism
- Comorphisms.CASL_DL2CASLInclusion of CASL_DL into CASL
- Comorphisms.CFOL2IsabelleHOLembedding from CASL (CFOL) to Isabelle-HOL
- Comorphisms.CoCASL2CoPCFOLExtension of CASL2PCFOL to CoCASL
- Comorphisms.CoCASL2CoSubCFOLExtension of CASL2SubCFOL to CoCASL
- Comorphisms.CoCFOL2IsabelleHOLExtension of CFOL2IsabelleHOL to CoCASL
- Comorphisms.CommonLogic2CASLComorphism from CommonLogic to CASL
- Comorphisms.CommonLogic2CASLCompactComorphism from CommonLogic to CASL
- Comorphisms.CommonLogicModuleEliminationComorphism from CommonLogic to CommonLogic
- Comorphisms.CspCASL2Modal
- Comorphisms.DFOL2CASLTranslation of first-order logic with dependent types (DFOL) to CASL
- Comorphisms.DynLogicListAutomatically modified file, includes the user-defined logics in the Hets logic list. Do not change.
- Comorphisms.GetPreludeLibread a prelude library for some comorphisms
- Comorphisms.HasCASL2HasCASLtranslating executable formulas to programs
- Comorphisms.HasCASL2Haskelltranslating program equations to Haskell
- Comorphisms.HasCASL2IsabelleHOLold translation that is only better for case terms
- Comorphisms.HasCASL2PCoClTyConsHOLcoding out subtyping
- Comorphisms.HasCASL2THF0Comorphism from HasCASL to THF
- Comorphisms.Haskell2IsabelleHOLCFtranslating a Haskell subset to Isabelle HOLCF
- Comorphisms.HetLogicGraphCompute graph with logics and interesting sublogics
- Comorphisms.HolLight2Isabelletranslating from HolLight to Isabelle
- Comorphisms.Hs2HOLCFtheory translation for the embedding comorphism from Haskell to Isabelle
- Comorphisms.Hs2HOLCFaux
- Comorphisms.KnownProversprovides a map of provers to their most useful composed comorphisms
- Comorphisms.LogicGraphthe logic graph
- Comorphisms.LogicListAssembles all the logics into a list, as a prerequisite for the logic graph
- Comorphisms.Maude2CASLCoding of Maude with preorder semantics into CASL
- Comorphisms.Modal2CASL
- Comorphisms.MonadicHasCASLTranslationtranslating a HasCASL subset to Isabelle
- Comorphisms.PCoClTyConsHOL2IsabelleHOLtranslating a HasCASL subset to Isabelle
- Comorphisms.PCoClTyConsHOL2PairsInIsaHOLnormalising translation of a HasCASL subset to Isabelle
- Comorphisms.PPolyTyConsHOL2IsaUtilstranslating a HasCASL subset to Isabelle
- Comorphisms.Prop2CASLCoding of Propositional into CASL
- Comorphisms.Prop2CommonLogicCoding of Propositional into CommonLogic
- Comorphisms.Prop2QBFComorphism from Propositional to QBF
- Comorphisms.QBF2PropComorphism from QBF to Propositional
- Comorphisms.RelScheme2CASLComorphism from RelScheme to CASL
- Comorphisms.SoftFOL2CommonLogicCoding of SoftFOL into CommonLogic
- Comorphisms.SuleCFOL2SoftFOLCoding of a CASL subset into SoftFOL
- ConstraintCASL
- ConstraintCASL.AS_ConstraintCASL
- ConstraintCASL.ATC_ConstraintCASLgenerated Typeable, ShATermConvertible instances
- ConstraintCASL.Formula
- ConstraintCASL.Logic_ConstraintCASLinstance of the class Logic for ConstraintCASL
- ConstraintCASL.Print_AS
- ConstraintCASL.StaticAnastatic analysis for ConstraintCASL
- CspCASL
- CspCASL.AS_CspCASLAbstract syntax fo CspCASL
- CspCASL.AS_CspCASL_ProcessAbstract syntax of CSP-CASL processes
- CspCASL.ATC_CspCASLgenerated Typeable, ShATermConvertible instances
- CspCASL.Comorphismsgeneric CspCASL instance for comorphisms
- CspCASL.CspCASL_KeywordsCspCASL keywords to be used for parsing and printing
- CspCASL.LocalTopLocal top element analysis for CspCASL specifications
- CspCASL.Logic_CspCASLCspCASL instance of type class logic
- CspCASL.MorphismSymbols and signature morphisms for the CspCASL logic
- CspCASL.Parse_CspCASLParser for CspCASL specifications
- CspCASL.Parse_CspCASL_ProcessParser for CspCASL processes
- CspCASL.Print_CspCASLPretty printing for CspCASL
- CspCASL.SignCSPCspCASL signatures
- CspCASL.SimplifySensimplification of CspCASL sentences for output after analysis
- CspCASL.StatAnaCSPStatic analysis of CspCASL
- CspCASL.SymMapAnasymbol map analysis for the CspCASL logic.
- CspCASL.SymbItemssyntactic csp-casl symbols
- CspCASL.Symbolsemantic csp-casl symbols
- CspCASLProverInterface to the CspCASLProver (Isabelle based) theorem prover
- CspCASLProver.ConstsConstants and related fucntions for CspCASLProver
- CspCASLProver.CspCASLProverInterface to the CspCASLProver (Isabelle based) theorem prover
- CspCASLProver.CspProverConstsIsabelle Abstract syntax constants for CSP-Prover operations
- CspCASLProver.IsabelleUtilsUtilities for CspCASLProver related to Isabelle
- CspCASLProver.TransProcessesProvides transformations from Csp Processes to Isabelle terms
- CspCASLProver.UtilsUtilities for CspCASLProver related to the actual construction of Isabelle theories.
- DFOL
- DFOL.AS_DFOLAbstract syntax for first-order logic with dependent types (DFOL)
- DFOL.ATC_DFOLgenerated Typeable, ShATermConvertible instances
- DFOL.Analysis_DFOLStatic analysis for first-order logic with dependent types (DFOL)
- DFOL.ColimitSignature colimits for first-order logic with dependent types (DFOL)
- DFOL.ComorphismHelper functions for the DFOL -> CASL translation
- DFOL.Logic_DFOLInstances of classes defined in Logic.hs for first-order logic with dependent types (DFOL)
- DFOL.MorphismDefinition of signature morphisms for first-order logic with dependent types (DFOL)
- DFOL.Parse_AS_DFOLA parser for first-order logic with dependent types (DFOL)
- DFOL.SignDefinition of signatures for first-order logic with dependent types (DFOL)
- DFOL.SymbolSymbol definition for first-order logic with dependent types
- DFOL.UtilsUtilities for first-order logic with dependent types (DFOL)
- DMU
- DMU.Logic_DMUInstance of class Logic for DMU
- Driver
- Driver.AnaLibwrapper for static analysis of HetCASL
- Driver.OptionsDatatypes and functions for options that hets understands.
- Driver.ReadFnreading and parsing ATerms, CASL, HetCASL files
- Driver.Versionmodule for the hets version string
- Driver.WriteFnWriting various formats, according to Hets options
- Driver.WriteLibDefnWriting out a HetCASL library
- ExtModal
- ExtModal.AS_ExtModal
- ExtModal.ATC_ExtModalgenerated Typeable, ShATermConvertible instances
- ExtModal.ExtModalSign
- ExtModal.KeywordsKeywords for extended modal logic
- ExtModal.Logic_ExtModalInstance of class Logic for ExtModal
- ExtModal.MorphismExtensionMorphism extension for modal signature morphisms
- ExtModal.Parse_ASParser for extended modal logic
- ExtModal.Print_AS
- ExtModal.StatAna
- Fpl
- Fpl.ATC_Fplgenerated Typeable, ShATermConvertible instances
- Fpl.Asabstract syntax for FPL
- Fpl.Logic_Fpllogic instance for FPL
- Fpl.Morphismmorphism mapping for FPL
- Fpl.Signsignatures for FPL
- Fpl.StatAnastatic basic analysis for FPL
- Frameworksyntax and analysis for adding object logics to Hets from their specification in a logical framework
- Framework.ASAbstract syntax for logic definitions
- Framework.ATC_Frameworkgenerated Typeable, ShATermConvertible instances
- Framework.AnalysisAnalyzes a logic definition
- Framework.Logic_FrameworkInstances of Logic and other classes for the logic Framework
- Framework.WriteLogicUtilsUtility functions for writing object logic instances
- FreeCAD
- FreeCAD.ATC_FreeCADgenerated Typeable, ShATermConvertible instances
- FreeCAD.Asdefinition of the datatype describing the abstract FreeCAD terms and and a few tools describing simple mathematical operations on those building-blocks (3d vectors, rotation matrices, rotation quaternions)
- FreeCAD.BrepHets(Haskell) end-point of the interface with the OpenCascade libraries. It reads the ouput of the C++ program Brep_Reader and interprets it in order to generate the data for the basic FreeCAD terms, which are not properly described in the file Document.xml
- FreeCAD.Logic_FreeCADInstance of class Logic for FreeCAD
- FreeCAD.PrintAsprint the abstract syntax of FreeCAD terms
- FreeCAD.TranslatorThe main part of the module. Here the parsing, translation of the input xml is handled, as well as the I/O.
- FreeCAD.VecToolsdefinition of 3-dimensional vector operations, transformations between rotation matrices and rotation quaternions
- FreeCAD.XMLPrinterXML Printer function for FreeCAD datatypes
- GUIgraphical user interface modules
- GUI.GenericATPGeneric Prover GUI.
- Glade
- GUI.Glade.GenericATPGlade xmlstring for GenericATP
- GUI.Glade.NodeCheckerGlade xmlstring for NodeChecker
- GUI.Glade.ProverGUIGlade xmlstring for ProverGUI
- GUI.Glade.TextFieldGlade xmlstring for TextField
- GUI.Glade.UtilsGlade xmlstring for Utils
- GUI.GraphAbstractionInterface for graph viewing and abstraction
- GUI.GraphDisplayCentral GUI for Hets, with display of development graph
- GUI.GraphLogicLogic for manipulating the graph in the Central GUI
- GUI.GraphMenuMenu creation functions for the Graphdisplay
- GUI.GraphTypesTypes for the Central GUI of Hets
- GUI.GtkAddSentenceGtk GUI for adding a sentence
- GUI.GtkAutomaticProofsGtk GUI for automatic proving procedure of multiple nodes
- GUI.GtkConsistencyCheckerGtk GUI for the consistency checker
- GUI.GtkDisproveGtk Module to enable disproving Theorems
- GUI.GtkGenericATPGtk Generic Prover GUI.
- GUI.GtkProverGUIGtk GUI for the prover
- GUI.GtkUtilsAccess to the .glade files stored as strings inside the binary
- GUI.HTkProofDetailsGUI for showing and saving proof details.
- GUI.HTkUtils
- GUI.ProverGUIcpp choice between GUI.ProofManagement and GUI.GtkProverGUI
- GUI.ShowGraph
- GUI.ShowLibGraph
- GUI.ShowLogicGraph
- GUI.ShowRefTree
- GUI.Taxonomy
- GUI.UDGUtilswrapper for uDrawGraph utilities from the uniform workbench
- GUI.Utilscpp choice between GUI.HTkUtils and GUI.ConsoleUtils
- HasCASLhigher order CASL extension
- HasCASL.ATC_HasCASLgenerated Typeable, ShATermConvertible instances
- HasCASL.Asabstract syntax for HasCASL
- HasCASL.AsToLefinal static analysis
- HasCASL.AsUtilssome utilities for the abstract syntax
- HasCASL.Builtinbuiltin types and functions
- HasCASL.ClassAnaanalyse kinds using a class map
- HasCASL.Constrainresolve type constraints
- HasCASL.ConvertTypePatternconvert type patterns to type identifier applications
- HasCASL.DataAnaanalysis of data type declarations
- HasCASL.FoldTermfold functions for terms and program equations
- HasCASL.FoldTypefold functions for types
- HasCASL.HTokenparsers for HasCASL tokens
- HasCASL.Lethe abstract syntax for analysis and final signature instance
- HasCASL.Logic_HasCASLinstance of class Logic
- HasCASL.MapTermrenaming according to signature morphisms
- HasCASL.Mergeunion of signature parts
- HasCASL.MinTypechoose a minimal type for overloaded terms
- HasCASL.MixAnamixfix analysis for terms
- HasCASL.Morphismmorphisms implementation
- HasCASL.OpDeclanalyse operation declarations
- HasCASL.ParseItemparser for HasCASL basic Items
- HasCASL.ParseTermparser for HasCASL kinds, types, terms, patterns and equations
- HasCASL.PrintAsprint the abstract syntax so that it can be re-parsed
- HasCASL.PrintLepretty printing signatures
- HasCASL.ProgEqconvert some formulas to program equations
- HasCASL.RawSymraw symbol functions
- HasCASL.SimplifyTermsimplify terms for prettier printing
- HasCASL.SublogicHasCASL's sublogics
- HasCASL.SubtypeDeclanalysis of subtype declarations
- HasCASL.SymbItemparsing symbol items
- HasCASL.Symbolsymbol analysis
- HasCASL.SymbolMapAnalysisanalysis of symbol mappings
- HasCASL.ToItemextracted annotated items for xml output from basic specs
- HasCASL.TypeAnainfer the kinds of types
- HasCASL.TypeChecktype checking terms and program equations
- HasCASL.TypeDeclanalyse type declarations
- HasCASL.TypeMixAnamanually resolve mixfix type applications
- HasCASL.TypeRelcompute subtype dependencies
- HasCASL.Unifygeneralized unification of types
- HasCASL.VarDeclanalyse var decls
- Haskell
- Haskell.ATC_Haskellgenerated Typeable, ShATermConvertible instances
- Haskell.BaseATCbasic ShATermConvertible instances
- Haskell.CreateModulescreating Haskell modules via translations
- Haskell.Haskell2DGcreate a development graph from Haskell modules
- Haskell.HatAnacalling programatica's analysis
- Haskell.HatParsercalling programatica's parser
- Haskell.Logic_HaskellInstance of class Logic for the Haskell logic
- Haskell.PreludeStringthe programatica prelude as string
- Haskell.TiATCShATermConvertible instances
- Haskell.TiDecorateATCShATermConvertible instances
- Haskell.TiPropATCShATermConvertible instances
- Haskell.TranslateIdcreate legal Haskell identifiers
- Haskell.Wrapperextract Haskell code in structured specs
- HolLight
- HolLight.ATC_HolLightgenerated Typeable, ShATermConvertible instances
- HolLight.HelperHelper functions for dealing with terms (mainly for pretty printing which is directly adapted from hollight)
- HolLight.HolLight2DGImport data generated by hol2hets into a DG
- HolLight.Logic_HolLightInstance of class Logic for HolLight
- HolLight.SentenceSentence for HolLight logic
- HolLight.SignHolLight signature
- HolLight.Sublogic
- HolLight.TermTern for HolLight logic
- Interfaces
- Interfaces.CmdActioncommand action associations for all interfaces
- Interfaces.Commanddevelopment graph commands for all interfaces
- Interfaces.DataTypesCommon Data types to be used between interfaces
- Interfaces.GenericATPStateHelp functions for GUI.GenericATP
- Interfaces.Historyhistory management functions
- Interfaces.Utilsutilitary functions
- Isabellelogic for the interactive higher order theorem prover Isabelle
- Isabelle.ATC_Isabellegenerated Typeable, ShATermConvertible instances
- Isabelle.CreateTheoriescreating Isabelle thoeries via translations
- Isabelle.Isa2DGImport data generated by hol2hets into a DG
- Isabelle.IsaConstsconstants for Isabelle terms
- Isabelle.IsaExport
- Isabelle.IsaImport
- Isabelle.IsaParseparser for an Isabelle theory
- Isabelle.IsaPrintprinting Isabelle entities
- Isabelle.IsaProveinterface to the Isabelle theorem prover
- Isabelle.IsaSignabstract Isabelle HOL and HOLCF syntax
- Isabelle.IsaStringspredefined strings of several Isabelle logics
- Isabelle.Logic_IsabelleIsabelle instance of class Logic
- Isabelle.MarkSimpmark certain Isabelle sentenes for the simplifier
- Isabelle.Translatecreate legal Isabelle mixfix identifier
- LF
- LF.ASAbstract syntax for the Edinburgh Logical Framework
- LF.ATC_LFgenerated Typeable, ShATermConvertible instances
- LF.AnalysisStatic analysis for the Edinburgh Logical Framework
- LF.ComorphFram
- LF.FrameworkFunctions for defining LF as a logical framework
- LF.Logic_LFInstances of classes defined in Logic.hs for the Edinburgh Logical Framework
- LF.MorphParser
- LF.MorphismDefinition of signature morphisms for the Edinburgh Logical Framework
- LF.ParseA parser for the Edinburgh Logical Framework
- LF.SignDefinition of signatures for the Edinburgh Logical Framework
- LF.Twelf2DGConversion of Twelf files to Development Graphs
- LF.Twelf2GRConversion of Twelf files to LF signatures and morphisms
- Logicinfrastructure needed for presenting a logic to Hets
- Logic.Coercecoerce logic entities dynamically
- Logic.Comorphisminterface and class for logic translations
- Logic.ExtSignderived functions for signatures with symbol sets
- Logic.GrothendieckGrothendieck logic (flattening of logic graph to a single logic)
- Logic.Logiccentral interface (type class) for logics in Hets
- Logic.Modificationinterface (type class) for comorphism modifications in Hets
- Logic.Morphisminterface (type class) for logic projections (morphisms) in Hets
- Logic.ProverGeneral datastructures for theorem prover interfaces
- Main
- Maude
- Maude.AS_MaudeAbstract Maude Syntax
- Maude.ATC_Maudegenerated Typeable, ShATermConvertible instances
- Maude.LanguageParsing the Maude Language
- Maude.Logic_MaudeInstance of class Logic for Maude
- Maude.Maude2DGMaude Development Graphs
- Maude.MetaMeta information about Maude data types
- Maude.Meta.AsSymbolViewing Maude data types as Symbols
- Maude.Meta.HasLabelsAccessing the Labels of Maude data types
- Maude.Meta.HasNameAccessing the names of Maude data types
- Maude.Meta.HasOpsAccessing the Operators of Maude data types
- Maude.Meta.HasSortsAccessing the Sorts of Maude data types
- Maude.MorphismMaude Morphisms
- Maude.Parseextract Maude text in structured specs
- Maude.PreComorphismMaude Comorphisms
- Maude.PrintingTranslation from Haskell to Maude
- Maude.SentenceMaude Sentences
- Maude.ShelloutMaude Development Graphs
- Maude.SignMaude Signatures
- Maude.SymbolMaude Symbols
- Maude.UtilUtility Functions
- Modalmodal logic extension of CASL
- Modal.AS_Modal
- Modal.ATC_Modalgenerated Typeable, ShATermConvertible instances
- Modal.Logic_ModalInstance of class Logic for Modal CASL
- Modal.ModalSign
- Modal.ModalSystems
- Modal.Parse_AS
- Modal.Print_AS
- Modal.StatAna
- Modal.Utils
- Modifications
- OMDocbasics of the common algebraic specification language
- OMDoc.ATC_OMDocgenerated Typeable, ShATermConvertible instances
- OMDoc.ATermAdditional (manual) ATerm-Conversions for OMDoc
- OMDoc.DataTypesThe OMDoc Data Types
- OMDoc.ExportExports a development graph to an omdoc structure
- OMDoc.ImportTransforms an OMDoc file into a development graph
- OMDoc.Logic_OMDocRudimentary Logic-instances for OMDoc
- OMDoc.OMDocInterfaceHandpicked model of OMDoc subset
- OMDoc.XmlInterfaceOMDoc-XML conversion
- OWL2
- OWL2.AS
- OWL2.ATC_OWL2generated Typeable, ShATermConvertible instances
- OWL2.ColimSignOWL signatures colimits
- OWL2.ColonKeywordsString constants for OWL colon keywords to be used for parsing and printing
- OWL2.Conservativity
- OWL2.DMU2OWL2translating DMU xml to OWL
- OWL2.Extractextraction of the sign from the frames
- OWL2.Function
- OWL2.KeywordsOWL reserved keywords and printing
- OWL2.Logic_OWL2instance of the class Logic for OWL2
- OWL2.MS
- OWL2.ManchesterParser
- OWL2.ManchesterPrint
- OWL2.MorphismOWL Morphisms
- OWL2.OWL22CASLComorphism from OWL 2 to CASL_Dl
- OWL2.OWL22CommonLogicComorphism from OWL2 to Common Logic
- OWL2.ParseManchester syntax parser for OWL 2
- OWL2.ParseOWLAsLibDefn
- OWL2.Print
- OWL2.Profiles
- OWL2.ProfilesAndSublogics
- OWL2.Propositional2OWL2Comorphism from Propostional Logic to OWL 2
- OWL2.ProveFact
- OWL2.ProvePelletInterface to the OWL Ontology prover via Pellett.
- OWL2.ProverStateInterface to the OWL Ontology provers.
- OWL2.Rename
- OWL2.Sign
- OWL2.StaticAnalysis
- OWL2.Sublogic
- OWL2.Symbols
- OWL2.TaxonomyTaxonomy extraction for OWL
- OWL2.Theorem
- OWL2.XML
- OWL2.XMLConversion
- OWL2.XMLKeywords
- PGIP
- PGIP.Queryhets server queries
- PGIP.Serverrun hets as server
- PGIP.XMLparsingXML processing for the CMDL interface
- PGIP.XMLstateafter parsing XML message a list of XMLcommands is produced, containing commands that need to be executed
- Proofs
- Proofs.AbstractStateState data structure used by the goal management GUI.
- Proofs.Automaticautomatic proofs in the development graph calculus
- Proofs.BatchProcessingBatch processing functions.
- Proofs.CompositionComposition rules in the development graphs calculus
- Proofs.ComputeColimitHeterogeneous colimit of the displayed graph
- Proofs.Conservativityconservativity proof rule for development graphs
- Proofs.ConsistencyCheckdevGraph rule that calls consistency checker for specific logics
- Proofs.DGFlatteningflattening parts of development graphs
- Proofs.EdgeUtilsutility functions for edges of development graphs
- Proofs.FreeDefLinkscompute ingoing free definition links for provers
- Proofs.Freenessnormalization of freeness
- Proofs.Globalglobal proof rules for development graphs
- Proofs.HideTheoremShifthide theorem shift proof rule for development graphs
- Proofs.InferBasicdevGraph rule that calls provers for specific logics
- Proofs.Locallocal proof rules for development graphs
- Proofs.NormalFormcompute the normal forms of all nodes in development graphs
- Proofs.QualifyNamesqualify all names in the nodes of development graphs
- Proofs.SimpleTheoremHideShiftsimple version of theorem hide shift proof rule
- Proofs.StatusUtilsthe proof status with manipulating functions
- Proofs.TheoremHideShifttheorem hide shift proof rule for development graphs
- Proofs.TriangleConsapply triangle-cons rule for all edges in development graphs
- Proofs.VSEInterface to send structured theories to the VSE prover
- Propositional
- Propositional.AS_BASIC_PropositionalAbstract syntax for propositional logic
- Propositional.ATC_Propositionalgenerated Typeable, ShATermConvertible instances
- Propositional.AnalysisBasic analysis for propositional logic
- Propositional.ConservativityConservativityChecker for propositional logic
- Propositional.ConversionsHelper functions for proofs in propositional logic
- Propositional.Foldfolding function for propositional formulas
- Propositional.Logic_PropositionalInstance of class Logic for propositional logic
- Propositional.MorphismMorphisms in Propositional logic
- Propositional.Parse_AS_BasicParser for basic specs
- Propositional.Prop2CASLHelpersHelper functions for Prop2CASL
- Propositional.ProveProvers for propositional logic
- Propositional.ProveMinisatProvers for propositional logic
- Propositional.ProveWithTruthTableProvers for propositional logic
- Propositional.ProverStateProverState for propositional logic
- Propositional.SignSignature for propositional logic
- Propositional.SublogicSublogics for propositional logic
- Propositional.SymbolSymbols of propositional logic
- Propositional.ToolsSome additional helper functions
- QBF
- QBF.AS_BASIC_QBFAbstract syntax for propositional logic extended with QBFs
- QBF.ATC_QBFgenerated Typeable, ShATermConvertible instances
- QBF.AnalysisBasic analysis for propositional logic extended with QBFs
- QBF.Logic_QBFInstance of class Logic for propositional logic extended with QBFs
- QBF.MorphismMorphisms in Propositional logic extended with QBFs
- QBF.Parse_AS_BasicParser for basic specs
- QBF.ProveDepQBFInterface to the theorem prover e-krhyper in CASC-mode.
- QBF.ProverStateHelp functions for all automatic theorem provers.
- QBF.SublogicSublogics for propositional logic
- QBF.SymbolSymbols of propositional logic
- QBF.Toolsfolding function for propositional formulas extended with QBFs
- RelationalScheme
- RelationalScheme.ASabstract syntax for Relational Schemes
- RelationalScheme.ATC_RelationalSchemegenerated Typeable, ShATermConvertible instances
- RelationalScheme.KeywordsKeywords for Relational Schemes
- RelationalScheme.Logic_RelInstance of class Logic for Rel
- RelationalScheme.ParseRSabstract syntax for Relational Schemes
- RelationalScheme.Signsignaturefor Relational Schemes
- RelationalScheme.StaticAnalysisstatic analysis for Relational Schemes
- SoftFOLlogic for first order provers like SPASS
- SoftFOL.ATC_SoftFOLgenerated Typeable, ShATermConvertible instances
- SoftFOL.ConversionsFunctions to convert to internal SP* data structures.
- SoftFOL.CreateDFGDocGenerating DFG Doc out of SPASS theories.
- SoftFOL.DFGParserA parser for the SPASS Input Syntax
- SoftFOL.Logic_SoftFOLInstance of class Logic for SoftFOL.
- SoftFOL.MathServMappingMaps a MathServResponse into a prover configuration.
- SoftFOL.MathServParsingFunctions for parsing MathServ output as a MathServResponse
- SoftFOL.MorphismSymbol related functions for SoftFOL.
- SoftFOL.ParseTPTPA parser for the TPTP Input Syntax
- SoftFOL.PrintPretty printing for SoftFOL problems in DFG.
- SoftFOL.PrintTPTPPretty printing for SPASS signatures in TPTP syntax.
- SoftFOL.ProveDarwinInterface to the TPTP theorem prover via Darwin.
- SoftFOL.ProveHyperHyperInterface to the theorem prover e-krhyper in CASC-mode.
- SoftFOL.ProveMathServInterface for the MathServe broker.
- SoftFOL.ProveMetis
- SoftFOL.ProveSPASSInterface for the SPASS theorem prover.
- SoftFOL.ProveVampireInterface to the Vampire theorem prover via MathServe.
- SoftFOL.ProverStateHelp functions for all automatic theorem provers.
- SoftFOL.SignData structures representing SPASS signatures.
- SoftFOL.Translateutility to create valid identifiers for atp provers
- Static
- Static.AnalysisArchitecturestatic analysis of CASL architectural specifications
- Static.AnalysisLibrarystatic analysis of CASL specification libraries
- Static.AnalysisStructuredstatic analysis of heterogeneous structured specifications
- Static.ApplyChangesapply xupdate changes to a development graph
- Static.ArchDiagramData types and functions for architectural diagrams
- Static.CheckGlobalContextchecking consistency of indices
- Static.ComputeTheorycompute the theory of a node
- Static.ConsInclusionsdump conservative inclusion links
- Static.DGTranslationTranslation of development graphs along comorphisms
- Static.DevGraphCentral datastructures for development graphs
- Static.DgUtilsauxiliary datastructures for development graphs
- Static.DotGraphDisplay of development graphs using Graphviz/dot
- Static.FromXmlxml input for Hets development graphs
- Static.FromXmlUtilstheory datastructure for development graphs
- Static.GTheorytheory datastructure for development graphs
- Static.Historyhistory treatment for development graphs
- Static.PrintDevGraphpretty printing (parts of) a LibEnv
- Static.ToXmlxml output of Hets development graphs
- Static.WACoconeheterogeneous signatures colimits approximations
- Static.XGraphxml input for Hets development graphs
- Static.XSimplePathSimplification of XPath-Structure
- Syntax
- Syntax.ADocfolder description
- Syntax.AS_Architectureabstract syntax of CASL architectural specifications
- Syntax.AS_Libraryabstract syntax of CASL specification libraries
- Syntax.AS_Structuredabstract syntax of CASL structured specifications
- Syntax.Parse_AS_Architectureparser for CASL architectural specifications
- Syntax.Parse_AS_Libraryparser for CASL specification librariess
- Syntax.Parse_AS_Structuredparser for CASL (heterogeneous) structured specifications
- Syntax.Print_AS_Architecturepretty printing of CASL architectural specifications
- Syntax.Print_AS_Librarypretty printing of CASL specification libaries
- Syntax.Print_AS_Structuredpretty printing of CASL structured specifications
- Syntax.ToXmlxml output of Hets specification libaries
- THF
- THF.ATC_THFgenerated Typeable, ShATermConvertible instances
- THF.AsA abstract syntax for the TPTP-THF Syntax
- THF.ConsA collection of data-structures, functions and instances for the THF modules.
- THF.HasCASL2THF0Buildinscreate legal THF mixfix identifier
- THF.Logic_THFInstance of class Logic for THF.
- THF.ParseTHFA Parser for the TPTP-THF Syntax
- THF.ParseTHF0A Parser for the TPTP-THF0 Syntax
- THF.PrintSeveal Pretty instances.
- THF.PrintTHFA printer for the TPTP-THF Syntax
- THF.ProveLeoIIInterface to the Leo-II theorem prover.
- THF.ProverStateHelp functions for all automatic theorem provers.
- THF.SignSignature for THF
- THF.StaticAnalysisTHFStatic analysis for THF
- THF.Translatecreate legal THF mixfix identifier
- Taxonomy
- Taxonomy.AbstractGraphViewInterface for graph viewing and abstraction
- Taxonomy.MMiSSOntology
- Taxonomy.MMiSSOntologyGraph
- Temporal
- Temporal.AS_BASIC_TemporalAbstract syntax of temporal basic specifications
- Temporal.ATC_Temporalgenerated Typeable, ShATermConvertible instances
- Temporal.Logic_TemporalInstance of class Logic for temporal logic
- Temporal.MorphismMorphisms in Temporal logic
- Temporal.SignSignature for propositional logic
- Temporal.SymbolSymbols of propositional logic
- VSE
- VSE.ATC_VSEgenerated Typeable, ShATermConvertible instances
- VSE.Anastatic analysis of VSE parts
- VSE.Asabstract syntax of VSE programs and dynamic logic
- VSE.Foldfolding functions for VSE progams
- VSE.Logic_VSEthe incomplete Logic instance for VSE
- VSE.Parseparsing VSE parts
- VSE.ProveInterface to the VSE prover
- VSE.ToSExprtranslate VSE to S-Expressions