Hets - the Heterogeneous Tool Set

Copyright(c) Till Mossakowski, Klaus Luettich, Uni Bremen 2002-2005
LicenseGPLv2 or higher, see LICENSE.txt
Maintainertill@informatik.uni-bremen.de
Stabilityprovisional
Portabilitynon-portable (deriving Typeable)
Safe HaskellNone

Logic.Prover

Contents

Description

General datastructures for theorem prover interfaces

Synopsis

pack sentences with their proofs

type SenStatus a tStatus = SenAttr a (ThmStatus tStatus)

instead of the sentence name (that will be the key into the order map) the theorem status will be stored as attribute. The theorem status will be a (wrapped) list of pairs (AnyComorphism, BasicProof) in G_theory, but a wrapped list of (ProofStatus proof_tree) in a logic specific Theory.

thmStatus :: SenStatus a tStatus -> [tStatus]

data ThmStatus a

the wrapped list of proof scripts or (AnyComorphism, BasicProof) pairs

Constructors

ThmStatus 

Fields

getThmStatus :: [a]
 

printOMapElemWOrd :: (a -> Doc) -> ElemWOrd a -> Doc

type ThSens a b = OMap String (SenStatus a b)

the map from labels to the theorem plus status (and position)

noSens :: ThSens a b

mapThSensValueM :: Monad m => (a -> m b) -> ThSens a c -> m (ThSens b c)

joinSensAux :: (Ord a, Eq b) => ThSens a b -> ThSens a b -> (ThSens a b, [(String, String)])

join and disambiguate

  • separate Axioms from Theorems
  • don't merge sentences with same key but different contents?

joinSens :: (Ord a, Eq b) => ThSens a b -> ThSens a b -> ThSens a b

reduceSens :: (Ord a, Eq b) => ThSens a b -> ThSens a b

cmpSnd :: Ord a1 => (String, ElemWOrd (SenStatus a1 b)) -> (String, ElemWOrd (SenStatus a1 b)) -> Ordering

mapValue :: (a -> b) -> SenStatus a c -> SenStatus b c

markAsAxiom :: Ord a => Bool -> ThSens a b -> ThSens a b

sets the field isAxiom according to the boolean value; if isAxiom is False for a sentence and set to True, the field wasTheorem is set to True.

markAsGoal :: Ord a => ThSens a b -> ThSens a b

toNamedList :: ThSens a b -> [Named a]

toNamed :: String -> SenStatus a b -> Named a

toThSens :: Ord a => [Named a] -> ThSens a b

putting Sentences from a list into a map

data Theory sign sen proof_tree

theories with a signature and sentences with proof states

Constructors

Theory sign (ThSens sen (ProofStatus proof_tree)) 

Instances

Typeable (* -> * -> * -> *) Theory 
(ShATermConvertible sign, ShATermConvertible sen, ShATermConvertible proof_tree) => ShATermConvertible (Theory sign sen proof_tree) 

data Reason

failure reason

Constructors

Reason [String] 

data GoalStatus

enumeration type representing the status of a goal

Constructors

Open Reason

failure reason

Disproved 
Proved Bool

True means consistent; False inconsistent

data ProofStatus proof_tree

data type representing the proof status for a goal

Constructors

ProofStatus 

Fields

goalName :: String
 
goalStatus :: GoalStatus
 
usedAxioms :: [String]

used axioms

usedProver :: String

name of prover

proofTree :: proof_tree
 
usedTime :: TimeOfDay
 
tacticScript :: TacticScript
 

Instances

Eq proof_tree => Eq (ProofStatus proof_tree) 
Ord proof_tree => Ord (ProofStatus proof_tree) 
Show proof_tree => Show (ProofStatus proof_tree) 
ShATermConvertible proof_tree => ShATermConvertible (ProofStatus proof_tree) 
Typeable (* -> *) ProofStatus 

openProofStatus

Arguments

:: Ord pt 
=> String

name of the goal

-> String

name of the prover

-> pt 
-> ProofStatus pt 

constructs an open proof status with basic information filled in; make sure to set proofTree to a useful value before you access it.

isProvedStat :: ProofStatus proof_tree -> Bool

data ProverKind

different kinds of prover interfaces

hasProverKind :: ProverKind -> ProverTemplate x s m y z -> Bool

determine if a prover kind is implemented

data FreeDefMorphism sentence morphism

Constructors

FreeDefMorphism 

Fields

freeDefMorphism :: morphism
 
