Copyright | (c) Sirui Lu 2021-2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.Internal.Core.Data.Class.LogicalOp
Description
Documentation
class LogicalOp b where Source #
Symbolic logical operators for symbolic booleans.
>>>
let t = true :: SymBool
>>>
let f = false :: SymBool
>>>
let a = "a" :: SymBool
>>>
let b = "b" :: SymBool
>>>
t .|| f
true>>>
a .|| t
true>>>
a .|| f
a>>>
a .|| b
(|| a b)>>>
t .&& f
false>>>
a .&& t
a>>>
a .&& f
false>>>
a .&& b
(&& a b)>>>
symNot t
false>>>
symNot f
true>>>
symNot a
(! a)>>>
t `symXor` f
true>>>
t `symXor` t
false>>>
a `symXor` t
(! a)>>>
a `symXor` f
a>>>
a `symXor` b
(|| (&& (! a) b) (&& a (! b)))
Methods
Constant true
Constant false
(.||) :: b -> b -> b infixr 2 Source #
Symbolic disjunction
(.&&) :: b -> b -> b infixr 3 Source #
Symbolic conjunction
Symbolic negation
symXor :: b -> b -> b Source #
Symbolic exclusive disjunction
symImplies :: b -> b -> b Source #
Symbolic implication
Instances
LogicalOp SymBool Source # | |
Defined in Grisette.Internal.Core.Data.Class.LogicalOp | |
LogicalOp Bool Source # | |
LogicalOp a => LogicalOp (Identity a) Source # | |
Defined in Grisette.Internal.Core.Data.Class.LogicalOp | |
(LogicalOp a, Mergeable a) => LogicalOp (Union a) Source # | |