-
Notifications
You must be signed in to change notification settings - Fork 1
/
Analysis-CriticalPairs.html
20 lines (20 loc) · 24 KB
/
Analysis-CriticalPairs.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!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>Analysis.CriticalPairs</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_Analysis-CriticalPairs.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Analysis.CriticalPairs.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">Analysis.CriticalPairs</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Finding Critical Pairs</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:CriticalPairType">CriticalPairType</a><ul class="subs"><li>= <a href="#v:FreeOverlap">FreeOverlap</a></li><li>| <a href="#v:DeleteUse">DeleteUse</a></li><li>| <a href="#v:ProduceForbid">ProduceForbid</a></li><li>| <a href="#v:ProduceDangling">ProduceDangling</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:CriticalPair">CriticalPair</a> m = <a href="#v:CriticalPair">CriticalPair</a> {<ul class="subs"><li><a href="#v:matches">matches</a> :: (m, m)</li><li><a href="#v:comatches">comatches</a> :: <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (m, m)</li><li><a href="#v:nacMatch">nacMatch</a> :: <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (m, <a href="../base-4.9.1.0/Data-Int.html#t:Int">Int</a>)</li><li><a href="#v:cpType">cpType</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a></li></ul>}</li><li class="src short"><a href="#v:getCriticalPairMatches">getCriticalPairMatches</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> (m, m)</li><li class="src short"><a href="#v:getCriticalPairComatches">getCriticalPairComatches</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (m, m)</li><li class="src short"><a href="#v:getNacIndexOfCriticalPair">getNacIndexOfCriticalPair</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.9.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:getNacMatchOfCriticalPair">getNacMatchOfCriticalPair</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> m</li><li class="src short"><a href="#v:getCriticalPairType">getCriticalPairType</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a></li><li class="src short"><a href="#v:findCriticalPairs">findCriticalPairs</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m]</li><li class="src short"><a href="#v:findPotentialCriticalPairs">findPotentialCriticalPairs</a> :: (<a href="Abstract-DPO.html#t:DPO">DPO</a> m, <a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [(m, m)]</li><li class="src short"><a href="#v:namedCriticalPairs">namedCriticalPairs</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> [NamedRule m] -> [NamedCriticalPairs m]</li><li class="src short"><a href="#v:findAllDeleteUse">findAllDeleteUse</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m]</li><li class="src short"><a href="#v:findAllProduceForbid">findAllProduceForbid</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m]</li><li class="src short"><a href="#v:findAllProduceDangling">findAllProduceDangling</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m]</li><li class="src short"><a href="#v:findAllDeleteUseAndProduceDangling">findAllDeleteUseAndProduceDangling</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CriticalPairType" class="def">CriticalPairType</a> <a href="src/Analysis.CriticalPairs.html#CriticalPairType" class="link">Source</a> <a href="#t:CriticalPairType" class="selflink">#</a></p><div class="doc"><p>Data representing the type of a <code><a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a></code></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:FreeOverlap" class="def">FreeOverlap</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:DeleteUse" class="def">DeleteUse</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ProduceForbid" class="def">ProduceForbid</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a id="v:ProduceDangling" class="def">ProduceDangling</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:CriticalPairType" class="caption collapser" onclick="toggleSection('i:CriticalPairType')">Instances</p><div id="section.i:CriticalPairType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CriticalPairType:Eq:1" class="instance expander" onclick="toggleSection('i:id:CriticalPairType:Eq:1')"></span> <a href="../base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a></span> <a href="src/Analysis.CriticalPairs.html#line-32" class="link">Source</a> <a href="#t:CriticalPairType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CriticalPairType:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a> -> <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a> -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a> -> <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a> -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CriticalPairType:Show:2" class="instance expander" onclick="toggleSection('i:id:CriticalPairType:Show:2')"></span> <a href="../base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a></span> <a href="src/Analysis.CriticalPairs.html#line-32" class="link">Source</a> <a href="#t:CriticalPairType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CriticalPairType:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="../base-4.9.1.0/Data-Int.html#t:Int">Int</a> -> <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a> -> <a href="../base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a> -> <a href="../base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a>] -> <a href="../base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CriticalPair" class="def">CriticalPair</a> m <a href="src/Analysis.CriticalPairs.html#CriticalPair" class="link">Source</a> <a href="#t:CriticalPair" class="selflink">#</a></p><div class="doc"><p>A Critical Pair is defined as two matches (m1,m2) from the left
side of their rules to a same graph.
It assumes that the derivation of the rule with match <code>m1</code> causes
a conflict with the rule with match <code>m2</code></p><p>This diagram shows graphs and morphisms names used in the algorithms below</p><p>p1 = production (L1,K1,R1,[N1])</p><p>p2 = production (L2,K2,R2,[N2])</p><pre> N1 N2
^ ^
r l │ │n
R1◀─────K1────▶L1 L2◀────K2─────▶R2
│ │ \ / │ │
m1'│ k│ m1\ /m2 │ │
▼ ▼ ▼ ▼ ▼
P1◀─────D1───────▶G◀───────D2──────▶P2
r' l'
</pre><p>m2' :: from L2 to P1</p><p>h21 :: from L2 to D1</p><p>q21 (nacMatch) :: from N2 to P1</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:CriticalPair" class="def">CriticalPair</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:matches" class="def">matches</a> :: (m, m)</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:comatches" class="def">comatches</a> :: <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (m, m)</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:nacMatch" class="def">nacMatch</a> :: <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (m, <a href="../base-4.9.1.0/Data-Int.html#t:Int">Int</a>)</dfn><div class="doc empty"> </div></li><li><dfn class="src"><a id="v:cpType" class="def">cpType</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a></dfn><div class="doc empty"> </div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:CriticalPair" class="caption collapser" onclick="toggleSection('i:CriticalPair')">Instances</p><div id="section.i:CriticalPair" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CriticalPair:Eq:1" class="instance expander" onclick="toggleSection('i:id:CriticalPair:Eq:1')"></span> <a href="../base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> m => <a href="../base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m)</span> <a href="src/Analysis.CriticalPairs.html#line-71" class="link">Source</a> <a href="#t:CriticalPair" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CriticalPair:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CriticalPair:Show:2" class="instance expander" onclick="toggleSection('i:id:CriticalPair:Show:2')"></span> <a href="../base-4.9.1.0/Text-Show.html#t:Show">Show</a> m => <a href="../base-4.9.1.0/Text-Show.html#t:Show">Show</a> (<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m)</span> <a href="src/Analysis.CriticalPairs.html#line-71" class="link">Source</a> <a href="#t:CriticalPair" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CriticalPair:Show:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="../base-4.9.1.0/Data-Int.html#t:Int">Int</a> -> <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m] -> <a href="../base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:getCriticalPairMatches" class="def">getCriticalPairMatches</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> (m, m) <a href="src/Analysis.CriticalPairs.html#getCriticalPairMatches" class="link">Source</a> <a href="#v:getCriticalPairMatches" class="selflink">#</a></p><div class="doc"><p>Returns the matches (m1,m2)</p></div></div><div class="top"><p class="src"><a id="v:getCriticalPairComatches" class="def">getCriticalPairComatches</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (m, m) <a href="src/Analysis.CriticalPairs.html#getCriticalPairComatches" class="link">Source</a> <a href="#v:getCriticalPairComatches" class="selflink">#</a></p><div class="doc"><p>Returns the comatches (m1',m2')</p></div></div><div class="top"><p class="src"><a id="v:getNacIndexOfCriticalPair" class="def">getNacIndexOfCriticalPair</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.9.1.0/Data-Int.html#t:Int">Int</a> <a href="src/Analysis.CriticalPairs.html#getNacIndexOfCriticalPair" class="link">Source</a> <a href="#v:getNacIndexOfCriticalPair" class="selflink">#</a></p><div class="doc"><p>Returns the nac index of a <code><a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a></code></p></div></div><div class="top"><p class="src"><a id="v:getNacMatchOfCriticalPair" class="def">getNacMatchOfCriticalPair</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> m <a href="src/Analysis.CriticalPairs.html#getNacMatchOfCriticalPair" class="link">Source</a> <a href="#v:getNacMatchOfCriticalPair" class="selflink">#</a></p><div class="doc"><p>Returns the nac match of a <code><a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a></code></p></div></div><div class="top"><p class="src"><a id="v:getCriticalPairType" class="def">getCriticalPairType</a> :: <a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m -> <a href="Analysis-CriticalPairs.html#t:CriticalPairType">CriticalPairType</a> <a href="src/Analysis.CriticalPairs.html#getCriticalPairType" class="link">Source</a> <a href="#v:getCriticalPairType" class="selflink">#</a></p><div class="doc"><p>Returns the type of a Critical Pair</p></div></div><h1 id="g:1">Finding Critical Pairs</h1><div class="top"><p class="src"><a id="v:findCriticalPairs" class="def">findCriticalPairs</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m] <a href="src/Analysis.CriticalPairs.html#findCriticalPairs" class="link">Source</a> <a href="#v:findCriticalPairs" class="selflink">#</a></p><div class="doc"><p>Finds all Critical Pairs between two given Productions</p></div></div><div class="top"><p class="src"><a id="v:findPotentialCriticalPairs" class="def">findPotentialCriticalPairs</a> :: (<a href="Abstract-DPO.html#t:DPO">DPO</a> m, <a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [(m, m)] <a href="src/Analysis.CriticalPairs.html#findPotentialCriticalPairs" class="link">Source</a> <a href="#v:findPotentialCriticalPairs" class="selflink">#</a></p><div class="doc"><p>Returns a list of morphisms from left side of rules to all valid overlapping pairs</p></div></div><div class="top"><p class="src"><a id="v:namedCriticalPairs" class="def">namedCriticalPairs</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> [NamedRule m] -> [NamedCriticalPairs m] <a href="src/Analysis.CriticalPairs.html#namedCriticalPairs" class="link">Source</a> <a href="#v:namedCriticalPairs" class="selflink">#</a></p><div class="doc"><p>Returns the Critical Pairs with rule names</p></div></div><div class="top"><p class="src"><a id="v:findAllDeleteUse" class="def">findAllDeleteUse</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m] <a href="src/Analysis.CriticalPairs.html#findAllDeleteUse" class="link">Source</a> <a href="#v:findAllDeleteUse" class="selflink">#</a></p><div class="doc"><p>All DeleteUse caused by the derivation of <code>p1</code> before <code>p2</code>.
It occurs when <code>p1</code> deletes something used by <code>p2</code>.</p></div></div><div class="top"><p class="src"><a id="v:findAllProduceForbid" class="def">findAllProduceForbid</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m] <a href="src/Analysis.CriticalPairs.html#findAllProduceForbid" class="link">Source</a> <a href="#v:findAllProduceForbid" class="selflink">#</a></p><div class="doc"><p>All ProduceForbid caused by the derivation of <code>p1</code> before <code>p2</code>.</p><p>Rule <code>p1</code> causes a produce-forbid conflict with <code>p2</code> if some
NAC in <code>p2</code> fails to be satisfied after the aplication of <code>p1</code>.</p></div></div><div class="top"><p class="src"><a id="v:findAllProduceDangling" class="def">findAllProduceDangling</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m] <a href="src/Analysis.CriticalPairs.html#findAllProduceDangling" class="link">Source</a> <a href="#v:findAllProduceDangling" class="selflink">#</a></p><div class="doc"><p>All ProduceDangling caused by the derivation of <code>p1</code> before <code>p2</code>.
It occurs when <code>p1</code> creates something that unable <code>p2</code>.</p></div></div><div class="top"><p class="src"><a id="v:findAllDeleteUseAndProduceDangling" class="def">findAllDeleteUseAndProduceDangling</a> :: (<a href="Abstract-AdhesiveHLR.html#t:EpiPairs">EpiPairs</a> m, <a href="Abstract-DPO.html#t:DPO">DPO</a> m) => <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-DPO.html#t:Production">Production</a> m -> [<a href="Analysis-CriticalPairs.html#t:CriticalPair">CriticalPair</a> m] <a href="src/Analysis.CriticalPairs.html#findAllDeleteUseAndProduceDangling" class="link">Source</a> <a href="#v:findAllDeleteUseAndProduceDangling" class="selflink">#</a></p><div class="doc"><p>Tests DeleteUse and ProduceDangling for the same pairs,
more efficient than deal separately.</p></div></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>