Copyright | (c) Sonja Groening, C. Maeder, Uni Bremen 2003-2006 |
---|---|
License | GPLv2 or higher, see LICENSE.txt |
Maintainer | Christian.Maeder@dfki.de |
Stability | provisional |
Portability | non-portable (imports Logic.Logic) |
Safe Haskell | None |
This embedding comorphism from HasCASL to Isabelle-HOL is an old version that can be deleted as soon as case terms are implemented elsewhere
- data HasCASL2IsabelleHOL = HasCASL2IsabelleHOL
- baseSign :: BaseSig
- transSignature :: Env -> Result (Sign, [Named Sentence])
- transOpInfo :: OpInfo -> Maybe Typ
- transOpType :: TypeScheme -> Typ
- transType :: Type -> Typ
- transDatatype :: TypeMap -> DomainTab
- transDataEntry :: DataEntry -> [DomainEntry]
- transTypeArg :: TypeArg -> Typ
- transAltDefn :: AltDefn -> (VName, [Typ])
- transVar :: Id -> VName
- transSentence :: Env -> Sentence -> Maybe Term
- transOpId :: Env -> Id -> TypeScheme -> String
- transProgEq :: Env -> ProgEq -> (Term, Term)
- transTerm :: Env -> Term -> Term
- transAppl :: Env -> Maybe Type -> Term -> Term -> Term
- mkApp :: String -> Env -> Term -> Term -> Term
- transApplOp :: Env -> Type -> Term -> Term -> Term
- transLog :: Env -> Id -> Term -> Term -> Term
- transWhenElse :: Env -> Term -> Term
- abstraction :: Env -> Term -> Term -> Term
- transPattern :: Env -> Term -> Term
- transTotalLambda :: Env -> Term -> Term
- arangeCaseAlts :: Env -> [ProgEq] -> [(Term, Term)]
- sortCaseAlts :: Env -> [ProgEq] -> [(Term, Term)]
- getCons :: Env -> Id -> [Id]
- getName :: ProgEq -> Id
- getTypeName :: Term -> Id
- groupCons :: [ProgEq] -> Id -> [ProgEq]
- flattenPattern :: Env -> [ProgEq] -> (Term, Term)
- data CaseMatrix = CaseMatrix {}
- data PatBrand
- matricize :: [ProgEq] -> [CaseMatrix]
- matriPEq :: ProgEq -> CaseMatrix
- matriArg :: Term -> Term -> CaseMatrix
- concentrate :: [CaseMatrix] -> Env -> CaseMatrix
- groupByArgs :: [CaseMatrix] -> Int -> [CaseMatrix]
- redArgs :: Env -> [CaseMatrix] -> CaseMatrix
- redAppl :: [CaseMatrix] -> Env -> CaseMatrix
- recArgs :: Env -> [ProgEq] -> [ProgEq]
- shrinkPat :: CaseMatrix -> Term
- patIsVar :: ProgEq -> Bool
- termIsVar :: Term -> Bool
- patHasNoArg :: ProgEq -> Bool
- termHasNoArg :: Term -> Bool
- transCaseAlt :: Env -> ProgEq -> (Term, Term)
- transPat :: Env -> Term -> Term
- binConst :: String -> Term -> Term -> Term
- isaPair :: String
Documentation
data HasCASL2IsabelleHOL
The identity of the comorphism
Signature
translation of a type in an operation declaration
transOpInfo :: OpInfo -> Maybe Typ
transOpType :: TypeScheme -> Typ
translation of a datatype declaration
transDatatype :: TypeMap -> DomainTab
transDataEntry :: DataEntry -> [DomainEntry]
transTypeArg :: TypeArg -> Typ
transAltDefn :: AltDefn -> (VName, [Typ])
Formulas
transSentence :: Env -> Sentence -> Maybe Term
transOpId :: Env -> Id -> TypeScheme -> String
transProgEq :: Env -> ProgEq -> (Term, Term)
transWhenElse :: Env -> Term -> Term
when else statement
translation of lambda abstractions
abstraction :: Env -> Term -> Term -> Term
transPattern :: Env -> Term -> Term
transTotalLambda :: Env -> Term -> Term
translation of case alternatives
arangeCaseAlts :: Env -> [ProgEq] -> [(Term, Term)]
sortCaseAlts :: Env -> [ProgEq] -> [(Term, Term)]
getTypeName :: Term -> Id
flattenPattern :: Env -> [ProgEq] -> (Term, Term)
data CaseMatrix
matricize :: [ProgEq] -> [CaseMatrix]
matriPEq :: ProgEq -> CaseMatrix
matriArg :: Term -> Term -> CaseMatrix
concentrate :: [CaseMatrix] -> Env -> CaseMatrix
groupByArgs :: [CaseMatrix] -> Int -> [CaseMatrix]
redArgs :: Env -> [CaseMatrix] -> CaseMatrix
redAppl :: [CaseMatrix] -> Env -> CaseMatrix
shrinkPat :: CaseMatrix -> Term
patHasNoArg :: ProgEq -> Bool
termHasNoArg :: Term -> Bool
transCaseAlt :: Env -> ProgEq -> (Term, Term)