Hets - the Heterogeneous Tool Set
Copyright(c) Till Mossakowski Uni Bremen 2002-2006
LicenseGPLv2 or higher, see LICENSE.txt
Maintainertill@informatik.uni-bremen.de
Stabilityprovisional
Portabilitynon-portable(Logic)
Safe HaskellNone

Static.DevGraph

Description

Central datastructures for development graphs Follows Sect. IV:4.2 of the CASL Reference Manual.

We also provide functions for constructing and modifying development graphs. However note that these changes need to be propagated to the GUI if they also shall be visible in the displayed development graph.

Synopsis

types for structured specification analysis

basic types

data NodeSig Source #

Node with signature in a DG

Constructors

NodeSig 

Fields

Instances

Instances details
Eq NodeSig Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: NodeSig -> NodeSig -> Bool

(/=) :: NodeSig -> NodeSig -> Bool

Show NodeSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> NodeSig -> ShowS

show :: NodeSig -> String

showList :: [NodeSig] -> ShowS

Pretty NodeSig Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG NodeSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> NodeSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, NodeSig) Source #

data MaybeNode Source #

NodeSig or possibly the empty sig in a logic (but since we want to avoid lots of vsacuous nodes with empty sig, we do not assign a real node in the DG here)

Instances

Instances details
Eq MaybeNode Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: MaybeNode -> MaybeNode -> Bool

(/=) :: MaybeNode -> MaybeNode -> Bool

Show MaybeNode Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> MaybeNode -> ShowS

show :: MaybeNode -> String

showList :: [MaybeNode] -> ShowS

ShATermLG MaybeNode Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> MaybeNode -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, MaybeNode) Source #

newtype Renamed Source #

a wrapper for renamings with a trivial Ord instance

Constructors

Renamed RENAMING 

Instances

Instances details
Eq Renamed Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: Renamed -> Renamed -> Bool

(/=) :: Renamed -> Renamed -> Bool

Ord Renamed Source # 
Instance details

Defined in Static.DevGraph

Methods

compare :: Renamed -> Renamed -> Ordering

(<) :: Renamed -> Renamed -> Bool

(<=) :: Renamed -> Renamed -> Bool

(>) :: Renamed -> Renamed -> Bool

(>=) :: Renamed -> Renamed -> Bool

max :: Renamed -> Renamed -> Renamed

min :: Renamed -> Renamed -> Renamed

Show Renamed Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> Renamed -> ShowS

show :: Renamed -> String

showList :: [Renamed] -> ShowS

ShATermLG Renamed Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> Renamed -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, Renamed) Source #

data MaybeRestricted Source #

a wrapper for restrictions with a trivial Ord instance

Instances

Instances details
Eq MaybeRestricted Source # 
Instance details

Defined in Static.DevGraph

Ord MaybeRestricted Source # 
Instance details

Defined in Static.DevGraph

Show MaybeRestricted Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> MaybeRestricted -> ShowS

show :: MaybeRestricted -> String

showList :: [MaybeRestricted] -> ShowS

ShATermLG MaybeRestricted Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> MaybeRestricted -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, MaybeRestricted) Source #

data DGOrigin Source #

Data type indicating the origin of nodes and edges in the input language This is not used in the DG calculus, only may be used in the future for reconstruction of input and management of change.

Instances

Instances details
Eq DGOrigin Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: DGOrigin -> DGOrigin -> Bool

(/=) :: DGOrigin -> DGOrigin -> Bool

Ord DGOrigin Source # 
Instance details

Defined in Static.DevGraph

Methods

compare :: DGOrigin -> DGOrigin -> Ordering

(<) :: DGOrigin -> DGOrigin -> Bool

(<=) :: DGOrigin -> DGOrigin -> Bool

(>) :: DGOrigin -> DGOrigin -> Bool

(>=) :: DGOrigin -> DGOrigin -> Bool

max :: DGOrigin -> DGOrigin -> DGOrigin

min :: DGOrigin -> DGOrigin -> DGOrigin

Show DGOrigin Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DGOrigin -> ShowS

show :: DGOrigin -> String

showList :: [DGOrigin] -> ShowS

Pretty DGOrigin Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG DGOrigin Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DGOrigin -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DGOrigin) Source #

data DGNodeInfo Source #

node content or reference to another library's node

Constructors

DGNode 
DGRef 

Fields

Instances

Instances details
Eq DGNodeInfo Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: DGNodeInfo -> DGNodeInfo -> Bool

(/=) :: DGNodeInfo -> DGNodeInfo -> Bool

