Hets - the Heterogeneous Tool Set

Copyright(c) Zicheng Wang, C.Maeder Uni Bremen 2002-2009
LicenseGPLv2 or higher, see LICENSE.txt
MaintainerChristian.Maeder@dfki.de
Stabilityprovisional
Portabilitynon-portable (imports Logic.Comorphism)
Safe HaskellNone

Comorphisms.CASL2SubCFOL

Description

Coding out partiality (SubPCFOL= -> SubCFOL=) while keeping subsorting. Without unique bottoms sort generation axioms are not allowed. Then we have (SubPFOL= -> SubFOL=).

Synopsis

Documentation

data FormulaTreatment

determine the need for bottom constants

treatFormula :: FormulaTreatment -> a -> a -> a -> a -> a

a case selector for formula treatment

data CASL2SubCFOL

The identity of the comorphism depending on parameters. NoMembershipOrCast reject membership test or cast to non-bottom sorts. . FormulaDependent creates a formula dependent signature translation. SubsortBottoms creates bottoms for all proper subsorts.

Constructors

CASL2SubCFOL 

Fields

uniqueBottom :: Bool

removes free types

formulaTreatment :: FormulaTreatment

deal with membership tests and casts

defaultCASL2SubCFOL :: CASL2SubCFOL

create unique bottoms, sorts with bottom depend on membership and casts in theory sentences.

encodeSig :: Set SORT -> Sign f e -> Sign f e

Add projections to the signature

mkNonEmptyAxiomName :: SORT -> String

Make the name for the non empty axiom from s to s' to s''

mkNotDefBotAxiomName :: SORT -> String

Make the name for the not defined bottom axiom

mkTotalityAxiomName :: OP_NAME -> String

Make the name for the totality axiom

generateAxioms :: (Ord f, TermExtension f) => Bool -> Set SORT -> Sign f e -> [Named (FORMULA f)]

codeRecord :: TermExtension f => Bool -> Set SORT -> (f -> f) -> Record f (FORMULA f) (TERM f)

codeTerm :: Bool -> Set SORT -> TERM () -> TERM ()

botSorts :: (f -> Set SORT) -> Record f (Set SORT) (Set SORT)

find sorts that need a bottom in membership formulas and casts