MiniAgda
Safe HaskellNone
LanguageHaskell98

Termination

Synopsis

Documentation

traceTerm :: String -> a -> a Source #

traceTermM :: Monad m => String -> m () Source #

traceProg :: String -> a -> a Source #

traceProgM :: Monad m => String -> m () Source #

type Matrix a = Matrix Int a Source #

data Order Source #

Constructors

Decr Int 
Un 
Mat (Matrix Order) 

Instances

Instances details
HasZero Order Source # 
Instance details

Defined in Termination

Show Order Source # 
Instance details

Defined in Termination

Methods

showsPrec :: Int -> Order -> ShowS #

show :: Order -> String #

showList :: [Order] -> ShowS #

Eq Order Source # 
Instance details

Defined in Termination

Methods

(==) :: Order -> Order -> Bool #

(/=) :: Order -> Order -> Bool #

Ord Order Source # 
Instance details

Defined in Termination

Methods

compare :: Order -> Order -> Ordering #

(<) :: Order -> Order -> Bool #

(<=) :: Order -> Order -> Bool #

(>) :: Order -> Order -> Bool #

(>=) :: Order -> Order -> Bool #

max :: Order -> Order -> Order #

min :: Order -> Order -> Order #

decr :: (?cutoff :: Int) => Int -> Order Source #

ordRing :: (?cutoff :: Int) => Semiring Order Source #

comp :: (?cutoff :: Int) => Order -> Order -> Order Source #

maxO :: (?cutoff :: Int) => Order -> Order -> Order Source #

minO :: (?cutoff :: Int) => Order -> Order -> Order Source #

minM :: (?cutoff :: Int) => Matrix Order -> Matrix Order -> Matrix Order Source #

pointwise minimum

maxL :: (?cutoff :: Int) => [Order] -> Order Source #

minL :: (?cutoff :: Int) => [Order] -> Order Source #

collapse :: (?cutoff :: Int) => Matrix Order -> Order Source #

type Vector a = [a] Source #

type NaiveMatrix a = [Vector a] Source #

ssum :: Semiring a -> Vector a -> a Source #

vadd :: Semiring a -> Vector a -> Vector a -> Vector a Source #

compareArgs :: (?cutoff :: Int) => TSO Name -> [Pattern] -> [Expr] -> Arity -> Matrix Order Source #

compareExpr :: (?cutoff :: Int) => TSO Name -> Expr -> Pattern -> Order Source #

compareExpr' :: (?cutoff :: Int) => TSO Name -> Expr -> Pattern -> Order Source #

conView :: (Expr, [Expr]) -> (Expr, [Expr]) Source #

compareVar :: (?cutoff :: Int) => TSO Name -> Name -> Pattern -> Order Source #

data Call Source #

Constructors

Call 

Instances

Instances details
Show Call Source # 
Instance details

Defined in Termination

Methods

showsPrec :: Int -> Call -> ShowS #

show :: Call -> String #

showList :: [Call] -> ShowS #

Eq Call Source # 
Instance details

Defined in Termination

Methods

(==) :: Call -> Call -> Bool #

(/=) :: Call -> Call -> Bool #

Ord Call Source # 
Instance details

Defined in Termination

Methods

compare :: Call -> Call -> Ordering #

(<) :: Call -> Call -> Bool #

(<=) :: Call -> Call -> Bool #

(>) :: Call -> Call -> Bool #

(>=) :: Call -> Call -> Bool #

max :: Call -> Call -> Call #

min :: Call -> Call -> Call #

newtype CallPath Source #

Constructors

CallPath 

Fields

Instances

Instances details
Show CallPath Source # 
Instance details

Defined in Termination

Eq CallPath Source # 
Instance details

Defined in Termination

mulCC :: (?cutoff :: Int) => CompCall -> CompCall -> CompCall Source #

cmRing :: (?cutoff :: Int) => Semiring CMSet Source #

mulCMSet :: (?cutoff :: Int) => CMSet -> CMSet -> CMSet Source #

stepCG :: (?cutoff :: Int) => CallGraph -> Progress CallGraph Source #

complCGraph :: (?cutoff :: Int) => CallGraph -> CallGraph Source #

checkAll :: (?cutoff :: Int) => CallGraph -> Bool Source #

checkIdem :: (?cutoff :: Int) => CallMatrix -> Bool Source #

terminationCheckFuns :: (?cutoff :: Int) => [Fun] -> [(Name, Bool)] Source #

sizeChangeTermination :: (?cutoff :: Int) => [Name] -> [Call] -> [(Name, Bool)] Source #

collectCGFunDecl :: (?cutoff :: Int) => [(Name, Arity)] -> [Fun] -> [Call] Source #

tsoCase :: TSO Name -> Expr -> [Clause] -> TSO Name Source #

harvest i > j from case i { $ j -> ...}

tsoBind :: TSO Name -> TBind -> TSO Name Source #

harvest i from (i < j) - ... or (i < j) & ...

collectCallsExpr :: (?cutoff :: Int) => [(Name, Arity)] -> Name -> [Pattern] -> Expr -> [Call] Source #