Hets - the Heterogeneous Tool Set

Copyright(c) Uni Bremen 2005-2007
LicenseGPLv2 or higher, see LICENSE.txt
Maintainerluecke@informatik.uni-bremen.de
Stabilityprovisional
Portabilitynon-portable(Logic)
Safe HaskellNone

Proofs.AbstractState

Description

The ProofState data structure abstracts the GUI implementation details away by allowing callback function to use it as the sole input and output. It is also used by the CMDL interface.

Synopsis

Documentation

data G_prover

provers and consistency checkers for specific logics

Constructors

forall lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree . Logic lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree => G_prover lid (Prover sign sentence morphism sublogics proof_tree) 

coerceProver :: (Logic lid1 sublogics1 basic_spec1 sentence1 symb_items1 symb_map_items1 sign1 morphism1 symbol1 raw_symbol1 proof_tree1, Logic lid2 sublogics2 basic_spec2 sentence2 symb_items2 symb_map_items2 sign2 morphism2 symbol2 raw_symbol2 proof_tree2, Monad m) => lid1 -> lid2 -> String -> Prover sign1 sentence1 morphism1 sublogics1 proof_tree1 -> m (Prover sign2 sentence2 morphism2 sublogics2 proof_tree2)

data G_cons_checker

Constructors

forall lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree . Logic lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree => G_cons_checker lid (ConsChecker sign sentence sublogics morphism proof_tree) 

coerceConsChecker :: (Logic lid1 sublogics1 basic_spec1 sentence1 symb_items1 symb_map_items1 sign1 morphism1 symbol1 raw_symbol1 proof_tree1, Logic lid2 sublogics2 basic_spec2 sentence2 symb_items2 symb_map_items2 sign2 morphism2 symbol2 raw_symbol2 proof_tree2, Monad m) => lid1 -> lid2 -> String -> ConsChecker sign1 sentence1 sublogics1 morphism1 proof_tree1 -> m (ConsChecker sign2 sentence2 sublogics2 morphism2 proof_tree2)

data ProofActions

Possible actions for GUI which are manipulating ProofState

Constructors

ProofActions 

Fields

proveF :: ProofState -> IO (Result ProofState)

called whenever the Prove button is clicked

fineGrainedSelectionF :: ProofState -> IO (Result ProofState)

called whenever the "More fine grained selection" button is clicked

recalculateSublogicF :: ProofState -> IO ProofState

called whenever a (de-)selection occured for updating sublogic

data ProofState

Represents the global state of the prover GUI.

Constructors

ProofState 

Fields

theoryName :: String

theory name

currentTheory :: G_theory

Grothendieck theory

proversMap :: KnownProversMap

currently known provers

selectedGoals :: [String]

currently selected goals

includedAxioms :: [String]

axioms to include for the proof

includedTheorems :: [String]

theorems to include for the proof

proverRunning :: Bool

whether a prover is running or not

accDiags :: [Diagnosis]

accumulated Diagnosis during Proofs

comorphismsToProvers :: [(G_prover, AnyComorphism)]

comorphisms fitting with sublogic of this G_theory

selectedProver :: Maybe String

which prover (if any) is currently selected

selectedConsChecker :: Maybe String

which consistency checker (if any) is currently selected

selectedTheory :: G_theory

theory based on selected goals, axioms and proven theorems

Instances

initialState :: String -> G_theory -> KnownProversMap -> ProofState

Creates an initial State.

recalculateSublogicAndSelectedTheory :: ProofState -> ProofState

recalculation of sublogic upon (de)selection of goals, axioms and proven theorems

markProved :: Logic lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree => AnyComorphism -> lid -> [ProofStatus proof_tree] -> ProofState -> ProofState

the list of proof statuses is integrated into the goalMap of the state after validation of the Disproved Statuses

data G_theory_with_prover

a Grothendieck pair of prover and theory which are in the same logic

Constructors

forall lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree . Logic lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree => G_theory_with_prover lid (Theory sign sentence proof_tree) (Prover sign sentence morphism sublogics proof_tree) 

data G_theory_with_cons_checker

Constructors

forall lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree . Logic lid sublogics basic_spec sentence symb_items symb_map_items sign morphism symbol raw_symbol proof_tree => G_theory_with_cons_checker lid (TheoryMorphism sign sentence morphism proof_tree) (ConsChecker sign sentence sublogics morphism proof_tree) 

prepareForProving :: ProofState -> (G_prover, AnyComorphism) -> Result G_theory_with_prover

prepare the selected theory of the state for proving with the given prover:

  • translation along the comorphism
  • all coercions
  • the lid is valid for the prover and the translated theory