pathFromFreeDef :: morphism
 
freeTheory :: [Named sentence]
 
isCofree :: Bool
 

Instances

(Eq sentence, Eq morphism) => Eq (FreeDefMorphism sentence morphism) 
(Ord sentence, Ord morphism) => Ord (FreeDefMorphism sentence morphism) 
(Show sentence, Show morphism) => Show (FreeDefMorphism sentence morphism) 
(ShATermConvertible sentence, ShATermConvertible morphism) => ShATermConvertible (FreeDefMorphism sentence morphism) 
Typeable (* -> * -> *) FreeDefMorphism 

data ProverTemplate theory sentence morphism sublogics proof_tree

prover or consistency checker

Constructors

Prover 

Fields

proverName :: String
 
proverUsable :: IO (Maybe String)
 
proverSublogic :: sublogics
 
proveGUI :: Maybe (String -> theory -> [FreeDefMorphism sentence morphism] -> IO ([ProofStatus proof_tree], [(Named sentence, ProofStatus proof_tree)]))
 
proveCMDLautomaticBatch :: Maybe (Bool -> Bool -> MVar (Result [ProofStatus proof_tree]) -> String -> TacticScript -> theory -> [FreeDefMorphism sentence morphism] -> IO (ThreadId, MVar ()))
 

Instances

Typeable (* -> * -> * -> * -> * -> *) ProverTemplate 

type Prover sign sentence morphism sublogics proof_tree = ProverTemplate (Theory sign sentence proof_tree) sentence morphism sublogics proof_tree

mkProverTemplate :: String -> sublogics -> (String -> theory -> [FreeDefMorphism sentence morphism] -> IO [ProofStatus proof_tree]) -> ProverTemplate theory sentence morphism sublogics proof_tree

mkUsableProver :: String -> String -> sublogics -> (String -> theory -> [FreeDefMorphism sentence morphism] -> IO [ProofStatus proof_tree]) -> ProverTemplate theory sentence morphism sublogics proof_tree

mkAutomaticProver :: String -> String -> sublogics -> (String -> theory -> [FreeDefMorphism sentence morphism] -> IO [ProofStatus proof_tree]) -> (Bool -> Bool -> MVar (Result [ProofStatus proof_tree]) -> String -> TacticScript -> theory -> [FreeDefMorphism sentence morphism] -> IO (ThreadId, MVar ())) -> ProverTemplate theory sentence morphism sublogics proof_tree

data TheoryMorphism sign sen mor proof_tree

theory morphisms between two theories

Constructors

TheoryMorphism 

Fields

tSource :: Theory sign sen proof_tree
 
tTarget :: Theory sign sen proof_tree
 
tMorphism :: mor
 

Instances

Typeable (* -> * -> * -> * -> *) TheoryMorphism 
(ShATermConvertible sign, ShATermConvertible sen, ShATermConvertible mor, ShATermConvertible proof_tree) => ShATermConvertible (TheoryMorphism sign sen mor proof_tree) 

data CCStatus proof_tree

Constructors

CCStatus 

Fields

ccProofTree :: proof_tree
 
ccUsedTime :: TimeOfDay
 
ccResult :: Maybe Bool
 

Instances

ShATermConvertible proof_tree => ShATermConvertible (CCStatus proof_tree) 
Typeable (* -> *) CCStatus 

data ConsChecker sign sentence sublogics morphism proof_tree

Constructors

ConsChecker 

Fields

ccName :: String
 
ccUsable :: IO (Maybe String)
 
ccSublogic :: sublogics
 
ccBatch :: Bool
 
ccNeedsTimer :: Bool
 
ccAutomatic :: String -> TacticScript -> TheoryMorphism sign sentence morphism proof_tree -> [FreeDefMorphism sentence morphism] -> IO (CCStatus proof_tree)
 

Instances

Typeable (* -> * -> * -> * -> * -> *) ConsChecker 

mkConsChecker :: String -> sublogics -> (String -> TacticScript -> TheoryMorphism sign sentence morphism proof_tree -> [FreeDefMorphism sentence morphism] -> IO (CCStatus proof_tree)) -> ConsChecker sign sentence sublogics morphism proof_tree

mkUsableConsChecker :: String -> String -> sublogics -> (String -> TacticScript -> TheoryMorphism sign sentence morphism proof_tree -> [FreeDefMorphism sentence morphism] -> IO (CCStatus proof_tree)) -> ConsChecker sign sentence sublogics morphism proof_tree