Copyright | (c) Till Mossakowski, Klaus Luettich, Uni Bremen 2002-2005 |
---|---|
License | GPLv2 or higher, see LICENSE.txt |
Maintainer | till@informatik.uni-bremen.de |
Stability | provisional |
Portability | non-portable (deriving Typeable) |
Safe Haskell | None |
General datastructures for theorem prover interfaces
- type SenStatus a tStatus = SenAttr a (ThmStatus tStatus)
- thmStatus :: SenStatus a tStatus -> [tStatus]
- data ThmStatus a = ThmStatus {
- getThmStatus :: [a]
- emptySenStatus :: SenStatus a b
- printOMapElemWOrd :: (a -> Doc) -> ElemWOrd a -> Doc
- type ThSens a b = OMap String (SenStatus a b)
- 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)])
- 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
- cmpSenEle :: Ord a1 => ElemWOrd (SenStatus a1 b) -> ElemWOrd (SenStatus a1 b) -> Ordering
- mapValue :: (a -> b) -> SenStatus a c -> SenStatus b c
- markAsAxiom :: Ord a => Bool -> ThSens a b -> ThSens a b
- 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
- data Theory sign sen proof_tree = Theory sign (ThSens sen (ProofStatus proof_tree))
- data TacticScript = TacticScript String
- data Reason = Reason [String]
- data GoalStatus
- isOpenGoal :: GoalStatus -> Bool
- openGoalStatus :: GoalStatus
- data ProofStatus proof_tree = ProofStatus {
- goalName :: String
- goalStatus :: GoalStatus
- usedAxioms :: [String]
- usedProver :: String
- proofTree :: proof_tree
- usedTime :: TimeOfDay
- tacticScript :: TacticScript
- openProofStatus :: Ord pt => String -> String -> pt -> ProofStatus pt
- isProvedStat :: ProofStatus proof_tree -> Bool
- isProvedGStat :: GoalStatus -> Bool
- data ProverKind
- hasProverKind :: ProverKind -> ProverTemplate x s m y z -> Bool
- data FreeDefMorphism sentence morphism = FreeDefMorphism {
- freeDefMorphism :: morphism
- pathFromFreeDef :: morphism
- freeTheory :: [Named sentence]
- isCofree :: Bool
- data ProverTemplate theory sentence morphism sublogics proof_tree = Prover {
- 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 ()))
- 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 = TheoryMorphism {}
- data CCStatus proof_tree = CCStatus {
- ccProofTree :: proof_tree
- ccUsedTime :: TimeOfDay
- ccResult :: Maybe Bool
- data ConsChecker sign sentence sublogics morphism proof_tree = ConsChecker {
- 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)
- 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
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
.
data ThmStatus a
the wrapped list of proof scripts or (AnyComorphism, BasicProof) pairs
ThmStatus | |
|
emptySenStatus :: SenStatus a b
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)
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?
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
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]
data Theory sign sen proof_tree
theories with a signature and sentences with proof states
Theory sign (ThSens sen (ProofStatus proof_tree)) |
Typeable (* -> * -> * -> *) Theory | |
(ShATermConvertible sign, ShATermConvertible sen, ShATermConvertible proof_tree) => ShATermConvertible (Theory sign sen proof_tree) |
data TacticScript
data Reason
failure reason
data GoalStatus
enumeration type representing the status of a goal
isOpenGoal :: GoalStatus -> Bool
data ProofStatus proof_tree
data type representing the proof status for a goal
ProofStatus | |
|
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 |
:: 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
isProvedGStat :: GoalStatus -> 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
FreeDefMorphism | |
|
(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
Prover | |
|
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
Typeable (* -> * -> * -> * -> *) TheoryMorphism | |
(ShATermConvertible sign, ShATermConvertible sen, ShATermConvertible mor, ShATermConvertible proof_tree) => ShATermConvertible (TheoryMorphism sign sen mor proof_tree) |
data CCStatus proof_tree
CCStatus | |
|
ShATermConvertible proof_tree => ShATermConvertible (CCStatus proof_tree) | |
Typeable (* -> *) CCStatus |
data ConsChecker sign sentence sublogics morphism proof_tree
ConsChecker | |
|
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