packages feed

logic-classes-0.44: Data/Logic.hs

{-# OPTIONS -Wwarn #-}
module Data.Logic
    ( -- * Boolean Logic
      Negatable(..)
    , Boolean(fromBool)
    , Logic(..)
    -- * Propositional Logic
    , PropositionalFormula(..)
    , Combine(..)
    , BinOp(..)
    -- * FirstOrderLogic
    , Variable(..)
    , Arity(arity)
    , Pred(..)
    , pApp
    , Predicate(..)
    , Skolem(..)
    , Term(..)
    , FirstOrderFormula(..)
    -- * Normal Forms
    , Literal(..)
    , ClauseNormalFormula(..)
    , ImplicativeForm(..)
    -- * Knowledge Base and Theorem Proving
    , Proof(proofResult)
    , ProofResult(Proved, Invalid, Disproved)
    , tellKB
    , runProverT'
    , prettyProof
    ) where

import Data.Logic.Classes.Arity
import Data.Logic.Classes.Boolean
import Data.Logic.Classes.ClauseNormalForm
import Data.Logic.Classes.FirstOrder
import Data.Logic.Classes.Literal
import Data.Logic.Classes.Logic
import Data.Logic.Classes.Negatable
import Data.Logic.Classes.Pred
import Data.Logic.Classes.Propositional
import Data.Logic.Classes.Skolem
import Data.Logic.Classes.Term
import Data.Logic.Classes.Variable
import Data.Logic.KnowledgeBase
import Data.Logic.Normal.Implicative
import Data.Logic.Types.FirstOrder ()
import Data.Logic.Types.FirstOrderPublic ()