twee-0.1: An equational theorem prover

Safe HaskellNone
LanguageHaskell2010

Twee.Base

Documentation

class Symbolic a where Source #

Minimal complete definition

term, termsDL, replace

Associated Types

type ConstantOf a Source #

Methods

term :: a -> TermOf a Source #

termsDL :: a -> DList (TermListOf a) Source #

replace :: (TermListOf a -> BuilderOf a) -> a -> a Source #

Instances

Symbolic a => Symbolic [a] Source # 

Associated Types

type ConstantOf [a] :: * Source #

Methods

term :: [a] -> TermOf [a] Source #

termsDL :: [a] -> DList (TermListOf [a]) Source #

replace :: (TermListOf [a] -> BuilderOf [a]) -> [a] -> [a] Source #

Symbolic (Term f) Source # 

Associated Types

type ConstantOf (Term f) :: * Source #

Methods

term :: Term f -> TermOf (Term f) Source #

termsDL :: Term f -> DList (TermListOf (Term f)) Source #

replace :: (TermListOf (Term f) -> BuilderOf (Term f)) -> Term f -> Term f Source #

Symbolic (TermList f) Source # 
Symbolic a => Symbolic (Labelled a) Source # 
Symbolic (Equation f) Source # 
Symbolic (Orientation f) Source # 
Symbolic (Rule f) Source # 

Associated Types

type ConstantOf (Rule f) :: * Source #

Methods

term :: Rule f -> TermOf (Rule f) Source #

termsDL :: Rule f -> DList (TermListOf (Rule f)) Source #

replace :: (TermListOf (Rule f) -> BuilderOf (Rule f)) -> Rule f -> Rule f Source #

Symbolic (CritInfo f) Source # 
Symbolic a => Symbolic (Critical a) Source # 
Symbolic (CancellationRule f) Source # 
Symbolic a => Symbolic (Modelled a) Source # 
((~) * (ConstantOf a) (ConstantOf b), Symbolic a, Symbolic b) => Symbolic (a, b) Source # 

Associated Types

type ConstantOf (a, b) :: * Source #

Methods

term :: (a, b) -> TermOf (a, b) Source #

termsDL :: (a, b) -> DList (TermListOf (a, b)) Source #

replace :: (TermListOf (a, b) -> BuilderOf (a, b)) -> (a, b) -> (a, b) Source #

((~) * (ConstantOf a) (ConstantOf b), (~) * (ConstantOf a) (ConstantOf c), Symbolic a, Symbolic b, Symbolic c) => Symbolic (a, b, c) Source # 

Associated Types

type ConstantOf (a, b, c) :: * Source #

Methods

term :: (a, b, c) -> TermOf (a, b, c) Source #

termsDL :: (a, b, c) -> DList (TermListOf (a, b, c)) Source #

replace :: (TermListOf (a, b, c) -> BuilderOf (a, b, c)) -> (a, b, c) -> (a, b, c) Source #

terms :: Symbolic a => a -> [TermListOf a] Source #

subst :: (Symbolic a, Substitution (ConstantOf a) s) => s -> a -> a Source #

type FunOf a = Fun (ConstantOf a) Source #

vars :: Symbolic a => a -> [Var] Source #

funs :: Symbolic a => a -> [FunOf a] Source #

occ :: Symbolic a => FunOf a -> a -> Int Source #

canonicalise :: Symbolic a => a -> a Source #

class Minimal a where Source #

Minimal complete definition

minimal

Methods

minimal :: a Source #

Instances

(Numbered f, Minimal f) => Minimal (Fun f) Source # 

Methods

minimal :: Fun f Source #

Minimal (Extended f) Source # 

Methods

minimal :: Extended f Source #

class Skolem f where Source #

Minimal complete definition

skolem

Methods

skolem :: Var -> f Source #

Instances

(Numbered f, Skolem f) => Skolem (Fun f) Source # 

Methods

skolem :: Var -> Fun f Source #

Skolem (Extended f) Source # 

Methods

skolem :: Var -> Extended f Source #

class Arity f where Source #

Minimal complete definition

arity

Methods

arity :: f -> Int Source #

Instances

(Numbered f, Arity f) => Arity (Fun f) Source # 

Methods

arity :: Fun f -> Int Source #

Arity f => Arity (Extended f) Source # 

Methods

arity :: Extended f -> Int Source #

class Sized a where Source #

Minimal complete definition

size

Methods

size :: a -> Int Source #

Instances

(Sized f, Numbered f) => Sized (Fun f) Source # 

Methods

size :: Fun f -> Int Source #

(Sized f, Numbered f) => Sized (Term f) Source # 

Methods

size :: Term f -> Int Source #

(Sized f, Numbered f) => Sized (TermList f) Source # 

Methods

size :: TermList f -> Int Source #

Sized f => Sized (Extended f) Source # 

Methods

size :: Extended f -> Int Source #

(Numbered f, Sized f) => Sized (Equation f) Source # 

Methods

size :: Equation f -> Int Source #

class Ord f => Ordered f where Source #

Minimal complete definition

lessEq, lessIn

class (Numbered f, Ordered f, Arity f, Sized f, Minimal f, Skolem f, PrettyTerm f) => Function f Source #

Instances

data Extended f Source #

Constructors

Minimal 
Skolem Int 
Function f 

Instances

Functor Extended Source # 

Methods

fmap :: (a -> b) -> Extended a -> Extended b #

(<$) :: a -> Extended b -> Extended a #

Eq f => Eq (Extended f) Source # 

Methods

(==) :: Extended f -> Extended f -> Bool #

(/=) :: Extended f -> Extended f -> Bool #

Ord f => Ord (Extended f) Source # 

Methods

compare :: Extended f -> Extended f -> Ordering #

(<) :: Extended f -> Extended f -> Bool #

(<=) :: Extended f -> Extended f -> Bool #

(>) :: Extended f -> Extended f -> Bool #

(>=) :: Extended f -> Extended f -> Bool #

max :: Extended f -> Extended f -> Extended f #

min :: Extended f -> Extended f -> Extended f #

Show f => Show (Extended f) Source # 

Methods

showsPrec :: Int -> Extended f -> ShowS #

show :: Extended f -> String #

showList :: [Extended f] -> ShowS #

Pretty f => Pretty (Extended f) Source # 
Numbered f => Numbered (Extended f) Source # 
PrettyTerm f => PrettyTerm (Extended f) Source # 
Minimal (Extended f) Source # 

Methods

minimal :: Extended f Source #

Sized f => Sized (Extended f) Source # 

Methods

size :: Extended f -> Int Source #

Arity f => Arity (Extended f) Source # 

Methods

arity :: Extended f -> Int Source #

Skolem (Extended f) Source # 

Methods

skolem :: Var -> Extended f Source #

module Twee.Term