| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Proof.QED.Advanced
- data Known = Known {}
- getKnown :: QED Known
- data Unknown = Unknown {}
- getUnknown :: Proof (Known, Unknown)
- data Goal = Goal [Prop] Prop
- getGoal :: Proof (Known, Unknown, Goal)
- newtype BadProof = BadProof String
- badProof :: String -> Proof a
- isBadProof :: Proof () -> Proof Bool
- newtype Laws = Laws [Prop]
- rewriteUnfold :: Prop -> Proof ()
- rewriteEquivalent :: Prop -> Proof ()
- rewriteRecurse :: Proof ()
- rewriteSplit :: Proof ()
- rewriteTautology :: Proof ()
Documentation
data Unknown
getUnknown :: Proof (Known, Unknown)
isBadProof :: Proof () -> Proof Bool
rewriteUnfold :: Prop -> Proof ()
Use a new prop which is the same as the previous goal, but with any number of unfoldings
rewriteEquivalent :: Prop -> Proof ()
Use a new prop which is the same as the first goals prop, but with simplified/rearranged expressions
rewriteRecurse :: Proof ()
Apply the coinduction principle on the computation
rewriteSplit :: Proof ()
Split the expression into multiple subexpressions
rewriteTautology :: Proof ()
The first goal is a tautology