module AutoProof.Internal.Intuitionistic.Proof.Provability
( isProvable,
isTautology,
)
where
import AutoProof.Internal.Formula (Formula)
import AutoProof.Internal.Intuitionistic.Proof.Search (prove)
import AutoProof.Internal.Judgement (Judgement, (|-))
import Data.Maybe (isJust)
isProvable :: Ord a => Judgement a -> Bool
isProvable :: Judgement a -> Bool
isProvable = Maybe (Proof a) -> Bool
forall a. Maybe a -> Bool
isJust (Maybe (Proof a) -> Bool)
-> (Judgement a -> Maybe (Proof a)) -> Judgement a -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Judgement a -> Maybe (Proof a)
forall a. Ord a => Judgement a -> Maybe (Proof a)
prove
isTautology :: Ord a => Formula a -> Bool
isTautology :: Formula a -> Bool
isTautology = Judgement a -> Bool
forall a. Ord a => Judgement a -> Bool
isProvable (Judgement a -> Bool)
-> (Formula a -> Judgement a) -> Formula a -> Bool
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
|-)