module AutoProof.Internal.Intuitionistic.Proof.Search.General
(
prove,
proveTautology,
)
where
import AutoProof.Internal.Formula (Formula)
import AutoProof.Internal.Intuitionistic.Proof.Search.Implication (proveImp)
import AutoProof.Internal.Intuitionistic.Proof.Search.Statman (proveStatman)
import AutoProof.Internal.Judgement (Judgement, (|-))
import AutoProof.Internal.Proof.Types (Proof)
import Control.Applicative (Alternative ((<|>)))
prove :: Ord a => Judgement a -> Maybe (Proof a)
prove :: Judgement a -> Maybe (Proof a)
prove j :: Judgement a
j =
Judgement a -> Maybe (Proof a)
forall a. Ord a => Judgement a -> Maybe (Proof a)
proveImp Judgement a
j
Maybe (Proof a) -> Maybe (Proof a) -> Maybe (Proof a)
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> Judgement a -> Maybe (Proof a)
forall a. Ord a => Judgement a -> Maybe (Proof a)
proveStatman Judgement a
j
proveTautology :: Ord a => Formula a -> Maybe (Proof a)
proveTautology :: Formula a -> Maybe (Proof a)
proveTautology = Judgement a -> Maybe (Proof a)
forall a. Ord a => Judgement a -> Maybe (Proof a)
prove (Judgement a -> Maybe (Proof a))
-> (Formula a -> Judgement a) -> Formula a -> Maybe (Proof a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ([] [Formula a] -> Formula a -> Judgement a
forall a (f :: * -> *).
(Ord a, Foldable f) =>
f (Formula a) -> Formula a -> Judgement a
|-)