| Copyright | (c) Levent Erkok |
|---|---|
| License | BSD3 |
| Maintainer | erkokl@gmail.com |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Documentation.SBV.Examples.KnuckleDragger.AppendRev
Description
Example use of the KnuckleDragger, on list append and reverses.
Documentation
Use an uninterpreted type for the elements
Instances
appendNull :: IO Proof Source #
xs ++ [] == xs
We have:
>>>appendNullLemma: appendNull Q.E.D. [Proven] appendNull
(x : xs) ++ ys == x : (xs ++ ys)
We have:
>>>consAppLemma: consApp Q.E.D. [Proven] consApp
appendAssoc :: IO Proof Source #
(xs ++ ys) ++ zs == xs ++ (ys ++ zs)
We have:
>>>appendAssocLemma: appendAssoc Q.E.D. [Proven] appendAssoc
reverseReverse :: IO Proof Source #
reverse (reverse xs) == xs
We have:
>>>reverseReverseLemma: revApp Q.E.D. Lemma: reverseReverse Q.E.D. [Proven] reverseReverse