-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTypedGraph-DPO-GraphProcess.html
6 lines (6 loc) · 19.5 KB
/
TypedGraph-DPO-GraphProcess.html
1
2
3
4
5
6
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>TypedGraph.DPO.GraphProcess</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_TypedGraph-DPO-GraphProcess.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/TypedGraph.DPO.GraphProcess.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">verigraph-1.1.1: Software specification and verification tool based on graph rewriting.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">TypedGraph.DPO.GraphProcess</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#section.orphans">Orphan instances</a></li></ul></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b = <a href="#v:DoublyTypedGrammar">DoublyTypedGrammar</a> {<ul class="subs"><li><a href="#v:singleTypedGrammar">singleTypedGrammar</a> :: <a href="Grammar-Core.html#t:Grammar">Grammar</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)</li><li><a href="#v:originalRulesWithMatches">originalRulesWithMatches</a> :: [<a href="Abstract-DPO-Process.html#t:NamedRuleWithMatches">NamedRuleWithMatches</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)]</li><li><a href="#v:doubleType">doubleType</a> :: <a href="TypedGraph-Graph.html#t:TypedGraph">TypedGraph</a> a b</li><li><a href="#v:originRelation">originRelation</a> :: <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a></li><li><a href="#v:concreteRelation">concreteRelation</a> :: <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a></li><li><a href="#v:restrictRelation">restrictRelation</a> :: <a href="TypedGraph-DPO-OccurenceRelation.html#t:AbstractRelation">AbstractRelation</a></li></ul>}</li><li class="src short"><a href="#v:occurrenceRelation">occurrenceRelation</a> :: [<a href="Grammar-Core.html#t:NamedProduction">NamedProduction</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)] -> <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a></li><li class="src short"><a href="#v:generateDoublyTypedGrammar">generateDoublyTypedGrammar</a> :: <a href="Grammar-Core.html#t:RuleSequence">RuleSequence</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) -> <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b</li><li class="src short"><a href="#v:uniqueOrigin">uniqueOrigin</a> :: [<a href="Grammar-Core.html#t:NamedProduction">NamedProduction</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)] -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:findConcreteTrigger">findConcreteTrigger</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="Abstract-DPO-Process.html#t:Interaction">Interaction</a> -> (<a href="Abstract-DPO-Process.html#t:Interaction">Interaction</a>, <a href="TypedGraph-DPO-OccurenceRelation.html#t:RelationItem">RelationItem</a>)</li><li class="src short"><a href="#v:calculateNacRelations">calculateNacRelations</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="../containers-0.5.7.1/Data-Set.html#t:Set">Set</a> <a href="Abstract-DPO-Process.html#t:Interaction">Interaction</a> -> <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b</li><li class="src short"><a href="#v:strictRelation">strictRelation</a> :: [<a href="Grammar-Core.html#t:NamedProduction">NamedProduction</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)] -> <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a></li><li class="src short"><a href="#v:creationAndDeletionRelation">creationAndDeletionRelation</a> :: <a href="Grammar-Core.html#t:NamedProduction">NamedProduction</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) -> <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a></li><li class="src short"><a href="#v:getElements">getElements</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> (<a href="../containers-0.5.7.1/Data-Set.html#t:Set">Set</a> <a href="TypedGraph-DPO-OccurenceRelation.html#t:RelationItem">RelationItem</a>, <a href="../containers-0.5.7.1/Data-Set.html#t:Set">Set</a> <a href="TypedGraph-DPO-OccurenceRelation.html#t:RelationItem">RelationItem</a>)</li><li class="src short"><a href="#v:initialGraph">initialGraph</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="TypedGraph-Graph.html#t:TypedGraph">TypedGraph</a> a b</li><li class="src short"><a href="#v:finalGraph">finalGraph</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="TypedGraph-Graph.html#t:TypedGraph">TypedGraph</a> a b</li><li class="src short"><a href="#v:emptyRestrictions">emptyRestrictions</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:DoublyTypedGrammar" class="def">DoublyTypedGrammar</a> a b <a href="src/TypedGraph.DPO.GraphProcess.html#DoublyTypedGrammar" class="link">Source</a> <a href="#t:DoublyTypedGrammar" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:DoublyTypedGrammar" class="def">DoublyTypedGrammar</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:singleTypedGrammar" class="def">singleTypedGrammar</a> :: <a href="Grammar-Core.html#t:Grammar">Grammar</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)</dfn><div class="doc"><p>The grammar typed over the double type graph</p></div></li><li><dfn class="src"><a id="v:originalRulesWithMatches" class="def">originalRulesWithMatches</a> :: [<a href="Abstract-DPO-Process.html#t:NamedRuleWithMatches">NamedRuleWithMatches</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)]</dfn><div class="doc"><p>The rules of the original grammar, together with their matches in the double type graph</p></div></li><li><dfn class="src"><a id="v:doubleType" class="def">doubleType</a> :: <a href="TypedGraph-Graph.html#t:TypedGraph">TypedGraph</a> a b</dfn><div class="doc"><p>The double type graph, typed over the simple type graph</p></div></li><li><dfn class="src"><a id="v:originRelation" class="def">originRelation</a> :: <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a></dfn><div class="doc"><p>The relation that shows the rule that originated each element (node or edge) in the grammar</p></div></li><li><dfn class="src"><a id="v:concreteRelation" class="def">concreteRelation</a> :: <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a></dfn><div class="doc"><p>The occurrence relation of the grammar (existencial relation + concrete conflicts and dependencies induced by NACs)</p></div></li><li><dfn class="src"><a id="v:restrictRelation" class="def">restrictRelation</a> :: <a href="TypedGraph-DPO-OccurenceRelation.html#t:AbstractRelation">AbstractRelation</a></dfn><div class="doc"><p>The set of restrictions given by the abstract conflicts and dependencies</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><a id="v:occurrenceRelation" class="def">occurrenceRelation</a> :: [<a href="Grammar-Core.html#t:NamedProduction">NamedProduction</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)] -> <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a> <a href="src/TypedGraph.DPO.GraphProcess.html#occurrenceRelation" class="link">Source</a> <a href="#v:occurrenceRelation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:generateDoublyTypedGrammar" class="def">generateDoublyTypedGrammar</a> :: <a href="Grammar-Core.html#t:RuleSequence">RuleSequence</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) -> <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b <a href="src/TypedGraph.DPO.GraphProcess.html#generateDoublyTypedGrammar" class="link">Source</a> <a href="#v:generateDoublyTypedGrammar" class="selflink">#</a></p><div class="doc"><p>Given a rule sequence, it calculates its underlying doubly-typed graph grammar</p></div></div><div class="top"><p class="src"><a id="v:uniqueOrigin" class="def">uniqueOrigin</a> :: [<a href="Grammar-Core.html#t:NamedProduction">NamedProduction</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)] -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/TypedGraph.DPO.GraphProcess.html#uniqueOrigin" class="link">Source</a> <a href="#v:uniqueOrigin" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findConcreteTrigger" class="def">findConcreteTrigger</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="Abstract-DPO-Process.html#t:Interaction">Interaction</a> -> (<a href="Abstract-DPO-Process.html#t:Interaction">Interaction</a>, <a href="TypedGraph-DPO-OccurenceRelation.html#t:RelationItem">RelationItem</a>) <a href="src/TypedGraph.DPO.GraphProcess.html#findConcreteTrigger" class="link">Source</a> <a href="#v:findConcreteTrigger" class="selflink">#</a></p><div class="doc"><p>Given an doubly typed grammar and an interaction of the types ProduceForbid or DeleteForbid between two rules
it returns the interaction together with the element that triggered the NAC involved in this conflict or dependency</p></div></div><div class="top"><p class="src"><a id="v:calculateNacRelations" class="def">calculateNacRelations</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="../containers-0.5.7.1/Data-Set.html#t:Set">Set</a> <a href="Abstract-DPO-Process.html#t:Interaction">Interaction</a> -> <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b <a href="src/TypedGraph.DPO.GraphProcess.html#calculateNacRelations" class="link">Source</a> <a href="#v:calculateNacRelations" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:strictRelation" class="def">strictRelation</a> :: [<a href="Grammar-Core.html#t:NamedProduction">NamedProduction</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)] -> <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a> <a href="src/TypedGraph.DPO.GraphProcess.html#strictRelation" class="link">Source</a> <a href="#v:strictRelation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:creationAndDeletionRelation" class="def">creationAndDeletionRelation</a> :: <a href="Grammar-Core.html#t:NamedProduction">NamedProduction</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) -> <a href="TypedGraph-DPO-OccurenceRelation.html#t:Relation">Relation</a> <a href="src/TypedGraph.DPO.GraphProcess.html#creationAndDeletionRelation" class="link">Source</a> <a href="#v:creationAndDeletionRelation" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getElements" class="def">getElements</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> (<a href="../containers-0.5.7.1/Data-Set.html#t:Set">Set</a> <a href="TypedGraph-DPO-OccurenceRelation.html#t:RelationItem">RelationItem</a>, <a href="../containers-0.5.7.1/Data-Set.html#t:Set">Set</a> <a href="TypedGraph-DPO-OccurenceRelation.html#t:RelationItem">RelationItem</a>) <a href="src/TypedGraph.DPO.GraphProcess.html#getElements" class="link">Source</a> <a href="#v:getElements" class="selflink">#</a></p><div class="doc"><p>Given an doubly typed grammar, it returns a tuple <code>(rs,es)</code> where <code>rs</code> is the set of rule names in this grammar
and <code>es</code> is the set of elements that appear in the rules</p></div></div><div class="top"><p class="src"><a id="v:initialGraph" class="def">initialGraph</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="TypedGraph-Graph.html#t:TypedGraph">TypedGraph</a> a b <a href="src/TypedGraph.DPO.GraphProcess.html#initialGraph" class="link">Source</a> <a href="#v:initialGraph" class="selflink">#</a></p><div class="doc"><p>Given an doubly typed grammar, it returns its initial graph</p></div></div><div class="top"><p class="src"><a id="v:finalGraph" class="def">finalGraph</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="TypedGraph-Graph.html#t:TypedGraph">TypedGraph</a> a b <a href="src/TypedGraph.DPO.GraphProcess.html#finalGraph" class="link">Source</a> <a href="#v:finalGraph" class="selflink">#</a></p><div class="doc"><p>Given an doubly typed grammar, it returns its final graph</p></div></div><div class="top"><p class="src"><a id="v:emptyRestrictions" class="def">emptyRestrictions</a> :: <a href="TypedGraph-DPO-GraphProcess.html#t:DoublyTypedGrammar">DoublyTypedGrammar</a> a b -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/TypedGraph.DPO.GraphProcess.html#emptyRestrictions" class="link">Source</a> <a href="#v:emptyRestrictions" class="selflink">#</a></p><div class="doc"><p>Checks whether the restrict relation of an doubly typed grammar is empty</p></div></div><h1>Orphan instances</h1><div id="section.orphans" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:o:ic:GenerateProcess:GenerateProcess:1" class="instance expander" onclick="toggleSection('i:o:ic:GenerateProcess:GenerateProcess:1')"></span> <a href="Abstract-DPO-Process.html#t:GenerateProcess">GenerateProcess</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)</span> <a href="src/TypedGraph.DPO.GraphProcess.html#line-41" class="link">Source</a> <a href="#v:-36-fGenerateProcessTypedGraphMorphism" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:o:ic:GenerateProcess:GenerateProcess:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:restrictMorphisms">restrictMorphisms</a> :: (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b, <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) -> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b, <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) <a href="src/Abstract.DPO.Process.html#restrictMorphisms" class="link">Source</a> <a href="#v:restrictMorphisms" class="selflink">#</a></p><p class="src"><a href="#v:restrictMorphism">restrictMorphism</a> :: <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b -> <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b <a href="src/Abstract.DPO.Process.html#restrictMorphism" class="link">Source</a> <a href="#v:restrictMorphism" class="selflink">#</a></p><p class="src"><a href="#v:typing">typing</a> :: (<a href="Abstract-DPO.html#t:Derivation">Derivation</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b), (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b, <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b, <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)) -> <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) <a href="src/Abstract.DPO.Process.html#typing" class="link">Source</a> <a href="#v:typing" class="selflink">#</a></p><p class="src"><a href="#v:productionTyping">productionTyping</a> :: (<a href="Abstract-DPO.html#t:Production">Production</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b), (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b, <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b, <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)) -> <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) <a href="src/Abstract.DPO.Process.html#productionTyping" class="link">Source</a> <a href="#v:productionTyping" class="selflink">#</a></p><p class="src"><a href="#v:calculateProcess">calculateProcess</a> :: [<a href="Abstract-DPO.html#t:Derivation">Derivation</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)] -> <a href="Abstract-DPO-Process.html#t:Process">Process</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) <a href="src/Abstract.DPO.Process.html#calculateProcess" class="link">Source</a> <a href="#v:calculateProcess" class="selflink">#</a></p><p class="src"><a href="#v:calculateRulesColimit">calculateRulesColimit</a> :: <a href="Grammar-Core.html#t:RuleSequence">RuleSequence</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) -> [<a href="Abstract-DPO-Process.html#t:NamedRuleWithMatches">NamedRuleWithMatches</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)] <a href="src/Abstract.DPO.Process.html#calculateRulesColimit" class="link">Source</a> <a href="#v:calculateRulesColimit" class="selflink">#</a></p><p class="src"><a href="#v:generateGraphProcess">generateGraphProcess</a> :: <a href="Grammar-Core.html#t:RuleSequence">RuleSequence</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) -> [(<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b))] <a href="src/Abstract.DPO.Process.html#generateGraphProcess" class="link">Source</a> <a href="#v:generateGraphProcess" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>