monadiccp-0.6: Constraint Programming
Source code
Contents
Index
Control.CP.Herbrand.Herbrand
Description
This module provides a Herbrand solver.
The type of terms is parameterized by the
HTerm
type class.
Synopsis
class
Ord
(
VarId
t) =>
HTerm
t
where
type
VarId
t :: *
data
VarSupply
t :: *
varSupply
::
VarSupply
t
supplyVar
::
VarSupply
t -> (t,
VarSupply
t)
mkVar
::
VarId
t -> t
isVar
:: t ->
Maybe
(
VarId
t)
children
:: t -> ([t], [t] -> t)
nonvar_unify
::
MonadState
(
HState
t m) m => t -> t -> m
Bool
data
Herbrand
t a =
Herbrand
{
unH
::
State
(
HState
t (
Herbrand
t)) a
}
failure
::
Monad
m => m
Bool
success
::
Monad
m => m
Bool
unify
:: (
HTerm
t,
MonadState
(
HState
t m) m) => t -> t -> m
Bool
shallow_normalize
:: (
HTerm
t,
MonadState
(
HState
t m) m) => t -> m t
registerAction
:: (
HTerm
t,
MonadState
(
HState
t m) m) => t -> m
Bool
-> m
()
data
HState
t m
data
Unify
t
initState
::
HTerm
t =>
HState
t m
addH
:: (
HTerm
t,
MonadState
(
HState
t m) m) =>
Unify
t -> m
Bool
newvarH
:: (
HTerm
t,
MonadState
(
HState
t m) m) => m t
Documentation
class
Ord
(
VarId
t) =>
HTerm
t
where
Source
Herbrand terms
Associated Types
type
VarId
t :: *
Source
data
VarSupply
t :: *
Source
Methods
varSupply
::
VarSupply
t
Source
supplyVar
::
VarSupply
t -> (t,
VarSupply
t)
Source
mkVar
::
VarId
t -> t
Source
isVar
:: t ->
Maybe
(
VarId
t)
Source
children
:: t -> ([t], [t] -> t)
Source
nonvar_unify
::
MonadState
(
HState
t m) m => t -> t -> m
Bool
Source
Instances
HTerm
PrologTerm
data
Herbrand
t a
Source
Herbrand monad
Constructors
Herbrand
unH
::
State
(
HState
t (
Herbrand
t)) a
Instances
Monad
(
Herbrand
t)
Functor
(
Herbrand
t)
Applicative
(
Herbrand
t)
HTerm
t =>
Solver
(
Herbrand
t)
HTerm
t =>
Term
(
Herbrand
t) t
MonadState
(
HState
t (
Herbrand
t)) (
Herbrand
t)
failure
::
Monad
m => m
Bool
Source
success
::
Monad
m => m
Bool
Source
unify
:: (
HTerm
t,
MonadState
(
HState
t m) m) => t -> t -> m
Bool
Source
unify two arbitrary terms
shallow_normalize
:: (
HTerm
t,
MonadState
(
HState
t m) m) => t -> m t
Source
registerAction
:: (
HTerm
t,
MonadState
(
HState
t m) m) => t -> m
Bool
-> m
()
Source
data
HState
t m
Source
Instances
MonadState
(
HState
t (
Herbrand
t)) (
Herbrand
t)
Solver
s =>
MonadState
(
HState
t (
HerbrandT
t s)) (
HerbrandT
t s)
data
Unify
t
Source
initState
::
HTerm
t =>
HState
t m
Source
addH
:: (
HTerm
t,
MonadState
(
HState
t m) m) =>
Unify
t -> m
Bool
Source
newvarH
:: (
HTerm
t,
MonadState
(
HState
t m) m) => m t
Source
Produced by
Haddock
version 2.6.0