jukebox-0.1.2: A first-order reasoning toolbox

Safe HaskellNone

Jukebox.Form

Documentation

data DomainSize Source

Constructors

Finite Int 
Infinite 

Instances

Eq DomainSize 
Ord DomainSize 
Show DomainSize 
Typeable DomainSize 

data Type Source

Constructors

O 
Type 

Instances

Eq Type 
Ord Type 
Show Type 
Typeable Type 
Hashable Type 
Named Type 
Typed Type 
Pretty Type 
Pretty [Type] 

data FunType Source

Constructors

FunType 

Fields

args :: [Type]
 
res :: Type
 

Instances

class Typed a whereSource

Methods

typ :: a -> TypeSource

Instances

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

size :: Term -> IntSource

data Signed a Source

Constructors

Pos a 
Neg a 

Instances

Functor Signed 
Eq a => Eq (Signed a) 
Ord a => Ord (Signed a) 
Show a => Show (Signed a) 
Hashable a => Hashable (Signed a) 
Symbolic a => Unpack (Signed a) 
Symbolic a => Symbolic (Signed a) 

the :: Signed a -> aSource

pos :: Signed a -> BoolSource

data Connective Source

Constructors

Implies 
Follows 
Xor 
Nor 
Nand 

Instances

Show Connective 

data Bind a Source

Constructors

Bind (NameMap Variable) a 

Instances

Symbolic a => Unpack (Bind a) 
Symbolic a => Symbolic (Bind a) 

isTrue :: Form -> BoolSource

isFalse :: Form -> BoolSource

conj :: List f => f Form -> FormSource

disj :: List f => f Form -> FormSource

data Obligs Source

Constructors

Obligs 

Fields

axioms :: [Input Clause]
 
conjectures :: [[Input Clause]]
 
satisfiable :: String
 
unsatisfiable :: String
 

newtype Clause Source

Constructors

Clause (Bind [Literal]) 

type Tag = ByteStringSource

data Kind Source

Constructors

Axiom 
Conjecture 
Question 

Instances

Eq Kind 
Ord Kind 
Show Kind 

data Answer Source

Instances

Eq Answer 
Ord Answer 
Show Answer 

data Input a Source

Constructors

Input 

Fields

tag :: Tag
 
kind :: Kind
 
what :: a
 

Instances

Functor Input 
(Symbolic a, Pretty a) => Show (Problem a) 
Pretty a => Show (Input a) 
Symbolic a => Unpack (Input a) 
Symbolic a => Symbolic (Input a) 
Pretty a => Pretty (Input a) 

data TypeOf a whereSource

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] 
Seq :: (Symbolic a, Symbolic (Seq a)) => TypeOf (Seq a) 
Input_ :: (Symbolic a, Symbolic (Input a)) => TypeOf (Input a) 
Obligs_ :: TypeOf Obligs 

data Rep a whereSource

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 aSource

class Unpack a whereSource

Methods

rep' :: a -> Rep aSource

recursively :: Symbolic a => (forall a. Symbolic a => a -> a) -> a -> aSource

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

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

(|=>) :: Named a => a -> Term -> SubstSource

subst :: Symbolic a => Subst -> a -> aSource

ground :: Symbolic a => a -> BoolSource

bind :: Symbolic a => a -> Bind aSource

termsAndBinders :: forall a b. Symbolic a => (Term -> Seq b) -> (forall a. Symbolic a => Bind a -> Seq b) -> a -> Seq bSource

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

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

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

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

isFof :: Symbolic a => a -> BoolSource

force :: Symbolic a => a -> aSource

check :: Symbolic a => a -> aSource

share :: Symbolic a => a -> aSource

mapType :: Symbolic a => (Type -> Type) -> a -> aSource