Show DGNodeInfo Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DGNodeInfo -> ShowS

show :: DGNodeInfo -> String

showList :: [DGNodeInfo] -> ShowS

Pretty DGNodeInfo Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG DGNodeInfo Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DGNodeInfo -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DGNodeInfo) Source #

data DGNodeLab Source #

node inscriptions in development graphs. Nothing entries indicate "not computed yet"

Constructors

DGNodeLab 

Fields

Instances

Instances details
Show DGNodeLab Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DGNodeLab -> ShowS

show :: DGNodeLab -> String

showList :: [DGNodeLab] -> ShowS

Pretty DGNodeLab Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG DGNodeLab Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DGNodeLab -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DGNodeLab) Source #

sensWithKind :: (forall a. SenStatus a (AnyComorphism, BasicProof) -> Bool) -> G_theory -> [String] Source #

hasSenKind :: (forall a. SenStatus a (AnyComorphism, BasicProof) -> Bool) -> DGNodeLab -> Bool Source #

hasOpenGoals :: DGNodeLab -> Bool Source #

test if a given node label has local open goals

isInternalNode :: DGNodeLab -> Bool Source #

check if the node has an internal name

getNodeConservativity :: LNode DGNodeLab -> Conservativity Source #

returns the Conservativity if the given node has one, otherwise none

hasOpenNodeConsStatus :: Bool -> DGNodeLab -> Bool Source #

test if a node conservativity is open, return input for refs or nodes with normal forms

getRealDGNodeType :: DGNodeLab -> DGNodeType Source #

creates a DGNodeType from a DGNodeLab

newtype Fitted Source #

a wrapper for fitting morphisms with a trivial Eq instance

Constructors

Fitted [G_mapping] 

Instances

Instances details
Eq Fitted Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: Fitted -> Fitted -> Bool

(/=) :: Fitted -> Fitted -> Bool

Show Fitted Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> Fitted -> ShowS

show :: Fitted -> String

showList :: [Fitted] -> ShowS

ShATermLG Fitted Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> Fitted -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, Fitted) Source #

data DGLinkType Source #

Link types of development graphs, Sect. IV:4.2 of the CASL Reference Manual explains them in depth.

Instances

Instances details
Eq DGLinkType Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: DGLinkType -> DGLinkType -> Bool

(/=) :: DGLinkType -> DGLinkType -> Bool

Show DGLinkType Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DGLinkType -> ShowS

show :: DGLinkType -> String

showList :: [DGLinkType] -> ShowS

Pretty DGLinkType Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG DGLinkType Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DGLinkType -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DGLinkType) Source #

thmLinkStatus :: DGLinkType -> Maybe ThmLinkStatus Source #

extract theorem link status from link type

thmProofBasis :: DGLinkType -> ProofBasis Source #

extract proof basis from link type

data DGLinkLab Source #

link inscriptions in development graphs

Constructors

DGLink 

Instances

Instances details
Eq DGLinkLab Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: DGLinkLab -> DGLinkLab -> Bool

(/=) :: DGLinkLab -> DGLinkLab -> Bool

Show DGLinkLab Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DGLinkLab -> ShowS

show :: DGLinkLab -> String

showList :: [DGLinkLab] -> ShowS

Pretty DGLinkLab Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG DGLinkLab Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DGLinkLab -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DGLinkLab) Source #

Eq (DaVinciArc EdgeValue) 
Instance details

Defined in Taxonomy.AbstractGraphView

Methods

(==) :: DaVinciArc EdgeValue -> DaVinciArc EdgeValue -> Bool

(/=) :: DaVinciArc EdgeValue -> DaVinciArc EdgeValue -> Bool

Eq (DaVinciArc EdgeValue) 
Instance details

Defined in GUI.GraphAbstraction

Methods

(==) :: DaVinciArc EdgeValue -> DaVinciArc EdgeValue -> Bool

(/=) :: DaVinciArc EdgeValue -> DaVinciArc EdgeValue -> Bool

nameDGLink :: String -> DGLinkLab -> DGLinkLab Source #

name a link

getDGLinkType :: DGLinkLab -> String Source #

describe the link type of the label

getRealDGLinkType :: DGLinkLab -> DGEdgeType Source #

creates a DGEdgeType from a DGLinkLab

getProofBasis :: DGLinkLab -> ProofBasis Source #

return the proof basis of the given linklab

setProof :: ThmLinkStatus -> DGLinkType -> DGLinkType Source #

set proof for theorem links

