jukebox-0.2.3: 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

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

data Signed a Source

Constructors

Pos a 
Neg a 

the :: Signed a -> a Source

data Connective Source

Constructors

Implies 
Follows 
Xor 
Nor 
Nand 

data Bind a Source

Constructors

Bind (Set Variable) a 

Instances

newtype Clause Source

Constructors

Clause (Bind [Literal]) 

data Kind Source

Constructors

Axiom 
Conjecture 
Question 

Instances

data Input a Source

Constructors

Input 

Fields

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

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 

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

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

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

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

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