Safe Haskell | None |
---|

- (&&) :: Ord v => OBDD v -> OBDD v -> OBDD v
- (||) :: Ord v => OBDD v -> OBDD v -> OBDD v
- not :: Ord v => OBDD v -> OBDD v
- and :: Ord v => [OBDD v] -> OBDD v
- or :: Ord v => [OBDD v] -> OBDD v
- unary :: Ord v => (Bool -> Bool) -> OBDD v -> OBDD v
- binary :: Ord v => (Bool -> Bool -> Bool) -> OBDD v -> OBDD v -> OBDD v
- instantiate :: Ord v => v -> Bool -> OBDD v -> OBDD v
- exists :: Ord v => v -> OBDD v -> OBDD v
- exists_many :: Ord v => Set v -> OBDD v -> OBDD v
- fold :: Ord v => (Bool -> a) -> (v -> a -> a -> a) -> OBDD v -> a
- foldM :: (Monad m, Ord v) => (Bool -> m a) -> (v -> a -> a -> m a) -> OBDD v -> m a

# Documentation

not :: Ord v => OBDD v -> OBDD vSource

FIXME this is a silly implementation. Negation should be done by switching values in Leaves (?)

exists :: Ord v => v -> OBDD v -> OBDD vSource

remove variable existentially TODO: needs better implementation