methods to check the type of an edge

hasOutgoingFreeEdge :: DGraph -> Node -> Bool Source #

types for global environments

data GenSig Source #

import, formal parameters and united signature of formal params

Instances

Instances details
Show GenSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> GenSig -> ShowS

show :: GenSig -> String

showList :: [GenSig] -> ShowS

ShATermLG GenSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> GenSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, GenSig) Source #

getGenSigNodes :: GenSig -> Set Node Source #

data ExtGenSig Source #

genericity and body

Constructors

ExtGenSig 

Instances

Instances details
Show ExtGenSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> ExtGenSig -> ShowS

show :: ExtGenSig -> String

showList :: [ExtGenSig] -> ShowS

Pretty ExtGenSig Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG ExtGenSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> ExtGenSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, ExtGenSig) Source #

data ExtViewSig Source #

source, morphism, parameterized target

Instances

Instances details
Show ExtViewSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> ExtViewSig -> ShowS

show :: ExtViewSig -> String

showList :: [ExtViewSig] -> ShowS

Pretty ExtViewSig Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG ExtViewSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> ExtViewSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, ExtViewSig) Source #

types for architectural and unit specification analysis (as defined for basic static semantics in Chap. III:5.1)

data UnitSig Source #

Constructors

UnitSig [NodeSig] NodeSig (Maybe NodeSig) 

Instances

Instances details
Eq UnitSig Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: UnitSig -> UnitSig -> Bool

(/=) :: UnitSig -> UnitSig -> Bool

Show UnitSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> UnitSig -> ShowS

show :: UnitSig -> String

showList :: [UnitSig] -> ShowS

Pretty UnitSig Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG UnitSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> UnitSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, UnitSig) Source #

data ImpUnitSigOrSig Source #

Instances

Instances details
Eq ImpUnitSigOrSig Source # 
Instance details

Defined in Static.DevGraph

Show ImpUnitSigOrSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> ImpUnitSigOrSig -> ShowS

show :: ImpUnitSigOrSig -> String

showList :: [ImpUnitSigOrSig] -> ShowS

Pretty ImpUnitSigOrSig Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG ImpUnitSigOrSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> ImpUnitSigOrSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, ImpUnitSigOrSig) Source #

data RefSig Source #

Instances

Instances details
Eq RefSig Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: RefSig -> RefSig -> Bool

(/=) :: RefSig -> RefSig -> Bool

Show RefSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> RefSig -> ShowS

show :: RefSig -> String

showList :: [RefSig] -> ShowS

Pretty RefSig Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG RefSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> RefSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, RefSig) Source #

getRefSigNodes :: RefSig -> Set Node Source #

data BranchSig Source #

Instances

Instances details
Eq BranchSig Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: BranchSig -> BranchSig -> Bool

(/=) :: BranchSig -> BranchSig -> Bool

Show BranchSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> BranchSig -> ShowS

show :: BranchSig -> String

showList :: [BranchSig] -> ShowS

ShATermLG BranchSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> BranchSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, BranchSig) Source #

data GlobalEntry Source #

an entry of the global environment

Instances

Instances details
Show GlobalEntry Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> GlobalEntry -> ShowS

show :: GlobalEntry -> String

showList :: [GlobalEntry] -> ShowS

Pretty GlobalEntry Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG GlobalEntry Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> GlobalEntry -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, GlobalEntry) Source #

data AlignSig Source #

Instances

Instances details
Eq AlignSig Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: AlignSig -> AlignSig -> Bool

(/=) :: AlignSig -> AlignSig -> Bool

Show AlignSig Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> AlignSig -> ShowS

show :: AlignSig -> String

showList :: [AlignSig] -> ShowS

Pretty AlignSig Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG AlignSig Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> AlignSig -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, AlignSig) Source #

change and history types

data DGChange Source #

the edit operations of the DGraph

Instances

Instances details
Show DGChange Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DGChange -> ShowS

show :: DGChange -> String

showList :: [DGChange] -> ShowS

Pretty DGChange Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG DGChange Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DGChange -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DGChange) Source #

data HistElem Source #

Instances

Instances details
ShATermLG HistElem Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> HistElem -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, HistElem) Source #

data RTNodeType Source #

Constructors

RTPlain UnitSig 
RTRef Node 

Instances

Instances details
Eq RTNodeType Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: RTNodeType -> RTNodeType -> Bool

(/=) :: RTNodeType -> RTNodeType -> Bool

Show RTNodeType Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> RTNodeType -> ShowS

show :: RTNodeType -> String

