qed-0.0: Simple prover

Safe HaskellNone
LanguageHaskell98

Proof.QED.Advanced

Synopsis

Documentation

data Known

All these things are append only

Constructors

Known 

Fields

definitions :: [(Var, Exp)]
 
types :: [(String, [(Con, Int)])]
 
assumed :: [Prop]
 
proved :: [Prop]
 
cheater :: Bool
 

Instances

data Unknown

Constructors

Unknown 

Fields

goals :: [Goal]
 
focusSide :: Maybe Side
 
focusAt :: Int
 

data Goal

Constructors

Goal [Prop] Prop 

Instances

newtype BadProof

Constructors

BadProof String 

newtype Laws

Constructors

Laws [Prop] 

Instances

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