jukebox-0.3.7: A first-order reasoning toolbox

Safe HaskellNone
LanguageHaskell98

Jukebox.Form

Documentation

data Type Source #

Constructors

O 
Type 

Fields

Instances

Eq Type Source # 

Methods

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

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

Ord Type Source # 

Methods

compare :: Type -> Type -> Ordering #

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

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

(>) :: Type -> Type -> Bool #

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

max :: Type -> Type -> Type #

min :: Type -> Type -> Type #

Named Type Source # 

Methods

name :: Type -> Name Source #

Typed Type Source # 

Methods

typ :: Type -> Type Source #

class Typed a where Source #

Minimal complete definition

typ

Methods

typ :: a -> Type Source #

Instances

Typed Term Source # 

Methods

typ :: Term -> Type Source #

Typed FunType Source # 

Methods

typ :: FunType -> Type Source #

Typed Type Source # 

Methods

typ :: Type -> Type Source #

Typed b => Typed ((:::) a b) Source # 

Methods

typ :: (a ::: b) -> Type Source #

newSymbol :: Named a => a -> b -> NameM (Name ::: b) Source #

data Signed a Source #

Constructors

Pos a 
Neg a 

Instances

Functor Signed Source # 

Methods

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

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

Foldable Signed Source # 

Methods

fold :: Monoid m => Signed m -> m #

foldMap :: Monoid m => (a -> m) -> Signed a -> m #

foldr :: (a -> b -> b) -> b -> Signed a -> b #

foldr' :: (a -> b -> b) -> b -> Signed a -> b #

foldl :: (b -> a -> b) -> b -> Signed a -> b #

foldl' :: (b -> a -> b) -> b -> Signed a -> b #

foldr1 :: (a -> a -> a) -> Signed a -> a #

foldl1 :: (a -> a -> a) -> Signed a -> a #

toList :: Signed a -> [a] #

null :: Signed a -> Bool #

length :: Signed a -> Int #

elem :: Eq a => a -> Signed a -> Bool #

maximum :: Ord a => Signed a -> a #

minimum :: Ord a => Signed a -> a #

sum :: Num a => Signed a -> a #

product :: Num a => Signed a -> a #

Traversable Signed Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Signed a -> f (Signed b) #

sequenceA :: Applicative f => Signed (f a) -> f (Signed a) #

mapM :: Monad m => (a -> m b) -> Signed a -> m (Signed b) #

sequence :: Monad m => Signed (m a) -> m (Signed a) #

Eq a => Eq (Signed a) Source # 

Methods

(==) :: Signed a -> Signed a -> Bool #

(/=) :: Signed a -> Signed a -> Bool #

Ord a => Ord (Signed a) Source # 

Methods

compare :: Signed a -> Signed a -> Ordering #

(<) :: Signed a -> Signed a -> Bool #

(<=) :: Signed a -> Signed a -> Bool #

(>) :: Signed a -> Signed a -> Bool #

(>=) :: Signed a -> Signed a -> Bool #

max :: Signed a -> Signed a -> Signed a #

min :: Signed a -> Signed a -> Signed a #

Show a => Show (Signed a) Source # 

Methods

showsPrec :: Int -> Signed a -> ShowS #

show :: Signed a -> String #

showList :: [Signed a] -> ShowS #

Symbolic a => Unpack (Signed a) Source # 

Methods

rep' :: Signed a -> Rep (Signed a) Source #

Symbolic a => Symbolic (Signed a) Source # 

Methods

typeOf :: Signed a -> TypeOf (Signed a) Source #

the :: Signed a -> a Source #

data Bind a Source #

Constructors

Bind (Set Variable) a 

Instances

Eq a => Eq (Bind a) Source # 

Methods

(==) :: Bind a -> Bind a -> Bool #

(/=) :: Bind a -> Bind a -> Bool #

Ord a => Ord (Bind a) Source # 

Methods

compare :: Bind a -> Bind a -> Ordering #

(<) :: Bind a -> Bind a -> Bool #

(<=) :: Bind a -> Bind a -> Bool #

(>) :: Bind a -> Bind a -> Bool #

(>=) :: Bind a -> Bind a -> Bool #

max :: Bind a -> Bind a -> Bind a #

min :: Bind a -> Bind a -> Bind a #

Symbolic a => Unpack (Bind a) Source # 

Methods

rep' :: Bind a -> Rep (Bind a) Source #

Symbolic a => Symbolic (Bind a) Source # 

Methods

typeOf :: Bind a -> TypeOf (Bind a) Source #

newtype Clause Source #

Constructors

Clause (Bind [Literal]) 

data Kind Source #

Constructors

Ax AxKind 
Conj ConjKind 

Instances

Eq Kind Source # 

Methods

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

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

Ord Kind Source # 

Methods

compare :: Kind -> Kind -> Ordering #

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

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

(>) :: Kind -> Kind -> Bool #

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

max :: Kind -> Kind -> Kind #

