-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTypedGraph-DPO-GraphRule.html
7 lines (7 loc) · 15.2 KB
/
TypedGraph-DPO-GraphRule.html
1
2
3
4
5
6
7
<!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.GraphRule</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-GraphRule.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/TypedGraph.DPO.GraphRule.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.GraphRule</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Types</a></li><li><a href="#g:2">Basic Functions</a></li><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">type</span> <a href="#t:GraphRule">GraphRule</a> a b = <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)</li><li class="src short"><a href="#v:getLHS">getLHS</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> m</li><li class="src short"><a href="#v:getRHS">getRHS</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> m</li><li class="src short"><a href="#v:getNACs">getNACs</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> [m]</li><li class="src short"><a href="#v:invertProductionWithoutNacs">invertProductionWithoutNacs</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m</li><li class="src short"><a href="#v:deletedNodes">deletedNodes</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:NodeId">NodeId</a>]</li><li class="src short"><a href="#v:deletedEdges">deletedEdges</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:EdgeId">EdgeId</a>]</li><li class="src short"><a href="#v:createdNodes">createdNodes</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:NodeId">NodeId</a>]</li><li class="src short"><a href="#v:createdEdges">createdEdges</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:EdgeId">EdgeId</a>]</li><li class="src short"><a href="#v:preservedNodes">preservedNodes</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:NodeId">NodeId</a>]</li><li class="src short"><a href="#v:preservedEdges">preservedEdges</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:EdgeId">EdgeId</a>]</li><li class="src short"><a href="#v:emptyGraphRule">emptyGraphRule</a> :: <a href="Graph-Graph.html#t:Graph">Graph</a> (<a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) (<a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)</li><li class="src short"><a href="#v:nullGraphRule">nullGraphRule</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</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:buildGraphRule">buildGraphRule</a> :: <a href="Graph-Graph.html#t:Graph">Graph</a> (<a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) (<a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> ListOfNodesAndEdges -> ListOfNodesAndEdges -> ListOfNodesAndEdges -> [ListOfNodesAndEdges] -> <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)</li><li class="src short"><a href="#v:checkDeletion">checkDeletion</a> :: <a href="../base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> t => <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 -> t -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> t) -> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b -> [t]) -> t -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1 id="g:1">Types</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:GraphRule" class="def">GraphRule</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/TypedGraph.DPO.GraphRule.html#GraphRule" class="link">Source</a> <a href="#t:GraphRule" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getLHS" class="def">getLHS</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> m <a href="src/Abstract.DPO.Core.html#getLHS" class="link">Source</a> <a href="#v:getLHS" class="selflink">#</a></p><div class="doc"><p>Returns the morphism <em>K -> L</em> of the given production</p></div></div><div class="top"><p class="src"><a id="v:getRHS" class="def">getRHS</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> m <a href="src/Abstract.DPO.Core.html#getRHS" class="link">Source</a> <a href="#v:getRHS" class="selflink">#</a></p><div class="doc"><p>Returns the morphism <em>K -> R</em> of the given production</p></div></div><div class="top"><p class="src"><a id="v:getNACs" class="def">getNACs</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> [m] <a href="src/Abstract.DPO.Core.html#getNACs" class="link">Source</a> <a href="#v:getNACs" class="selflink">#</a></p><div class="doc"><p>Returns the set of nacs <em>L -> Ni</em> of the given production</p></div></div><h1 id="g:2">Basic Functions</h1><div class="top"><p class="src"><a id="v:invertProductionWithoutNacs" class="def">invertProductionWithoutNacs</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m <a href="src/Abstract.DPO.Core.html#invertProductionWithoutNacs" class="link">Source</a> <a href="#v:invertProductionWithoutNacs" class="selflink">#</a></p><div class="doc"><p>Discards the NACs of a production and inverts it.</p></div></div><div class="top"><p class="src"><a id="v:deletedNodes" class="def">deletedNodes</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:NodeId">NodeId</a>] <a href="src/TypedGraph.DPO.GraphRule.html#deletedNodes" class="link">Source</a> <a href="#v:deletedNodes" class="selflink">#</a></p><div class="doc"><p>Return the nodes deleted by a rule</p></div></div><div class="top"><p class="src"><a id="v:deletedEdges" class="def">deletedEdges</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:EdgeId">EdgeId</a>] <a href="src/TypedGraph.DPO.GraphRule.html#deletedEdges" class="link">Source</a> <a href="#v:deletedEdges" class="selflink">#</a></p><div class="doc"><p>Return the edges deleted by a rule</p></div></div><div class="top"><p class="src"><a id="v:createdNodes" class="def">createdNodes</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:NodeId">NodeId</a>] <a href="src/TypedGraph.DPO.GraphRule.html#createdNodes" class="link">Source</a> <a href="#v:createdNodes" class="selflink">#</a></p><div class="doc"><p>Return the nodes created by a rule</p></div></div><div class="top"><p class="src"><a id="v:createdEdges" class="def">createdEdges</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:EdgeId">EdgeId</a>] <a href="src/TypedGraph.DPO.GraphRule.html#createdEdges" class="link">Source</a> <a href="#v:createdEdges" class="selflink">#</a></p><div class="doc"><p>Return the edges created by a rule</p></div></div><div class="top"><p class="src"><a id="v:preservedNodes" class="def">preservedNodes</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:NodeId">NodeId</a>] <a href="src/TypedGraph.DPO.GraphRule.html#preservedNodes" class="link">Source</a> <a href="#v:preservedNodes" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:preservedEdges" class="def">preservedEdges</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> [<a href="Graph-Graph.html#t:EdgeId">EdgeId</a>] <a href="src/TypedGraph.DPO.GraphRule.html#preservedEdges" class="link">Source</a> <a href="#v:preservedEdges" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptyGraphRule" class="def">emptyGraphRule</a> :: <a href="Graph-Graph.html#t:Graph">Graph</a> (<a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) (<a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</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/TypedGraph.DPO.GraphRule.html#emptyGraphRule" class="link">Source</a> <a href="#v:emptyGraphRule" class="selflink">#</a></p><div class="doc"><p>Returns an empty GraphRule</p></div></div><div class="top"><p class="src"><a id="v:nullGraphRule" class="def">nullGraphRule</a> :: <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/TypedGraph.DPO.GraphRule.html#nullGraphRule" class="link">Source</a> <a href="#v:nullGraphRule" class="selflink">#</a></p><div class="doc"><p>Checks if it is a null rule</p></div></div><div class="top"><p class="src"><a id="v:buildGraphRule" class="def">buildGraphRule</a> :: <a href="Graph-Graph.html#t:Graph">Graph</a> (<a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) (<a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> ListOfNodesAndEdges -> ListOfNodesAndEdges -> ListOfNodesAndEdges -> [ListOfNodesAndEdges] -> <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b) <a href="src/TypedGraph.DPO.GraphRule.html#buildGraphRule" class="link">Source</a> <a href="#v:buildGraphRule" class="selflink">#</a></p><div class="doc"><p>It builds a GraphRule with lists of deleted, created, preserved and forbidden elements</p></div></div><div class="top"><p class="src"><a id="v:checkDeletion" class="def">checkDeletion</a> :: <a href="../base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> t => <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 -> t -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> t) -> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b -> [t]) -> t -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/TypedGraph.Morphism.AdhesiveHLR.html#checkDeletion" class="link">Source</a> <a href="#v:checkDeletion" class="selflink">#</a></p><div class="doc"><p>TODO: Find a better name for this function, that was repeated both here and in the GraphRule archive
| Given the left-hand-side morphism of a rule <em>l : K -> L</em>, a match <em>m : L -> G</em> for this rule, an element <strong><em>e</em></strong>
(that can be either a <strong><em>Node</em></strong> or an <strong><em>Edge</em></strong>) and two functions <em>apply</em> (for applying that element in a TypedGraphMorphism) and
<em>list</em> (to get all the corresponding elements in the domain of m), it returns true if <em>e</em> is deleted by this rule for the given match</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:DPO:DPO:1" class="instance expander" onclick="toggleSection('i:o:ic:DPO:DPO:1')"></span> <a href="Abstract-DPO.html#t:DPO">DPO</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)</span> <a href="src/TypedGraph.DPO.GraphRule.html#line-108" class="link">Source</a> <a href="#v:-36-fDPOTypedGraphMorphism" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:o:ic:DPO:DPO:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:invertProduction">invertProduction</a> :: <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> (<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.Core.html#invertProduction" class="link">Source</a> <a href="#v:invertProduction" class="selflink">#</a></p><p class="src"><a href="#v:shiftNacOverProduction">shiftNacOverProduction</a> :: <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</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="src/Abstract.DPO.Core.html#shiftNacOverProduction" class="link">Source</a> <a href="#v:shiftNacOverProduction" class="selflink">#</a></p><p class="src"><a href="#v:isPartiallyMonomorphic">isPartiallyMonomorphic</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="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.DPO.Core.html#isPartiallyMonomorphic" class="link">Source</a> <a href="#v:isPartiallyMonomorphic" 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>