Copyright | (c) Martin Kuehl, T. Mossakowski, C. Maeder, 2004-2007 |
---|---|
License | GPLv2 or higher, see LICENSE.txt |
Maintainer | Christian.Maeder@dfki.de |
Stability | provisional |
Portability | portable |
Safe Haskell | None |
Overload resolution (injections are inserted separately) Follows Sect. III:3.3 of the CASL Reference Manual. The algorthim is from: Till Mossakowski, Kolyang, Bernd Krieg-Brueckner: Static semantic analysis and theorem proving for CASL. 12th Workshop on Algebraic Development Techniques, Tarquinia 1997, LNCS 1376, p. 333-348
- minExpFORMULA :: (FormExtension f, TermExtension f) => Min f e -> Sign f e -> FORMULA f -> Result (FORMULA f)
- minExpFORMULAeq :: (FormExtension f, TermExtension f) => Min f e -> Sign f e -> (TERM f -> TERM f -> Range -> FORMULA f) -> TERM f -> TERM f -> Range -> Result (FORMULA f)
- minExpTerm :: (FormExtension f, TermExtension f) => Min f e -> Sign f e -> TERM f -> Result [[TERM f]]
- isUnambiguous :: Pretty f => String -> GlobalAnnos -> f -> [[f]] -> Range -> Result f
- oneExpTerm :: (FormExtension f, TermExtension f) => Min f e -> Sign f e -> TERM f -> Result (TERM f)
- mkSorted :: TermExtension f => Sign f e -> TERM f -> SORT -> Range -> TERM f
- type Min f e = Sign f e -> f -> Result f
- leqF :: Sign f e -> OpType -> OpType -> Bool
- leqP :: Sign f e -> PredType -> PredType -> Bool
- leqSort :: Sign f e -> SORT -> SORT -> Bool
- minimalSupers :: Sign f e -> SORT -> SORT -> [SORT]
- maximalSubs :: Sign f e -> SORT -> SORT -> [SORT]
- haveCommonSupersorts :: Bool -> Sign f e -> SORT -> SORT -> Bool
- haveCommonSubsorts :: Sign f e -> SORT -> SORT -> Bool
- keepMinimals1 :: Bool -> Sign f e -> (a -> SORT) -> [a] -> [a]
- keepMinimals :: Sign f e -> (a -> SORT) -> [a] -> [a]
Documentation
minExpFORMULA :: (FormExtension f, TermExtension f) => Min f e -> Sign f e -> FORMULA f -> Result (FORMULA f)
minExpFORMULAeq :: (FormExtension f, TermExtension f) => Min f e -> Sign f e -> (TERM f -> TERM f -> Range -> FORMULA f) -> TERM f -> TERM f -> Range -> Result (FORMULA f)
minExpTerm :: (FormExtension f, TermExtension f) => Min f e -> Sign f e -> TERM f -> Result [[TERM f]]
isUnambiguous :: Pretty f => String -> GlobalAnnos -> f -> [[f]] -> Range -> Result f
check if there is a unique equivalence class
oneExpTerm :: (FormExtension f, TermExtension f) => Min f e -> Sign f e -> TERM f -> Result (TERM f)
test if a term can be uniquely resolved
minimalSupers :: Sign f e -> SORT -> SORT -> [SORT]
minimal common supersorts of the two input sorts
maximalSubs :: Sign f e -> SORT -> SORT -> [SORT]
maximal common subsorts of the two input sorts
haveCommonSupersorts :: Bool -> Sign f e -> SORT -> SORT -> Bool
True if both sorts have a common supersort
haveCommonSubsorts :: Sign f e -> SORT -> SORT -> Bool
keepMinimals1 :: Bool -> Sign f e -> (a -> SORT) -> [a] -> [a]
keepMinimals :: Sign f e -> (a -> SORT) -> [a] -> [a]
only keep elements with minimal (and different) sorts