showList :: [RTNodeType] -> ShowS

Pretty RTNodeType Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG RTNodeType Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> RTNodeType -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, RTNodeType) Source #

data RTNodeLab Source #

Constructors

RTNodeLab 

Fields

Instances

Instances details
Eq RTNodeLab Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: RTNodeLab -> RTNodeLab -> Bool

(/=) :: RTNodeLab -> RTNodeLab -> Bool

Show RTNodeLab Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> RTNodeLab -> ShowS

show :: RTNodeLab -> String

showList :: [RTNodeLab] -> ShowS

Pretty RTNodeLab Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG RTNodeLab Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> RTNodeLab -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, RTNodeLab) Source #

data RTLinkType Source #

Constructors

RTRefine 
RTComp 

Instances

Instances details
Eq RTLinkType Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: RTLinkType -> RTLinkType -> Bool

(/=) :: RTLinkType -> RTLinkType -> Bool

Show RTLinkType Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> RTLinkType -> ShowS

show :: RTLinkType -> String

showList :: [RTLinkType] -> ShowS

ShATermLG RTLinkType Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> RTLinkType -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, RTLinkType) Source #

data RTLinkLab Source #

Constructors

RTLink 

Fields

Instances

Instances details
Eq RTLinkLab Source # 
Instance details

Defined in Static.DevGraph

Methods

(==) :: RTLinkLab -> RTLinkLab -> Bool

(/=) :: RTLinkLab -> RTLinkLab -> Bool

Show RTLinkLab Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> RTLinkLab -> ShowS

show :: RTLinkLab -> String

showList :: [RTLinkLab] -> ShowS

ShATermLG RTLinkLab Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> RTLinkLab -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, RTLinkLab) Source #

addNodeRT :: DGraph -> UnitSig -> String -> (Node, DGraph) Source #

addSpecNodeRT :: DGraph -> UnitSig -> String -> (Node, DGraph) Source #

updateNodeNameRT :: DGraph -> Node -> Bool -> String -> DGraph Source #

updateNodeNameSpecRT :: DGraph -> Node -> String -> DGraph Source #

copySubTree :: DGraph -> Node -> Maybe Node -> (DGraph, Map Node Node) Source #

copySubTreeN :: DGraph -> [Node] -> Map Node Node -> (DGraph, Map Node Node) Source #

copyNode :: Node -> (DGraph, Map Node Node) -> LNode RTLinkLab -> (DGraph, Map Node Node) Source #

addRefEdgeRT :: DGraph -> Node -> Node -> DGraph Source #

addEdgesToNodeRT :: DGraph -> [Node] -> Node -> DGraph Source #

data DiagNodeLab Source #

Constructors

DiagNode 

Fields

Instances

Instances details
Show DiagNodeLab Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DiagNodeLab -> ShowS

show :: DiagNodeLab -> String

showList :: [DiagNodeLab] -> ShowS

ShATermLG DiagNodeLab Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DiagNodeLab -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DiagNodeLab) Source #

data DiagLinkLab Source #

Constructors

DiagLink 

Fields

Instances

Instances details
Show DiagLinkLab Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DiagLinkLab -> ShowS

show :: DiagLinkLab -> String

showList :: [DiagLinkLab] -> ShowS

ShATermLG DiagLinkLab Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DiagLinkLab -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DiagLinkLab) Source #

data Diag Source #

Constructors

Diagram 

Instances

Instances details
Show Diag Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> Diag -> ShowS

show :: Diag -> String

showList :: [Diag] -> ShowS

Pretty Diag Source # 
Instance details

Defined in Static.ArchDiagram

Methods

pretty :: Diag -> Doc Source #

pretties :: [Diag] -> Doc Source #

ShATermLG Diag Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> Diag -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, Diag) Source #

data DGraph Source #

the actual development graph with auxiliary information. A G_sign should be stored in sigMap under its gSignSelfIdx. The same applies to G_morphism with morMap and gMorphismSelfIdx resp. G_theory with thMap and gTheorySelfIdx.

Constructors

DGraph 

Fields

Instances

Instances details
Show DGraph Source # 
Instance details

Defined in Static.DevGraph

Methods

showsPrec :: Int -> DGraph -> ShowS

show :: DGraph -> String

showList :: [DGraph] -> ShowS

Pretty DGraph Source # 
Instance details

Defined in Static.PrintDevGraph

ShATermLG DGraph Source # 
Instance details

Defined in ATC.DevGraph

Methods

toShATermLG :: ATermTable -> DGraph -> IO (ATermTable, Int) Source #

