-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSndOrder-Rule.html
24 lines (24 loc) · 7.4 KB
/
SndOrder-Rule.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
<!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>SndOrder.Rule</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_SndOrder-Rule.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/SndOrder.Rule.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">SndOrder.Rule</p></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:SndOrderRule">SndOrderRule</a> a b = <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="SndOrder-Morphism.html#t:RuleMorphism">RuleMorphism</a> a b)</li><li class="src short"><a href="#v:addMinimalSafetyNacs">addMinimalSafetyNacs</a> :: <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b -> <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b</li><li class="src short"><a href="#v:applySndOrderRule">applySndOrderRule</a> :: <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> (<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b) -> (<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b) -> [(<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b)]</li><li class="src short"><a href="#v:applySecondOrder">applySecondOrder</a> :: ((<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b) -> (<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b) -> [t]) -> [(<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b)] -> [(<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b)] -> [t]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:SndOrderRule" class="def">SndOrderRule</a> a b = <a href="Abstract-DPO.html#t:Production">Production</a> (<a href="SndOrder-Morphism.html#t:RuleMorphism">RuleMorphism</a> a b) <a href="src/SndOrder.Rule.Core.html#SndOrderRule" class="link">Source</a> <a href="#t:SndOrderRule" class="selflink">#</a></p><div class="doc"><p>A second order rule:</p><pre> nl nr
NL◀─────<NK>─────▶NR
▲ ▲ ▲
nacL\ nacK\ nacR\
\ \ \
\ ll \ lr \
LL◀─────<LK>─────▶LR
▲ ▲ ▲
leftL│ leftK│ leftR│
│ │ │
│ kl │ kr │
KL◀─────<KK>─────▶KR
│ │ │
rightL│ rightK│ rightR│
│ │ │
▼ rl ▼ rr ▼
RL◀─────<RK>─────▶RR
</pre><p>domain rule = (ll,lr)</p><p>interface rule = (kl,kr)</p><p>codomain rule (rl,rr)</p><p>nac rule = (nl,nr)</p><p>nacs = set of: domain rule, nac rule, nacL, nacK, nacR</p><p>left = domain rule, interface rule, leftL, leftK, leftR</p><p>right = interface rule, codomain rule, rightL, rightK, rightR</p></div></div><div class="top"><p class="src"><a id="v:addMinimalSafetyNacs" class="def">addMinimalSafetyNacs</a> :: <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b -> <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b <a href="src/SndOrder.Rule.DPO.html#addMinimalSafetyNacs" class="link">Source</a> <a href="#v:addMinimalSafetyNacs" class="selflink">#</a></p><div class="doc"><p>Adds the minimal safety nacs needed to this production always produce a second order rule.
If the nacs that going to be added not satisfies the others nacs, then it do not need to be added.</p></div></div><div class="top"><p class="src"><a id="v:applySndOrderRule" class="def">applySndOrderRule</a> :: <a href="Abstract-AdhesiveHLR.html#t:MorphismsConfig">MorphismsConfig</a> -> (<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b) -> (<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b) -> [(<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b)] <a href="src/SndOrder.Rule.html#applySndOrderRule" class="link">Source</a> <a href="#v:applySndOrderRule" class="selflink">#</a></p><div class="doc"><p>Applies a named second order rule to a named first order rule with all possible matches,
and generates named first order rules as result.</p></div></div><div class="top"><p class="src"><a id="v:applySecondOrder" class="def">applySecondOrder</a> :: ((<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b) -> (<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b) -> [t]) -> [(<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="TypedGraph-DPO-GraphRule.html#t:GraphRule">GraphRule</a> a b)] -> [(<a href="../base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="SndOrder-Rule.html#t:SndOrderRule">SndOrderRule</a> a b)] -> [t] <a href="src/SndOrder.Rule.html#applySecondOrder" class="link">Source</a> <a href="#v:applySecondOrder" class="selflink">#</a></p><div class="doc"><p>Receives a function that works with a second order and a first order rule.
Apply this function on all possible combinations of rules.</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>