Global.hs revision 294e24edea598311fa5af82e2f6a9cdaa531f5e7
da9cd70c94407d05ad340bdcf620adb579b21e36sinModule : $Header$
da9cd70c94407d05ad340bdcf620adb579b21e36sinCopyright : (c) Jorina F. Gerken, Till Mossakowski, Uni Bremen 2002-2006
da9cd70c94407d05ad340bdcf620adb579b21e36sinLicense : similar to LGPL, see HetCATS/LICENSE.txt or LIZENZ.txt
da9cd70c94407d05ad340bdcf620adb579b21e36sinMaintainer : jfgerken@tzi.de
da9cd70c94407d05ad340bdcf620adb579b21e36sinStability : provisional
da9cd70c94407d05ad340bdcf620adb579b21e36sinPortability : non-portable(DevGraph)
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignacglobal proofs in development graphs.
da9cd70c94407d05ad340bdcf620adb579b21e36sin Follows Sect. IV:4.4 of the CASL Reference Manual.
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignactodo for Jorina:
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac - bei GlobDecomp hinzuf�gen:
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac zus�tzlich alle Pfade K<--theta-- M --sigma-->N in den aktuellen
da9cd70c94407d05ad340bdcf620adb579b21e36sin Knoten N, die mit einem HidingDef anfangen, und danach nur GlobalDef
da9cd70c94407d05ad340bdcf620adb579b21e36sin theta ist der Signaturmorphismus des HidingDef's (geht "falsch rum")
da9cd70c94407d05ad340bdcf620adb579b21e36sin sigma ist die Komposition der Signaturmorphismen auf dem restl. Pfad
da9cd70c94407d05ad340bdcf620adb579b21e36sin f�r jeden solchen Pfad: einen HidingThm theta einf�gen. sigma ist
da9cd70c94407d05ad340bdcf620adb579b21e36sin der normale Morphismus (wie bei jedem anderen Link)
da9cd70c94407d05ad340bdcf620adb579b21e36sin siehe auch Seite 302 des CASL Reference Manual
da9cd70c94407d05ad340bdcf620adb579b21e36sinmodule Proofs.Global (globSubsume, globDecomp, globDecompAux, globDecompFromList, globSubsumeFromList) where
da9cd70c94407d05ad340bdcf620adb579b21e36sin-- ---------------------
da9cd70c94407d05ad340bdcf620adb579b21e36sin-- global decomposition
da9cd70c94407d05ad340bdcf620adb579b21e36sin-- ---------------------
da9cd70c94407d05ad340bdcf620adb579b21e36sin{- apply rule GlobDecomp to all global theorem links in the current DG
da9cd70c94407d05ad340bdcf620adb579b21e36sin current DG = DGm
da9cd70c94407d05ad340bdcf620adb579b21e36sin add to proof status the pair ([GlobDecomp e1,...,GlobDecomp en],DGm+1)
da9cd70c94407d05ad340bdcf620adb579b21e36sin where e1...en are the global theorem links in DGm
da9cd70c94407d05ad340bdcf620adb579b21e36sin DGm+1 results from DGm by application of GlobDecomp e1,...,GlobDecomp en -}
da9cd70c94407d05ad340bdcf620adb579b21e36sin{- applies global decomposition to the list of edges given (global theorem edges)
da9cd70c94407d05ad340bdcf620adb579b21e36sin if possible, if empty list is given then to all unproven global theorems -}
da9cd70c94407d05ad340bdcf620adb579b21e36singlobDecompFromList :: LIB_NAME -> [LEdge DGLinkLab] -> LibEnv -> LibEnv
da9cd70c94407d05ad340bdcf620adb579b21e36singlobDecompFromList ln globalThmEdges proofStatus =
da9cd70c94407d05ad340bdcf620adb579b21e36sin let dgraph = lookupDGraph ln proofStatus
da9cd70c94407d05ad340bdcf620adb579b21e36sin finalGlobalThmEdges = filter isUnprovenGlobalThm globalThmEdges
da9cd70c94407d05ad340bdcf620adb579b21e36sin (newDGraph, newHistoryElem)= globDecompAux dgraph finalGlobalThmEdges ([],[])
da9cd70c94407d05ad340bdcf620adb579b21e36sin in mkResultProofStatus ln proofStatus newDGraph newHistoryElem
da9cd70c94407d05ad340bdcf620adb579b21e36sin{- applies global decomposition to all unproven global theorem edges
da9cd70c94407d05ad340bdcf620adb579b21e36sin if possible -}
da9cd70c94407d05ad340bdcf620adb579b21e36singlobDecomp ::LIB_NAME -> LibEnv -> LibEnv
da9cd70c94407d05ad340bdcf620adb579b21e36singlobDecomp ln proofStatus =
da9cd70c94407d05ad340bdcf620adb579b21e36sin let dgraph = lookupDGraph ln proofStatus
da9cd70c94407d05ad340bdcf620adb579b21e36sin globalThmEdges = filter isUnprovenGlobalThm (labEdges dgraph)
da9cd70c94407d05ad340bdcf620adb579b21e36sin in globDecompFromList ln globalThmEdges proofStatus
from the development graph (i.e. insertions of edges that are
newChanges = (filter (not.isLocalThmInsertion) changes)
(i.e. every edge that has as its source node the tgt node of the path)-}
(i.e. every edge that has as its source node the tgt node of the path)-}
equivalent edge or path (i.e. an edge or path with the same src, tgt and