| |||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||
Description | |||||||||||||||||||||||||||||||||||||||||||||
Martelli Montanary unification algorithm. | |||||||||||||||||||||||||||||||||||||||||||||
Synopsis | |||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||
Documentation | |||||||||||||||||||||||||||||||||||||||||||||
type Var = String | |||||||||||||||||||||||||||||||||||||||||||||
type MultiSet a = [a] | |||||||||||||||||||||||||||||||||||||||||||||
type MultiEq = (Set Var, Set STerm) | |||||||||||||||||||||||||||||||||||||||||||||
mgumm2 :: MultiSet STerm -> Maybe [MultiEq] | |||||||||||||||||||||||||||||||||||||||||||||
mgumm' :: [MultiEq] -> [MultiEq] | |||||||||||||||||||||||||||||||||||||||||||||
unifymm :: MultiSet STerm -> Maybe [MultiEq] | |||||||||||||||||||||||||||||||||||||||||||||
MM algorithm Keep in mind that this returns the triangular multiequation, not the MGU. | |||||||||||||||||||||||||||||||||||||||||||||
unifyloop :: [MultiEq] -> [MultiEq] -> Maybe [MultiEq] | |||||||||||||||||||||||||||||||||||||||||||||
substitute :: MultiEq -> [MultiEq] -> [MultiEq] | |||||||||||||||||||||||||||||||||||||||||||||
sub :: Substitution -> [(Set Var, Set STerm)] -> [(Set Var, Set STerm)] | |||||||||||||||||||||||||||||||||||||||||||||
selecteq :: [MultiEq] -> Maybe (MultiEq, [MultiEq]) | |||||||||||||||||||||||||||||||||||||||||||||
toposelect :: [MultiEq] -> Maybe (MultiEq, [MultiEq]) | |||||||||||||||||||||||||||||||||||||||||||||
getrhsvars :: MultiEq -> Set Var | |||||||||||||||||||||||||||||||||||||||||||||
vars_set :: Set STerm -> Set Var | |||||||||||||||||||||||||||||||||||||||||||||
set_concat :: Ord a => Set (Set a) -> Set a | |||||||||||||||||||||||||||||||||||||||||||||
notLHS :: Set Var -> MultiEq -> Bool | |||||||||||||||||||||||||||||||||||||||||||||
compacteq :: [MultiEq] -> [MultiEq] | |||||||||||||||||||||||||||||||||||||||||||||
mered :: MultiEq -> Maybe [MultiEq] | |||||||||||||||||||||||||||||||||||||||||||||
splitTerms :: Set STerm -> Maybe (STerm, [MultiEq]) | |||||||||||||||||||||||||||||||||||||||||||||
Returns (Common part, Frontier) Fixme: It has a bug whem ms is empty. | |||||||||||||||||||||||||||||||||||||||||||||
check_common_head :: MultiSet STerm -> Maybe STerm | |||||||||||||||||||||||||||||||||||||||||||||
makemulteq :: MultiSet STerm -> [MultiEq] | |||||||||||||||||||||||||||||||||||||||||||||
type Substitution = String -> STerm | |||||||||||||||||||||||||||||||||||||||||||||
apply :: Substitution -> STerm -> STerm | |||||||||||||||||||||||||||||||||||||||||||||
subVar :: String -> STerm -> Substitution | |||||||||||||||||||||||||||||||||||||||||||||
Produced by Haddock version 0.8 |