| Copyright | (c) Levent Erkok |
|---|---|
| License | BSD3 |
| Maintainer | erkokl@gmail.com |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Documentation.SBV.Examples.TP.SumReverse
Description
Proves sum (reverse xs) == sum xs.
Documentation
revSum :: (SymVal a, Num (SBV a)) => IO (Proof (Forall "xs" [a] -> SBool)) Source #
sum (reverse xs) = sum xs
>>>revSum @IntegerInductive lemma: sumAppend Step: Base Q.E.D. Step: 1 Q.E.D. Step: 2 Q.E.D. Step: 3 Q.E.D. Step: 4 (associativity) Q.E.D. Step: 5 Q.E.D. Result: Q.E.D. Inductive lemma: sumReverse Step: Base Q.E.D. Step: 1 Q.E.D. Step: 2 Q.E.D. Step: 3 Q.E.D. Step: 4 (commutativity) Q.E.D. Step: 5 Q.E.D. Result: Q.E.D. [Proven] sumReverse :: Ɐxs ∷ [Integer] → Bool