-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAnalysis-CriticalSequence.html
25 lines (25 loc) · 27.3 KB
/
Analysis-CriticalSequence.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!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.CriticalSequence</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-CriticalSequence.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Analysis.CriticalSequence.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.CriticalSequence</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Finding Critical Sequences</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:CriticalSequenceType">CriticalSequenceType</a><ul class="subs"><li>= <a href="#v:ProduceUse">ProduceUse</a></li><li>| <a href="#v:RemoveDangling">RemoveDangling</a></li><li>| <a href="#v:DeleteForbid">DeleteForbid</a></li><li>| <a href="#v:DeliverDelete">DeliverDelete</a></li><li>| <a href="#v:DeliverDangling">DeliverDangling</a></li><li>| <a href="#v:ForbidProduce">ForbidProduce</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:CriticalSequence">CriticalSequence</a> m</li><li class="src short"><a href="#v:getCriticalSequenceMatches">getCriticalSequenceMatches</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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:getCriticalSequenceComatches">getCriticalSequenceComatches</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m -> (m, m)</li><li class="src short"><a href="#v:getNacMatchOfCriticalSequence">getNacMatchOfCriticalSequence</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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:getNacIndexOfCriticalSequence">getNacIndexOfCriticalSequence</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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:getCriticalSequenceType">getCriticalSequenceType</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m -> <a href="Analysis-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</a></li><li class="src short"><a href="#v:findTriggeringCriticalSequences">findTriggeringCriticalSequences</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m]</li><li class="src short"><a href="#v:namedCriticalSequences">namedCriticalSequences</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:findAllProduceUse">findAllProduceUse</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m]</li><li class="src short"><a href="#v:findAllRemoveDangling">findAllRemoveDangling</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m]</li><li class="src short"><a href="#v:findAllDeleteForbid">findAllDeleteForbid</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m]</li><li class="src short"><a href="#v:findAllDeliverDelete">findAllDeliverDelete</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m]</li><li class="src short"><a href="#v:findAllForbidProduce">findAllForbidProduce</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m]</li><li class="src short"><a href="#v:findAllDeliverDangling">findAllDeliverDangling</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m]</li><li class="src short"><a href="#v:findAllProduceUseAndRemoveDangling">findAllProduceUseAndRemoveDangling</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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:CriticalSequenceType" class="def">CriticalSequenceType</a> <a href="src/Analysis.CriticalSequence.html#CriticalSequenceType" class="link">Source</a> <a href="#t:CriticalSequenceType" class="selflink">#</a></p><div class="doc"><p>Data representing the type of a <code>CriticalPair</code></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ProduceUse" class="def">ProduceUse</a></td><td class="doc"><p>resp. delete-use</p></td></tr><tr><td class="src"><a id="v:RemoveDangling" class="def">RemoveDangling</a></td><td class="doc"><p>resp. produce-dangling</p></td></tr><tr><td class="src"><a id="v:DeleteForbid" class="def">DeleteForbid</a></td><td class="doc"><p>resp. produce-forbid</p></td></tr><tr><td class="src"><a id="v:DeliverDelete" class="def">DeliverDelete</a></td><td class="doc"><p>resp. inverted delete-use</p></td></tr><tr><td class="src"><a id="v:DeliverDangling" class="def">DeliverDangling</a></td><td class="doc"><p>resp. inverted produce-dangling</p></td></tr><tr><td class="src"><a id="v:ForbidProduce" class="def">ForbidProduce</a></td><td class="doc"><p>resp. inverted produce-forbid</p></td></tr></table></div><div class="subs instances"><p id="control.i:CriticalSequenceType" class="caption collapser" onclick="toggleSection('i:CriticalSequenceType')">Instances</p><div id="section.i:CriticalSequenceType" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CriticalSequenceType:Eq:1" class="instance expander" onclick="toggleSection('i:id:CriticalSequenceType:Eq:1')"></span> <a href="../base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Analysis-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</a></span> <a href="src/Analysis.CriticalSequence.html#line-36" class="link">Source</a> <a href="#t:CriticalSequenceType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CriticalSequenceType: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-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</a> -> <a href="Analysis-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</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-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</a> -> <a href="Analysis-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</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:CriticalSequenceType:Show:2" class="instance expander" onclick="toggleSection('i:id:CriticalSequenceType:Show:2')"></span> <a href="../base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Analysis-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</a></span> <a href="src/Analysis.CriticalSequence.html#line-36" class="link">Source</a> <a href="#t:CriticalSequenceType" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CriticalSequenceType: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-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</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-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</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-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</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:CriticalSequence" class="def">CriticalSequence</a> m <a href="src/Analysis.CriticalSequence.html#CriticalSequence" class="link">Source</a> <a href="#t:CriticalSequence" class="selflink">#</a></p><div class="doc"><p>A Critical Sequence is defined as two matches (m1,m2) from the
left side of their rules to a same graph.</p><p>This diagram shows graphs and morphisms names used in the algorithms below</p><p>p1 = production (L1,K1,R1,[N1]) (N1 from L1)</p><p>invLeft = production (R1,K1,L1,[N1]) (N1 from R1)</p><p>p2 = production (L2,K2,R2,[N2])</p><pre> N1 N2
^ ^
l r │ │n
L1◀─────K1────▶R1 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 instances"><p id="control.i:CriticalSequence" class="caption collapser" onclick="toggleSection('i:CriticalSequence')">Instances</p><div id="section.i:CriticalSequence" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:CriticalSequence:Eq:1" class="instance expander" onclick="toggleSection('i:id:CriticalSequence: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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m)</span> <a href="src/Analysis.CriticalSequence.html#line-75" class="link">Source</a> <a href="#t:CriticalSequence" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CriticalSequence: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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m -> <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m -> <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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:CriticalSequence:Show:2" class="instance expander" onclick="toggleSection('i:id:CriticalSequence: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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m)</span> <a href="src/Analysis.CriticalSequence.html#line-75" class="link">Source</a> <a href="#t:CriticalSequence" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:CriticalSequence: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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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:getCriticalSequenceMatches" class="def">getCriticalSequenceMatches</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (m, m) <a href="src/Analysis.CriticalSequence.html#getCriticalSequenceMatches" class="link">Source</a> <a href="#v:getCriticalSequenceMatches" 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:getCriticalSequenceComatches" class="def">getCriticalSequenceComatches</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m -> (m, m) <a href="src/Analysis.CriticalSequence.html#getCriticalSequenceComatches" class="link">Source</a> <a href="#v:getCriticalSequenceComatches" 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:getNacMatchOfCriticalSequence" class="def">getNacMatchOfCriticalSequence</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> m <a href="src/Analysis.CriticalSequence.html#getNacMatchOfCriticalSequence" class="link">Source</a> <a href="#v:getNacMatchOfCriticalSequence" class="selflink">#</a></p><div class="doc"><p>Returns the nac match of a <code><a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a></code></p></div></div><div class="top"><p class="src"><a id="v:getNacIndexOfCriticalSequence" class="def">getNacIndexOfCriticalSequence</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</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.CriticalSequence.html#getNacIndexOfCriticalSequence" class="link">Source</a> <a href="#v:getNacIndexOfCriticalSequence" class="selflink">#</a></p><div class="doc"><p>Returns the nac index of a <code><a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a></code></p></div></div><div class="top"><p class="src"><a id="v:getCriticalSequenceType" class="def">getCriticalSequenceType</a> :: <a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m -> <a href="Analysis-CriticalSequence.html#t:CriticalSequenceType">CriticalSequenceType</a> <a href="src/Analysis.CriticalSequence.html#getCriticalSequenceType" class="link">Source</a> <a href="#v:getCriticalSequenceType" class="selflink">#</a></p><div class="doc"><p>Returns the type of a <code><a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a></code></p></div></div><h1 id="g:1">Finding Critical Sequences</h1><div class="top"><p class="src"><a id="v:findTriggeringCriticalSequences" class="def">findTriggeringCriticalSequences</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m] <a href="src/Analysis.CriticalSequence.html#findTriggeringCriticalSequences" class="link">Source</a> <a href="#v:findTriggeringCriticalSequences" class="selflink">#</a></p><div class="doc"><p>Given two productions <code>p1</code> and <code>p2</code>, finds the Critical sequences in which the application of <code>p1</code>
enables the application of <code>p2</code></p></div></div><div class="top"><p class="src"><a id="v:namedCriticalSequences" class="def">namedCriticalSequences</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.CriticalSequence.html#namedCriticalSequences" class="link">Source</a> <a href="#v:namedCriticalSequences" class="selflink">#</a></p><div class="doc"><p>Returns the Critical Sequences with rule names</p></div></div><div class="top"><p class="src"><a id="v:findAllProduceUse" class="def">findAllProduceUse</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m] <a href="src/Analysis.CriticalSequence.html#findAllProduceUse" class="link">Source</a> <a href="#v:findAllProduceUse" class="selflink">#</a></p><div class="doc"><p>All ProduceUse caused by the derivation of <code>l</code> before <code>r</code>.</p><p>Rule <code>p1</code> causes a produce-use dependency with <code>p2</code>
if rule <code>p1</code> creates something that is used by <code>p2</code>.
Verify the non existence of h21: L2 -> D1 such that d1 . h21 = m2'.</p></div></div><div class="top"><p class="src"><a id="v:findAllRemoveDangling" class="def">findAllRemoveDangling</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m] <a href="src/Analysis.CriticalSequence.html#findAllRemoveDangling" class="link">Source</a> <a href="#v:findAllRemoveDangling" class="selflink">#</a></p><div class="doc"><p>All RemoveDangling caused by the derivation of <code>p1</code> before <code>p2</code>.</p><p>Rule <code>p1</code> causes a remove-dangling dependency with <code>p2</code>
if rule <code>p1</code> deletes something that enables <code>p2</code>.</p></div></div><div class="top"><p class="src"><a id="v:findAllDeleteForbid" class="def">findAllDeleteForbid</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m] <a href="src/Analysis.CriticalSequence.html#findAllDeleteForbid" class="link">Source</a> <a href="#v:findAllDeleteForbid" class="selflink">#</a></p><div class="doc"><p>All DeleteForbid caused by the derivation of <code>p1</code> before <code>r</code>.
Rule <code>p1</code> causes a delete-forbid dependency with <code>p2</code> if
some NAC in <code>p2</code> turns satisfied after the aplication of <code>p1</code></p></div></div><div class="top"><p class="src"><a id="v:findAllDeliverDelete" class="def">findAllDeliverDelete</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m] <a href="src/Analysis.CriticalSequence.html#findAllDeliverDelete" class="link">Source</a> <a href="#v:findAllDeliverDelete" class="selflink">#</a></p><div class="doc"><p>All DeliverDelete caused by the derivation of <code>p1</code> before <code>r</code>.</p><p>Rule <code>p1</code> causes a deliver-delete dependency with <code>p2</code> if
rule <code>p2</code> deletes something that is used by <code>p2</code>,
Verify the non existence of h12: L1 -> D2 such that d2 . h12 = m1'.</p></div></div><div class="top"><p class="src"><a id="v:findAllForbidProduce" class="def">findAllForbidProduce</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m] <a href="src/Analysis.CriticalSequence.html#findAllForbidProduce" class="link">Source</a> <a href="#v:findAllForbidProduce" class="selflink">#</a></p><div class="doc"><p>All ForbidProduce caused by the derivation of <code>p1</code> before <code>p2</code>.</p><p>Rule <code>p1</code> causes a forbid-produce dependency with <code>p2</code> if some
NAC in right of <code>p1</code> turns satisfied after the aplication of <code>p2</code>.</p></div></div><div class="top"><p class="src"><a id="v:findAllDeliverDangling" class="def">findAllDeliverDangling</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 -> [<a href="Analysis-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m] <a href="src/Analysis.CriticalSequence.html#findAllDeliverDangling" class="link">Source</a> <a href="#v:findAllDeliverDangling" class="selflink">#</a></p><div class="doc"><p>All DeliverDangling caused by the derivation of <code>p1</code> before <code>p2</code>.</p><p>Rule <code>p1</code> causes a deliver-delete dependency with <code>p2</code> if
rule <code>p2</code> creates something that disables the inverse of <code>p1</code>.</p></div></div><div class="top"><p class="src"><a id="v:findAllProduceUseAndRemoveDangling" class="def">findAllProduceUseAndRemoveDangling</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-CriticalSequence.html#t:CriticalSequence">CriticalSequence</a> m] <a href="src/Analysis.CriticalSequence.html#findAllProduceUseAndRemoveDangling" class="link">Source</a> <a href="#v:findAllProduceUseAndRemoveDangling" class="selflink">#</a></p><div class="doc"><p>Tests ProduceUse and RemoveDangling 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>