Module Selection

Module defining a predicate to select non-deterministic operations, i.e., operations that are not defined by inductively sequential rules.

Author: Lasse Folger (with changes by Michael Hanus)

Version: September 2015

Summary of exported operations:

isnondeterministic :: CFuncDecl -> Bool   
Test whether a function definition is non-deterministic, i.e., not defined by inductively sequential rules.
checkIArgs :: ([[CPattern]],[[CPattern]]) -> Bool   
conca :: [[a]] -> [[a]] -> [[a]]   
cutnext :: ([[CPattern]],[[CPattern]]) -> ([[CPattern]],[[CPattern]])   
prefilter :: [CRule] -> [[CPattern]]   
warnLazyPattern :: a -> a   

Exported operations:

isnondeterministic :: CFuncDecl -> Bool   

Test whether a function definition is non-deterministic, i.e., not defined by inductively sequential rules.

checkIArgs :: ([[CPattern]],[[CPattern]]) -> Bool   

conca :: [[a]] -> [[a]] -> [[a]]   

Further infos:
  • solution complete, i.e., able to compute all solutions

cutnext :: ([[CPattern]],[[CPattern]]) -> ([[CPattern]],[[CPattern]])   

prefilter :: [CRule] -> [[CPattern]]   

warnLazyPattern :: a -> a