fromShATermLG :: LogicGraph -> Int -> ATermTable -> (ATermTable, DGraph) Source #

emptyLibEnv :: LibEnv Source #

an empty environment

utility functions

for node signatures

accessing node label

dgn_origin :: DGNodeLab -> DGOrigin Source #

get the origin of a non-reference node (partial)

dgn_libname :: DGNodeLab -> LibName Source #

get the referenced library (partial)

dgn_node :: DGNodeLab -> Node Source #

get the referenced node (partial)

dgn_sign :: DGNodeLab -> G_sign Source #

get the signature of a node's theory (total)

getDGNodeName :: DGNodeLab -> String Source #

gets the name of a development graph node as a string (total)

globOrLocTh :: DGNodeLab -> G_theory Source #

get the global theory of a node or the local one if missing

creating node content and label

newNodeInfo :: DGOrigin -> DGNodeInfo Source #

create default content

newRefInfo :: LibName -> Node -> DGNodeInfo Source #

create a reference node part

newInfoNodeLab :: NodeName -> DGNodeInfo -> G_theory -> DGNodeLab Source #

create a new node label

newNodeLab :: NodeName -> DGOrigin -> G_theory -> DGNodeLab Source #

create a new node label using newNodeInfo and newInfoNodeLab

handle the lock of a node

treatNodeLock :: (MVar () -> a) -> DGNodeLab -> a Source #

wrapper to access the maybe lock

tryLockLocal :: DGNodeLab -> IO Bool Source #

Tries to acquire the local lock. Return False if already acquired.

unlockLocal :: DGNodeLab -> IO () Source #

Releases the local lock.

hasLock :: DGNodeLab -> Bool Source #

checks if locking MVar is initialized

edge label equalities

eqDGLinkLabContent :: DGLinkLab -> DGLinkLab -> Bool Source #

equality without comparing the edge ids

eqDGLinkLabById :: DGLinkLab -> DGLinkLab -> Bool Source #

equality comparing ids only

setting index maps

looking up in index maps

getting index maps and their maximal index

lookup other graph parts

lookupInAllRefNodesDG :: DGNodeInfo -> DGraph -> Maybe Node Source #

lookup a reference node for a given libname and node

lookup nodes by their names or other properties

lookupNodeByName :: String -> DGraph -> [LNode DGNodeLab] Source #

lookup a node in the graph by its name, using showName to convert nodenames.

lookupUniqueNodeByName :: String -> DGraph -> Maybe (LNode DGNodeLab) Source #

filterLocalNodesByName :: String -> DGraph -> [LNode DGNodeLab] Source #

filters all local nodes in the graph by their names, using showName to convert nodenames. See also lookupNodeByName.

filterRefNodesByName :: String -> LibName -> DGraph -> [LNode DGNodeLab] Source #

filter all ref nodes in the graph by their names, using showName to convert nodenames. See also lookupNodeByName.

lookupLocalNodeByNameInEnv :: LibEnv -> String -> Maybe (DGraph, LNode DGNodeLab) Source #

Given a LibEnv we search each DGraph in it for a (maybe referenced) node with the given name. We return the labeled node and the Graph where this node resides as local node. See also lookupLocalNode.

lookupLocalNodeByName :: LibEnv -> DGraph -> String -> Maybe (DGraph, LNode DGNodeLab) Source #

We search only the given DGraph for a (maybe referenced) node with the given name. We return the labeled node and the Graph where this node resides as local node. See also lookupLocalNode.

lookupLocalNode :: LibEnv -> DGraph -> Node -> (DGraph, LNode DGNodeLab) Source #

Given a Node and a DGraph we follow the node to the graph where it is defined as a local node.

lookupRefNode :: LibEnv -> LibName -> DGraph -> Node -> (LibName, DGraph, LNode DGNodeLab) Source #

Given a Node and a DGraph we follow the node to the graph where it is defined .

lookupRefNodeM :: LibEnv -> Maybe LibName -> DGraph -> Node -> (Maybe LibName, DGraph, LNode DGNodeLab) Source #

accessing the actual graph

getNewNodeDG :: DGraph -> Node Source #

get the next available node id

labNodesDG :: DGraph -> [LNode DGNodeLab] Source #

get all the nodes

labEdgesDG :: DGraph -> [LEdge DGLinkLab] Source #

get all the edges

isEmptyDG :: DGraph -> Bool Source #

checks if a DG is empty or not.

