| Copyright | (c) Levent Erkok |
|---|---|
| License | BSD3 |
| Maintainer | erkokl@gmail.com |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Documentation.SBV.Examples.Uninterpreted.Deduce
Description
Demonstrates uninterpreted sorts and how they can be used for deduction. This example is inspired by the discussion at http://stackoverflow.com/questions/10635783/using-axioms-for-deductions-in-z3, essentially showing how to show the required deduction using SBV.
Representing uninterpreted booleans
The uninterpreted sort B, corresponding to the carrier.
Instances
| Data B Source # | |
Defined in Documentation.SBV.Examples.Uninterpreted.Deduce Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> B -> c B # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c B # dataTypeOf :: B -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c B) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c B) # gmapT :: (forall b. Data b => b -> b) -> B -> B # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> B -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> B -> r # gmapQ :: (forall d. Data d => d -> u) -> B -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> B -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> B -> m B # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> B -> m B # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> B -> m B # | |
| Read B Source # | |
| Show B Source # | |
| HasKind B Source # | |
| SymVal B Source # | |
Defined in Documentation.SBV.Examples.Uninterpreted.Deduce Methods mkSymVal :: MonadSymbolic m => VarContext -> Maybe String -> m (SBV B) Source # literal :: B -> SBV B Source # isConcretely :: SBV B -> (B -> Bool) -> Bool Source # forall :: MonadSymbolic m => String -> m (SBV B) Source # forall_ :: MonadSymbolic m => m (SBV B) Source # mkForallVars :: MonadSymbolic m => Int -> m [SBV B] Source # exists :: MonadSymbolic m => String -> m (SBV B) Source # exists_ :: MonadSymbolic m => m (SBV B) Source # mkExistVars :: MonadSymbolic m => Int -> m [SBV B] Source # free :: MonadSymbolic m => String -> m (SBV B) Source # free_ :: MonadSymbolic m => m (SBV B) Source # mkFreeVars :: MonadSymbolic m => Int -> m [SBV B] Source # symbolic :: MonadSymbolic m => String -> m (SBV B) Source # symbolics :: MonadSymbolic m => [String] -> m [SBV B] Source # unliteral :: SBV B -> Maybe B Source # | |
| SatModel B Source # | |
Uninterpreted connectives over B
Axioms of the logical system
Distributivity of OR over AND, as an axiom in terms of
the uninterpreted functions we have introduced. Note how
variables range over the uninterpreted sort B.
One of De Morgan's laws, again as an axiom in terms of our uninterpeted logical connectives.