min :: Kind -> Kind -> Kind #

type Model = [String] Source #

data Input a Source #

Constructors

Input 

Fields

Instances

Functor Input Source # 

Methods

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

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

Foldable Input Source # 

Methods

fold :: Monoid m => Input m -> m #

foldMap :: Monoid m => (a -> m) -> Input a -> m #

foldr :: (a -> b -> b) -> b -> Input a -> b #

foldr' :: (a -> b -> b) -> b -> Input a -> b #

foldl :: (b -> a -> b) -> b -> Input a -> b #

foldl' :: (b -> a -> b) -> b -> Input a -> b #

foldr1 :: (a -> a -> a) -> Input a -> a #

foldl1 :: (a -> a -> a) -> Input a -> a #

toList :: Input a -> [a] #

null :: Input a -> Bool #

length :: Input a -> Int #

elem :: Eq a => a -> Input a -> Bool #

maximum :: Ord a => Input a -> a #

minimum :: Ord a => Input a -> a #

sum :: Num a => Input a -> a #

product :: Num a => Input a -> a #

Traversable Input Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Input a -> f (Input b) #

sequenceA :: Applicative f => Input (f a) -> f (Input a) #

mapM :: Monad m => (a -> m b) -> Input a -> m (Input b) #

sequence :: Monad m => Input (m a) -> m (Input a) #

Symbolic a => Unpack (Input a) Source # 

Methods

rep' :: Input a -> Rep (Input a) Source #

Symbolic a => Symbolic (Input a) Source # 

Methods

typeOf :: Input a -> TypeOf (Input a) Source #

type Problem a = [Input a] Source #

data TypeOf a where Source #

Constructors

Form :: TypeOf Form 
Clause_ :: TypeOf Clause 
Term :: TypeOf Term 
Atomic :: TypeOf Atomic 
Signed :: (Symbolic a, Symbolic (Signed a)) => TypeOf (Signed a) 
Bind_ :: (Symbolic a, Symbolic (Bind a)) => TypeOf (Bind a) 
List :: (Symbolic a, Symbolic [a]) => TypeOf [a] 
Input_ :: (Symbolic a, Symbolic (Input a)) => TypeOf (Input a) 
CNF_ :: TypeOf CNF 

class Symbolic a where Source #

Minimal complete definition

typeOf

Methods

typeOf :: a -> TypeOf a Source #

data Rep a where Source #

Constructors

Const :: !a -> Rep a 
Unary :: Symbolic a => (a -> b) -> a -> Rep b 
Binary :: (Symbolic a, Symbolic b) => (a -> b -> c) -> a -> b -> Rep c 

rep :: Symbolic a => a -> Rep a Source #

class Unpack a where Source #

Minimal complete definition

rep'

Methods

rep' :: a -> Rep a Source #

Instances

Unpack Clause Source # 

Methods

rep' :: Clause -> Rep Clause Source #

Unpack CNF Source # 

Methods

rep' :: CNF -> Rep CNF Source #

Unpack Form Source # 

Methods

rep' :: Form -> Rep Form Source #

Unpack Atomic Source # 

Methods

rep' :: Atomic -> Rep Atomic Source #

Unpack Term Source # 

Methods

rep' :: Term -> Rep Term Source #

Symbolic a => Unpack [a] Source # 

Methods

rep' :: [a] -> Rep [a] Source #

Symbolic a => Unpack (Input a) Source # 

Methods

rep' :: Input a -> Rep (Input a) Source #

Symbolic a => Unpack (Bind a) Source # 

Methods

rep' :: Bind a -> Rep (Bind a) Source #

Symbolic a => Unpack (Signed a) Source # 

Methods

rep' :: Signed a -> Rep (Signed a) Source #

recursively :: Symbolic a => (forall a. Symbolic a => a -> a) -> a -> a Source #

recursivelyM :: (Monad m, Symbolic a) => (forall a. Symbolic a => a -> m a) -> a -> m a Source #

collect :: (Symbolic a, Monoid b) => (forall a. Symbolic a => a -> b) -> a -> b Source #

subst :: Symbolic a => Subst -> a -> a Source #

ground :: Symbolic a => a -> Bool Source #

bind :: Symbolic a => a -> Bind a Source #

termsAndBinders :: forall a b. Symbolic a => (Term -> DList b) -> (forall a. Symbolic a => Bind a -> [b]) -> a -> [b] Source #

names :: Symbolic a => a -> [Name] Source #

run :: Symbolic a => a -> (a -> NameM b) -> b Source #

run_ :: Symbolic a => a -> NameM b -> b Source #

types :: Symbolic a => a -> [Type] Source #

types' :: Symbolic a => a -> [Type] Source #

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

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

isFof :: Symbolic a => a -> Bool Source #

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

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

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

mapName :: Symbolic a => (Name -> Name) -> a -> a Source #

mapType :: Symbolic a => (Type -> Type) -> a -> a Source #