gelemDG :: Node -> DGraph -> Bool Source #

checks if a given node belongs to a given DG

innDG :: DGraph -> Node -> [LEdge DGLinkLab] Source #

get all the incoming ledges of the given node in a given DG

outDG :: DGraph -> Node -> [LEdge DGLinkLab] Source #

get all the outgoing ledges of the given node in a given DG

nodesDG :: DGraph -> [Node] Source #

get all the nodes of the given DG

labDG :: DGraph -> Node -> DGNodeLab Source #

tries to get the label of the given node in a given DG

labRT :: DGraph -> Node -> RTNodeLab Source #

tries to get the label of the given node in a given RT

getNameOfNode :: Node -> DGraph -> String Source #

get the name of a node from the number of node

newNodesDG :: Int -> DGraph -> [Node] Source #

gets the given number of new node-ids in a given DG.

safeContextDG :: String -> DGraph -> Node -> Context DGNodeLab DGLinkLab Source #

get the context and throw input string as error message

manipulate graph

labelNodeDG :: LNode DGNodeLab -> DGraph -> (DGraph, DGNodeLab) Source #

sets the node with new label and returns the new graph and the old label

delNodeDG :: Node -> DGraph -> DGraph Source #

delete the node out of the given DG

delNodesDG :: [Node] -> DGraph -> DGraph Source #

delete a list of nodes out of the given DG

insNodeDG :: LNode DGNodeLab -> DGraph -> DGraph Source #

insert a new node into given DGraph

insLNodeDG :: LNode DGNodeLab -> DGraph -> DGraph Source #

inserts a lnode into a given DG

insNodesDG :: [LNode DGNodeLab] -> DGraph -> DGraph Source #

insert a new node with the given node content into a given DGraph

delLEdgeDG :: LEdge DGLinkLab -> DGraph -> DGraph Source #

delete a labeled edge out of the given DG

insInclEdgeDG :: LogicGraph -> DGraph -> NodeSig -> NodeSig -> Result DGraph Source #

inserts an edge between two nodes, labelled with inclusion

insLEdgeDG :: LEdge DGLinkLab -> DGraph -> (LEdge DGLinkLab, DGraph) Source #

insert a labeled edge into a given DG, return possibly new id of edge

insLEdgeNubDG :: LEdge DGLinkLab -> DGraph -> DGraph Source #

tries to insert a labeled edge into a given DG, but if this edge already exists, then does nothing.

insEdgeAsIs :: LEdge DGLinkLab -> DGraph -> DGraph Source #

inserts a new edge into the DGraph using it's own edgeId. ATTENTION: the caller must ensure that an edgeId is not used twice

insEdgesDG :: [LEdge DGLinkLab] -> DGraph -> DGraph Source #

insert a list of labeled edge into a given DG

mkGraphDG :: [LNode DGNodeLab] -> [LEdge DGLinkLab] -> DGraph -> DGraph Source #

merge a list of lnodes and ledges into a given DG

getDGLinksById :: EdgeId -> DGraph -> [LEdge DGLinkLab] Source #

get links by id (inefficiently)

lookupUniqueLink :: MonadFail m => Node -> EdgeId -> DGraph -> m (LEdge DGLinkLab) Source #

find a unique link given its source node and edgeId

top-level functions

initLocking :: DGraph -> LNode DGNodeLab -> IO (DGraph, DGNodeLab) Source #

initializes the MVar for locking if nessesary

lookupDGraph :: LibName -> LibEnv -> DGraph Source #

returns the DGraph that belongs to the given library name

computeLocalTheory :: Monad m => LibEnv -> LibName -> Node -> m G_theory Source #

compute the theory of a given node. If this node is a DGRef, the referenced node is looked up first.

computeLocalNodeTheory :: Monad m => LibEnv -> DGraph -> Node -> m G_theory Source #

test link types

liftE :: (DGLinkType -> a) -> LEdge DGLinkLab -> a Source #

create link types

link conservativity

getConservativity :: LEdge DGLinkLab -> Conservativity Source #

returns the Conservativity if the given edge has one, otherwise none

getConservativityOfPath :: [LEdge DGLinkLab] -> Conservativity Source #

returns the conservativity of the given path

bottom up traversal

getLibDepRel :: LibEnv -> Rel LibName Source #

Creates a LibName relation wrt dependencies via reference nodes

dependentLibs :: LibName -> LibEnv -> [LibName] Source #

Get imported libs in topological order, i.e. lib(s) without imports first. The input lib-name will be last