jukebox-0.1.1: A first-order reasoning toolbox

Safe HaskellNone
LanguageHaskell98

Jukebox.Form

Documentation

data FunType Source

Constructors

FunType 

Fields

args :: [Type]
 
res :: Type
 

class Typed a where Source

Methods

typ :: a -> Type Source

Instances

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

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 -> a Source

data Connective Source

Constructors

Implies 
Follows 
Xor 
Nor 
Nand 

Instances

data Bind a Source

Constructors

Bind (NameMap Variable) a 

Instances

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

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

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

data Kind Source

Constructors

Axiom 
Conjecture 
Question 

Instances

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) 

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

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

Methods

rep' :: a -> Rep 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

(|=>) :: Named a => a -> Term -> Subst 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 -> Seq b) -> (forall a. Symbolic a => Bind a -> Seq b) -> a -> Seq b Source

names :: Symbolic a => a -> [Name] 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

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

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

share :: Symbolic a => a -> a Source

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