<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10">
<meta name="author" content="Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation">
<link rel="icon" type="image/png" href="favicon.png">
<title>CIF documentation (Incubation)</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment @import statement to use as custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite::before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
:not(pre)>code.nobreak{word-wrap:normal}
:not(pre)>code.nowrap{white-space:nowrap}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
table.tableblock{max-width:100%;border-collapse:separate}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot,table.frame-ends{border-width:1px 0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<!--
  Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation

  See the NOTICE file(s) distributed with this work for additional
  information regarding copyright ownership.

  This program and the accompanying materials are made available under the terms
  of the MIT License which is available at https://opensource.org/licenses/MIT

  SPDX-License-Identifier: MIT
-->
<style>
.menu, .submenu, .menuitem, .menuref {
    background-color: Menu;
}

.button {
    border: 1px solid ButtonFace;
    /*
    Styling too similar to a real button is considered bad practice, see https://github.com/asciidoctor/asciidoctor/issues/1881#issuecomment-250702085
    border: 2px outset ButtonFace;
    background-color: ButtonFace;
    */
    padding-left: 0.5ex;
    padding-right: 0.5ex;
    font-weight: normal;
    font-family: "Segoe UI","Open Sans","DejaVu Sans",sans-serif;
    white-space: nowrap;
}
.button:before {
    content: none !important;
}
.button:after {
    content: none !important;
}

#footer-text, #footer-text a {
    color: rgba(255,255,255,.8)
}
</style>
</head>
<body class="book toc2 toc-left">
<div id="header">
<h1>CIF documentation (Incubation)</h1>
<div class="details">
<span id="author" class="author">Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation</span><br>
<span id="revnumber">version 0.1.0.20210126-175926</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#introduction-chapter-index">Introduction</a></li>
<li><a href="#tut-chapter-index">Language tutorial</a>
<ul class="sectlevel2">
<li><a href="#tut-introduction">Introduction</a></li>
<li><a href="#tut-lessons">Lessons</a></li>
<li><a href="#tut-basics">Basics</a>
<ul class="sectlevel3">
<li><a href="#tut-basics-chapter-automata">Automata</a></li>
<li><a href="#tut-basics-chapter-synchronizing-events">Synchronizing events</a></li>
<li><a href="#tut-basics-chapter-non-determinism">Non-determinism</a></li>
<li><a href="#tut-basics-chapter-alphabet">Alphabet</a></li>
<li><a href="#tut-basics-chapter-event-placement">Event declaration placement</a></li>
<li><a href="#tut-basics-chapter-shorter-notations">Shorter notations</a></li>
</ul>
</li>
<li><a href="#tut-data">Data</a>
<ul class="sectlevel3">
<li><a href="#tut-data-chapter-discrete-variables">Discrete variables</a></li>
<li><a href="#tut-data-chapter-discvar-change">Discrete variable value changes</a></li>
<li><a href="#tut-data-chapter-loc-var-duality1">Location/variable duality (1/2)</a></li>
<li><a href="#tut-data-chapter-loc-var-duality2">Location/variable duality (2/2)</a></li>
<li><a href="#tut-data-chapter-read-write">Global read, local write</a></li>
<li><a href="#tut-data-chapter-monitoring">Monitoring</a></li>
<li><a href="#tut-data-chapter-asgn-old-vs-new">Old and new values in assignments</a></li>
<li><a href="#tut-data-chapter-tau-event">The <code>tau</code> event</a></li>
<li><a href="#tut-data-chapter-discvar-init">Initial values of discrete variables</a></li>
<li><a href="#tut-data-chapter-init-preds">Initialization predicates</a></li>
<li><a href="#tut-data-chapter-locs-as-var">Using locations as variables</a></li>
<li><a href="#tut-data-chapter-stat-invariants">State (exclusion) invariants</a></li>
<li><a href="#tut-data-chapter-stat-evt-excl-invariants">State/event exclusion invariants</a></li>
</ul>
</li>
<li><a href="#tut-types-and-values">Types and values</a>
<ul class="sectlevel3">
<li><a href="#tut-values-chapter-types-values-exprs">Types, values, and expressions</a></li>
<li><a href="#tut-values-chapter-overview">Values overview</a></li>
<li><a href="#tut-values-chapter-integers">Integers</a></li>
<li><a href="#tut-values-chapter-integer-ranges">Integer ranges</a></li>
<li><a href="#tut-values-chapter-reals">Reals</a></li>
<li><a href="#tut-values-chapter-booleans">Booleans</a></li>
<li><a href="#tut-values-chapter-strings">Strings</a></li>
<li><a href="#tut-values-chapter-enumerations">Enumerations</a></li>
<li><a href="#tut-values-chapter-tuples">Tuples</a></li>
<li><a href="#tut-values-chapter-lists">Lists</a></li>
<li><a href="#tut-values-chapter-bounded-lists-and-arrays">Bounded lists and arrays</a></li>
<li><a href="#tut-values-chapter-sets">Sets</a></li>
<li><a href="#tut-values-chapter-dictionaries">Dictionaries</a></li>
<li><a href="#tut-values-chapter-combining-values">Combining values</a></li>
</ul>
</li>
<li><a href="#tut-scalable-solutions-and-reuse-12">Scalable solutions and reuse (1/2)</a>
<ul class="sectlevel3">
<li><a href="#tut-reuse1-chapter-constants">Constants</a></li>
<li><a href="#tut-reuse1-chapter-algebraic-variables">Algebraic variables</a></li>
<li><a href="#tut-reuse1-chapter-algvar-equations">Algebraic variables and equations</a></li>
<li><a href="#tut-reuse1-chapter-type-declarations">Type declarations</a></li>
</ul>
</li>
<li><a href="#tut-time">Time</a>
<ul class="sectlevel3">
<li><a href="#tut-time-chapter-intro">Timing</a></li>
<li><a href="#tut-time-chapter-continuous-variables">Continuous variables</a></li>
<li><a href="#tut-time-chapter-contvar-equations">Continuous variables and equations</a></li>
<li><a href="#tut-time-chapter-equations">Equations</a></li>
<li><a href="#tut-time-chapter-var-overview">Variables overview</a></li>
<li><a href="#tut-time-chapter-urgency">Urgency</a></li>
<li><a href="#tut-time-chapter-deadlock-livelock">Deadlock and livelock</a></li>
</ul>
</li>
<li><a href="#tut-channel-communication">Channel communication</a>
<ul class="sectlevel3">
<li><a href="#tut-channels-chapter-intro">Channels</a></li>
<li><a href="#tut-channels-chapter-void">Dataless channels</a></li>
<li><a href="#tut-channels-chapter-chan-sync-combi">Combining channel communication with event synchronization</a></li>
</ul>
</li>
<li><a href="#tut-functions">Functions</a>
<ul class="sectlevel3">
<li><a href="#tut-functions-chapter-intro">Functions</a></li>
<li><a href="#tut-functions-chapter-internal-functions">Internal user-defined functions</a></li>
<li><a href="#tut-functions-chapter-statements">Function statements</a></li>
<li><a href="#tut-functions-chapter-functions-as-values">Functions as values</a></li>
</ul>
</li>
<li><a href="#tut-scalable-solutions-and-reuse-22">Scalable solutions and reuse (2/2)</a>
<ul class="sectlevel3">
<li><a href="#tut-reuse2-chapter-aut-def-inst">Automaton definition/instantiation</a></li>
<li><a href="#tut-reuse2-chapter-aut-def-params">Parametrized automaton definitions</a></li>
<li><a href="#tut-reuse2-chapter-aut-def-param-kinds">Automaton definition parameters</a></li>
<li><a href="#tut-reuse2-chapter-groups">Groups</a></li>
<li><a href="#tut-reuse2-chapter-group-defs">Group definitions</a></li>
<li><a href="#tut-reuse2-chapter-imports">Imports</a></li>
<li><a href="#tut-reuse2-chapter-imports-libraries">Imports and libraries</a></li>
<li><a href="#tut-reuse2-chapter-imports-groups">Imports and groups</a></li>
<li><a href="#tut-reuse2-chapter-namespaces">Namespaces</a></li>
<li><a href="#tut-reuse2-chapter-input-variables">Input variables</a></li>
</ul>
</li>
<li><a href="#tut-stochastics">Stochastics</a>
<ul class="sectlevel3">
<li><a href="#tut-stochastics-chapter-intro">Stochastics</a></li>
<li><a href="#tut-stochastics-chapter-discrete-continuous-constant">Discrete, continuous, and constant distributions</a></li>
<li><a href="#tut-stochastics-chapter-pseudo-randomness">Pseudo-randomness</a></li>
</ul>
</li>
<li><a href="#tut-language-extensions">Language extensions</a>
<ul class="sectlevel3">
<li><a href="#tut-extensions-chapter-synthesis">Supervisory controller synthesis</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#lang-ref-chapter-index">Language reference</a>
<ul class="sectlevel2">
<li><a href="#lang-ref-syntax-lexical">Lexical syntax</a>
<ul class="sectlevel3">
<li><a href="#lang-ref-keywords">Keywords</a></li>
<li><a href="#lang-ref-terminals">Terminals</a></li>
<li><a href="#lang-ref-whitespace">Whitespace</a></li>
<li><a href="#lang-ref-comments">Comments</a></li>
</ul>
</li>
<li><a href="#lang-ref-syntax-grammar">Grammar</a></li>
</ul>
</li>
<li><a href="#tools-chapter-index">Tools</a>
<ul class="sectlevel2">
<li><a href="#tools-specification-tools">Specification tools</a>
<ul class="sectlevel3">
<li><a href="#tools-chapter-text-editor">CIF text editor</a></li>
<li><a href="#tools-chapter-cif2yed">CIF to yEd transformer</a></li>
</ul>
</li>
<li><a href="#tools-supervisory-controller-synthesis-tools">Supervisory controller synthesis tools</a>
<ul class="sectlevel3">
<li><a href="#tools-chapter-datasynth">Data-based supervisory controller synthesis</a></li>
<li><a href="#tools-eventbased-chapter-index">Event-based synthesis toolset</a></li>
<li><a href="#tools-chapter-cif2supremica">CIF to Supremica transformer</a></li>
</ul>
</li>
<li><a href="#tools-simulation-validation-and-visualization-tools">Simulation, validation, and visualization tools</a>
<ul class="sectlevel3">
<li><a href="#tools-cifsim-chapter-index">CIF simulator</a></li>
<li><a href="#tools-simulation-basics">Simulation basics</a></li>
<li><a href="#tools-simulation-inputoutput">Simulation input/Output</a></li>
<li><a href="#tools-simulation-advanced-topics">Simulation advanced topics</a></li>
<li><a href="#tools-simulation-miscellaneous-topics">Simulation miscellaneous topics</a></li>
<li><a href="#tools-simulation-developer-topics">Simulation developer topics</a></li>
</ul>
</li>
<li><a href="#tools-verification-tools">Verification tools</a>
<ul class="sectlevel3">
<li><a href="#tools-chapter-cif2mcrl2">CIF to mCRL2 transformer</a></li>
<li><a href="#tools-chapter-cif2uppaal">CIF to UPPAAL transformer</a></li>
</ul>
</li>
<li><a href="#tools-real-time-testing-code-generation-and-implementation-tools">Real-time testing, code generation, and implementation tools</a>
<ul class="sectlevel3">
<li><a href="#tools-codegen-chapter-index">CIF code generator</a></li>
<li><a href="#tools-cif2plc-chapter-index">CIF PLC code generator</a></li>
</ul>
</li>
<li><a href="#tools-miscellaneous-tools">Miscellaneous tools</a>
<ul class="sectlevel3">
<li><a href="#tools-cif2cif-chapter-index">CIF to CIF transformer</a></li>
<li><a href="#tools-chapter-mergecif">CIF merger</a></li>
<li><a href="#tools-chapter-event-disabler">CIF event disabler</a></li>
<li><a href="#tools-chapter-cif-explorer">CIF explorer</a></li>
</ul>
</li>
<li><a href="#tools-scripting">Scripting</a>
<ul class="sectlevel3">
<li><a href="#tools-scripting-chapter-intro">Introduction to scripting</a></li>
<li><a href="#tools-scripting-chapter-tools">Overview of scriptable tools</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#examples-chapter-index">CIF examples</a></li>
<li><a href="#release-notes-chapter-index">CIF release notes</a>
<ul class="sectlevel2">
<li><a href="#version-0-1-unreleased">Version 0.1 (unreleased)</a></li>
</ul>
</li>
<li><a href="#dev-chapter-index">Developers</a>
<ul class="sectlevel2">
<li><a href="#dev-lang-modify">CIF language modification</a></li>
</ul>
</li>
<li><a href="#legal-chapter-index">Legal</a></li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>CIF is a declarative modeling language for the specification of discrete
event, timed, and hybrid systems as a collection of synchronizing automata.
The CIF tooling supports the entire development process of controllers,
including among others specification, supervisory controller synthesis,
simulation-based validation and visualization, verification, real-time
testing, and code generation.</p>
</div>
<div class="paragraph">
<p>CIF is one of the tools of the
<a href="https://eclipse.org/escet">Eclipse ESCET&#8482; project</a>.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>The Eclipse ESCET project, including the CIF language and toolset,
is currently in the
<a href="https://wiki.eclipse.org/Development_Resources/Process_Guidelines/What_is_Incubation">Incubation Phase</a>.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="./eclipse-incubation.png" alt="eclipse incubation" width="300"></span></p>
</div>
</td>
</tr>
</table>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
You can <a href="eclipse-escet-incubation-cif-manual.pdf">download this manual</a>
as a PDF as well.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The documentation consists of:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#introduction-chapter-index">CIF introduction</a></p>
</li>
<li>
<p><a href="#tut-chapter-index">CIF language tutorial</a></p>
</li>
<li>
<p><a href="#lang-ref-chapter-index">CIF language reference manual</a></p>
</li>
<li>
<p><a href="#tools-chapter-index">CIF tool manual</a></p>
</li>
<li>
<p><a href="#examples-chapter-index">CIF examples</a></p>
</li>
<li>
<p><a href="#release-notes-chapter-index">CIF release notes</a></p>
</li>
<li>
<p><a href="#dev-chapter-index">CIF developers manual</a></p>
</li>
<li>
<p><a href="#legal-chapter-index">Legal information</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>A screenshot of the CIF tooling IDE:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./screenshot_ide.png" alt="screenshot ide">
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="introduction-chapter-index">Introduction</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The CIF language is a powerful declarative automata-based modeling language
for the specification of discrete event, timed (linear dynamics), hybrid
(piecewise continuous dynamics) systems. It can be seen as a rich state
machine language with the following main features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Modular specification with synchronized events and communication between
automata.</p>
</li>
<li>
<p>Many data types are available (booleans, integers, reals, tuples, lists,
arrays, sets, and dictionaries), combined with a powerful expression language
for compact variables updates.</p>
</li>
<li>
<p>Text-based specification of the automata, with many features to simplify
modeling large non-trivial industrial systems.</p>
</li>
<li>
<p>Primitives for supervisory controller synthesis are integrated in the
language.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The CIF tooling supports the entire development process of controllers,
including among others specification, supervisory controller synthesis,
simulation-based validation and visualization, verification, real-time
testing, and code generation. Highlights of the CIF tooling include:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Text-based editor that allows to easily specify and edit models.</p>
</li>
<li>
<p>Feature-rich powerful data-based synthesis tool. A transformation to the
supervisory controller synthesis tool Supremica is also available.</p>
</li>
<li>
<p>A simulator that supports both interactive and automated validation of
specifications. Powerful visualization features allow for interactive
visualization-based validation.</p>
</li>
<li>
<p>Conversion to formal verification tools such as mCRL2 and UPPAAL.</p>
</li>
<li>
<p>Implementation language code generation (PLC languages, Java, C, and
Simulink) for real-time testing and implementation of the designed controller.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="tut-chapter-index">Language tutorial</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This tutorial introduces the CIF language. It explains the general idea
behind the concepts of the language, and shows how to use them, all by means of
examples. The tutorial is focused on giving a short introduction to CIF, and
does not cover all details. It is recommended reading for all CIF users.</p>
</div>
<div class="sect2">
<h3 id="tut-introduction">Introduction</h3>
<div class="paragraph">
<p>CIF stands for <strong>C</strong>ompositional <strong>I</strong>nterchange <strong>F</strong>ormat for hybrid
systems. CIF is primarily used to create models of physical systems and their
controllers, describing their behavior. However, CIF is a general-purpose
modeling language, and can be used to model practically anything, ranging from
physical real-world systems to abstract mathematical entities.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div class="paragraph">
<p>CIF supports discrete event models, that are mostly concerned with what
happens, and in which order. CIF also supports timed systems, where timing
plays and explicit role, and hybrid systems, which combine the discrete events
with timing. This makes CIF suitable for modeling of all kinds of systems.</p>
</div>
<div class="paragraph">
<p>The CIF tooling puts a particular focus on supporting the entire development
process of controllers. However, just as the CIF language, the CIF tooling can
be applied much more generally. The tooling allows among others specification,
supervisory controller synthesis, simulation-based validation and
visualization, verification, real-time testing, and code generation.</p>
</div>
</div>
<div class="sect2">
<h3 id="tut-lessons">Lessons</h3>
<div class="paragraph">
<p>Several lessons are available, grouped into the following categories:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#lang-tut-basics">Basics</a></p>
</li>
<li>
<p><a href="#lang-tut-data">Data</a></p>
</li>
<li>
<p><a href="#lang-tut-values">Types and values</a></p>
</li>
<li>
<p><a href="#lang-tut-reuse1">Scalable solutions and reuse (1/2)</a></p>
</li>
<li>
<p><a href="#lang-tut-time">Time</a></p>
</li>
<li>
<p><a href="#lang-tut-channels">Channel communication</a></p>
</li>
<li>
<p><a href="#lang-tut-functions">Functions</a></p>
</li>
<li>
<p><a href="#lang-tut-reuse2">Scalable solutions and reuse (2/2)</a></p>
</li>
<li>
<p><a href="#lang-tut-stochastics">Stochastics</a></p>
</li>
<li>
<p><a href="#lang-tut-extensions">Language extensions</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The lessons introduce new concepts, one by one, and are meant to be read in
the given order.</p>
</div>
<div id="lang-tut-basics" class="paragraph">
<p><strong>Basics</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-basics-chapter-automata">Automata</a></dt>
<dd>
<p>Explains automata, locations, events, edges, transitions, and more.</p>
</dd>
<dt class="hdlist1"><a href="#tut-basics-chapter-synchronizing-events">Synchronizing events</a></dt>
<dd>
<p>Explains event synchronization, enabledness, traces, and state spaces.</p>
</dd>
<dt class="hdlist1"><a href="#tut-basics-chapter-non-determinism">Non-determinism</a></dt>
<dd>
<p>Explains multiple causes of non-determinism.</p>
</dd>
<dt class="hdlist1"><a href="#tut-basics-chapter-alphabet">Alphabet</a></dt>
<dd>
<p>Explains alphabets for both individual automata and entire specifications.</p>
</dd>
<dt class="hdlist1"><a href="#tut-basics-chapter-event-placement">Event declaration placement</a></dt>
<dd>
<p>Explains the placement of event declarations.</p>
</dd>
<dt class="hdlist1"><a href="#tut-basics-chapter-shorter-notations">Shorter notations</a></dt>
<dd>
<p>Explains several shorter notations, including self loops, declaring
multiple events with a single declaration, multiple events on an edge, and
nameless locations.</p>
</dd>
</dl>
</div>
<div id="lang-tut-data" class="paragraph">
<p><strong>Data</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-data-chapter-discrete-variables">Discrete variables</a></dt>
<dd>
<p>Explains discrete variables, guards, and updates.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-discvar-change">Discrete variable value changes</a></dt>
<dd>
<p>Explains how and when discrete variables can change value.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-loc-var-duality1">Location/variable duality (1/2)</a></dt>
<dd>
<p>Explains the duality between locations and variables using a model of a
counter.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-loc-var-duality2">Location/variable duality (2/2)</a></dt>
<dd>
<p>Explains the duality between locations and variables using a model of a
lamp.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-read-write">Global read, local write</a></dt>
<dd>
<p>Explains the concepts of global read and local write.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-monitoring">Monitoring</a></dt>
<dd>
<p>Explains monitoring, self loops, and monitor automata.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-asgn-old-vs-new">Old and new values in assignments</a></dt>
<dd>
<p>Explains old and new values of variables in assignments, multiple
assignments, and the order of assignments.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-tau-event">The <code>tau</code> event</a></dt>
<dd>
<p>Explains the <code>tau</code> event.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-discvar-init">Initial values of discrete variables</a></dt>
<dd>
<p>Explains initialization of discrete variables, including the use of default
values and multiple potential initial values.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-init-preds">Initialization predicates</a></dt>
<dd>
<p>Explains initialization in general, and initialization predicates in
particular.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-locs-as-var">Using locations as variables</a></dt>
<dd>
<p>Explains the use of locations as variables.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-stat-invariants">State (exclusion) invariants</a></dt>
<dd>
<p>Explains state (exclusion) invariants.</p>
</dd>
<dt class="hdlist1"><a href="#tut-data-chapter-stat-evt-excl-invariants">State/event exclusion invariants</a></dt>
<dd>
<p>Explains state/event exclusion invariants.</p>
</dd>
</dl>
</div>
<div id="lang-tut-values" class="paragraph">
<p><strong>Types and values</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-values-chapter-types-values-exprs">Types, values, and expressions</a></dt>
<dd>
<p>Explains the concepts of types, values, and expressions, as an introduction
for the other lessons in this category.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-overview">Values overview</a></dt>
<dd>
<p>Provides an overview of the available values, and divides them into
categories.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-integers">Integers</a></dt>
<dd>
<p>Explains integer types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-integer-ranges">Integer ranges</a></dt>
<dd>
<p>Explains integer ranges.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-reals">Reals</a></dt>
<dd>
<p>Explains real types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-booleans">Booleans</a></dt>
<dd>
<p>Explains boolean types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-strings">Strings</a></dt>
<dd>
<p>Explains string types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-enumerations">Enumerations</a></dt>
<dd>
<p>Explains enumeration types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-tuples">Tuples</a></dt>
<dd>
<p>Explains tuple types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-lists">Lists</a></dt>
<dd>
<p>Explains list types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-bounded-lists-and-arrays">Bounded lists and arrays</a></dt>
<dd>
<p>Explains bounded lists, arrays, and their relations with regular lists.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-sets">Sets</a></dt>
<dd>
<p>Explains set types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-dictionaries">Dictionaries</a></dt>
<dd>
<p>Explains dictionary types, values, and commonly used expressions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-combining-values">Combining values</a></dt>
<dd>
<p>Explains how to combine values of different types.</p>
</dd>
</dl>
</div>
<div id="lang-tut-reuse1" class="paragraph">
<p><strong>Scalable solutions and reuse (1/2)</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-reuse1-chapter-constants">Constants</a></dt>
<dd>
<p>Explains the use of constants.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse1-chapter-algebraic-variables">Algebraic variables</a></dt>
<dd>
<p>Explains the use of algebraic variables.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse1-chapter-algvar-equations">Algebraic variables and equations</a></dt>
<dd>
<p>Explains the use of equations to specify values of algebraic variables.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse1-chapter-type-declarations">Type declarations</a></dt>
<dd>
<p>Explains the use of type declarations.</p>
</dd>
</dl>
</div>
<div id="lang-tut-time" class="paragraph">
<p><strong>Time</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-time-chapter-intro">Timing</a></dt>
<dd>
<p>Introduces the concept of timing.</p>
</dd>
<dt class="hdlist1"><a href="#tut-time-chapter-continuous-variables">Continuous variables</a></dt>
<dd>
<p>Explains the use of continuous variables.</p>
</dd>
<dt class="hdlist1"><a href="#tut-time-chapter-contvar-equations">Continuous variables and equations</a></dt>
<dd>
<p>Explains the use of equations to specify values of continuous variables.</p>
</dd>
<dt class="hdlist1"><a href="#tut-time-chapter-equations">Equations</a></dt>
<dd>
<p>Show the use of equations for both continuous and algebraic variables, by
means of an example of a
<a href="http://en.wikipedia.org/wiki/Nonlinear_system&gt;">non-linear system</a>.</p>
</dd>
<dt class="hdlist1"><a href="#tut-time-chapter-var-overview">Variables overview</a></dt>
<dd>
<p>Provides an overview of the different kinds of variables in CIF, and their
main differences.</p>
</dd>
<dt class="hdlist1"><a href="#tut-time-chapter-urgency">Urgency</a></dt>
<dd>
<p>Explains the concept of urgency, as well as the different forms of urgency.</p>
</dd>
<dt class="hdlist1"><a href="#tut-time-chapter-deadlock-livelock">Deadlock and livelock</a></dt>
<dd>
<p>Explains the concepts of deadlock and livelock.</p>
</dd>
</dl>
</div>
<div id="lang-tut-channels" class="paragraph">
<p><strong>Channel communication</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-channels-chapter-intro">Channels</a></dt>
<dd>
<p>Explains point-to-point channels and data communication.</p>
</dd>
<dt class="hdlist1"><a href="#tut-channels-chapter-void">Dataless channels</a></dt>
<dd>
<p>Explains <code>void</code> channels that do not communicate any data.</p>
</dd>
<dt class="hdlist1"><a href="#tut-channels-chapter-chan-sync-combi">Combining channel communication with event synchronization</a></dt>
<dd>
<p>Explains how channel communication can be combined with event
synchronization, further restricting the communication.</p>
</dd>
</dl>
</div>
<div id="lang-tut-functions" class="paragraph">
<p><strong>Functions</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-functions-chapter-intro">Functions</a></dt>
<dd>
<p>Introduces functions, and explains the different kind of functions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-functions-chapter-internal-functions">Internal user-defined functions</a></dt>
<dd>
<p>Explains internal user-defined functions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-functions-chapter-statements">Function statements</a></dt>
<dd>
<p>Explains the different statements that can be used in internal user-defined
functions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-functions-chapter-functions-as-values">Functions as values</a></dt>
<dd>
<p>Explains using functions as values, allowing functions to be passed around.</p>
</dd>
</dl>
</div>
<div id="lang-tut-reuse2" class="paragraph">
<p><strong>Scalable solutions and reuse (2/2)</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-aut-def-inst">Automaton definition/instantiation</a></dt>
<dd>
<p>Explains using automaton definition and instantiation for reuse.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-aut-def-params">Parametrized automaton definitions</a></dt>
<dd>
<p>Explains parametrized automaton definitions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-aut-def-param-kinds">Automaton definition parameters</a></dt>
<dd>
<p>Explains the different kinds of parameters of automaton definitions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-groups">Groups</a></dt>
<dd>
<p>Explains hierarchical structuring using groups.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-group-defs">Group definitions</a></dt>
<dd>
<p>Explains groups definitions and parametrized group definitions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-imports">Imports</a></dt>
<dd>
<p>Explains splitting CIF specifications over multiple files using imports.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-imports-libraries">Imports and libraries</a></dt>
<dd>
<p>Explains how to create libraries that can be used by multiple CIF
specifications using imports, as well as how to use imports to include
CIF specifications from other directories.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-imports-groups">Imports and groups</a></dt>
<dd>
<p>Explains how imports and groups interact.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-namespaces">Namespaces</a></dt>
<dd>
<p>Explains namespaces, and how they can be used together with imports.</p>
</dd>
<dt class="hdlist1"><a href="#tut-reuse2-chapter-input-variables">Input variables</a></dt>
<dd>
<p>Explains input variables, how they can be used for coupling with other
models and systems, and their relation to imports.</p>
</dd>
</dl>
</div>
<div id="lang-tut-stochastics" class="paragraph">
<p><strong>Stochastics</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-stochastics-chapter-intro">Stochastics</a></dt>
<dd>
<p>Introduction to stochastic distributions, which allow for sampling, making
it possible to produce random values.</p>
</dd>
<dt class="hdlist1"><a href="#tut-stochastics-chapter-discrete-continuous-constant">Discrete, continuous, and constant distributions</a></dt>
<dd>
<p>Explains the different categories of stochastic distributions: discrete,
continuous, and constant distributions.</p>
</dd>
<dt class="hdlist1"><a href="#tut-stochastics-chapter-pseudo-randomness">Pseudo-randomness</a></dt>
<dd>
<p>Explains how computers implement stochastics using pseudo-random number
generators, and how this affects the use of stochastics in CIF.</p>
</dd>
</dl>
</div>
<div id="lang-tut-extensions" class="paragraph">
<p><strong>Language extensions</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-extensions-chapter-synthesis">Supervisory controller synthesis</a></dt>
<dd>
<p>Explains how to extend a model to make it suitable for supervisory
controller synthesis.</p>
</dd>
<dt class="hdlist1"><a href="#tools-cifsim-output-print-chapter-index">Print output</a></dt>
<dd>
<p>Explains how to extend a model to include printing of textual output.</p>
<div class="paragraph">
<p>This documentation is currently not part of the language tutorial,
but of the simulator tool documentation.</p>
</div>
</dd>
<dt class="hdlist1"><a href="#tools-cifsim-output-svgviz-chapter-index">SVG visualization</a></dt>
<dd>
<p>Explains how to extend a model to couple it to an image for visualization.</p>
<div class="paragraph">
<p>This documentation is currently not part of the language tutorial,
but of the simulator tool documentation.</p>
</div>
</dd>
<dt class="hdlist1"><a href="#tools-cifsim-input-svg-chapter-index">SVG interaction</a></dt>
<dd>
<p>Explains how to extend a model to couple it to an image for interaction via
a visualization.</p>
<div class="paragraph">
<p>This documentation is currently not part of the language tutorial,
but of the simulator tool documentation.</p>
</div>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="tut-basics">Basics</h3>
<div class="sect3">
<h4 id="tut-basics-chapter-automata">Automata</h4>
<div class="paragraph">
<p>



</p>
</div>
<div class="paragraph">
<p>CIF models consist of <em>components</em>. Each of the components represents the
behavior of a part of the system. Components can be modeled as <em>automata</em>,
which form the basis of CIF. The following CIF <em>specification</em>, or CIF <em>model</em>,
shows a simple automaton:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton lamp:
  event turn_on, turn_off;

  location on:
    initial;
    edge turn_off goto off;

  location off:
    edge turn_on goto on;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The automaton is named <code>lamp</code>, and not surprisingly represents the (discrete)
behavior of a lamp.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="lang-tut-basics-automata-events" class="paragraph">
<p>Automaton <code>lamp</code> declares two <em>events</em>, named <code>turn_on</code> and <code>turn_off</code>.
Events model things that can happen in a system. They represent changes. For
instance, the <code>turn_on</code> event indicates that the lamp is being turned on. It
represents the change from the lamp being off to the lamp being on. The event
declaration in the <code>lamp</code> automaton declares two events. The event
declaration only indicates that these events exist, it does not yet indicate
when they can happen, and what the result of them happening is.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="lang-tut-basics-automata-location" class="paragraph">
<p>All automata have one or more <em>locations</em>, which represent the mutually
exclusive <em>states</em> of the automaton. The <code>lamp</code> automaton has two
<em>locations</em>, named <code>on</code> and <code>off</code>. Automata have an <em>active</em> or <em>current</em>
location. That is, for every automaton one of its location is the active
location, and the automaton is said to be <em>in</em> that location. For instance,
the <code>lamp</code> automaton is either in its <code>on</code> location, or in its <code>off</code>
location.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="lang-tut-basics-automata-loc-init" class="paragraph">
<p>Initially, the lamp is on, as indicated by the <code>initial</code> keyword in the
<code>on</code> location. That is, the <code>on</code> location is the initial location of the
<code>lamp</code> automaton. The initial location is the active location of the
automaton, at the start of the system.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="lang-tut-basics-edge" class="paragraph">
<p>In each location, an automaton can have different behavior, specified using
<em>edges</em>. An edge indicates how an automaton can change its state, by going from
one location to another. Edges can be associated with events, that indicate
what happened, and thus what caused the state change.</p>
</div>
<div class="paragraph">
<p>The <code>lamp</code> automaton has an edge with the <code>turn_off</code> event, in its <code>on</code>
location, going to the <code>off</code> location. Whenever the lamp is on, the <code>lamp</code>
automaton is in its <code>on</code> location. Whenever the lamp is turned off, the
<code>turn_off</code> event happens. The edge with that event indicates what the
result of that event is, for the <code>on</code> location. In this case the result is
that the lamp will then be off, which is why the edge goes to the <code>off</code>
location.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="lang-tut-basics-trans" class="paragraph">
<p>The <code>lamp</code> automaton can go from one location to another, as described by its
edges. This is referred to as 'performing a transition', 'taking a transition',
or 'taking an edge'. The <code>lamp</code> automaton can keep performing <em>transitions</em>.
The lamp can be turned on, off, on again, off again, etc. This can go on
forever.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-basics-chapter-synchronizing-events">Synchronizing events</h4>
<div class="paragraph">
<p>
The power of events is that they synchronize. To illustrate this, consider
the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton producer:
  event produce, provide;

  location producing:
    initial;
    edge produce goto idle;

  location idle:
    edge provide goto producing;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The automaton represents a producer that produces products, to be consumed
by a consumer. The <code>producer</code> automaton starts in its <code>producing</code> location,
in which it produces a product. Once the product has been produced, indicated
by the <code>produce</code> event, the automaton will be in its <code>idle</code> location, where
it waits until it can <code>provide</code> the produced product to the consumer. Once it
has provided the product to the consumer, it will once again be <code>producing</code>
another product. Consider also the following continuation of the above
specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton consumer:
  event consume;

  location idle:
    initial;
    edge producer.provide goto consuming;

  location consuming:
    edge consume goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This second automaton represents a consumer that consumes products. The
<code>consumer</code> is initially <code>idle</code>, waiting for a product from the producer.
Once the producer has provided a product, the consumer will be <code>consuming</code>.
Once it has consumed the product, as indicated by the occurrence of the
<code>consume</code> event, it will become <code>idle</code> again.</p>
</div>
<div class="paragraph">
<p>The specification has three events, the <code>produce</code> and <code>provide</code> events
declared in the <code>producer</code> automaton, and the <code>consume</code> event declared in
the <code>consumer</code> automaton. The <code>consumer</code> automaton, in its <code>idle</code>
location, has an edge that refers to the <code>provide</code> event declared in the
<code>producer</code> automaton. As such, that edge and the edge in the <code>idle</code>
location of the <code>producer</code> automaton, refer to the same event.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tut-synchronization">Synchronization</h5>
<div class="paragraph">
<p>Events that are used in multiple automata, must <em>synchronize</em>. That is, if
one of those automata performs a transition for that event, the other automata
must also participate by performing a transition for that same event. If one
of the automata that uses the event can not perform a transition in its current
location, none of the automata can perform a transition for that event.</p>
</div>
<div class="paragraph">
<p>Now, lets take a closer look at the behavior of the producer/consumer example.
Initially, the <code>producer</code> automaton is in its <code>producing</code> location, and the
<code>consumer</code> automaton is in its <code>idle</code> location. Since the <code>producer</code> is
the only automaton that uses the <code>produce</code> event, and there is an (outgoing)
edge in its current location for that <code>produce</code> event, the <code>producer</code> can
go to its <code>idle</code> location by means of that event.</p>
</div>
<div class="paragraph">
<p>Both the <code>producer</code> and <code>consumer</code> use the <code>provide</code> event. The
<code>producer</code> has no edge with that event in its <code>producing</code> location, while
the <code>consumer</code> does have an edge for that event in its <code>idle</code> location.
Since events must synchronize, and the <code>producer</code> can not participate, the
event can not occur at this time. This is what we expect, as the <code>producer</code>
has not yet produced a product, and can thus not yet <code>provide</code> it to the
consumer. The <code>consumer</code> will have to remain <code>idle</code> until the <code>producer</code>
has produced a product and is ready to <code>provide</code> it to the <code>consumer</code>.</p>
</div>
<div class="paragraph">
<p>


The <code>producer</code> blocks the <code>provide</code> event in this case, and is said to
<em>disable</em> the event. The event is not blocked by the <code>consumer</code>, and is thus
said to be <em>enabled</em> in the <code>consumer</code> automaton. In the entire
specification, the event is <em>disabled</em> as well, as it is disabled by at least
one of the automata of the specification, and all automata must enable the
event for it to become enabled in the specification.</p>
</div>
<div class="paragraph">
<p>The only behavior that is possible, is for the <code>producer</code> to <code>produce</code> a
product, and go to its <code>idle</code> location. The <code>consumer</code> does not participate
and remains in its <code>idle</code> location. Both automata are then in their <code>idle</code>
location, and both have an edge that enables the <code>provide</code> event. As such,
the <code>provide</code> event is enabled in the specification. As this is the only
possible behavior, a transition for the <code>provide</code> event is performed. This
results in the <code>producer</code> going back to its <code>producing</code> location, while at
the same time the <code>consumer</code> goes to its <code>consuming</code> location.</p>
</div>
<div class="paragraph">
<p>In its <code>producing</code> location, the <code>producer</code> can <code>produce</code> a product.
Furthermore, in its <code>consuming</code> location, the <code>consumer</code> can <code>consume</code> a
product. Two transitions are possible, and CIF does not define which one will
be performed. That is, either one can be performed. No assumptions should be
made either way. In other words, both transitions represent valid behavior, as
described by this specification. Since only one transition can be taken at a
time, there are two possibilities. Either the <code>producer</code> starts to
<code>produce</code> the product first, and the <code>consumer</code> starts to <code>consume</code> after
that, or the other way around.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-traces-and-state-spaces">Traces and state spaces</h5>
<div class="paragraph">
<p>Once both transitions have been taken, we are essentially in the same situation
as we were after the <code>producer</code> produced a product the first time, as both
automata will be in their <code>idle</code> locations again. The behavior of the
specification then continues to repeat forever. However, for each repetition
different choices in the order of production and consumption can be made.</p>
</div>
<div class="paragraph">
<p>
During a single <em>execution</em> or <em>simulation</em>, choices are made each time that
multiple transitions are possible. The sequence of transitions that are taken
is called a <em>trace</em>. Examples of traces for the producer/consumer example are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>produce</code> →
<code>provide</code> →
<code>produce</code> →
<code>consume</code> →
<code>provide</code> →
<code>produce</code> →
<code>consume</code> →
&#8230;&#8203;</p>
</li>
<li>
<p><code>produce</code> →
<code>provide</code> →
<code>produce</code> →
<code>consume</code> →
<code>provide</code> →
<code>consume</code> →
<code>produce</code> →
&#8230;&#8203;</p>
</li>
<li>
<p><code>produce</code> →
<code>provide</code> →
<code>consume</code> →
<code>produce</code> →
<code>provide</code> →
<code>produce</code> →
<code>consume</code> →
&#8230;&#8203;</p>
</li>
<li>
<p><code>produce</code> →
<code>provide</code> →
<code>consume</code> →
<code>produce</code> →
<code>provide</code> →
<code>consume</code> →
<code>produce</code> →
&#8230;&#8203;</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The traces end with <code>...</code> to indicate that they are partial traces, that go
beyond the part of the trace that is shown. These four traces however, cover
all the possibilities for the first seven transitions.</p>
</div>
<div class="paragraph">
<p>
All possible traces together form the <em>state space</em>, which represents all the
possible behavior of a system. For the producer/consumer example, the state
space is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/basics/producer_consumer_state_space_finite.png" alt="producer consumer state space finite">
</div>
</div>
<div class="paragraph">
<p>Here the circles represent the states of the specification, which are a
combination of the states of the two automata. The labels of the circles
indicate the state, as a combination of the first letters of the locations of
the automata. The initial state is labeled <code>p/i</code>, as initially automaton
<code>producer</code> is in its <code>producing</code> (p) location, and the <code>consumer</code> is in
its <code>idle</code> (i) location. The arrows indicate the transitions, and are labeled
with events. The state space clearly shows the choices, as multiple outgoing
arrows for a single state. It also makes it clear that as we move to the right,
and make choices, we can make different choices for different products.
Since the behavior keeps repeating itself, the state space ends with <code>...</code>
to indicate that only a part of the state space is shown.</p>
</div>
<div class="paragraph">
<p>However, we can also show the entire behavior of the specification. Essential
here is that the state space shown above has duplicate states. That is, several
states have the same label, and allow for the same future behavior. By reusing
states, a finite representation of the state space can be made, which shows the
entire possible infinite behavior of the producer/consumer specification:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/basics/producer_consumer_state_space_infinite.png" alt="producer consumer state space infinite">
</div>
</div>
</div>
<div class="sect4">
<h5 id="tut-concluding-remarks">Concluding remarks</h5>
<div class="paragraph">
<p>By using multiple automata, the producer and consumer were modeled
independently, allowing for separation of concerns. This is an important
concept, especially when modeling larger systems. In general, the large system
is decomposed into parts, usually corresponding to physical entities. Each of
the parts of the system can then be modeled in isolation, with little regard
for the other parts.</p>
</div>
<div class="paragraph">
<p>By using synchronizing events, the different automata that model different
parts of a system, can interact. This allows for modeling of the connection
between the different parts of the system, ensuring that together they
represent the behavior of the entire system.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-basics-chapter-non-determinism">Non-determinism</h4>
<div class="paragraph">
<p>
Depending on the context in which it is used, non-determinism can mean
different things. One definition is having multiple possible traces through the
state space of a system. Another definition is having multiple possible
transitions for a certain event, for a certain state. Different communities
also use different definitions, and some communities only use one of the
definitions, and use a different name to refer to the other concept.</p>
</div>
<div class="sect4">
<h5 id="tut-non-determinism-between-events">Non-determinism between events</h5>
<div class="paragraph">
<p>One cause of non-determinism is that multiple events are enabled, leading to
multiple possible transitions. In other words, there are multiple possible
traces through the state space. During the lesson on
<a href="#tut-basics-chapter-synchronizing-events">synchronizing events</a>, we already
encountered this form of non-determinism, as transitions for the <code>produce</code> and
<code>consume</code> events could be performed in arbitrary order.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-non-determinism-for-single-event">Non-determinism for single event</h5>
<div class="paragraph">
<p>Another cause of non-determinism is the presence of multiple outgoing edges of
a single location for the same event. This can lead to multiple possible
transitions for a that event, for a single state. For instance, consider the
following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton coin:
  event toss, land, pick_up;

  location hand:
    initial;
    edge toss goto air;

  location air:
    edge land goto ground;

  location ground:
    edge pick_up goto hand;
end

automaton outcome:
  location unknown:
    initial;
    edge coin.land goto heads; // First way to land.
    edge coin.land goto tails; // Second way to land.

  location heads:
    edge pick_up goto unknown;

  location tails:
    edge pick_up goto unknown;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>coin</code> automaton represents a single coin. Initially, it is in the
<code>hand</code> of a person. That person can <code>toss</code> the coin up into the <code>air</code>,
eventually causing it to fall and <code>land</code> on the <code>ground</code>. It can be picked
up (event <code>pick_up</code>), causing it to once again be in the <code>hand</code> of a
person.</p>
</div>
<div class="paragraph">
<p>The <code>outcome</code> automaton registers the outcome of the
<a href="http://en.wikipedia.org/wiki/Coin_toss">coin toss</a>. Initially,
the outcome is <code>unknown</code>. Whenever the coin is tossed, it lands (event
<code>land</code> from automaton <code>coin</code>) on the ground with either the <code>heads</code> or
<code>tails</code> side up. The <code>unknown</code> location of the <code>outcome</code> automaton has
two edges for the same event. This leads to two possible transitions, one to
the <code>heads</code> location, and one to the <code>tails</code> location. This is a
non-deterministic choice, as the model does not specify which transition is
chosen, or even which choice is more likely.</p>
</div>
<div class="paragraph">
<p>In both the <code>heads</code> and <code>tails</code> locations, the coin can be picked up again,
making the outcome <code>unknown</code>. The coin can be tossed again and again,
repeating the behavior forever. The following figure shows the state space of
this specification:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/basics/coin_toss_state_space.png" alt="coin toss state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the first letters of the current locations of the
two automata.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-basics-chapter-alphabet">Alphabet</h4>
<div class="paragraph">
<p>
</p>
</div>
<div class="paragraph">
<p>The lesson on <a href="#tut-basics-chapter-synchronizing-events">synchronizing events</a>
described how events that are used in multiple automata exhibit synchronizing
behavior. That is, if the event is used in multiple automata, they must all
enable that event in order for a transition to be possible. If one of them can
not perform the event, the event is disabled, and none of the automata can
perform a transition for that event.</p>
</div>
<div class="paragraph">
<p>Whether an automaton participates in the synchronization for a certain event,
is determined by its <em>alphabet</em>. The alphabet of an automaton is the collection
of events over which it synchronizes.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="tut-default-and-implicit-alphabets">Default and implicit alphabets</h5>
<div class="paragraph">
<p>By default, the alphabet of an automaton implicitly contains all the events
that occur on the edges of the automaton. For instance, consider the following
CIF specification (the producer/consumer example from the lesson on
<a href="#tut-basics-chapter-synchronizing-events">synchronizing events</a>):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton producer:
  event produce, provide;

  location producing:
    initial;
    edge produce goto idle;

  location idle:
    edge provide goto producing;
end

automaton consumer:
  event consume;

  location idle:
    initial;
    edge producer.provide goto consuming;

  location consuming:
    edge consume goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The alphabet of the <code>producer</code> automaton contains the events <code>produce</code> and
<code>provide</code>, as both occur on edges of that automaton. The alphabet of the
<code>consumer</code> automaton contains the events <code>producer.produce</code> and
<code>consume</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-basics-alphabet-explicit">Explicit alphabet</h5>
<div class="paragraph">
<p>It is possible to explicitly specify the alphabet of an automaton, as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event provide;

automaton producer:
  event produce;

  alphabet produce, provide; // Alphabet explicitly specified.

  location producing:
    initial;
    edge produce goto idle;

  location idle:
    edge provide goto producing;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>alphabet</code> keyword is followed by the events that comprise the alphabet
of the automaton, separated by commas. In this case, the alphabet contains
the <code>produce</code> and <code>provide</code> events. Since this explicitly specified
alphabet is exactly the same as the default alphabet, it could just as easily
be omitted.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-non-default-alphabet">Non-default alphabet</h5>
<div class="paragraph">
<p>The alphabet is allowed to be empty, which can be explicitly specified as
follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alphabet; // Empty alphabet. Automaton doesn't synchronize over any events.</code></pre>
</div>
</div>
<div class="paragraph">
<p>
However, the alphabet of an automaton must at least contain the events that
occur on the edges of an automaton. That is, it must at least contain the
default alphabet.</p>
</div>
<div class="paragraph">
<p>
It may however also contain additional events. Since there are no edges for
those additional events, the automaton can never enable those events, and
thus always disables them. If a single automaton disables an event, and since
it must always participate if it has that event in its alphabet, this means
that the event becomes globally disabled in the entire specification. Having
such additional events in the alphabet leads to a warning, to inform about the
potential undesired effects of globally disabling events in this manner.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-implicit-vs-explicit">Implicit vs explicit</h5>
<div class="paragraph">
<p>It should be clear that for most automata, the implicit default alphabet
suffices. There are however reasons for explicitly specifying the default
alphabet. For large automata, it can improve the readability, as the explicit
alphabet makes it easy to determine the alphabet of the automaton, without
having to look at all the edges.</p>
</div>
<div class="paragraph">
<p>The need to explicitly specifying a non-default alphabet rarely occurs.
However, several <a href="#tools-chapter-index">tools</a> generate CIF specifications with
explicit alphabets.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-basics-chapter-event-placement">Event declaration placement</h4>
<div class="paragraph">
<p>
Consider the following CIF specification (the producer/consumer example from
the lesson on <a href="#tut-basics-chapter-synchronizing-events">synchronizing events</a>):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton producer:
  event produce, provide;

  location producing:
    initial;
    edge produce goto idle;

  location idle:
    edge provide goto producing;
end

automaton consumer:
  event consume;

  location idle:
    initial;
    edge producer.provide goto consuming;

  location consuming:
    edge consume goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The specification could also be specified as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton producer:
  event produce, provide, consume; // Declaration of event 'consume' moved.

  location producing:
    initial;
    edge produce goto idle;

  location idle:
    edge provide goto producing;
end

automaton consumer:
  location idle:
    initial;
    edge producer.provide goto consuming;

  location consuming:
    edge producer.consume goto idle; // Event 'consume' from 'producer'.
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>consume</code> event is now declared in the <code>producer</code> automaton rather than
the <code>consumer</code> automaton, but the locations and edges have not changed. This
modified specification exhibits the same behavior as the original.</p>
</div>
<div class="paragraph">
<p>It should be clear that while events can be declared in various places, it is
best to declare them where they belong. That is, the <code>consume</code> event is only
used by the <code>consumer</code> automaton, and is thus best declared in that
automaton. Similarly, the <code>produce</code> event is only used by the <code>producer</code>
automaton.</p>
</div>
<div class="paragraph">
<p>The <code>provide</code> event however is used by both automata. In such cases the event
is usually declared where it is initiated. In the example above, the producer
provides the product to the consumer, and not the other way around. Therefore,
the <code>provide</code> event is declared in the <code>producer</code> automaton, rather than in
the <code>consumer</code> automaton.</p>
</div>
<div class="paragraph">
<p>However, the modeler is free to choose the best place to declare the event. If
no choice can be made between the automata, the event can also be declared
outside the automata, as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event provide; // Event 'provide' now declared outside the automata.

automaton producer:
  event produce;

  location producing:
    initial;
    edge produce goto idle;

  location idle:
    edge provide goto producing;
end

automaton consumer:
  event consume;

  location idle:
    initial;
    edge provide goto consuming; // Can directly refer to 'provide' event.

  location consuming:
    edge consume goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification also has the same behavior. Only the placement of the event
declarations has changed.</p>
</div>
<div class="paragraph">
<p>The place where an event is declared is of no influence to the
implicit (default) <a href="#tut-basics-chapter-alphabet">alphabets</a> of the
automata. The implicit alphabet of an automaton is determined solely based on
the events that occur on the edges of that automaton.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-basics-chapter-shorter-notations">Shorter notations</h4>
<div class="paragraph">
<p>This lessons explains several short notations, that can be used for easier
modeling, can reduce the size of the specification, and make specifications
easier to read. The following topics are discussed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#lang-tut-basics-shorter-notations-self-loop">Self loop</a></p>
</li>
<li>
<p><a href="#lang-tut-basics-shorter-notations-evt-decl-mult">Declaring multiple events with a single declaration</a></p>
</li>
<li>
<p><a href="#lang-tut-basics-shorter-notations-edge-mult-evt">Multiple events on an edge</a></p>
</li>
<li>
<p><a href="#lang-tut-basics-shorter-notations-loc-nameless">Nameless location</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="lang-tut-basics-shorter-notations-self-loop">Self loop</h5>
<div class="paragraph">
<p>A self loop is an edge that goes to the location from which it originated.
Consider the following example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  event e;

  location x:
    edge e goto x;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The edge in location <code>x</code> of automaton <code>a</code> goes to location <code>x</code>. The
effect of the <code>e</code> event is that automaton <code>a</code> remains in its <code>x</code>
location. A self loop can be used to allow a certain event, essentially
ignoring it for that location.</p>
</div>
<div class="paragraph">
<p>The following short notation can be used for self loops:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  event e;

  location x:
    edge e; // Goto omitted for self loop.
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>goto</code> part of the edge can be omitted for self loop. This can help make
the model easier to read, as the resulting location does not have to be checked
against the source location of the edge, to see whether they match.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-basics-shorter-notations-evt-decl-mult">Declaring multiple events with a single declaration</h5>
<div class="paragraph">
<p>Several of the previous lessons already showed that multiple events can be
declared using a single event declaration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event a, b, c; // Single declaration declares multiple events.</code></pre>
</div>
</div>
<div class="paragraph">
<p>This is equivalent to using multiple event declarations that each declare a
single event:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event a; // Multiple declarations each declare a single event.
event b;
event c;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Using a single declaration to declare multiple events can help reduce the
length of a specification.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-basics-shorter-notations-edge-mult-evt">Multiple events on an edge</h5>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  event e, f;

  location loc:
    edge e goto loc; // Two edges that only differ in the event.
    edge f goto loc;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This can also be written more compactly, as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  event e, f;

  location loc:
    edge e, f goto loc; // Edge with two events.
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>An edge with two or more events means exactly the same as having individual
edges for the different events. That is, a choice is made between them. It does
<em>not</em> specify that event <code>f</code> can only happen after event <code>e</code> has already
happened. Both automata thus have the exact same behavior.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-basics-shorter-notations-loc-nameless">Nameless location</h5>
<div class="paragraph">
<p>Several of the examples above show automata with a single location. For such
automata, the name of the location is optional:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  event e;

  location:
    edge e;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Since the location has no name, there is no way to refer to it in a <code>goto</code>,
and thus only self loop edges can be used. Leaving out the name prevents having
to come up with a dummy name, which can clutter the specification.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-data">Data</h3>
<div class="sect3">
<h4 id="tut-data-chapter-discrete-variables">Discrete variables</h4>
<div class="paragraph">
<p>This lesson introduces discrete variables. Consider the following
specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton counter:
  event increment, decrement;

  disc int count = 3;

  location:
    edge decrement when count &gt; 0 do count := count - 1;
    edge increment when count &lt; 5 do count := count + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>

The <code>counter</code> automaton can be used to count certain things. The
<code>increment</code> and <code>decrement</code> events are used to change the count. The count
itself is stored in a variable named <code>count</code>. CIF has several different types
of variables. Here, we use a discrete variable, as indicated by the <code>disc</code>
keyword. The variable has an <code>int</code> data type, meaning it can have integer
numbers as its value. It is initialized to value <code>3</code>.</p>
</div>
<div class="paragraph">
<p>



The automaton has two edges, one for the <code>increment</code> event, and one for the
<code>decrement</code> event. The edge for the <code>decrement</code> event has a <em>guard</em> that
indicates under which circumstances the event can take place. The condition is
indicated using the <code>when</code> keyword. In this case, the guard ensures that the
count can only be decremented if it is currently positive. The guard of the
edge for the <code>increment</code> event indicates that the count can only be
incremented as long as it is less than five. In general, a guard must hold in
the source location of the edge, for the edge to be enabled, and a transition
to be possible. If the guard is not specified, it defaults to <code>true</code>, which
always holds and does not restrict the edge in any way.</p>
</div>
<div class="paragraph">
<p>





Both edges also have <em>updates</em>, indicated using the <code>do</code> keyword. Updates can
be used to specify the effect of the transition on variables. In this case, the
updates <em>assign</em> a new value to the <code>count</code> variable that is one less or one
more than the current value. That is the value of the <code>count</code> variable is
decremented or incremented by one.</p>
</div>
<div class="paragraph">
<p>This specification represents a counter that can be repeatedly incremented and
decremented by one, and ensures that the value of variable <code>count</code> is always
at least zero and at most five.</p>
</div>
<div class="paragraph">
<p>The state space of the <code>counter</code> automaton is as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/counter_state_space.png" alt="counter state space">
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-discvar-change">Discrete variable value changes</h4>
<div class="paragraph">
<p>
Discrete variables can only change value by explicitly assigning them a new
value in the <code>do</code> part of an edge. If an edge does not assign a value to a
discrete variable, that variable keeps its current value. Consider the
following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton lamp:
  event turn_on, turn_off;

  disc int count = 0;

  location off:
    initial;
    edge turn_on  do count := count + 1 goto on;

  location on:
    edge turn_off                       goto off;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This is the same <code>lamp</code> automaton as used in the lesson on
<a href="#tut-basics-chapter-automata">automata</a>, but with a <code>count</code> variable added. This
variable is used to count the number of times that the lamp has been turned on.
The edge for the <code>turn_on</code> event increments the value of the variable by one,
each time the lamp is turned on.</p>
</div>
<div class="paragraph">
<p>The edge for the <code>turn_off</code> event does not assign a value to a variable, so
variable <code>count</code> keeps its value when the lamp is turned off.</p>
</div>
<div class="paragraph">
<p>The state space of this specification is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/discvar_change_state_space.png" alt="discvar change state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the name of the current location of automaton
<code>lamp</code> and the current value of variable <code>count</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-loc-var-duality1">Location/variable duality (1/2)</h4>
<div class="paragraph">
<p>

The lesson that
<a href="#tut-data-chapter-discrete-variables">introduces discrete variables</a>, uses
an example of a counter. The actual count was modeled using a variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton counter:
  event increment, decrement;

  disc int count = 3;

  location:
    edge decrement when count &gt; 0 do count := count - 1;
    edge increment when count &lt; 5 do count := count + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>It is also possible to use multiple locations instead of a variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton counter:
  event increment, decrement;

  location zero:
    edge increment goto one;

  location one:
    edge decrement goto zero;
    edge increment goto two;

  location two:
    edge decrement goto one;
    edge increment goto three;

  location three:
    initial;

    edge decrement goto two;
    edge increment goto four;

  location four:
    edge decrement goto three;
    edge increment goto five;

  location five:
    edge decrement goto four;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This alternate model has the same behavior, in that it models a counter that
can be incremented an decremented in steps of one, and the value is kept at
least zero, and at most five. The variant with the variable however, is shorter
and more intuitive. It is also easier to change to the <code>count &lt; 5</code> guard to
<code>count &lt; 100</code> than it is to add dozens of additional locations and edges. In
this case, using a variable is preferable to using multiple locations.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-loc-var-duality2">Location/variable duality (2/2)</h4>
<div class="paragraph">
<p>

The lesson that <a href="#tut-basics-chapter-automata">introduces automata</a>, used an
example of a lamp:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton lamp:
  event turn_on, turn_off;

  location on:
    initial;
    edge turn_off goto off;

  location off:
    edge turn_on goto on;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The automaton uses two locations to keep track of the current state of the
lamp. Instead of two locations, it is also possible to use a variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton lamp:
  event turn_on, turn_off;

  disc bool on = true;

  location:
    initial;
    edge turn_on  when not on do on := true;
    edge turn_off when     on do on := false;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This alternate automaton uses a single variable named <code>on</code>. The
<a href="#tut-values-chapter-types-values-exprs">data type</a> of the variable is
<code>bool</code>, which means that the variable can only have one of two possible
values: <code>true</code> or <code>false</code>. If variable <code>on</code> has value <code>true</code>, the lamp
is on, and if it has value <code>false</code> it is off. Initially, the lamp is on, as
the initial value of the variable is <code>true</code>. The automaton has only one
location, with two edges. The first edge indicates that the lamp can be turned
on (event <code>turn_on</code>), only when it is not currently on (guard <code>not on</code>),
and then afterwards is on (variable <code>on</code> becomes <code>true</code>). Similarly, the
second edge indicates that the lamp can be turned off, only when it is
currently on, and then afterwards is on.</p>
</div>
<div class="paragraph">
<p>Both models represent a lamp that is initially on, and can be turned off,
on, off again, on again, etc, repeating the behavior forever. Which approach
is best depends on your preference, and on the rest of the model. It is however
also possible to use both locations and a variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton lamp:
  event turn_on, turn_off;

  disc bool on2 = true;

  location on:
    initial;
    edge turn_off do on2 := false goto off;

  location off:
    edge turn_on  do on2 := true  goto on;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This automaton has the same behavior as the previous two automata. Variable
<code>on</code> is renamed to <code>on2</code>, as a variable can not have the same name as a
location of that same automaton.</p>
</div>
<div class="paragraph">
<p>While it is possible to model a lamp like this, this automaton duplicates the
information about whether the lamp is on or off. This makes the automaton
larger and more complex than it needs to be. In general, it is usually better
to choose either a variable, or multiple locations, to express something, and
not both. In several future lessons, we&#8217;ll see that combining multiple
locations with variables is useful, but not to express the same thing.
Furthermore, an other future lesson explains how to
<a href="#tut-data-chapter-locs-as-var">use a location as a variable</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-read-write">Global read, local write</h4>
<div class="paragraph">
<p>

Discrete variables can only be declared in automata, and may only be assigned
(given a value, written) by that automaton. They may however be read globally.
Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton customer:
  location:
    initial;
    edge queue1.enter when queue1.count &lt;= queue2.count;
    edge queue2.enter when queue2.count &lt;= queue1.count;
end

automaton queue1:
  event enter, leave;

  disc int count = 0;

  location:
    initial;
    edge enter when count &lt; 2 do count := count + 1;
    edge leave when count &gt; 0 do count := count - 1;
end

automaton queue2:
  event enter, leave;

  disc int count = 0;

  location:
    initial;
    edge enter when count &lt; 2 do count := count + 1;
    edge leave when count &gt; 0 do count := count - 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification models a supermarket, and features a customer and two
queues. Customers arrive and enter either of the queues. Eventually customers
leave the queue.</p>
</div>
<div class="paragraph">
<p>Both queues (automata <code>queue1</code> and <code>queue2</code>) are identical, except for
their names. They maintain the <code>count</code>, which represents the number of
customers in the queue. A queues is full if it contains two customers.
Customers can thus only <code>enter</code> a queue if less than two customers are
present. Similarly, it is only possible for a customer to leave a queue if
there is a customer in the queue.</p>
</div>
<div class="paragraph">
<p>Customers decide to which queue they go, based on the number of customers
already present in those queues. A customer only enters the first queue if that
queue has less than or the same number of customers as the second queue.
Similarly, a customer only enters the second queue if that queue has less than
or the same number of customers as the first queue. If the queues have the same
number of customers, the customer can choose either queue.</p>
</div>
<div class="paragraph">
<p>
The <code>enter</code> event declared in the first queue (<code>queue1</code>) is used by both
the <code>customer</code> automaton and the <code>queue1</code> automaton. The event is thus only
possible (enabled) if both automata can participate. Both automata restrict the
occurrence of the event using a guard. The event is thus only possible if both
guards hold. That is, a custom never enters the first queue if it is full, but
it also never enters that queue if it has more customers than the second queue.</p>
</div>
<div class="paragraph">
<p>The state space of this specification is as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/supermarket_state_space.png" alt="supermarket state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the counts of the first and second queues.</p>
</div>
<div class="paragraph">
<p>The <code>customer</code> automaton uses the values of the variables of the queue
automata, and thus reads variables of other automata. This is allowed, due to
the <em>global read</em> concept of CIF. This concept allows for short guards, that
directly and intuitively represent the condition under which an event may take
place.</p>
</div>
<div class="paragraph">
<p>The global read concept should only be used when it is intuitive. In the
supermarket example, the customer can physically see how many customers are
in the queues. It is therefore intuitive to directly refer to the <code>count</code>
variables of the queue automata. If however the customer would not be able to
physically observer the queues, then the customer would not be able to directly
base its decision of which queue to join, on that information. In that latter
case, it may not be a good idea to model the guard in such way.</p>
</div>
<div class="paragraph">
<p>The <em>local write</em> concept means that discrete variables can only be written by
the automata in which they are declared. It is not allowed for the <code>customer</code>
and <code>queue2</code> automata to write (change the value of) the <code>count</code> variable
of the <code>queue1</code> automaton. Only the <code>queue1</code> automaton may write that
variable. The local write concept prevents that multiple automata write to the
same variable, as part of a synchronizing event, potentially causing
conflicting values to be assigned to that variable. This leads to several
benefits, most notably simpler semantics.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-monitoring">Monitoring</h4>
<div class="paragraph">
<p>

This lesson explains the concept of <em>monitoring</em>. It is explained using the
following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton producer:
  event produce, provide_a, provide_b;

  location producing:
    initial;
    edge produce goto idle;

  location idle:
    edge provide_a goto producing;
    edge provide_b goto producing;
end

automaton detect_changeover:
  disc int count = 0;

  location start:
    initial;
    edge producer.provide_a goto a;
    edge producer.provide_b goto b;

  location a:
    edge producer.provide_b do count := count + 1 goto b;

  location b:
    edge producer.provide_a do count := count + 1 goto a;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>producer</code> automaton represents a producer that can repeatedly
<code>produce</code> a product, and provide it to either consumer 'a' (event
<code>provide_a</code>) or consumer 'b' (event <code>provide_b</code>). The consumers are not
modeled.</p>
</div>
<div class="paragraph">
<p>The <code>detect_changeover</code> automaton detects consumer changes. That is, it
detects and counts how often the producer switching from providing consumer 'a'
with products to providing consumer 'b' with products, and vice versa.
Initially, the automaton waits for the first product to be provided. It goes
to either location <code>a</code> or location <code>b</code>, depending on which consumer is
provided that first product. Whenever a product is then provided to the other
consumer, the <code>count</code> is incremented by one to account for the changeover
taking place. This also switches the location to the location for the other
consumer, where once again the automaton waits for a changeover.</p>
</div>
<div class="sect4">
<h5 id="tut-the-monitoring-problem">The monitoring problem</h5>
<div class="paragraph">
<p>There is a problem with the <code>detect_changeover</code> automaton. In its <code>a</code>
location, it disables the <code>provide_a</code> event, as there is no edge for that
event, and the automaton has that event in its (implicit)
<a href="#tut-basics-chapter-alphabet">alphabet</a>. This means that after a product is
provided to consumer 'a', no more products can be provided to that same
consumer, until the producer provides a product to the consumer 'b', and the
automaton switches to the corresponding <code>b</code> location. However, the idea is
that the producer can provide products to either consumer, at all times, as
that is the way it is intended. The <code>detect_changeover</code> automaton currently
prevents behavior that is present in the <code>producer</code>, while it is only meant
to <em>observe</em> or <em>monitor</em> products being provided. The state space of the
specification is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/monitoring_problem_state_space.png" alt="monitoring problem state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the first letters of the names of the current
locations of the automata. Note how the <code>i/a</code> and <code>i/b</code> locations only have
outgoing transitions for either the <code>provide_a</code> transition or the
<code>provide_b</code> transition.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-monitoring-with-self-loops">Monitoring with self loops</h5>
<div class="paragraph">
<p>A simple solution is to allow the disabled events:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton detect_changeover:
  disc int count = 0;

  location start:
    initial;
    edge producer.provide_a goto a;
    edge producer.provide_b goto b;

  location a:
    edge producer.provide_a; // Added self loop.
    edge producer.provide_b do count := count + 1 goto b;

  location b:
    edge producer.provide_a do count := count + 1 goto a;
    edge producer.provide_b; // Added self loop.
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>

The <code>provide_a</code> event has been added to an edge in the <code>a</code> location. The
edge is a <a href="#lang-tut-basics-shorter-notations-self-loop">self loop</a>,
meaning the current location of automaton <code>detect_changeover</code> does not change
as a result of taking the edge. This means that essentially the event is
ignored by the <code>detect_changeover</code> automaton, as the edge also has no
updates. The state space of the modified specification is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/monitoring_fixed_state_space.png" alt="monitoring fixed state space">
</div>
</div>
<div class="paragraph">
<p>Now, whenever the <code>provide_a</code> event is possible, the <code>provide_b</code> event is
also possible, and vice versa, just as in the <code>producer</code> automaton. The
<code>detect_changeover</code> automaton no longer restricts the occurrence of the
events; it only monitors them.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-monitoring-with-monitor-automata">Monitoring with monitor automata</h5>
<div class="paragraph">
<p>An alternative to adding self loops, is to use a <em>monitor</em> automaton. A monitor
automaton is an automaton that monitors or observes one or more events. The
events that it monitors, are never blocked (disabled) by that automaton. For
our producer/changeover example, we can turn the <code>detect_changeover</code>
automaton into a monitor automaton for the <code>provide_a</code> and <code>provide_b</code>
events:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton detect_changeover:
  monitor producer.provide_a, producer.provide_b; // Monitor instead of the self loops.

  disc int count = 0;

  location start:
    initial;
    edge producer.provide_a goto a;
    edge producer.provide_b goto b;

  location a:
    edge producer.provide_b do count := count + 1 goto b;

  location b:
    edge producer.provide_a do count := count + 1 goto a;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>By default, automata don&#8217;t monitor any events. Using a <code>monitor</code> declaration
with one or more events, turns the automaton into a monitor automaton for those
events. For the producer/changeover example, the behavior with the monitor
automaton is exactly identical to the behavior of the specification with the
self loops.</p>
</div>
<div class="paragraph">
<p>By omitting the events from the <code>monitor</code> declaration, an automaton monitors
all events of its alphabet:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">monitor; // Monitor all events in the alphabet of the automaton.</code></pre>
</div>
</div>
<div class="paragraph">
<p>For the producer/changeover, which has only the <code>provide_a</code> and <code>provide_b</code>
events in its alphabet, this would result in the same behavior as for the
automaton that monitors the two events explicitly.</p>
</div>
<div class="paragraph">
<p>Using a monitor automaton instead of self loops has several advantages. A
monitor declaration has to be provided only once, while self loops often have
to be added to several locations. Furthermore, if the automaton is changed, it
may be necessary to add or remove self loops, while the monitor declaration can
most often be kept as is.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-asgn-old-vs-new">Old and new values in assignments</h4>
<div class="paragraph">
<p>This lesson explains old and new values of variables in assignments, multiple
assignments, and the order of assignments.</p>
</div>
<div class="sect4">
<h5 id="tut-old-and-new-values">Old and new values</h5>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton counter:
  event increment;

  disc int count = 0;

  location:
    initial;
    edge increment do count := count + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>counter</code> automaton represents a counter that starts counting at zero,
and can be incremented in steps of one.</p>
</div>
<div class="paragraph">
<p>


In assignments, the part to the left of the <code>:=</code> is called the <em>left hand
side</em> of the assignment, or the <em>addressable</em>. The addressable is the variable
that is assigned, and gets the new value. In the example above, variable
<code>count</code> is assigned a new value.</p>
</div>
<div class="paragraph">
<p>



The part to the right of the <code>:=</code> is called the <em>right hand side</em> of the
assignment, or the (new) <em>value</em>. In the example above, the new value is
computed by taking the <em>current</em> or <em>old</em> value of variable <code>count</code> and
incrementing it by one.</p>
</div>
<div class="paragraph">
<p>In general, for variables used to compute the new value, always the old value
of those variables are used. The new values for variables after a transition,
are always computed from the old values of variables from before that
transition.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-data-asgn-old-vs-new-multiple">Multiple assignments</h5>
<div class="paragraph">
<p>It is allowed to update multiple variables on a single edge, leading to
multiple variables getting a new value as part of a single transition. For
instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton swapper:
  event swap;
  disc int x = 0, y = 0;

  location:
    initial;
    edge swap do x := y, y := x + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>swapper</code> automaton declares two variables, <code>x</code> and <code>y</code>. It keeps
swapping the values of both variables, each time increasing the value of <code>y</code>
by one.</p>
</div>
<div class="paragraph">
<p>Initially, both variables have value zero. During the first <code>swap</code>, variable
<code>x</code> gets the value of variable <code>y</code>. Since the old values of the variables
are used to compute the new values, variable <code>x</code> remains zero. Variable <code>y</code>
gets the old value of variable <code>x</code>, which is also zero, incremented by one.
The result of the first swap is that <code>x</code> remains zero and <code>y</code> becomes one.</p>
</div>
<div class="paragraph">
<p>During the second swap, <code>x</code> gets the value of variable <code>y</code>, which is then
one. Variable <code>y</code> gets the value of variable <code>x</code>, which was still zero
before the second swap, incremented by one. Both variables are thus one after
the second swap.</p>
</div>
<div class="paragraph">
<p>During the third swap, <code>x</code> gets the value of variable <code>y</code> from after the
second swap, and thus remains one. Variable <code>y</code> becomes two.</p>
</div>
<div class="paragraph">
<p>The state space of this somewhat artificial example is as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/swapper_state_space.png" alt="swapper state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the values of variables <code>x</code> and <code>y</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-assignment-order">Assignment order</h5>
<div class="paragraph">
<p>It is important to note that since the new values of the variables are computed
from the old values of the variables, assignments are completely independent of
each other. In the example above, variable <code>x</code> is assigned a new value in the
first assignment, and variable <code>x</code> is also used to compute the new value of
variable <code>y</code>. However, the old value of variable <code>x</code> is used to compute the
new value of variable <code>y</code>. Therefore, the assignment to <code>x</code>, which
indicates how <code>x</code> should be given a new value, has no effect on the new value
off <code>y</code>, as the old value of <code>x</code> is used for that, regardless of whether
<code>x</code> is assigned a new value.</p>
</div>
<div class="paragraph">
<p>Since assignments are independent of each other, the order of the assignments
of the edge does not matter. Consider the following alternative edge:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">edge swap do y := x + 1, x := y;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The assignments to <code>x</code> and <code>y</code> have been reordered. The behavior of the
specification does not change as a result of this reordering.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-data-asgn-old-vs-new-multi">Multi-assignments</h5>
<div class="paragraph">
<p>CIF supports both multiple assignments as well as multi-assignments. To see
the difference, consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">edge ... do x := y, y := x + 1;     // Multiple (two) assignments.
edge ... do (x, y) := (y, x + 1);   // Single multi-assignment.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first edge has multiple assignments, namely one assignment to variable
<code>x</code> and one assignment to variable <code>y</code>. The second edge has one assignment,
that gives new values to variables <code>x</code> and <code>y</code>. Both are identical, in that
they have the same affect: variable <code>x</code> is given the old value of variable
<code>y</code> and variable <code>y</code> is given the old value of variable <code>x</code> incremented
by one. Generally, using multiple assignments is preferred over using
multi-assignments, as the former is easier to read. However, in certain cases,
such as for <a href="#lang-tut-values-tuples-unpacking">tuple unpacking</a>, only the
latter variant can be used.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-event-synchronization-and-assignment-order">Event synchronization and assignment order</h5>
<div class="paragraph">
<p>Consider a system with two conveyors. Products enter on the first conveyor,
and move towards the second conveyor. Once they leave the first conveyor, they
move onto the second one. Once they exit from the second conveyor, they leave
the system. The positions of the left sides of the boxes are in range zero to
seven, as indicated in the following figure:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/conveyor.png" alt="conveyor">
</div>
</div>
<div class="paragraph">
<p>This system can be modeled using the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event move;

automaton conveyor1:
  monitor move;
  event exit1;
  disc int pos = 0;

  location:
    initial;
    edge move  when pos &lt; 4 do pos := pos + 1;
    edge exit1 when pos = 4 do pos := 0;
end

automaton conveyor2:
  monitor move;
  event exit2;
  disc int pos = -1;

  location:
    initial;
    edge conveyor1.exit1 when pos = -1             do pos := conveyor1.pos;
    edge move            when pos &gt;= 0 and pos &lt; 7 do pos := pos + 1;
    edge exit2           when pos = 7              do pos := -1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each conveyor is modeled using an automaton. Both conveyors use a <code>pos</code>
variable to represent the position of the left side of the box. The first
conveyor gets a new box as soon as one leaves. The second one has to wait for
a box from the first, and can thus be without a box. This is represented by
value <code>-1</code> for the <code>pos</code> variable from automaton <code>conveyor2</code>. The <code>-1</code>
value is not a actual position, but a special value indicating that no box is
present on the conveyor.</p>
</div>
<div class="paragraph">
<p>Boxes on the first conveyor can move towards the second conveyor (event
<code>move</code>), until they reach position 4. They then leave the first conveyor
(event <code>exit1</code>), and a new box immediately enters the first conveyor
(variable <code>pos</code> is reset to zero).</p>
</div>
<div class="paragraph">
<p>Boxes enter the second conveyor when they leave the first conveyor (event
<code>exit1</code> from <code>conveyor1</code>). The position of the box is then transferred from
the first conveyor to the second. The box keeps moving (event <code>move</code>) on
the second conveyor until it reaches position 7. At position 7 it leaves
(event <code>exit2</code>) the second conveyor, and the system.</p>
</div>
<div class="paragraph">
<p>Both automata synchronize over the <code>move</code> event, meaning that the boxes on
both conveyors move at the same time. Both automata
<a href="#tut-data-chapter-monitoring">monitor</a> that event to ensure it is never
blocked if only the other conveyor can actually move.</p>
</div>
<div class="paragraph">
<p>Both automata synchronize over the <code>exit1</code> event. The first conveyor resets
is own position (variable <code>pos</code>) to zero. The second conveyor sets its own
position (variable <code>pos</code>) to the position of the first conveyor. Since old
values of variables are used to compute the new values, the new value of
variable <code>pos</code> in <code>conveyor2</code> is given the old value of variable <code>pos</code>
from <code>conveyor1</code>. This is not influenced by the assignment to variable
<code>pos</code> of <code>conveyor1</code> to zero, as assignments are independent, and the order
of assignments does not matter, just as for multiple assignments on a single
edge.</p>
</div>
<div class="paragraph">
<p>The state space of this specification is as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/conveyor_state_space.png" alt="conveyor state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the values of the <code>pos</code> variables of the automata
for the first and second conveyors.</p>
</div>
<div class="paragraph">
<p>The important part of the state space is the transition from state <code>4/-1</code>,
where the box of the first conveyor is at the end and the second conveyor has
no box, to state <code>0/4</code>, where the first conveyor has received a new box at
position zero, and the second conveyor has taken over the box (and the
administration of its position) from the first conveyor.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-tau-event">The <code>tau</code> event</h4>
<div class="paragraph">
<p>



Events allow for synchronization, allowing for interaction between automata
based on events. If however an automaton has an edge that performs some
internal processing, the event may not always be relevant. Consider for
instance the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton machine1:
  event process, provide;
  disc int id = 0;

  location processing:
    initial;
    edge process do id := id + 1 goto providing;

  location providing:
    edge provide goto processing;
end

automaton machine2:
  location:
    initial;
    edge machine1.provide;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The specification models two machines. Products enter the first machine,
which processes them (event <code>process</code>) and assigns them an <code>id</code>. The
machine them provides (event <code>provide</code>) them to the second machine. The
second machine currently just accepts the products provided by the first
machine, but would in reality likely perform its own processing as well.
The state space of the specification is as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/tau_event_state_space1.png" alt="tau event state space1">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the names of the current locations of automaton
<code>machine1</code>. Since automaton <code>machine2</code> has only a single location, its
current location does not change, and it is therefore not included in the state
names.</p>
</div>
<div class="paragraph">
<p>The <code>provide</code> event synchronizes over both automata, while the <code>process</code>
event is local to the first machine. The <code>process</code> event is not essential,
and could be left out:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton machine1:
  event provide;                         // No more 'process' event.
  disc int id = 0;

  location processing:
    initial;
    edge do id := id + 1 goto providing; // No more event on the edge.

  location providing:
    edge provide goto processing;
end

automaton machine2:
  location:
    initial;
    edge machine1.provide;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>By omitting the event from an edge, the <code>tau</code> is used for that edge. The
<code>tau</code> event is an event that is implicitly always present without declaring
it. The state space of this modified specification is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/tau_event_state_space2.png" alt="tau event state space2">
</div>
</div>
<div class="paragraph">
<p>

The <code>tau</code> event does not synchronize. You can think of this as each automaton
having its own local <code>tau</code> event, and since then they are different events,
they do not synchronize. If multiple automata can perform a transition for an
edge with the <code>tau</code> event, this leads to potential transitions for each of
those edges. Since they are all labeled with the <code>tau</code> event, it is
impossible to distinguish them solely based on their label. This is a form of
<a href="#tut-basics-chapter-non-determinism">non-determinism</a>.</p>
</div>
<div class="paragraph">
<p>Using the <code>tau</code> events saves having to declare a local event, and also saves
having to put that event on the edge. It thus leads to smaller specifications.
However, as explained above, if <code>tau</code> is used on multiple edges of multiple
automata, the different <code>tau</code> transitions can no longer be distinguished from
each other in the state space. The use of the <code>tau</code> event is thus always a
trade-off.</p>
</div>
<div class="paragraph">
<p>
It is also possible to explicitly use the <code>tau</code> event:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">edge tau goto ...;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>tau</code> event can thus be used instead of 'regular' events, and may even
be combined with 'regular' events on the same edge:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">edge provide, tau goto ...;</code></pre>
</div>
</div>
<div class="paragraph">
<p>

Omitting the events from an edge defaults to a single <code>tau</code> event, as shown
in one of the examples above.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-discvar-init">Initial values of discrete variables</h4>
<div class="paragraph">
<p>


Discrete variables can be given an initial value with their declaration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int x = 1;</code></pre>
</div>
</div>
<div class="paragraph">
<p>

The initial value may be omitted, leading to the default value of its data type
being used:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int x;
disc bool y;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The default value of <a href="#tut-values-chapter-integers">integer typed</a> variables
is <code>0</code>. The default value of <a href="#tut-values-chapter-booleans">boolean typed</a>
variables is <code>false</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="lang-tut-data-discvar-init-multiple" class="paragraph">
<p>It is possible to indicate that a variable has more than one potential initial
value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int x in {1, 2, 4};</code></pre>
</div>
</div>
<div class="paragraph">
<p>This declares a variable <code>x</code> that has three potential initial values.
Variables can only have one value at a time, so an initial value has to be
chosen from the <a href="#tut-values-chapter-sets">set</a> of potential initial values.
In other words, initially the value of variable <code>x</code> is either <code>1</code>, <code>2</code>,
or <code>4</code>. For information on how to store multiple values in a single variable,
see the lessons on types and values, in particular those on
<a href="#tut-values-chapter-tuples">tuples</a>, <a href="#tut-values-chapter-lists">lists</a>,
and <a href="#tut-values-chapter-sets">sets</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="lang-tut-data-discvar-init-any" class="paragraph">
<p>It is also possible to indicate that a variable can have any arbitrary initial
value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int x in any;
disc bool y in any;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>x</code> can initially have any value. The only constraint is that the
initial value must be an integer value, as it must conform to the integer type
(<code>int</code>) of the variable. Examples of initial values include <code>-1027</code>,
<code>0</code>, <code>1</code>, and <code>12345</code>. Variable <code>y</code> can initially have any value, as
long as that value is a boolean value, due to the variable having a boolean
type (<code>bool</code>). There are only two boolean values, <code>true</code> and <code>false</code>.</p>
</div>
<div class="paragraph">
<p>

Discrete variables with multiple potential initial values and arbitrary initial
values essentially <em>parametrize</em> the specification. The exact initial value is
to be chosen or <em>configured</em> later on. This allows a single specification to be
used for various different combinations of initial values.</p>
</div>
<div class="paragraph">
<p>So far all examples used literal values to initialize the variables. However,
it is also allowed to use expressions to compute initial values, for instance
based on the initial values of other variables:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int x = 1;     // Initial value: 1
disc int y = x * 2; // Initial value: 2
disc int z = x + y; // Initial value: 3</code></pre>
</div>
</div>
<div class="paragraph">
<p>
Variable <code>x</code> is explicitly initialized with value <code>1</code>. Variable <code>y</code> is
initialized to the initial value of <code>x</code>, multiplied by two. Variable <code>z</code>
is initialized to the sum of the initial values of <code>x</code> and <code>y</code>. Using this
kind of initialization is useful if the initial values must be kept consistent.
Changing the initial value of <code>x</code> automatically also changes the initial
values of <code>y</code> and <code>z</code>.</p>
</div>
<div class="paragraph">
<p>
The order of the declaration of the variables does not matter. We could just
as easily declare them as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int y = x * 2; // Uses variable x, which is declared later.
disc int x = 1;</code></pre>
</div>
</div>
<div class="paragraph">
<p>
Variable <code>y</code> is still initialized using the initial value of variable <code>x</code>,
which is now declared after variable <code>y</code>. It is not allowed to construct
loops, where the initial values of variables depend on each other:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int x = y; // Invalid initial value due to cyclic dependency.
disc int y = z;
disc int z = x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>x</code> uses the value of variable <code>y</code>, which uses the value of
variable <code>z</code>, which in turn uses the value of variable <code>x</code> again. This is
not allowed in CIF, as it creates a cyclic dependency. However, since no
restrictions are introduced on the initial values of variables <code>x</code>, <code>y</code>,
and <code>z</code>, except that they must be equal to each other, we can declare them
as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int x in any; // Explicit 'any' breaks the cyclic dependency.
disc int y = z;
disc int z = x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, variable <code>x</code> is explicitly initialized to an arbitrary value. The other
variables are initialized to be equal to whatever arbitrary value is chosen as
initial value for variable <code>x</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-init-preds">Initialization predicates</h4>
<div class="paragraph">
<p>
<em>Initialization predicates</em> can be used to specify the allowed initial
locations of automata, as well as to restrict the allowed initial values of
variables.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="lang-tut-data-init-preds-aut">Initial locations of automata</h5>
<div class="paragraph">
<p>Initialization predicates can be used to specify the allowed initial locations
of automata:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  location loc1:
    initial;

  location loc2:
    initial true;

  location loc3;

  location loc4:
    initial false;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton <code>a</code> has four locations. Location <code>loc1</code> has the <code>initial</code>
keyword, and is thus allowed to be the initial location. Location <code>loc2</code>
also uses the <code>initial</code> keyword, but additionally specifies a predicate that
indicates under which conditions the location may be the initial location.
Since it is <code>true</code>, which always holds, it does not impose any additional
restrictions, and can thus always be the initial location. In fact, this is
identical to location <code>loc1</code>, which did not specify a predicate, in which
case it default to <code>true</code> as well.</p>
</div>
<div class="paragraph">
<p>Location <code>loc3</code> does not specify anything about initialization, and thus
can never be the initial location. Location <code>loc4</code> can only be the initial
location if <code>false</code> holds. Since <code>false</code> never holds, location <code>loc4</code>
can never be the initial location. In fact, this is identical to location
<code>loc3</code>, which did not specify any initialization at all, in which case it
default to <code>false</code> as well.</p>
</div>
<div class="paragraph">
<p>Locations <code>loc1</code> and <code>loc2</code> are the potential initial locations,
while locations <code>loc3</code> and <code>loc4</code> can not be chosen as initial locations of
automaton <code>a</code>. Since an automaton can only have one current location, an
initial location has to be chosen from the potential initial locations. In
other words, the initial location of automaton <code>a</code> is either location
<code>loc1</code> or location <code>loc2</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-consistency-between-initial-locations-and-initial-values">Consistency between initial locations and initial values</h5>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton odd_even:
  event inc, dec;
  disc int n = 5;

  location odd:
    initial;
    edge inc do n := n + 1 goto even;
    edge dec do n := n - 1 goto even;

  location even:
    edge inc do n := n + 1 goto odd;
    edge dec do n := n - 1 goto odd;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton <code>odd_even</code> keeps track of a value (<code>n</code>) that can constantly be
incremented (event <code>inc</code>) and decremented (event <code>dec</code>) by one. It has two
locations, that keep track of the <code>odd</code>/<code>even</code> status of value <code>n</code>.
Currently, the initial value is <code>5</code>, which is odd. Therefore, the <code>initial</code>
keyword is specified in the <code>odd</code> location. However, if we change the initial
value of variable <code>n</code> to <code>6</code>, we have to change the initial location
as well, to ensure consistent initialization. To automatically keep the initial
location consistent with the initial value of variable <code>n</code>, we can change
the specification to the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton odd_even:
  event inc, dec;
  disc int n = 5;

  location odd:
    initial n mod 2 = 1; // Initial location if 'n' is odd.
    edge inc do n := n + 1 goto even;
    edge dec do n := n - 1 goto even;

  location even:
    initial n mod 2 = 0; // Initial location if 'n' is even.
    edge inc do n := n + 1 goto odd;
    edge dec do n := n - 1 goto odd;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this specification, location <code>odd</code> can only be the initial location if
the value is odd (the value
<a href="http://en.wikipedia.org/wiki/Modular_arithmetic">modulo</a>
two is congruent to
one), and location <code>even</code> can only be the initial location if the value is
even. Changing the initial value of variable <code>n</code> then also changes the
potential initial locations. Since the value is always odd or even, and can&#8217;t
be both odd and even, automaton <code>odd_even</code> always has exactly one potential
initial location.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-restricting-initialization">Restricting initialization</h5>
<div class="paragraph">
<p>Initialization predicates can also be used to restrict the initial values of
variables. Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  disc int x in any;

  initial x mod 2 = 1;

  location ...
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this partial automaton, variable <code>x</code> can be initialized to any integer
value, as indicated by its <code>int</code> type and the <code>any</code> keyword. However, the
initialization predicate states that initially, the value of <code>x</code> module two
must be congruent to one. That is, the value of variable <code>x</code> must initially
be odd.</p>
</div>
<div class="paragraph">
<p>It is allowed to specify initialization predicates inside automata, but it is
also allowed to place them outside of them:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  disc int x in any;

  location ...
end

automaton b:
  disc int x in any;

  location ...
end

initial a.x = 2 * b.x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, two automata each declare a variable that can have arbitrary initial
values. The initialization predicate specifies that the initial value of
variable <code>x</code> from automaton <code>b</code> must be twice the initial value of
variable <code>x</code> from automaton <code>a</code>.</p>
</div>
<div class="paragraph">
<p>It is generally recommended to place an initialization predicate inside an
automaton if the condition only applies to declarations from that automaton,
and to place it outside of the automata if the condition applies to
declarations of multiple automata.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-locs-as-var">Using locations as variables</h4>
<div class="paragraph">
<p>
Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton machine1:
  event start1, done1, reset1;
  disc bool claimed = false;

  location idle:
    initial;
    edge start1 when not machine2.claimed do claimed := true goto processing;

  location processing:
    edge done1 do claimed := false goto cool_down;

  location cool_down:
    edge reset1 goto idle;
end

automaton machine2:
  event start2, done2, reset2;
  disc bool claimed = false;

  location idle:
    initial;
    edge start1 when not machine1.claimed do claimed := true goto processing;

  location processing:
    edge done1 do claimed := false goto cool_down;

  location cool_down:
    edge reset1 goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification models two machines, which produce products. The machines
share a common resource, which may only be used by at most one of them, at any
time (see
<a href="http://en.wikipedia.org/wiki/Mutual_exclusion">mutual exclusion</a>).
Initially, the machines are <code>idle</code>. Then, they warm themselves up. Once they
start processing, they set their boolean variable <code>claimed</code> to <code>true</code> to
indicate that they claimed the shared resource. After processing, the machines
release the resource, by setting <code>claimed</code> to <code>false</code>. They finish their
processing cycle by cooling down, before starting the cycle for the next
product. To ensure that a machine can not claim the resource if the other
machine has already claimed it, the edges going to the <code>processing</code> locations
have a guard that states that it is only allowed to claim the resource and
start processing, if the other machine has not already claimed the resource.
The state space of this specification is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/data/mutex_state_space.png" alt="mutex state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the first letters of the names of the current
locations of the automata.</p>
</div>
<div class="paragraph">
<p>The specification can alternatively be modeled as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton machine1:
  event start1, done1, reset1;

  location idle:
    initial;
    edge start1 when not machine2.processing goto processing;

  location processing:
    edge done1 cool_down;

  location cool_down:
    edge reset1 goto idle;
end

automaton machine2:
  event start2, done2, reset2;

  location idle:
    initial;
    edge start1 when not machine1.processing goto processing;

  location processing:
    edge done1 cool_down;

  location cool_down:
    edge reset1 goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>claimed</code> variables and corresponding updates have been removed, and the
guards no longer use those variables. Instead, the edge for the <code>start1</code>
event now refers to the <code>processing</code> location of automaton <code>machine2</code>. The
guard states that the first machine can perform the <code>start1</code> event, only if
the second machine is not currently in its <code>processing</code> location. In other
words, the guard states that the first machine can start processing as long as
the second machine is not currently busy processing (and thus using the shared
resource).</p>
</div>
<div class="paragraph">
<p>The <code>processing</code> location of automaton <code>machine2</code> is used as a boolean
variable. Using the location as a variable saves having to declare another
variable (<code>claimed</code>) that essentially holds the same information, and needs
to be explicitly updated (on two separate edges) to the correct value.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-stat-invariants">State (exclusion) invariants</h4>
<div class="paragraph">
<p>


The lesson on <a href="#tut-data-chapter-discrete-variables">discrete variables</a> used
the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton counter:
  event increment, decrement;

  disc int count = 3;

  location:
    initial;
    edge decrement when count &gt; 0 do count := count - 1;
    edge increment when count &lt; 5 do count := count + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The counter can repeatedly be incremented and decremented by one, as long as
the count remains at least one and at most five. To keep the count in the
allowed range of values, guards were used to limit the occurrence of the
<code>increment</code> and <code>decrement</code> events.</p>
</div>
<div class="paragraph">
<p>Instead of using guards, it is also possible to use state (exclusion)
invariants, also called state invariants, or just invariants:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton counter:
  event increment, decrement;

  disc int count = 3;

  invariant count &gt;= 0;                   // Added invariants
  invariant count &lt;= 5;

  location:
    initial;
    edge decrement do count := count - 1; // No more guards
    edge increment do count := count + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The guards on the edges have been replaced by the two invariants. The first
invariant specifies that the value of variable <code>count</code> must always be at
least zero. The second invariant specifies that the value must also be at most
five.</p>
</div>
<div class="paragraph">
<p>Invariants specify conditions that must always hold. Invariants must hold in
the initial state, and all states reached via transitions. If a transition
results in a state where an invariant doesn&#8217;t hold, the transition is not
allowed and can&#8217;t be taken.</p>
</div>
<div class="paragraph">
<p>For the counter example, initially the <code>count</code> is <code>3</code>. The edge for the
<code>increment</code> event can be taken, leading to a state where the <code>count</code> is
<code>4</code>. Taking another transition for the <code>increment</code> event leads to a state
where the <code>count</code> is <code>5</code>. If we then were to take another transition for
the <code>increment</code> event, the <code>count</code> would then become <code>6</code>. However, that
violates the invariant. Therefore, in the state where the <code>count</code> is <code>5</code>,
no transition for the <code>increment</code> event is possible. In other words, the
invariant disables the transition for the <code>increment</code> event for that state.</p>
</div>
<div class="paragraph">
<p>The two invariants can be specified in various ways:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Multiple invariants, each with a single predicate.
invariant count &gt;= 0;
invariant count &lt;= 5;

// Single invariant, with multiple predicates.
invariant count &gt;= 0, count &lt;= 5;

// Single invariant, with single predicate.
invariant count &gt;= 0 and count &lt;= 5;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each of these variants leads to the exact same behavior, and which variant to
use depends mostly on the modeler&#8217;s own preference.</p>
</div>
<div class="paragraph">
<p>The benefit of guards over invariants is that they more explicitly state the
condition under which an edge can lead to a transition. If a guard doesn&#8217;t
hold, the edge can&#8217;t be part of a transition. It is thus immediately clear when
the edge can lead to a transition. For invariants, the update has to be
calculated first, after which the invariants can be evaluated for the state
resulting from the transition. If one of the invariants doesn&#8217;t hold, the
transition is not allowed. In the case of the invariants, it is not as
immediately clear from the edge alone, when that specific edge can or can not
lead to a transition.</p>
</div>
<div class="paragraph">
<p>The benefit of invariants over guards is that they apply to all edges. If
several edges in an automaton have updates to the same variable, then the
invariants need to be specified only once, and apply to all transitions, for
all edges. Using guards, all the edges that modify the variable would need
their own guards, and if the updates are different, the different edges usually
require different guards. Furthermore, if new edges with updates to the same
variables are added, the invariant is already present, but guards have to be
added, which can easily be forgotten. In those cases, invariants can thus help
keep the specification consistent.</p>
</div>
<div class="paragraph">
<p>Another benefit of invariants is that they explicitly state the conditions that
must hold in relation to the variables, while guards specify the condition
under which the update is allowed. Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Using invariants.
automaton a:
  disc int x;

  invariant 0 &lt;= x, x &lt;= 100;

  location:
    initial;
    edge do x := 2 * x + 3;
end

// Using guards.
automaton a:
  disc int x;

  location:
    initial;
    edge when x &lt;= 48 do x := 2 * x + 3;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The goal is to keep the value of in the range [0..100]. The invariant is simple
and direct. The guard however, has to state the condition under which the
update does not violate the goal. That is, the upper bound has to be decreased
by three, and the result has to be divided by two, to get the highest value
(48) for which the update is still within the valid range of values. That is,
for value 48 the update results in value 99 (2 * 48 + 3 = 99), and for value
49 the update results in value 101 (2 * 48 + 3 = 99). The more complex the
update, the harder it is to figure out the guard to use to keep satisfy the
goal.</p>
</div>
<div class="paragraph">
<p>You can of course also use <code>2 * x + 3 &lt;= 100</code> as guard, instead of
<code>x &lt;= 48</code>. However, this duplicates part of the update in the guard.</p>
</div>
<div class="paragraph">
<p>So far, all invariants have been specified in automata. They may however also
be specified outside of the automata, similar to
<a href="#tut-data-chapter-init-preds">initialization predicates</a>. It is generally
recommended to place an invariant inside an automaton if the condition only
applies to declarations from that automaton, and to place it outside of the
automata if the condition applies to declarations of multiple automata.</p>
</div>
<div class="paragraph">
<p>
Furthermore, invariants can be placed in a location. Such an invariant only has
to hold while the location in which it is specified is the current location of
its automaton.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-data-chapter-stat-evt-excl-invariants">State/event exclusion invariants</h4>
<div class="paragraph">
<p>



Consider an elevator, consisting of three parts: a motor to make the elevator
move up and down, a door that can be opened and closed to let passengers enter
and exit, and an emergency button that can be used to stop the elevator in
case of an emergency. The following CIF specification models the three parts:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton motor:
  event turn_on, turn_off;

  location off:
    initial;
    edge turn_on goto on;

  location on:
    edge turn_off goto off;
end

automaton door:
  event open, close;

  location closed:
    initial;
    edge open goto opened;

  location opened:
    edge close goto closed;
end

automaton emergency_button:
  event push, release;

  location released:
    initial;
    edge push goto pushed;

  location pushed:
    edge release goto released;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each part is modeled by an automaton. Since the automata don&#8217;t share any
events, they operate independently. What is missing, is a controller that
links the different automata, and controls them in a safe manner. Such a
controller restricts the behavior of the individual automata, allowing only
the combined behavior that is deemed desired. There are several ways to
restrict events, including introducing synchronization between the different
automata, and adding guards. The downside of these approaches it that they
require modification of the automata. What if we wanted to specify the
controller separately from the behavior of the physical system? We could
introduce an additional automaton, that synchronizes with the existing
automata. For instance, we could add the following to the CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton controller:
  location:
    initial;
    edge motor.turn_on when door.closed and emergency_button.released;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This controller introduces restrictions for the <code>turn_on</code> event of the
<code>motor</code>. In this particular case, the controller ensures that the motor may
only be turned on when both the door is closed and the emergency button is
released. By restricting the event, the controller prohibits the event from
taking place in certain states, ensuring that only the desired behavior
remains.</p>
</div>
<div class="paragraph">
<p>It is nice that we can separate the description of the physical behavior of the
elevator from the controller that controls it. This separation of concerns may
make it easier to reason about the behavior, it may make it easier to adapt
the controller when the physical system doesn&#8217;t change, and it may make it
easier to reuse the model of the physical system for other purposes.</p>
</div>
<div class="paragraph">
<p>However, modeling an automaton with a single location that must then also be
<code>initial</code> requires quite some syntax. State/event exclusion invariants can
serve the same purpose, but are often easier to use, shorter to write, and
more intuitive to read. Instead of the <code>controller</code> automaton, we can also
use the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">invariant motor.turn_on needs door.closed and emergency_button.released;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each state/event exclusion invariant restricts an event, preventing it from
happening in certain states. That is, the event is excluded from taking place
in certain states. In this case, the <code>turn_on</code> event of the <code>motor</code>
automaton needs the <code>door</code> to be in its <code>closed</code> location and the
<code>emergency_button</code> to be in its <code>released</code> location, for the event to be
allowed/enabled. For the states in which that condition doesn&#8217;t hold, the event
is disabled.</p>
</div>
<div class="paragraph">
<p>The invariant consists of two conditions. It can also be written as two
separate state/event exclusion invariants, one for each condition:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Single state/event exclusion invariant.
invariant motor.turn_on needs door.closed and emergency_button.released;

// Multiple state/event exclusion invariants.
invariant motor.turn_on needs door.closed;
invariant motor.turn_on needs emergency_button.released;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The second and third invariants lead to the same behavior as the first combined
invariant. The second invariant ensures that the event can only take place when
the door is closed, while the third invariant ensures that the event can only
take place when the emergency button is released. The second and third
invariants each indicate a necessary condition that must hold for the event to
be allowed/enabled. Together, they require that both conditions hold, for the
event to be allowed/enabled. If one of the conditions doesn&#8217;t hold, the event
will be disabled.</p>
</div>
<div class="paragraph">
<p>The <code>door</code> is either <code>opened</code> or <code>closed</code>. So far, we&#8217;ve required that
the door is closed to allow the motor to be turned on. We can also specify it
the other way around: to disallow the motor to be turned on, while the door is
opened:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// State/event exclusion invariant to specify when event is allowed/enabled.
invariant motor.turn_on needs door.closed;

// State/event exclusion invariant to specify when event is disallowed/disabled.
invariant door.opened disables motor.turn_on;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Both invariants have the exact same effect. The first invariant only allows the
motor to be turned on while the door is closed, which means that it disallows
the motor to be turned on in all other situations, namely when the door is
opened. And that is exactly what is specified by the second invariant: when the
door is opened, turning the motor on is disallowed/disabled. In general,
state/event exclusion invariants can always be specified as a positive form
(allowed/enabled) and a negative form (disallowed/disabled). It is up to the
modeler to choose, based on considerations such as personal preference and
readability. Consider the following four alternative forms:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Single state/event exclusion invariant for enabling the event.
invariant motor.turn_on needs door.closed and emergency_button.released;</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Multiple state/event exclusion invariants for enabling the event.
invariant motor.turn_on needs door.closed;
invariant motor.turn_on needs emergency_button.released;</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Single state/event exclusion invariant for disabling the event.
invariant door.opened or emergency_button.pushed disables motor.turn_on;</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Multiple state/event exclusion invariants for disabling the event.
invariant door.opened             disables motor.turn_on;
invariant emergency_button.pushed disables motor.turn_on;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each of the four forms has the exact same effect, but is written in a different
way.</p>
</div>
<div class="paragraph">
<p>We already saw earlier that for state/event exclusion invariants that
introduce necessary conditions for an event to be enabled (the <code>needs</code>
variant), the conditions can be combined using an <code>and</code> operator to form a
combined condition, for a single invariant.</p>
</div>
<div class="paragraph">
<p>Here, we also see how in a similar way, state/event exclusion invariants that
introduce sufficient conditions for an event to be disabled (the <code>disabled</code>
variant) can be combined. Each of them individually has a condition, that if
satisfied disables the event, regardless of the other invariants. So, if one of
them disables the event, the event is disabled. To combine such invariants into
a single invariant, the conditions need to be combined using an <code>or</code>
operator, as shown above.</p>
</div>
<div class="paragraph">
<p>It may occur that multiple events need to be disabled for the same conditions.
Instead of writing multiple invariants with the same conditions, one for each
event, they can also be combined:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Two separate invariants with same condition, for different events.
invariant motor.turn_on needs emergency_button.released;
invariant door.close    needs emergency_button.released;

// Combined invariant, for multiple events.
invariant {motor.turn_on, door.close} needs emergency_button.released;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first two invariants have the same condition, but restrict different
events. The third invariant has the same condition, but restricts both events.
In general, for all state/event invariants, multiple events may be given, if
they share the same condition. The events must then be separated by spaces and
be enclosed in curly brackets (<code>{...}</code>).</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-types-and-values">Types and values</h3>
<div class="sect3">
<h4 id="tut-values-chapter-types-values-exprs">Types, values, and expressions</h4>
<div class="paragraph">
<p>This lesson explains the difference between types, values, and expressions.
These concepts have already been used in previous lessons, but this lesson
names them explicitly, and also explains the relations between them.
Furthermore, this lesson serves as an introduction for the coming lessons,
which rely heavily on these concepts. Consider the following declarations of
<a href="#tut-data-chapter-discrete-variables">discrete variables</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int x = 1;
disc int y = 2 * x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>

The first declaration declares a discrete variable named <code>x</code>, and the second
declaration declares a discrete variable named <code>y</code>. Both variables have an
<code>int</code> <em>data type</em>. A data type is usually just called a <em>type</em>, if there is
no confusion with other kinds of types. The type of a variable indicates the
potential or allowed values of the variable. Variable <code>x</code> is initialized to
<em>value</em> <code>1</code>. Variable <code>y</code> is initialized to twice the value of <code>x</code>,
meaning it is initialized to value <code>2</code>.</p>
</div>
<div class="paragraph">
<p>


Both <code>1</code> and <code>2 * x</code> are <em>expressions</em>. Expressions are combinations of
among others literal values (e.g. <code>1</code>), variables (e.g. <code>x</code>), and
operations (e.g. <code>*</code>) on them. Expressions can be <em>computed</em>, resulting in a
value. This is called <em>evaluation</em> of the expression.</p>
</div>
<div class="paragraph">
<p>Expression <code>2 * x</code> can be evaluated. Evaluating the expression results in
value <code>2</code> if the value of <code>x</code> is <code>1</code>, and in value <code>4</code> if the value of
<code>x</code> is <code>2</code>. Expressions can thus be evaluated to different values,
depending on the values of the variables that occur in them.</p>
</div>
<div class="paragraph">
<p>







</p>
</div>
<div id="lang-tut-values-types-values-exprs-literal" class="paragraph">
<p>Expression <code>1</code> consists of only a single value, called a <em>literal</em> value
expression. Evaluation always results in that single value. Expression
<code>1 + 3</code> evaluates to value <code>4</code>. Even though it does not consist of only
just a literal, the value is the same for each evaluation. The expression
represents a <em>constant</em> value.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-overview">Values overview</h4>
<div class="paragraph">
<p>The values of CIF (and their types) can be categorized into different
categories: elementary values, container values, and miscellaneous values.
Elementary values represent single values, such as a single number. Container
values represent multiple values. The different container values combine or
store the values in different ways. The elementary and container values are
described in the remainder of this part of the tutorial. The miscellaneous
values are special, and are explained later in the tutorial. The remainder of
this lesson gives an overview of the values available per category, along with
short descriptions of each of the different kinds of values.</p>
</div>
<div class="paragraph">
<p><strong>Elementary values</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-values-chapter-booleans">Booleans</a></dt>
<dd>
<p>Represents truth values of for instance guards and other conditions. The
only two possible values are <code>true</code> and <code>false</code>.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-integers">Integers</a></dt>
<dd>
<p>Represent integer numbers, such as <code>-123</code> and <code>5</code>.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-enumerations">Enumerations</a></dt>
<dd>
<p>Represent enumerated values, which are collections of names each
representing a different value. For instance, a enumeration named
<code>color</code> could have values <code>red</code>, <code>green</code>, and <code>blue</code>.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-reals">Reals</a></dt>
<dd>
<p>Represent real numbers, such as <code>1.56</code> and <code>-2.7e6</code> (scientific
notation for 2.7 million).</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-strings">Strings</a></dt>
<dd>
<p>Represent textual values, such as <code>"hello world"</code> and <code>"some text"</code>.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p><strong>Container values</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-values-chapter-tuples">Tuples</a></dt>
<dd>
<p>Tuples have two or more ordered values, each of which can have a different
type. For instance: <code>(1, true, 5.0)</code>.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-lists">Lists</a></dt>
<dd>
<p>Lists have zero or more ordered values, each of which has the same type,
and possibly with duplicates. For instance: <code>[1, 5, 2, 1]</code>.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-sets">Sets</a></dt>
<dd>
<p>Sets have zero or more unordered values, each of which has the same type,
and without any duplicates. For instance: <code>{1, 5, 2}</code>.</p>
</dd>
<dt class="hdlist1"><a href="#tut-values-chapter-dictionaries">Dictionaries</a></dt>
<dd>
<p>Dictionaries have keys and associated values. The keys are unique and each
map to a value. For instance: <code>{1: true, 2: false, 3: false}</code>.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p><strong>Miscellaneous values</strong></p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><a href="#tut-functions-chapter-functions-as-values">Functions</a></dt>
<dd>
<p>Functions take values and use them to compute other values, possibly using
complex and lengthy calculations.</p>
</dd>
<dt class="hdlist1"><a href="#tut-stochastics-chapter-intro">Distributions</a></dt>
<dd>
<p>Stochastic distributions allow for sampling, making it possible to produce
random values.</p>
</dd>
</dl>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-integers">Integers</h4>
<div class="paragraph">
<p>






Integers are whole numbers, numbers without a fractional part. Examples include
<code>-123</code> and <code>5</code>. The default value of integers (<code>int</code> type) is <code>0</code>.
Several standard arithmetic operators and functions are available to work with
integers, including the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">+9          // 9
--9         // 9

9 + 4       // 13
9 - 4       // 5
9 * 4       // 36
9 / 4       // 2.25 (result is a real number, not an integer number)

9 div 4     // 2    (9 / 4 = 2.25, so 4 fits at most two whole times in 9)
9 mod 4     // 1    (the remainder of 9 div 4)

pow(2, 4)   // 16   (2 to the power of 4, or 2 * 2 * 2 * 2)
abs(-9)     // 9    (absolute value)
min(9, 4)   // 4    (minimum value)
max(9, 4)   // 9    (maximum value)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Integer values can be compared to other integer values:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">x &lt; y       // less than
x &lt;= y      // less than or equal to
x = y       // equal to
x != y      // not equal to
x &gt;= y      // larger than or equal to
x &gt; y       // larger than</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-integer-ranges">Integer ranges</h4>
<div class="paragraph">
<p>

CIF can only represent <a href="#tut-values-chapter-integers">integer numbers</a>
(type <code>int</code>) in the range -2,147,483,648 (= -2<sup>31</sup>) to
2,147,483,647 (= 2<sup>31</sup> - 1). Using values outside that range
results in the CIF model being invalid, and leads to runtime errors:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">ERROR: Integer overflow: 9999999 * 9999999.</code></pre>
</div>
</div>
<div class="paragraph">
<p>It is possible in CIF to explicitly specify that only a sub range of the
integer values are allowed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc int[3..7] x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>
This variable <code>x</code> can only have integer values that are at least <code>3</code> and
at most <code>7</code>. Assigning any other value to <code>x</code> is not allowed. The default
value is not <code>0</code> but <code>3</code>, as that is the value closest to <code>0</code> that is in
the allowed range of values.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-reals">Reals</h4>
<div class="paragraph">
<p>






Reals or real numbers are numbers with a fractional part. Examples include
<code>1.56</code> and <code>-2.7e6</code> (scientific notation for 2.7 million). Real numbers
must either have a fraction or use the scientific notation, to distinguish them
from integer numbers. The default value of reals (<code>real</code> type) is <code>0.0</code>.
Several standard arithmetic operators and functions are available to work with
reals, including the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">+1.23           // 1.23
--1.2           // 1.2

1.5 + 0.5       // 2.0
1.5 - 0.5       // 1.0
1.5 * 0.5       // 0.75
1.5 / 0.5       // 3.0

pow(3.5, 2.0)   // 7.0      (3.5 to to the power of 2, or 3.5 * 3.5)
abs(-1.5)       // 1.5      (absolute value)
min(1.5, 0.5)   // 0.5      (minimum value)
max(1.5, 0.5)   // 1.5      (maximum value)

sqrt(16.0)      // 4.0      (square root)
cbrt(16.0)      // 2.0      (cube root)

sin(1.0)        // 0.841... (sine)
cos(1.0)        // 0.540... (cosine)
tan(1.0)        // 1.557... (tangent)

log(100.0)      // 2.0      (logarithm to base 10)
ln(100.0)       // 4.605... (natural logarithm)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Real values can be compared to other real values, as well as to integer values:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">x &lt; y       // less than
x &lt;= y      // less than or equal to
x = y       // equal to
x != y      // not equal to
x &gt;= y      // larger than or equal to
x &gt; y       // larger than</code></pre>
</div>
</div>
<div class="paragraph">
<p>Integer numbers can often be written where real numbers are expected. Real
values and integer values can also often be combined using arithmetic operators
and functions. Furthermore, it is possible to convert between them, e.g as
follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">sqrt(16)    // 4.0 (16 interpreted as 16.0)
1 + 0.5     // 1.5 (addition of an integer number and a real number)
max(0.5, 1) // 1.0 (maximum of an integer number and a real number)

&lt;real&gt;1     // 1.0 (cast from integer to real, explicit conversion)
round(1.6)  // 2   (round real to closest integer, half up)
ceil(0.7)   // 1   (round real up to integer)
floor(0.7)  // 0   (round real down to integer)</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-booleans">Booleans</h4>
<div class="paragraph">
<p>






Booleans represents truth values of for instance guards and other conditions
and properties. The only two possible values are <code>true</code> (condition or
property holds) and <code>false</code> (condition or property does not hold). The
default value of booleans (<code>bool</code> type) is <code>false</code>. Several standard
<a href="http://en.wikipedia.org/wiki/Logical_operator">logical operators</a>
are available to work with booleans, including the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">not x       // inverse

x and y     // conjunction (both x and y must hold)
x or y      // disjunction (either x, y, or both must hold)
x =&gt; y      // implication (if x holds, y must hold)

x = y       // equal to
x != y      // not equal to</code></pre>
</div>
</div>
<div class="paragraph">
<p>The condition <code>x &lt; 3</code> evaluates to <code>true</code> if <code>x</code> is less than <code>3</code> and
to <code>false</code> if <code>x</code> is <code>3</code> or larger than <code>3</code>. The result is thus a
boolean value.</p>
</div>
<div class="paragraph">
<p>Conditions can be combined. <code>x &gt;= 3 and x &lt;= 9</code> means that the value of <code>x</code>
must be both at least <code>3</code> and at most <code>9</code>. <code>x &gt;= 3 or x &lt;= 9</code> means that
the value of <code>x</code> must be at least <code>3</code>, at most <code>9</code>, or both. Since the
condition is always satisfied (it always evaluates to <code>true</code>), condition
<code>true</code> can be used instead of <code>x &gt;= 3 or x &lt;= 9</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-strings">Strings</h4>
<div class="paragraph">
<p>






Strings represent textual values, as a sequence of characters. String values
are always written between double quotes. An example is <code>"hello world"</code>. The
default value of strings (<code>string</code> type) is the empty string <code>""</code>.</p>
</div>
<div class="paragraph">
<p>Strings can be composed using the <code>+</code> operator. The expression
<code>"hello" + " " + "world"</code> evaluates to <code>"hello world"</code>. For advanced text
formatting, see
<a href="#tools-cifsim-output-print-chapter-tut-fmt">the text formatting tutorial</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-enumerations">Enumerations</h4>
<div class="paragraph">
<p>





Enumerations represent collections of related entities, such as types of
products, types of available resources, available machine types, different
countries, different colors, different genders, and so on. It is possible to
use numbers to represent the different entities, for instance <code>0</code> for red,
<code>1</code> for orange, and <code>2</code> for green, to represent the different colors of
a traffic light. However, these numbers are rather arbitrary. Furthermore, they
don&#8217;t actually represent numbers, but rather they represent one of the entities
(red, orange, green). Enumerations allow giving each entity a name, and to use
those names instead of numbers. This usually makes the model easier to read and
understand. For instance, consider the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum TrafficColor = RED, ORANGE, GREEN;</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="lang-tut-values-enums-lit" class="paragraph">
<p>The <code>enum</code> keyword is used to declare an enumeration. The <code>TrafficColor</code>
enumeration has three possible values or <em>literals</em>. The literals are named
<code>RED</code>, <code>ORANGE</code>, and <code>GREEN</code>. An enumeration can be used as data type,
and the enumeration literals can be used as values:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc TrafficColor light = RED;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>TrafficColor</code> enumeration is used as type of the <code>light</code> variable.
The <code>light</code> variable is given value <code>RED</code> as its initial value. The default
value of an enumeration type is its first literal (<code>RED</code> in this case).
However, it is usually preferred to explicitly initialize variables with
enumeration types, for readability.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">edge change_color when light = RED do light := GREEN;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This edge has a guard that compares the value of the <code>light</code> variable to
enumeration literal <code>RED</code>. Only if the <code>light</code> is currently <code>RED</code>, may
this edge be taken. The edge further assigns enumeration literal <code>GREEN</code> as
the new value of variable <code>light</code>. The edge as a whole models that if the
<code>light</code> is currently <code>RED</code>, it may change color (event <code>change_color</code>)
and become <code>GREEN</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-tuples">Tuples</h4>
<div class="paragraph">
<p>




Tuples are used for keeping several (related) kinds of data together in one
variable, e.g. the identification number and weight of a box. A tuple consists
of a number of fields, where the types of these fields may be different. The
number of fields is fixed. For instance, consider the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc tuple(int nr; real weight) box;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>box</code> has a tuple type, consisting of two fields, an integer
typed field with name <code>nr</code> and real typed field with name <code>weight</code>. The
<code>box</code> variable has essentially two values, an integer typed value, and
a real typed value.</p>
</div>
<div class="paragraph">
<p>If multiple consecutive fields have the same type, the type need not be
repeated for each of them. In the following example, variables <code>x1</code> and
<code>x2</code> have the same type:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc tuple(int a; int b; real c; int d) x1;
disc tuple(int a, b;     real c; int d) x2;</code></pre>
</div>
</div>
<div class="paragraph">
<p>


Literal values exist for tuple types:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc tuple(int nr; real weight) box = (5, 2.7);

edge ... do box := (6, 3.4);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>box</code> variable is initialized to a tuple value consisting of integer
value <code>5</code> (identification number) and real value <code>2.7</code> (weight). The entire
value of the variable is reassigned in the assignment. That is, both fields are
given new values.</p>
</div>
<div class="paragraph">
<p>
It is also possible to refer to a specific field of a tuple, using
<em>projection</em>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc tuple(int nr; real weight) box = (5, 2.7);
disc int i;
disc real r;

edge ... do i := box[nr];            // Projection to field 'nr'.
edge ... do r := box[weight];        // Projection to field 'weight'.
edge ... do box[nr] := i;            // Assignment to field 'nr'.
edge ... do box[nr] := box[nr] + 1;  // Increment of field 'nr'.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first edge uses projection to obtain the value of the integer <code>nr</code>
field, and assign it to integer variable <code>i</code> (<code>i</code> becomes <code>5</code>). The
second edge performs a similar operation for the <code>weight</code> field (<code>r</code>
becomes <code>2.7</code>). The third edge assigns the value of integer variable <code>i</code>
to the integer field <code>nr</code> of the <code>box</code> variable. This changes only the
value of the <code>nr</code> field. The value of the <code>weight</code> field of the <code>box</code>
variable is not affected by this assignment. The third edge increments the
value of the <code>nr</code> field of the <code>box</code> variable by one, leaving the
<code>weight</code> of the <code>box</code> as is. Besides projection using field names, it is
also possible to do projection using 0-based indices:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc tuple(int nr; real weight) box = (5, 2.7);
disc int i;
disc real r;

edge ... do i := box[0];  // Projection to field 'nr'.
edge ... do r := box[1];  // Projection to field 'weight'.</code></pre>
</div>
</div>
<div class="paragraph">
<p>
Index <code>0</code> refers to the first field, in this case field <code>nr</code>. Index <code>1</code>
refers to the second field, etc. Projection using indices is also called
<em>indexing</em>. For tuples, it is usually preferred to use field names, rather than
indices, for readability.</p>
</div>
<div class="paragraph">
<p>
It is possible to create a tuple from separate values, each stored in a
variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc tuple(int nr; real weight) box;
disc int i;
disc real r;

edge ... do box := (i, r); // Packing a tuple.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The right hand side of the assignment is a tuple literal value, as used before.
The field values however, are obtained by evaluation of variables, rather than
using literal integer and real values. This kind of assignment, where there is
tuple variable at the left hand side, and values for each of the fields of that
tuple at the right hand side, is called <em>packing</em> a tuple.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="lang-tut-values-tuples-unpacking" class="paragraph">
<p>It is possible to obtain the values of the fields of a tuple into separate
variables:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc tuple(int nr; real weight) box = (5, 2.7);
disc int i;
disc real r;

edge ... do i := box[nr], r := box[weight];
edge ... do (i, r) := box; // Unpacking a tuple.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first edge uses projection on the variable <code>box</code> to obtain the values of
the individual fields, and assigns those extracted values to two separate
variables. The second edge does the same thing as the first edge, and is
preferred in this case, because of its simple and short notation. This kind of
use, where at the left hand side of the assignment you see variables for each
of the fields of the tuple, and on the right hand side you see only one
variable that has a tuple type, is called <em>unpacking</em> a tuple.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-lists">Lists</h4>
<div class="paragraph">
<p>





A list is an ordered collection of values (called <em>elements</em>) of a same type.
Lists can be used to model anything where duplicate values may occur or where
order of the values is significant. Examples are customers waiting in a shop,
process steps in a recipe, or products stored in a warehouse. Consider the
following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc list int x = [7, 8, 3];</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="lang-tut-values-list-literal" class="paragraph">
<p>Variable <code>x</code> has a list of integers as its value. In this case, its initial
value is a literal list with three integer elements. Lists are ordered
collections of elements. <code>[7, 8, 3]</code> is thus a different list as
<code>[8, 7, 3]</code>. Lists are empty by default, and they may have duplicate
elements:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc list int x1;                       // Implicitly empty list.
disc list int x2 = [];                  // Explicitly empty list.
disc list int x3 = [1, 2, 1, 2, 2];     // Duplicate elements in a list.</code></pre>
</div>
</div>
<div class="paragraph">
<p>

Since lists are ordered, there is a first element and a last element (unless
the list is empty). An element can be obtained by <em>projection</em>, usually called
<em>indexing</em> for lists:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc list int x = [7, 8, 3];
disc int i;

edge ... do i := x[0];   // 'i' becomes '7'
edge ... do i := x[1];   // 'i' becomes '8'
edge ... do i := x[2];   // 'i' becomes '3'
edge ... do i := x[3];   // error (there is no fourth element in the list)
edge ... do x[0] := 5;   // the first element of 'x' is replaced by '5'</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first three edges obtain specific elements of the list, and assign them to
variable <code>i</code>. The first element is obtained using <em>index</em> or <em>offset</em> <code>0</code>,
the second element using index <code>1</code>, etc. The index of the last element is the
length of the list (the number of elements in the list), minus one. Indexing
does not change the value of variable <code>x</code>. The fourth edge is  invalid, as
the fourth element (index <code>3</code>) of variable <code>x</code> is used, which does not
exist. The fifth edge replaces only the first element (index <code>0</code>) of list
<code>x</code>, while keeping the remaining elements as they are. It is also allowed to
use negative indices:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc list int x = [7, 8, 3];
disc int i;

edge ... do i := x[-1];  // 'i' becomes '3'
edge ... do i := x[-2];  // 'i' becomes '8'
edge ... do i := x[-3];  // 'i' becomes '7'
edge ... do i := x[-4];  // error (there is no element before element '7')</code></pre>
</div>
</div>
<div class="paragraph">
<p>Negative indices start from the back of the list, rather than from the front.
Index <code>-1</code> thus always refers to the last element, <code>-2</code> to the second to
last element, etc. As with the non-negative indices, using a negative index
that is out of range of available elements, results in an error. To obtain a
non-negative index from a negative index, add the negative index to the length
of the list: <code>3 + -1 = 2</code>, <code>3 + -2 = 1</code>, and <code>3 + -3 = 0</code>. The following
figure visualizes a list, with non-negative indexing (at the top) and negative
indexing (at the bottom):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/values/list_indices.png" alt="list indices">
</div>
</div>
<div class="paragraph">
<p>
Besides obtaining a single element from a list, it is also possible to obtain
a sub-range of the elements of a list, called a <em>slice</em>. Slicing also does not
change the contents of the list. It results in a copy of a contiguous
sub-sequence of the list. The result of a slice operation is again a list, even
if the slice contains just one element, or no elements at all. Slicing requires
two indices: the index of the first element of the sub-range (inclusive), and
the index of the last element of the sub-range (exclusive). Both indices may be
omitted. If the start index is omitted, it defaults to zero. If the end index
is omitted it defaults to the length of the list. If the begin index is equal
to or larger than the end index, the slice is empty. Similar to indexing,
negative indices may be used, which are relative to the end of the list rather
than the start of the list. Indices that are out of bounds
<a href="http://en.wikipedia.org/wiki/Saturation_arithmetic">saturate</a> to those
bounds. Some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc list int x = [7, 8, 3, 5, 9];

x[2:4]  //       [3, 5]    Slice that includes third and fourth elements.
x[2:7]  //       [3, 5, 9] Slice that excludes the first two elements.
x[1:]   //    [8, 3, 5, 9] Slice that excludes the first element.
x[:-1]  // [7, 8, 3, 5]    Slice that excludes the last element.
x[:]    // [7, 8, 3, 5, 9] Slice includes all elements (is equal to 'x').</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first slice takes the third (index <code>2</code>) and fourth (index <code>3</code>)
elements. The begin index (<code>2</code>) is thus included, the end index (<code>4</code>) is
not. The second slice starts at the same index, but extends to the sixth
element (index <code>7</code>). Since there are only five elements, the index is
saturated (or clamped) to the end of the list. The results is that all but the
first two elements are included. The third slice excludes the first element
(index <code>0</code>), by starting at index <code>1</code>. It omits the end index, meaning that
the entire remainder of the list is kept, and only the first element is not
included. The fourth slice begins at the beginning of the list, as the begin
index is omitted. It continues until the last element of list, which it
excludes. It thus excludes a single element from the end of the list. The fifth
slice includes all elements, as both the begin and end index are omitted. The
slice is thus identical to the list in <code>x</code>. The following figure graphically
represents the slices:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/values/list_slicing.png" alt="list slicing">
</div>
</div>
<div class="paragraph">
<p>
Lists can be combined into new lists. They are essentially 'glued' together.
This is called <em>concatenation</em>. This can also be used to add a single element
to the front or back of the list. For instance:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">[7, 8, 3] + [5, 9]   // [7, 8, 3, 5, 9]
[5] + [7, 8, 3]      // [5, 7, 8, 3]
[7, 8, 3] + [5]      // [7, 8, 3, 5]</code></pre>
</div>
</div>
<div class="paragraph">
<p>Several other standard operators and functions are available to work with
lists, including the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">[1, 4, 2, 4, 5] - [2]           // [1, 4, 4, 5] (removal of elements)
[1, 4, 2, 4, 5] - [4]           // [1, 2, 4, 5]
[1, 4, 2, 4, 5] - [8]           // [1, 4, 2, 4, 5]
[1, 2, 3, 4, 5] - [6, 4, 2, 3]  // [1, 5]
[1, 4, 4, 1, 1] - [1, 4, 1]     // [4, 1]

[1, 8, 3] = [1, 3, 8]           // false (equality test)
6 in [1, 8, 3]                  // false (element test)
1 in [1, 8, 3]                  // true

empty([1, 2])                   // false (empty test)
size([1, 5, 3, 3])              // 4 (count elements)

del([7, 8, 9, 10], 2)           // [7, 8, 10] (removed value at index '2')
pop([1, 5, 3])                  // (1, [5, 3]) (first element and remainder)</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-bounded-lists-and-arrays">Bounded lists and arrays</h4>
<div class="paragraph">
<p>

CIF can only represent <a href="#tut-values-chapter-lists">lists</a> (type <code>list</code>)
with at most 2,147,483,647 (= 2<sup>31</sup> - 1) elements. Using lists
with more elements results in the CIF model being invalid, and leads to runtime
errors. For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  disc list int x;

  location:
    initial;
    edge do x := x + [1];
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each time the edge is taken, another element is added to list <code>x</code>. As soon
as an attempt is made to add the 2,147,483,648<sup>th</sup> element, a
runtime error occurs.</p>
</div>
<div class="paragraph">
<p>It is possible to explicitly restrict the number of elements that may be
contained in a list:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc list[3..7] int y;      // List with at least 3 and at most 7 elements.</code></pre>
</div>
</div>
<div class="paragraph">
<p>
Variable <code>y</code> can only have lists as its value that have at least <code>3</code> and at
most <code>7</code> elements. Assigning a list with any other number of elements is not
allowed. Lists with size restrictions are called <em>bounded lists</em>. They can also
be called <em>size restricted lists</em> or <em>ranged lists</em>. The default value for
<code>y</code> is <code>[0, 0, 0]</code>. That is, the default value has the least amount of
elements that is allowed by the bounded list, and the default value (<code>0</code>) of
the element type (<code>int</code>).</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="lang-tut-values-array" class="paragraph">
<p>Lists with a fixed length are called <em>arrays</em>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc list[5..5] int a;      // List with at least 5 and at most 5 elements.
disc list[5]    int b;      // Shorter but equivalent array notation.</code></pre>
</div>
</div>
<div class="paragraph">
<p>By giving a bounded list the same lower and upper bound, the bounded list has a
fixed number of elements, and can be called an <em>array</em>. Arrays also have a
shorter and more convenient notation, where the number of elements is only
given once. Both notations for arrays are equivalent.</p>
</div>
<div class="paragraph">
<p>Both bounded lists and arrays support the same operations as regular lists, and
can be modified (assigned) the same way as regular lists, as long as their size
restrictions are not violated.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-sets">Sets</h4>
<div class="paragraph">
<p>




A set is an unordered collection of values (called <em>elements</em>) of a same type.
Each element value either exists in a set, or it does not exist in a set. Each
element value is unique, as duplicate elements are silently discarded. Consider
the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc set int x1 = {3, 7, 8};
disc set int x2 = {8, 3, 7};        // Order irrelevant (same as 'x1').
disc set int x3 = {8, 3, 7, 3};     // Duplicates ignored (same as 'x2').
disc set int x4 = {};               // Empty set.</code></pre>
</div>
</div>
<div class="paragraph">
<p>

Variable <code>x1</code> has a set of integers as its value. In this case, its initial
value is a literal set with three integer elements. As sets are unordered
collections of elements, <code>{3, 7, 8}</code> is the same set as <code>{8, 3, 7}</code>, and
thus variables <code>x1</code> and <code>x2</code> have the same initial values. Since elements
in a set are unique, set <code>{8, 3, 7}</code> is equal to the set <code>{8, 3, 7, 3}</code>,
and thus variables <code>x2</code> and <code>x3</code> have the same initial values. For
readability, elements in a set are normally written in increasing order, for
example <code>{3, 7, 8}</code>. Variable <code>x4</code> has an empty set as initial value, which
is also the default initial value for sets.</p>
</div>
<div class="paragraph">
<p>
The <em>union</em> of two sets results in a set that contains the combined elements of
both sets. You can think of the resulting set containing the elements that are
in the one set <code>or</code> in the other set (or in both of them). Since sets never
contain duplicates, common elements are present only once in the resulting set:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">{1, 2, 3} or {2, 3, 4}          // {1, 2, 3, 4}
{1, 2, 3} or {2, 3, 4}          // {1, 2, 4, 3}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Since sets are unordered, both answers are possible, and represent the same
set. Since the order is irrelevant, there are 24 different ways to represent
that same set. In the remainder of this lesson, we&#8217;ll use increasing order, for
readability.</p>
</div>
<div class="paragraph">
<p>
The <em>intersection</em> of two sets results in a set that contains the elements that
are present in both sets. You can think of the resulting set containing the
elements that are in the one set <code>and</code> in the other set. In other words, the
result contains the elements common to both sets:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">{1, 2, 3} and {2, 3, 4}         // {2, 3}
{1, 2} and {3, 4}               // {} (no elements in common)</code></pre>
</div>
</div>
<div class="paragraph">
<p>
The <em>difference</em> of two sets results in a set that contains the elements of the
first set that are not present in the second set. You can think of the
resulting set containing the elements of the first set, with the elements of
the second set subtracted or removed from it:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">{1, 2, 3} - {2, 3, 4}           // {1}
{1, 2, 3} - {4, 5}              // {1, 2, 3}
{1, 2, 3} - {1, 2, 3, 4}        // {}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Several other standard operators and functions are available to work with
sets, including the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">{1, 8, 3} = {1, 3, 8}       // true (equality, ignores order of elements)

6 in {1, 8, 3}              // false (element test)
1 in {1, 8, 3}              // true

{1, 3} sub {1, 3}           // true (subset check)
{1, 3} sub {1, 3, 5}        // true
{1, 3} sub {1, 4}           // false
{1, 3} sub {1, 4, 5}        // false

empty({1, 2})               // false (empty test)
size({1, 5, 3, 3})          // 3 (count elements, duplicates ignored)</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-dictionaries">Dictionaries</h4>
<div class="paragraph">
<p>





A dictionary is an unordered collection of <em>keys</em> and associated <em>values</em>. A
key with its associated value is called a key/value <em>pair</em>. Consider the
following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc dict(string:int) age = {&quot;eve&quot;: 32, &quot;john&quot;: 34, &quot;adam&quot;: 25};</code></pre>
</div>
</div>
<div class="paragraph">
<p>

Variable <code>age</code> has as value a dictionary consisting of pairs of strings
(the keys) and integers (the values). In this example, each string represents
a person&#8217;s name, and each integer represents the age of that person. Variable
<code>age</code> is initialized with a literal dictionary, containing three key/value
pairs. You can think of the dictionary as storing the information that <code>eve</code>
is <code>32</code> years old, or that the age of <code>eve</code> is <code>32</code>.</p>
</div>
<div class="paragraph">
<p>As with sets, dictionaries are unordered. The order of the key/value pairs is
irrelevant, <code>{"eve": 32, "adam": 25}</code> is the same dictionary as
<code>{"adam": 25, "eve": 32}</code>. For readability, key/value pairs of dictionary
literals are normally written in increasing order of their keys.
<code>{"adam": 25, "eve": 32}</code> is thus preferred over <code>{"eve": 32, "adam": 25}</code>,
as <code>adam</code> goes before <code>eve</code> in a phone book.</p>
</div>
<div class="paragraph">
<p>Dictionary literals are often written using multiple lines, to get two
'columns' for the keys and values, which can improve readability:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc dict(string:int) age = {&quot;eve&quot;:  32,
                             &quot;john&quot;: 34,
                             &quot;adam&quot;: 25};</code></pre>
</div>
</div>
<div class="paragraph">
<p>The default value for dictionary types, is an empty dictionary. The following
two variables thus have the same initial value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc dict(string:int) x1 = {};  // Explicitly initialized as empty.
disc dict(string:int) x2;       // Implicitly initialized as empty.</code></pre>
</div>
</div>
<div class="paragraph">
<p>Every key of a dictionary is unique, but they may be associated with the same
value. For the above example with ages, the names (keys) are used to uniquely
identify people, but multiple people may have the same age (values). It is not
allowed to have the same key twice, in a dictionary literal, regardless of
whether they map to the same value or to different values:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc dict(int:int) x1 = {1: 2, 1: 2};  // Invalid due to duplicate key '1'.
disc dict(int:int) x2 = {1: 2, 1: 3};  // Invalid due to duplicate key '1'.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The values of a dictionary can be obtained by <em>projection</em> on that dictionary,
using the keys:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc dict(string:int) age = {&quot;adam&quot;: 25, &quot;eve&quot;: 32, &quot;john&quot;: 34};
disc int i;

edge ... do i := age[&quot;adam&quot;];   // 'i' becomes '25'
edge ... do i := age[&quot;eve&quot;];    // 'i' becomes '32'
edge ... do i := age[&quot;carl&quot;];   // error (there is no &quot;carl&quot; key)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Projection using a key that exists in the dictionary, results in the associated
value. Projection using a key that does not exist in the dictionary, leads to
a runtime error.</p>
</div>
<div class="paragraph">
<p>It is possible to modify single elements of a dictionary, as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc dict(string:int) age = {&quot;adam&quot;: 25, &quot;eve&quot;: 32, &quot;john&quot;: 34};

edge ... do age[&quot;eve&quot;] := 33;  // Changes eve's age.
edge ... do age[&quot;bob&quot;] := 47;  // Adds a new key/value pair.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The age of <code>eve</code> is changed from <code>32</code> to <code>33</code>. The age is thus replaced
by a new age. The age of <code>bob</code> is set to <code>47</code>. Since there was no key/value
pair for that person in the dictionary, a new key/value pair is added. After
the updates of both edges, the value of variable <code>age</code> is
<code>{"adam": 25, "bob": 47, "eve": 33, "john": 34}</code>.</p>
</div>
<div class="paragraph">
<p>Several other standard operators and functions are available to work with
dictionaries, including the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">{&quot;a&quot;: 1, &quot;b&quot;: 2} = {&quot;b&quot;: 2, &quot;a&quot;: 1}     // true (equality check)
{&quot;a&quot;: 1, &quot;b&quot;: 2} = {&quot;a&quot;: 1, &quot;b&quot;: 3}     // false

&quot;a&quot; in {&quot;a&quot;: 1, &quot;b&quot;: 2}                 // true (key existence check)
&quot;c&quot; in {&quot;a&quot;: 1, &quot;b&quot;: 2}                 // false

{&quot;a&quot;: 1, &quot;b&quot;: 2} + {&quot;b&quot;: 3, &quot;c&quot;: 4}     // {&quot;a&quot;: 1, &quot;b&quot;: 3, &quot;c&quot;: 4} (add/overwrite pairs)

{&quot;a&quot;: 1, &quot;b&quot;: 2} - {&quot;b&quot;: 3, &quot;c&quot;: 4}     // {&quot;a&quot;: 1} (removal based on keys)
{&quot;a&quot;: 1, &quot;b&quot;: 2} - {&quot;b&quot;, &quot;c&quot;}           // {&quot;a&quot;: 1}
{&quot;a&quot;: 1, &quot;b&quot;: 2} - [&quot;b&quot;, &quot;c&quot;]           // {&quot;a&quot;: 1}

empty({&quot;a&quot;: 1, &quot;b&quot;: 2})                 // false (empty check)
size({&quot;a&quot;: 1, &quot;b&quot;: 2})                  // 2 (count pairs)</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-values-chapter-combining-values">Combining values</h4>
<div class="paragraph">
<p>Values of different types can usually be arbitrarily combined. For instance,
consider the following example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">disc dict(int;tuple(real pos, weight)) boxes = {1: (0.0, 2.5),
                                                2: (3.0, 1.7),
                                                3: (4.0, 3.9};</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>boxes</code> stores data about multiple boxes, in a dictionary with
unique identification numbers (<code>1</code>, <code>2</code>, and <code>3</code>) used as keys. For each
box, the position (<code>pos</code>) and <code>weight</code> are stored as a tuple. Initially,
there are three boxes. The first box has identification number <code>1</code>,
position <code>0.0</code>, and weight <code>2.5</code>. The second box has identification number
<code>2</code>, position <code>3.0</code>, and weight <code>1.7</code>. Also consider the following
example, where the data of that variable is manipulated:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">edge ... do boxes[1][weight] := 3.5;
edge ... do boxes[2][pos] := boxes[2][pos] + 1;
edge ... do boxes[4] := (1.0, 0.8);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first edge changes the <code>weight</code> of the box <code>1</code> (the box with
identification number <code>1</code>), from <code>2.5</code> to <code>3.5</code>. The second edge
increases the position (<code>pos</code>) of box <code>2</code> from <code>3.0</code> to <code>4.0</code>. The
third edge adds data for a new box with identification number <code>4</code>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-scalable-solutions-and-reuse-12">Scalable solutions and reuse (1/2)</h3>
<div class="sect3">
<h4 id="tut-reuse1-chapter-constants">Constants</h4>
<div class="paragraph">
<p>
Through the use of <em>constants</em>, fixed values can be given a name. Using
constants, it is easy to change certain fixed values. If the constant is
used consistently throughout the model, the value needs to be changed only in
one place. Constants can thus make it easier to keep the model consistent.</p>
</div>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int STEP = 2;
const int TARGET = 100;

automaton movement:
  disc int position = 0;
  event move;

  location:
    initial;
    edge move when position &lt; TARGET do position := position + STEP;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this example, the <code>movement</code> automaton keeps track of the <code>position</code> of
an object. The object starts at position <code>0</code>. It can <code>move</code> until it
reaches its target position. The target position is <code>100</code>. Rather than using
<code>position &lt; 100</code> as guard, the value <code>100</code> is stored in a constant named
<code>TARGET</code>. The constant can then be used instead the value <code>100</code>. Similarly,
the step size of the object is stored in a constant named <code>STEP</code>.</p>
</div>
<div class="paragraph">
<p>Constants have a name, which by contention is usually written using upper case
letters. Using a constant instead of a fixed value makes it more clear what
that value represents. For instance, by using <code>position &lt; TARGET</code> rather than
<code>position &lt; 100</code>, the intention of the guard condition is more clear. Using a
constant can thus enhance readability.</p>
</div>
<div class="paragraph">
<p>Another benefit of constants, is that they can be used multiple times in the
same model:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int STEP = 2;
const int TARGET = 100;

automaton movement:
  disc int position = 0;
  event forward, backward;

  location:
    initial;
    edge forward  when position &lt; TARGET do position := position + STEP;
    edge backward when position &gt; 0      do position := position - STEP;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this modified example it is possible for the object to perform <code>forward</code>
as well as <code>backward</code> movements. The step size is the same for both
movements, making it possible to use the <code>STEP</code> constant in the updates of
both edges. Since a constant is used, the speed of both movements can be
changed by changing the value of the constant. Without using a constant, the
speed would have to be changed separately for each edge.</p>
</div>
<div class="paragraph">
<p>Constants are not limited to integer values. Consider the following example,
where a more complex value is used:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum ProductType = A, B, C;
const dict(ProductType:real) DURATION = {A: 3.5, B: 5.7, C: 0.8};</code></pre>
</div>
</div>
<div class="paragraph">
<p>This example declares a <code>ProductType</code> enumeration, with three different
product types: <code>A</code>, <code>B</code>, and <code>C</code>. The <code>DURATION</code> constant indicates
for each product type, how long it takes to produce a product of that type.
Products of type <code>A</code> can be produced in 3.5 hours, products of type <code>B</code>
in 5.7 hours, etc. To get the production duration of products of type <code>C</code>,
<a href="#tut-values-chapter-types-values-exprs">expression</a> <code>DURATION[C]</code> can be
used. For more information, see the lessons on
<a href="#tut-values-chapter-enumerations">enumerations</a> and
<a href="#tut-values-chapter-dictionaries">dictionaries</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse1-chapter-algebraic-variables">Algebraic variables</h4>
<div class="paragraph">
<p>

Consider a conveyor belt with a product on it:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/reuse1/conveyor.png" alt="conveyor">
</div>
</div>
<div class="paragraph">
<p>The product starts at the left side, at position <code>0</code>. There is a sensor that
can detect the product between positions <code>13</code> and <code>14</code>. The product exits
the conveyor at position <code>18</code>. The following CIF specification models the
conveyor, product, and sensor:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton conveyor:
  disc real position = 0.0;
  event move;

  const real width = 6;
  alg bool sensor = position + width &gt;= 13 and position &lt;= 14;

  location:
    initial;
    edge move when position &lt; 18 do position := position + 0.1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>conveyor</code> automaton models the conveyor, with a product on it. The
product is modeled by means of the <code>position</code> of the left side of the
product, relative to the left side of the conveyor. As the conveyor starts to
<code>move</code>, the product moves as well, and its position on the conveyor is
updated. The product moves in steps of <code>0.1</code>.</p>
</div>
<div class="paragraph">
<p>The <code>width</code> of the product is <code>6</code>. The sensor is on whenever
the product, which spans from <code>position</code> to <code>position + width</code>, is within
the sensor range, which spans from <code>13</code> to <code>14</code>. An <em>algebraic variable</em>
named <code>sensor</code> is used here, to represent the value of the sensor.</p>
</div>
<div class="paragraph">
<p>An algebraic variable is a variable whose value is determined by its
definition. For the <code>sensor</code> variable, its value is determined from a
calculation involving variable <code>position</code> and constant <code>width</code>. Unlike
discrete variables, algebraic variables can not be assigned a new value. The
value of algebraic variable <code>sensor</code> changes automatically as the value of
discrete variable <code>position</code> changes. The value of algebraic variable
<code>sensor</code> is <code>true</code> whenever the product is over the sensor, and it is
<code>false</code> otherwise.</p>
</div>
<div class="paragraph">
<p>If we had modeled the value of the sensor as a discrete variable, we would have
had to update the variable for every edge where the value of variable
<code>position</code> is updated. In this example, that is only one edge. However, if
the variable would have been updated on multiple edges, the sensor value would
also have to be updated for all those edges. Furthermore, when adding
another edge that updates the <code>position</code> variable, the edge needs to be
adapted to also update the <code>sensor</code> discrete variable, which can easily be
forgotten. Using an algebraic variable, the value computation needs to be
specified only once, and no changes to its value are needed, as the value
always remains consistent with its definition.</p>
</div>
<div class="paragraph">
<p>Algebraic variables can be used to give an
<a href="#tut-values-chapter-types-values-exprs">expression</a> (computations) a name,
similar to how <a href="#tut-reuse1-chapter-constants">constants</a> can be used to
give fixed values a name. The benefits of using an algebraic variable are
similar to the benefits of using constants. Both can be used to improve
readability, and to make it easier to consistently change the model.</p>
</div>
<div class="paragraph">
<p>Algebraic variables can also be used as an abstraction. Consider the following
extension of the specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton light:
  event turn_on, turn_off;

  location off:
    initial;
    edge turn_on  when     conveyor.sensor goto on;

  location on:
    edge turn_off when not conveyor.sensor goto off;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The idea is to have a light turn on when a product is detected by the sensor,
and have it turn off when the sensor no longer detects the product. The
algebraic variable <code>sensor</code> is used in the guard conditions of the <code>light</code>
automaton, to determine when the light should be turned on or off.</p>
</div>
<div class="paragraph">
<p>In the example, the <code>light</code> automaton only uses the <code>sensor</code> variable from
automaton <code>conveyor</code>. It does not matter how the value of that variable is
defined. Currently, it is defined in terms of variable <code>position</code> and
constant <code>width</code>. However, if the <code>conveyor</code> automaton were modeled
differently, the expression that defines the value of the algebraic variable
could be changed, without the need to change the use of the variable in
automaton <code>light</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse1-chapter-algvar-equations">Algebraic variables and equations</h4>
<div class="paragraph">
<p>

Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton car:
  event start, stop, breakdown, start_repair, repaired;

  alg bool can_drive = idle or moving;

  location idle:
    initial;
    edge start goto moving;

  location moving:
    edge stop goto idle;
    edge breakdown goto broken;

  location broken:
    edge start_repair goto repairing;

  location repairing:
    edge repaired goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>car</code> is initially <code>idle</code>. Once you <code>start</code> driving, the car is
<code>moving</code>. Once you <code>stop</code> driving, the car is <code>idle</code> again. While
<code>moving</code> it is possible for a <code>breakdown</code> to occur, meaning the car is
<code>broken</code>. Once a mechanic starts the repair (<code>start_repair</code>), the mechanic
is <code>repairing</code> the car. Once it is <code>repaired</code>, the car is <code>idle</code>, and you
can <code>start</code> driving it again, etc.</p>
</div>
<div class="paragraph">
<p>Algebraic variable <code>can_drive</code> indicates whether you can currently drive the
car. As the value calculation indicates, the car can be driven whenever it is
<code>idle</code> or <code>moving</code>. That is, it can&#8217;t be driven if the car is <code>broken</code>
or a mechanic is <code>repairing</code> it.</p>
</div>
<div class="paragraph">
<p>In the example above, the value of the algebraic variable is defined with the
declaration, as was already explained in the lesson that introduced
<a href="#tut-reuse1-chapter-algebraic-variables">algebraic variables</a>. However, it
also possible to specify the value separately, using an equation:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton car:
  event start, stop, breakdown, start_repair, repaired;

  alg bool can_drive;

  equation can_drive = idle or moving;

  // Locations omitted for brevity.
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This allows for separation of variable declarations and equations. Both
variants have the same algebraic variable with the same value. An equation of
an algebraic variable must be placed in the same component as where the
algebraic variable is declared. In the example above, the equation for
algebraic variable <code>can_drive</code> must be placed in automaton <code>car</code>, as that
is where the algebraic variable is declared.</p>
</div>
<div class="paragraph">
<p>For algebraic variables declared in automata, it is also possible to specify
the value using an equation per location of the automaton:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton car:
  event start, stop, breakdown, start_repair, repaired;

  alg bool can_drive;

  location idle:
    initial;
    equation can_drive = true;

    edge start goto moving;

  location moving:
    equation can_drive = true;

    edge stop goto idle;
    edge breakdown goto broken;

  location broken:
    equation can_drive = false;

    edge start_repair goto repairing;

  location repairing:
    equation can_drive = false;

    edge repaired goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Every algebraic variable must have a unique value in every situation. Algebraic
variables must thus have a value with their declaration, a single equation in
the same component, or an equation in every location of the automaton. For
every algebraic variable, one of the three variants must be chosen. It is
allowed to choose a different variant for different algebraic variables, but it
is not allowed to use multiple variants for the same algebraic variable.</p>
</div>
<div class="paragraph">
<p>Which variant fits best for a specific algebraic variable, depends on the
situation. One of the benefits of using an equation per location, is
that the equations are checked for completeness. If you add a new location, you
must add an equation to that location as well, as otherwise the model is
invalid (incomplete). This means you can&#8217;t forget to specify the value of the
algebraic variable for that new location. If you use a value with the
declaration or a single equation in the component, you might forget to update
the value for the changes you made to the automaton.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse1-chapter-type-declarations">Type declarations</h4>
<div class="paragraph">
<p>

Consider this slightly modified version of an example from the lesson on
<a href="#tut-reuse1-chapter-constants">constants</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum ProductType = A, B, C;

const dict(ProductType:real) M1_DURATION = {A: 3.5, B: 5.7, C: 0.8};
const dict(ProductType:real) M2_DURATION = {A: 1.8, B: 4.2, C: 3.9};</code></pre>
</div>
</div>
<div class="paragraph">
<p>This example declares a <code>ProductType</code> enumeration, with three different
product types: <code>A</code>, <code>B</code>, and <code>C</code>. The <code>M1_DURATION</code> constant indicates
for each product type, how long it takes to produce a product of that type,
on machine 1. Products of type <code>A</code> can be produced in 3.5 hours, products of
type <code>B</code> in 5.7 hours, etc. Constant <code>M2_DURATION</code> is similar, but for
machine 2.</p>
</div>
<div class="paragraph">
<p>The type of both constants is the same. To avoid having to repeat complex types
in multiple places, a <em>type declaration</em> can be used:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum ProductType = A, B, C;
type Durations = dict(ProductType:real)

const Durations M1_DURATION = {A: 3.5, B: 5.7, C: 0.8};
const Durations M2_DURATION = {A: 1.8, B: 4.2, C: 3.9};</code></pre>
</div>
</div>
<div class="paragraph">
<p>A type declaration with name <code>Durations</code> is introduced, and <code>Durations</code> can
then be used wherever a type is expected, instead of
<code>dict(ProductType:real)</code>. In the example above, <code>Durations</code> is used as
type of the two constants. The original specification and the one with the
type declaration have the same constants, with effectively the same type. That
is, in both specification the value of constant <code>M1_DURATION</code> is a
<a href="#tut-values-chapter-dictionaries">dictionary</a> with three key/value pairs.</p>
</div>
<div class="paragraph">
<p>Type declarations can be used to give a type a name, similar to how
<a href="#tut-reuse1-chapter-constants">constants</a> can be used to give fixed values
a name, and <a href="#tut-reuse1-chapter-algebraic-variables">algebraic variables</a>
can be used to give computations a name. The benefits are also similar, as type
declarations can be used to make specifications more concise, to increase
readability, and to make it easier to consistently change types throughout the
specification.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-time">Time</h3>
<div class="sect3">
<h4 id="tut-time-chapter-intro">Timing</h4>
<div class="paragraph">
<p>

So far, the tutorial has only used discrete event models as examples, which are
all untimed. This lesson introduces the concept of timing.</p>
</div>
<div class="paragraph">
<p>In CIF, time starts at zero (<code>0.0</code>). Time can progress continuously. That is,
after one unit of time has passed, the model time is <code>1.0</code>. After an
additional one and a half time units have passed, the model time is <code>2.5</code>,
etc. By default, one time unit corresponds to one second. However, you can
decide to use another unit, and tools such as the simulator can be configured
to speed up or slow down the simulation accordingly.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div class="sect4">
<h5 id="tut-variable-time">Variable <code>time</code></h5>
<div class="paragraph">
<p>A variable named <code>time</code> is always available in every specification. The
variable holds the current absolute model time as its value, and can be used
throughout the model. Initially, time and thus the value of variable <code>time</code>
start at zero (<code>0.0</code>). As time progresses, the value of variable <code>time</code> is
automatically updated to ensure it properly represents the current time of the
system.</p>
</div>
<div class="paragraph">
<p>In this lesson, absolute time will be used. In most models, it is easier to use
relative time. This can be achieved with
<a href="#tut-time-chapter-continuous-variables">continuous variables</a>, discussed in
the next lesson.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-timed-guards">Timed guards</h5>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event push, release;

automaton user:
  location start1:
    initial;
    edge push    when time &gt;= 1.5 goto stop1;

  location stop1:
    edge release when time &gt;= 2.3 goto start2;

  location start2:
    edge push    when time &gt;= 2.4 goto stop2;

  location stop2:
    edge release when time &gt;= 7.6 goto done;

  location done;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>push</code> and <code>release</code> events represent pushing and releasing of a button
respectively. The actual behavior of the button itself is omitted. The
specification does model the behavior of a <code>user</code>. Initially, the <code>user</code>
is in location <code>start1</code>, and no time has passed. The edge with the <code>push</code>
event is not yet enabled, as the guard is not satisfied. As soon as one and a
half time units have passed, the guard condition becomes satisfied, and the
<code>push</code> event becomes enabled. This edge models that the user starts to push
the button after <code>1.5</code> time units. The user then waits for another <code>0.8</code>
(<code>2.3</code> - <code>1.5</code>) time units, before releasing the button (stop pushing it).
After waiting another <code>0.1</code> (<code>2.4</code> - <code>2.3</code>) time unit, the user pushes
the button again. Finally, after waiting <code>5.2</code> (<code>7.6</code> - <code>2.4</code>) time
units, the user releases the button one last time. In the <code>done</code> location,
the <code>push</code> and <code>release</code> events are never enabled (no edges for those
events), and thus the user never pushes or releases the button again. No other
events are enabled, so time keeps progressing forever, without any events
happening.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-time-transitions">Time transitions</h5>
<div class="paragraph">
<p>The state space of the above specification is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/time/user_state_space.png" alt="user state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the names of the current locations of automaton
<code>user</code> and the current values of variable <code>time</code>. The transitions labeled
with event names are <em>event transitions</em>. The other transitions are
<em>time transitions</em>, which are labeled with the duration of the time
transitions, i.e. the number of time units that passes. At the end of the
state space, a time transition of infinite duration is shown, to indicate that
time can progress forever.</p>
</div>
<div class="paragraph">
<p>The current locations of automata can not change as time passes as the result
of taking a time transition. The only way for the current locations to change,
is as the result of taking an edge as part of an event transition.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-urgency">Urgency</h5>
<div class="paragraph">
<p>By default, all events in CIF are <em>urgent</em>. Events being urgent means that
edges are taken as soon as possible. In other words, event transitions take
priority over time transitions. Time can only progress if no event transitions
are possible. For further details on urgency, see the future
<a href="#tut-time-chapter-urgency">urgency</a> lesson.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-numeric-time">Numeric time</h5>
<div class="paragraph">
<p>In the above example, guard <code>time &gt;= 1.5</code> is used. You might wonder why the
guard is not <code>time = 1.5</code>, as the intention is that user pushes the button
after exactly <code>1.5</code> time units, and not after <code>1.6</code> or <code>1.7</code> time units.
The main reason is that the <a href="#tools-cifsim-chapter-index">simulator</a> uses finite
precision in its numeric calculations to find the moment in time that the edge
becomes enabled. The answer also has finite precision. It is often not exactly
at <code>1.5</code> time units, but is slightly after it, say at time
<code>1.50000000000001</code>. If you use <code>time = 1.5</code> as guard instead of
<code>time &gt;= 1.5</code>, the simulator will most likely
<a href="#tools-cifsim-solver-chapter-root-problems">miss the change</a> in enabledness of
the edge, and will never enable the event.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-time-chapter-continuous-variables">Continuous variables</h4>
<div class="paragraph">
<p>

In the lesson that introduced <a href="#tut-time-chapter-intro">timing</a>, variable
<code>time</code> was used. Variable <code>time</code> uses absolute model time, i.e.
the total amount of time that has passed since the start of the simulation.
It is usually easier to use relative model time, i.e. a certain amount of time
passes after a certain event. This is where <em>continuous variables</em> are ideal.
A continuous variable is a variable that changes value automatically, as time
progresses. Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton machine:
  event start, finished;
  cont t = 0 der 1;

  location idle:
    initial;
    edge start do t := 0 goto producing;

  location producing:
    edge finished when t &gt;= 3 goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification models a <code>machine</code> that is initially <code>idle</code>. The machine
can <code>start</code> to produce a product. After a while, it is done <code>producing</code>.
Due to having <code>finished</code> the product, it becomes <code>idle</code> again, until it is
starts to product the next product.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div id="lang-tut-time-continuous-variables-deriv" class="paragraph">
<p>Continuous variable <code>t</code> is declared to initially have value <code>0</code>. Its
<em>derivative</em> is <code>1</code>, meaning that every unit of time that passes, the value
of <code>t</code> increases by <code>1</code>. Every time the <code>start</code> event happens, the value
of continuous variable <code>t</code> is reset to <code>0</code> using an assignment. As a result
of this reset, <code>t</code> will be <code>0</code> when the automaton enters the <code>producing</code>
location. The edge for the <code>finished</code> event indicates that the event can only
happen when <code>t &gt;= 3</code> holds. This condition will hold after three time units.
This means that automaton <code>machine</code> remains in the <code>producing</code> location for
three time units, before going to the <code>idle</code> location.  It will thus always
take three units after entering the  <code>producing</code> location, before the guard
becomes enabled, and the <code>finished</code> event can take place. The state space is
as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/time/machine_state_space.png" alt="machine state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the first letters of the names of the current
locations of automaton <code>machine</code> and the current values of variables <code>time</code>
and <code>t</code>.</p>
</div>
<div class="paragraph">
<p>Continuous variables always have <a href="#tut-values-chapter-reals">real</a> values.
Similar to discrete variables, if their initial value is not specified, it is
<code>0.0</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont t der 1; // Initial value is 0.0.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The derivative of a continuous variable can be used as a variable as well. The
derivative of continuous variable <code>t</code> is <code>t'</code>. A derivative is read only;
it can not be assigned. Similar to algebraic variables, it is always equal to
its definition. In the case of variable <code>t</code>, its derivative is always <code>1</code>.
The values of variables <code>time</code>, <code>t</code>, and <code>t'</code> as time progresses are:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/time/machine_plot.png" alt="machine plot">
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-time-chapter-contvar-equations">Continuous variables and equations</h4>
<div class="paragraph">
<p>



Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton person:
  event turn;
  cont t = 0 der 1;

  location:
    initial;
    edge turn when t &gt; 10 do t := 0.0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification models a <code>person</code> walking back and forth. Every time that
the person has walked <code>10</code> time units, (s)he will <code>turn</code> around, walking
in the other direction.</p>
</div>
<div class="paragraph">
<p>In the example above, the derivative of the continuous variable is defined with
the declaration, as was already explained in the lesson that introduced
<a href="#tut-time-chapter-continuous-variables">continuous variables</a>. However, it
also possible to specify the derivative separately, using an equation:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton person:
  event turn;
  cont t = 0;         // Declaration specifies only the initial value.

  equation t' = 1;    // Derivative specified using separate equation.

  location:
    initial;
    edge turn when t &gt; 10 do t := 0.0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This allows for separation of variable declarations and equations. Both
variants have the same continuous variable with the same derivative. An
equation of a derivative of a continuous variable must be placed in the same
component as where the continuous variable is declared. In the example above,
the equation for <code>t'</code> must be placed in automaton <code>person</code>, as that is
where <code>t</code> is declared.</p>
</div>
<div class="paragraph">
<p>We could extend this specification to keep track of the direction that the
person is moving:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton person:
  event turn;
  cont t = 0 der 1;

  location away:
    initial;
    edge turn when t &gt; 10 do t := 0.0 goto back;

  location back:
    edge turn when t &gt; 10 do t := 0.0 goto away;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>For continuous variables declared in automata, it is also possible to specify
the derivative using an equation per location of the automaton. This allows us
to keep track of the exact position of the person:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton person:
  event turn;
  cont pos = 0;

  location away:
    initial;
    equation pos' = 1;
    edge turn when pos &gt; 10 goto back;

  location back:
    equation pos' = -2;
    edge turn when pos &lt; 0 goto away;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, the continuous variable <code>t</code> has been renamed to <code>pos</code>, to make it
more clear that it indicates the position of the person. As long as the
person is moving <code>away</code>, the derivative of <code>pos</code> is <code>1</code>, and the
person moves away, one place every time unit. When the person reaches
position <code>10</code>, the position is not reset to zero. Instead, only the location
is changed to the <code>back</code> location. In that location, the derivative of
<code>pos</code> is <code>-2</code>. This means that every time unit, the position decreases
by <code>2</code>. That is, the person back to the original position, but at twice the
speed. The values of variables <code>time</code>, <code>pos</code>, and <code>pos'</code> as time
progresses are:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/time/person_plot.png" alt="person plot">
</div>
</div>
<div class="paragraph">
<p>As with <a href="#tut-reuse1-chapter-algvar-equations">algebraic variables</a>, every
continuous variable must have a unique derivative in every situation.
Continuous variables must thus have a derivative with their declaration, a
single equation in the same component, or an equation in every location of the
automaton. For every continuous variable, one of the three variants must be
chosen. It is allowed to choose a different variant for different continuous
variables, but it is not allowed to use multiple variants for the same
continuous variable.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-time-chapter-equations">Equations</h4>
<div class="paragraph">
<p>
Consider the following
<a href="http://en.wikipedia.org/wiki/Nonlinear_system">non-linear system</a>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/time/tank.png" alt="tank">
</div>
</div>
<div class="paragraph">
<p>Variable <code>V</code> models the water volume of a tank. The water volume of the tank
changes based on the incoming flow of water <code>Qi</code> and outgoing flow of water
<code>Qo</code>. The tank can be modeled using the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont V = 5 der Qi - Qo;
alg real Qi = 1;
alg real Qo = sqrt(V);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Initially, the tank is filled with <code>5</code> liters of water. The incoming flow is
constant at <code>1</code> liter per second. The outgoing flow increases as the water
volume of the tank increases.</p>
</div>
<div class="paragraph">
<p>By separating the declarations of the three variables from their equations, the
specification becomes more readable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont V = 5;
alg real Qi;
alg real Qo;

equation V' = Qi - Qo;
equation Qi = 1;
equation Qo = sqrt(V);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The values of the variables as time passes are shown in the following figure:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/time/tank_plot.png" alt="tank plot">
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-time-chapter-var-overview">Variables overview</h4>
<div class="paragraph">
<p>

CIF features different kinds of variables, that have different functionality.
Each is better suited for a particular purpose. The following table gives an
overview:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Kind of variable</th>
<th class="tableblock halign-center valign-top">Can be assigned</th>
<th class="tableblock halign-center valign-top">Can change as time progresses</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tut-data-chapter-discrete-variables">Discrete variable</a></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><strong>yes</strong></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tut-reuse1-chapter-algebraic-variables">Algebraic variable</a></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><strong>yes</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tut-time-chapter-continuous-variables">Continuous variable</a></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><strong>yes</strong></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><strong>yes</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#lang-tut-time-continuous-variables-deriv">Derivative of a continuous variable</a></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><strong>yes</strong></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Discrete variables can only change value when given an explicit new value by
means of an assignment. They don&#8217;t change automatically as time progresses.</p>
</div>
<div class="paragraph">
<p>Algebraic variables can&#8217;t be assigned. Instead, their values depend on their
declarations or equation(s). If the computations that result in their values
depend on a variable that can change value as time progresses, then so can
the values of the algebraic variables. Algebraic variables are used as named
shorthand notations for computations, for readability, reuse, consistency, and
abstraction.</p>
</div>
<div class="paragraph">
<p>Continuous variables automatically change value as time progresses, as
specified by their derivatives. They can also be assigned new values, from
which they then automatically change again, based on the current values of
their derivatives.</p>
</div>
<div class="paragraph">
<p>The derivatives of the continuous variables can be seen as variables
themselves. Their values depend on their declaration or equation(s). If the
computations that result in their values depend on a variable that can change
value as time progresses, then so can the values of the derivatives.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-time-chapter-urgency">Urgency</h4>
<div class="paragraph">
<p>
In CIF, urgency indicates whether or not time may progress. CIF has three forms
of urgency: event urgency, location urgency, and edge urgency. Edge urgency
should be avoided, and is not explained here.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="tut-event-urgency">Event urgency</h5>
<div class="paragraph">
<p>By default, all events in CIF are <em>urgent</em>. Events being urgent means that
edges are taken as soon as possible. In other words, event transitions take
priority over time transitions. Time can only progress if no event transitions
are possible. It is not possible to make events non-urgent in a CIF model, but
specific tools may allow making events non-urgent.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-time-urgloc">Location urgency</h5>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton use_case:
  location first:
    initial;
    edge tau goto second;

  location second:
    edge tau goto done;

  location done;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This automaton represents a use case, which goes from one location to the next.
The state space is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/time/usecase_nonurg_state_space.png" alt="usecase nonurg state space">
</div>
</div>
<div class="paragraph">
<p>The states are labeled with the names of the current locations of automaton
<code>use_case</code> and the current values of variable time. At the end of the use
case, no events are possible, and thus time can progress infinitely. To force
that in location <code>done</code> no time can progress, the location can be made
urgent:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton use_case:
  location first:
    initial;
    edge tau goto second;

  location second:
    edge tau goto done;

  location done:
    urgent; // Location is now urgent.
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The resulting state space is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/time/usecase_urgloc_state_space.png" alt="usecase urgloc state space">
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-time-chapter-deadlock-livelock">Deadlock and livelock</h4>
<div class="paragraph">
<p>This lesson explains the concepts of deadlock and livelock.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="lang-tut-time-deadlock">Deadlock</h5>
<div class="paragraph">
<p>If no event transitions are possible, and also no time transitions are possible
(time may not progress), then no transitions are possible. This is called
<em>deadlock</em>. No behavior is possible, or will ever become possible. As an
example, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton use_case:
  location wait3:
    initial;
    urgent;
    edge tau when time &gt; 3 goto done;

  location done;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Location <code>wait3</code> is the initial location. Initially, <code>time</code> is zero. Time
can not progress, as the location is <a href="#lang-tut-time-urgloc">urgent</a>.
Since the guard of the edge also does not hold, event <code>tau</code> is also not
possible. No transitions are possible, and the specification is in deadlock.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-time-livelock">Livelock</h5>
<div class="paragraph">
<p>As long as an event is possible, no time may pass. If by mistake always an
event is possible, this prevents all passage of time. Consider the following
CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton car:
  event increase, decrease, arrived;
  disc real speed = 0;
  cont pos der speed;

  location underway:
    initial;
    edge increase when speed &lt; 100 do speed := speed + 1;
    edge decrease when speed &gt; 0   do speed := speed - 1;
    edge arrived  when pos = 850 goto done;

  location done;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification models a <code>car</code> that can <code>increase</code> and <code>decrease</code> its
speed, so that it is at least <code>0</code> and at most <code>100</code>. It keeps track of its
position (continuous variable <code>pos</code>) that increases more quickly as the speed
increases. When position <code>850</code> is reached, the car has <code>arrived</code> and is
<code>done</code>.</p>
</div>
<div class="paragraph">
<p>The car will be increasing and decreasing it speed, using the <code>increase</code> and
<code>decrease</code> events. As always at least one of them is enabled at any moment,
time can never progress, and <code>pos</code> remains zero. This effect is called
<em>livelock</em>. While behavior is still possible, the model does not truly progress
with useful behavior. The model gets 'stuck' repeating one or a few events.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-channel-communication">Channel communication</h3>
<div class="sect3">
<h4 id="tut-channels-chapter-intro">Channels</h4>
<div class="paragraph">
<p>

Consider the following figure of a producer and two consumers, where rectangles
represent entities and the arrows represent the data that is communicated:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/channels/producer_consumer.png" alt="producer consumer">
</div>
</div>
<div class="paragraph">
<p>The producer creates products, identified by a unique identification
number. Each product produced by the producer, is provided either to
the first or to the second consumer. Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event provide1, provide2;

automaton producer:
  disc int nr = 0;

  location:
    initial;
    edge provide1, provide2 do nr := nr + 1;
end

automaton consumer1:
  disc int nr = -1;

  location:
    initial;
    edge provide1 do nr := producer.nr;
end

automaton consumer2:
  disc int nr = -1;

  location:
    initial;
    edge provide2 do nr := producer.nr;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>producer</code> keeps track of the identification number (variable <code>nr</code>) of
the current product, and provides products to either the first consumer
(event <code>provide1</code>) or the second consumer (<code>provide2</code>). Both consumers
have an identification number of their current product as well (variable
<code>nr</code> in the consumer automata). Initially, the consumers don&#8217;t have a
product, as indicated by value <code>-1</code>. When a consumer gets a new product, it
looks up the identification number of the product at the producer, and stores
it locally. The producer then moves on to the next product, by increasing its
current identification number.</p>
</div>
<div class="paragraph">
<p>We can identify two problems in this model.</p>
</div>
<div class="paragraph">
<p>The first problem is that we need two events in order for the producer to
provide products to <em>either</em> the one consumer <em>or</em> the other consumer. If we
used only one event, both consumers would need to use that event, have the
event in their <a href="#tut-basics-chapter-alphabet">alphabet</a>, and would thus have
to simultaneously participate in the
<a href="#tut-basics-chapter-synchronizing-events">synchronization</a>. A consequence of
having an event per consumer, is that the <code>producer</code> automaton has both
events on its edge. Adding a third consumer entails having to add another
event, as well as having to modify the edge of the <code>producer</code> automaton. This
is not a nice scalable solution.</p>
</div>
<div class="paragraph">
<p>The second problem is that the consumer refers directly to the <code>nr</code> variable
of the <code>producer</code> automaton. This introduces a very tight coupling between
the producer and the consumers. It exposes the <code>nr</code> variable of the
<code>producer</code> to the consumers, making it more difficult to change the producer
without changing the consumers.</p>
</div>
<div class="paragraph">
<p>

Both these problems can be solved by using <em>channels</em>. Channels are a special
form of events, that can be used to communicate or transmit data from a
<em>sender</em> to a <em>receiver</em>. In our example, data that is communicated are the
identification numbers of the products, the producer is the sender, and the
consumers are the receivers.</p>
</div>
<div class="paragraph">
<p>Channels require one or more potential senders, and one or more potential
receivers. Automata cannot be both sender and receiver for a single channel.
They may however be a sender for one channel, and a receiver for another
channel. For every transition, exactly one of the senders and exactly one of
the receivers participate. The sender sends a value, and the receiver
receives that value. This type of communication is often called channel
communication or <em>point-to-point</em> communication, as the data is communicated
from one point (the sender) to another point (the receiver).</p>
</div>
<div class="paragraph">
<p>Multiple automata that synchronize over the same event perform a transition
together. Similarly, a sender and receiver that together perform a
channel communication, perform a transition together. In both cases,
all automata involved take their respective edges <em>synchronously</em>
(simultaneously).</p>
</div>
<div class="paragraph">
<p>Channels are ideally suited for modeling product flows, or more generally the
movement of physical entities through a system. Physical objects usually don&#8217;t
duplicate themselves or spontaneously stop to exist. This fits nicely with
channels, where data is communicated or passed along from exactly one sender
to one receiver. In our example, product produced by the producer are
physically provided to one of the consumers.</p>
</div>
<div class="paragraph">
<p>The following CIF specification models the above example using channels:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int provide;

automaton producer:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr do nr := nr + 1;
end

automaton consumer1:
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end

automaton consumer2:
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>
The <code>provide1</code> and <code>provide2</code> events have been replaced by a single
channel named <code>provide</code>. Channels are declared similar to events, but have a
<a href="#tut-values-chapter-types-values-exprs">data type</a> that indicates the type
of <a href="#tut-values-chapter-types-values-exprs">values</a> that are communicated
over the channel. In this case <a href="#tut-values-chapter-integers">integers</a> are
communicated.</p>
</div>
<div class="paragraph">
<p>

The <code>producer</code> now uses the channel on its edge, instead of the two events.
The exclamation mark (<code>!</code>) after the channel name means that the producer
is sending over the channel. After the exclamation mark, the value that the
producer sends is given. In this case, the producer sends the identification
number of its current product.</p>
</div>
<div class="paragraph">
<p>



The edges of the consumers have been modified as well. The channel is used
with a question mark (<code>?</code>) after the channel name, indicating that the
consumers receive over the channel. The received value, which is available as
the <code>?</code> variable in the update, is directly assigned to the <code>nr</code> variable
of the consumer.</p>
</div>
<div class="paragraph">
<p>By using channels, we no longer need multiple events, and the producer does not
need to be modified if another consumer is added. This makes the model scalable
to varying amount of consumers. Furthermore, the consumers now use the <code>?</code>
variable to obtain the received value, and no longer need direct access to the
variables of the producer. This makes it easier to modify the producer
without having to also modify the consumers.</p>
</div>
<div class="paragraph">
<p>To conclude this lesson, we&#8217;ll extend the example with a second producer:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int provide;

automaton producer1:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr do nr := nr + 1;
end

automaton producer2:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr do nr := nr + 1;
end

automaton consumer1:
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end

automaton consumer2:
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>producer</code> automaton has been renamed to <code>producer1</code>, and a
<code>producer2</code> has been added. Both producers independently produce products
and provide them to the consumers. Both consumers can receive products from
either producer. At all times, four transitions are possible:
<code>producer1</code> communicates with <code>consumer1</code>, <code>producer1</code> communicates with
<code>consumer2</code>, <code>producer2</code> communicates with <code>consumer1</code>, or <code>producer2</code>
communicates with <code>consumer2</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-channels-chapter-void">Dataless channels</h4>
<div class="paragraph">
<p>



Besides channels that communicate data, it is also possible to use dataless
channels. A channel that does not communicate any data, is declared with the
<code>void</code> type. Dataless channels are also called <code>void</code> channels. When using
dataless channels, the sender does not provide a value to send over the
channel. Also, the receiver cannot use the received value (variable <code>?</code>)
since no data is communicated.</p>
</div>
<div class="paragraph">
<p>Dataless channels are used in the same situations as 'normal' channels,
for instance when physical product flow is modeled. If products don&#8217;t
have an identification number, and can not be distinguished based on color or
some other property, all products are essentially equal. It is then sufficient
to communicate that a product is being 'transferred'. No further data is
needed. While it is possible to communicate dummy values, dataless channels
provide a better solution in such cases.</p>
</div>
<div class="paragraph">
<p>Consider again the producer/consumer example from the
<a href="#tut-channels-chapter-intro">previous lesson</a>, with one producer and two
consumers, but without identification numbers for the products:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event void provide;

automaton producer:
  location:
    initial;
    edge provide!;
end

automaton consumer1:
  location:
    initial;
    edge provide?;
end

automaton consumer2:
  location:
    initial;
    edge provide?;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>producer</code> still produces products and provides them to either the first
or the second consumer.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-channels-chapter-chan-sync-combi">Combining channel communication with event synchronization</h4>
<div class="paragraph">
<p>
Consider again the producer/consumer example with two producers and two
consumers, from a <a href="#tut-channels-chapter-intro">previous lesson</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int provide;

automaton producer1:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr do nr := nr + 1;
end

automaton producer2:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr do nr := nr + 1;
end

automaton consumer1:
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end

automaton consumer2:
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Now assume we want to restrict communication to allow at most five products in
total to be provided to the consumers. We could adapt both producers, as
follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton producer1:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr when nr + producer2.nr &lt; 5 do nr := nr + 1;
end

automaton producer2:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr when producer1.nr + nr &lt; 5  do nr := nr + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each producer gets an additional guard condition whether it may provide a
product to one of the consumers. If the total number of products provided by
both providers does not exceed five, they may still provide a product. Having
to adapt both producers is less than ideal.</p>
</div>
<div class="paragraph">
<p>As an alternative solution, we can add an additional automaton, instead of
adapting the producers:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton controller:
  disc int cnt = 0;

  location:
    initial;
    edge provide when cnt &lt; 5 do cnt := cnt + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This <code>controller</code> automaton (together with the original producer automata)
keeps track of the number of products provided to consumers, by counting them
in variable <code>cnt</code>. It only allows the <code>provide</code> event when less than five
products have been provided. If five or more products have been provided, it
disables the <code>provide</code> event.</p>
</div>
<div class="paragraph">
<p>In the <code>controller</code> automaton, the <code>provide</code> channel is used as an event
rather than a channel. When one of the producers and one of the consumers
together perform a channel communication, the <code>controller</code> automaton that has
the <code>provide</code> event in its <a href="#tut-basics-chapter-alphabet">alphabet</a>, must
synchronize with it. This allows the <code>controller</code> to impose additional
restrictions on the channel communication, allowing or forbidding it in
certain cases. The <code>controller</code> is added as a separate process, which
improves scalability.</p>
</div>
<div class="paragraph">
<p>In general, every automaton may either send over a channel, receive over a
channel, or synchronize with a channel. An automaton may not take on more than
one of these roles, for a single event. It may however send over one channel,
receive over another channel, and synchronize with yet another one.</p>
</div>
<div class="paragraph">
<p>Every event transition for a channel requires exactly one automaton that
participates as sender, and exactly one automaton that participates as
receiver. Furthermore, all automata that have the channel in their alphabet,
must additionally participate as well, by synchronizing together with the
sender and receiver. Automata that send or receive over a channel, do not have
that channel in their alphabet. Only automata that synchronize with an event
or channel have that event or channel in their alphabet.</p>
</div>
<div class="paragraph">
<p>Automata that synchronize over a channel can be used to further <em>restrict</em> the
allowed channel communications, as shown in the above example. It is however
also possible for the additional synchronizing automata to
<a href="#tut-data-chapter-monitoring">monitor</a> (observe) the channel communication.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-functions">Functions</h3>
<div class="sect3">
<h4 id="tut-functions-chapter-intro">Functions</h4>
<div class="paragraph">
<p>

Functions can be used to compute values from other values. CIF has many
built-in functions, called <em>standard library functions</em>. An example is the
<code>size</code> function, which takes a <a href="#tut-values-chapter-lists">list</a> and
returns the number of elements of the list. Another example is the <code>abs</code>
function, which takes an <a href="#tut-values-chapter-integers">integer</a> or
<a href="#tut-values-chapter-reals">real</a> number and computes the absolute value of
that number.</p>
</div>
<div class="paragraph">
<p>
While many built-in functions are available, they may not always suffice.
User-defined functions can be added to CIF models, to allow custom computations
needed by the model. By putting the calculation in a user-defined function, the
calculation can be used in several places, allowing for reuse. Furthermore,
functions allow for more complex computations than would otherwise be possible.</p>
</div>
<div class="paragraph">
<p>
CIF features two kinds of user-defined functions: internal ones and external
ones. Internal user-defined functions are fully defined within the CIF model.
External user-defined functions declare only a header which indicates the
existence of the function, while the actual implementation is obtained from an
external source. The lessons of this category only explain internal
user-defined functions. The language reference documentation gives more
information on external user-defined functions.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-functions-chapter-internal-functions">Internal user-defined functions</h4>
<div class="paragraph">
<p>
The most commonly used <a href="#tut-functions-chapter-intro">kind</a> of user-defined
functions are the internal user-defined functions. Consider the following CIF
specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">func real mean(list real vs):
  int length = size(vs);
  int index = 0;
  real sum = 0;

  while index &lt; length:
    sum := sum + vs[index];
    index := index + 1;
  end
  return sum / length;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>

This specification defines a function (keyword <code>func</code>) named <code>mean</code>. After
the name of the function, between the parentheses, the <em>parameters</em> are listed.
The parameters are the input values, which the function can use to compute its
result. In this example, the function takes a
<a href="#tut-values-chapter-lists">list</a> of <a href="#tut-values-chapter-reals">real</a>
values as its only parameter. Parameter name <code>vs</code> can be used in the body of
the function to refer to this input value. Just after the <code>func</code> keyword, the
<a href="#tut-values-chapter-types-values-exprs">type</a> of the <em>result</em> of the
computation is specified. In this case, the function results in a
<a href="#tut-values-chapter-reals">real</a> typed value. The <code>mean</code> function takes a
list of integer values and produces a single real value as result.</p>
</div>
<div class="paragraph">
<p>

In the <em>body</em> of the function, local variables can be declared. The <code>mean</code>
function declares three variables: <code>length</code>, <code>index</code>, and <code>sum</code>. Local
variables of functions are very similar to
<a href="#tut-data-chapter-discrete-variables">discrete variables</a>. The main
difference is that they are
declared without the <code>disc</code> keyword. In the example, <code>length</code> is set to the
number of elements in list <code>vs</code>. Variables <code>index</code> and <code>sum</code> are both
initialized to <code>0</code>.</p>
</div>
<div class="paragraph">
<p>

After the local variables (if any), the statements of the body are given. The
statements implement the algorithm, the actual computation of the function.
Statements are executed one after another, in the order they are given. In the
<code>mean</code> function, the <code>while</code> statement is executed before the <code>return</code>
statement. The <code>mean</code> function first calculates the sum of the input values,
and then <em>returns</em> the mean value. The details of the statements are discussed
in the <a href="#tut-functions-chapter-statements">next lesson</a>.</p>
</div>
<div class="paragraph">
<p>

A function can be called (or applied) on concrete input values, to obtain the
computation result for those specific input values. For instance, consider the
following extension to the above CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg real m = mean([1.5, 3.2, 7.9, 15.8]);

automaton a:
  disc real x;

  location:
    initial;
    edge do x := 2 * mean([0.4, 1.5, 6.8]);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Algebraic variable <code>m</code> is given the value that results from calling function
<code>mean</code> on a single <em>argument</em>, a list with four values. Each argument of a
function call must match with the corresponding parameter of the function being
called. In this case, the list of four real values matches with the <code>vs</code>
parameter of the <code>mean</code> function, which has type <code>list real</code>. Variable
<code>m</code> becomes <code>7.1</code>, as the mean of those four values is <code>7.1</code>
(<code>(1.5 + 3.2 + 7.9 + 15.8) / 4</code>).</p>
</div>
<div class="paragraph">
<p>The edge in automaton <code>a</code> assigns a value to variable <code>x</code>. The mean of a
list of three values is calculated, and multiplied by two, to obtain the new
value of <code>x</code>. The mean of <code>0.4</code>, <code>1.5</code>, and <code>6.8</code> is
<code>(0.4 + 1.5 + 6.8) / 3</code>, which is <code>2.9</code>. Variable <code>x</code> gets <code>5.8</code>
(<code>2.9 * 2</code>) as its new value.</p>
</div>
<div class="paragraph">
<p>Function <code>mean</code> is called in two places in the example, showing reuse of
calculations.</p>
</div>
<div class="paragraph">
<p>
Functions in CIF are mathematical functions. That is, the result of a function
is the same for the same input values, and functions have no side effects.
Functions can not directly access variables outside their body. For example,
they cannot access discrete, continuous, and algebraic variables. They can also
not use variable <code>time</code>. To use the values of those variables in a function,
they have to to be passed in through parameters.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-functions-chapter-statements">Function statements</h4>
<div class="paragraph">
<p>
This lesson explains the different statements that can be used in internal
user-defined functions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#lang-tut-functions-statements-assignment">Assignment statement</a></p>
</li>
<li>
<p><a href="#lang-tut-functions-statements-if">If statement</a></p>
</li>
<li>
<p><a href="#lang-tut-functions-statements-return">Return statement</a></p>
</li>
<li>
<p><a href="#lang-tut-functions-statements-while">While statement</a></p>
</li>
<li>
<p><a href="#lang-tut-functions-statements-break">Break statement</a></p>
</li>
<li>
<p><a href="#lang-tut-functions-statements-continue">Continue statement</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="lang-tut-functions-statements-assignment">Assignment statement</h5>
<div class="paragraph">
<p>Assignments in functions are very similar to assignments to
<a href="#tut-data-chapter-discrete-variables">discrete variables</a>. For instance:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">x := x + 1;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Besides local variables, it also allowed to assign new values to the
parameters. Changes to parameters only have effect inside the function itself.</p>
</div>
<div class="paragraph">
<p>For <a href="#lang-tut-data-asgn-old-vs-new-multi">multi-assignments</a>, the
outer parentheses are not needed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Multi-assignment on an edge.
edge do (x, y) := (1, 2);

// Multi-assignment in a function.
x, y := 1, 2;</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-functions-statements-if">If statement</h5>
<div class="paragraph">
<p>It is possible to perform different calculations under different circumstances.
Consider the following function:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">func int signum(real x):
  if x &gt; 0:
    return 1;
  elif x &lt; 0:
    return -1;
  else
    return 0;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This <code>signum</code> function takes a real number <code>x</code> and returns its
<a href="http://en.wikipedia.org/wiki/Signum_function">sign</a>.
The <code>if</code> statement
is used to detect the different situations, and to return the correct result
in each of those situations.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-functions-statements-return">Return statement</h5>
<div class="paragraph">
<p>The execution of a function ends when a <code>return</code> statement is encountered.
The value following the <code>return</code> statement is the result of the entire
function. Consider again the <code>return</code> statement from the <code>mean</code> function
from the <a href="#tut-functions-chapter-internal-functions">previous lesson</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">return sum / length;</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this case, the <code>sum</code> of the input values is divided by the number of input
elements (variable <code>length</code>) to obtain the mean of the input values. The mean
of the input values is the result of the function.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-functions-statements-while">While statement</h5>
<div class="paragraph">
<p>The <code>while</code> statements allows for repeated execution of the statements in its
body, as long as the condition of the <code>while</code> loop holds. Consider again the
<code>mean</code> function from the
<a href="#tut-functions-chapter-internal-functions">previous lesson</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">func real mean(list real vs):
  int length = size(vs);
  int index = 0;
  real sum = 0;

  while index &lt; length:
    sum := sum + vs[index];
    index := index + 1;
  end
  return sum / length;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>mean</code> function processes each of its input values, using a <code>while</code>
loop. As long as the condition (<code>index &lt; length</code>) holds, the body of the
<code>while</code> is executed over an over. The body consists of two assignments. The
first assignment obtains an input value (<code>vs[index]</code>) and adds it to the
<code>sum</code>. The second statement increases the index, to proceed with the next
input value. After the two assignments have been executed, the condition of the
<code>while</code> is evaluated again. If the condition still holds, the two assignments
are executed again, etc. When the condition no longer holds, the <code>while</code>
statement is done, and execution proceeds with the next statement, the
<code>return</code> statement.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-functions-statements-break">Break statement</h5>
<div class="paragraph">
<p>A <code>break</code> statement 'jumps out' of a <code>while</code> statement, continuing with the
first statement after the <code>while</code>. Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Get the first 'n' values from 'xs' that are not 'bad'.
func list int first_n(list int xs; int n; int bad):
  int index = 0;
  int x;
  list int result = [];

  while index &lt; size(xs):
    x := xs[index];
    if x != bad:
      result := result + [x];
    end
    if size(result) = n:
      break;
    end
    index := index + 1;
  end
  return result;
end

// The value of 'y' is [1, 5, 3].
alg list int y = first_n([1, 2, 5, 3, 4, 1, 3], 3, 2);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>first_n</code> function takes a list of integer numbers <code>xs</code>, and returns a
list <code>result</code> with the first <code>n</code> numbers from <code>xs</code> that are not <code>bad</code>.
A <code>while</code> loop is used to process each of the numbers in list <code>xs</code>. The
current number is stored in variable <code>x</code>. If the current number is not the
same as <code>bad</code>, it is added to the <code>result</code>. If the <code>result</code> then contains
<code>n</code> values, the <code>break</code> statement is used to break out of the <code>while</code>
loop and continue execution at the first statement after the <code>while</code> loop,
which is the <code>return</code> statement. If less than <code>n</code> values are in the result,
<code>index</code> is incremented to ensure the next number of the list is processed in
the next iteration of the <code>while</code> loop. The <code>return</code> statement at the end
of the function is used to return the <code>result</code> list, which contains at most
<code>n</code> values.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-functions-statements-continue">Continue statement</h5>
<div class="paragraph">
<p>A <code>continue</code> statement 'jumps over' the remaining statements in the body
of a <code>while</code> statement, and continues with the next iteration of that
<code>while</code> statement. Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Get the values from 'xs' that are greater than 5.
func list int filter_gt5(list int xs):
  int index = 0;
  int x;
  list int result = [];

  while index &lt; size(xs):
    x := xs[index];
    index := index + 1;
    if x &lt;= 5:
      continue;
    end
    result := result + [x];
  end
  return result;
end

// The value of 'y' is [8, 7, 6].
alg list int y = filter_gt5([1, 8, 5, 7, 4, 6, 3]);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>filter_gt5</code> function takes a list of integer numbers, and returns a
filtered list that only contains those integer number that are greater than 5.
A <code>while</code> loop is used to process each of the numbers in list <code>xs</code>. The
current number is stored in variable <code>x</code>, and <code>index</code> is incremented to
ensure the next number of the list is processed in the next iteration of the
<code>while</code> loop. If the current number is not greater than 5, the remaining
statements in the body of the <code>while</code> are skipped, meaning <code>x</code> is not
added to the <code>result</code>. The <code>while</code> loop then continues with the next
iteration, for the next number in <code>xs</code>. If the current number (<code>x</code>) is
greater than 5, execution continues after the <code>if</code> statement, and the number
is added to the <code>result</code>. After all numbers in the list have been processed,
the filtered <code>result</code> list is returned to the caller of the function.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-functions-chapter-functions-as-values">Functions as values</h4>
<div class="paragraph">
<p>Functions can be used as <a href="#tut-values-chapter-types-values-exprs">values</a>.
By treating them as data, they can be stored in variables, and passed to other
functions. This lesson shows one example of how that can be useful.</p>
</div>
<div class="paragraph">
<p>Consider the following list of numbers:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg list real nrs = [0.5, 1.3, 0.1, 2.7, 1.4];</code></pre>
</div>
</div>
<div class="paragraph">
<p>Now assume we wanted to sort these numbers both in increasing and in decreasing
order, using a single sorting function:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg list real inc = sort(nrs, cmp_inc); // [0.1, 0.5, 1.3, 1.4, 2.7]
alg list real dec = sort(nrs, cmp_dec); // [2.7, 1.4, 1.3, 0.5, 0.1]</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>inc</code> contains the same numbers as <code>nrs</code>, but sorted in increasing
order, while <code>dec</code> contains them in decreasing order. We use the same
<code>sort</code> function in both cases, but with different comparison functions:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">func bool cmp_inc(real a, b):
  return a &lt;= b;
end

func bool cmp_dec(real a, b):
  return a &gt;= b;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Function <code>cmp_inc</code> takes two real numbers and returns <code>true</code> only if the
first number is smaller than the second one (<code>a</code> and <code>b</code> are in increasing
order). Function <code>cmp_dec</code> has the same parameters, but returns <code>true</code> only
if the first number is larger than the second one (<code>a</code> and <code>b</code> are in
decreasing order). The <code>sort</code> function is defined as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">func list real sort(list real xs; func bool (real, real) cmp):
  int i = 1, j;
  real x;

  while i &lt; size(xs):
    j := i;
    while j &gt; 0 and not cmp(xs[j-1], xs[j]):
      // swap x[j-1] and x[j]
      x := xs[j-1];
      xs[j-1] := xs[j];
      xs[j] := x;
      j := j - 1;
    end
    i := i + 1;
  end
  return xs;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>sort</code> function has two parameters. The first parameter is <code>xs</code>, which
contains the values to sort. The second parameter is <code>cmp</code>, the compare
function to use to determine whether two numbers are correctly ordered. The
<code>cmp</code> parameter has type <code>func bool (real, real)</code>, which means that a
function that has two real parameters and a boolean return value is required.
The <code>cmp_inc</code> and <code>cmp_dec</code> functions satisfy these requirements, and can
be used as second argument when the function is called to determine the values
of algebraic variables <code>inc</code> and <code>dec</code>.</p>
</div>
<div class="paragraph">
<p>The <code>sort</code> function implements a standard
<a href="http://en.wikipedia.org/wiki/Insertion_sort">insertion sort</a>
algorithm. The
<code>cmp</code> parameter is used in the <code>sort</code> function to compare two consecutive
values in <code>xs</code>, and swap them if they are not correctly ordered.</p>
</div>
<div class="paragraph">
<p>The <code>cmp</code> parameter of the <code>sort</code> function has a function type, allowing
compare functions to be passed to the <code>sort</code> function, as data. This allows
the <code>sort</code> function to sort lists of numbers in different orders, depending
on the compare function that is provided.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-scalable-solutions-and-reuse-22">Scalable solutions and reuse (2/2)</h3>
<div class="sect3">
<h4 id="tut-reuse2-chapter-aut-def-inst">Automaton definition/instantiation</h4>
<div class="paragraph">
<p>






Parts of a system that are nearly identical, are often modeled as nearly
identical automata. Having to specify them multiple times can be burdensome.
It can also hinder scalability, as changes to one of them usually need to be
applied to the others as well. Consider again the producer/consumer
example from the <a href="#tut-channels-chapter-intro">lesson that introduced channels</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int provide;

automaton producer:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr do nr := nr + 1;
end

automaton consumer1:
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end

automaton consumer2:
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The producer provides products either to the first consumer or to the second
consumer. The consumers are modeled using identical automata. Only the names of
the <code>consumer1</code> and <code>consumer2</code> automata differ. Ideally, we would have a
sort of consumer template, and use that template twice, once for each of the
actual consumers. This can be achieved in CIF using an <em>automaton definition</em>
(the template) and two <em>automaton instantiations</em> (the uses of the template):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int provide;

automaton producer:
  disc int nr = 0;

  location:
    initial;
    edge provide!nr do nr := nr + 1;
end

automaton def Consumer():
  disc int nr = -1;

  location:
    initial;
    edge provide? do nr := ?;
end

consumer1: Consumer();
consumer2: Consumer();</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>Consumer</code> automaton definition is identical to the original consumers,
except that it is an automaton definition rather than an automaton. An
automaton definition can be identified by the <code>def</code> keyword between the
<code>automaton</code> keyword and the name of the automaton definition, as well as by
the parentheses after its name. As a convention, names of automaton definitions
start with an upper case letter (<code>Consumer</code> rather than <code>consumer</code>).</p>
</div>
<div class="paragraph">
<p>An automaton definition by itself is not an automaton. The instantiations of
the automaton definition (<code>consumer1</code> and <code>consumer2</code>) however, <em>are</em>
automata. Before the colon (<code>:</code>), the name of the instantiation is given.
This name is also the name of the actual automaton. After the colon, the name
of the automaton definition that is instantiated is given.</p>
</div>
<div class="paragraph">
<p>Using an automaton definition, the above example models the behavior of a
consumer only once. Adding a third consumer is as easy as adding another
automaton instantiation, which takes only one line of code
(<code>consumer3: Consumer();</code>). Changing the behavior of all consumers only
requires changes to the common automaton definition. Automaton
definition/instantiation allows for scalability and reuse, and also improves
maintainability.</p>
</div>
<div class="paragraph">
<p>Automaton definition/instantiation can be eliminated, by replacing all
automaton instantiations by the automaton definitions that they instantiate,
and changing the automaton definition header (<code>automaton def Consumer():</code>) by
an automaton header (<code>automaton consumer1:</code>). If we do that for the example
above, we obtain the original specification from the beginning of this lesson.
The two specifications are functionally equivalent. Automaton instantiation
<code>consumer1</code> is also often referred to as automaton <code>consumer1</code>, when there
is no confusion.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-aut-def-params">Parametrized automaton definitions</h4>
<div class="paragraph">
<p>


In the <a href="#tut-reuse2-chapter-aut-def-inst">previous lesson</a>, automaton
definition/instantiation was used to obtain two identical automata, while only
having to specify their behavior once. What we have seen so far, is enough for
exactly identical automata, but not for nearly identical automata. Consider the
following two nearly identical consumers:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton consumer1:
  disc list int buffer = [];

  location:
    initial;
    edge provide? when size(buffer) &lt; 2 do buffer := buffer + [?];
end

automaton consumer2:
  disc list int buffer = [];

  location:
    initial;
    edge provide? when size(buffer) &lt; 3 do buffer := buffer + [?];
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The consumers can accept products that the producer provides (channel
<code>provide</code>). They store the identification numbers of those products in a
<code>buffer</code>. The two consumers are identical except for the number of products
that they can accept: the first consumer can accept two products, the second
producer can accept three products. We can still use automaton definition and
instantiation to model the consumer only once, but we need to parametrize the
automaton definition:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton def Consumer(alg int capacity):
  disc list int buffer = [];

  location:
    initial;
    edge provide? when size(buffer) &lt; capacity do buffer := buffer + [?];
end

consumer1: Consumer(2);
consumer2: Consumer(3);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>Consumer</code> automaton definition now has a parameter named <code>capacity</code>
that indicates how many identification numbers can be stored in its <code>buffer</code>.
The automaton instantiations <code>consumer1</code> and <code>consumer2</code> provide an
argument (<code>2</code> and <code>3</code> respectively) to match the parameter of <code>Consumer</code>.
That is, the instantiations indicate their <code>capacity</code>. Using parameters, the
<code>Consumer</code> automaton definition models the behavior of both automata
<code>consumer1</code> and <code>consumer2</code>, even though they have different capacities.</p>
</div>
<div class="paragraph">
<p>The details of the different kind of parameters of automaton definitions are
explained in the <a href="#tut-reuse2-chapter-aut-def-param-kinds">next lesson</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-aut-def-param-kinds">Automaton definition parameters</h4>
<div class="paragraph">
<p>

In the <a href="#tut-reuse2-chapter-aut-def-params">previous lesson</a>, an automaton
definition with parameter was used. The parameter was an algebraic parameter,
which is only one of the different kinds of automaton definition parameters.
This lesson explains each of them:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#lang-tut-reuse2-aut-def-param-kinds-alg">Algebraic parameters</a></p>
</li>
<li>
<p><a href="#lang-tut-reuse2-aut-def-param-kinds-event">Event parameters</a></p>
</li>
<li>
<p><a href="#lang-tut-reuse2-aut-def-param-kinds-loc">Location parameters</a></p>
</li>
<li>
<p><a href="#lang-tut-reuse2-aut-def-param-kinds-aut">Automaton parameters</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>This lesson also explains how to use
<a href="#lang-tut-reuse2-aut-def-param-kinds-multiple">multiple parameters</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="lang-tut-reuse2-aut-def-param-kinds-alg">Algebraic parameters</h5>
<div class="paragraph">
<p>An algebraic parameter is similar to an
<a href="#tut-reuse1-chapter-algebraic-variables">algebraic variable</a>. Arbitrary
values or expressions of matching type can be provided as arguments in
automaton instantiations. For instance, consider the following partial CIF
specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int accept, provide;

automaton def Buffer(alg int capacity):
  disc list int buf = [];

  location:
    initial;
    edge accept?        when size(buf) &lt; capacity do buf := buf + [?];
    edge provide!buf[0] when size(buf) &gt; 0        do buf := buf[1:];
end

buffer1: Buffer(5);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton definition <code>Buffer</code> has an algebraic parameter that indicates the
<code>capacity</code> of the buffer. The buffer can <code>accept</code> something when it has not
yet reached its capacity. It can <code>provide</code> something when the buffer is not
empty. Automaton instantiation <code>buffer1</code> has value <code>5</code> as its parameter.
Value <code>5</code> is an integer number, which matches the integer type (<code>int</code>) of
the <code>capacity</code> parameter.</p>
</div>
<div class="paragraph">
<p>Algebraic parameters can be used inside an automaton definition, wherever a
value is expected, e.g. in guards, updates, initial values of discrete
variables, and invariants. The expression that is provided by the instantiation
is essentially filled in wherever the parameter is used. The above is
equivalent to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int accept, provide;

automaton buffer1:
  disc list int buf = [];

  location:
    initial;
    edge accept?        when size(buf) &lt; 5 do buf := buf + [?];
    edge provide!buf[0] when size(buf) &gt; 0 do buf := buf[1:];
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-reuse2-aut-def-param-kinds-event">Event parameters</h5>
<div class="paragraph">
<p>Event parameters allow different instantiations to synchronize with different
events or to communicate over different
<a href="#tut-channels-chapter-intro">channels</a>. For instance, consider the
following partial CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int generate, pass_along, exit;

automaton def Buffer(event int accept, provide):
  disc int buffer;

  location accepting:
    initial;
    edge accept? do buffer := ? goto providing;

  location providing:
    edge provide!buffer goto accepting;
end

buffer1: Buffer(generate, pass_along);
buffer2: Buffer(pass_along, exit);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton definition <code>Buffer</code> is parametrized with two channels, one to
<code>accept</code> a product into the one place buffer, and one to <code>provide</code> it to
some other part of the system. The first buffer (<code>buffer1</code>) accepts products
via the <code>generate</code> channel, and provides products via the <code>pass_along</code>
channel. The second buffer (<code>buffer2</code>) accepts products via the
<code>pass_along</code> channel, and provides products via the <code>exit</code> channel. The
first buffer uses the <code>pass_along</code> channel as its <code>provide</code> channel
parameter, and the second buffer uses that same <code>pass_along</code> channel as its
<code>accept</code> channel parameter. The first buffer thus provides its items to the
second buffer.</p>
</div>
<div class="paragraph">
<p>Event and channel parameters can be used inside an automaton definition,
wherever an event or channel is expected, e.g. on edges and in
<a href="#tut-basics-chapter-alphabet">alphabets</a> if
<a href="#lang-tut-basics-alphabet-explicit">explicitly specified</a>. The event or
channel that is provided by the instantiation is essentially filled in wherever
the parameter is used. The above is equivalent to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event int generate, pass_along, exit;

automaton buffer1:
  disc int buffer;

  location accepting:
    initial;
    edge generate? do buffer := ? goto providing;

  location providing:
    edge pass_along!buffer goto accepting;
end

automaton buffer2:
  disc int buffer;

  location accepting:
    initial;
    edge pass_along? do buffer := ? goto providing;

  location providing:
    edge exit!buffer goto accepting;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>







</p>
</div>
<div class="sect5">
<h6 id="lang-tut-reuse2-aut-def-param-kinds-event-restrictions">Channel parameter usage restrictions</h6>
<div class="paragraph">
<p>If an event parameter is actually a channel (it has a data type), it may also
be called a <em>channel parameter</em>. By default, a channel parameter can be used to
send, receive, or synchronize. However, it is also possible to restrict the
allowed usages. By putting certain event usage restriction flags after the name
of the channel parameter, only those usages are allowed. The available flags
are <code>!</code> to allow sending, <code>?</code> to allow receiving, and <code>~</code> to allow
synchronizing. Duplicate flags are not allowed, the <code>!</code> should be before the
<code>?</code> flag, and the <code>!</code> and <code>?</code> flags should be before the <code>~</code> flag.</p>
</div>
<div class="paragraph">
<p>By restricting the usages, you can immediately see how a channel parameter is
used within the automaton definition, as only the usages indicates by the
parameter are allowed. It serves as sort of documentation of the intention of
the channel parameter. This is much simpler than finding the actual usages of
the parameter in the automaton. However, note that the parameter indicates the
allowed usages, and doesn&#8217;t guarantee that the event/parameter is actually used
at all.</p>
</div>
<div class="paragraph">
<p>Another benefit of restricting the usages, is that it makes it possible to spot
mistakes. You might for instance use a channel parameter on an edge (e.g.
<code>edge e</code>), but forget to include the send part (e.g. <code>edge e!1</code>). If the
parameter only allows sending, the accidental synchronization (<code>edge e</code>) is
reported as an invalid use. Without the usage checking, you might not encounter
the problem until for instance simulation, where it is much more difficult to
find the cause.</p>
</div>
<div class="paragraph">
<p>For the example above, we have the following <em>header</em> of the <code>Buffer</code>
definition:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton def Buffer(event int accept, provide):</code></pre>
</div>
</div>
<div class="paragraph">
<p>We can change this as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton def Buffer(event int accept?, provide!):</code></pre>
</div>
</div>
<div class="paragraph">
<p>This makes it clearer that the <code>accept</code> channel is used to receive a
product into the buffer, and the <code>provide</code> channel is used send a product
from the buffer.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-reuse2-aut-def-param-kinds-loc">Location parameters</h5>
<div class="paragraph">
<p>An earlier lesson explained how a
<a href="#tut-data-chapter-locs-as-var">location can be used as a variable</a>. Using
location parameters, automaton definitions can be supplied with different
locations. For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton def Machine(location other_processing):
  location heat_up:
    initial;
    edge when not other_processing goto processing;

  location processing:
    edge tau goto cool_down;

  location cool_down:
    edge tau goto heat_up;
end

machine1: Machine(machine2.processing);
machine2: Machine(machine1.processing);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton definition <code>Machine</code> represents a machine that can heat up, process
something, cool down, and repeat that forever. The system consists of two of
those machines. The machines can not start processing if the other machine is
already processing. That is, the machines perform
<a href="http://en.wikipedia.org/wiki/Mutual_exclusion">mutually exclusive</a>
processing. If the first machine is in its <code>processing</code> location, the other
can&#8217;t also be processing (in its own <code>processing</code> location). To prevent a
machine from starting to process if the other machine is already processing,
each machine needs to know whether the other is already processing. Therefore,
automaton definition <code>Machine</code> is parametrized with a location parameter
<code>other_processing</code>, that indicates whether the other machine is currently
processing (in its <code>processing</code> location). This parameter is used as a guard
that determines whether a transition from location <code>heat_up</code> to location
<code>processing</code> is allowed. Automaton instantiation <code>machine1</code> provides the
first machine with the <code>processing</code> location of the second machine, by
using <code>machine2.processing</code> as its instantiation argument.</p>
</div>
<div class="paragraph">
<p>Location parameters can be used inside an automaton definition, wherever a
<a href="#tut-values-chapter-booleans">boolean</a> value is expected, e.g. in guards.
The location that is provided by the instantiation is essentially filled in
wherever the parameter is used. The above is equivalent to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton machine1:
  location heat_up:
    initial;
    edge when not machine2.processing goto processing;

  location processing:
    edge tau goto cool_down;

  location cool_down:
    edge tau goto heat_up;
end

automaton machine2:
  location heat_up:
    initial;
    edge when not machine1.processing goto processing;

  location processing:
    edge tau goto cool_down;

  location cool_down:
    edge tau goto heat_up;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-reuse2-aut-def-param-kinds-aut">Automaton parameters</h5>
<div class="paragraph">
<p>When multiple declarations (variables, locations, etc) from one automaton are
to be supplied as parameters to another automaton, it is also possible to
supply the entire automaton as a parameter, but only if the provided automaton
is an instantiation of an automaton definition. Consider for instance the
following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton def Sensor():
  event go_on, go_off;

  location off:
    initial;
    edge go_on goto on;

  location on:
    edge go_off goto off;
end

sensor1: Sensor();
sensor2: Sensor();

automaton def Actuator(Sensor sensor):
  event turn_on, turn_off;

  location off:
    initial;
    edge turn_on  when sensor.on  goto on;

  location on:
    edge turn_off when sensor.off goto off;
end

actuator1: Actuator(sensor1);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton definition <code>Sensor</code> models a sensor that can go on an off. Both
<code>sensor1</code> and <code>sensor2</code> are actual sensors. Automaton definition
<code>Actuator</code> models an actuator that can be turned on if a sensor is on, and be
turned off if that same sensor is off. The <code>actuator1</code> automaton is provided
<code>sensor1</code> as sensor. If <code>sensor1</code> goes on, <code>actuator1</code> is turned on, and
if <code>sensor1</code> goes off, <code>actuator1</code> is turned off. <code>sensor2</code> going on or
off has no effect on <code>actuator1</code>.</p>
</div>
<div class="paragraph">
<p>Automaton parameters can be used inside an automaton definition, to refer to
declarations inside the automaton supplied for the automaton parameter. The
automaton that is provided by the instantiation is essentially filled in
wherever the parameter is used. The above is equivalent to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton sensor1:
  event go_on, go_off;

  location off:
    initial;
    edge go_on goto on:

  location on:
    edge go_off goto off:
end

automaton sensor2:
  event go_on, go_off;

  location off:
    initial;
    edge go_on goto on:

  location on:
    edge go_off goto off:
end

automaton actuator1:
  event turn_on, turn_off;

  location off:
    initial;
    edge turn_on  when sensor1.on  goto on;

  location on:
    edge turn_off when sensor1.off goto off;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-reuse2-aut-def-param-kinds-multiple">Multiple parameters</h5>
<div class="paragraph">
<p>It is possible to use multiple parameters of the same kind, as well as
different kinds of parameters:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton def X(event a, b; alg real c; event d):
  ...
end

event z;

x: X(z, z, 3 * 5, z);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton definition <code>X</code> has four parameters: <code>a</code>, <code>b</code>, <code>c</code>, and <code>d</code>.
Since <code>a</code> and <code>b</code> are both event parameters, a comma (<code>,</code>) is used to
make sure the <code>event</code> keyword does not need to be repeated for parameter
<code>b</code>. Algebraic parameter <code>d</code> is of a different kind, and is therefore
separated using a semicolon (<code>;</code>).</p>
</div>
<div class="paragraph">
<p>Automaton instantiation <code>x</code> instantiates <code>X</code> with the event <code>z</code> (for the
first, second, and fourth parameters), and value 15.0 (<code>3 * 5</code>, for the third
parameter).</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-groups">Groups</h4>
<div class="paragraph">
<p>

For large CIF specifications with many automata, it can be beneficial to add
more structure to the specification. For this purpose, CIF has <em>groups</em>. Groups
are named collections of automata and other declarations. For instance,
consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group factory:
  group hall1:
    automaton machine1:
      ...
    end

    automaton machine2:
      ...
    end
  end

  group hall2:
    automaton machine1:
      ...
    end

    automaton machine2:
      ...
    end
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specifications features four automata that model the behavior of machines.
The details of the actual automata are omitted, as they are irrelevant for this
lesson. All four machines are in the same factory, but they are divided into
two halls. This physical subdivision is expressed in the CIF specification
using groups named <code>factory</code>, <code>hall1</code>, and <code>hall2</code>. While in this case
the subdivision into a hierarchical specification structure is based on the
physical subdivision of the actual system, the modeler is free to base the
specification structure on other criteria.</p>
</div>
<div class="paragraph">
<p>Consider also the following partial CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group configuration:
  const int  MAX_PRODUCTS        = 1500;
  const real MAX_PRODUCTION_TIME = 3.7;
  const real ARRIVAL_RATE        = 28.6;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>configuration</code> group is used to group together several configuration
values, modeled by constants. By grouping these constants together, it is more
clear that they together are the configuration settings of the system, and that
they belong together.</p>
</div>
<div class="paragraph">
<p>Finally, consider the following CIF specification, based on the
<a href="http://en.wikipedia.org/wiki/Nonlinear_system">non-linear system</a>
from the lesson on <a href="#tut-time-chapter-equations">equations</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group tank:
  cont V = 5;
  alg real Qi;
  alg real Qo;

  equation V' = Qi - Qo;
  equation Qi = 1;
  equation Qo = sqrt(V);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>By grouping the declarations and their equations together, it is becomes clear
that together they model a <code>tank</code>. This is especially useful if other parts
of the specification model something different.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-group-defs">Group definitions</h4>
<div class="paragraph">
<p>


Similar to how <a href="#tut-reuse2-chapter-aut-def-inst">automaton definitions</a> can
be used for reuse of automata, group definitions can be used for reuse of
groups:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton def Machine():
  location:
    initial;
  ...
end

group def Hall():
  machine1: Machine();
  machine2: Machine();
end

group def Factory():
  hall1: Hall();
  hall2: Hall();
end

factory1: Factory();</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton definition <code>Machine</code> models a machine, but most of the details are
omitted here, as they are not relevant for this lesson. Group definition
<code>Hall</code> models that each hall has two machines. Similarly, group definition
<code>Factory</code> models that each factory has two halls.</p>
</div>
<div class="paragraph">
<p>

Automata and groups are both <em>components</em> in CIF. Automaton definitions and
group definitions can together be called <em>component definitions</em>. If we
eliminate all component definitions and their instantiations, by replacing
instantiations by their definitions, we get the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group factory1:
  group hall1:
    automaton machine1:
      location:
        initial;
      ...
    end

    automaton machine2:
      location:
        initial;
      ...
    end
  end

  group hall2:
    automaton machine1:
      location:
        initial;
      ...
    end

    automaton machine2:
      location:
        initial;
      ...
    end
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Group definitions may be <a href="#tut-reuse2-chapter-aut-def-params">parametrized</a>
using the same <a href="#tut-reuse2-chapter-aut-def-param-kinds">kinds of parameters</a>
as automaton definitions.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-imports">Imports</h4>
<div class="paragraph">
<p>
For large systems, having to model the entire system in a single CIF file can
lead to long CIF specifications. Being able to split that single CIF file into
multiple CIF files can help. Consider the following two CIF specifications in
CIF files <code>producer.cif</code> and <code>consumer.cif</code> respectively:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// producer.cif

event provide;

automaton producer:
  location:
    initial;
    edge provide;
end</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// consumer.cif

import &quot;producer.cif&quot;;

automaton consumer:
  location:
    initial;
    edge provide;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The two CIF specifications together form a simplified producer/consumer system.
The <code>producer.cif</code> file declares the <code>provide</code> event and the <code>producer</code>
automaton. The <code>producer</code> can <code>provide</code> a product.</p>
</div>
<div class="paragraph">
<p>The <code>consumer.cif</code> file declares the <code>consumer</code> automaton, that can accept
products provided by a producer. The <code>provide</code> event is not declared in that
CIF specification. However, the <code>producer.cif</code> file is imported, which does
declare that event. By importing another CIF specification, all declarations
from that imported CIF specification (<code>producer.cif</code> in the example) become
available in the importing CIF specification, i.e. in the specification that
does the import (<code>consumer.cif</code> in the example).</p>
</div>
<div class="paragraph">
<p>The result of the import in <code>consumer.cif</code> is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event provide;

automaton producer:
  location:
    initial;
    edge provide;
end

automaton consumer:
  location:
    initial;
    edge provide;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>You can think of an import as being replaced by the content of the imported
file. The <code>producer.cif</code> file contains only its own content, while the
<code>consumer.cif</code> file contains the contents of both files, due to the use of
the import.</p>
</div>
<div class="paragraph">
<p>If one CIF specification is merged into another CIF specification, the names of
the declarations in both CIF specifications must be different. It is not
allowed to have declarations with the same name in multiple CIF specifications.
For instance, in the example above, if the <code>provide</code> event were declared in
both CIF specifications, the imports would be invalid. Exceptions to this rule
are discussed in one of the next lessons, which explains the relation between
<a href="#tut-reuse2-chapter-imports-groups">imports and groups</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-imports-libraries">Imports and libraries</h4>
<div class="paragraph">
<p>
Using <a href="#tut-reuse2-chapter-imports">imports</a>, it is possible to make
libraries that can be used by multiple CIF specifications. For instance,
consider the following CIF specification in file <code>math.cif</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// math.cif

func int inc(int x):
  return x + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This CIF specification declares a single function <code>inc</code> that takes an integer
number and returns that number incremented by one. Now also consider the
following CIF specification in file <code>counter.cif</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// counter.cif

import &quot;math.cif&quot;;

automaton counter:
  disc int count = 0;

  location:
    initial;
    edge tau do count := inc(count);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>By importing the <code>math.cif</code> file, the <code>counter</code> automaton can use the
<code>inc</code> function. Other CIF files could similarly import the <code>math.cif</code> file,
essentially turning <code>math.cif</code> into a library.</p>
</div>
<div class="paragraph">
<p>It is possible to make a function library, consisting of commonly used
functions, a constant library, with commonly used constants, or an automaton
definition library, with automaton definitions. As libraries are just CIF
files, they can contain anything as long as they are valid CIF files.
Essentially, every CIF file that is imported in more than one other CIF file
can be considered a library.</p>
</div>
<div class="paragraph">
<p>
The import as used above, only works if both CIF files are in the same
directory. Library files however, are often placed in a different directory.
Consider the same two CIF files, but organized into directories (or folders)
as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/reuse2/library_dir_tree.png" alt="library dir tree">
</div>
</div>
<div class="paragraph">
<p>Directory <code>system</code> contains a sub-directories named <code>libraries</code>, which
contains the <code>math.cif</code> library. The <code>system</code> directory also contains the
<code>counter.cif</code> file. The import in the <code>counter.cif</code> file needs to be
adapted to refer to the <code>math.cif</code> file in the <code>libraries</code> directory:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// counter.cif

import &quot;libraries/math.cif&quot;;

automaton counter:
  disc int count = 0;

  location:
    initial;
    edge tau do count := inc(count);
end</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-imports-groups">Imports and groups</h4>
<div class="paragraph">
<p>
Large systems can be hierarchically modeled using
<a href="#tut-reuse2-chapter-groups">groups</a>. When using imports, two specifications
may not have declarations with the same name. Groups however, are the exception
to this rule. Consider a factory with two machines, each consisting of two
parts. We can model this using five files, one for each of the parts of the
machines, and one for the factory as a whole. The following CIF specifications
show the contents of the five CIF files, where the comment at the first line
indicates which file it is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// p1.cif

group machine1:
  automaton part1:
    location idle:
      initial;
      edge tau goto running;

    location running:
      edge tau goto idle;
  end
end</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// p2.cif

group machine1:
  automaton part2:
    location idle:
      initial;
      edge tau goto running;

    location running:
      edge tau goto idle;
  end
end</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// p3.cif

group machine2:
  automaton part1:
    location idle:
      initial;
      edge tau goto running;

    location running:
      edge tau goto idle;
  end
end</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// p4.cif

group machine2:
  automaton part2:
    location idle:
      initial;
      edge tau goto running;

    location running:
      edge tau goto idle;
  end
end</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// factory.cif

import &quot;p1.cif&quot;;
import &quot;p2.cif&quot;;
import &quot;p3.cif&quot;;
import &quot;p4.cif&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The four CIF specifications for the machine parts differ only in their group
and automaton names. Their implementations are kept identical for simplicity.
The <code>factory.cif</code> file imports all four part specifications, which together
form the full factory. The effect of the imports in <code>factory.cif</code> is the
following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group machine1:
  automaton part1:
    location idle:
      initial;
      edge tau goto running;

    location running:
      edge tau goto idle;
  end

  automaton part2:
    location idle:
      initial;
      edge tau goto running;

    location running:
      edge tau goto idle;
  end
end

group machine2:
  automaton part1:
    location idle:
      initial;
      edge tau goto running;

    location running:
      edge tau goto idle;
  end

  automaton part2:
    location idle:
      initial;
      edge tau goto running;

    location running:
      edge tau goto idle;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>For groups with the same name, the contents of the groups is merged together.
That is, automaton <code>part1</code> in the <code>machine1</code> group from one CIF file, and
the automaton <code>part2</code> in that same <code>machine1</code> group from another CIF file,
end up in a single <code>machine1</code> group after eliminating the imports.</p>
</div>
<div class="paragraph">
<p>In general, contents of groups with the same name are merged into a single
group. This works also for groups in groups, groups in groups in groups, etc.
If two CIF files that are imported both contain a group <code>a</code> and in both CIF
files those groups contain a group <code>b</code>, then the contents of both <code>a</code>
groups are merged, and also the contents of both <code>b</code> groups are merged. It is
not allowed for different CIF files to have declarations with the same name in
the same group. It is allowed to have declarations with the same name in
different groups. The file itself (the top level) can be considered a group as
well.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-namespaces">Namespaces</h4>
<div class="paragraph">
<p>

When using <a href="#tut-reuse2-chapter-imports-groups">imports and groups</a> to model
large hierarchical systems, it is a common pattern to have groups around the
entire specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group factory:
  group machine1:
    group part1:
      automaton sensor1:
        ...
      end

      automaton actuator1:
        ...
      end
    end
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The groups around the entire specification lead to additional
<a href="http://en.wikipedia.org/wiki/Indentation_%28typesetting%29">indentation</a>.
As this is a common pattern, the CIF language provides <em>namespaces</em> to reduce the
impact of large numbers of top level groups:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">namespace factory.machine1.part1;

automaton sensor1:
  ...
end

automaton actuator1:
  ...
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>factory.machine1.part1</code> namespace has exactly the same effect as the
original three groups. Both specifications can thus be considered identical.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reuse2-chapter-input-variables">Input variables</h4>
<div class="paragraph">
<p>

<em>Input variables</em> can be used to model that some data exists, without
specifying the value or how or when the value changes. Input variables are used
in cases where the CIF model is to be connected something else that provides
the values.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tut-hardware-example">Hardware example</h5>
<div class="paragraph">
<p>The CIF model may for instance be a controller that is to be connected to a
piece of physical hardware. The input variables then model sensors, for which
the behavior is not modeled in the CIF model. As an example, consider the
following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">input bool sensor;

automaton controller:
  cont t der 1;
  alg bool actuator = on;

  location off:
    initial;
    edge when sensor do t := 0 goto waiting;

  location waiting:
    edge when not sensor goto off;
    edge when t &gt; 1.5 goto on;

  location on:
    edge when not sensor goto off;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Input variable <code>sensor</code> models a digital sensor. When the sensor is on, the
variable has value <code>true</code> and when the sensor is off, the variable has value
<code>false</code>. When the sensor is on and when it is off is not known, and thus not
modeled in the CIF specification.</p>
</div>
<div class="paragraph">
<p>The <code>controller</code> waits (in location <code>off</code>) for the sensor to go on, and
then resets continuous variable <code>t</code> to start measuring <code>1.5</code> time units
(in location <code>waiting</code>). If that much time has passed, it goes to location
<code>on</code>. If the sensor goes off then, or while it is waiting, it goes back to
location <code>off</code>. Thus, the <code>controller</code> is only <code>on</code> if the sensor goes
on, <code>1.5</code> time units have passed, and the sensor remains on.</p>
</div>
<div class="paragraph">
<p>The <code>actuator</code> algebraic variable models that an actuator is only on if the
<code>controller</code> is in its on location. The <code>actuator</code> is then on if the sensor
is one, and <code>1.5</code> time units have passed. The actuator is always turned off
when the sensor is off.</p>
</div>
<div class="paragraph">
<p>Without a physical hardware system, the CIF specification is incomplete, as the
value of the sensor is not known. The input variable acts as a placeholder for
the actual sensor. If the CIF specification were to be coupled to a physical
hardware system with a sensor and an actuator, the CIF model would then control
the actuator based on the sensor values.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-co-simulation-example">Co-simulation example</h5>
<div class="paragraph">
<p>A CIF specification could model a part of a system, while another part of that
same system is modeled in another system or language, such as
<a href="http://www.mathworks.nl/products/simulink/">Simulink</a>. Consider for instance
a tank filled with water. Water flows out of the tank constantly. By opening a
value, water also flows in to the tank. Consider the following CIF
specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">input real level;

automaton valve:
  disc bool open = true;

  location:
    initial;
    edge when     open and level &gt;= 10 do open := false;
    edge when not open and level &lt;=  2 do open := true;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The water <code>level</code> is modeled as an input variable, meaning it is obtained
from the Simulink model. The CIF specification models the valve, and the
controller that opens and closes the value, based on the water level. It keeps
the level between <code>2</code> and <code>10</code>.</p>
</div>
<div class="paragraph">
<p>The CIF model obtains the water level from Simulink by means of input variable
<code>level</code>. It also provides the <code>open</code> variable of the <code>valve</code> automaton to
Simulink. This variable can be used in Simulink to model how the water level
changes over time.</p>
</div>
<div class="paragraph">
<p>Without the Simulink model, the CIF specification is incomplete, as the water
level is not known. The input variable acts as a placeholder for the actual
water level. If the CIF specification were to be coupled to a Simulink model
that models the water level, the CIF specification would control the valve
based on the water level.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-cif-models-example">CIF models example</h5>
<div class="paragraph">
<p>Input variables can also be used to couple CIF models. Consider again the above
water level controller example. It models the valve and controls the valve, but
does not model the water level. The following CIF specification could be used
to model the water level:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont level der if valve.open: 1 else -1 end;

group valve:
  input bool open;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Continuous variable <code>level</code> models the water level. The water level increases
(derivative <code>1</code>) if the valve is open, and decreases (derivative <code>-1</code>)
otherwise. The <code>open</code> variable from the <code>valve</code> is used, but this variable
is an input variable, and the value is not known in this specification. Input
variable <code>open</code> acts as a placeholder for a value, and group <code>valve</code> acts
as a placeholder for automaton <code>valve</code>.</p>
</div>
<div class="paragraph">
<p>The two CIF specifications both model a part of the system. One specification
models the water level, and has a placeholder for the variable that indicates
whether the valve is open. The other specification models the valve and
controls it, but has a placeholder for the water level. If we couple the two
CIF specifications, they provide each other with actual variables for each
others input variables.</p>
</div>
<div class="paragraph">
<p>The two specifications can be coupled or <em>merged</em> together:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont level = 0.0 der if valve.open: 1 else -1 end;

automaton valve:
  disc bool open = true;

  location:
    initial;
    edge when     open and level &gt;= 10 do open := false;
    edge when not open and level &lt;=  2 do open := true;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Using input variables to couple CIF specifications is somewhat similar to using
<a href="#tut-reuse2-chapter-imports">imports</a> to split a CIF specification over
multiple files. There are however important differences.</p>
</div>
<div class="paragraph">
<p>The first difference is that when using imports, one CIF specification is
coupled to another CIF specification. The coupling is hard-coded in the CIF
specification, and can not be changed without changing the import. When using
input variables and merging, it is possible to couple a CIF specification
to a second CIF specification, and later couple it with a third, different
specification instead. The decision about which models to merge can thus be
postponed, and does not require changes to any of the CIF specifications.</p>
</div>
<div class="paragraph">
<p>Another difference is that with imports it is not allowed to have declarations
with the same name in different CIF specifications (except for groups), while
with the merger this is allowed in many situations. See the documentation of
the <a href="#tools-chapter-mergecif">CIF merger</a> tool for further details on what can
be merged using that tool.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-stochastics">Stochastics</h3>
<div class="sect3">
<h4 id="tut-stochastics-chapter-intro">Stochastics</h4>
<div class="paragraph">
<p>
For many things in the world, the behavior is not the same every time. An
example is a
<a href="http://en.wikipedia.org/wiki/Coin_toss">coin toss</a>,
where
the result can be either heads or tails. Tossing a coin exhibits
<a href="http://en.wikipedia.org/wiki/Randomness">randomness</a>.
It is possible to
model the different variants in a CIF model without specifying the likelihood
of each of the outcomes. This approach was used in the lesson on
<a href="#tut-basics-chapter-non-determinism">non-determinism</a>.</p>
</div>
<div class="paragraph">
<p>
It is however also possible to explicitly specify the likelihood of each of the
outcomes in the CIF model, using a <em>stochastic distribution</em> (also called
<a href="http://en.wikipedia.org/wiki/Probability_distribution">probability distribution</a>).
A stochastic
distribution describes how likely the different outcomes are. There are many
different stochastic distributions. The
<a href="http://en.wikipedia.org/wiki/Bernoulli_distribution">Bernoulli distribution</a>
for instance, can be
used to model things with two potential outcomes, such as a coin toss.</p>
</div>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton coin_toss:
  disc dist bool d = bernoulli(0.5);
  disc bool outcome;

  location toss:
    initial;
    edge do (outcome, d) := sample d goto result;

  location result:
    edge when     outcome goto heads;
    edge when not outcome goto tails;

  location heads:
    edge tau goto toss;

  location tails:
    edge tau goto toss;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>d</code> holds a stochastic distribution that produces
<a href="#tut-values-chapter-booleans">boolean values</a> (<code>true</code> or <code>false</code>), as
indicated by its <code>dist bool</code>
<a href="#tut-values-chapter-types-values-exprs">type</a>. In this case it holds a
Bernoulli distribution, with a probability of <code>0.5</code> (or chance of 50%) for
<code>true</code>, and thus also the same probability/chance for <code>false</code> (the only
other possible outcome).</p>
</div>
<div class="paragraph">
<p>The <code>bernoulli</code> function is used to create a Bernoulli distribution with the
proper parameter (probability of <code>0.5</code> for <code>true</code>). Different distributions
have different parameters. See the language reference documentation for further
details. Distribution functions, such as the <code>bernoulli</code> function can be used
to create distributions with specific parameters, and may only be used to
initialize discrete variables.</p>
</div>
<div class="paragraph">
<p>
Initially, the automaton is in its <code>toss</code> location, where the coin can be
tossed. The edge uses the <code>sample</code> operator to get a <em>sample</em> from the
bernoulli distribution. Each time the distribution is sampled, the <code>outcome</code>
is either a <code>true</code> value or a <code>false</code> value. As we used a probability of
<code>0.5</code> for both outcomes, half of the times <code>true</code> will be the outcome,
and the other half of the times <code>false</code> will be the outcome, if we were to
sample infinitely many times.</p>
</div>
<div class="paragraph">
<p>Sampling does not only result in the <code>outcome</code>, but also the distribution
itself. This is further explained in one of the next lessons, which explains
<a href="#tut-stochastics-chapter-pseudo-randomness">pseudo-randomness</a>.</p>
</div>
<div class="paragraph">
<p>The result of sampling is stored in the <code>outcome</code> variable. In the <code>result</code>
location, the sampling result is used to make a decision to go to either the
<code>heads</code> location (<code>true</code> outcome) or the <code>tails</code> location (<code>false</code>
outcome). From there, it is possible to go back to the <code>toss</code> location, to
proceed with the next coin toss.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-stochastics-chapter-discrete-continuous-constant">Discrete, continuous, and constant distributions</h4>
<div class="paragraph">
<p>CIF features over a dozen different stochastic distributions. These
distributions can be categorized into three categories: discrete, continuous,
and constant distributions. Discrete distributions can result in only a limited
number of possible values. Examples include tossing a coin (heads and tails)
and throwing a dice (six possible outcomes). Continuous distributions can
result in all values from a certain range. Examples include the time it takes
for a machine to produce a single product (positive amount of time), and the
purity of produced medicine (0% to 100%). Constant distributions are discrete
distributions that always result in the same sampled value. They are useful
during the development of a model, or for debugging. The remainder of this
lesson further explains these three categories, and illustrates them using some
examples.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tut-discrete-distributions">Discrete distributions</h5>
<div class="paragraph">
<p>Discrete distributions can result in only a limited number of possible values.
The lesson that <a href="#tut-stochastics-chapter-intro">introduced stochastics</a>
used the discrete
<a href="http://en.wikipedia.org/wiki/Bernoulli_distribution">Bernoulli distribution</a>
to model
<a href="http://en.wikipedia.org/wiki/Coin_toss">tossing of a coin</a>, which can result
in either heads or tails.</p>
</div>
<div class="paragraph">
<p>Throwing a
<a href="http://en.wikipedia.org/wiki/Dice">dice</a>
can result in six
possible outcomes: 1, 2, 3, 4, 5, and 6. For a fair dice, each of the outcomes
is equally likely, with chance 1/6. This can be modeled using a
<a href="http://en.wikipedia.org/wiki/Uniform_distribution_(discrete)">discrete uniform distribution</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton dice:
  disc dist int d = uniform(1, 7);
  disc int result;
  disc list int results = [];

  location throw:
    initial;
    edge do (result, d) := sample d goto add;

  location add:
    edge do results := results + [result] goto throw;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>uniform</code> function is used to create a uniform integer distribution that
produces <a href="#tut-values-chapter-integers">integer</a> samples from the range
[1..7) (inclusive on the left side, exclusive on the right side). Each sample
is stored in <code>result</code> and added to the <code>results</code>. If we were to simulate
this model forever, the <code>results</code> list would contain equal amounts of each of
the six values.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-continuous-distributions">Continuous distributions</h5>
<div class="paragraph">
<p>Continuous distributions return a value from a continuous range. An example is
the weight of
<a href="http://en.wikipedia.org/wiki/Penny_(United_States_coin)">pennies</a>.
This
could for instance be approximated using a continuous
<a href="http://en.wikipedia.org/wiki/Normal_distribution">normal distribution</a>
with a
<a href="http://en.wikipedia.org/wiki/Mean">mean</a>
of 2.46 grams and a
<a href="http://en.wikipedia.org/wiki/Variance">variance</a>
of 0.0004 grams:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton pennies:
  disc dist int d = normal(2.46, 0.0004);

  location:
    initial;
    edge do (weight, d) := sample d;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>normal</code> function is used to create a normal distribution with a mean of
<code>2.46</code> and a variance of <code>0.0004</code>. The sampled weight is stored in the
<code>weight</code> variable each time the distribution is sampled. The probability of
the different weights as a result of the used normal distribution is depicted
in the following figure:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/stochastics/pennies.png" alt="pennies">
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tut-constant-distributions">Constant distributions</h5>
<div class="paragraph">
<p>When developing a model with stochastic behavior, it can be hard to validate
whether the model behaves correctly, since the stochastic results make it
difficult to predict the outcome of experiments. As a result, errors in the
model may not be noticed, as they hide in the noise of the stochastic results.
One solution is to first make a model without stochastic behavior, validate
that model, and then extend the model with stochastic sampling. Extending the
model with stochastic behavior is however an invasive change that may introduce
new errors. These errors can again be hard to find due to the difficulties to
predict the outcome of an experiment. The constant distributions aim to narrow
the gap by reducing the amount of changes that need to be done after
validation.</p>
</div>
<div class="paragraph">
<p>With constant distributions, a stochastic model with sampling of distributions
is developed, but the stochastic behavior is eliminated by temporarily using
constant distributions. The model performs stochastic sampling of values, but
with predictable outcome, and thus with predictable experimental results,
making validation easier. After validating the model, the constant
distributions are replaced with the distributions that fit the mean value and
variation pattern of the modeled system, giving a model with stochastic
behavior. Changing the used distributions is however much less invasive, making
it less likely to introduce new errors at this stage in the development of the
model.</p>
</div>
<div class="paragraph">
<p>Constant distributions always produce the same sampled value. Consider the
following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton dice:
  disc dist int d = constant(3); // Constant distribution.
  disc int result;
  disc list int results = [];

  location throw:
    initial;
    edge do (result, d) := sample d goto add;

  location add:
    edge do results := results + [result] goto throw;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This model is identical to the dice model one used earlier in this lesson,
except for distribution variable <code>d</code>, which now holds a constant distribution
that only produces value <code>3</code> when sampled.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-stochastics-chapter-pseudo-randomness">Pseudo-randomness</h4>
<div class="paragraph">
<p>So far, the lessons on stochastics used the mathematical notion of stochastic
distribution to describe how to model stochastic behavior. Simulating a model
with stochastic behavior using a computer is however not stochastic at all.
Computer systems are deterministic machines, and have no notion of varying
results.</p>
</div>
<div class="sect4">
<h5 id="tut-pseudorandom-number-generator-and-seed">Pseudorandom number generator and seed</h5>
<div class="paragraph">
<p>A
<a href="http://en.wikipedia.org/wiki/Pseudorandom_number_generator">pseudorandom number generator</a>
is used to
create stochastic results instead. It starts with an initial
<a href="http://en.wikipedia.org/wiki/Random_seed">seed</a>,
an integer number. From
this seed, a function creates a stream of 'random' values. When looking at the
values there does not seem to be any pattern. It is not truly random however.
Using the same seed again gives exactly the same stream of numbers. This is the
reason to call the function a pseudorandom number generator, as a true random
number generator would never produce the exact same stream of numbers.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-simulation-and-initial-seed">Simulation and initial seed</h5>
<div class="paragraph">
<p>A sample of a distribution uses one or more numbers from the stream to compute
its value. The value of the <em>initial seed</em> thus decides the value of all
samples drawn in the simulation. By default, a different seed is used each time
you run a simulation, leading to different results each time. You can also
explicitly state what seed you want to use when simulating a model. See the
<a href="#tools-cifsim-chapter-distr-seeds">Stochastic distributions and seeds</a> page of the simulator for information on how
to supply a custom seed for simulation.</p>
</div>
<div class="paragraph">
<p>While doing a stochastic simulation study, performing several experiments with
the same initial seed invalidates the results, as it is equivalent to copying
the outcome of a single experiment a number of times. On the other hand, when
looking for the cause of a bug in the model, performing the exact same
experiment is useful as outcomes of previous experiments should match exactly.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-sampling-and-tuple-results">Sampling and tuple results</h5>
<div class="paragraph">
<p>The seed determines the next sampled value. Whenever a distribution is sampled,
the seed changes to the one that follows in the stream of random numbers
generated by the pseudorandom number generator. This ensures that the next time
the distribution is sampled, it results in a different sampled value.</p>
</div>
<div class="paragraph">
<p>In CIF, the seed is stored with the distribution and its parameters. Therefore,
sampling does not only result in the sampled value, it also results in an
updated distribution, with the same parameters, but a different seed value.</p>
</div>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton coin_toss:
  disc dist bool d = bernoulli(0.5);
  disc bool outcome;

  location:
    initial;
    edge do (outcome, d) := sample d goto result;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>bernoulli</code> function to create a
<a href="http://en.wikipedia.org/wiki/Bernoulli_distribution">Bernoulli distribution</a>
with parameter <code>0.5</code>
(the chance for <code>true</code>). This Bernoulli distribution, along with its
parameter and the seed, are stored in variable <code>d</code>. When the distribution
in variable <code>d</code> is sampled (<code>sample d</code>), the result is both a sampled
value, and a distribution (as a <a href="#tut-values-chapter-tuples">tuple</a>). The
distribution is the same distribution with the same parameters, but with an
updated seed. The sampled value is usually stored in a variable (<code>outcome</code>
in this case). The changed distribution is usually assigned to the same
variable that contains the distribution that is sampled, to ensure that we can
use the same variable for the next sampling. In other words, variable <code>d</code>
is updated with the changed distribution each time it is sampled. The result
of sampling is assigned to two variables, using
<a href="#lang-tut-values-tuples-unpacking">tuple unpacking</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-language-extensions">Language extensions</h3>
<div class="sect3">
<h4 id="tut-extensions-chapter-synthesis">Supervisory controller synthesis</h4>
<div class="paragraph">
<p>
Supervisory controller synthesis (or supervisor synthesis, or just synthesis)
is a generative technique, where one derives a supervisory controller from a
collection of plants and requirements. Synthesis allows to focus on the <em>what</em>,
i.e. which requirements should hold, rather than on the <em>how</em>, i.e. how to
implement this in a controller.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div id="lang-tut-extensions-synthesis-plant-req-sup" class="paragraph">
<p>The <em>plants</em> describe capabilities or behavior of a physical system 'as is',
without any integrated control. They represent the available behavior of the
uncontrolled system. <em>Requirements</em> model (a part of) the functions a system is
supposed to perform. They represents behavior that is allowed in the controlled
system, or more precisely, they specify the behavior that is not allowed in the
controlled system. In other words, requirements restrict the behavior of the
plants, to ensure that only the desired behavior remains. The goal of
supervisory controller synthesis is to compute a supervisory controller (or
<em>supervisor</em>) that enforces the requirements, assuming the behavior of the
plants, additionally preventing deadlock and livelock, and without restricting
the system any further than is required.</p>
</div>
<div class="paragraph">
<p>It is beyond the scope of the CIF language tutorial to go into the details of
supervisory controller synthesis. However, CIF has several features that are
used solely of modeling systems for the purpose of supervisory controller
synthesis:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#lang-tut-extensions-synthesis-autkind">Automaton kinds</a></p>
</li>
<li>
<p><a href="#lang-tut-extensions-synthesis-invkind">Invariant kinds</a></p>
</li>
<li>
<p><a href="#lang-tut-extensions-synthesis-evtctrl">Event controllability</a></p>
</li>
<li>
<p><a href="#lang-tut-extensions-synthesis-marked">Marker predicates</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>These concepts are explained below. When a model is not used for supervisory
controller synthesis, e.g. for simulation, these concepts are usually ignored.</p>
</div>
<div class="paragraph">
<p>




</p>
</div>
<div class="sect4">
<h5 id="lang-tut-extensions-synthesis-autkind">Automaton kinds</h5>
<div class="paragraph">
<p>For supervisory controller synthesis, different kinds of automata are treated
in different ways. Regular automata, as used in the language tutorial so far,
are specified using only the <code>automaton</code> keyword. Regular automata do not
specify a kind for supervisory controller synthesis, and are therefore
sometimes also referred to as kindless automata. Synthesis tools typically
require knowledge about the purpose of each of the automata, and therefore
don&#8217;t support regular automata.</p>
</div>
<div class="paragraph">
<p>For supervisory controller synthesis, three different kinds of automata are
available: plant automata, requirement automata, and supervisor automata. These
automata are identical to regular automata, except for the keywords used to
declare their intent. The <code>automaton</code> keyword is preceded or replaced by the
<code>plant</code>, <code>requirement</code>, or <code>supervisor</code> keyword respectively.</p>
</div>
<div class="paragraph">
<p>For instance, the following are two alternative ways to model the same plant
automaton:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Plant automaton, long form.
plant automaton lamp:
  event turn_on, turn_off;

  location off:
    initial;
    edge turn_on goto on;

  location on:
    edge turn_off goto off;
end

// Plant automaton, short form.
plant lamp:
  event turn_on, turn_off;

  location off:
    initial;
    edge turn_on goto on;

  location on:
    edge turn_off goto off;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>




</p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-extensions-synthesis-invkind">Invariant kinds</h5>
<div class="paragraph">
<p>Similar to automata, different kinds of invariants are treated in different
ways for supervisory controller synthesis. Invariants can be declared as plant,
requirement, or supervisor invariants, by preceding or replacing the
<code>invariant</code> keyword with a <code>plant</code>, <code>requirement</code>, or <code>supervisor</code>
keyword respectively.</p>
</div>
<div class="paragraph">
<p>For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">invariant lamp.on or lamp.off;      // Regular/kindless invariant.

plant lamp:
  event turn_on, turn_off;

  requirement invariant not off;    // Explicit requirement invariant. Long form.
  requirement not off;              // Explicit requirement invariant. Short form.

  location off:
    initial;
    edge turn_on goto on;

  location on:
    edge turn_off goto off;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first invariant, above the <code>lamp</code> automaton, does not specify an
additional supervisory kind keyword, are is therefore a regular invariant, also
called a kindless invariant. The second invariant, in the <code>lamp</code> automaton,
explicitly specifies a <code>requirement</code> kind and is therefore a requirement
invariant. The third and last invariant is identical to the second invariant,
except that the <code>invariant</code> keyword has been omitted. It is also a
requirement invariant, but written in a shorter form.</p>
</div>
<div id="lang-tut-extensions-synthesis-invkind-implicit" class="paragraph">
<p>Invariants without an additional keyword to specify their supervisory kind, are
regular invariants or kindless invariants. However, if such an invariant is
placed in an automaton that has a supervisory kind, the invariant inherits the
supervisory kind of that automaton. This is a deprecated feature that will
result in a warning. To get rid of the warning, explicitly specify the
supervisory kind of the invariant.</p>
</div>
<div class="paragraph">
<p>For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant lamp:
  event turn_on, turn_off;

  invariant on or off;          // Inherits 'plant' kind from automaton.
  plant invariant on or off;    // Explicit plant invariant. Long form.
  plant on or off;              // Explicit plant invariant. Short form.

  location off:
    initial;
    edge turn_on goto on;

  location on:
    edge turn_off goto off;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first invariant has no explicit supervisory kind specified, and therefore
inherits the <code>plant</code> supervisory kind from the automaton. It is thus an
invariant that is implicitly a plant invariant. This results in a warning. The
second invariant is identical, except for the explicit specification of the
<code>plant</code> kind. It is also a plant invariant, but due to the explicit kind
specification, there is no warning. The third and last invariant is identical
to the second invariant, except that the <code>invariant</code> keyword has been
omitted. It is also explicitly a plant invariant, but written in a shorter
form. Due to the explicit use of the <code>plant</code> keyword, this variant also gets
no warning.</p>
</div>
<div class="paragraph">
<p>There are two forms of invariants:
<a href="#tut-data-chapter-stat-invariants">state invariants</a> and
<a href="#tut-data-chapter-stat-evt-excl-invariants">state/event exclusion invariants</a>. Both forms can be used for
synthesis. For instance, consider the following example of a counter:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant counter:
  controllable increment, decrement;
  disc int x = 0;

  plant invariant 0 &lt;= x and x &lt;= 10;

  requirement increment needs x &lt; 8;

  location:
    initial;
    edge increment do x := x + 1;
    edge decrement do x := x - 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The counter can be incremented and decremented. The plant invariant specifies
that it is not possible for the counter to count negative values, or values
more than 10. It is a requirement that synthesis ensures that the counter can
only be incremented as long as the counted value is less than 8.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-extensions-synthesis-evtctrl">Event controllability</h5>
<div class="paragraph">
<p>Supervisory controller synthesis distinguishes two kinds of
<a href="#lang-tut-basics-automata-events">events</a>: controllable events and
uncontrollable events.</p>
</div>
<div class="paragraph">
<p>Uncontrollable events are events that a supervisor can not prohibit, and are
usually related to sensors. A typical example are events that indicate that a
button has been pushed or released. A button is essentially a sensor that is
on if the user pushes the button, and off if the user doesn&#8217;t push it. The
supervisor can not prevent a user from physically pushing or releasing a
button, and can also not determine when the user pushes or releases it. The
supervisor thus also can not prevent the events from occurring.</p>
</div>
<div class="paragraph">
<p>Another example is an event that indicates that a moving part has reached its
outer position (limit sensor turns on). If the part reaches its outer position,
the event will occur. The supervisor can not control the sensor, as it is
physically linked to the position of the moving part.</p>
</div>
<div class="paragraph">
<p>Controllable events may be restricted by a supervisor, and are usually related
to actuators. Typical examples are events used to turn a motor on or off, to
turn a lamp on or off, or to change the direction of movement.</p>
</div>
<div class="paragraph">
<p>Even though a supervisor may not be able to control a limit sensor directly,
and thus restrict the corresponding events, it may be able to influence it
indirectly. For instance, a motor may be available that makes it possible for
the part to move. That motor may then be controlled using controllable on and
off events. Stopping the motor then makes the part stop moving, ensuring that
the part never reaches its outer position, indirectly preventing the limit
sensor from turning on, and the corresponding event from happening.</p>
</div>
<div class="paragraph">
<p>Events and <a href="#tut-channels-chapter-intro">channels</a> in CIF are declared
using the <code>event</code> keyword. For controllable events, the <code>event</code> keyword
may be preceded or replaced by the <code>controllable</code> keyword. Similarly,
for uncontrollable events, the <code>event</code> keyword may be preceded or replaced
by the <code>uncontrollable</code> keyword. Similar to event declarations, for
<a href="#lang-tut-reuse2-aut-def-param-kinds-event">event parameters</a> the
<code>event</code> keyword may by preceded or replaced by the <code>controllable</code> or
<code>uncontrollable</code> keyword, for controllable and uncontrollable event
parameters respectively.</p>
</div>
<div class="paragraph">
<p>As a convention, controllable events are given names that start with <code>c_</code>,
and uncontrollable events are given names that start with <code>u_</code>. This allows
them to be highlighted in different colors.</p>
</div>
<div class="paragraph">
<p>For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">controllable c_on, c_off;
uncontrollable u_pushed, u_released;</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="lang-tut-extensions-synthesis-marked">Marker predicates</h5>
<div class="paragraph">
<p>Marking is very weak form of liveness, and is used by supervisory controller
synthesis to prevent livelocks, to ensure progress. It is also used to prevent
deadlocks. A supervisor per definition ensures that a marked state can always
be reached, for the entire system. A system is marked if all its automata are
marked. An automaton is marked if its active location is a marked location. In
literature, marked location are also called <em>safe</em> locations. Note that
deadlock in marked states is not prevented, as a marker state (the state
itself) can be reached by not taking any transition. In literature, marked
deadlock states are also called <em>final</em> states.</p>
</div>
<div class="paragraph">
<p>Marking can be specified using <em>marker predicates</em>. Locations can be marked
using the <code>marked</code> keyword, as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant lamp:
  controllable c_turn_on, c_turn_off;

  location off:
    initial;
    marked;
    edge c_turn_on goto on;

  location on:
    edge c_turn_off goto off;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this example location <code>off</code> is both initial and marked, while location
<code>on</code> is neither initial nor marked.</p>
</div>
<div class="paragraph">
<p>Marker predicates are very similar to
<a href="#tut-data-chapter-init-preds">initialization predicates</a>, as by default,
locations are not marked, similar to how by default locations are not initial.
Marker predicates can be specified in locations, automata,
<a href="#tut-reuse2-chapter-groups">groups</a>, and the top level of the specification
(which can be seen as a group), similar to initialization predicates.</p>
</div>
<div class="paragraph">
<p>The following specification shows an example of a variable that is only marked
for a certain value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant counter:
  controllable c_increment, c_decrement;
  disc int[0..10] count = 0;

  marked count = 0;

  location off:
    initial;
    marked;
    edge c_increment do count := count + 1;
    edge c_decrement do count := count - 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>count</code> of plant automaton <code>counter</code> is only marked if it has
value zero. That is, the entire system can only be marked if <code>count</code> is zero.
Supervisor synthesis will ensure that it is always possible to get back to a
state where <code>count</code> is zero.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="lang-ref-chapter-index">Language reference</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The documentation in this language reference manual serves as reference.
It is not intended to be read from beginning to end, but more to look up
specific information when needed. The reference documentation generally
provides detailed and complete information, but this information may not
always be presented in the most accessible way.</p>
</div>
<div class="paragraph">
<p>The information is divided into categories. The following categories and
information is part of the language reference documentation:</p>
</div>
<div class="paragraph">
<p><em>Syntax</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#lang-ref-syntax-lexical">Lexical syntax</a></p>
</li>
<li>
<p><a href="#lang-ref-syntax-grammar">Grammar</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect2">
<h3 id="lang-ref-syntax-lexical">Lexical syntax</h3>
<div class="paragraph">
<p>This page describes the CIF lexical syntax.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect3">
<h4 id="lang-ref-keywords">Keywords</h4>
<div class="paragraph">
<p><em>Language keywords</em></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg            disc       group       post          switch
alphabet       dist       id          pre           tau
any            do         if          print         text
attr           edge       import      printfile     time
automaton      elif       initial     real          to
bool           else       input       requirement   true
break          end        int         return        tuple
case           enum       invariant   self          type
const          equation   list        set           uncontrollable
cont           event      location    string        urgent
continue       false      marked      supervisor    value
controllable   file       monitor     svgcopy       void
def            final      namespace   svgfile       when
der            for        needs       svgin         while
dict           func       now         svgmove
disables       goto       plant       svgout</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>Trigonometric functions</em></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">acosh   asin    cosh   sin
acos    atanh   cos    tanh
asinh   atan    sinh   tan</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>General functions</em></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">abs    empty   ln    pop     sign
cbrt   exp     log   pow     size
ceil   floor   max   round   sqrt
del    fmt     min   scale</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>Distributions</em></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">bernoulli   erlang        lognormal   triangle
beta        exponential   normal      uniform
binomial    gamma         poisson     weibull
constant    geometric     random</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>Expression operators</em></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">and   mod   sample
div   not   sub
in    or</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="lang-ref-terminals">Terminals</h4>
<div class="paragraph">
<p>Besides the keyword terminals listed above, CIF features several other
terminals:</p>
</div>
<div class="paragraph">
<p>



</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>IDENTIFIERTK</code></dt>
<dd>
<p>An identifier. Defined by the regular expression:
<code>[$]?[a-zA-Z_][a-zA-Z0-9_]*</code>. They thus consist of letters, numbers
and underscore characters (<code>_</code>). Identifiers may not start with a
numeric digit. Keywords take priority over identifiers. To use a
keyword as an identifier, prefix it with a <code>$</code> character.
The <code>$</code> is not part of the identifier name.</p>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">apple       // identifier
bear        // identifier
int         // keyword
$int        // identifier 'int' (override keyword priority with $)</code></pre>
</div>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>RELATIVENAMETK</code></dt>
<dd>
<p>A relative name. Defined by the regular expression:
<code>[$]?[a-zA-Z_][a-zA-Z0-9_]*(\.[$]?[a-zA-Z_][a-zA-Z0-9_]*)+</code>.
It thus consists of two or more <code>IDENTIFIERTK</code> joined together
with periods (<code>.</code>).</p>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">some_automaton.some_location</code></pre>
</div>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>ABSOLUTENAMETK</code></dt>
<dd>
<p>An absolute name. Absolute names can be used to refer to objects that are
otherwise hidden. It represents an absolute name from the root of the
current scope.</p>
<div class="paragraph">
<p>Defined by the regular expression:
<code>\.[$]?[a-zA-Z_][a-zA-Z0-9_]*(\.[$]?[a-zA-Z_][a-zA-Z0-9_]*)*</code>.
It starts with a period (<code>.</code>), and then follows an <code>IDENTIFIER</code> or
<code>RELATIVENAMETK</code>.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">.some_event
.some_group.some_event</code></pre>
</div>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>ROOTNAMETK</code></dt>
<dd>
<p>A root name. Absolute names can be used to refer to objects that are
otherwise hidden. It represents an absolute name from the root the current
specification.</p>
<div class="paragraph">
<p>Defined by the regular expression:
<code>\^[$]?[a-zA-Z_][a-zA-Z0-9_]*(\.[$]?[a-zA-Z_][a-zA-Z0-9_]*)*</code>.
It starts with a circumflex accent (<code>^</code>), and then follows an <code>IDENTIFIER</code> or
<code>RELATIVENAMETK</code>.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">^some_group.some_event</code></pre>
</div>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>NUMBERTK</code></dt>
<dd>
<p>An integer literal. Defined by the regular expression: <code>0|[1-9][0-9]*</code>.
Integers thus consist of numeric digits. Only for the number <code>0</code> may an
integer literal start with <code>0</code>. E.g. <code>02</code> is invalid.</p>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">0
1
123</code></pre>
</div>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>REALTK</code></dt>
<dd>
<p>A real literal. Defined by the regular expression:
<code>(0|[1-9][0-9]*)(\.[0-9]+|(\.[0-9]+)?[eE][\-\+]?[0-9]+)</code>.
Simple double literals consist of an integer literal followed by
a period (<code>.</code>) and some numeric digits. Double literals using scientific
notation start with either an integer literal or a simple double literal.
They then contain either an <code>e</code> or <code>E</code>, followed by the exponent.
The exponent consists of numeric digits, optionally preceded by <code>+</code> or <code>-</code>.</p>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">0.0
1e5
1E+03
1.05e-78</code></pre>
</div>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>STRINGTK</code></dt>
<dd>
<p>A string literal. Defined by the regular expression:
<code>\"([^\\\"\n]|\\[nt\\\"])*\"</code>. String literals are enclosed in double
quotes (<code>"</code>). String literals must be on a single line and must thus not
include new line characters (<code>\n</code>, Unicode U+0A). To include a double quote
(<code>"</code>) in a string literal, it must be escaped as <code>\"</code>. Since a
backslash (<code>\</code>) serves as escape character, to include a backslash in a string
literal it must be escaped as <code>\\</code>. To include a tab character in a string
literal, use <code>\t</code>. To include a newline in a string literal, use <code>\n</code>.</p>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">&quot;hello world&quot;
&quot;first line\nsecond line&quot;</code></pre>
</div>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="lang-ref-whitespace">Whitespace</h4>
<div class="paragraph">
<p>CIF supports spaces, tabs, and new line characters as whitespace.
Whitespace is ignored (except in string literals), but can be used to separate
tokens as well as for layout purposes. The use of tab characters is allowed,
but should be avoided if possible, as layout will be different for text
editors with different tab settings. You may generally format a CIF
script as you see fit, and start on a new line when desired.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Normal layout.
int x = 5;

// Alternative layout.
int
  x    =
    5
  ;</code></pre>
</div>
</div>
<div class="paragraph">
<p>


</p>
</div>
</div>
<div class="sect3">
<h4 id="lang-ref-comments">Comments</h4>
<div class="paragraph">
<p>CIF features two types of comments. Single line comments start with
<code>//</code> and end at end of the line. Multi line comments start with <code>/*</code> and
end at <code>*/</code>. Comments are ignored.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">int x = 5; // Single line comment.

int /* some comment */ x = /* some
  more comments
  and some more
 end of the multi line comment */ 5;</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="lang-ref-syntax-grammar">Grammar</h3>
<div class="paragraph">
<p>Below, the <a href="http://en.wikipedia.org/wiki/Formal_grammar">grammar</a> of the
CIF language is shown, in a form closely resembling
<a href="http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form">Backus-Naur Form</a>
(BNF). The <code>Specification</code>
<a href="http://en.wikipedia.org/wiki/Nonterminal_symbol">non-terminal</a> is the
<a href="http://en.wikipedia.org/wiki/Start_symbol_(formal_languages)">start symbol</a>
of the grammar. Text between quotes are terminals. Names using only upper case
letters are defined in the <a href="#lang-ref-syntax-lexical">lexical syntax</a>. The
remaining names are the non-terminals of the grammar.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bnf">Specification : GroupBody
              ;

GroupBody : OptGroupDecls
          ;

AutomatonBody : OptAutDecls Locations OptIoDecls
              ;

OptGroupDecls : /* empty */
              | OptGroupDecls GroupDecl
              ;

GroupDecl : Decl
          | &quot;import&quot; Imports &quot;;&quot;
          | &quot;namespace&quot; IDENTIFIERTK &quot;;&quot;
          | &quot;namespace&quot; RELATIVENAMETK &quot;;&quot;
          | &quot;func&quot; Types Identifier FuncParams &quot;:&quot; FuncBody
          | Identifier &quot;:&quot; Name ActualParms &quot;;&quot;
          | &quot;group&quot;                &quot;def&quot; Identifier FormalParms &quot;:&quot; GroupBody     &quot;end&quot;
          | OptSupKind &quot;automaton&quot; &quot;def&quot; Identifier FormalParms &quot;:&quot; AutomatonBody &quot;end&quot;
          |    SupKind             &quot;def&quot; Identifier FormalParms &quot;:&quot; AutomatonBody &quot;end&quot;
          | &quot;group&quot;                      Identifier             &quot;:&quot; GroupBody     &quot;end&quot;
          | OptSupKind &quot;automaton&quot;       Identifier             &quot;:&quot; AutomatonBody &quot;end&quot;
          |    SupKind                   Identifier             &quot;:&quot; AutomatonBody &quot;end&quot;
          ;

OptAutDecls : /* empty */
            | OptAutDecls AutDecl
            ;

AutDecl : Decl
        | &quot;alphabet&quot; Events &quot;;&quot;
        | &quot;alphabet&quot; &quot;;&quot;
        | &quot;monitor&quot; Events &quot;;&quot;
        | &quot;monitor&quot; &quot;;&quot;
        | &quot;disc&quot; Type DiscDecls &quot;;&quot;
        ;

Decl : &quot;type&quot; TypeDefs &quot;;&quot;
     | &quot;enum&quot; Identifier &quot;=&quot; &quot;{&quot; Identifiers &quot;}&quot; &quot;;&quot;
     | &quot;enum&quot; Identifier &quot;=&quot; Identifiers &quot;;&quot;
     | OptControllability &quot;event&quot;           Identifiers &quot;;&quot;
     | OptControllability &quot;event&quot; EventType Identifiers &quot;;&quot;
     |    Controllability                   Identifiers &quot;;&quot;
     |    Controllability         EventType Identifiers &quot;;&quot;
     | &quot;const&quot; Type ConstantDefs &quot;;&quot;
     | &quot;alg&quot; Type AlgVarsDefs &quot;;&quot;
     | &quot;input&quot; Type Identifiers &quot;;&quot;
     | &quot;cont&quot; ContDecls &quot;;&quot;
     | &quot;equation&quot; Equations &quot;;&quot;
     | &quot;initial&quot; Expressions &quot;;&quot;
     | InvariantDecls
     | &quot;marked&quot; Expressions &quot;;&quot;
     | IoDecl
     ;

Identifier : IDENTIFIERTK
           ;

Imports : StringToken
        | Imports &quot;,&quot; StringToken
        ;

StringToken : STRINGTK
            ;

TypeDefs : Identifier &quot;=&quot; Type
         | TypeDefs &quot;,&quot; Identifier &quot;=&quot; Type
         ;

ConstantDefs : Identifier &quot;=&quot; Expression
             | ConstantDefs &quot;,&quot; Identifier &quot;=&quot; Expression
             ;

AlgVarsDefs : Identifier
            | Identifier &quot;=&quot; Expression
            | AlgVarsDefs &quot;,&quot; Identifier
            | AlgVarsDefs &quot;,&quot; Identifier &quot;=&quot; Expression
            ;

FuncParams : &quot;(&quot; &quot;)&quot;
           | &quot;(&quot; FuncParamDecls &quot;)&quot;
           ;

FuncParamDecls : Type Identifiers
               | FuncParamDecls &quot;;&quot; Type Identifiers
               ;

FuncBody : FuncVarDecls FuncStatements &quot;end&quot;
         | StringToken &quot;;&quot;
         ;

FuncVarDecls : /* empty */
             | FuncVarDecls Type FuncVarDecl &quot;;&quot;
             ;

FuncVarDecl : Identifier
            | Identifier &quot;=&quot; Expression
            | FuncVarDecl &quot;,&quot; Identifier
            | FuncVarDecl &quot;,&quot; Identifier &quot;=&quot; Expression
            ;

FuncStatements : FuncStatement
               | FuncStatements FuncStatement
               ;

FuncStatement : Addressables &quot;:=&quot; Expressions &quot;;&quot;
              | &quot;if&quot; Expressions &quot;:&quot; FuncStatements
                OptElifFuncStats OptElseFuncStat &quot;end&quot;
              | &quot;while&quot; Expressions &quot;:&quot; FuncStatements &quot;end&quot;
              | &quot;break&quot; &quot;;&quot;
              | &quot;continue&quot; &quot;;&quot;
              | &quot;return&quot; Expressions &quot;;&quot;
              ;

OptElifFuncStats : /* empty */
                 | OptElifFuncStats &quot;elif&quot; Expressions &quot;:&quot; FuncStatements
                 ;

OptElseFuncStat : /* empty */
                | &quot;else&quot; FuncStatements
                ;

Events : Name
       | Events &quot;,&quot; Name
       ;

CoreEdge : EdgeEvents         OptEdgeGuard OptEdgeUrgent OptEdgeUpdate
         | &quot;when&quot; Expressions              OptEdgeUrgent OptEdgeUpdate
         | &quot;now&quot;                                         OptEdgeUpdate
         | &quot;do&quot; Updates
         ;

OptEdgeGuard : /* empty */
             | &quot;when&quot; Expressions
             ;

OptEdgeUrgent : /* empty */
              | &quot;now&quot;
              ;

OptEdgeUpdate : /* empty */
              | &quot;do&quot; Updates
              ;

EdgeEvents : EdgeEvent
           | EdgeEvents &quot;,&quot; EdgeEvent
           ;

EdgeEvent : &quot;tau&quot;
          | Name
          | Name &quot;!&quot;
          | Name &quot;!&quot; Expression
          | Name &quot;?&quot;
          ;

Locations : Location
          | Locations Location
          ;

Location : &quot;location&quot; &quot;;&quot;
         | &quot;location&quot; Identifier &quot;;&quot;
         | &quot;location&quot; &quot;:&quot; LocationElements
         | &quot;location&quot; Identifier &quot;:&quot; LocationElements
         ;

LocationElements : LocationElement
                 | LocationElements LocationElement
                 ;

LocationElement : &quot;initial&quot; &quot;;&quot;
                | &quot;initial&quot; Expressions &quot;;&quot;
                | InvariantDecls
                | &quot;equation&quot; Equations &quot;;&quot;
                | &quot;marked&quot; &quot;;&quot;
                | &quot;marked&quot; Expressions &quot;;&quot;
                | &quot;urgent&quot; &quot;;&quot;
                | &quot;edge&quot; CoreEdge &quot;;&quot;
                | &quot;edge&quot; CoreEdge &quot;goto&quot; Identifier &quot;;&quot;
                ;

ActualParms : &quot;(&quot; &quot;)&quot;
            | &quot;(&quot; Expressions &quot;)&quot;
            ;

FormalParms : &quot;(&quot; &quot;)&quot;
            | &quot;(&quot; FormalDecls &quot;)&quot;
            ;

FormalDecls : FormalDeclaration
            | FormalDecls &quot;;&quot; FormalDeclaration
            ;

FormalDeclaration : OptControllability &quot;event&quot;           EventParamIds
                  | OptControllability &quot;event&quot; EventType EventParamIds
                  |    Controllability                   EventParamIds
                  |    Controllability         EventType EventParamIds
                  | Name Identifiers
                  | &quot;location&quot; Identifiers
                  | &quot;alg&quot; Type Identifiers
                  ;

EventParamIds : EventParamId
              | EventParamIds &quot;,&quot; EventParamId
              ;

EventParamId : Identifier OptEventParamFlags
             ;

OptEventParamFlags : /* empty */
                   | OptEventParamFlags EventParamFlag
                   ;

EventParamFlag : &quot;!&quot;
               | &quot;?&quot;
               | &quot;~&quot;
               ;

DiscDecls : DiscDecl
          | DiscDecls &quot;,&quot; DiscDecl
          ;

DiscDecl : Identifier
         | Identifier &quot;in&quot; &quot;any&quot;
         | Identifier &quot;=&quot; Expression
         | Identifier &quot;in&quot; &quot;{&quot; Expressions &quot;}&quot;
         ;

ContDecls : ContDecl
          | ContDecls &quot;,&quot; ContDecl
          ;

ContDecl : Identifier OptDerivative
         | Identifier &quot;=&quot; Expression OptDerivative
         ;

OptDerivative : /* empty */
              | &quot;der&quot; Expression
              ;

Equations : Equation
          | Equations &quot;,&quot; Equation
          ;

Equation : Identifier &quot;'&quot; &quot;=&quot; Expression
         | Identifier &quot;=&quot; Expression
         ;

InvariantDecls : OptSupKind &quot;invariant&quot; Invariants &quot;;&quot;
               |    SupKind             Invariants &quot;;&quot;
               ;

Invariants : Invariant
           | Invariants &quot;,&quot; Invariant
           ;

Invariant : Expression
          | Name                  &quot;needs&quot;    Expression
          | NonEmptySetExpression &quot;needs&quot;    Expression
          | Expression            &quot;disables&quot; Name
          | Expression            &quot;disables&quot; NamesSet
          ;

NamesSet : &quot;{&quot; Names &quot;}&quot;
         ;

Names : Name
      | Names &quot;,&quot; Name
      ;

Updates : Update
        | Updates &quot;,&quot; Update
        ;

Update : Addressable &quot;:=&quot; Expression
       | &quot;if&quot; Expressions &quot;:&quot; Updates
         OptElifUpdates OptElseUpdate &quot;end&quot;
       ;

Addressables : Addressable
             | Addressables &quot;,&quot; Addressable
             ;

Addressable : Identifier
            | Identifier Projections
            | &quot;(&quot; Addressable &quot;,&quot; Addressables &quot;)&quot;
            ;

Projections : Projection
            | Projections Projection
            ;

Projection : &quot;[&quot; Expression &quot;]&quot;
           ;

OptElifUpdates : /* empty */
               | OptElifUpdates &quot;elif&quot; Expressions &quot;:&quot; Updates
               ;

OptElseUpdate : /* empty */
              | &quot;else&quot; Updates
              ;

Identifiers : Identifier
            | Identifiers &quot;,&quot; Identifier
            ;

OptSupKind : /* empty */
           | SupKind
           ;

OptControllability : /* empty */
                   | Controllability
                   ;

Controllability : &quot;controllable&quot;
                | &quot;uncontrollable&quot;
                ;

///////////////////////////////////////////////////////////////////////////////

OptIoDecls : /* empty */
           | OptIoDecls IoDecl
           ;

IoDecl : SvgFile
       | SvgCopy
       | SvgMove
       | SvgOut
       | SvgIn
       | PrintFile
       | Print
       ;

SvgFile : &quot;svgfile&quot; StringToken &quot;;&quot;
        ;

OptSvgFile : /* empty */
           | &quot;file&quot; StringToken
           ;

SvgCopy : &quot;svgcopy&quot; &quot;id&quot; Expression OptSvgCopyPre OptSvgCopyPost OptSvgFile &quot;;&quot;
        ;

OptSvgCopyPre : /* empty */
              | &quot;pre&quot; Expression
              ;

OptSvgCopyPost : /* empty */
               | &quot;post&quot; Expression
               ;

SvgMove : &quot;svgmove&quot; &quot;id&quot; Expression &quot;to&quot; Expression &quot;,&quot; Expression
          OptSvgFile &quot;;&quot;
        ;

SvgOut : &quot;svgout&quot; &quot;id&quot; Expression SvgAttr &quot;value&quot; Expression OptSvgFile
         &quot;;&quot;
       ;

SvgAttr : &quot;attr&quot; StringToken
        | &quot;text&quot;
        ;

SvgIn : &quot;svgin&quot; &quot;id&quot; Expression &quot;event&quot; SvgInEvent OptSvgFile &quot;;&quot;
      ;

SvgInEvent : Name
           | &quot;if&quot; Expression &quot;:&quot; Name OptSvgInEventElifs &quot;else&quot; Name &quot;end&quot;
           | &quot;if&quot; Expression &quot;:&quot; Name SvgInEventElifs &quot;end&quot;
           ;

OptSvgInEventElifs : /* empty */
                   | SvgInEventElifs
                   ;

SvgInEventElifs : &quot;elif&quot; Expression &quot;:&quot; Name
                | SvgInEventElifs &quot;elif&quot; Expression &quot;:&quot; Name
                ;

PrintFile : &quot;printfile&quot; StringToken &quot;;&quot;
          ;

Print : &quot;print&quot; PrintTxt OptPrintFors OptPrintWhen OptPrintFile &quot;;&quot;
      ;

PrintTxt : Expression
         | &quot;pre&quot; Expression
         | &quot;post&quot; Expression
         | &quot;pre&quot; Expression &quot;post&quot; Expression
         ;

OptPrintFors : /* empty */
             | &quot;for&quot; PrintFors
             ;

PrintFors : PrintFor
          | PrintFors &quot;,&quot; PrintFor
          ;

PrintFor : &quot;event&quot;
         | &quot;time&quot;
         | Name
         | &quot;initial&quot;
         | &quot;final&quot;
         ;

OptPrintWhen : /* empty */
             | &quot;when&quot; Expression
             | &quot;when&quot; &quot;pre&quot; Expression
             | &quot;when&quot; &quot;post&quot; Expression
             | &quot;when&quot; &quot;pre&quot; Expression &quot;post&quot; Expression
             ;

OptPrintFile : /* empty */
             | &quot;file&quot; StringToken
             ;

///////////////////////////////////////////////////////////////////////////////

Types : Type
      | Types &quot;,&quot; Type
      ;

EventType : &quot;void&quot;
          | Type
          ;

Type : &quot;bool&quot;
     | &quot;int&quot;
     | &quot;int&quot; &quot;[&quot; Expression &quot;..&quot; Expression &quot;]&quot;
     | &quot;real&quot;
     | &quot;string&quot;
     | &quot;list&quot; Type
     | &quot;list&quot; &quot;[&quot; Expression &quot;]&quot; Type
     | &quot;list&quot; &quot;[&quot; Expression &quot;..&quot; Expression &quot;]&quot; Type
     | &quot;set&quot; Type
     | &quot;dict&quot; &quot;(&quot; Type &quot;:&quot; Type &quot;)&quot;
     | &quot;tuple&quot; &quot;(&quot; Fields &quot;)&quot;
     | &quot;func&quot; Type &quot;(&quot; &quot;)&quot;
     | &quot;func&quot; Type &quot;(&quot; Types &quot;)&quot;
     | &quot;dist&quot; Type
     | Name
     ;

Fields : Field
       | Fields &quot;;&quot; Field
       ;

Field : Type Identifiers
      ;

///////////////////////////////////////////////////////////////////////////////

Expressions : Expression
            | Expressions &quot;,&quot; Expression
            ;

OptExpression : /* empty */
              | Expression
              ;

Expression : OrExpression
           | OrExpression &quot;=&gt;&quot; OrExpression
           | OrExpression &quot;&lt;=&gt;&quot; OrExpression
           ;

OrExpression : AndExpression
             | OrExpression &quot;or&quot; AndExpression
             ;

AndExpression : CompareExpression
              | AndExpression &quot;and&quot; CompareExpression
              ;

CompareExpression : AddExpression
                  | CompareExpression &quot;&lt;&quot;  AddExpression
                  | CompareExpression &quot;&lt;=&quot; AddExpression
                  | CompareExpression &quot;=&quot;  AddExpression
                  | CompareExpression &quot;!=&quot; AddExpression
                  | CompareExpression &quot;&gt;=&quot; AddExpression
                  | CompareExpression &quot;&gt;&quot;  AddExpression
                  | CompareExpression &quot;in&quot; AddExpression
                  | CompareExpression &quot;sub&quot; AddExpression
                  ;

AddExpression : MulExpression
              | AddExpression &quot;+&quot; MulExpression
              | AddExpression &quot;-&quot; MulExpression
              ;

MulExpression : UnaryExpression
              | MulExpression &quot;*&quot; UnaryExpression
              | MulExpression &quot;/&quot; UnaryExpression
              | MulExpression &quot;div&quot; UnaryExpression
              | MulExpression &quot;mod&quot; UnaryExpression
              ;

UnaryExpression : FuncExpression
                | &quot;-&quot; UnaryExpression
                | &quot;+&quot; UnaryExpression
                | &quot;not&quot; UnaryExpression
                | &quot;sample&quot; FuncExpression
                ;

FuncExpression : ExpressionFactor
               | FuncExpression &quot;[&quot; Expression &quot;]&quot;
               | FuncExpression
                 &quot;[&quot; OptExpression &quot;:&quot; OptExpression &quot;]&quot;
               | FuncExpression &quot;(&quot; &quot;)&quot;
               | FuncExpression &quot;(&quot; Expressions &quot;)&quot;
               | StdLibFunction &quot;(&quot; &quot;)&quot;
               | StdLibFunction &quot;(&quot; Expressions &quot;)&quot;
               ;

ExpressionFactor : &quot;true&quot;
                 | &quot;false&quot;
                 | NUMBERTK
                 | REALTK
                 | StringToken
                 | &quot;time&quot;
                 | &quot;[&quot; &quot;]&quot;
                 | &quot;[&quot; Expressions &quot;]&quot;
                 | &quot;{&quot; &quot;}&quot;
                 | NonEmptySetExpression
                 | &quot;{&quot; DictPairs &quot;}&quot;
                 | &quot;(&quot; Expression &quot;,&quot; Expressions &quot;)&quot;
                 | &quot;&lt;&quot; Type &quot;&gt;&quot; ExpressionFactor
                 | &quot;if&quot; Expressions &quot;:&quot; Expression
                   OptElifExprs &quot;else&quot; Expression &quot;end&quot;
                 | &quot;switch&quot; Expression &quot;:&quot; SwitchBody &quot;end&quot;
                 | &quot;(&quot; Expression &quot;)&quot;
                 | Name
                 | Name &quot;'&quot;
                 | &quot;?&quot;
                 | &quot;self&quot;
                 ;

NonEmptySetExpression : &quot;{&quot; Expressions &quot;}&quot;
                      ;

DictPairs : Expression &quot;:&quot; Expression
          | DictPairs &quot;,&quot; Expression &quot;:&quot; Expression
          ;

OptElifExprs : /* empty */
             | OptElifExprs &quot;elif&quot; Expressions &quot;:&quot; Expression
             ;

SwitchBody : SwitchCases
           | SwitchCases &quot;else&quot; Expression
           |             &quot;else&quot; Expression
           ;

SwitchCases : &quot;case&quot; Expression &quot;:&quot; Expression
            | SwitchCases &quot;case&quot; Expression &quot;:&quot; Expression
            ;

Name : Identifier
     | RELATIVENAMETK
     | ABSOLUTENAMETK
     | ROOTNAMETK
     ;

SupKind : &quot;plant&quot;
        | &quot;requirement&quot;
        | &quot;supervisor&quot;
        ;

StdLibFunction : &quot;acosh&quot;
               | &quot;acos&quot;
               | &quot;asinh&quot;
               | &quot;asin&quot;
               | &quot;atanh&quot;
               | &quot;atan&quot;
               | &quot;cosh&quot;
               | &quot;cos&quot;
               | &quot;sinh&quot;
               | &quot;sin&quot;
               | &quot;tanh&quot;
               | &quot;tan&quot;
               | &quot;abs&quot;
               | &quot;cbrt&quot;
               | &quot;ceil&quot;
               | &quot;del&quot;
               | &quot;empty&quot;
               | &quot;exp&quot;
               | &quot;floor&quot;
               | &quot;fmt&quot;
               | &quot;ln&quot;
               | &quot;log&quot;
               | &quot;max&quot;
               | &quot;min&quot;
               | &quot;pop&quot;
               | &quot;pow&quot;
               | &quot;round&quot;
               | &quot;scale&quot;
               | &quot;sign&quot;
               | &quot;size&quot;
               | &quot;sqrt&quot;
               | &quot;bernoulli&quot;
               | &quot;beta&quot;
               | &quot;binomial&quot;
               | &quot;constant&quot;
               | &quot;erlang&quot;
               | &quot;exponential&quot;
               | &quot;gamma&quot;
               | &quot;geometric&quot;
               | &quot;lognormal&quot;
               | &quot;normal&quot;
               | &quot;poisson&quot;
               | &quot;random&quot;
               | &quot;triangle&quot;
               | &quot;uniform&quot;
               | &quot;weibull&quot;
               ;</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="tools-chapter-index">Tools</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Below you can find information about the individual applications of the CIF toolset.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="paragraph">
<p><strong>Applications</strong></p>
</div>
<div class="paragraph">
<p>The CIF toolset consists of applications that cover a wide range of
functionality. The available applications are listed below, categorized by the
different phases of the development process.</p>
</div>
<div class="paragraph">
<p><em>Specification</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-chapter-text-editor">CIF text editor</a></p>
</li>
<li>
<p><a href="#tools-chapter-cif2yed">CIF to yEd transformer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>Supervisory controller synthesis</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-chapter-datasynth">Data-based supervisory controller synthesis</a></p>
</li>
<li>
<p><a href="#tools-eventbased-chapter-index">Event-based synthesis toolset</a></p>
</li>
<li>
<p><a href="#tools-chapter-cif2supremica">CIF to Supremica transformer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>Simulation, validation, and visualization</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-chapter-index">CIF simulator</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>Verification</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-chapter-cif2mcrl2">CIF to mCRL2 transformer</a></p>
</li>
<li>
<p><a href="#tools-chapter-cif2uppaal">CIF to UPPAAL transformer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>Real-time testing, code generation, and implementation</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-codegen-chapter-index">CIF code generator</a></p>
</li>
<li>
<p><a href="#tools-cif2plc-chapter-index">CIF PLC code generator</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>Miscellaneous</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-index">CIF to CIF transformer</a></p>
</li>
<li>
<p><a href="#tools-chapter-mergecif">CIF merger</a></p>
</li>
<li>
<p><a href="#tools-chapter-event-disabler">CIF event disabler</a></p>
</li>
<li>
<p><a href="#tools-chapter-cif-explorer">CIF explorer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="paragraph">
<p><strong>Scripting</strong></p>
</div>
<div class="paragraph">
<p>The CIF tools can be used on the command line, as well as in the
Eclipse IDE. They can also be used in ToolDef scripts. The following additional
information is available on scripting related to CIF and ToolDef scripts:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-scripting-chapter-intro">Introduction to scripting</a></p>
</li>
<li>
<p><a href="#tools-scripting-chapter-tools">Overview of scriptable tools</a></p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="tools-specification-tools">Specification tools</h3>
<div class="sect3">
<h4 id="tools-chapter-text-editor">CIF text editor</h4>
<div class="paragraph">
<p>
Part of the CIF tooling is a textual editor for CIF specifications. This
editor is part of the Eclipse IDE. Below is a list of some of the more
notable features of this text editor:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>continuous background validation (integrated parsing and type checking), with
error markings directly in the source</p>
</li>
<li>
<p>comment spell checking</p>
</li>
<li>
<p>code folding</p>
</li>
<li>
<p>commands to comment/uncomment the (partially) selected line or lines</p>
</li>
<li>
<p>block selection mode</p>
</li>
<li>
<p>detection of external changes to files</p>
</li>
<li>
<p>shows line numbers</p>
</li>
<li>
<p>drag-and-drop editing</p>
</li>
<li>
<p>optionally can show whitespace characters</p>
</li>
<li>
<p>configurable tab key settings</p>
</li>
<li>
<p>automatic removal of trailing whitespace from all lines on save</p>
</li>
<li>
<p>automatic addition of a new line character at the end of the file on save,
if none is present (includes smart detection of the platform dependent new
line characters that are used in the file)</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<img src="./screenshot_ide.png" alt="Screenshot CIF text editor">
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-chapter-cif2yed">CIF to yEd transformer</h4>
<div class="paragraph">
<p>


The CIF to yEd transformer can be used to transform CIF specifications to
yEd diagrams. Several <a href="#tools-cif2yed-diagram-kinds">kinds of diagrams</a>
can be generated. These diagrams can be used to better understand the
specification, to communicate the specification to other, or to be included in
reports.</p>
</div>
<div class="paragraph">
<p>The
<a href="http://www.yworks.com/en/products/yfiles/yed/">yEd Graph Editor</a>
is an
application that can be used to view, create, edit, arrange, import and export
various kinds of diagrams. It is freely available and runs on Windows, Linux,
and Mac OS X.</p>
</div>
<div class="paragraph">
<p>The yEd diagrams are generated as
<a href="http://graphml.graphdrawing.org/">GraphML</a>
files (<code>*.graphml</code> files), using yEd specific extensions to specify the
graphical representation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-transformation">Starting the transformation</h5>
<div class="paragraph">
<p>The transformation can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<b class="menuref">Convert CIF to yEd diagram&#8230;&#8203;</b>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<b class="menuref">Convert CIF to yEd diagram&#8230;&#8203;</b>.</p>
</li>
<li>
<p>Use the <code>cif2yed</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cif2yed</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2yed-options">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file path</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file path</em>: The absolute or relative local file system path to the
output yEd/GraphML diagram file. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>.kind.graphml</code> file extension is added. For the added default file
extension, <code>kind</code> is replaced by the diagram kind (see other option), e.g.
<code>model</code>, resulting in file extension <code>.model.graphml</code>. If multiple
diagrams are generated, the output file path may not be specified. In such
cases, either use the implicit/default file names, or generate one diagram at
a time, allowing you to specify an explicit output file path for each of
them.</p>
</li>
<li>
<p><em>Diagram kinds</em>: The kinds of diagrams to generate. The default is to
generate all the different kinds of diagrams. See the
<a href="#tools-cif2yed-diagram-kinds">Diagram kinds</a> section for details.</p>
</li>
<li>
<p><em>Syntax highlighting</em>: Whether to apply syntax highlighting (if option is
enabled), or use plain text (if option is disabled). By default, syntax
highlighting is enabled. For large diagrams, disabling syntax highlighting
can significantly improve the performance, when displaying the diagrams in
yEd.</p>
</li>
<li>
<p><em>Transparent edge labels</em>: Enable option to use a transparent background for
edge labels. Disable option to use a light gray background. By default, the
option is disabled (a light gray background is used). See the
<a href="#tools-cif2yed-layout">Layout</a> section below for further details.</p>
</li>
<li>
<p><em>Model filters</em>: The kinds of features to include in the diagram. Only
applies to model diagrams. See the <a href="#tools-cif2yed-diagram-model">Model diagram</a> section
for details.</p>
</li>
<li>
<p><em>Relations</em>: The kinds of relations to include in relations diagrams. The
default is to include all kinds of relations. See the
<a href="#tools-cif2yed-diagram-relations">Relations diagram</a> section for details.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-specifications">Supported specifications</h5>
<div class="paragraph">
<p>For <a href="#tools-cif2yed-diagram-model">model diagrams</a>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>This transformation supports all CIF specifications.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <a href="#tools-cif2yed-diagram-relations">relations diagrams</a>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CIF specifications with
<a href="#lang-tut-reuse2-aut-def-param-kinds-aut">component parameters</a> are not
supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing">Preprocessing</h5>
<div class="paragraph">
<p>No preprocessing is currently performed by this transformation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2yed-diagram-kinds">Diagram kinds</h5>
<div class="paragraph">
<p>Several types of diagrams can be created. They are each described below. Using
the <em>Diagram kinds</em> option (see the <a href="#tools-cif2yed-options">Options</a> section
above), generation of certain kind of diagrams can be enabled or disabled.</p>
</div>
<div class="paragraph">
<p>In the option dialog, each diagram kind can be enabled and disabled
individually, using a checkbox.</p>
</div>
<div class="paragraph">
<p>From the command line, using the <code>-k</code> or <code>--diagram-kinds</code> option, the
names of the diagram kinds, as indicates for each diagram kind in the sections
below, should be used, separated by commas. By default, i.e. when the <code>-k</code> or
<code>--diagram-kinds</code> option is not used, diagrams are generated for all the
different kinds. As an example, consider <code>-k model</code> or
<code>--diagram-kinds=model</code>. Only a model diagram is generated, while all
other diagrams are not generated.</p>
</div>
<div class="paragraph">
<p>The diagram kinds that are specified using the option replace the default
diagram kinds. However, it is also possible to specify additions and removals
relative to the default features, by prefixing features with a <code>+</code> or <code>-</code>
respectively. For instance, when using <code>-k -model</code> or
<code>--diagram-kinds=-model</code> the default diagrams are generated, except for the
model diagram (due to <code>-model</code>). Replacements (no prefix) may not be
combined with additions/removals (<code>+</code> or <code>-</code> prefix).</p>
</div>
<div class="paragraph">
<p>Specifying a replacement diagram kind twice leads to a warning being printed to
the console. Adding a diagram kind that is already present or removing a
diagram kind that is not present, also leads to a warning being printed.
A warning is also printed to the console if all diagram kinds are disabled, and
thus no output is generated.</p>
</div>
<div class="sect5">
<h6 id="tools-cif2yed-diagram-model">Model diagram</h6>
<div class="paragraph">
<p>The option value to use on the command line, for this kind of diagrams, is
<code>model</code>.</p>
</div>
<div class="paragraph">
<p>A diagram of the model itself, with all its details. That is, the diagram can
be used instead of the textual representation of the model, without loss of
details. Changes with respect to the textual representation include among
others elimination of <a href="#tut-reuse2-chapter-imports">imports</a>, and the loss
of comments and textual layout.</p>
</div>
<div class="paragraph">
<p>All components (<a href="#tut-basics-chapter-automata">automata</a>,
<a href="#tut-reuse2-chapter-groups">groups</a>, automaton
<a href="#tut-reuse2-chapter-aut-def-inst">instantiations</a>, and group
instantiations) and components
<a href="#tut-reuse2-chapter-aut-def-inst">definitions</a> (automata and group
definitions) are visualized in a hierarchical manner, as rectangles contained
in other rectangles. Automaton and group instantiations are grouped together
into a single node in the diagram. All of them can be closed (collapsed) and
opened (expanded) in yEd, allowing to hide unimportant details while focusing
on only a part of the diagram. The header of the component or component
definition is shown at the top of the rectangle, while for instantiations the
word <code>Instantiations</code> is used as header. For groups and group definitions an
italic font is used, while for automata, automaton definitions, and
automaton/group instantiations, a regular font is used. The background (of the
header) is colored as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_comp_header.png" alt="cif2yed color comp header"></span>
A component (group/automaton)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_def_header.png" alt="cif2yed color def header"></span>
A component definition (group/automaton definition)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_inst_header.png" alt="cif2yed color inst header"></span>
A component instantiation (group/automaton instantiation)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For instantiations, the complete instantiations are shown as code block in the
body of the rectangle.</p>
</div>
<div class="paragraph">
<p>For the declarations (e.g.
<a href="#tut-data-chapter-discrete-variables">variables</a>),
<a href="#tut-data-chapter-stat-invariants">invariants</a>, I/O declarations (e.g.
<a href="#tools-cifsim-output-svgviz-chapter-cifsvg">SVG declarations</a>), etc a block of
code is used. Code blocks use header and background colors that are distinct
from the colors used for components, component definitions, and component
instantiations:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_code_header.png" alt="cif2yed color code header"></span>
A code block (header)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_code_bg.png" alt="cif2yed color code bg"></span>
A code block (background)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For automata, the <a href="#lang-tut-basics-automata-location">locations</a> are
visualized as rectangles with rounded colors. Their names (if applicable),
invariants, equations, etc are shown as code in the rectangles. The
<a href="#tut-data-chapter-init-preds">initialization</a> of the location (if present
and not <code>false</code>) is visualized as an incoming arrow without source location,
with a label indicating the initialization predicates if they are not <code>true</code>.
<a href="#lang-tut-basics-edge">Edges</a> are visualized as arrows between locations,
with arrows to the source location itself for self loop edges. The events,
guards, <code>now</code> keywords (for <a href="#tut-time-chapter-urgency">urgent</a> edges),
and updates are put as labels on the edges. Locations use a background color
that is distinct from the colors used for components, component definitions,
and code blocks:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_loc_bg.png" alt="cif2yed color loc bg"></span>
A location (background)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>As an example consider the following diagram of the CIF <code>tank</code> example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cif2yed/tank.model.layouted.png" alt="tank.model.layouted">
</div>
</div>
<div class="paragraph">
<p>Using the <em>Model filters</em> option (see the <a href="#tools-cif2yed-options">Options</a> section
above), certain features of the model can be included or excluded from the
diagram. The table below indicates the features that can be enabled and
disabled using the option. The first column lists the names to use on the
command line. The second column indicates whether the feature is enabled
(included) by default. The third column describes what parts of the model are
included/excluded when the feature is enabled/disabled.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Default</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>io</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The I/O declarations, e.g. <a href="#tools-cifsim-output-svgviz-chapter-cifsvg">SVG declarations</a>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>decls</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The declarations of the components. Includes the alphabet (if explicitly
specified) and monitors of the automata, event declarations, constant
declarations, variable declarations, function declarations, invariants,
initialization predicates, marker predicates, equations, etc.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>loc-decls</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The declarations of the locations. Includes the invariants, marker
predicates, equations, and urgency.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>guards</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The guards of the edges. Includes also the urgency of the edge (the
<code>now</code>) keyword.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>updates</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The updates of the edges.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>In the option dialog, each of the features can be enabled and disabled
individually, using a checkbox.</p>
</div>
<div class="paragraph">
<p>From the command line, using the <code>-f</code> or <code>--model-filters</code> option, the
names of the different features, as indicates in the first column of the table
above, should be used, separated by commas. The features indicated as default
in the second column of the table, are enabled when default settings are used,
i.e. when the <code>-f</code> or <code>--model-filters</code> option is not used. As an example,
consider <code>-f guards,updates</code> or <code>--model-filters=guards,updates</code>. Only
the guards and updates are included, while all the other features are excluded.</p>
</div>
<div class="paragraph">
<p>The features that are specified using the option replace the default features.
However, it is also possible to specify additions and removals relative to the
default features, by prefixing features with a <code>+</code> or <code>-</code> respectively. For
instance, when using <code>-f -loc-decls,+io</code> or
<code>--model-filters=-loc-decls,+io</code> the default features are used, with the
declarations of the locations disabled (due to <code>-loc-decls</code>), and with I/O
declarations enabled (due to <code>+io</code>). Replacements (no prefix) may not be
combined with additions/removals (<code>+</code> or <code>-</code> prefix).</p>
</div>
<div class="paragraph">
<p>Specifying a replacement feature type twice leads to a warning being printed to
the console. Adding a feature that is already present or removing a feature
that is not present, also leads to a warning being printed.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2yed-diagram-relations">Relations diagram</h6>
<div class="paragraph">
<p>The option value to use on the command line, for this kind of diagrams, is
<code>relations</code>.</p>
</div>
<div class="paragraph">
<p>A diagram of only the <a href="#lang-tut-basics-automata-events">event</a> and
data relations. The diagram can be used to see which events are used by which
<a href="#tut-basics-chapter-automata">automata</a> (are in the
<a href="#tut-basics-chapter-alphabet">alphabet</a> of those automata). It can also be
used to see which data (variables, locations, etc) exist in the model and where
they are used. Furthermore, it can also be used to see how events and data are
passed via automaton and group
<a href="#tut-reuse2-chapter-aut-def-inst">instantiations</a>. Events, variables, and
locations can thereby potentially be renamed if the
<a href="#tut-reuse2-chapter-aut-def-params">parameters</a> of the
corresponding automaton or <a href="#tut-reuse2-chapter-groups">group</a>
<a href="#tut-reuse2-chapter-aut-def-inst">definitions</a> have different names than
the events, variables, and locations that are passed via the instantiations.</p>
</div>
<div class="paragraph">
<p>All components (automata, groups, automaton instantiations, and group
instantiations) and component definitions (automaton and group definitions) are
visualized in a hierarchical manner, as rectangles contained in other
rectangles. Automaton and group instantiations are unfolded to their contents
(the body of the corresponding automaton or group definition). Essentially, it
is as if component definition/instantiation has been
<a href="#tools-cif2cif-chapter-elim-comp-def-inst">eliminated</a>, but the parameters are
kept. Within components and component definition bodies, the components
(including the component instantiations) and declarations (event declarations,
event parameters, algebraic variables, algebraic parameters, locations, etc)
are separated from the component definitions, using additional wrapping boxes.
Such wrapping boxes are only added if both components and component definitions
are present, and thus separation is needed.</p>
</div>
<div class="paragraph">
<p>However, all internal details of component instantiations are omitted, as they
can be seen in the graphical representations of component definitions (that are
instantiated by the instantiations). That is, only the external connections are
included, as they show the actual relations (definition here and use there,
synchronizations between components, etc). By excluding the internal details,
duplication is avoided for multiple instantiations of the same definition. All
empty components and components definitions are also excluded, as they only
clutter the diagram, and have no relations whatsoever.</p>
</div>
<div class="paragraph">
<p>All components can be closed (collapsed) and opened (expanded) in yEd, allowing
to hide unimportant details while focusing on only a part of the diagram. By
default, all components are closed (collapsed). This allows seeing the top
level structure. By selectively opening (expanding) components, more details
can be shown. It is also possible to focus on a single component, to show only
that component and its contents, by selecting
<span class="menuseq"><b class="menu">Grouping</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">View Group Content</b></span>
in yEd, while a closed or
opened component is selected.</p>
</div>
<div class="paragraph">
<p>The header of the component is shown at the top of the rectangle. It includes
the name of the component or component definition, whether it is a group or
automaton, whether it is a definition or not, etc. The parameters of component
definitions, and the arguments of component instantiations, are all omitted
from the headers. For wrappers either <em>Components</em> or <em>Component definitions</em>
is used as header text. For groups, group definitions, and group instantiations
an italic font is used, while for automata, automaton definitions, automaton
instantiations, and wrapping boxes, a regular font is used. The background of
the header is colored as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_comp_header.png" alt="cif2yed color comp header"></span>
A component (group/automaton)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_def_header.png" alt="cif2yed color def header"></span>
A component definition (group/automaton definition)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_inst_header.png" alt="cif2yed color inst header"></span>
A component instantiation (group/automaton instantiation)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_color_wrap_box_header.png" alt="cif2yed color wrap box header"></span>
A wrapping box for components (incl. instantiations) or component definitions</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Event <a href="#lang-tut-basics-automata-events">declarations</a>,
<a href="#tut-data-chapter-discrete-variables">discrete variables</a>,
<a href="#tut-time-chapter-continuous-variables">continuous variables</a>,
<a href="#tut-reuse1-chapter-algebraic-variables">algebraic variables</a>,
<a href="#tut-reuse2-chapter-input-variables">input variables</a>, and
<a href="#lang-tut-basics-automata-location">locations</a> are all visualized as
rectangles with a thick border. The text in the rectangle is a keyword
(<code>event</code>, <code>disc</code>, <code>cont</code>, etc), followed by the name of the declaration.
For <a href="#tut-channels-chapter-intro">channels</a> (events with a data type), the
name is followed by <code>!?~</code>.</p>
</div>
<div class="paragraph">
<p>Event, location, and algebraic
<a href="#tut-reuse2-chapter-aut-def-params">parameters</a> are visualized as
octagons with a thin dashed border. The text in the rectangle is a keyword
(<code>event</code>, <code>location</code>, etc), followed by the name of the parameter. For
<a href="#tut-channels-chapter-intro">channels</a> (events with a data type), the name
is followed by the <a href="#lang-tut-reuse2-aut-def-param-kinds-event-restrictions">event parameter usage restriction flags</a> (e.g. <code>!</code> for send,
<code>?</code> for receive, and/or <code>~</code> for synchronization). For channel parameters
without flags, <code>!?~</code> is used as text after the name of the parameter.</p>
</div>
<div class="paragraph">
<p>Uses of events and data are visualized as circles. For uses of events by
automata (event in the alphabet of the automaton), the circles indicate the
type of use: <code>!</code> if the automaton sends over the channel, <code>?</code> if the
automaton receives over the channel, and no text if the automaton
<a href="#tut-basics-chapter-synchronizing-events">synchronizes</a> over the event (the
event is in the alphabet of the automaton). For data uses, the circles never
contain text.</p>
</div>
<div class="paragraph">
<p>Different colors are used for declarations, parameters, and uses, as well as
for events and data:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_event_decl.png" alt="cif2yed event decl"></span>
An event declaration</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_event_param.png" alt="cif2yed event param"></span>
An event parameter</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_event_usage_send.png" alt="cif2yed event usage send"></span>
An event usage (automaton sends)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_event_usage_recv.png" alt="cif2yed event usage recv"></span>
An event usage (automaton receives)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_event_usage_sync.png" alt="cif2yed event usage sync"></span>
An event usage (automaton synchronizes)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_data_decl.png" alt="cif2yed data decl"></span>
A variable declaration or a location</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_data_param.png" alt="cif2yed data param"></span>
A location parameter or an algebraic parameter</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2yed/cif2yed_data_usage.png" alt="cif2yed data usage"></span>
A data (variable, location, parameter) usage in a component</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Each event usage is coupled to the event declaration or event parameter that it
refers to, using a directed or undirected edge. For synchronizing usage an
undirected edge is used, for send usage a directed edge from the usage to the
event declaration or event parameter is used, and for receive usage a directed
edge from the event declaration or event parameter to the usage is used.</p>
</div>
<div class="paragraph">
<p>Each data usage in a component not related to a declaration (variable,
location, or parameter) gets a circular node to indicate usage. It is coupled
to the declaration it uses, via a directed edge from the declaration to the
use, to indicate the flow of data. Duplicate edges are avoided.</p>
</div>
<div class="paragraph">
<p>Event parameters of component instantiations are coupled to the actual event
(or event parameter) that is provided by the instantiation, using a directed or
undirected edge. If the parameter is a channel parameter that explicitly allows
sending (has a <code>!</code> flag) and doesn&#8217;t allow receiving (has no <code>?</code> flag), a
directed edge from the parameter to the actual event is used. If it explicitly
allows receiving (has <code>?</code> flag) and doesn&#8217;t allow sending (has no <code>!</code>
flag), a directed edge from the actual event to the parameter is used. If it
explicitly allows both sending and receiving (has both a <code>!</code> and a <code>?</code>
flag), a bidirectional edge is used. In all other cases, an undirected edge is
used.</p>
</div>
<div class="paragraph">
<p>Location parameters of component instantiations are coupled to the actual
location (or location parameter) that is provided by the instantiation, using a
directed edge from the actual location to the parameter, to indicate the flow
of data. Similarly, algebraic parameters are related to the actual arguments.
However, for algebraic parameters, an
<a href="#tut-values-chapter-types-values-exprs">expression</a> may be provided. For
each variable, location, and parameter used in the actual argument, a directed
edge is added. Duplicate edges are avoided.</p>
</div>
<div class="paragraph">
<p>From declarations (variables, locations, parameters), directed edges are
included in the diagram for all relations to other declarations. For instance,
if a discrete variable is initialized using the value of an algebraic variable,
there will be an edge from the algebraic variable to the discrete variable.
Similarly, if in a continuous variable is used in a guard, there will be an
edge from the continuous variable to the location that contains the edge.
Duplicate edges are avoided.</p>
</div>
<div class="paragraph">
<p>As an example consider the following relations diagram of the CIF
'machine/buffer' example, showing only the event relations:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cif2yed/machine_buffer.events.layouted.png" alt="machine buffer.events.layouted">
</div>
</div>
<div class="paragraph">
<p>Using the <em>Relations</em> option (see the <a href="#tools-cif2yed-options">Options</a> section
above), certain kinds of relations included or excluded from the diagram. By
default all kinds of relations are included. The following kinds of relations
are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>event relations (<code>event</code>)</p>
</li>
<li>
<p>data relations (<code>data</code>)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In the option dialog, each of the features can be enabled and disabled
individually, using a checkbox.</p>
</div>
<div class="paragraph">
<p>From the command line, using the <code>-r</code> or <code>--relations</code> option, the
names of the different kinds of relations, as indicates between parentheses
above, should be used, separated by commas. As an example, consider
<code>-r event</code> or <code>--relations=event</code>. Only the event relations are included,
while all the other relations are excluded.</p>
</div>
<div class="paragraph">
<p>The kinds that are specified using the option replace the default kinds.
However, it is also possible to specify additions and removals relative to the
default kinds, by prefixing names with a <code>+</code> or <code>-</code> respectively. For
instance, when using <code>-r -event</code> or <code>--relations=-event</code> the default kinds
are used, with the event relations excluded (due to <code>-event</code>). Replacements
(no prefix) may not be combined with additions/removals (<code>+</code> or <code>-</code>
prefix).</p>
</div>
<div class="paragraph">
<p>Specifying a replacement kind type twice leads to a warning being printed to
the console. Adding a kind that is already present or removing a kind that is
not present, also leads to a warning being printed. Finally, generating a
relations diagram without any relations also leads to a warning being printed.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2yed-layout">Layout</h5>
<div class="paragraph">
<p>The generated diagrams can be opened in the yEd Diagram Editor using
<span class="menuseq"><b class="menu">File</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Open&#8230;&#8203;</b></span>. After opening the diagram, all nodes
overlap, as the generated diagrams don&#8217;t contain any positions for them. yEd
can automatically layout the diagram. Several layout algorithms are available
in the
<b class="menuref">Layout</b>
menu.</p>
</div>
<div class="paragraph">
<p>Good results for <a href="#tools-cif2yed-diagram-model">model diagrams</a> can often
be obtained by using the
<b class="button">Orthogonal layout</b>.
Select
<span class="menuseq"><b class="menu">Layout</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Orthogonal</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Classic</b></span> to show the
'Orthogonal Layout' window. Click the
<b class="button">Dock</b>
button to dock
the window. Once docked, select
<b class="button">Integrated</b>
for
<b class="button">Edge Labeling</b>
and
<b class="button">Free</b>
for
<b class="button">Edge Label Model</b>.
Also enable the
<b class="button">Length Reduction</b>
and
<b class="button">Consider Node Labels</b>
options. Press the
<b class="button">Apply changes</b>
button (the green rectangle) at the top of the docked window to apply the
changes to the layout.</p>
</div>
<div class="paragraph">
<p>You may want to try different values for the 'Grid' option, to get
more or less spacing between nodes. Once you change a value, just apply the new
layout, as before. The automatic layout algorithms aren&#8217;t perfect, but they are
usually a good starting point.</p>
</div>
<div class="paragraph">
<p>By default, edge labels have a light gray background. This makes them easier
to read when placed on the edges. By changing the 'Edge Label Model' from
'Free' to 'Side Slider' , labels are not placed on the
edges, but besides them. However, this often leads to some overlap, requiring
manual layouting. If the 'Side Slider' variant is used, you may want
to change the background of the edge labels to be transparent. This can be
achieved by enabling the <em>Transparent edge labels</em> option (see the
<a href="#tools-cif2yed-options">Options</a> section above).</p>
</div>
<div class="paragraph">
<p>Good results for <a href="#tools-cif2yed-diagram-relations">relations diagrams</a>
can often be obtained using the 'One-Click Layout' functionality of
yEd. Select <span class="menuseq"><b class="menu">Layout</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">One-Click Layout</b></span> or use the
corresponding toolbar button. This option is only available in yEd 3.14 or
newer.</p>
</div>
<div class="paragraph">
<p>You can also close (collapse) and open (expand) groups and apply the layout
again.</p>
</div>
<div class="paragraph">
<p>yEd has many more options. You can explore them using the included help text,
by selecting <span class="menuseq"><b class="menu">Help</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Help</b></span>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-structure-view">Structure View</h5>
<div class="paragraph">
<p>yEd has a <em>Structure View</em> window that can be enabled via
<span class="menuseq"><b class="menu">Windows</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Structure View</b></span>. The <em>Structure View</em> can be used
to see and navigate the structure of the CIF model. By switching from
'Text' to 'Description' (see upper right corner of the
<em>Structure View</em> window), useful descriptions are shown for all elements.
Furthermore, switching also ensures that the HTML code that is used for syntax
highlighting is not shown in the <em>Structure Viewer</em> (if syntax highlighting is
enabled, see the <a href="#tools-cif2yed-options">Options</a> section above). The following
image shows the difference:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cif2yed/yed_structure_view.png" alt="yed structure view">
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tools-supervisory-controller-synthesis-tools">Supervisory controller synthesis tools</h3>
<div class="sect3">
<h4 id="tools-chapter-datasynth">Data-based supervisory controller synthesis</h4>
<div class="paragraph">
<p>


The data-based supervisory controller synthesis tool performs data-based
supervisory controller synthesis, or simply data-based synthesis. It can be
used to <a href="#tut-extensions-chapter-synthesis">synthesize</a> a supervisor for an
untimed CIF specification, with data
(e.g. <a href="#tut-data-chapter-discrete-variables">discrete variables</a>). For a CIF
specification with plants and requirements, the tool computes a supervisor.
The supervisor restricts the plants in such a way that the resulting controlled
system satisfies the following properties:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The controlled system is safe. That is, all reachable states in the
controlled system satisfy the requirements.</p>
</li>
<li>
<p>The controlled system is controllable. That is, for all reachable states in
the controlled system, the
<a href="#lang-tut-extensions-synthesis-evtctrl">uncontrollable</a> events that are
enabled in the same state in the uncontrolled system are still possible in
the controlled system. In other words, uncontrollable events are not
restricted.</p>
</li>
<li>
<p>The controlled system is non-blocking. That is, it is possible to reach a
<a href="#lang-tut-extensions-synthesis-marked">marked</a> state from all reachable
states in the controlled system.</p>
</li>
<li>
<p>The controlled system is maximally permissive (or simply maximal). That is,
the controlled system permits all safe, controllable, and non-blocking
behaviors.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Note that <a href="#lang-tut-time-deadlock">deadlock</a> is not prevented for marked
states.</p>
</div>
<div class="paragraph">
<p>The synthesis algorithm is based on the following paper: Lucien Ouedraogo,
Ratnesh Kumar, Robi Malik, and Knut Åkesson: Nonblocking and Safe
Control of Discrete-Event Systems Modeled as Extended Finite Automata, IEEE
Transactions on Automation Science and Engineering, Volume 8, Issue 3, Pages
560-569, July 2011.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-transformation-2">Starting the transformation</h5>
<div class="paragraph">
<p>The transformation can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply data-based synthesis&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply data-based synthesis&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifdatasynth</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifdatasynth</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-options">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application several other
options.</p>
</div>
<div class="paragraph">
<p>The following options are part of the <em>Synthesis</em> category:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file path</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file path</em>: The absolute or relative local file system path to the
output CIF file. If not specified, defaults to the input file path, where the
<code>.cif</code> file extension is removed (if present), and a <code>.ctrlsys.cif</code>
file extension is added.</p>
</li>
<li>
<p><em>Supervisor name</em>: The name of the resulting supervisor automaton. If not
specified, it defaults to <code>sup</code>. For more information, see the section on
the <a href="#tools-datasynth-supervisor">resulting supervisor</a> below.</p>
</li>
<li>
<p><em>Supervisor namespace</em>: The namespace of the resulting supervisor. If not
specified, it defaults to the empty namespace. For more information, see the
section on <a href="#tools-datasynth-supervisor-namespace">namespaces</a> below.</p>
</li>
<li>
<p><em>Forward reachability</em>: Whether to perform forward reachability during
synthesis, or omit it. Is disabled by default. For more information, see the
section on <a href="#tools-datasynth-forward-reach">forward reachability</a> below.</p>
</li>
<li>
<p><em>Statistics</em>: The kinds of statistics to print. By default, no statistics
are printed. For more information, see the section on
<a href="#tools-datasynth-stats">statistics</a> below.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Internally during synthesis, predicates are represented using
<a href="http://en.wikipedia.org/wiki/Binary_decision_diagram">Binary Decision Diagrams</a>
(BDDs). There are
various options that can influence the use of BDDs. The following options are
part of the <em>BDD</em> sub-category of the <em>Synthesis</em> category:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>BDD output mode</em>: This option can be used to control how the BDDs are
converted to CIF for the output of synthesis. For more information, see the
<a href="#tools-datasynth-supervisor-bdd">BDD representation in CIF</a> section below.</p>
</li>
<li>
<p><em>BDD output name prefix</em>: The prefix to use for BDD related names in the
output. Only has an effect if the <em>BDD output mode</em> option is set to
represent the internal BDD nodes directly in CIF. The default prefix is
<code>bdd</code>. For more information, see the <a href="#tools-datasynth-supervisor-bdd">BDD representation in CIF</a>
section below.</p>
</li>
<li>
<p><em>BDD variable order</em>: CIF variables and automata are represented using one or
more boolean variables. The initial order of the boolean variables is
determined by this option. For more information, see the
<a href="#tools-datasynth-var-order">BDD variable order</a> section below.</p>
</li>
<li>
<p><em>BDD FORCE variable ordering algorithm</em>: CIF variables and automata are
represented using one or more boolean variables. The initial order of the
boolean variables can be improved by enabling this option. For more
information, see the <a href="#tools-datasynth-var-order">BDD variable order</a> section below.</p>
</li>
<li>
<p><em>BDD sliding window variable ordering algorithm</em>: CIF variables and automata
are represented using one or more boolean variables. The initial order of the
boolean variables can be improved by enabling this option. For more
information, see the <a href="#tools-datasynth-var-order">BDD variable order</a> section below.</p>
</li>
<li>
<p><em>BDD sliding window size</em>: The maximum length of the window to use for the
BDD sliding window variable ordering algorithm. This option only has effect
if the <em>BDD sliding window variable ordering algorithm</em> option is enabled.
The size must be an integer number in the range [1 .. 12]. The default size
is 4. For more information, see the <a href="#tools-datasynth-var-order">BDD variable order</a> section
below.</p>
</li>
<li>
<p><em>BDD predicate simplify</em>: Several BDD predicates may be simplified under the
assumption of other predicates, resulting in smaller/simpler output. This may
decrease the size of the resulting controller, and may give more insight. For
more information, see the <a href="#tools-datasynth-simplification">Simplification</a> section
below.</p>
</li>
<li>
<p><em>BDD library initial node table size</em>: The BDD library that is used maintains
an internal node table. This option can be used to set the initial size of
that node table. The size will automatically be increased during synthesis,
if necessary. Increasing the initial size can increase performance for large
systems, as it will not be necessary to repeatedly increase the size of the
node table. However, a larger node table requires more memory, and can lead
to the node table no longer fitting within CPU caches, degrading performance.
The default is <code>100000</code> nodes. The initial node table size must be in the
range [1 .. 2<sup>31</sup> - 1]. For more information, see the
<a href="#tools-datasynth-stats">Statistics</a> section.</p>
</li>
<li>
<p><em>BDD library operation cache size</em>: The BDD library that is used maintains
an internal operation cache. This option can be used to set the fixed size of
that cache. The operation cache size must be in the range
[2 .. 2<sup>31</sup> - 1]. By default, this option is disabled (value <code>off</code> on
the command line), and the <em>BDD library operation cache ratio</em> option is
used instead. For more information, see the <a href="#tools-datasynth-op-caches">BDD operation caches</a>
section below.</p>
</li>
<li>
<p><em>BDD library operation cache ratio</em>: The BDD library that is used maintains
an internal operation cache. This option can be used to set the ratio of the
size of the operation cache of the BDD library to the size of the node table
of the BDD library. For instance, a ratio of <code>0.1</code> means that the size of
the operation cache is 10% of the size of the node table. The operation cache
ratio must be in the range [0.01 .. 1000]. The default ratio is 1.0. This
option has no effect if the <em>BDD library operation cache size</em> option is
enabled. For more information, see the <a href="#tools-datasynth-op-caches">BDD operation caches</a>
section below.</p>
</li>
<li>
<p><em>BDD debug max nodes</em>: Internally, predicates are represented
using
<a href="http://en.wikipedia.org/wiki/Binary_decision_diagram">Binary Decision Diagrams</a>
(BDDs). This option
control the maximum number of BDD nodes for which to convert a BDD to a
readable CNF/DNF representation for the debug output. The default is <code>10</code>
nodes. The maximum must be in the range [1 .. 2<sup>31</sup> - 1].
The option
can be set to have an infinite maximum (no maximum), using option value
<code>inf</code>. For more information, see the <a href="#tools-datasynth-dbg-output">Debug output</a>
section below.</p>
</li>
<li>
<p><em>BDD debug max paths</em>: Internally, predicates are represented
using
<a href="http://en.wikipedia.org/wiki/Binary_decision_diagram">Binary Decision Diagrams</a>
(BDDs). This option
control the maximum number of BDD true paths for which to convert a BDD to a
readable CNF/DNF representation for the debug output. The default is <code>10</code>
paths. The maximum must be in the range [0 .. 1.7e308]. The option
can be set to have an infinite maximum (no maximum), using option value
<code>inf</code>. For more information, see the <a href="#tools-datasynth-dbg-output">Debug output</a>
section below.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-specifications-2">Supported specifications</h5>
<div class="paragraph">
<p>The data-based supervisory controller synthesis tool supports a subset of CIF
specifications. The following restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Only <code>plant</code> and <code>requirement</code> automata are supported. Automata with a
<code>supervisor</code> kind, as well as kindless/regular automata (without a
supervisory kind) are not supported.</p>
</li>
<li>
<p>Specifications without plant automata are not supported.</p>
</li>
<li>
<p>Events not declared as controllable or uncontrollable are not supported.
This includes the <code>tau</code> event, both explicitly used on edges, as well as
implicitly for edges without explicitly mentioned events.</p>
</li>
<li>
<p>The use of channels (events with data types) in requirements is not
supported. That is, requirements that send or receive (with or without data)
are not supported.</p>
</li>
<li>
<p>Regular invariants, plant invariants, and supervisor invariants are not
supported. Only requirement invariants are supported. To allow plant
state/event exclusion invariants to be used in the input, manually eliminate
them first using the <a href="#tools-cif2cif-chapter-elim-state-event-excl-invs">Eliminate state/event exclusion invariants</a> CIF to
CIF transformation.</p>
</li>
<li>
<p>Continuous variables are not supported.</p>
</li>
<li>
<p>Only discrete/input variables with a boolean type, ranged integer type
(e.g. <code>int[0..5]</code>), or enumeration type are supported. For integer types,
ranges that include negative integer values are not supported. For algebraic
variables and algebraic parameters of components, all types are supported.</p>
</li>
<li>
<p>Discrete variables must have supported initial values. If explicit initial
values are given, they must be supported predicates (for boolean variables)
or supported expressions as described below (for all other variables).</p>
</li>
<li>
<p>Automata with non-determinism for controllable events are not supported.
That is, automata that have locations with multiple outgoing edges for the
same controllable event, with overlapping guards (e.g. <code>x &gt; 1</code> and
<code>x &lt; 4</code>), are not supported. Note that this check is performed on the
<a href="#tools-cif2cif-chapter-linearize-product">linearized</a> guards, and may
therefore lead to false positives, as the check is an over-approximation and
guard overlap may be detected for unreachable states.</p>
</li>
<li>
<p>Conditional updates (<code>if</code> updates), multi-assignments, and partial variable
assignments are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Only limited forms of predicates (for markers, invariants, initialization,
guards, etc) are supported. The supported predicates are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Boolean literals (<code>true</code>, <code>false</code>).</p>
</li>
<li>
<p>Discrete/input/algebraic boolean variables (<code>x</code>, for <code>x</code> a discrete,
input, or algebraic variable with a boolean type).</p>
</li>
<li>
<p>Locations (<code>aut.loc</code>, for <code>aut</code> and automaton and <code>loc</code> a location of
that automaton).</p>
</li>
<li>
<p>The unary inverse operator (<code>not</code>) on a supported predicate.</p>
</li>
<li>
<p>The binary logical conjunction (<code>and</code>) on two supported predicates.</p>
</li>
<li>
<p>The binary logical disjunction (<code>or</code>) on two supported predicates.</p>
</li>
<li>
<p>The binary logical implication (<code>=&gt;</code>) on two supported predicates.</p>
</li>
<li>
<p>The binary logical bi-conditional (<code>&lt;=&gt;</code>) on two supported predicates.</p>
</li>
<li>
<p>The binary equality comparison (<code>=</code>) on two supported predicates, or on two
supported integer or enumeration expressions.</p>
</li>
<li>
<p>The binary inequality comparison (<code>!=</code>) on two supported predicates, or on
two supported integer or enumeration expressions.</p>
</li>
<li>
<p>The binary less than comparison (<code>&lt;</code>) on two supported integer expressions.</p>
</li>
<li>
<p>The binary less than or equal comparison (<code>&lt;=</code>) on two supported integer
expressions.</p>
</li>
<li>
<p>The binary greater than comparison (<code>&gt;</code>) on two supported integer
expressions.</p>
</li>
<li>
<p>The binary greater than or equal comparison (<code>&gt;=</code>) on two supported integer
expressions.</p>
</li>
<li>
<p>Conditional expressions (<code>if</code> expressions) with supported guard and
resulting value predicates.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Only limited forms of integer and enumeration expressions (for binary
comparisons, initial values of variables, right hand sides of assignments, etc)
are supported. The supported expressions are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A non-negative integer literal/value.</p>
</li>
<li>
<p>An enumeration literal/value.</p>
</li>
<li>
<p>Discrete/input/algebraic integer/enumeration variables (<code>x</code>, for <code>x</code> a
discrete, input, or algebraic variable with an integer or enumeration type).</p>
</li>
<li>
<p><code>+i</code> for <code>i</code> a supported integer expression.</p>
</li>
<li>
<p><code>i + j</code> for <code>i</code> and <code>j</code> supported integer expressions.</p>
</li>
<li>
<p><code>i div j</code> and <code>i mod j</code> for <code>i</code> a supported integer expressions, and
<code>j</code> a positive integer value, or a computation that results in a positive
integer value, as long as the computation is not too complex to be performed
statically. That is, <code>j</code> must essentially be constant.</p>
</li>
<li>
<p>Conditional expressions (<code>if</code> expressions) with supported guard predicates
and supported resulting values.</p>
</li>
<li>
<p>Any other valid CIF expression (computation) that that results in a
non-negative integer value or an enumeration value, as long as the
computation is not too complex to be performed statically. That is, the
computation must essentially represent a fixed/constant value.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Here are some examples of computations that can be statically evaluated:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>true and false</code> (result is <code>false</code>)</p>
</li>
<li>
<p><code>c or false</code>, for a constant <code>c</code> with value <code>false</code> (result is
<code>false</code>)</p>
</li>
<li>
<p><code>1 + 1</code> (result is <code>2</code>)</p>
</li>
<li>
<p><code>2 * 5</code> (result is <code>10</code>)</p>
</li>
<li>
<p><code>floor(3.14)</code> (result is <code>3</code>)</p>
</li>
<li>
<p><code>c + 1</code>, for a constant <code>c</code> with value <code>2</code> (result is <code>3</code>)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Here are some examples of computations that can <em>not</em> be statically evaluated:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>v + 1</code>, for <code>v</code> a discrete variable. The computation results in
different values for different values of <code>v</code>.</p>
</li>
<li>
<p><code>v = true</code> for <code>v</code> a discrete variable. The computation results in
different values for different values of <code>v</code>.</p>
</li>
<li>
<p><code>v = e</code> for <code>v</code> a discrete variable and <code>e</code> an enumeration
literal/value. The computation results in different values for different
values of <code>v</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Only limited forms of assignments are supported. The supported assignments are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>xb := p</code></p>
</li>
<li>
<p><code>xi := ie</code></p>
</li>
<li>
<p><code>xi := ie - ie</code></p>
</li>
<li>
<p><code>xe := ee</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For the following constraints:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>xb</code> is a boolean variable.</p>
</li>
<li>
<p><code>xi</code> is a supported integer variable, as described above.</p>
</li>
<li>
<p><code>xe</code> is an enumeration variable.</p>
</li>
<li>
<p><code>p</code> is a supported predicate, as described above.</p>
</li>
<li>
<p><code>ie</code> is a supported integer expression, as described above.</p>
</li>
<li>
<p><code>ee</code> is a supported enumeration expression, as described above.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Additionally, the tool warns about state/event exclusion invariants for events
that are not in the alphabet of any automaton. Such invariants have no effect,
as they try to (further) restrict events that are never enabled to begin with.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-2">Preprocessing</h5>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be synthesized:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Additionally, the CIF specification is converted to an internal representation
on which the synthesis is performed. This conversion also applies
<a href="#tools-cif2cif-chapter-linearize-product">linearization (product variant)</a> to
the edges. Predicates are represented internally using
<a href="http://en.wikipedia.org/wiki/Binary_decision_diagram">Binary Decision Diagrams</a>
(BDDs).</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-requirements">Supported requirements</h5>
<div class="paragraph">
<p>Three types of requirements are supported:
<a href="#tut-data-chapter-stat-invariants">state invariants</a>,
<a href="#tut-data-chapter-stat-evt-excl-invariants">state/event exclusion invariants</a>, and
<a href="#lang-tut-extensions-synthesis-autkind">requirement automata</a>.</p>
</div>
<div class="paragraph">
<p>State invariants are global conditions over the values of variables (and
locations of automata) that must always hold. Such requirements are sometimes
also called mutual state exclusions. Here are some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">requirement invariant x != 0 and not p.b;
requirement invariant x &gt; 5;
requirement invariant not(x = 1 and y = 1) or q.x = a;

requirement (x = 1 and y = 1) or (x = 2 and y = 2);
requirement (3 &lt;= x and x &lt; = 5) or (2 &lt;= y and y &lt;= 7);
requirement x = 1 =&gt; y &gt; 2;</code></pre>
</div>
</div>
<div class="paragraph">
<p>State/event exclusion invariants or simply state/event exclusions are
additional conditions under which transitions may take place for certain
events. Here are some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">requirement invariant buffer.c_add    needs buffer.count &lt; 5;
requirement invariant buffer.c_remove needs buffer.count &gt; 0;
requirement invariant button.on = 1 disables lamp.c_turn_on;

requirement {lamp.c_turn_on, motor.c_turn_on} needs button.Off;
requirement p.x = 3 and p.y &gt; 7 disables p.u_something;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Requirement automata are simply automata marked as <code>requirement</code>. They
usually introduce additional state by using multiple locations or a variable.
The additional state is used to be able to express the requirement. One common
example is a counter. For instance, consider the following requirement, which
prevents more than three products being added to a buffer:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">requirement automaton counter:
  disc int[0..5] count = 0;

  requirement invariant count &lt;= 3;

  location:
    initial;
    marked;

    edge buffer.c_add do count := count + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Another common example is a requirement that introduces ordering. For instance,
consider the following requirement, which states that <code>motor1</code> must always be
turned on before <code>motor2</code> is turned on, and they must always be turned off in
the opposite order:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">requirement automaton order:
  location on1:
    initial;
    marked;
    edge motor1.c_on goto on2;

  location on2:
    edge motor2.c_on goto off2;

  location off2:
    edge motor2.c_off goto off1;

  location off1:
    edge motor1.c_off goto on1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Besides the explicit requirements, synthesis also prevents runtime errors. This
includes enforcing that integer variables stay within their range of allowed
values. This is essentially an implicit requirement. For instance, for a CIF
specification with a variable <code>x</code> of type <code>int[0..5]</code> and a variable <code>y</code>
of type <code>int[1..3]</code>, requirement invariant
<code>0 &lt;= x and x &lt;= 5 and 1 &lt;= y and y &lt;= 3</code> is
implicitly added and enforced by the synthesis algorithm. In the resulting
controlled system, no runtime errors due to variables being assigned values
outside their domain (integer value range) occur.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-supervisor">Resulting supervisor</h5>
<div class="paragraph">
<p>If the supervisor has to restrict so much of the behavior of the uncontrolled
system that no initial state remains, the controlled system becomes empty. The
synthesis algorithm then ends with an <em>empty supervisor</em> error, and no output
CIF file is created.</p>
</div>
<div class="paragraph">
<p>If an initial state remains after synthesis, an output CIF file is created. The
contents is the controlled system. The controlled system is obtained by taking
the input specification, and modifying it. The requirement automata are changed
to supervisor automata. Some or all of the requirement invariants may be
<a href="#tools-cif2cif-chapter-remove-reqs">removed</a>, depending on the
<a href="#tools-datasynth-simplification">simplifications</a> that are applied. An
additional external supervisor automaton is added. Also, depending on the
simplifications that are applied, the requirement automata may serve as
<a href="#tut-data-chapter-monitoring">monitors</a> or <em>observers</em> for the external
supervisor, or may actually impose the requirement restrictions. An external
supervisor is a <code>supervisor</code> automaton that adds restrictions to the
uncontrolled system (the plants), and potentially the requirement automata,
depending on the simplifications that are applied. The supervisor uses the
same events as the plants, and refers to plant and requirement locations and
variables in its conditions.</p>
</div>
<div class="paragraph">
<p>By default, the resulting external supervisor automaton is put in the empty
<a href="#tut-reuse2-chapter-namespaces">namespace</a>, at the top level of the
resulting specification. That is, the supervisor automaton is not put in any
groups. See the <a href="#tools-datasynth-supervisor-namespace">Namespace</a> section for more
information.</p>
</div>
<div class="paragraph">
<p>By default, the added supervisor automaton is named <code>sup</code>. Using the
<em>Supervisor name</em> option (see <a href="#tools-datasynth-options">options</a> section
above), it is possible to specify a different name. Custom supervisor automaton
names must be valid CIF identifiers, i.e. they may consist of letters, digits,
and underscores (<code>_</code>), but may not start with a digit. If the resulting
supervisor automaton has a name that conflicts with an existing declaration, it
is automatically renamed to have a non-conflicting name. In such cases, a
warning is printed to the console to inform the user.</p>
</div>
<div class="paragraph">
<p>The resulting supervisor has exactly one self loop edge for each of the
controllable events in the alphabet of the controlled system (which is equal to
the alphabet of the uncontrolled system). These self loops represent the
possible conditions under which the supervisor allows the events to occur in
the controlled system. The exact predicates may vary, depending on the
<a href="#tools-datasynth-simplification">simplifications</a> that are applied.</p>
</div>
<div class="paragraph">
<p>The resulting supervisor may have an initialization predicate that restricts
the states in which the system may be initialized (may start), on top of the
initialization constraints already present in the uncontrolled system. For more
information on this initialization predicate, see the section on
<a href="#tools-datasynth-init">initialization</a> below.</p>
</div>
<div class="sect5">
<h6 id="tools-datasynth-supervisor-namespace">Namespace</h6>
<div class="paragraph">
<p>As indicated above, by default the resulting supervisor automaton is put in the
empty <a href="#tut-reuse2-chapter-namespaces">namespace</a>, at the top level of the
resulting specification. That is, the supervisor automaton is not put in any
groups.</p>
</div>
<div class="paragraph">
<p>It is possible to add a namespace to the entire resulting specification. That
is, to put groups around the original plants and requirements, the added
supervisor automaton, etc. A namespace can be added using the
<em>Supervisor namespace</em> option (see <a href="#tools-datasynth-options">options</a>
section above). By default, no additional namespace is added.</p>
</div>
<div class="paragraph">
<p>By adding a namespace around the entire resulting specification, the synthesis
result can be easily <a href="#tools-chapter-mergecif">merged</a> with for instance a
simulation model. The added namespace ensures that there are no naming
conflicts between the plants of the simulation model and the similarly original
plants. The events are not put in the new namespace, but are instead kept in
their original place, wrapped in groups as necessary to keep their original
identities (absolute names). This ensures that it remains possible to connect
(merge) the events of the synthesis output with the events of the simulation
model.</p>
</div>
<div class="paragraph">
<p>The namespace specified using the option, must consist of one or more valid CIF
identifiers, separated by dots (<code>.</code>). Valid CIF identifiers consist of one or
more letters, digits, and underscores (<code>_</code>), but may not start with a digit.
As an example, consider namespace <code>a.b</code>. A group <code>b</code> is wrapped around the
entire synthesis result, and a group <code>a</code> is wrapped around group <code>b</code>. Group
<code>a</code> is then the new synthesis result.</p>
</div>
<div class="paragraph">
<p>If a part of the namespace has the same name as an event that remains in its
original place, this leads to a conflict, and synthesis fails. If the namespace
does not conflict, but is non-empty (it contains an event or it contains a
group that contains an event), synthesis also fails.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-datasynth-supervisor-bdd">BDD representation in CIF</h6>
<div class="paragraph">
<p>Internally, predicates are represented using
<a href="http://en.wikipedia.org/wiki/Binary_decision_diagram">Binary Decision Diagrams</a>
(BDDs). The supervisor
that is the output of synthesis, contains several predicates as well. For
instance, it has self loops with guard predicates, and it may have an
initialization predicate. The predicates represented as BDDs need to be
represented as CIF predicates. There are multiple approaches to do this, and
the <em>BDD output mode</em> option (see <a href="#tools-datasynth-options">options</a>
section above), can be used to configure the approach to use.</p>
</div>
<div class="paragraph">
<p>The first approach, which is also the default approach (named <code>normal</code>), is
to use either
<a href="http://en.wikipedia.org/wiki/Conjunctive_normal_form">Conjunctive Normal Form</a>
(CNF) or
<a href="http://en.wikipedia.org/wiki/Disjunctive_normal_form">Disjunctive Normal Form</a>
(DNF) predicates. This
approach has as benefit that for relatively small predicates (usually for small
systems), the CIF predicates are often intuitive, and can easily understood.
The downside is that for larger systems, the CIF predicates often grow
exponentially in size.</p>
</div>
<div class="paragraph">
<p>The second approached (named <code>nodes</code>), is to represent the internal BDD nodes
directly in CIF. The BDD is then more or less coded directly in CIF, using
some constants and algebraic variables, and is evaluated using a BDD evaluation
function. The benefit is that for larger systems, this representation remains
relatively small, and at the very least doesn&#8217;t blow up nearly as much as the
CNF and DNF representations. The downside to this approach, is that it leads to
a supervisor that can not be easily understood by inspecting it. For this
approach, several objects are created in the top level scope of the CIF
specification. The names of these declarations all share a common prefix. The
default prefix is <code>bdd</code>, but it can be changed using the
<em>BDD output name prefix</em> option (see
<a href="#tools-datasynth-options">options</a> section above). No existing
declarations, whose names start with that prefix, should be present in the top
level scope of the specification.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-init">Initialization</h5>
<div class="paragraph">
<p>The synthesis algorithm ensures that in the controlled system, the requirement
state invariants hold in all reachable states. It also ensures that in the
controlled system, for all transitions from reachable states, the events only
occur if the requirement automata and state/event exclusion invariants allow
them.</p>
</div>
<div class="paragraph">
<p>The synthesis algorithm does not restrict any uncontrollable events. Instead,
such restrictions are propagated backwards to the source state of the edge with
the uncontrollable event, and from there to the transitions that lead to the
source state, etc. They are propagated backwards until an edge with a
controllable event is encountered (for which the guard can be restricted) or
the initial state is reached (and the initialization predicate can be
restricted).</p>
</div>
<div class="paragraph">
<p>If a variable in the uncontrolled system has a single initial value, and the
initialization predicate is restricted to not allow this initial value,
initialization will be impossible, causing an <em>empty supervisor</em> error. For
discrete variables with
<a href="#lang-tut-data-discvar-init-multiple">multiple potential initial values</a>,
the synthesis algorithm may restrict initialization to disallow certain initial
values, while still leaving possibilities for initialization. For discrete
variables declared to initially have an
<a href="#lang-tut-data-discvar-init-any">arbitrary</a> initial value, as well as
for input variables, the synthesis algorithm essentially determines under which
conditions the system can be started, and still exhibits only safe,
non-blocking behavior.</p>
</div>
<div class="paragraph">
<p>If the controlled system requires more strict initialization than the
uncontrolled system, an additional initialization predicate is added to the
resulting supervisor. The exact predicate may differ, depending on the
<a href="#tools-datasynth-simplification">simplifications</a> that are applied.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-forward-reach">Forward reachability</h5>
<div class="paragraph">
<p>Synthesis essentially works by calculations that involve predicates that
partition the entire state space into states that satisfy a property or don&#8217;t
satisfy a property. For instance, a marker predicate may indicate which states
of the state space are marked. All other states are thus not marked.</p>
</div>
<div class="paragraph">
<p>

Calculations during synthesis often involve
<a href="https://en.wikipedia.org/wiki/Reachability">reachability</a>.
For instance,
from which states is it possible to reach a marker state? To compute the states
that can reach a marker state, the marker predicate of the input specification
is used. The marker predicate indicates the states that are themselves marked.
Then, the states are calculated that can reach one of those marked states, via
a single transition. They are put together, to form the states that are marked
or can be marked after one transition. By taking another such step, we can add
the states that can reach a marked state via two transitions. We then have all
states that can reach a marked state via zero, one, or two transitions. We can
repeat this until no new states are found, which is called reaching a
<a href="https://en.wikipedia.org/wiki/Fixed_point_%28mathematics%29">fixed point</a>.</p>
</div>
<div class="paragraph">
<p>
This form of reachability is called backward reachability, as it starts with
some target (e.g. marked states), and goes backwards to find all states from
which the target can be reached. Backward reachability can lead to states that
could never be reached from an initial state, even in the uncontrolled system.
This leads to two separate issues.</p>
</div>
<div class="paragraph">
<p>The first issue is about unintuitive resulting supervisor guards. The
resulting supervisor forbids certain transitions, by restricting controllable
events. It among others forbids transitions that end up in states from which no
marked state can be reached. However, if those forbidden states can never be
reached from an initial state, there is no reason to restrict the controllable
events in such cases. The guards of the resulting supervisor then appear to
restrict the controllable events, while in fact the guard doesn&#8217;t impose a
restriction for the controlled system. The supervisor simply doesn&#8217;t have the
necessary information to know this.</p>
</div>
<div class="paragraph">
<p>The second issue is about performance. Expanding unreachable states during
backward reachability takes time and costs memory, while it has no useful
effect on the resulting controlled system.</p>
</div>
<div class="paragraph">
<p>
The use of forward reachability can be a solution to both problems. Forward
reachability starts with the initial states, and adds states reachable via one
transitions, then via two transitions, then via three transitions, etc. This
is repeated until all reachable states are found.</p>
</div>
<div class="paragraph">
<p>By combining both forward and backward reachability, the supervisor knows about
states that exist in the uncontrolled system (due to forward reachability) and
about states that it should forbid (due to backward reachability). This leads
to the supervisor only restricting transitions that are strictly necessary.
However, both when using forward reachability and when not using it, the
synthesized supervisor is safe, non-blocking, and maximally permissive. It is
only the guards that are more complex than they might need to be, if forward
reachability is not used. More complex guards are often less readable, and
potentially more expensive to implement in an actual controller.</p>
</div>
<div class="paragraph">
<p>By combining both forward and backward reachability, parts of the state space
that are not relevant may not have to be expanded (as much), which may improve
performance. However, computing the forward reachability may also take time
and cost memory, thus reducing performance.</p>
</div>
<div class="paragraph">
<p>It depends on the specification being synthesized whether enabling forward
reachability increases or decreases performance. It also depends on the
specification whether there is any benefit to using forward reachability for
the guards of the supervisor. Forward reachability is disabled by default. It
can be enabled using the <em>Forward reachability</em> option (see
<a href="#tools-datasynth-options">options</a> section above).</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-simplification">Simplification</h5>
<div class="paragraph">
<p>The synthesis algorithm computes various predicates, such as the conditions
under which the controllable events may take place in the controlled system,
and the initialization predicate of the controlled system. These predicates
are included in the supervisor that results from synthesis.</p>
</div>
<div class="paragraph">
<p>However, if the controlled system imposes the exact same restrictions as the
uncontrolled system, there is no need to list the full conditions in the
supervisor, as the plants already define that behavior. The supervisor imposes
no additional restrictions with respect to the plants, and it suffices to use
<code>true</code> as condition for the supervisor to make that explicit.</p>
</div>
<div class="paragraph">
<p>There are several predicates in the synthesis result that can be simplified
under the assumption of conditions that are already present in the input
specification. In some cases this leads to smaller/simpler supervisor
representations. In other cases it gives insight, indicating that the
supervisor does not impose any additional restrictions. The following
simplifications are available:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 15%;">
<col style="width: 5%;">
<col style="width: 30%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Option value</th>
<th class="tableblock halign-left valign-top">Default</th>
<th class="tableblock halign-left valign-top">Predicate</th>
<th class="tableblock halign-left valign-top">May be simplified assuming</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>guards-plants</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Supervisor guards of controllable events</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Plant guards, for the matching events</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>guards-req-auts</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Supervisor guards of controllable events</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">State/event exclusion requirement invariants derived from the
requirement automata, for the matching events</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>guards-se-excl-req-invs</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Supervisor guards of controllable events</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">State/event exclusion requirement invariants from the input
specification, for the matching events</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>guards-state-req-invs</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Supervisor guards of controllable events</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">State requirement invariants from the input specification (includes the
range requirement invariants added by the synthesis algorithm)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>guards-ctrl-beh</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Supervisor guards of controllable events</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Controlled behavior as computed by synthesis</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>initial-unctrl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Initialization predicate of the controlled system</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Initialization predicate of the uncontrolled system</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Which simplifications should be performed, can be specified using the
<em>BDD predicate simplify</em> option (see <a href="#tools-datasynth-options">options</a>
section above).</p>
</div>
<div class="paragraph">
<p>The table above lists in the first column, the option values to use for each of
the simplifications, on the command line. The names given in the first column
should be combined using commas, and used as option value. The simplifications
that are specified using the option replace the default simplifications (see
the second column of the table). However, it is also possible to specify
additions and removals relative to the default simplifications, by prefixing
simplifications (from the first column) with a <code>+</code> or <code>-</code> respectively.
Replacements (no prefix) may not be combined with additions/removals (<code>+</code> or
<code>-</code> prefix). Specifying a simplification twice leads to a warning being
printed to the console. Adding a simplification that is already present or
removing a simplification that is not present, also leads to a warning being
printed.</p>
</div>
<div class="paragraph">
<p>In the option dialog, each of the simplifications can be enabled or disabled
using a checkbox.</p>
</div>
<div class="paragraph">
<p>The second column indicates for each simplification whether it is enabled by
default. By default, all simplifications are enabled. The third column
indicates the predicate in the synthesis result that can be simplified. The
fourth column indicates under the assumption of which predicate the
simplification is applied.</p>
</div>
<div class="paragraph">
<p>The simplification algorithm is not perfect, and may not simplify the
predicates as much as could potentially be possible.</p>
</div>
<div class="paragraph">
<p>When simplifying with respect to state requirement invariants, the supervisor
no longer enforces those requirements, as they are assumed to already hold. As
such, the simplification prevents such invariants from being removed from the
resulting CIF specification. This applies to some of the other simplifications
as well. For instance, the simplification over state/event exclusion
requirement invariants leads to them being part of the output as well. This may
affect whether other tools can handle the resulting supervisor model as input,
depending on what kind of features they support. In particular, for code
generation, simplification of the guards with respect to the state requirement
invariants and state/event exclusion requirement invariants may need to be
disabled.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-dbg-output">Debug output</h5>
<div class="paragraph">
<p>By default, the synthesis algorithm shows no progress information, and does not
explain how the resulting supervisor is obtained. By enabling debug output,
detailed information is printed to the console. Debug output can be enabled
by setting the
<b class="menuref">Output mode</b>
option (<b class="menuref">General</b>
category) to
<b class="menuref">Debug</b>.</p>
</div>
<div class="paragraph">
<p>The debug output also contains information about the number of states in the
resulting controlled system (the uncontrolled system restricted by the
synthesized supervisor). If the resulting supervisor (and thus the controlled
system) is empty, or if
<a href="#tools-datasynth-forward-reach">forward reachability</a> is enabled, the
number of states that is printed is an exact number (e.g. <code>exactly 0 states</code>,
<code>exactly 1 state</code>, <code>exactly 1,234 states</code>). In other situations, the
controlled behavior predicate that is used to determine the number potentially
gives an over-approximation, and an upper bound on the number of states is
printed (e.g. <code>at most 1,234 states</code>).</p>
</div>
<div class="paragraph">
<p>Enabling debug output may significantly slow down the synthesis algorithm,
especially for larger models. The performance degradation stems mostly from the
printing of predicates. Predicates are internally represented using
<a href="http://en.wikipedia.org/wiki/Binary_decision_diagram">Binary Decision Diagrams</a>
(BDDs). To print them,
they are converted to CNF or DNF predicates, similar to one of the approaches
to <a href="#tools-datasynth-supervisor-bdd">convert</a> BDDs to CIF predicates for
synthesis output.</p>
</div>
<div class="paragraph">
<p>To limit the performance degradation, options are available to limit the
conversion of BDDs to CNF/DNF predicates. The <em>BDD debug max nodes</em> controls
the maximum number of BDD nodes for which to convert a BDD to a readable
CNF/DNF representation for the debug output. The default is <code>10</code> nodes. The
maximum must be in the range [1 .. 2<sup>31</sup> - 1].
The option can be set to
have an infinite maximum (no maximum), using option value <code>inf</code>. The <em>BDD
debug max paths</em> option controls the maximum number of BDD true paths for which
to convert a BDD to a readable CNF/DNF representation for the debug output. The
default is <code>10</code> paths. The maximum must be in the range [1 .. 1.7e308]. The
option can be set to have an infinite maximum (no maximum), using option value
<code>inf</code>. If a BDD has more than the specified maximum number of nodes, or more
than the specified number of true paths, it is not converted to a CNF/DNF
predicate. Instead, it is converted to a textual representation that indicates
the number of nodes and true paths, e.g. <code>&lt;bdd 1,234n 5,678p&gt;</code> for a BDD with
1,234 nodes and 5,678 true paths.</p>
</div>
<div class="paragraph">
<p>By limiting the conversion of BDDs to CNF/DNF predicates, debug output can
still be used for large models to see progress information, while not degrading
the performance too much.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-stats">Statistics</h5>
<div class="paragraph">
<p>The data-based synthesis tool supports printing various kinds of statistics to
the console. By default, no statistics are printed. Statistics can be enabled
using the the <em>Statistics</em> option (see <a href="#tools-datasynth-options">options</a>
section above). The following statistics are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Timing</em> [<code>timing</code>]</p>
<div class="paragraph">
<p>Print statistics for timing of various parts of the tool. Is printed to the
console, after execution, just termination of the tool. Timing is only
printed for parts of the tool that were actually executed. Timing is printed
as a tree. The root of the tree represents the total time of the synthesis
tool. For some parts of the tool, timing is also measured for sub-parts.
Timing is printed in milliseconds, to make it easier to compare timing for
various parts.</p>
</div>
<div class="paragraph">
<p>When measuring performance, always perform multiple measurements, and take
the average. Also, use a warm-up phase, to avoid skewed results.</p>
</div>
</li>
<li>
<p><em>BDD garbage collection</em> [<code>bdd-gc</code>]</p>
<div class="paragraph">
<p>The BDD library that is used maintains an internal node table. Whenever new
nodes no longer fit in the node table, a garbage collection is started by
the BDD library, to clean out all nodes that are no longer needed. BDD
garbage collection statistics are printed before and after garbage
collection. The printed information includes the size of the node table, the
number of free nodes, timing information, etc. See also the
BDD library initial node table size option (see
<a href="#tools-datasynth-options">options</a>` section above).</p>
</div>
</li>
<li>
<p><em>BDD node table resize</em> [<code>bdd-resize</code>]</p>
<div class="paragraph">
<p>The BDD library that is used maintains an internal node table. Whenever new
nodes no longer fit in the node table, a garbage collection is started by
the BDD library, to clean out all nodes that are no longer needed. If only
very limited space could be reclaimed by garbage collection, the size of the
node table is increased. BDD node table resize statistics are printed when
the node table is resized. The printed information includes the old and the
new sizes of the node table. See also the BDD library initial node table
size option (see <a href="#tools-datasynth-options">options</a>` section above).</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>In the option dialog, each of the different kinds of statistics can be enabled
and disabled individually, using a checkbox.</p>
</div>
<div class="paragraph">
<p>From the command line, using the <code>--stats</code> option, the names of the different
kinds of statistics, as indicated above between square brackets, should be
used, separated by commas. For instance, use <code>--stats=bdd-gc,bdd-resize</code> to
enable both BDD garbage collection statistics and BDD node table resize
statistics, but keep all other statistics disabled.</p>
</div>
<div class="paragraph">
<p>Specifying a statistics kind twice leads to a warning being printed to the
console.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-early-problem-detection">Early problem detection</h5>
<div class="paragraph">
<p>The synthesis algorithm checks the uncontrolled system for common issues, for
early detection of problems that will lead to an empty supervisor. If such a
problem is detected, a warning is printed to the console. Among others, checks
are included for no initial states/variables, no marked states, and no states
due to the invariants.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-var-order">BDD variable order</h5>
<div class="paragraph">
<p>Internally, predicates are represented using
<a href="http://en.wikipedia.org/wiki/Binary_decision_diagram">Binary Decision Diagrams</a>
(BDDs). CIF
variables and automata are represented using one or more boolean variables
(also called BDD variables or bits). For instance, a boolean CIF variable is
represented using a single boolean/BDD variable, and a CIF variable of type
<code>int[0..8]</code> is represented using four boolean/BDD variables (9 possible
values, log<sub>2</sub>(9) ≈ 3.17). For each automaton with two or
more locations, a location pointer variable is created, that represents the
current or active location of that automaton. For instance, an automaton with
three locations is represented using two boolean/BDD variables. Two boolean/BDD
variables can represent 2<sup>2</sup> = 4 values, so one value is not
used.</p>
</div>
<div class="paragraph">
<p>The CIF variables and location pointer variables for the automata
(together called synthesis variables) can be ordered. This ordering can
significantly influence the performance of synthesis. Synthesis variables that
have a higher influence on the result of predicates (simply put, occur more
frequently in predicates) should generally be put earlier in the ordering.
Furthermore, in general, strongly related synthesis variables (e.g. by
comparison, integer computation, or assignment) should be kept closely together
in the order. For two synthesis variables <code>x</code> and <code>y</code>, examples of
predicates that introduce relations are <code>x = y</code> (by comparison) and
<code>5 &lt; x + y</code> (by integer computation), and examples of assignments that
introduce relations are <code>x := y</code> and <code>x := y + 1</code> (both by assignment).</p>
</div>
<div class="paragraph">
<p>For the initial variable ordering, it is possible to order the BDD variables
per synthesis variable, or to interleave the BDD/boolean variables of some
synthesis variables. This can significantly influences the performance of
synthesis. Generally, strongly related synthesis variables should be
interleaved.</p>
</div>
<div class="paragraph">
<p>For more information on ordering and its influence on performance, see
Chapter 3 of <a href="#minato">[minato]</a>.</p>
</div>
<div class="paragraph">
<p>For each CIF variable and location pointer, two synthesis variables are
created, one storing the old/current value (before a transition), and one
storing the new value (after a transition). For a single CIF variable or
location pointer, the old and new synthesis variables are always kept together,
and interleaved. The old synthesis variable is also always before the new
synthesis variable.</p>
</div>
<div class="paragraph">
<p>The initial order of the boolean/BDD variables is determined by the
<em>BDD variable order</em> option (see <a href="#tools-datasynth-options">options</a>
section above). Several default orders exist, and it is also possible to
define a custom order. By default, the sorted order is used. The following
default orders exist:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>model ordering without interleaving</em> (option value <code>model</code>)</p>
<div class="paragraph">
<p>The initial order of the synthesis variables is as they occur in the model.
A location pointer, for an automaton with two or more locations, is put
before the variables declared in that automaton.</p>
</div>
<div class="paragraph">
<p>No synthesis variables are interleaved, except for each old variable with
its corresponding new variable.</p>
</div>
</li>
<li>
<p><em>reverse model ordering without interleaving</em> (option value <code>reverse-model</code>)</p>
<div class="paragraph">
<p>The initial order of the synthesis variables is as they occur in the model,
but reversed. A location pointer, for an automaton with two or more
locations, is put after the variables declared in that automaton, in this
reverse order.</p>
</div>
<div class="paragraph">
<p>No synthesis variables are interleaved, except for each old variable with
its corresponding new variable. The old variables are still before the new
variables; this is not reversed.</p>
</div>
</li>
<li>
<p><em>sorted ordering without interleaving</em> (option value <code>sorted</code>)</p>
<div class="paragraph">
<p>The initial order of the synthesis variables is based on the names of the
variables and automata. They are sorted alphabetically in ascending
order, based on their absolute names.</p>
</div>
<div class="paragraph">
<p>No synthesis variables are interleaved, except for each old variable with
its corresponding new variable.</p>
</div>
</li>
<li>
<p><em>reverse sorted ordering without interleaving</em> (option value <code>reverse-sorted</code>)</p>
<div class="paragraph">
<p>The initial order of the synthesis variables is based on the names of the
variables and automata. They are sorted alphabetically in descending
order, based on their absolute names.</p>
</div>
<div class="paragraph">
<p>No synthesis variables are interleaved, except for each old variable with
its corresponding new variable. The old variables are still before the new
variables; this is not reversed.</p>
</div>
</li>
<li>
<p><em>random ordering without interleaving</em> (option value <code>random</code> or <code>random:SEED</code>)</p>
<div class="paragraph">
<p>The variables and automata are initially ordered randomly. If no
seed is specified, a random seed is used, resulting in a random random order.
If a seed is specified, a fixed random order is used. That is, using the same
seed again, results in the same random order. The <code>SEED</code> must be an integer
number in the range [0 .. 2<sup>64</sup> - 1]. For instance, use
<code>random:123</code> as option value to get a random order that can be repeated on
a subsequent synthesis for the same model.</p>
</div>
<div class="paragraph">
<p>No synthesis variables are interleaved, except for each old variable with
its corresponding new variable.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Furthermore, a custom initial order can be defined. Custom orders consist of
absolute names of variables and automata. That is, for an automaton
<code>a</code>, with a discrete variable <code>x</code>, the absolute name of the variable is
<code>a.x</code>. The <code>*</code> character can be used as wildcard in those names, and
indicates zero or more characters. In case of multiple matches, the matches are
sorted increasingly on their absolute names, and interleaved.</p>
</div>
<div class="paragraph">
<p>Multiple names can be separated with <code>;</code> characters. The synthesis variables
matching the name pattern before the <code>;</code> are ordered before the synthesis
variables matching the name pattern after the <code>;</code>. The <code>;</code> separator does
not introduce interleaving. The <code>,</code> separator can be used instead of the
<code>;</code> separator to introduce order but also introduce interleaving.</p>
</div>
<div class="paragraph">
<p>Each name pattern in the order must match at least one variable or automaton.
A variable or automaton may not be included more than once in the
order. Every variable and automaton (with two or more locations) needs to be
included in the order. It is not possible to specify new variables, as they
are always directly after their corresponding old variables, and they are
always interleaved.</p>
</div>
<div class="paragraph">
<p>For instance, consider two automata: <code>a</code> and <code>b</code>, each with three
variables of type <code>int[0..3]</code>: <code>x1</code>, <code>x2</code>, and <code>x3</code>. The automata have
three locations each, so location pointers are created for them. We thus have
six discrete variables: <code>a.x1</code>, <code>a.x2</code>, <code>a.x3</code>, <code>b.x1</code>, <code>b.x2</code>, and
<code>b.x3</code>, and two location pointer variables: <code>a</code> and <code>b</code>. Consider the
following custom order: <code>b*;a.x3,a.x1;a.x2,a</code>. Pattern <code>b*</code> matches
location pointer variable <code>b</code> as well as the three discrete variables of
automaton <code>b</code> (<code>b.x1</code>, <code>b.x2</code>, and <code>b.x3</code>). They are ordered in
increasing alphabetic order, and are interleaved. Variables <code>a.x3</code> and
<code>a.x1</code> are also interleaved, with <code>a.x3</code> before <code>a.x1</code>. Finally, variable
<code>a.x2</code> is ordered before the location pointer for automaton <code>a</code>, and they
are interleaved as well. This results in the following initial boolean/BDD
variable ordering, with bits whose name ends with <code>+</code> representing bits of
new variables rather than current/old variables, and <code>x#0</code> representing bit
zero of variable <code>x</code>:</p>
</div>
<div class="paragraph">
<p><code>b#0</code><br>
<code>b+#0</code><br>
<code>b.x1#0</code><br>
<code>b.x1+#0</code><br>
<code>b.x2#0</code><br>
<code>b.x2+#0</code><br>
<code>b.x3#0</code><br>
<code>b.x3+#0</code><br>
<code>b#1</code><br>
<code>b+#1</code><br>
<code>b.x1#1</code><br>
<code>b.x1+#1</code><br>
<code>b.x2#1</code><br>
<code>b.x2+#1</code><br>
<code>b.x3#1</code><br>
<code>b.x3+#1</code></p>
</div>
<div class="paragraph">
<p><code>a.x3#0</code><br>
<code>a.x3+#0</code><br>
<code>a.x1#0</code><br>
<code>a.x1+#0</code><br>
<code>a.x3#1</code><br>
<code>a.x3+#1</code><br>
<code>a.x1#1</code><br>
<code>a.x1+#1</code></p>
</div>
<div class="paragraph">
<p><code>a.x2#0</code><br>
<code>a.x2+#0</code><br>
<code>a#0</code><br>
<code>a+#0</code><br>
<code>a.x2#1</code><br>
<code>a.x2+#1</code><br>
<code>a#1</code><br>
<code>a+#1</code></p>
</div>
<div class="paragraph">
<p>The default orders are often not optimal performance-wise. Manually
specifying a custom order often requires specialist knowledge and can take
quite some time. Luckily, there are algorithms that can automatically compute
a decent variable order.</p>
</div>
<div class="paragraph">
<p>The algorithms all take an initial variable ordering, and try to improve it
using a fast heuristic. A better initial variable ordering may result in a
better final variable ordering (a better local optimum), and may speed up the
automatic variable ordering algorithm (reaching an optimum faster).</p>
</div>
<div class="paragraph">
<p>For the initial variable ordering, the CIF variables and location pointers
may be arbitrarily interleaved. If an automatic variable ordering algorithm
changes the initial order, no synthesis variables are interleaved, except for
each old variable with its corresponding new variable.</p>
</div>
<div class="paragraph">
<p>The automatic variable ordering algorithms are not applied if the CIF model has
less than two synthesis variables. They are also not applied if the model has
no guards, updates, or other predicates to use as input for the algorithms,
i.e. there are no <em>hyperedges</em> to which to apply the algorithms.</p>
</div>
<div class="paragraph">
<p>The following algorithms are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>FORCE</em></p>
<div class="paragraph">
<p>The <a href="#force">[force]</a> algorithm is enabled by default, but can be disabled using the
<em>BDD FORCE variable ordering algorithm</em> option (see
<a href="#tools-datasynth-options">options</a> section above).</p>
</div>
<div class="paragraph">
<p>At most 10 * ceil(log<sub>e</sub>(n)) iterations of the FORCE
algorithm are performed, with <code>n</code> the number of current/old BDD/boolean
variables.</p>
</div>
</li>
<li>
<p><em>Sliding window</em></p>
<div class="paragraph">
<p>The sliding window algorithm is enabled by default, but can be disabled using
the <em>BDD sliding window variable ordering algorithm</em> option (see
<a href="#tools-datasynth-options">options</a> section above).</p>
</div>
<div class="paragraph">
<p>The default maximum length of the window that is used is 4. The actual window
may be smaller, if less than 4 variables and/or location pointers are present
in the model. The maximum length of the window can be configured using the
<em>BDD sliding window size</em> option (see
<a href="#tools-datasynth-options">options</a> section above). The option to set
the maximum length only has effect if the sliding window variable ordering
algorithm is enabled. The size must be an integer number in the range
[1 .. 12].</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>If enabled, the algorithms are applied in the order they are listed above.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-datasynth-op-caches">BDD operation caches</h5>
<div class="paragraph">
<p>One of the main properties of BDDs is that they employ full sharing. That is,
if a part of a binary tree needs to be represented more than once, it is stored
only once, and reused. This leads to BDDs being represented using directed
acyclic graphs, rather than binary trees.</p>
</div>
<div class="paragraph">
<p>The BDD library uses an operation cache to speed up synthesis. Whenever a
certain operation is performed on one or more nodes of a BDD graph, the result
is cached. If that same operation is performed again on the same nodes, the
cached result is reused, if available. This way, repeated calculations can be
prevented for shared sub-graphs.</p>
</div>
<div class="paragraph">
<p>The operation cache is essential for the performance of the synthesis
algorithm. With infinite caches, the operations are generally linear in the
number of nodes used to represent the BDDs on which they are applied. Without
caching, the computation time grows exponentially.</p>
</div>
<div class="paragraph">
<p>Obviously, in practice we can&#8217;t have infinite caches, as a computer only has a
finite amount of memory available. We thus need to work with finite caches.
Whenever a new cached operation result doesn&#8217;t fit in the cache, an older
result is overwritten, and will need to be recomputed if it is needed again.</p>
</div>
<div class="paragraph">
<p>Increasing the cache size can significantly increase performance for large
systems, as a cache that is too small is ineffective, and results in many
operations needing to be repeated, that could have otherwise been obtained from
the cache. However, a larger than needed cache may also significantly decrease
performance, as a cache that is too large may no longer fit within CPU caches,
leading to more expensive accesses to the main memory rather than e.g. L1/L2/L3
caches.</p>
</div>
<div class="paragraph">
<p>The operation cache size can be configured in two ways: as a fixed size that
remains the same during the entire synthesis, or a variable cache size that
grows in size as the node table grows in size. See the
<a href="#tools-datasynth-options">options</a> section above for details.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-performance">Performance</h5>
<div class="paragraph">
<p>The following <a href="#tools-datasynth-options">options</a> have an effect on the
performance of data-based synthesis:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 5.2631%;">
<col style="width: 15.7894%;">
<col style="width: 15.7894%;">
<col style="width: 21.0526%;">
<col style="width: 42.1055%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Kind</th>
<th class="tableblock halign-left valign-top">Option</th>
<th class="tableblock halign-left valign-top">Section</th>
<th class="tableblock halign-left valign-top">Effect</th>
<th class="tableblock halign-left valign-top">Choose</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD output mode</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-supervisor-bdd">BDD representation in CIF</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Representation of BDDs in the output model</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use <code>nodes</code> output variant for best performance</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD predicate simplify</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-simplification">Simplification</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Potentially smaller BDDs in the output</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enable for smaller output, although simplification itself also takes
time</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Order</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD variable order</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-var-order">BDD variable order</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Better order for smaller BDD representations</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Choose the best order, depends on the model, (reversed) model/sorted
usually good choices, custom order allows for best performance</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Order</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD FORCE variable ordering algorithm</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-var-order">BDD variable order</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Better order for smaller BDD representations</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enable for automatic ordering</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Order</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD sliding window variable ordering algorithm</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-var-order">BDD variable order</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Better order for smaller BDD representations</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enable for automatic ordering</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Order</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD sliding window size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-var-order">BDD variable order</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Better order for smaller BDD representations</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Larger windows might allow for more optimization, but take more time</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Library</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD library initial node table size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-stats">Statistics</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">More storage for less resizes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Increase size for less resizes, at the cost of less memory locality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Library</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD library operation cache size/ratio</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-op-caches">BDD operation caches</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Increase cache for less computations</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enable, larger costs more memory, larger leads to less memory locality,
size/ratio depends on model</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Algorithm</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Forward reachability</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-forward-reach">Forward reachability</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Explore only reachable state space</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enable to reduce state space, although calculation itself may also be
expensive, depends on model</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Debug</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output mode</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-dbg-output">Debug output</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Debug output on console</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Disable for better performance</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Debug</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">BDD debug max nodes/paths</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-dbg-output">Debug output</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Size of predicates in debug output</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The smaller, the less blowup, the better the performance</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Debug</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Statistics</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-datasynth-stats">Statistics</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Statistics output on console</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Disable for better performance</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The first column categorizes the different options a bit, for different kind of
options. The second column lists the different options. The third column
indicates in which section on this page of the documentation you can find more
information about that option. The fourth column indicates the effect of the
option. The fifth column indicates what to choose for the option, for best
performance, although a trade-off may be involved.</p>
</div>
<div class="paragraph">
<p>Obviously, the actual model that is used has a large impact as well. More
variables often leads to longer synthesis times. However, the predicates that
are used may also significantly impact performance.</p>
</div>
<div class="paragraph">
<p>Try to use state/event exclusion requirement invariants instead of requirement
automata with a single location and self loops. Also, try to avoid an
event-based modeling style, and use a data-based modeling style instead, if
possible.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-input-variables">Input variables</h5>
<div class="paragraph">
<p>Data-based synthesis supports input variables. The model itself doesn&#8217;t specify
which value an input variable has at any given moment. Input variables can thus
have any value (as long as it fits within the data type of the variable), and
the value can change at any time. Input variables are ideal to model sensors.</p>
</div>
<div class="paragraph">
<p>To support this for data-based synthesis, the input variable is treated as a
discrete variable with an arbitrary initial value. To allow the input variable
to arbitrarily change, an uncontrollable event is added (with the same absolute
name as the input variable). Also, a single edge is added for that event. The
edge is always enabled (guard <code>true</code>, since the input variable can always
change value), and the update indicates that it can get any value that it
doesn&#8217;t currently have (<code>x+ != x</code> for <code>x</code> an input variable, with <code>x</code>
the value of the variable before the update, and <code>x+</code> the value of the
variable after the update). Obviously, the value of the input variable is kept
within the range of values that is allowed by its data type.</p>
</div>
<div class="paragraph">
<p>Using synthesis with requirements that restrict the allowed values of an input
variable will result in an empty supervisor, as a supervisor can&#8217;t prevent the
environment from changing the value of the input variable (it would have to
restrict the uncontrollable event that is internally added to model value
changes of the input variable). A supervisor can however impose additional
restrictions on the <a href="#tools-datasynth-init">initial</a> value of an input
variable. The supervisor can then only guarantee safe, non-blocking behavior
if the system is initialized in accordance with the additional initialization
restrictions.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-references">References</h5>
<div class="ulist bibliography">
<ul class="bibliography">
<li>
<p><a id="minato"></a>[minato] Shin-ichi Minato. Binary Decision Diagrams and Applications for
VLSI CAD: The Springer International Series in Engineering and Computer Science,
Volume 342, 1996, Springer US, ISBN 978-1-4613-1303-8 (E-book),
ISBN 978-0-7923-9652-9 (hardcover), ISBN 978-1-4612-8558-8 (softcover)</p>
</li>
<li>
<p><a id="force"></a>[force] Fadi A. Aloul, Igor L. Markov, Karem A. Sakallah.
FORCE: A Fast and Easy-To-Implement Variable-Ordering Heuristic:
GLSVLSI '03 Proceedings of the 13th ACM Great Lakes symposium on VLSI
pages 116-119, 2003, ACM New York, NY, USA, ISBN 1-58113-677-3</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-eventbased-chapter-index">Event-based synthesis toolset</h4>
<div class="paragraph">
<p>

Synthesis, 'supervisor synthesis', or 'supervisory controller synthesis', is a
generative technique, where one derives a (supervisor) automaton from a
collection of plants and requirements. The resulting supervisor is maximally
permissive under the conditions of being free of deadlocks, and always having
the option of reaching a marked state.</p>
</div>
<div class="paragraph">
<p>While there is only one true synthesis tool (the tool that actually derives a
supervisor automaton from a collection of plant and requirement automata),
other tools exist to support the process. These tools together form the
<em>event-based synthesis toolset</em>.</p>
</div>
<div class="paragraph">
<p>These tools use and modify the sequences of events that can be performed. This
in contrast to state-based tools, which operate primarily on the
<a href="#tools-cifsim-traces-state">state</a> of the system. Event sequences
directly hook into language theory, which places these tools firmly in the
language theory mathematical framework.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-eventbased-supported-specifications">Supported specifications</h5>
<div class="paragraph">
<p>The application supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Channels (events with data types), if used (present on an edge of at least
one automaton), are not supported.</p>
</li>
<li>
<p>Any use of the <code>tau</code> event is not supported. Note that both explicit use
(keyword <code>tau</code>) and implicit use (no events on an edge) are unsupported.</p>
</li>
<li>
<p>Automata with multiple initial locations are not supported.</p>
</li>
<li>
<p>Edges with updates are not supported.</p>
</li>
<li>
<p>Urgent locations and edges are not supported.</p>
</li>
<li>
<p>Initialization predicates in components are not supported.</p>
</li>
<li>
<p>Invariants in components are not supported.</p>
</li>
<li>
<p>Marker predicates in components are not supported.</p>
</li>
<li>
<p>Initialization predicates in locations that are not trivially true or false
are not supported.</p>
</li>
<li>
<p>State invariants in locations that are not trivially true are not supported.</p>
</li>
<li>
<p>Marker predicates in locations that are not trivially true or false are not
supported.</p>
</li>
<li>
<p>State/event exclusion invariants are not supported.</p>
</li>
<li>
<p>Guards of edges that are not trivially true or false are not supported.</p>
</li>
<li>
<p>Multiple initialization predicates in a single location are not supported.</p>
</li>
<li>
<p>Multiple state invariant predicates in a single location are not supported.</p>
</li>
<li>
<p>Multiple marker predicates in a single location are not supported.</p>
</li>
<li>
<p>Multiple guards on a single edge are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To allow state/event exclusion invariants to be used in the input, manually
eliminate them first using the <a href="#tools-cif2cif-chapter-elim-state-event-excl-invs">Eliminate state/event exclusion invariants</a>
CIF to CIF transformation.</p>
</div>
<div class="paragraph">
<p>For meaningful results, it is recommended to have an initial location and at
least one marked location, in each automaton.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-3">Preprocessing</h5>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-kinds">Automaton kinds</h5>
<div class="paragraph">
<p>The event-based toolset recognizes the CIF automaton kinds <code>plant</code>,
<code>requirement</code>, and <code>supervisor</code>, and interprets them using the
corresponding concepts of the mathematical framework of supervisor synthesis.
Kindless/regular automata (without a supervisory kind) are treated as unknown.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-location-names-in-reports-and-errors">Location names in reports and errors</h5>
<div class="paragraph">
<p>Several tools output reports or give errors with locations that are
interesting in some way.</p>
</div>
<div class="paragraph">
<p>Tools that take a single automaton as input report locations by their name in
the input specification, for example <code>location "button.off"</code> denotes the
<code>off</code> location in the <code>button</code> automaton. The location of automata that
have a single unnamed location use <code>*</code> as location name, for example
<code>location "req.*"</code> denotes the single unnamed location in the <code>req</code>
automaton.</p>
</div>
<div class="paragraph">
<p>Tools that take a number of automata together, like supervisor synthesis
report interesting states as <code>state</code> followed by the names of the locations,
for example <code>state "button.on", "machine.idle"</code>. Such a state refers to a
location that represents the combined locations of the automata, in the
example, the combined locations <code>button.off</code> and <code>machine.idle</code>.</p>
</div>
<div class="paragraph">
<p>Tools that combine or merge locations, like projection, report such combined
locations as a partition, for example <code>partition "machine.down",
"machine.off"</code> represents a location that is a combination of the <code>down</code>
and the <code>off</code> locations in the <code>machine</code> automaton.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-available-tools">Available tools</h5>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-eventbased-chapter-product">Event-based synchronous product</a></p>
<div class="paragraph">
<p>Computes the product of a number of deterministic or non-deterministic
automata, where common events are synchronized. Essentially computes the
<a href="#tools-cifsim-traces-state-space">state space</a>.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-supervisorsynthesis">Event-based supervisor synthesis</a></p>
<div class="paragraph">
<p>Derivation of a maximal permissive supervisor from a collection of
deterministic plant and requirement automata.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-synthesis-analysis">Event-based synthesis analysis</a></p>
<div class="paragraph">
<p>Analysis of the removed parts of a synthesized supervisor.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-nonconflicting-check">Event-based nonconflicting check</a></p>
<div class="paragraph">
<p>Verifies whether automata are conflicting, that is together could lead to
non-coreachable states.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-controllability-check">Event-based controllability check</a></p>
<div class="paragraph">
<p>Verifies whether the supervisor does not disable uncontrollable events
of the plant.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-language-equivalence-check">Event-based language equivalence check</a></p>
<div class="paragraph">
<p>Verifies whether two automata produce the same events at each point.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-nfa-to-dfa">Event-based NFA to DFA automaton conversion</a></p>
<div class="paragraph">
<p>Converts a non-deterministic automaton to a deterministic automaton while
preserving the event behavior.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-dfa-minimization">Event-based DFA minimization</a></p>
<div class="paragraph">
<p>Minimize the number of locations of an automaton while preserving the
event behavior.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-projection">Event-based automaton projection</a></p>
<div class="paragraph">
<p>Computes a projection of an automaton, resulting in a deterministic and
language equivalent automaton over a subset of its alphabet.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-observer-check">Event-based observer check</a></p>
<div class="paragraph">
<p>Verifies whether an automaton can act as an observer of occurrences of
observable events.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-automaton-abstraction">Event-based automaton abstraction</a></p>
<div class="paragraph">
<p>Abstracts an automaton to a set of observable events.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-trim-check">Event-based trim check</a></p>
<div class="paragraph">
<p>Verifies whether the automata are trim, that is, in each automaton, the
locations must be both reachable and co-reachable.</p>
</div>
</li>
<li>
<p><a href="#tools-eventbased-chapter-trim">Event-based trim</a></p>
<div class="paragraph">
<p>Removes all locations that are not reachable or coreachable.</p>
</div>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-product">Event-based synchronous product</h5>
<div class="paragraph">
<p>



The event-based synchronous product takes one or more plant or requirement
automata, and computes the synchronous product. Synchronous product means
events on edges can only be taken if all automata with that event in their
alphabet can take an edge with the same event at that time. This tool
essentially computes the <a href="#tools-cifsim-traces-state-space">state space</a>.</p>
</div>
<div class="paragraph">
<p>The tool takes a <code>.cif</code> file containing all automata to combine, and
produces a new <code>.cif</code> file with the product automaton. If the
<a href="#tools-eventbased-kinds">kinds</a> of the source automata are all the same,
the resulting product automaton is of that kinds as well. Otherwise, the
product automaton has unknown kind.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-synchronous-product-tool">Starting the synchronous product tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply synchronous product&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply synchronous product&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifprod</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifprod</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output CIF specification. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_product.cif</code> file extension is added. The <code>product</code> part of the default
extension depends on the <em>Result name</em> option.</p>
</li>
<li>
<p><em>Result name</em>: The name to use for the product automaton. If not specified,
defaults to <code>product</code>. Also affects the <em>Output file</em> option.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-supervisorsynthesis">Event-based supervisor synthesis</h5>
<div class="paragraph">
<p>



The supervisor synthesis procedure takes one or more deterministic plant
automata, one or more deterministic requirement automata, and combines
them to a maximal permissive supervisor.</p>
</div>
<div class="paragraph">
<p>
The tool takes a <code>.cif</code> file containing <code>plant</code> and <code>requirement</code>
automata. Besides the general event-based restrictions listed at
<a href="#tools-eventbased-supported-specifications">Supported specifications</a>, the current implementation
does not support:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Having no <code>plant</code> automata at all.</p>
</li>
<li>
<p>Having no <code>requirement</code> automata at all.</p>
</li>
<li>
<p>Having any other kind of automaton in the file. See
<a href="#tools-eventbased-kinds">Automaton kinds</a> for a list of all automaton kinds.</p>
</li>
<li>
<p>Non-determinism in the input automata. The tool reports the violating
automaton, location, and event, for ease of reference.</p>
</li>
<li>
<p>Events in the alphabet of the requirements that are not in the alphabet of
the plants.</p>
</li>
<li>
<p>Events that are not controllable or uncontrollable, if used (present in the
alphabet or on an edge of at least one automaton).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In addition, it warns about common mistakes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Automata without a marked location.</p>
</li>
<li>
<p>Non-<a href="#tools-eventbased-chapter-trim-check">trim</a> automata.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Finally, it can also perform checks about correct constructs that may not be
the intention of its author. Each of these checks has to be enabled with an
option:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Automata with a marked deadlock location. In a system with infinite
behavior, you should probably never enter a deadlock location.</p>
</li>
<li>
<p>Automata with an empty alphabet. Such automata never participate in an
event, and can be removed.</p>
</li>
<li>
<p>Controllable events that are used in exactly one automaton. Not always
wrong, but creating a controllable event, and not using it for control may
be a mistake.</p>
</li>
<li>
<p>Groups of automata that share events only within the group (and not with any
automaton outside the group). Such a group is completely independent, and
can be synthesized separately.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The synthesis tool produces a new <code>.cif</code> file with the supervisor
automaton (of kind <code>supervisor</code>) if the resulting automaton has at
least an initial location. Otherwise, synthesis fails with a <code>Supervisor is
empty</code> error, and no <code>.cif</code> file is written.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-supervisor-synthesis-tool">Starting the supervisor synthesis tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply supervisor synthesis&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply supervisor synthesis&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifsupsynth</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifsupsynth</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-2">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output CIF specification. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_sup.cif</code> file extension is added. The <code>sup</code> part of the default
extension depends on the <em>Result name</em> option.</p>
</li>
<li>
<p><em>Result name</em>: The name to use for the supervisor automaton. If not
specified, defaults to <code>sup</code>. Also affects the <em>Output file</em> option.</p>
</li>
<li>
<p><em>Enable Synthesis dump</em>: If enabled, the synthesis algorithm writes a
dump file containing the actions performed by the algorithm, for later
analysis. The name of the file is decided by the <em>Dump file</em> option.</p>
</li>
<li>
<p><em>Synthesis dump file</em>: The name of the dump file. Setting this option will enable
dumping of the synthesis algorithm actions. The options contains the
absolute or relative local file system path to the
synthesis dump file. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>.synth_dump</code> file extension is added.</p>
</li>
<li>
<p><em>Disjunct groups check</em>: If enabled, the tool will report about groups of
automata that share events in the group only.</p>
</li>
<li>
<p><em>Empty alphabet check</em>: If enabled, the tool will report about automata
without events in their alphabet.</p>
</li>
<li>
<p><em>Marked deadlock location check</em>: If enabled, the tool will report about
marked locations without outgoing edges.</p>
</li>
<li>
<p><em>Single use controllable check</em>: If enabled, the tool will report about
controllable events that are used in exactly one automaton.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-synthesis-analysis">Event-based synthesis analysis</h5>
<div class="paragraph">
<p>



While developing a controller with supervisory controller synthesis, the
result is not always what you expect. To assist, the synthesis analysis tool
has been developed. Its primary purpose is to explain why certain states or
edges have been removed.</p>
</div>
<div class="paragraph">
<p>To use the tool, enable creation of the <em>Synthesis Dump</em> file during
synthesis, using the <em>Enable Synthesis dump</em> option or the <em>Synthesis dump
file</em> option of the <a href="#tools-eventbased-chapter-supervisorsynthesis">Supervisor synthesis tool</a>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/eventbased/analysis_enable_synthesis_dump.png" alt="analysis enable synthesis dump">
</div>
</div>
<div class="paragraph">
<p>By double clicking the generated dump file, or by right-clicking the dump file
and selecting
<b class="menuref">Analyze Synthesis Result</b>,
the analysis tool is
started. It loads the file (which can take a some time if the file is big),
eventually giving the following display:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/eventbased/analysis_startup.png" alt="analysis startup">
</div>
</div>
<div class="paragraph">
<p>At the left, all automata with their initial location are shown. You can
select a different supervisor state by changing these locations. At the top,
in the middle, there are three buttons. The bottom button labeled <em>Search
state</em> is used to search the information about a supervisor state selected at
the left. The <em>Jump to initial state</em> button resets the automata locations
to their initial state, useful when you want to start again. The middle button
is disabled now, but allows you to go back to the previous state.</p>
</div>
<div class="paragraph">
<p>At the right, a number of options are available in case the displayed
information is not sufficient. These are explained later.</p>
</div>
<div class="paragraph">
<p>Below the buttons and options is the report area, which just displays some
statistics. When you press <em>Search</em>, the tool analyzes the selected state at
the left. Depending on what happened with that state, different things may be
shown. In this example, you get:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/eventbased/analysis_basic.png" alt="analysis basic">
</div>
</div>
<div class="paragraph">
<p>The report area changes to display the information about the selected state.
It starts with the internal number of this state (<code>#0</code>), and its properties.
The <code>initial</code> means this state is the initial state, <code>marked</code> means this
state is marked. Then follows an explicit list of locations of every
automaton. It is the same list as the selected locations at the left, but more
compact. Then the analysis result is shown. This state exists in the
supervisor, and has no outgoing edges. In other words, this state is the only
state in the result. Below it, the edges removed by the requirements are
listed, together with the name of the requirement automaton that disabled it.</p>
</div>
<div class="paragraph">
<p>Not displayed here is the list of edges removed due to plant automata. These
can be displayed by enabling the <em>Display disabled plant events</em> option at the
top-right.</p>
</div>
<div class="paragraph">
<p>If a state does have outgoing edges, these are displayed as well:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/eventbased/analysis_outgoing.png" alt="analysis outgoing">
</div>
</div>
<div class="paragraph">
<p>State <code>#7</code> has one outgoing edge, leading to state <code>#9</code> using event
<code>Sensor_In_Off</code>. The last line with the removed controllable events
displays a removed edge because destination state <code>#8</code> was removed.</p>
</div>
<div class="paragraph">
<p>If you want to know what states <code>#9</code> or <code>#8</code> are, you can enable the
<em>Display full state</em> at the top-right, and the tool will display the full
list of automaton locations with each state, just like the first line in the
report. You can also go to these states, by double-clicking at the blue area.
If you click at removed state <code>#8</code> you get a display like:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/eventbased/analysis_removed.png" alt="analysis removed">
</div>
</div>
<div class="paragraph">
<p>As expected, the analysis tools displays that the state was removed,
apparently because it was not co-reachable. Again you get the list of removed
edges from this state, as an aid to decide which requirement should be
checked, if this was not expected.</p>
</div>
<div class="paragraph">
<p>The final screenshot shows what is displayed if a state is removed because
another state is removed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/eventbased/analysis_chain.png" alt="analysis chain">
</div>
</div>
<div class="paragraph">
<p>This is an example from a bigger system, where the supervisor is empty. The
analysis of the initial state reveals that it was removed due to a removal of
a chain of other states. State <code>#24</code> was removed due to a requirement
(reading from bottom to top), which caused the chain of states <code>#9</code>, <code>#2</code>,
and eventually <code>#0</code> to be removed.</p>
</div>
<div class="paragraph">
<p>Removed edges with controllable events are not displayed here, since these
have no influence to the disappearing of the states. If you want, you can
display them by toggling the <em>Always display disabled controllable events</em>
option at the top-right.</p>
</div>
<div class="paragraph">
<p>In this example, the number of states in the chain to the disabling
requirement was 4 states. This chain can be longer. Usually the middle part
is not that interesting and it is omitted from the display, but if you want to
see them, you can increase the number of displayed states at the top-right
(which is by default <code>5</code>).
Another way to see them is to double-click at a state in the chain, and the
analysis tool will display the chain starting from that state.</p>
</div>
<div class="paragraph">
<p>A situation that is not shown here, is that the analysis tool has no
information about a state. It happens when the synthesis encountered a bad
state on all paths to that state. In such a case, it displays that there is no
information about the queried state.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-synthesis-analysis-tool">Starting the synthesis analysis tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, double-click a <code>.synth_dump</code> file generated by the supervisor
synthesis dump.</p>
</li>
<li>
<p>In Eclipse, right click a <code>.synth_dump</code> file in the
'Project Explorer' tab or 'Package Explorer' tab and choose
<b class="menuref">Analyze Synthesis Result</b>.</p>
</li>
<li>
<p>Use the <code>cifsynthanalys</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifsynthanalys</code>
command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-3">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input Synthesis dump file.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-nonconflicting-check">Event-based nonconflicting check</h5>
<div class="paragraph">
<p>



The nonconflicting check verifies whether two or more automata are conflicting,
that is, whether they together could result in non-coreachable states.</p>
</div>
<div class="paragraph">
<p>One practical application is to check a supervisor, either synthesized or
manually created, against a plant. That is, when the supervisor is used to
control the plant, will it always stay in the safe coreachable area? If not, at
what point does it fail to do so?</p>
</div>
<div class="paragraph">
<p>Another practical application is to check several supervisors synthesized for
parts of a system. That is, when the supervisors are used together to control
a system, could that result in non-coreachable states? If so, which states are
conflicting?</p>
</div>
<div class="paragraph">
<p>The tool takes a <code>.cif</code> file containing two or more automata, that must be
both deterministic and trim. Besides those restrictions, the general
event-based restrictions listed at
<a href="#tools-eventbased-supported-specifications">Supported specifications</a> apply as well.</p>
</div>
<div class="paragraph">
<p>The nonconflicting check tool produces a text file, listing the traces that
lead to a conflicting state. If no such traces are found, the automata are
nonconflicting.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-nonconflicting-check-tool">Starting the nonconflicting check tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply nonconflicting check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply nonconflicting check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifncchk</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifncchk</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-4">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Report file</em>: The absolute or relative local file system path to the
output report file with conflicts. If not specified, defaults to the input
file path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_conflicts.txt</code> file extension is added.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-controllability-check">Event-based controllability check</h5>
<div class="paragraph">
<p>



The controllability check verifies whether a supervisor automaton does not
disable edges with uncontrollable events of the (combined) plant automata. If
the check fails, the tool reports where it fails. If the check succeeds, it
reports the edges with controllable events that are disabled by the
supervisor.</p>
</div>
<div class="paragraph">
<p>
The tool takes a <code>.cif</code> file containing a <code>supervisor</code> automaton, and one
or more <code>plant</code> automata. Besides the general event-based restrictions listed
at <a href="#tools-eventbased-supported-specifications">Supported specifications</a>, the current implementation
does not support:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Having more than one <code>supervisor</code> automaton.</p>
</li>
<li>
<p>Having no <code>plant</code> or <code>supervisor</code> automaton.</p>
</li>
<li>
<p>Having an automaton with a different kind than <code>plant</code> or <code>supervisor</code>.</p>
</li>
<li>
<p>Having a non-deterministic automaton.</p>
</li>
<li>
<p>Events that are not controllable or uncontrollable, if used (present in the
alphabet or on an edge of at least one automaton).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The controllability check tool produces a report text file with its findings.
It states whether the controllability property holds (no edges with
uncontrollable events of the plant are disabled) or fails (one or more edges
with uncontrollable events in the plant are disabled by the supervisor).</p>
</div>
<div class="paragraph">
<p>If the controllability property holds, the tool lists the disabled controllable
events, which can be useful in the design process. If the property fails, the
tool lists the edges that are disabled by the supervisor.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-controllability-check-tool">Starting the controllability check tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply controllability check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply controllability check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifctrlchk</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifctrlchk</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-5">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Report file</em>: The absolute or relative local file system path to the
output report file with disabled events. If not specified, defaults to the
input file path, where the <code>.cif</code> file extension is removed (if present),
and a <code>_disableds.txt</code> file extension is added.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-language-equivalence-check">Event-based language equivalence check</h5>
<div class="paragraph">
<p>



The language equivalence check verifies whether two automata produce the same
language, that is, at every point they are marked in the same way and can
produce the same events. Note that even automata with a different number of
locations or edges can be language equivalent.</p>
</div>
<div class="paragraph">
<p>All reachable locations of the automata are checked. In particular, it also
checks locations that are outside the marked behavior (that is, reachable
locations that are not marked and are not on a path to a marked location). To
avoid false positives, you may want to ensure that both automata are
<a href="#tools-eventbased-chapter-trim">trim</a>.</p>
</div>
<div class="paragraph">
<p>One practical application is to verify whether a manually created supervisor
is equivalent to an automatically generated one. If they are not, a counter
example is produced.</p>
</div>
<div class="paragraph">
<p>The tool takes a <code>.cif</code> file containing exactly two automata, that must
be deterministic, have the same alphabet, and have an initial location. In
addition, the general event-based restrictions listed at
<a href="#tools-eventbased-supported-specifications">Supported specifications</a> apply as well.</p>
</div>
<div class="paragraph">
<p>The language equivalence check tool produces output stating
<code>Automata have the same language</code>, or it produces a counter example
where an event can be
performed in a location in one automaton, while from the equivalent
location in the other automaton the same event cannot be performed.
The equivalent location is derived by walking from the initial
location to the location of interest in both automata, using the same
sequence of events.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-language-equivalence-check-tool">Starting the language equivalence check tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply language equivalence check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply language equivalence check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>ciflngeqv</code> tool in a ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>ciflngeqv</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-6">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-nfa-to-dfa">Event-based NFA to DFA automaton conversion</h5>
<div class="paragraph">
<p>



The event-based NFA to DFA automaton conversion takes an non-deterministic
automaton. The algorithm produces a deterministic automaton with the same
language.</p>
</div>
<div class="paragraph">
<p>The tool takes a <code>.cif</code> file containing a single automaton. The output is
a <code>.cif</code> file containing a deterministic automaton that is language
equivalent with the input automaton. The resulting automaton has the same kind
as the input automaton.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-nfa-to-dfa-automaton-conversion-tool">Starting the NFA to DFA automaton conversion tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply NFA to DFA automaton conversion&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply NFA to DFA automaton conversion&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifnfadfa</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifnfadfa</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-7">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output CIF specification. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_dfa.cif</code> file extension is added. The <code>dfa</code> part of the
default extension depends on the <em>Result name</em> option.</p>
</li>
<li>
<p><em>Result name</em>: The name to use for the projected automaton. If not
specified, defaults to <code>dfa</code>. Also affects the <em>Output file</em> option.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-dfa-minimization">Event-based DFA minimization</h5>
<div class="paragraph">
<p>



Minimizing the number of locations of an automaton while preserving the
language gives a canonical representation of the language, making it easier to
compare automata. The DFA minimization tool computes such a minimal automaton.</p>
</div>
<div class="paragraph">
<p>The tool takes a <code>.cif</code> file containing one deterministic automaton with an
initial location. In addition, the general event-based restrictions listed at
<a href="#tools-eventbased-supported-specifications">Supported specifications</a> apply as well.</p>
</div>
<div class="paragraph">
<p>The DFA minimization tool produces an automaton with the same language, but
with the minimal number of locations. If the original automaton already had
the minimal number of locations, the result is the same as the input.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-dfa-minimization-tool">Starting the DFA minimization tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply DFA minimization&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply DFA minimization&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifdfamin</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifdfamin</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-8">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output CIF specification. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_minimal.cif</code> file extension is added. The <code>minimal</code> part of the default
extension depends on the <em>Result name</em> option.</p>
</li>
<li>
<p><em>Result name</em>: The name to use for the minimized automaton. If not specified,
defaults to <code>minimal</code>. Also affects the <em>Output file</em> option.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-projection">Event-based automaton projection</h5>
<div class="paragraph">
<p>



The event-based automaton projection takes an automaton and a subset of the
events of its alphabet that should be preserved. The other events of the
alphabet are considered to be internal steps and get replaced by <code>epsilon</code>
at the edges. The algorithm produces a deterministic automaton with the subset
as its alphabet that has the same language.</p>
</div>
<div class="paragraph">
<p>The tool takes a <code>.cif</code> file containing a single automaton, and the names
of the events that should be preserved. The output is a <code>.cif</code> file
containing a deterministic automaton that is language equivalent with the
input automaton with respect to the set of preserved events.
The resulting automaton has the same kind as the input automaton.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-automaton-projection-tool">Starting the automaton projection tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply automaton projection&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply automaton projection&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifproj</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifproj</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-9">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Preserved events</em>: Comma and/or whitespace separated absolute names of
events that should be preserved.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output CIF specification. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_projected.cif</code> file extension is added. The <code>projected</code> part of the
default extension depends on the <em>Result name</em> option.</p>
</li>
<li>
<p><em>Result name</em>: The name to use for the projected automaton. If not
specified, defaults to <code>projected</code>. Also affects the <em>Output file</em> option.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-observer-check">Event-based observer check</h5>
<div class="paragraph">
<p>



The event-based observer check takes an automaton, and a subset of the events
of its alphabet that are observable. The check verifies whether the automaton
after projection (see <a href="#tools-eventbased-chapter-projection">Event-based automaton projection</a>) can derive the
(abstracted) state of another component by synchronizing only on the
observable events.</p>
</div>
<div class="paragraph">
<p>The tool takes a <code>.cif</code> file containing a single automaton, and the names
of the events that are observable. The output is a report file that indicates
whether the observer check property holds. If it fails, the events causing
failure are also listed.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-observer-check-tool">Starting the observer check tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply observer check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply observer check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifobschk</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifobschk</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-10">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Observable events</em>: Comma and/or whitespace separated absolute names of
events that are observable.</p>
</li>
<li>
<p><em>Report file</em>: The absolute or relative local file system path to the
output report file. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_observation.txt</code> file extension is added.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-automaton-abstraction">Event-based automaton abstraction</h5>
<div class="paragraph">
<p>



The event-based automaton abstraction takes an automaton, and a subset of the events
of its alphabet that are observable. The abstraction produces a
non-deterministic abstracted automaton with the observable events as its
alphabet, that is weakly bisimilar to the original automaton.</p>
</div>
<div class="paragraph">
<p>The tool takes a <code>.cif</code> file containing a single automaton, and the names
of the events that are observable. The output is a <code>.cif</code> file with the
abstracted automaton. The resulting automaton has the same kind as the input
automaton.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-automaton-abstraction-tool">Starting the automaton abstraction tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply automaton abstraction&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply automaton abstraction&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifabstr</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifabstr</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-11">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Observable events</em>: Comma and/or whitespace separated absolute names of
events that are observable.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output CIF file. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_abstracted.cif</code> file extension is added. The <code>abstracted</code> part of the
default extension depends on the <em>Result name</em> option.</p>
</li>
<li>
<p><em>Result name</em>: The name to use for the abstracted automaton. If not
specified, defaults to <code>abstracted</code>. Also affects the <em>Output file</em> option.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-trim-check">Event-based trim check</h5>
<div class="paragraph">
<p>



This check verifies that the automata in the given file are trim, that is, in
each automaton, all the locations must be both reachable and coreachable. If
the check fails for one or more automata, the tool reports for each automaton,
whether all its locations are reachable and coreachable. It also lists the
locations where the property fails.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-trim-check-tool">Starting the trim check tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply trim check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply trim check&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>ciftrimchk</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>ciftrimchk</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-12">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Report file</em>: The absolute or relative local file system path to the
output report file with disabled events. If not specified, defaults to the
input file path, where the <code>.cif</code> file extension is removed (if present),
and a <code>_trimcheck.txt</code> file extension is added.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-eventbased-chapter-trim">Event-based trim</h5>
<div class="paragraph">
<p>



The trim tool makes an automaton trim by removing all locations that are not
reachable or coreachable.
The input is a <code>.cif</code> file with a single automaton, and the tool produces a
new <code>.cif</code> file with the trim automaton. If the automaton in the input was
already trim, all locations are preserved.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-starting-the-trim-tool">Starting the trim tool</h6>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply trim&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">Event-based synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply trim&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>ciftrim</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>ciftrim</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-13">Options</h6>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output CIF specification. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_trim.cif</code> file extension is added. The <code>trim</code> part of the default
extension depends on the <em>Result name</em> option.</p>
</li>
<li>
<p><em>Result name</em>: The name to use for the trim automaton. If not
specified, defaults to <code>trim</code>. Also affects the <em>Output file</em> option.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-chapter-cif2supremica">CIF to Supremica transformer</h4>
<div class="paragraph">
<p>


The CIF to Supremica transformer can be used to transform CIF specifications
to Supremica modules (<code>*.wmod</code> files).
<a href="http://supremica.org/">Supremica</a>
is a tool for synthesis of discrete event supervisors.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-transformation-3">Starting the transformation</h5>
<div class="paragraph">
<p>The transformation can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Convert CIF to Supremica&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF synthesis tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Convert CIF to Supremica&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cif2supremica</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cif2supremica</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2supremica-options">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file path</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file path</em>: The absolute or relative local file system path to the
output Supremica module file. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>.wmod</code> file extension is added.</p>
</li>
<li>
<p><em>Supremica module name</em>: The name of the Supremica module. If not specified,
defaults to the name of the output file, after removal of the <code>.wmod</code>
extension (if present).</p>
</li>
<li>
<p><em>Eliminate enumerations</em>: Enable this option to eliminate enumerations before
generating transforming to Supremica. Disable this option to keep
enumerations in the generated Supremica module. By default this option is
disabled.</p>
<div class="paragraph">
<p>Even though Supremica supports enumerations in its language, it doesn&#8217;t
support them in all its algorithms. Even if the original CIF transformation
being transformed does not use enumerations, enumerations may still be
generated internally during
<a href="#tools-cif2supremica-preprocessing">preprocessing</a>.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-specifications-3">Supported specifications</h5>
<div class="paragraph">
<p>The CIF to Supremica transformer supports a subset of CIF specifications. The
following restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kindless/regular automata (without a supervisory kind) are not supported.
Only <code>plant</code>, <code>requirement</code>, and <code>supervisor</code> automata are supported.</p>
</li>
<li>
<p>Events not declared as controllable or uncontrollable are not supported.
This includes the <code>tau</code> event, both explicitly used on edges, as well as
implicitly for edges without explicitly mentioned events.</p>
</li>
<li>
<p>Initialization predicates outside of locations are not supported.</p>
</li>
<li>
<p>Marker predicates outside of locations are only supported if they have the
form <code>discrete_variable = marked_value</code>.</p>
</li>
<li>
<p>Discrete variables with multiple marker predicates are not supported.</p>
</li>
<li>
<p>Locations with initialization or marker predicates that are not trivially
true or false are not supported.</p>
</li>
<li>
<p>Automata that do not have exactly one initial location are not supported.</p>
</li>
<li>
<p>Invariants in locations are not supported.</p>
</li>
<li>
<p>Invariants are only supported if they are requirement invariants.</p>
</li>
<li>
<p>Only state invariants are supported. State/event exclusion invariants are
not supported. To allow state/event exclusion invariants to be used in the
input, manually eliminate them first using the
<a href="#tools-cif2cif-chapter-elim-state-event-excl-invs">Eliminate state/event exclusion invariants</a> CIF to CIF transformation.</p>
</li>
<li>
<p>Discrete variables that have multiple potential initial values
(<code>in {...}</code> or <code>in any</code>) are not supported.</p>
</li>
<li>
<p>Continuous variables are not supported.</p>
</li>
<li>
<p>Input variables are currently unsupported.</p>
</li>
<li>
<p>Multi-assignments on edges (such as <code>do (x, y) := (1, 2)</code>) are not
supported. However, it is allowed to use multiple assignments on an edge
(such as <code>do x := 1, y := 2</code>).</p>
</li>
<li>
<p>Partial variable assignments (such as <code>do x[0] := 5</code>) are not supported.</p>
</li>
<li>
<p>Conditional updates on edges (such as <code>do if b: x := 5 end</code>) are not
supported.</p>
</li>
<li>
<p>Urgent locations and urgent edges are not supported.</p>
</li>
<li>
<p>User-defined functions are not supported.</p>
</li>
<li>
<p>Channels (events with data types) are not supported.</p>
</li>
<li>
<p>Only the following data types are supported: boolean types, ranged integer
types, and enumeration types.</p>
</li>
<li>
<p>Only the following expressions are supported: boolean literal values, integer
literal values, binary expressions (partially, see below), unary expressions
(partially, see below), and references to constants, discrete variables,
enumeration literals, and casts that don&#8217;t change the type.</p>
</li>
<li>
<p>Only the following binary operators are supported: logical equivalence
(<code>&lt;=&gt;</code>), logical implication (<code>=&gt;</code>), conjunction (<code>and</code>) on boolean
operands, disjunction (<code>or</code>) on boolean operands, addition (<code>+</code>) on
ranged integer operands, subtraction (<code>-</code>) on ranged integer operands,
multiplication (<code>*</code>) on ranged integer operands, integer division (<code>div</code>)
on ranged integer operands, integer modulus (<code>mod</code>) on ranged integer
operands, equality (<code>=</code>), inequality (<code>!=</code>), less than (<code>&lt;</code>) on ranged
integer operands, less than or equal to (<code>&lt;=</code>) on ranged integer operands,
greater than (<code>&gt;</code>) on ranged integer operands, and greater than or equal to
(<code>&gt;=</code>) on ranged integer operands.</p>
</li>
<li>
<p>Only the following unary operators are supported: logical inverse (<code>not</code>),
negation (<code>-</code>) on a ranged integer operand, and plus (<code>+</code>) on a ranged
integer operand.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2supremica-preprocessing">Preprocessing</h5>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-remove-pos-info">Remove position information</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-add-default-init-values">Add default initial values</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-alg-vars">Eliminate algebraic variables</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-type-decls">Eliminate type declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-monitors">Eliminate monitors</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-enums">Eliminate enumerations</a> (if enabled via the corresponding
<a href="#tools-cif2supremica-options">option</a>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-others">Simplify others</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-transformation-result">Transformation result</h5>
<div class="paragraph">
<p>The CIF automata kinds <code>plant</code>, <code>requirement</code>, and <code>supervisor</code> are
mapped to Supremica kinds <code>Plant</code>, <code>Specification</code>, and <code>Supervisor</code>,
respectively.</p>
</div>
<div class="paragraph">
<p>All generated Supremica automata are tagged as non-deterministic, as CIF
automata may be non-deterministic.</p>
</div>
<div class="paragraph">
<p>Nameless CIF locations are given the name <code>X</code> in Supremica automata.</p>
</div>
<div class="paragraph">
<p>Supremica does not support boolean values. Instead of <code>true</code>, value <code>1</code> is
used, and instead of <code>false</code>, value <code>0</code> is used. For boolean types
(<code>bool</code>), ranged integer types (<code>int[0..1]</code>) are used.</p>
</div>
<div class="paragraph">
<p>The absolute names of all CIF objects (automata, variables, etc) are used,
where the <code>.</code> characters are replaced by <code>:</code> characters. For enumeration
literals, the non-absolute name of the enumeration literal is used, prefixed
with <code>:lit:</code>.</p>
</div>
<div class="paragraph">
<p>No geometry is generated. When the generated Supremica file is opened in
Supremica, Supremica will perform auto layouting.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-initialization">Initialization</h5>
<div class="paragraph">
<p>For the initial values of the variables, initialization predicates are
generated (e.g. <code>x == 3</code>). Earlier versions of Supremica that support
variables allowed deterministic initialization (only the initial value), and
non-deterministic initialization (initialization predicates). The most recent
version only allows non-deterministic initialization, which is why we generate
initialization predicates.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-marking">Marking</h5>
<div class="paragraph">
<p>In CIF, if none of the locations of an automaton are indicated as marked, the
automaton has no marked locations. In Supremica, if none of the locations of
an automaton are indicated as marked (<code>:accepting</code>), all locations of the
automaton are implicitly marked. When transforming a CIF automaton without any
marked locations, a warning is printed to the console to inform the user of
this difference.</p>
</div>
<div class="paragraph">
<p>In CIF, if none of the values of a variable is indicated as marked, the
variable has no marked values. In Supremica, if none of the values of
a variable is indicated as marked (<code>:accepting</code>), all values of the
variable are implicitly marked. When transforming a CIF variable without any
marked values, a warning is printed to the console to inform the user of
this difference.</p>
</div>
<div class="paragraph">
<p>Location pointer variables that are automatically generated, such as the ones
generated by the <a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a> CIF to CIF
transformation, have no marking and thus lead to warnings.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-invariants">Invariants</h5>
<div class="paragraph">
<p>If the CIF model being transformed contains state invariants, an uncontrollable
<code>u_inv_bad</code> event is added to the Supremica module. It is renamed if the name
is not unique. A plant automaton named <code>inv_plant</code> (renamed if not unique) is
added as well. This plant enables the <code>u_inv_bad</code> event if and only if at
least one of the invariants doesn&#8217;t hold. A requirement automaton <code>inv_req</code>
(renamed if not unique) is added as well. The requirement disables the event
globally. Since blocking an uncontrollable plant event in a requirement is
forbidden, synthesis will prevent such blockage (by disabling controllable
events), thereby ensuring that the state invariants hold after synthesis.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-alphabets">Alphabets</h5>
<div class="paragraph">
<p>In CIF, it is possible to explicitly specify the alphabet of an automaton. This
alphabet may include more events than occur on the edges of the automaton,
thereby globally disabling those additional events. Supremica automatically
determines the alphabet automatically, based on the events that occur on the
edges of the automaton, just like CIF does if no explicit alphabet is
specified. If a CIF automaton with 'additional' events is transformed, a self
loop is added to the initial state for each 'additional' event, with a
<code>false</code> guard (<code>0</code> in Supremica). This ensures that the event occurs on
an edge, and is thus part of the alphabet, but is not enabled.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-range-semantics">Range semantics</h5>
<div class="paragraph">
<p>In CIF, if an update of an edge results in out of range values of variables,
the CIF specification is considered invalid, and the simulation will result
in a runtime error. In Supremica, the simulation does not result in a runtime
error, but instead the offending transition is disabled/forbidden.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-jumping-semantics">Jumping semantics</h5>
<div class="paragraph">
<p>Consider the following CIF model:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton p:
  controllable c_event;
  disc int[0..3] v = 0;

  location loc1:
    initial;
    marked;
    edge c_event do v := v + 1 goto loc2;

  location loc2:
    edge c_event               goto loc1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>There are two locations, and the edges allow for moving from one location to
the other. Both edges use the same event. Every odd transition (the first
transition, the third transition, etc), the value of variable <code>v</code> is
increased by one. Every even transition, the value of variable <code>v</code> is not
changed. After a few transitions, the simulation crashes due to overflow of
variable <code>v</code>.</p>
</div>
<div class="paragraph">
<p>To ensure the same semantics in Supremica, such that for every even transition
the value of variable <code>v</code> does not change, the CIF model is modified by the
transformation, to the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton p:
  controllable c_event;
  disc int[0..3] v = 0;

  location loc1:
    initial;
    marked;
    edge c_event do v := v + 1 goto loc2;

  location loc2:
    edge c_event do v := v     goto loc1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Users of the transformation don&#8217;t have to do anything themselves, as the tool
automatically adds the dummy assignments as needed. If the tool would not have
added such dummy assignments, then the value of variable <code>v</code> would have
been able to <em>jump</em> to any value (in its range <code>[0..3]</code>) for every even
transition, according to the Supremica semantics.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tools-simulation-validation-and-visualization-tools">Simulation, validation, and visualization tools</h3>
<div class="sect3">
<h4 id="tools-cifsim-chapter-index">CIF simulator</h4>
<div class="paragraph">
<p>

The CIF simulator can be used to explore the
<a href="#tools-cifsim-traces-state-space">state space</a> of CIF specifications, either
interactively, or using a more automated approach. Powerful visualization
features allow for interactive visualization-based validation of the CIF
specification.</p>
</div>
<div class="paragraph">
<p><strong>Basics</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-chapter-supported">Supported specifications</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-start">Starting the simulator</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-init">Initialization of the CIF specification</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-termination">Terminating the simulator</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-traces">Simulation of traces</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-repeated-simulation">Repeated simulation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Input/Output</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-input-chapter-index">Input modes</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-env-events">Environment events</a> (non-urgent events)</p>
</li>
<li>
<p><a href="#tools-cifsim-output-chapter-index">Simulation output</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Advanced</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-chapter-options">Simulator options</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-performance">Simulation performance</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-index">ODE solver</a> (integration and guard/event detection)</p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-java-compiler">Java compiler</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Miscellaneous</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-chapter-complete-mode">Complete mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-extfuncs">External user-defined functions</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-profiling">Profiling</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-distr-seeds">Stochastic distributions and seeds</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Developers</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-chapter-max-time-point-tol">Maximum time point tolerance</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-debug-gen-code">Debugging generated code</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-test-mode">Test mode</a></p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="tools-simulation-basics">Simulation basics</h4>
<div class="sect4">
<h5 id="tools-cifsim-chapter-supported">Supported specifications</h5>
<div class="paragraph">
<p>
The CIF simulator supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Input variables are currently not supported.</p>
</li>
<li>
<p>Time dependent <a href="#tut-data-chapter-stat-invariants">state invariants</a> are
not supported. This applies only to state invariants.
<a href="#tut-data-chapter-stat-evt-excl-invariants">State/event exclusion invariants</a> are supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Specifications with component definitions/instantiations are not natively
supported by the CIF simulator. Therefore, they are automatically eliminated
by the simulator, as a preprocessing step, using the CIF to CIF transformation
to <a href="#tools-cif2cif-chapter-elim-comp-def-inst">eliminate component definition/instantiation</a>.</p>
</div>
<div class="paragraph">
<p>Automata with multiple possible initial locations and discrete variables with
multiple possible initial values (including <code>any</code>) are not supported, unless
additional <a href="#tools-cifsim-chapter-init">initialization</a> is provided.</p>
</div>
<div class="paragraph">
<p>The controllability of events is ignored by the simulator, as are marker
predicates.</p>
</div>
<div class="paragraph">
<p>All automata are simulated as plants. That is, all automaton kinds are ignored
by the simulator. However, simulating requirements as plants may lead to
unexpected results. Therefore, the simulator prints warnings to the console,
whenever requirements are simulated. It is highly recommended to first apply
<a href="#tools-eventbased-chapter-supervisorsynthesis">supervisor synthesis</a> to the
specification, and simulate the resulting specification using the simulator.
Alternatively, apply verification to the specification,
<a href="#tools-cif2cif-chapter-remove-reqs">remove</a> the verified requirements, and
simulate the resulting specification using the simulator.</p>
</div>
<div class="paragraph">
<p>Similar to requirement automata, the simulator warns about simulation of
requirement invariants.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-start">Starting the simulator</h5>
<div class="paragraph">
<p>
The CIF simulator can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<b class="menuref">Simulate CIF specification&#8230;&#8203;</b>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<b class="menuref">Simulate CIF specification&#8230;&#8203;</b>.</p>
</li>
<li>
<p>Use the <code>cifsim</code> tool in a ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifsim</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Once you start the simulator, an option dialog will appear, where you can
configure the simulation <a href="#tools-cifsim-chapter-options">options</a>.</p>
</div>
<div class="paragraph">
<p>Instead of a CIF model (e.g. a <code>.cif</code> file), simulation can also be started
for a <a href="#tools-cifsim-chapter-repeated-simulation">compiled code file</a> (e.g. a
<code>.cifcode</code> file). For compiled code files, an additional option is
available. The simulator can also be started by double clicking such a file.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-init">Initialization of the CIF specification</h5>
<div class="paragraph">
<p>
CIF supports <a href="#tut-data-chapter-discrete-variables">discrete variables</a> with
<a href="#lang-tut-data-discvar-init-multiple">multiple potential initial values</a>,
as well as discrete variables with an
<a href="#lang-tut-data-discvar-init-any">arbitrary initial value</a>. Furthermore,
CIF supports automata with
<a href="#lang-tut-data-init-preds-aut">multiple potential initial locations</a>.
The simulator however, needs to know how to initialize the specification. The
initial values of discrete variables, and the initial locations of automata,
can be specified using the
<b class="menuref">CIF specification initialization</b>
option
(<b class="menuref">Simulator</b>
category). Initialization can be provided using the
option, per discrete variable or automaton.</p>
</div>
<div class="paragraph">
<p>For a discrete variable, initialization is of the form <code>var:value</code>, where
<code>var</code> is the absolute name of a discrete variable, and <code>value</code> is a CIF
<a href="#lang-tut-values-types-values-exprs-literal">literal</a> that represents a
valid initial value for the variable. Providing an initialization for a
discrete variable with a
<a href="#tut-functions-chapter-functions-as-values">function type</a> or a
<a href="#tut-stochastics-chapter-intro">distribution</a> type, is not supported.</p>
</div>
<div class="paragraph">
<p>For an automaton, initialization is of the form <code>aut:loc</code>, where <code>aut</code> is
the absolute name of an automaton, and <code>loc</code> is the name of a location of
that automaton. Providing an initialization for an automata with only one
nameless location, is not supported.</p>
</div>
<div class="paragraph">
<p>It is not allowed to provide multiple initializations for a single variable or
automaton.</p>
</div>
<div class="paragraph">
<p>If insufficient initializations are provided, variables and automata may not be
initialized. That is, the simulator may not be able to choose between the
multiple potential initial values or locations. The simulator will report such
problems, indicating the specification is
<a href="#tools-cifsim-chapter-supported">unsupported</a> without additional or alternative
initializations.</p>
</div>
<div class="paragraph">
<p>It is also possible that initializations in the CIF specification itself are
incomplete or conflicting, the provided initializations are conflicting, or
their combination is conflicting. Furthermore, initializations may be provided
for values or locations that are not potential initial values or locations. In
all such cases, initialization fails. The simulator will report such problems,
providing detailed information about what caused the initialization failure.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-termination">Terminating the simulator</h5>
<div class="paragraph">
<p>
The CIF simulator can terminate for various reasons. This page explains each
of them, as well as some other information related to termination of the
simulator.</p>
</div>
<div class="sect5">
<h6 id="tools-initialization-failure">Initialization failure</h6>
<div class="paragraph">
<p>If <a href="#tools-cifsim-chapter-init">initialization</a> of the specification fails,
the simulation will terminate immediately.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-deadlock">Deadlock</h6>
<div class="paragraph">
<p>If simulation results in deadlock, no more transitions are possible, and the
simulation will terminate.</p>
</div>
<div class="paragraph">
<p>Simulation does not immediately terminate when deadlock occurs, if an
interactive <a href="#tools-cifsim-input-chapter-index">input mode</a> is used and
<a href="#tools-cifsim-input-chapter-history">history</a> is enabled. Instead, the user is
asked whether to terminate the simulation,
<a href="#tools-cifsim-input-history-reset-undo">undo</a> one or more transitions, or
<a href="#tools-cifsim-input-history-reset-undo">reset</a> the simulation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-termination-endtime">Simulation end time</h6>
<div class="paragraph">
<p>Using the
<b class="menuref">Simulation end time</b>
option (<b class="menuref">Simulator</b>
category), the end time of the simulation can be configured. By setting a
simulation end time, you ensure that when the value of variable <code>time</code>
reaches that value, the simulation terminates.</p>
</div>
<div class="paragraph">
<p>By default the simulation end time is set to 'infinite', which means that
simulation termination is not limited by a simulation end time. Settings a
simulation end time also limits the <a href="#tools-cifsim-solver-chapter-endtime-maxdelay">maximum duration of a time transition</a>.</p>
</div>
<div class="paragraph">
<p>Simulation does not immediately terminate when the configured end time is
reached, if an interactive <a href="#tools-cifsim-input-chapter-index">input mode</a> is
used and <a href="#tools-cifsim-input-chapter-history">history</a> is enabled. Instead, the
user is asked whether to terminate the simulation,
<a href="#tools-cifsim-input-history-reset-undo">undo</a> one or more transitions, or
<a href="#tools-cifsim-input-history-reset-undo">reset</a> the simulation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-runtime-error">Runtime error</h6>
<div class="paragraph">
<p>If simulation results in a runtime error, the simulation will terminate
immediately.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-end-of-trace-file">End of trace file</h6>
<div class="paragraph">
<p>If the <a href="#tools-cifsim-input-chapter-trace">trace input mode</a> is used, and no
more commands are available in the trace file, the simulation will terminate
immediately.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-user-requested-termination">User-requested termination</h6>
<div class="paragraph">
<p>The user can manually request termination of the simulation in several ways.</p>
</div>
<div class="paragraph">
<p>Termination requests have no effect while the simulator interactively asks
for input from the <a href="#tools-cifsim-input-chapter-console">console</a> or via the GUI
of the <a href="#tools-cifsim-input-chapter-gui">interactive GUI input component</a>.
However, once input is provided via the console and <kbd>ENTER</kbd> is pressed, or
a choice is made via the GUI, the termination request will be processed.</p>
</div>
<div class="paragraph">
<p>Termination requests issued between
<a href="#tools-cifsim-output-realtime-frames">intermediate frames</a> are delayed
until the next intermediate frame.</p>
</div>
<div class="sect6">
<h7 id="tools-interactive-console-input">Interactive console input</h7>
<div class="paragraph">
<p>Termination of the simulation can be requested, when using the interactive
<a href="#tools-cifsim-input-chapter-console">console</a> input mode, by typing <code>q</code>
and pressing <kbd>ENTER</kbd>, whenever the simulator interactively asks for input
via the console.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-interactive-gui-input">Interactive GUI input</h7>
<div class="paragraph">
<p>Termination of the simulation can be requested, when using the interactive
<a href="#tools-cifsim-input-chapter-gui">interactive GUI input mode</a>, by closing the
GUI of the interactive GUI input component, when the simulator asks for input
via that GUI.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-applications-view">Applications view</h7>
<div class="paragraph">
<p>The <em>Applications</em> view has several termination features that may terminate
any application, including the CIF simulator. See the documentation for
that view, for details.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-console-termination-button">Console termination button</h7>
<div class="paragraph">
<p>Simulation can be terminated at any time, by using the <b class="menuref">Terminate</b>
button (<span class="image"><img src="./tools/cifsim/terminate_button.png" alt="terminate button"></span>), located at the upper right corner of the console.</p>
</div>
<div class="paragraph">
<p>Note however that if the console does not have the focus, this button may not
be visible. If the button is not visible, click somewhere in the console to
make the button appear. If even then the button is still not available, it may
still appear if you <b class="menuref">Maximize</b> the console. Due to these issues, use
of the termination features of the <em>Applications</em> view is recommended over
using the <b class="menuref">Terminate</b> button of the console. See the documentation for
that view, for details.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-closing-last-real-time-visualizer">Closing last real-time visualizer</h7>
<div class="paragraph">
<p>If the last remaining
<a href="#tools-cifsim-output-realtime-outcomp">real-time output component</a>
(visualizer) is closed by the user, the simulator will be asked to terminate as
soon as possible.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-termination-confirm">Confirming termination</h6>
<div class="paragraph">
<p>When simulating within Eclipse, all
<a href="#tools-cifsim-output-components">visualizers</a> remain open, after the
simulation has terminated. This allows you to observe the final state of the
simulation, before manually closing the visualizers.</p>
</div>
<div class="paragraph">
<p>When simulating on the command line (outside of Eclipse), termination of the
simulator means that the visualizers are also closed. To allow you to observe
the final state of the simulation, you are asked to confirm termination of the
simulator, and therefore closing of the visualizers, by pressing <kbd>ENTER</kbd>
at the console.</p>
</div>
<div class="paragraph">
<p>By default, you are only asked to confirm termination of the simulator when
simulating on the command line (outside of Eclipse), at least one visualizer
is visible at the end of the simulation, simulation did not result in a runtime
error, and <a href="#tools-cifsim-chapter-test-mode">test mode</a> is disabled. The
<b class="menuref">Ask to confirm simulator termination</b>
option (<b class="menuref">Simulator</b>
category) can be used to configure whether the simulator asks the user to
confirm termination of the simulator, terminate automatically, or decides by
itself whether to ask the user for confirmation or terminate automatically. The
latter (letting the simulator decide by itself) is the default.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-traces">Simulation of traces</h5>
<div class="paragraph">
<p>
The CIF simulator simulates one particular trace through the state space of
the specification. To better understand what the previous sentence means, this
page further explains each of those concepts.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-cifsim-traces-state">State</h6>
<div class="paragraph">
<p>Automata consist of one or more locations. However, at any time, an automaton
can only be in <em>one</em> of its locations. This location is called the <em>current</em>
or <em>active</em> location. The current location of an automaton is also called the
<em>state</em> of the automaton.</p>
</div>
<div class="paragraph">
<p>Similar to having multiple locations in automata, variables usually have many
possible values. However, similar to automata having only one current location,
variables can not have two values at the same time.</p>
</div>
<div class="paragraph">
<p>The current location of each of the automata (i.e. the states of the automata),
together with the current values of the variables (all discrete and continuous
variables, including variable <code>time</code>), is called the <em>state</em> of the
specification. The state of the specification (or simply 'the state'), is
all the information that needs to be maintained about the history of the
simulation, going forward.</p>
</div>
<div class="paragraph">
<p>For instance, consider the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton button:
  event pushed, released;

  location Released:
    initial;
    edge pushed goto Pushed;

  location Pushed:
    edge released goto Released;
end

automaton machine:
  event producing, produced;

  location Idle:
    initial;
    edge producing when button.Pushed goto Producing;

  location Producing:
    edge produced goto Idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>We have two automata, <code>button</code> and <code>machine</code>. Pushing the button (event
<code>button.pushed</code>) turns on the machine. Releasing the button (event
<code>button.released</code>) turns it off. Initially, the machine is <code>Idle</code>. While
the button is pushed (location <code>button.Pushed</code> is the current location of
automaton <code>button</code>), the machine can start to create a product (event
<code>machine.producing</code>). Once the machine has produced a product (event
<code>machine.produced</code>), the machine becomes idle again. Note that once the
machine starts producing a product, it always finishes producing it, even if it
is turned off in the mean time.</p>
</div>
<div class="paragraph">
<p>The state of automaton <code>button</code> is either of its locations:
<code>button.Released</code> or <code>button.Pushed</code>. Similarly, the state of automaton
<code>machine</code> is <code>machine.Idle</code> or <code>machine.Producing</code>. Initially, the system
is in state <code>button: Released, machine: Idle, time: 0.0</code>. For the remainder of
variable <code>time</code> will omitted from the state, for brevity only. Furthermore,
also for brevity only, we&#8217;ll omit the names of the automata. Therefore, the
initial state is <code>Released, Idle</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-traces-state-space">State space</h6>
<div class="paragraph">
<p>The <em>state space</em> of a specification consists all the possible states of the
specification, connected by the transitions via which they can be reached.</p>
</div>
<div class="paragraph">
<p>For the example above, the state space is (event names are abbreviated):</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/state_space.png" alt="state space">
</div>
</div>
<div class="paragraph">
<p>Since both automata can be in two states, the state space in this case consists
of four states. From the initial state (the upper left state), the button can
be pushed, leading to the upper right state, where the button is pushed, while
the machine has not yet started to produce a product. The machine can then
start to produce a product (going to the lower right state). If however the
button is released before the machine can respond by starting to produce a
product, we go back to the upper left state. When the machine finishes
creation of the product, we go from the lower right state back to the upper
right state. If on the other hand the button is released, while the product is
still being produced, we go from the lower right state to the lower left state.
If we then push the button again, we go back to the lower right state. If
instead the button is not pushed, and the machine finishes producing the
product, we go from the lower left state back to the upper left state.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-traces-traces">Traces</h6>
<div class="paragraph">
<p>A <em>trace</em> is a sequence of transitions, from the initial state, through the
state space.</p>
</div>
<div class="paragraph">
<p>In state spaces, most states usually have multiple outgoing transitions. This
means there is <em>choice</em>. That is, it is possible to choose to which next state
to go. Furthermore, it is usually possible to keep taking transitions forever,
which means we can have infinite traces.</p>
</div>
<div class="paragraph">
<p>For the example above, some of the possible traces are shown below. Only the
first five transitions of the traces are shown. State names are abbreviated,
to the first letters of the names of the locations.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>RI
→ <code>pushed</code>   → PI → <code>released</code>  → RI
→ <code>pushed</code>   → PI → <code>released</code>  → RI
→ <code>pushed</code>   → PI → &#8230;&#8203;</p>
</li>
<li>
<p>RI
→ <code>pushed</code>   → PI → <code>producing</code> → PP
→ <code>produced</code> → PI → <code>producing</code> → PP
→ <code>produced</code> → PI → &#8230;&#8203;</p>
</li>
<li>
<p>RI
→ <code>pushed</code>   → PI → <code>producing</code> → PP
→ <code>released</code> → RP → <code>produced</code>  → RI
→ <code>pushed</code>   → PI → &#8230;&#8203;</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In the first trace, we push the button, release it, push it again, release it,
and push it again, all without ever starting to produce a product. This traces
shows us what happens if the button is constantly being pushed and released,
as quickly as possible, without the machine being able to respond to this, by
starting to produce a product.</p>
</div>
<div class="paragraph">
<p>In the second trace, we push the button, we start to produce a product, we
finish producing it, start to produce another product (the button is still
pushed), finish producing the second product, and start to produce a third
product. This is a trace of a typical usage scenario, where we start the
machine, and the machine keeps running.</p>
</div>
<div class="paragraph">
<p>In the third trace, we push the button, start to produce a product, release the
button before the product is finished, finish producing the product, and push
the button again. This trace is another typical usage scenario, which also
includes turning off the machine.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-traces-simulation">Simulation</h6>
<div class="paragraph">
<p>As stated at the top of the page: <em>'The CIF simulator simulates one
particular trace through the state space of the specification'</em>. To see why
this is the case, we take a look at the main simulation loop, as used by the
simulator:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Calculate the initial state, and set it as the current state.</p>
</li>
<li>
<p>Forever, do:</p>
<div class="ulist">
<ul>
<li>
<p>If the user-provided simulation end time is reached, stop simulation.</p>
</li>
<li>
<p>Calculate the possible transitions for the current state.</p>
</li>
<li>
<p>If no transitions are possible (deadlock), stop simulation.</p>
</li>
<li>
<p><a href="#tools-cifsim-input-chapter-index">Choose</a> one of the possible transitions.</p>
</li>
<li>
<p>Take the chosen transition, and set its target state as the new current
state.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>While this main simulation loop is simplified with respect to the real
implementation, it gives some insight into the inner workings of the simulator.
The simulator keeps taking transitions. Once a transition is taken, the current
state is updated to the target state of the transition. This means that the
other possible transitions (the ones that were not chosen), are not taken.
Therefore, if we want to take a different transition, we should restart
simulation from the initial state, and make different choices. That is, if we
want to simulate a different trace, we perform another simulation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-traces-validation">Validation</h6>
<div class="paragraph">
<p>The simulator can be used to gain confidence in the correctness of the
specification. By simulating various traces, we can observe what happens in
different scenarios (use cases). Since the number of traces if often infinite,
covering the entire state space, and all possible traces, is impossible.
However, by wisely choosing the traces we simulate, we can cover a large part
of the state space.</p>
</div>
<div class="paragraph">
<p>It should be clear by now, that simulating a single trace is almost never
enough to conclude that your specification is 'correct'. Different traces lead
to different behavior, and only by testing enough traces, and thus covering
enough of the system&#8217;s behavior, can you conclude that your specification
works as expected (for those traces).</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-repeated-simulation">Repeated simulation</h5>
<div class="paragraph">
<p>

When simulating a CIF model, the simulator reads the CIF file, checks it for
validity, generates
<a href="http://oracle.com/java">Java</a>
code,
<a href="#tools-cifsim-chapter-java-compiler">compiles</a> the code, and uses the compiled
code using the actual simulation. All of this takes a bit of time, or even
quite some time, depending on the size of the model. This situation is not
ideal for repeated simulations, for instance when trying different scenarios
or use cases, when simulating with different
<a href="#tools-cifsim-chapter-options">options</a>, or when repeating simulations with
various different <a href="#tools-cifsim-chapter-init">initializations</a> or due to
<a href="#tut-stochastics-chapter-intro">stochastic</a> behavior. The startup time for
the first simulation is also present for the second simulation, etc.</p>
</div>
<div class="paragraph">
<p>It would be much better to generate and compile the code just once, and then
simulate multiple times using the already compiled code, significantly reducing
the startup time of the simulations. This is especially useful for automated
repeated simulations, where the same simulation model, either with different
options (for instance different initializations) or with the same options for a
model with stochastics, is simulated multiple times and the results of
simulation are for instance compared or aggregated in some way.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-cifsim-repeated-sim-compile-once">Compiling just once</h6>
<div class="paragraph">
<p>The simulator can be used to generate code and compile it only once. By
enabling the <em>Compile only</em> option (<em>Compiler</em> category), the simulator will
perform all steps needed to generate and compile the code, and will then save
the compiled code to a file. After saving the file, the simulator will
terminate, not simulating the model.</p>
</div>
<div class="paragraph">
<p>By default, the input file name (e.g. <code>some_file.cif</code>) is used to construct
the name of the simulator compiled Java code file, by removing the <code>.cif</code>
file extension if present, and adding a <code>.cifcode</code> file extension to it (e.g.
resulting in <code>some_file.cifcode</code>). It is possible to change this file name
by using the <em>Compiled code file</em> option (<em>Compiler</em> category). If used, it
specifies the absolute or relative local file system path to the compiled Java
code file.</p>
</div>
<div class="paragraph">
<p>The compiled code file can be put in any directory. It does not have to be in
the same directory as the original CIF model. However, make sure that any
additional files, such as <a href="#tools-cifsim-output-svgviz-chapter-svg">SVG images</a>
for <a href="#tools-cifsim-output-svgviz-chapter-index">visualization</a>, remain in their
original locations. They will be resolved relative to the original location of
the CIF model that was compiled.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-simulating-using-a-compiled-code-file">Simulating using a compiled code file</h6>
<div class="paragraph">
<p>There are several ways to start simulation with a compiled code file. In fact,
all the ways to <a href="#tools-cifsim-chapter-start">start</a> simulation for normal CIF
models (e.g. <code>.cif</code> files), apply to compiled code files (e.g. <code>.cifcode</code>
file) as well. The simulator checks whether the input file name ends with
<code>.cifcode</code> and then loads the compiled code file, instead of treating the
input model as CIF model.</p>
</div>
<div class="paragraph">
<p>Alternatively, a <code>.cifcode</code> file can be double clicked in the Eclipse
'Project Explorer' tab or 'Package Explorer' tab, to immediately
start simulation. An option dialog is shown to configure any simulator
<a href="#tools-cifsim-chapter-options">options</a>.</p>
</div>
<div class="paragraph">
<p>A warning is printed to the console if the compiled code file was generated
by a different version of the simulator than the one used to simulate it.
Ignoring the warning may lead to unexpected simulation results, or even
simulator crashes.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-option-effects-and-priorities">Option effects and priorities</h6>
<div class="paragraph">
<p>Most simulator <a href="#tools-cifsim-chapter-options">options</a> have no effect when the
<em>Compile only</em> option (<em>Compiler</em> category) is enabled, as after code is
generated, compiled, and saved to a file, the simulator terminates, and no
actual simulation is performed.</p>
</div>
<div class="paragraph">
<p>The <em>Compile only</em> option (<em>Compiler</em> category) has no effect when
<a href="#tools-cifsim-chapter-debug-gen-code">debugging generated code</a>, by enabling
the <em>Load debug code</em> option (<em>Simulator</em> category).</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-example">Example</h6>
<div class="paragraph">
<p>As an example, consider the following CIF model in file <code>machine.cif</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event enter;
event processed;
event exit;

automaton machine:
  disc int count = 0;
  disc real process_time;
  disc dist real d = normal(10, 7);
  cont t der 1.0;

  location waiting:
    initial;
    edge enter do (process_time, d) := sample d, t := 0 goto processing;

  location processing:
    edge processed when t &gt;= process_time goto done;

  location done:
    edge exit do count := count + 1 goto waiting;
end

print machine.count for final;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The model consists of a <code>machine</code> that processes products. Initially, the
machine is <code>waiting</code>. Once a product enters the system, the machine will
start <code>processing</code>. Once the product is <code>processed</code>, the machine is
<code>done</code> and will be <code>waiting</code> for the next product to <code>enter</code>. The time it
takes to process a product varies with each product. A
<a href="http://en.wikipedia.org/wiki/Normal_distribution">normal distribution</a>
with
a mean of <code>10</code> and a variance of <code>7</code> is used to model the varying
processing times.</p>
</div>
<div class="paragraph">
<p>The <a href="#tools-cifsim-output-print-chapter-ref-printdecl">print declaration</a> at the
end of the model is used to <a href="#tools-cifsim-output-print-chapter-index">print</a>
the number of processed products at the end of the simulation.</p>
</div>
<div class="paragraph">
<p>Consider the following ToolDef <a href="#tools-scripting-chapter-intro">script</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">from &quot;lib:cif&quot; import *;

cifsim(&quot;machine.cif --compile-only=on&quot;);

rmfile(&quot;out.txt&quot;, force=true);

for x in range(1000):
    string args = &quot;machine.cifcode -i auto -a first -t 100 -o print&quot;;
    cifsim(args, stdout=&quot;out.txt&quot;, appendOut=true);
end

double minimum = 9999;
double maximum = -9999;
for line in readlines(&quot;out.txt&quot;):
    double value = &lt;double&gt;line;
    minimum = min(minimum, value);
    maximum = max(maximum, value);
end

outln(&quot;Minimum: %.2f&quot;, minimum);
outln(&quot;Maximum: %.2f&quot;, maximum);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>import</code> statement makes the CIF tools available. The first <code>cifsim</code>
command generates code for the <code>machine.cif</code> model, compiles it, and saves it
to <code>machine.cifcode</code>. The <code>rmfile</code> command removes the <code>out.txt</code> file, in
case it was left over from a previous run of the script.</p>
</div>
<div class="paragraph">
<p>The body of the <code>for</code> statement is executed <code>1000</code> times. Each time, the
<code>cifsim</code> command is used to simulate the model, using the already compiled
code in <code>machine.cifcode</code>. The simulation uses
<a href="#tools-cifsim-input-chapter-automatic">automatic mode</a> due to <code>-i auto</code>,
always chooses the <a href="#tools-cifsim-input-automatic-trans">first</a> available
transition due to <code>-a first</code>, <a href="#tools-cifsim-termination-endtime">ends</a>
at time <code>100</code> due to <code>-t 100</code>, and only
<a href="#tools-cifsim-output-chapter-normal">outputs</a> text for print declarations due
to <code>-o print</code>. The output of the simulation is not written to the console,
but to <code>out.txt</code> due to the use of the <code>stdout</code> parameter of the
<code>cifsim</code> tool. The <code>appendOut</code> parameter is enabled to ensure that the
output of each simulation is appended (added) to the <code>out.txt</code> file instead
of overwriting the file for each simulation. After the simulations, the
<code>out.txt</code> file will contain the number of processed products for each of the
simulation experiments.</p>
</div>
<div class="paragraph">
<p>The remainder of the script computes the minimum and maximum number of products
(minimum and maximum throughput) of the machine, as observed from the
experiments. Both the <code>minimum</code> and <code>maximum</code> are initialized. Then each
line of the <code>out.txt</code> file is processed. The numeric value is obtained by
casting the text of the line to a <code>double</code> number. Then the <code>minimum</code> and
<code>maximum</code> are updated as needed. After the minimum and maximum are
calculated, they are printed to the console as floating point numbers with two
digits after the decimal mark.</p>
</div>
<div class="paragraph">
<p>The output of the execution of the script could look like this, but may vary
given that stochastics are used:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">Minimum: 7.00
Maximum: 12.00</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-applications-view-2">Applications view</h6>
<div class="paragraph">
<p>The <em>Applications</em> view shows the current status
of each running application. For repeated simulation, lots of applications may
be started in a short period of time. Also, a lot of status updates need to
be processed by the view in a short amount of time. This may lead to many
updates of the GUI of the <em>Applications</em> view, which could potentially reduce
the responsiveness of Eclipse, and decrease the performance of the simulation.
If you experience such problems, simply close the <em>Applications</em> view while
running a repeated simulation.</p>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-simulation-inputoutput">Simulation input/Output</h4>
<div class="sect4">
<h5 id="tools-cifsim-input-chapter-index">Input modes</h5>
<div class="paragraph">
<p>



The CIF simulator simulates <a href="#tools-cifsim-chapter-traces">traces</a> through the
<a href="#tools-cifsim-traces-state-space">state space</a> of a specification. If
multiple transitions are possible, a choice must be made. The simulator defers
this choice to an <em>input component</em>.</p>
</div>
<div class="paragraph">
<p>The primary responsibility or an input component is to choose the transition to
take, from the given possible transitions, calculated for the current
<a href="#tools-cifsim-traces-state">state</a>. If the chosen transition is a time
transition, the input component must also decide the amount of time to delay.</p>
</div>
<div class="paragraph">
<p>The input component to use for the simulation, depends on the <em>input mode</em>,
which can be configured via the
<b class="menuref">Input mode</b>
option
(<b class="menuref">Input</b>
category). The simulator has several input modes:</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-input-chapter-console">Interactive console input mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-chapter-gui">Interactive GUI input mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-chapter-automatic">Automatic input mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-chapter-trace">Trace input mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-svg-chapter-index">SVG input mode</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Only one input mode, and thus one input component, can be used for each
simulation. By default, the <em>GUI input mode</em> is used.</p>
</div>
<div class="paragraph">
<p>The following information on other topics, related to input modes, is
available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-input-chapter-semi-automatic">Semi-automatic mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-chapter-history">State history</a> (reset, undo)</p>
</li>
</ul>
</div>
<div class="sect5">
<h6 id="tools-cifsim-input-chapter-console">Interactive console input mode</h6>
<div class="paragraph">
<p>

In the interactive console input mode, the simulator interactively asks the
user to choose the transitions to take, etc. The questions are asked via text
printed to the console. The user enters his/her choice via the console as well.</p>
</div>
<div class="sect6">
<h7 id="tools-choosing-a-transition-to-take">Choosing a transition to take</h7>
<div class="paragraph">
<p>The following is an example of the simulator interactively asking the user to
choose a possible transition:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">Possible transitions:
  #1: event machine1.c_start
  #2: event machine2.c_start
  #3: delay for (0 .. 100.0]

Select a transition ([1..3]). Enter q to quit. Enter h for help and additional commands. Confirm with &lt;ENTER&gt;:</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, three possible transitions are given, numbered <code>1</code> to <code>3</code>. For your
convenience, they are sorted alphabetically on the names of the events, with
event <code>tau</code> always at the end, just before time transitions.</p>
</div>
<div class="paragraph">
<p>The user should enter a command, and confirm that choice by pressing
<kbd>ENTER</kbd>. Several command are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Entering a number in the given range, corresponding to the transition with
that number, will result in that specific transition being taken. So,
entering <code>2</code> and pressing <kbd>ENTER</kbd>, will result in the simulator taking
the transition for event <code>machine2.c_start</code>. The valid choices for the
transitions are indicated by the range <code>[1..3]</code>. In case of an invalid
number, an error message is printed to the console, and the user can choose
again.</p>
</li>
<li>
<p>Entering nothing, and only pressing <kbd>ENTER</kbd>, defaults to choosing
transition <code>1</code>.</p>
</li>
<li>
<p>Entering <code>r</code> or <code>R</code>, and confirming that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-input-history-reset-undo">reset</a> the simulation to the
initial state. If reset is not enabled, or not possible for the current
state, an error message is printed and the user can choose again.</p>
</li>
<li>
<p>Entering <code>u</code> or <code>U</code>, and confirming that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-input-history-reset-undo">undo</a> one transition. If undo is
not enabled, or not possible for the current state, an error message is
printed and the user can choose again.</p>
</li>
<li>
<p>Entering <code>u &lt;n&gt;</code> or <code>U &lt;n&gt;</code>, with <code>&lt;n&gt;</code> a positive number, and
confirming that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-input-history-reset-undo">undo</a> <code>n</code> transitions. If undo is
not enabled, it is not possible to undo <code>n</code> transitions for the current
state, an error message is printed and the user can choose again.</p>
</li>
<li>
<p>Entering <code>q</code> or <code>Q</code>, and confirming that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-chapter-termination">terminate</a> the simulation.</p>
</li>
<li>
<p>Entering <code>h</code> or <code>H</code>, and confirming that by pressing <kbd>ENTER</kbd>, will
result in the simulator printing a short help text to the console, that
shows the available commands. The user is then again asked to choose.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If a choice is made that is invalid or is not available for the current state,
an error message is printed to the console, and the user is asked to make an
other choice.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-choosing-a-time-transition-duration">Choosing a time transition duration</h7>
<div class="paragraph">
<p>If the user chooses a time transition (choice <code>3</code> in the above example), the
simulator subsequently asks for the duration of the time delay:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">Select a duration from (0 .. 100.0]. Empty choice equals maximum delay. Enter q to quit. Confirm with &lt;ENTER&gt;:</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, the duration of the time delay is to be entered. In this case, the
duration must be in the <code>(0 .. 100.0]</code> interval. That is, it must be larger
than zero, and less or equal to <code>100.0</code>. Both integer and real values are
allowed. As before, confirm with <kbd>ENTER</kbd>.</p>
</div>
<div class="paragraph">
<p>Pressing <kbd>ENTER</kbd> without having entered anything, defaults to the maximum
delay, which in this case is <code>100.0</code>. Entering <code>q</code> or <code>Q</code>, and confirming
that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-chapter-termination">terminate</a> the simulation.</p>
</div>
<div class="paragraph">
<p>If a choice is made that is invalid, an error message is printed to the
console, and the user is asked to make an other choice.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-choosing-between-termination-or-going-back">Choosing between termination or going back</h7>
<div class="paragraph">
<p>If no transitions are possible, for instance due to
<a href="#lang-tut-time-deadlock">deadlock</a> or reaching the
<a href="#tools-cifsim-termination-endtime">end-user provided simulation end time</a>,
the simulator may interactively ask the
user to choose between termination of the simulation, resetting the simulation
to the initial state, or undoing some transitions. This choice is only
presented if either reset or undo is enabled, as otherwise there is no choice
to make.</p>
</div>
<div class="paragraph">
<p>The following is an example of the simulator interactively asking the user to
choose between termination and going back:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">Simulation resulted in deadlock. Enter q to quit. Enter h for help and additional commands. Confirm with &lt;ENTER&gt;:</code></pre>
</div>
</div>
<div class="paragraph">
<p>The user should enter a command, and confirm that choice by pressing
<kbd>ENTER</kbd>. Several command are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Entering <code>r</code> or <code>R</code>, and confirming that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-input-history-reset-undo">reset</a> the simulation to the
initial state. If reset is not enabled, or not possible for the current
state, an error message is printed and the user can choose again.</p>
</li>
<li>
<p>Entering <code>u</code> or <code>U</code>, and confirming that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-input-history-reset-undo">undo</a> one transition. If undo is
not enabled, or not possible for the current state, an error message is
printed and the user can choose again.</p>
</li>
<li>
<p>Entering <code>u &lt;n&gt;</code> or <code>U &lt;n&gt;</code>, with <code>&lt;n&gt;</code> a positive number, and
confirming that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-input-history-reset-undo">undo</a> <code>n</code> transitions. If undo is
not enabled, it is not possible to undo <code>n</code> transitions for the current
state, an error message is printed and the user can choose again.</p>
</li>
<li>
<p>Entering <code>q</code> or <code>Q</code>, and confirming that by pressing <kbd>ENTER</kbd>, will
<a href="#tools-cifsim-chapter-termination">terminate</a> the simulation.</p>
</li>
<li>
<p>Entering <code>h</code> or <code>H</code>, and confirming that by pressing <kbd>ENTER</kbd>, will
result in the simulator printing a short help text to the console, that
shows the available commands. The user is then again asked to choose.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If a choice is made that is invalid or is not available for the current state,
an error message is printed to the console, and the user is asked to make an
other choice.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-semi-automatic-mode">Semi-automatic mode</h7>
<div class="paragraph">
<p>By default, in the interactive console input mode, the user is asked to choose,
even if for instance there is only one possible transition. Having to choose
for every transition can become tiresome. To reduce the number of situations
where a choice is required, the
<a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic</a> mode is available.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-input-chapter-gui">Interactive GUI input mode</h6>
<div class="paragraph">
<p>

In the interactive GUI input mode, the simulator interactively asks the user to
choose the transitions to take, etc. Choices are presented using a GUI
(Graphical User Interface). The user makes choices via the GUI as well.</p>
</div>
<div class="sect6">
<h7 id="tools-layout">Layout</h7>
<div class="paragraph">
<p>The following is an example of the simulator interactively asking the user to
choose a possible transition:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/interactive_gui_basic.png" alt="interactive gui basic">
</div>
</div>
<div class="paragraph">
<p>The events of the system are vertically listed, in alphabetical order, with
event <code>tau</code> at the end, just before the
<b class="menuref">time delay</b>,
and
<b class="menuref">reset</b>
and
<b class="menuref">undo</b>.
If there are too many elements to fit
vertically, more columns are used. If things still don&#8217;t fit, a horizontal
scroll bar is shown.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-gui-availability">Availability</h7>
<div class="paragraph">
<p>Choices for events are only present if the events are interactively chosen. If
they are (semi-)automatically chosen, they are not shown in the GUI. Similarly,
choices for
<b class="menuref">time delay</b>
are only shown if time transitions or their
durations are interactively chosen. For more information, see the
<a href="#tools-cifsim-input-gui-semiauto">Semi-automatic mode</a> section below.</p>
</div>
<div class="paragraph">
<p>For event <code>tau</code>, the choices are additionally only shown if there is at least
one <code>tau</code> edge in the specification.</p>
</div>
<div class="paragraph">
<p>The choice to
<b class="menuref">reset</b>
the simulation is only shown if
<a href="#tools-cifsim-input-history-reset-undo">resetting</a> the simulation is enabled.
Similarly, the choice to
<b class="menuref">undo</b>
transitions is only shown if
<a href="#tools-cifsim-input-history-reset-undo">undo</a> is enabled.</p>
</div>
<div class="paragraph">
<p>If none of the choices are to be shown in the GUI, the GUI itself is not shown
at all.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-buttons">Buttons</h7>
<div class="paragraph">
<p>For each element, there are two buttons. The left button shows the name of the
event, or a description of the choice (e.g.
<b class="menuref">time delay</b>,
<b class="menuref">reset</b>),
and can be used to quickly choose a transition. The second
button shows an arrow, and can be used to show a popup menu, presenting
additional choices. What exactly is chosen when clicking the button, and what
exactly is shown in the popup menu, differs for the different choices. The
sections below provide further details.</p>
</div>
<div class="paragraph">
<p>If no choice needs to be made at the moment, all buttons are disabled. If a
choice needs to be made, only those buttons that represent active choices are
enabled.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-styling">Styling</h7>
<div class="paragraph">
<p>For <a href="#tools-cifsim-chapter-env-events">environment</a> (non-urgent) events, the
label of the left button is italic. For non-environment (urgent) events, as
well as for non-event choices, the label uses a normal font.</p>
</div>
<div class="paragraph">
<p>Before each element a colored box is shown. The box is gray while that
particular choice is not available. If choices are available, the box is green
for <a href="#lang-tut-extensions-synthesis-evtctrl">controllable</a> events, red for
<a href="#lang-tut-extensions-synthesis-evtctrl">uncontrollable</a> events, blue for
other events, and black for everything else (<b class="menuref">time delay</b>,
<b class="menuref">reset</b>,
and
<b class="menuref">undo</b>).
The text of the left button has
the same color as the box. The colors help to quickly identify elements with
possible choices.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-labels">Labels</h7>
<div class="paragraph">
<p>Between the buttons, a label may be shown, to provide more details. When the
label is shown, and what text is shown, differs for the different choices. The
sections below provide further details.</p>
</div>
<div class="paragraph">
<p>In the above image, the system has five events, besides the <code>tau</code> event. The
simulator asks the user to choose between a transition for event
<code>Switch.u_on</code> and a time transition.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-choosing-an-event-transition">Choosing an event transition</h7>
<div class="paragraph">
<p>For an event, the first button makes it possible to quickly choose a transition
for that event. If clicked, the possible transitions are filtered to those for
the chosen event, and the
<a href="#tools-cifsim-input-chapter-automatic">automatic input component</a> is asked to
make the actual choice, based on its own configuration.</p>
</div>
<div class="paragraph">
<p>If multiple transitions are possible for a single event, the number of possible
transitions is displayed as label between the two buttons for that event. The
following image shows an example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/interactive_gui_event.png" alt="interactive gui event">
</div>
</div>
<div class="paragraph">
<p>In this example, two transitions are possible for event <code>b2m</code>. By clicking
the button labeled with <code>b2m</code>, the
<a href="#tools-cifsim-input-chapter-automatic">automatic input component</a> is asked to
choose between the two transitions, based on its own configuration. By clicking
the arrow button, a popup menu is shown, showing the two transitions. The popup
menu allows manually choosing which transition to take, by clicking the menu
item of the transition you wish to take.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-choosing-a-time-transition-and-duration">Choosing a time transition and duration</h7>
<div class="paragraph">
<p>The
<b class="button">time delay</b>
button makes it possible to quickly choose the time
transition. By default the maximum allowed delay duration will be used. This
duration is displayed as label between the two buttons, in short form with
three significant digits. By clicking the arrow button, additional options
become available. These options also show the complete durations. The following
image shows an example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/interactive_gui_time.png" alt="interactive gui time">
</div>
</div>
<div class="paragraph">
<p>At most <code>0.30000000000000066</code> units of time can pass (<code>0.300</code> in short
form). The first option is to choose a custom duration. The second option is
to choose that maximum duration, similar to clicking the
<b class="menuref">time delay</b>
button. The following image shows the dialog that is presented to the user to
enter the custom duration:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/interactive_gui_duration.png" alt="interactive gui duration">
</div>
</div>
<div class="paragraph">
<p>By entering an integer or real number for the duration, that exact amount of
time units will pass, after clicking the
<b class="button">OK</b>
button. If the
<b class="button">Cancel</b>
button is clicked instead, the choice is canceled, and the
user is again free to choose between all available choices.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-choosing-to-reset-the-simulation">Choosing to reset the simulation</h7>
<div class="paragraph">
<p>The
<b class="button">reset</b>
button makes it possible to
<a href="#tools-cifsim-input-history-reset-undo">reset</a> the simulation to the initial
state. The popup menu that can be shown by clicking on the arrow button, has
only one option, which the same effect as clicking the button. The following
image shows the popup menu:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/interactive_gui_reset.png" alt="interactive gui reset">
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-choosing-to-undo-some-transitions">Choosing to undo some transitions</h7>
<div class="paragraph">
<p>The
<b class="button">undo</b>
button makes it possible to
<a href="#tools-cifsim-input-history-reset-undo">undo</a> a single transition, and go back
to the state just prior to that transition. The number of transitions that can
be undone, is displayed as label between the two buttons.</p>
</div>
<div class="paragraph">
<p>Clicking the arrow button shows a popup menu with additional options. Menu
items are present to undo 1 transition, to undo 2 transitions, to undo 3
transitions, etc, for as many transitions as can be undone. The following image
shows an example with two transitions that can be undone:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/interactive_gui_undo2.png" alt="interactive gui undo2">
</div>
</div>
<div class="paragraph">
<p>At most 10 such menu items are shown. If more than 10 transitions can be
undone, an additional choice is present, that allows entering a custom number
of transitions to undo. The following image shows an example with 12
transitions that can be undone:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/interactive_gui_undo12.png" alt="interactive gui undo12">
</div>
</div>
<div class="paragraph">
<p>Selecting that last option will present the user with a dialog, to select the
number of transitions to undo:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/interactive_gui_undo_count.png" alt="interactive gui undo count">
</div>
</div>
<div class="paragraph">
<p>The number of transitions needs to be entered as a positive number, within the
given range. Clicking the
<b class="button">OK</b>
button will undo the requested number
of transitions. If the
<b class="button">Cancel</b>
button is clicked instead, the choice
is canceled, and the user is again free to choose between all available
choices.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-gui-semiauto">Semi-automatic mode</h7>
<div class="paragraph">
<p>By default, in the interactive GUI input mode, the user is asked to choose,
even if for instance there is only one possible transition. Having to choose
for every transition can become tiresome. To reduce the number of situations
where a choice is required, the
<a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic</a> mode is available.</p>
</div>
<div class="paragraph">
<p>Choices that are no longer available due to them being automatically chosen by
enabling semi-automatic mode, are not shown in the GUI of the interactive GUI
input mode. See also the <a href="#tools-cifsim-input-gui-availability">Availability</a> section
above.</p>
</div>
<div class="paragraph">
<p>By enabling semi-automatic mode to automatically choose time transitions
(option value <code>time</code>), while not automatically choosing the delay durations
of time transitions (option value <code>timedur</code>), time transitions are
automatically chosen, but the user is still asked to choose the duration of the
time transitions. For this choice, all non-time choices are disabled, making
only the time related choices available. The effect of the
<b class="menuref">time delay</b>
button remains the same, i.e. choosing the maximum
allowed or available delay. The popup menu for the time delay also still shows
the default options, to choose either a specific custom delay duration, or the
maximum duration.</p>
</div>
<div class="paragraph">
<p>By enabling semi-automatic mode to automatically choose the delay durations of
time transitions (option value <code>timedur</code>), while not automatically choosing
the time transition themselves (option value <code>time</code>), the effect of the
<b class="menuref">time delay</b>
button changes from choosing the time transition with
the maximum allowed or available delay, to choosing the time transition and
letting the <a href="#tools-cifsim-input-chapter-automatic">automatic input component</a>
choose the actual delay duration, based on its own configuration. The popup
menu for the time delay then only shows one option, to let the automatic input
component choose, identical to the effect of the
<b class="menuref">time delay</b>
button.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-termination">Termination</h7>
<div class="paragraph">
<p>By closing the GUI of the interactive GUI input component, no more interactive
choices can be made. The next time an interactive choice is to be made,
simulation <a href="#tools-cifsim-chapter-termination">terminates</a>.</p>
</div>
<div class="paragraph">
<p>While an interactive choice is to be made via the GUI, the red stop button of
the Eclipse console does not function. Once a choice is made, simulation will
<a href="#tools-cifsim-chapter-termination">terminate</a>.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-input-chapter-automatic">Automatic input mode</h6>
<div class="paragraph">
<p>

In the automatic input mode, the simulator automatically chooses transitions
as well time transition durations. How the simulator chooses however, can be
influenced using options. These options are explained below. The final section
of this page explains the
<a href="#tools-cifsim-input-automatic-limitations">limitations</a> of using these
options.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-automatic-trans">Automatic mode choice algorithm option</h7>
<div class="paragraph">
<p>In the automatic input mode, the simulator automatically chooses the
transitions to take, without any user interaction. The choice that is made
can however be influenced using the
<b class="menuref">Automatic mode choice algorithm</b>
option (<b class="menuref">Input</b>
category). The following choices are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>First transition.</p>
</li>
<li>
<p>Last transition.</p>
</li>
<li>
<p>Random transition (random seed).</p>
</li>
<li>
<p>Random transition (specific seed).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The options to choose the first or last transition do exactly what they state,
i.e. they choose the first respectively the last transition from the list of
possible transitions. Note that event transitions are always listed before
time transitions, but event transitions can only be listed together with time
transitions if <a href="#tools-cifsim-chapter-env-events">environment events</a> are
present. Also note that if transitions for the <code>tau</code> event are present, they
are listed after the transitions for all other events.</p>
</div>
<div class="paragraph">
<p>
The other two options randomly choose a transition from the possible
transitions. If a random seed (for the random number generator) is used, each
simulation will potentially choose a different trace. In this case, the seed
that is used, is <a href="#tools-cifsim-output-chapter-normal">printed</a> to the console
at the start of the simulation. If a specific seed is used, then the choices
are still random, but can be reproduced. Each simulation, using random
automatic input mode, with the same seed, for the same specification, should
lead to the same <a href="#tools-cifsim-chapter-traces">trace</a>. Seeds are integer
numbers from the range [0 .. 2<sup>30</sup>].</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-automatic-time">Automatic mode time transition duration option</h7>
<div class="paragraph">
<p>In the automatic input mode, the simulator automatically chooses the durations
of the time transitions, without any user interaction. The choice that is made
can however be influenced using the
<b class="menuref">Automatic mode time transition duration</b>
option (<b class="menuref">Input</b>
category). The following choices are
available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Maximum allowed duration.</p>
</li>
<li>
<p>Random duration (random seed).</p>
</li>
<li>
<p>Random duration (specific seed).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The option to choose the maximum allowed duration does exactly what it states,
i.e. it chooses the maximum allowed duration for each time transition, until
the next potential state event.</p>
</div>
<div class="paragraph">
<p>
The other two options randomly choose a duration for the time transitions.
For both options, a uniform random distribution is used, which is sampled to
obtain the time at which time transitions are to be 'interrupted' or 'cut off'.
The upper bound (exclusive) of the uniform random distribution is to be
provided by the user. You can think of these random options as adding an extra
automaton to the specification, that could look as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton auto_time_trans_duration:
  const real UPPER = ...;
  disc dist real d = uniform(0.0, UPPER);
  disc real timeToWait;
  cont t der 1.0;

  location sampling:
    initial;
    edge do (timeToWait, d) := sample d goto waiting;

  location waiting:
    edge when t &gt;= timeToWait do t := 0.0 goto sampling;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The upper bound of the uniform real distribution (<code>UPPER</code> &gt; 0), is provided
by the user. A sample is taken from the distribution, indicating the time to
wait before the time transition is to be interrupted. Once that much time has
elapsed, a new sample is taken, and the process repeats itself. The actual
implementation is slightly different, in that no actual automaton is added,
no additional <code>tau</code> transitions result from using this option, and no zero
length time transitions are chosen. However, the effect is very similar.</p>
</div>
<div class="paragraph">
<p>So, say the user wants to use a uniform distribution over interval [0 .. 10).
The simulator takes a sample, say 3.0. Assume we then get a time transition for
at most 0.5 time units. We take that entire transition and are left with 2.5
remaining time units (3.0 - 0.5). If we then get another time transition for at
most 1.2 time units, we take that one entirely as well. We are left with 1.3
(2.5 - 1.2) time units. If we would then get a time transition for at most 5.0
time units, the automatic input component ensures that we instead get a time
transition for at most 1.3 time units, instead of one for at most 5.0 time
units. Since we choose to interrupt after 1.3 time units anyway, there is no
reason to compute the remainder of the time transition after those 1.3 time
units. We choose the entire time transition of 1.3 time units, and compute a
new sample. The simulator then once again calculates new transitions, and the
process repeats. The next time transition that is calculated will be for the
remaining 3.7 (5.0 - 1.3) time units, unless it is interrupted again before
that time, i.e. if the new sample is smaller than 3.7.</p>
</div>
<div class="paragraph">
<p>If a random seed (for the random number generator) is used, each simulation
will potentially choose a different trace. In this case, the seed that is used,
is <a href="#tools-cifsim-output-chapter-normal">printed</a> to the console at the start of
the simulation. If a specific seed is used, then the choices are still random,
but can be reproduced. Each simulation, using random automatic time transition
duration, with the same seed, for the same specification, should lead to the
same <a href="#tools-cifsim-chapter-traces">trace</a>. Seeds are integer numbers from the
range [0 .. 2<sup>30</sup>].</p>
</div>
<div class="paragraph">
<p>The random durations are particularly useful in combination with
<a href="#tools-cifsim-chapter-env-events">environment events</a>, as it allows the
environment events to be chosen at the time the time transition is interrupted.
That is, it allows the environment events to occur at random times.
Using this option, the user can specify the distribution used for 'cutting up'
the time transitions, and thus the possible moments when environment events can
potentially take place. This is in addition to the state events, at which the
environment events can also be chosen. These new additional possibilities
however, are not influenced by the occurrence rate of the events of the system,
and allow more control for the user. In particular for cases where the
simulation allows infinite time transitions (no state events), the infinite
time transitions can then be interrupted to allow environment events to take
place.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-automatic-limitations">Limitations</h7>
<div class="paragraph">
<p>Using the two options described above, and choosing random for each of them,
introduces a certain degree of randomness to the
<a href="#tools-cifsim-chapter-traces">trace</a> that the simulator will explore. This
randomness however, is rather limited. For one, the distributions that are
used are mostly fixed, as the options don&#8217;t allow using for instance an
exponential distribution. Furthermore, there is no way to specify the
distribution for events individually, and it is not possible to specify the
distribution between event transitions and time transitions. Concretely, the
options for instance don&#8217;t enforce that environment events get chosen. They
<em>may</em> be chosen when the time transitions are interrupted, or at state events,
but that is not guaranteed, as the simulator may choose the time transition
again, after the interruption.</p>
</div>
<div class="paragraph">
<p>The options provide a lightweight, quick, and easy to use approach to adding
some randomness. If more control is needed, the environment can instead be
modeled explicitly in the CIF model, thus defining when the environment events
may or will occur. One way to accomplish this, is by adding a use case.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-undoreset">Undo/reset</h7>
<div class="paragraph">
<p>The automatic input mode does not support
<a href="#tools-cifsim-input-history-reset-undo">undo</a> and
<a href="#tools-cifsim-input-history-reset-undo">reset</a>.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-input-chapter-trace">Trace input mode</h6>
<div class="paragraph">
<p>

In the trace input mode, the simulator automatically chooses transitions as
well as time transition durations, based on a user provided trace file.</p>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-trace-file">Trace file</h7>
<div class="paragraph">
<p>If the trace input mode is used, the
<b class="menuref">Trace input file</b>
option
(<b class="menuref">Input</b>
category) can be used to specify the path to the trace file.
If the path is not explicitly specified, the input CIF file path is used, where
the <code>.cif</code> file extension is removed if present, and a <code>.trace</code> file
extension is added.</p>
</div>
<div class="paragraph">
<p>The trace file uses a line based file format. Leading (at the beginning of the
line) and trailing (at the end of the line) whitespace is ignored. Empty lines
as well as lines starting with a hash character (<code>#</code>) are ignored as well.
Lines starting with a hash character can be used as comment lines. All other
lines contain commands.</p>
</div>
<div class="paragraph">
<p>There are two types of commands: option commands and non-option commands. The
option commands must always be before the non-option commands.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-option-commands">Option commands</h7>
<div class="paragraph">
<p>All option commands use the <code>option NAME VALUE</code> syntax, where <code>NAME</code> is the
name of the option, and <code>VALUE</code> is the value of the option. Option commands
must be specified in the trace file, before any other (non-option) commands.
The remainder of this section explains the available options.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>option strict on/off</em> (default <code>off</code>)</p>
<div class="paragraph">
<p>The strict option can be used to specify whether a strict match is
expected for an event. If strict mode is on (option strict on), it is
considered an error if more than one transition is possible for an event from
the trace. If strict mode is off (option strict off), and there are
multiple possible transitions for an event from the trace, the
<a href="#tools-cifsim-input-chapter-automatic">automatic input component</a> is asked to
choose between those possible transitions for that single event, based on its
own configuration. The strict option applies only to events, not time delays.</p>
</div>
</li>
<li>
<p><em>option time off/implicit/explicit</em> (default <code>implicit</code>)</p>
<div class="paragraph">
<p>The time option can be used to specify the time mode to use.
If the time mode is off (option time off) , time passage is not
allowed. That is, time delays/transitions are never chosen, and the value of
variable time remains zero during the entire simulation. For this mode,
the time command is not allowed.</p>
</div>
<div class="paragraph">
<p>If the time mode is implicit (option time implicit), time delays are
chosen if necessary. The simulator will use the least amount of time passage
possible, to still enable the events as specified in the trace. In other
words, if an event is possible no time delays occur, and otherwise the
simulator delays for as long as is needed until the event becomes enabled.
For this mode, the time command is not allowed.</p>
</div>
<div class="paragraph">
<p>If the time mode is explicit (option time explicit), time delays are
only possible if the time command explicitly allows time passage.</p>
</div>
</li>
</ul>
</div>
</div>
<div class="sect6">
<h7 id="tools-transition-commands">Transition commands</h7>
<div class="paragraph">
<p>The transition commands can be used to specify the actual trace itself, to
choose specific transitions. The following commands are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>event NAME</em></p>
<div class="paragraph">
<p>The event command indicates that an event transition should be taken. The
event to choose is indicated by the <code>NAME</code> part, which must be an absolute
name of an event. For an automaton <code>a</code> with an event <code>e</code>, <code>NAME</code> must
be <code>a.e</code>, and the full command would thus be event <code>a.e</code>.</p>
</div>
<div class="paragraph">
<p>If CIF textual syntax keyword are used as names for events (such as
<code>plant</code>), then they must be escaped in <code>.cif</code> files (e.g. <code>$plant</code>).
For event commands however, no escape characters (<code>$</code>) should be used
in event names.</p>
</div>
<div class="paragraph">
<p>If the specified event is not enabled in the current state, the simulator
checks whether time passage is allowed and possible. For the off time
mode, time passage is not allowed, and the simulation results in deadlock.
For the implicit time mode, the simulator delays if a time transition is
possible, and otherwise simulation results in deadlock. For the explicit
time mode, if the current event command was preceded by an explicit
time command, the simulator delays if a time transition is possible, and
otherwise (current command not preceded by time command or no time
transition possible) simulation results in deadlock. Upon deadlock,
simulation <a href="#tools-cifsim-chapter-termination">ends</a>, and a warning is printed
to the console to indicate the event that was not enabled.</p>
</div>
<div class="paragraph">
<p>If multiple transitions are possible for the event, due to
<a href="#tut-basics-chapter-non-determinism">non-determinism</a>, the strict
option (see above) determines if and how the simulator proceeds.</p>
</div>
</li>
<li>
<p><em>time</em></p>
<div class="paragraph">
<p>The time command explicitly indicates that time is allowed to pass, i.e.
the simulator may delay by choosing a time transition. This command is only
allowed for the explicit time mode.</p>
</div>
<div class="paragraph">
<p>The time command does not ensure that time passes. It specifies that time
passage is allowed, not that it is required. Specifying the time command
multiple times without an intermediate event command has the same effect
as specifying the time command only once. That is, it doesn&#8217;t matter
how many times you allow time passage, once is enough.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The trace input mode does not support
<a href="#tools-cifsim-input-history-reset-undo">undo</a> and
<a href="#tools-cifsim-input-history-reset-undo">reset</a>.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-simulation">Simulation</h7>
<div class="paragraph">
<p>The commands from the trace file are processed in the order they occur in the
trace file. After all commands have been used to select transitions, and no
more commands are available, the simulation
<a href="#tools-cifsim-chapter-termination">ends</a>. The simulator indicates the
simulation has terminated at the request of the user, as the user did not
include any more commands in the trace file.</p>
</div>
<div class="paragraph">
<p>Simulation is also terminated if deadlock occurs or the
<a href="#tools-cifsim-termination-endtime">user-specified simulation end time</a>
is reached, even if more (unprocessed) commands are still available.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-input-svg-chapter-index">SVG input mode</h6>
<div class="paragraph">
<p>







In the SVG input mode, the <a href="#tools-cifsim-output-svgviz-chapter-svg">SVG</a> images
that are used for <a href="#tools-cifsim-output-svgviz-chapter-index">SVG visualization</a>
can be used to interactively control the simulation. Since the SVG images are
reused, using the SVG input mode requires the use of SVG visualization.</p>
</div>
<div class="paragraph">
<p>The idea is that certain SVG elements are coupled (mapped) to events from the
CIF specification. Clicking on those graphical elements then results in the
corresponding event being executed by the simulator. This way, the user
interface of a system can be modeled graphically, and can be coupled to the
specification (during simulation), by means of events. The user interface of
the system is thus part of the specification, but is controlled interactively
at runtime (during simulation) by the user.</p>
</div>
<div class="paragraph">
<p>The events that are coupled to visualization elements are called
<em>SVG interactive events</em> or <em>SVG input events</em>.</p>
</div>
<div class="paragraph">
<p><em>Topics</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-input-svg-chapter-svgin">CIF/SVG input mappings</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-svg-chapter-simulation">Simulation with SVG input</a></p>
</li>
</ul>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-svg-chapter-svgin">CIF/SVG input mappings</h7>
<div class="paragraph">
<p>




CIF/SVG input mappings couple <a href="#tools-cifsim-output-svgviz-svg-id">ids</a>
of <a href="#tools-cifsim-output-svgviz-chapter-svg">SVG</a> elements to events from the
CIF specification. CIF/SVG input mappings are
<a href="#tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG declarations</a>, similar to
<a href="#tools-cifsim-output-svgviz-chapter-svgout">CIF/SVG output mappings</a>. If the
CIF specification contains input mappings, and SVG input mode is not used, the
input mappings are simply ignored.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-single-event-input-mapping">Single event input mapping</h8>
<div class="paragraph">
<p>The simplest form of an SVG input mapping maps to a single event. For instance:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgin id &quot;button&quot; event machine.button.toggle;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This input mapping maps the SVG element with
<a href="#tools-cifsim-output-svgviz-svg-id">id</a> <code>button</code> to the
<code>machine.button.toggle</code> event from the CIF specification.</p>
</div>
<div class="paragraph">
<p>Every input mapping must
<a href="#tools-cifsim-output-svgviz-svgout-id">specify the id</a> of an SVG
element, and an SVG element with that id must exist in the SVG image.
Specifying an input mapping for an SVG element turns that SVG element into an
<em>interactive SVG element</em>. Note that
<a href="#tools-cifsim-input-svg-simulation-groups">groups</a> may be used as
interactive SVG elements as well.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-if-event-input-mapping"><code>if</code> event input mapping</h8>
<div class="paragraph">
<p>Sometimes, the simple <em>single event input mapping</em> is not enough. Consider
for instance the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton button:
  event u_pushed, u_released;

  location Released:
    initial;
    edge u_pushed goto Pushed;

  location Pushed:
    edge u_released goto Released;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification models a <code>button</code> that is initially released (location
<code>Released</code>). When the button is pushed (event <code>u_pushed</code>), the location is
updated to <code>Pushed</code>. If we now want to couple a graphical representation of
a button to this CIF specification, the event to choose depends on the current
location of the <code>button</code> automaton. This can be mapped using an
<em>if event input mapping</em>, as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgin id &quot;button&quot; event
  if   button.Released: button.u_pushed
  elif button.Pushed:   button.u_released
  end;</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the button is released, the <code>u_pushed</code> event is chosen, and if the button
is pushed, the <code>u_released</code> event is chosen.</p>
</div>
<div class="paragraph">
<p>The <code>if</code> event input mappings are essentially an <code>if</code> expressions that
result in an event rather than a value. The conditions (such as
<code>button.Released</code> are guard expressions that evaluates to a boolean value.
The guard expressions may be arbitrary expressions, similar to the use of
expressions in output mappings.</p>
</div>
<div class="paragraph">
<p>If a condition holds, the corresponding event is chosen. The entries are
processed in the order they are specified: if the first guard (of the <code>if</code>)
holds, the first event is chosen, otherwise if the second guard
(of an <code>elif</code>) holds, the second event is chosen, etc.</p>
</div>
<div class="paragraph">
<p>The last part of the <code>if</code> is allowed to be an <code>else</code>, to indicate that
if none of the previous guards hold, the event of the <code>else</code> is to be chosen.
Using an <code>else</code> entry is optional, but if used, there may only be one such
entry, and it must be the last entry of the input mapping.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-uniqueness">Uniqueness</h8>
<div class="paragraph">
<p>Similar to output mappings, all input mappings must be unique, per SVG image.
That is, no two input mappings for the same SVG image may use the
same SVG element id. Note that it is allowed to have an input mapping and an
output mapping (or even multiple output mappings) for the same SVG element.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-completeness">Completeness</h8>
<div class="paragraph">
<p>Input mappings must be complete. Single event input mappings are always
complete, as are <code>if</code> event input mappings with an <code>else</code>. For <code>if</code>
event input mappings without an <code>else</code>, at least one of the guards must hold.
If none of the guards holds, the mapping results in a runtime error during
simulation.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-svg-chapter-simulation">Simulation with SVG input</h7>
<div class="paragraph">
<p>
This page explains the use of the SVG input mode of the CIF simulator at
runtime (during simulation).</p>
</div>
<div class="sect7">
<h8 id="tools-cifsim-input-svg-simulation-works">How it works</h8>
<div class="paragraph">
<p>During simulation, as long as none of the interactive SVG elements (the SVG
elements for which an input mapping exists) are clicked, the corresponding
events are never chosen. For the other events (the non-interactive events), a
choice is made using the <a href="#tools-cifsim-input-chapter-automatic">automatic input component</a>.
The automatic input component makes a choice
based on its own settings.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect8">
<h9 id="tools-hovering">Hovering</h9>
<div class="paragraph">
<p>When moving over one of the interactive SVG elements of the SVG visualization,
using the mouse pointer, the border of the SVG element is highlighted in red.
This makes it easier to identify the interactive SVG elements in the
<a href="#tools-cifsim-output-svgviz-chapter-viewer">SVG visualizer</a>. When an
interactive SVG element is clicked, the color is changed from red to green, for
as long as the mouse button is not released.</p>
</div>
</div>
<div class="sect8">
<h9 id="tools-clicking">Clicking</h9>
<div class="paragraph">
<p>The mouse click (and <em>not</em> the release) makes that the input component will
interrupt any time transition that is currently being taken by the simulator.
Then, when asked to choose a next transition, it will apply the input mapping
for the interactive SVG element that was clicked. The event that results from
the input mapping is then chosen. If the event is not enabled at that time,
simulation ends in deadlock. To prevent such deadlocks, you can use a
<a href="#tut-data-chapter-monitoring">monitor</a> automaton. If multiple transitions
are possible for that event, the choice (between the transitions for that event
only) is deferred to the
<a href="#tools-cifsim-input-chapter-automatic">automatic input component</a>, which makes
a choice based on its own settings. Note that multiple transitions are only
possible if <a href="#tools-cifsim-chapter-complete-mode">complete mode</a> is enabled.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect8">
<h9 id="tools-queue">Queue</h9>
<div class="paragraph">
<p>The SVG input mode allows interactively choosing certain events by clicking on
interactive elements of an SVG image. The SVG input mode is however not
officially an interactive input mode.</p>
</div>
<div class="paragraph">
<p>The image plays the part of the environment. Whenever an interactive element is
clicked, the element is added to a queue. If a user quickly clicks the same
element multiple times, or quickly clicks different elements, they are all
stored in the queue, and the queue can grow. The transition to take is
automatically chosen, based on the queue of events. If the queue is empty, the
environment (the SVG image and the user) doesn&#8217;t allow the interactive events.
If the queue is not empty, the environment allows exactly one interactive
event, the one at the head of the queue. The model, together with the queue,
form a closed model, without further interaction. Each interactive SVG element
that is clicked, will be used in the order they were clicked, to choose
transitions.</p>
</div>
<div class="paragraph">
<p>The SVG input mode internally acts as an automated input mode, that makes
choices about which transitions to take, without further user interaction.
Since no further user interaction is possible,
<a href="#tools-cifsim-input-history-reset-undo">undo</a> and
<a href="#tools-cifsim-input-history-reset-undo">reset</a> are also not supported.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-input-svg-simulation-debugging">Debugging</h8>
<div class="paragraph">
<p>The <a href="#tools-cifsim-output-svgviz-debugging-console">console debugging output</a> for CIF/SVG mappings includes
debugging output for SVG input mappings. Input mappings that encounter runtime
errors have <a href="#tools-cifsim-output-svgviz-debugging-stacktrace">stack traces</a> similar to those of output
mappings.</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-input-svg-simulation-responsiveness">Responsiveness</h8>
<div class="paragraph">
<p>SVG input is usually combined with <a href="#tools-cifsim-output-chapter-realtime">real-time simulation</a>.
Clicking an interactive SVG element results
in the application of an input mapping, which results in an event. That event
is put in the queue. If a time transition is being taken by the simulator, the
simulator will continue to take that time transition until the input component
interrupts it. However, an input component can only interrupt a time transition
during <a href="#tools-cifsim-output-realtime-frames">intermediate frames</a>. As
such, choosing a low <a href="#tools-cifsim-output-realtime-framerate">frame rate</a>
(typically less than 10 frames per
second) can significantly reduce the responsiveness of the SVG input.</p>
</div>
<div class="paragraph">
<p>Hovering interactive SVG elements highlights their borders in red. This too
becomes less responsive when a low frame rate is used.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-input-svg-simulation-groups">Interactive groups</h8>
<div class="paragraph">
<p>It is possible to make a group of SVG elements (an <code>svg:g</code> element) an
interactive element. By doing so, all the elements that are part of the group
together become one single interactive element.</p>
</div>
<div class="paragraph">
<p>One practical example where this is very useful, is for buttons with a text
label. In SVG, this requires the use of a rectangle and a text label. To ensure
that clicking either one of them results in the same event, group the rectangle
and text label together in a group. Then assign an
<a href="#tools-cifsim-output-svgviz-svg-id">id</a> to the group and use that id in
an <a href="#tools-cifsim-input-svg-chapter-svgin">input mapping</a>. During simulation,
when hovering over either the rectangle or the text label, both will will be
highlighted. Clicking on either of them results in the corresponding input
mapping being applied, and the resulting event being chosen by the SVG input
component.</p>
</div>
<div class="paragraph">
<p>In general, if an SVG image is clicked, the simulator will figure out on which
graphical element the user clicked. If that element is itself an interactive
SVG element, then the corresponding mapping is applied. If it is not an
interactive SVG element, its parent (which may be a group) is checked. If the
parent is not an interactive SVG element either, the parent of the parent is
checked, etc. If none of the ancestors is an interactive SVG element, clicking
the element has no effect on the simulation. Because of this behavior, it is
strongly recommended not to make a child (or descendant in general) of an
interactive SVG element interactive as well.</p>
</div>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-input-chapter-semi-automatic">Semi-automatic mode</h6>
<div class="paragraph">
<p>
By default, in the interactive <a href="#tools-cifsim-input-chapter-console">console</a>
and <a href="#tools-cifsim-input-chapter-gui">GUI</a> input modes, the user is asked
to choose, even if for instance there is only one possible transition. Having
to choose for every transition can become tiresome. To reduce the number of
situations where input is required, the semi-automatic mode is available.
Semi-automatic mode allows the simulator to automatically choose certain
transitions, while leaving the remaining choices for the user. The following
choices can be automatically made by the simulator, in semi-automatic mode:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Automatically choose a transition if there is only one transition possible.</p>
</li>
<li>
<p>Automatically choose time transitions, regardless of how many transitions
are possible.</p>
</li>
<li>
<p>Automatically choose the delay duration of time transitions.</p>
</li>
<li>
<p>Automatically choose event transitions (for certain events), regardless of
how many transitions are possible.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Each of these possible automatic choices can be individually enabled,
through the
<b class="menuref">Interactive mode automatic transition choice</b>
option
(<b class="menuref">Input</b>
category). As value for the option, comma separated
<em>filters</em> should be supplied. The following filters are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>1</code> to automatically choose a transition if there is only one transition
possible.</p>
</li>
<li>
<p><code>time</code> to automatically choose time transitions.</p>
</li>
<li>
<p><code>timedur</code> to automatically choose the delay duration of time transitions.</p>
</li>
<li>
<p>The name of an event, to automatically choose event transitions for that
event.</p>
</li>
<li>
<p><code>urgent</code> to automatically choose event transitions for all
<a href="#tools-cifsim-chapter-env-events">urgent</a> (non-environment) events.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For events, the absolute names of the events are used. That is, for an
automaton <code>a</code>, with an event <code>e</code>, the absolute name of the event is
<code>a.e</code>. If CIF textual syntax keyword are used as names for events (such as
<code>plant</code>), then they must be escaped in <code>.cif</code> files (<code>$plant</code>). For
filters however, all escape characters (<code>$</code>) in event names are ignored.
The <code>*</code> character can be used as wildcard, to indicate zero or more
characters. The special <code>urgent</code> event filter matches all
<a href="#tools-cifsim-chapter-env-events">urgent</a> events of the specification. If an
event filter doesn&#8217;t match any of the events of the CIF model, a warning is
printed to the console. If a filter doesn&#8217;t have any effect, because a previous
filter already turned ensured that the matching events into are automatically
chosen, a warning is printed as well.</p>
</div>
<div class="paragraph">
<p>As an example, option value <code>1, g*, t*</code> consist of three filters: <code>1</code>,
<code>g*</code>, and <code>t*</code>. The first filter indicates that the simulator should
automatically choose a transition if there is only one transition possible. The
second and third filters indicate that the simulator should also automatically
choose all events starting with an <code>g</code> or a <code>t</code>, such as <code>g</code>, <code>g1</code>,
<code>go</code>, etc. Note that the wildcards apply only to events, so <code>t*</code> does not
mean that time transitions should be automatically chosen. The <code>t*</code> filter
always matches the <code>tau</code> event, as that event is implicitly always present.</p>
</div>
<div class="paragraph">
<p>If an automatic choice can be made, given the filter and the possible
transitions, the transitions are filtered to only keep the ones that can be
chosen automatically, and they are sent to the
<a href="#tools-cifsim-input-chapter-automatic">automatic input component</a>, which then makes the actual choice,
depending on its own configuration. Similarly, if the delay duration of a time
transition is to be automatically chosen, the automatic input component is
asked to choose, based on its own configuration.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-input-chapter-history">State history</h6>
<div class="paragraph">
<p>

</p>
</div>
<div class="paragraph">
<p>The CIF simulator can be used to explore the
<a href="#tools-cifsim-traces-state-space">state space</a> of a CIF model. It is
possible to see step by step, what is possible, and choose some transitions.
Sometimes, after exploring a bit, you may want to go back a bit, to explore
some alternative behavior. Obviously, you can terminate the simulation, and
start a new one. There are several downsides to this. First, you have to start
from the initial state again, while you may want to only go back a few states,
and continue from there. Second, restarting the simulator may take some time,
especially for large models. Third, if you use several visualizations, you may
have to layout them again, to be able to see all of them.</p>
</div>
<div id="tools-cifsim-input-history-reset-undo" class="paragraph">
<p>To make it easier to explore alternatives, the simulator supports resetting the
simulation to the initial state, as well as undoing a certain number of
transitions. This page explains that functionality in more detail.</p>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-history-enable">Enabling history</h7>
<div class="paragraph">
<p>The <em>History</em> option (<em>Input</em> category) can be used to enable or disable
history. By default history is enabled. Using the option, it can be disabled.
Disabling history disables both the reset and the undo functionality, which
ensures no time or memory is consumed in keeping track of earlier states.</p>
</div>
<div class="paragraph">
<p>If history is enabled, it only has an effect if an interactive input mode is
used. Other (automatic) input modes will never perform a reset or undo. That
is, the simulator will not keep track of any history states, unless an
interactive (either fully interactive or
<a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic</a>) input mode is
used, and history is enabled via the <em>History</em> option.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-state-stack">State stack</h7>
<div class="paragraph">
<p>In order for the simulator to be able to go back to earlier states, it will
need to remember those states. To that end, the simulator can store states that
it has encountered in a state stack. The initial state is remembered
separately. So, initially, the following is remembered:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/history_0.png" alt="history 0">
</div>
</div>
<div class="paragraph">
<p>Here, state <code>0</code> is the initial state. After two transitions are taken, the
following is remembered:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/history_012.png" alt="history 012">
</div>
</div>
<div class="paragraph">
<p>Here, two more states, numbered <code>1</code> and <code>2</code> are remembered. After one more
transitions is taken, the following is remembered:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/history_0123.png" alt="history 0123">
</div>
</div>
<div class="paragraph">
<p>Here, one more state, numbered <code>3</code>, is remembered. In each case, the last
shown state is the current state. If we undo two transitions, the following is
remembered:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/history_01.png" alt="history 01">
</div>
</div>
<div class="paragraph">
<p>As two transitions are undone, their resulting states (the last two states) are
forgotten. If we take one more transition after the undo, we get the following:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/history_012.png" alt="history 012">
</div>
</div>
<div class="paragraph">
<p>This state <code>2</code> may be the same one as before, or it may be a new one, if a
different simulation choice was made. If we reset the simulation, we forget all
but the initial state, and end with up:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/history_0.png" alt="history 0">
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-input-history-size">Stack size</h7>
<div class="paragraph">
<p>For long simulations, a lot of states will need to be remembered. Each state
that needs to be remembered costs some amount of memory. To limit the amount
of states that are remembered, the <em>History size</em> option (<em>Input</em> category)
can be used.</p>
</div>
<div class="paragraph">
<p>If set to infinite, there is no limit to the amount of states that can be
remembered. If set to a finite (non-negative) number, at most the given number
of states are remembered, apart from the initial state. So, if set to zero,
only the initial state is remembered. If set to one, one additional state is
remembered, etc. The default history size is <code>100</code> states. Since if set to
zero, only the initial state is remembered, this completely disables undo
functionality.</p>
</div>
<div class="paragraph">
<p>By introducing a maximum number of states that can be remembered, this also
introduces a maximum number of transitions that can be undone. Let&#8217;s consider a
history size of <code>3</code>. After three transitions, the following is remembered:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/history_0123.png" alt="history 0123">
</div>
</div>
<div class="paragraph">
<p>State <code>3</code> is the current state. It is possible to undo one, two, or three
transitions, going back to states <code>2</code>, <code>1</code>, and <code>0</code>, respectively. Now
consider what happens when we take another transition. We already remember
three states besides the initial state, and have thus reached the maximum
number of states to remember. By remembering the new target state of the fourth
transition, we need to let go of state <code>1</code>, as it is the oldest remembered
state, not taking into account the initial state. After this fourth transition,
the following is remembered:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/input/history_0234.png" alt="history 0234">
</div>
</div>
<div class="paragraph">
<p>State <code>4</code> is the current state. We can undo one transition, to go back to
state <code>3</code>. We can also undo two transitions, to go back to state <code>2</code>.
However, as we forgot all about state <code>1</code>, we can&#8217;t undo three transitions.
Due to the <em>gap</em> between states <code>0</code> and <code>2</code>, we can&#8217;t undo past state
<code>2</code>. As you can see from this example, for a history size of 3, we can undo
at most 3 transitions when there is no gap, and at most 2 transitions when
there is a gap.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-availability">Availability</h7>
<div class="paragraph">
<p>If history is disabled, reset is not available. If history is enabled, reset
is available only if the current state is not the initial state. That is, reset
is enabled for every state, except for the initial state.</p>
</div>
<div class="paragraph">
<p>If history is disabled, or the history size is zero, undo is not available. If
history is enabled, and the history size is positive or infinite, undo is
available. The number of transitions that can be undone depends on the number
of states that is remembered. If <code>n</code> states are currently remembered,
excluding the initial state, then <code>n - 1</code> transitions can be undone, at the
least. If there is no gap, and the current state is not the initial state, then
<code>n</code> transitions can be undone.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-requests">Requests</h7>
<div class="paragraph">
<p>Reset and undo are only supported by interactive input modes, as explained
above.</p>
</div>
<div class="paragraph">
<p>When the simulator interactively asks the user to choose between some possible
transitions, it may also provide the possibility to reset the simulation to
the initial state, or to undo some transitions. The details on how the
different choices are presented, and how the choice can be made, are explained
in the documentation for each of the interactive input modes.</p>
</div>
<div class="paragraph">
<p>If no transitions are possible, for instance due to
<a href="#lang-tut-time-deadlock">deadlock</a> or reaching the
<a href="#tools-cifsim-termination-endtime">end-user provided simulation end time</a>,
the simulator may interactively ask the
user to choose between termination of the simulation, resetting the simulation
to the initial state, or undoing some transitions. This choice is only
presented if either reset or undo is enabled, as otherwise there is no choice
to make. The details on how the different choices are presented, and how the
choice can be made, are explained in the documentation for each of the
interactive input modes.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-semi-automatic-mode-2">Semi-automatic mode</h7>
<div class="paragraph">
<p>By using <a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic</a> mode, a
purely interactive input mode, can be made semi-automatic. This can lead to
unexpected results, in combination with reset and undo.</p>
</div>
<div class="paragraph">
<p>Consider a situation where four transitions have been taken. The first
transition was manually chosen, as was the third. The second and fourth
transition were automatically chosen. The user is asked to interactively choose
the fifth transition. Consider what happens if the user chooses to undo three
transitions. The simulator goes back to the state reached after the first
transition. The possible transitions are the same as the first time they were
calculated. An automatic choice was made for the second transition, so one will
also be made the second time around. So, after the second transition is once
again automatically chosen, the user is interactively asked to choose the third
transition. So, instead of undoing three transitions and getting a choice for
the second transition, three transitions are undone, a second transition is
automatically chosen, and the user is asked to choose for the third transition.</p>
</div>
<div class="paragraph">
<p>Similarly, undoing the fourth transition, will result in a fourth transition
being automatically chosen again. If the same choice is made as before, undoing
the fourth transition has no effect.</p>
</div>
<div class="paragraph">
<p>Resetting the simulation to the initial state, will not lead to the user being
able to choose the transition to take from the initial state, if the first
transition is automatically chosen.</p>
</div>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-env-events">Environment events</h5>
<div class="paragraph">
<p>






By default, the CIF simulator treats all events are urgent. That is, whenever
a transition is possible for any event, time may not progress. In other words,
events take priority over time passage. However, not all events should be
urgent. As such, the simulator has an
<b class="menuref">Environment events</b>
option
(<b class="menuref">Input</b>
category), that makes it possible to let the simulator know
about the <em>environment events</em> (non-urgent events). An example of an
environment event (non-urgent event) is a button that can be pushed. The button
can always be pushed, now or in the future. The corresponding event is thus
always enabled, but time should still be able to progress, as the event may
not actually happen at this time.</p>
</div>
<div class="paragraph">
<p>As value for the
<b class="menuref">Environment events</b>
option, comma separated
<em>filters</em> should be supplied. Each filter specifies one or more environment
events. The absolute names of the events are used. That is, for an automaton
<code>a</code>, with an event <code>e</code>, the absolute name of the event is <code>a.e</code>. If CIF
textual syntax keyword are used as names for events (such as <code>plant</code>),
then they must be escaped in <code>.cif</code> files (<code>$plant</code>). For filters however,
all escape characters (<code>$</code>) in event names are ignored. The <code>*</code> character
can be used as wildcard, to indicate zero or more characters. The special
<code>svg</code> filter can be used to turn all
<a href="#tools-cifsim-input-svg-chapter-index">SVG interactive/input events</a> into
environment (non-urgent) events. If a filter doesn&#8217;t match any of the events of
the CIF model, a warning is printed to the console. If a filter doesn&#8217;t have
any effect, because a previous filter already turned the matching events into
environment events, a warning is printed as well.</p>
</div>
<div class="paragraph">
<p>As an example, option value <code>e, a.e, f*, t*</code> consists of four filters: <code>e</code>,
<code>a.e</code>, <code>f*</code>, and <code>t*</code>. The first filter indicates that event <code>e</code> is an
environment event. The second filter indicates that event <code>e</code> in automaton
<code>a</code> is an environment event. The third filter indicates that all events
whose absolute name starts with an <code>f</code> are environment events. This could
include events <code>f</code>, <code>f1</code>, <code>foo</code>, <code>f.e</code>, etc. The fourth filter is
similar to the third filter, but uses character <code>t</code> as a prefix, rather than
character <code>f</code>. The <code>t*</code> filter always matches the <code>tau</code> event, as that
event is implicitly always present.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-input-modes">Input modes</h6>
<div class="paragraph">
<p>By default, the simulator does not know which events of the model are
environment events (non-urgent events). By letting the simulator know about
them, it can properly simulate them with non-urgent semantics. The CIF
simulator however, has several <a href="#tools-cifsim-input-chapter-index">input modes</a>.
This section discusses for each input mode, the influence of environment
events, and their practical use.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-input-chapter-console">Interactive console input mode</a></p>
<div class="paragraph">
<p>When using the interactive console input mode, the simulator will
interactively ask the user to choose transitions, from the list of possible
transitions printed to the console.</p>
</div>
<div class="paragraph">
<p>If however the CIF model contains events that are always enabled (such as a
button that can always be pushed), time may never progress. The simulator
treats all events as urgent. By specifying the always enabled events as
environment events, those events become non-urgent, and the user is free to
choose between those environment events and time passage (time transitions).
If combined with the <a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic mode</a>
for the urgent events, the user can
choose the environment events and time transitions, while the other/urgent
events are automatically chosen by the simulator, reducing the number of
choices the user has to make.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-input-chapter-gui">Interactive GUI input mode</a></p>
<div class="paragraph">
<p>When using the interactive GUI input mode, the simulator will interactively
ask the user to choose transitions, using a GUI (Graphical User Interface).</p>
</div>
<div class="paragraph">
<p>If however the CIF model contains events that are always enabled (such as a
button that can always be pushed), time may never progress. The simulator
treats all events as urgent. By specifying the always enabled events as
environment events, those events become non-urgent, and the user is free to
choose between those environment events and time passage (time transitions).
If combined with the <a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic mode</a>
for the urgent events, the user can
choose the environment events and time transitions, while the other/urgent
events are automatically chosen by the simulator, reducing the number of
choices the user has to make.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-input-chapter-automatic">Automatic input mode</a></p>
<div class="paragraph">
<p>When using the automatic input mode, the simulator will automatically choose
transitions, based on certain criteria. If the CIF model contains a use case,
the simulator automatically simulates that use case.</p>
</div>
<div class="paragraph">
<p>If however the CIF model contains events that are always enabled (such as a
button that can always be pushed), time may never progress. The simulator
treats all events as urgent. By specifying the always enabled events as
environment events, those events become non-urgent, and the simulator is
free to choose between those environment events and time passage (time
transitions). If combined with the <em>random</em>
<a href="#tools-cifsim-input-automatic-trans">automatic mode choice algorithm</a>,
and <em>random</em>
<a href="#tools-cifsim-input-automatic-time">automatic mode time transition duration</a>,
this allows for the automatic validation of arbitrary traces.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-input-svg-chapter-index">SVG input mode</a></p>
<div class="paragraph">
<p>When using the SVG input mode, the simulator will automatically choose
transitions, based on certain criteria. The environment events are usually
coupled to the SVG image (using <a href="#tools-cifsim-input-svg-chapter-svgin">CIF/SVG input mappings</a>).
This ensures that the environment
events are only enabled when the corresponding interactive element of the
image is clicked by the user. The SVG image plays the role of the
environment, closing the system. If the SVG image only partially closes the
system, the remaining environment events can be specified, similar to the
way they are specified for the automatic input mode.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-supervisory-control-application-domain">Supervisory control application domain</h6>
<div class="paragraph">
<p>This section discusses environment events in the application domain of
supervisory control, where the system consists of a plant (the hardware),
and a supervisor (or other controller that restricts the plant behavior).</p>
</div>
<div class="paragraph">
<p>Informally, we can distinguish the following types of events:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Controller events</em></p>
<div class="paragraph">
<p>Controller events are those events that are initiated by a controller, such
as a supervisor. These events are usually controllable events. However, if
supervisor synthesis is not used, the events need not necessarily be
controllable.</p>
</div>
<div class="paragraph">
<p>For controller events, the behavior is usually fully specified in the CIF
model. That is, if the CIF model contains both the plant and the controller,
the CIF model determines when the events are enabled, and when they are
disabled. The controller events should happen as soon as they are enabled.
That is, once the controller determines that for instance a motor should be
turned on, the motor should be turned on without further delays. Thus,
controller events are urgent.</p>
</div>
<div class="paragraph">
<p>For low-level controllers, the events generally correspond directly to the
events of the actuators. For instance, a controller may turn a lamp on or
off. For higher level controllers however, there usually is no such direct
relation. Furthermore, internal events of the controller (usually event
<code>tau</code>, or other events that are neither controllable nor uncontrollable),
are considered controller events as well.</p>
</div>
</li>
<li>
<p><em>Plant events</em></p>
<div class="paragraph">
<p>Plant events are those events that are initiated by the plants. These events
are usually uncontrollable events. However, if supervisor synthesis is not
used, the events need not necessarily be uncontrollable.</p>
</div>
<div class="paragraph">
<p>For plant events, the behavior is usually fully specified in the CIF model.
The CIF model models exactly when the events become enabled. For instance,
when an elevator moves and reaches its top position, the event that indicates
that 'the top position sensor goes on' becomes enabled, and should be
executed at that time. That is, the plant model models/follows the physical
behavior, and determines when the plants events are enabled. This behavior
is fully specified and known, and further delays are undesirable. As such,
plant events are urgent.</p>
</div>
<div class="paragraph">
<p>For low-level plants, the events generally correspond directly to the events
of sensors. Typical examples include limit sensors, such as the elevator top
position sensor described above, and sensors that detect products throughout
the system. For higher level plants however, there usually is no such
direct relation. Furthermore, internal events of the plants (usually event
<code>tau</code>, or other events that are neither controllable nor uncontrollable),
may be considered plant events as well.</p>
</div>
</li>
<li>
<p><em>Environment events</em></p>
<div class="paragraph">
<p>Environment events are those events that are initiated by the environment
(anything outside and the plants and the controller). These events are
usually uncontrollable events. However, if supervisor synthesis is not used,
the events need not necessarily be uncontrollable.</p>
</div>
<div class="paragraph">
<p>The CIF model only observes or monitors the environment events. The
environment (outside of the behavior specified in the CIF model), determines
when, if ever, the events actually happen, and thus defines their behavior.
From the point of view of the CIF model, the environment events can happen at
any time, and as such the CIF model allows them at all times. The
behavior is left completely unrestricted/free in the CIF specification, as
it is unknown when the events will actually happen. Since time may pass
before these events actually happen (as determined by the environment, rather
than the CIF model), these events are thus non-urgent (from the point of view
of the CIF model). If the CIF model would instead consider them to be urgent,
the model would always forbid time to progress, even if the environment does
not currently allow any environment event to occur, leading to deadlock.</p>
</div>
<div class="paragraph">
<p>For low-level plants, the events generally correspond directly to the events
of sensors. For instance, the buttons of a user interface can be pushed and
released. Other typical examples of environment events include events for
other user interface elements, and events that indicate that a product has
entered the system, from the environment of the system. For higher level
plants however, there usually is no such direct relation. Furthermore,
internal events of the plants (usually event <code>tau</code>, or other events that
are neither controllable nor uncontrollable), may be considered plant events
as well.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thus, for plant events as well as for controller events, the CIF model
specifies/defines when the events may/should occur, while for environment
events the specification always allows them, and lets the environment
choose/determine when they actually occur. In other words, plant/controller
events originate from within the specification (internal behavior), while
environment events originate outside of the specification (external behavior).</p>
</div>
<div class="paragraph">
<p>A closed system is a system for which the entire behavior is specified in the
CIF model. Closed systems have no environment events.</p>
</div>
<div class="paragraph">
<p>An open system does not model the environment. As such, open systems typically
have plant events, controller events, and environment events. The environment
events are then unrestricted in the CIF model, leaving the environment (which
is not specified) free to determine its own behavior, and thus the behavior
(enabledness) of the environment events.</p>
</div>
<div class="paragraph">
<p>An open system can be closed by adding a use case, which models one possible
sequence of behavior of the environment, over time. That is, the added use case
eliminates environment events, by defining when they are enabled. Open systems
can also be closed by the simulator, as described above for the different
input modes.</p>
</div>
<div class="paragraph">
<p>As an example, consider the following open system:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton Button:
  uncontrollable u_pushed, u_released;

  location Released:
    initial;
    edge u_pushed goto Pushed;

  location Pushed:
    edge u_released goto Released;
end

plant automaton Lamp:
  controllable c_on, c_off;

  location Off:
    initial;
    edge c_on goto On;

  location On:
    edge c_off goto Off;
end

supervisor automaton ButtonLampController:
  location:
    initial;
    edge Lamp.c_on  when Button.Pushed;
    edge Lamp.c_off when Button.Released;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here we have a simple button and a lamp. The lamp can only be turned on while
the button is pushed, and will be turned off as soon as the button is released.
The button events are environment events, since it always possible to either
push the button, or release it.</p>
</div>
<div class="paragraph">
<p>By specifying the button events as environment events, and specifying the the
lamp events as <a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic</a>
events, we can use the <a href="#tools-cifsim-input-chapter-console">interactive console input mode</a>
or the <a href="#tools-cifsim-input-chapter-gui">interactive GUI input mode</a> to try different traces,
where we only have to
choose between the button events and how much time we want to let pass.</p>
</div>
<div class="paragraph">
<p>Alternatively, we could add a use case, modeling one possible behavior of a
user:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton User:
  cont t der 1.0;

  location:
    initial;
    edge Button.u_pushed, Button.u_released when t &gt;= 1 do t := 0.0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specifies that the user either pushes or releases the button, after one
unit of time has passed (typically one second). Since clock <code>t</code> is reset each
time, the user repeats this behavior. Thus, the button is pushed after one
second, for one second, after three seconds, for one second, after five
seconds, for one second, etc. This extended model (with use case), can be
simulated using the <a href="#tools-cifsim-input-chapter-automatic">automatic input mode</a>, as the
<code>User</code> plant automaton closes the system.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-output-chapter-index">Simulation output</h5>
<div class="paragraph">
<p>

The CIF simulator can produce various forms of output.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-console">Console output</h6>
<div id="tools-cifsim-output-mode" class="paragraph">
<p>The default form of output is to the console. The type of console output to
produce, is determined by the
<b class="menuref">Output mode</b>
option
(<b class="menuref">General</b>
category). The following modes are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Error</em>: produces only error output. It is recommended not to use this mode.
Use the warning mode instead, if you wish to limit the amount of console
output.</p>
</li>
<li>
<p><em>Warning</em>: produces error and warning output. Use this mode to be informed
about potential problems, while keeping the amount of console output to a
minimum.</p>
</li>
<li>
<p><em>Normal</em>: produces error, warning, and normal output. This is the default
output mode. The information that is printed to the console for normal output
can be configured using the <a href="#tools-cifsim-output-chapter-normal">Normal output</a> option.</p>
</li>
<li>
<p><em>Debug</em>: produces error, warning, normal, and debug output. This mode can be
used to print additional debugging information to the console. The
information that is printed to the console for normal output can be
configured using the <a href="#tools-cifsim-output-chapter-debug">Debug output</a>
option.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The simulator can thus produce two types of configurable console output:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-chapter-normal">Normal console output</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-chapter-debug">Debug console output</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="tools-cifsim-output-components" class="paragraph">
<p><strong>Output components</strong></p>
</div>
<div class="paragraph">
<p>Besides console output, the simulator also features a powerful and extensible
output framework. This framework allows for the addition of output components,
such as visualizers. The following output components are currently available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-print-chapter-index">Print output</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-index">SVG visualizer</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-chapter-trajdata">Trajectory data output</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-chapter-plotviz">Plot visualizer</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-chapter-stateviz">State visualizer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Other topics</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-chapter-realtime">Real-time simulation</a></p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-chapter-normal">Normal console output</h6>
<div class="paragraph">
<p>


Normal console output mainly focuses on the state of the specification, and the
progress of the simulation.</p>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-normal-types">Available types of normal output</h7>
<div class="paragraph">
<p>The following types of normal output are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>The initial state</em> [<code>state-init</code>] (default)</p>
<div class="paragraph">
<p>Prints the initial state to the console.</p>
</div>
</li>
<li>
<p><em>The target states</em> [<code>state-target</code>] (default)</p>
<div class="paragraph">
<p>Prints all target states to the console. This
includes all states reached by event transitions and time transitions.
Specifically, it excludes the initial state, and it includes the
final/deadlock state.</p>
</div>
</li>
<li>
<p><em>The final state</em> [<code>state-final</code>]</p>
<div class="paragraph">
<p>Prints the final state to the console, regardless of whether or not the final
state is a deadlock state.</p>
</div>
</li>
<li>
<p><em>The deadlock state</em> [<code>state-deadlock</code>]</p>
<div class="paragraph">
<p>Prints the final state to the console, but only if it is a deadlock state.</p>
</div>
</li>
<li>
<p><em>The intermediate states</em> [<code>state-intermediate</code>]</p>
<div class="paragraph">
<p>Prints all intermediate states to the console. Intermediate states are the
states that are used to generate
<a href="#tools-cifsim-output-realtime-frames">intermediate frames</a>, for smooth
visualizations. The intermediate states are generated for states between the
start and end states of time transitions, when
<a href="#tools-cifsim-output-chapter-realtime">real-time</a> simulation is enabled. Note
that this does not include the initial state, target states, and
final/deadlock states.</p>
</div>
</li>
<li>
<p><em>The algebraic variables as part of the state</em> [<code>state-alg-vars</code>] (default)</p>
<div class="paragraph">
<p>Prints the algebraic variables (derived state) as part of the state. This
applies to all states, including the states for intermediate frames. If no
state information is printed, this output type has no effect. Disabling
printing of algebraic variables excludes algebraic variables, regardless of
whether <a href="#tools-cifsim-output-normal-state-filter">state filtering</a>
includes or excludes them.</p>
</div>
</li>
<li>
<p><em>The derivatives as part of the state</em> [<code>state-derivs</code>] (default)</p>
<div class="paragraph">
<p>Prints the derivatives of the continuous variables (derived state) as part of
the state. This applies to all states, including the states for intermediate
frames. If no state information is printed, this output type has no effect.
The derivative of variable <code>time</code> is not included. Disabling printing of
derivatives excludes derivatives, regardless of whether
<a href="#tools-cifsim-output-normal-state-filter">state filtering</a> includes
or excludes them.</p>
</div>
</li>
<li>
<p><em>The possible transitions (for interactive console choice only)</em> [<code>trans-minimal</code>]</p>
<div class="paragraph">
<p>Prints the possible transitions to the console, if the
<a href="#tools-cifsim-input-chapter-console">interactive console input mode</a> is used. Multiple possible
transition are always printed. Single possible transitions are only printed
if automatic choice for a single possible transition is disabled. Nothing
is printed if no transitions are possible.</p>
</div>
</li>
<li>
<p><em>The possible transitions (for interactive console choice, or if more than one transition)</em> [<code>trans-default</code>]</p>
<div class="paragraph">
<p>Similar to 'interactive console choice only', but additionally always prints
the possible transitions, if there are multiple possible transitions,
regardless of the <a href="#tools-cifsim-input-chapter-index">input mode</a>.</p>
</div>
</li>
<li>
<p><em>The possible transitions (always)</em> [<code>trans-always</code>]</p>
<div class="paragraph">
<p>Always print the possible transitions to the console, regardless of the input
mode, and the number of possible transitions. However, nothing is printed if
no transitions are possible.</p>
</div>
</li>
<li>
<p><em>The chosen transitions</em> [<code>chosen-trans</code>] (default)</p>
<div class="paragraph">
<p>Prints the chosen transitions (the transitions that are about to be taken),
to the console.</p>
</div>
</li>
<li>
<p><em>The interrupted transitions</em> [<code>interrupted-trans</code>] (default)</p>
<div class="paragraph">
<p>Prints information about interrupted transitions (time transitions that are
stopped prematurely) to the console.</p>
</div>
</li>
<li>
<p><em>The simulation result</em> [<code>sim-rslt</code>] (default)</p>
<div class="paragraph">
<p>Prints the simulation result the console, at the end of the simulation, if
simulation did not result in a runtime error.</p>
</div>
</li>
<li>
<p><em>The random seeds used for the random generators</em> [<code>seeds</code>] (default)</p>
<div class="paragraph">
<p></p>
</div>
<div id="tools-cifsim-output-normal-seeds" class="paragraph">
<p>Prints the seeds used for the random generators to the console, to allow
reproducing the simulation <a href="#tools-cifsim-chapter-traces">trace</a>. Only if a
random seed is used, is the seed printed. That is, for user-specified seeds,
the seed is not printed. The following seeds may be printed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The seed used for the random <a href="#tools-cifsim-input-automatic-trans">automatic mode choice algorithm</a>.</p>
</li>
<li>
<p>The seed used for the random <a href="#tools-cifsim-input-automatic-time">automatic mode time transition duration</a>.</p>
</li>
<li>
<p>The seed used for the first random generator for a <a href="../distr-seeds.html">stochastic distribution</a>.
The seed is only printed if it is used to create a random number generator for at least one stochastic
distribution.</p>
</li>
</ul>
</div>
</li>
<li>
<p><em>The print declarations output</em> [<code>print</code>] (default)</p>
<div id="tools-cifsim-output-normal-print" class="paragraph">
<p>Prints the output generated by <a href="#tools-cifsim-output-print-chapter-ref-printdecl">print declarations</a>.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-normal-output-option">Normal output option</h7>
<div class="paragraph">
<p>In the option dialog, each of the different types of output can be enabled and
disabled individually (<b class="menuref">Normal output</b>
option,
<b class="menuref">Output</b>
category).</p>
</div>
<div class="paragraph">
<p>From the command line, using the <code>-o</code> or <code>--output</code> option, the names of
the different types of normal output, as specified between square brackets,
should be used, separated by commas. The output types indicated with
'(default)' are enabled when default settings are used, i.e. when the
<code>-o</code> or <code>--output</code> option is not used. As an example, consider
<code>-o print,seeds</code> or <code>--output=print,seeds</code>. Only output generated by print
declarations (due to <code>print</code>) and output about the used seeds for random
generators (due to <code>seeds</code>) is enabled, while all other output is disabled.</p>
</div>
<div class="paragraph">
<p>The output types that are specified using the option replace the default output
types. However, it is also possible to specify additions and removals relative
to the default output, by prefixing output types with a <code>+</code> or <code>-</code>
respectively. For instance, when using <code>-o -print,+trans-always</code> or
<code>--output=-print,+trans-always</code> the default output is used, with print
declarations output excluded from it (due to <code>-print</code>), and with always
printing possible transitions enabled (due to <code>+trans-always</code>). Replacements
(no prefix) may not be combined with additions/removals (<code>+</code> or <code>-</code>
prefix).</p>
</div>
<div class="paragraph">
<p>Specifying a replacement output type twice leads to a warning being printed to
the console. Adding an output type that is already present or removing an
output type that is not present, also leads to a warning being printed.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-output-details">Output details</h7>
<div class="paragraph">
<p>When printing states, variable <code>time</code> is always printed first. It is followed
by the current location of each of the automata, the current values of the
state variables (the discrete and continuous variables), the current values of
the derivatives of the continuous variables, and the current values of the
algebraic variables. Except for variable <code>time</code>, the state objects are sorted
alphabetically based on their absolute names. For automata with a single
nameless location, the current location is always <code>*</code>.</p>
</div>
<div class="paragraph">
<p>For variables with a function type and implicit default values, the
default values may include <code>defaultValueFunc</code>, <code>defaultValueFunc2</code>, etc.</p>
</div>
<div class="paragraph">
<p>When printing the possible transitions, the event transitions are printed
first, followed by the <code>tau</code> transitions, and the time transition. The event
transitions are sorted alphabetically on the names of the events.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-normal-state-filter">State filtering</h7>
<div class="paragraph">
<p>By default, when printing states, all state objects are included. Using
the
<b class="menuref">Normal output state filters</b>
option
(<b class="menuref">Output</b>
category), the state objects can be filtered. The
<b class="menuref">Normal output state filters</b>
option only has effect
if states are printed at all.</p>
</div>
<div class="paragraph">
<p>As value for the option, comma separated <em>filters</em> should be supplied. Each
filter specifies one or more state objects. The absolute names of the objects
are used. That is, for an automaton <code>a</code>, with a variable <code>x</code>, the absolute
name of the variable object is <code>a.x</code>. If CIF textual syntax keyword are
used as names for events (such as <code>plant</code>), then they must be escaped in
<code>.cif</code> files (<code>$plant</code>). For filters however, all escape characters (<code>$</code>)
in the names are ignored. The <code>*</code> character can be used as wildcard, to
indicate zero or more characters. If a filter doesn&#8217;t match any of the state
objects of the CIF model, a warning is printed to the console.</p>
</div>
<div class="paragraph">
<p>By default, filters include matching state objects. Filters may however be
preceded by a <code>-</code> character, turning them into exclusion filters, which
exclude matching states objects rather than including them. Filters are
processed in the order they are specified, allowing for alternating additions
and removals. If a filter does not result in the addition/removal of any state
objects to/from the filter result, a warning is printed to the console. A
warning is also printed if the entire state is filtered out.</p>
</div>
<div class="paragraph">
<p>As an example, option value <code>a.*,-a.b*,a.bc*</code> consists of three filters:
<code>a.*</code>, <code>-a.b*</code>, and <code>a.bc*</code>. The first filter indicates that state
objects whose absolute names start with <code>a.</code> are to be included. The second
filter indicates that from those matching state objects, the state objects
whose absolute names start with <code>a.b*</code> are to be excluded. To that result,
the third filter adds those state objects whose absolute names start with
<code>a.bc*</code>. For instance, if a specification contains state objects <code>time</code>,
<code>a.a</code>, <code>a.b</code> <code>a.bb</code>, <code>a.bc</code>, <code>a.b.c</code>, <code>a.bc</code>, <code>a.bcc</code>, and
<code>a.bcd</code>, the result of the three filters is that the following state objects
are displayed: <code>a.a</code>, <code>a.bc</code>, <code>a.bc</code>, <code>a.bcc</code>, and <code>a.bcd</code>.</p>
</div>
<div class="paragraph">
<p>The default option value (filter) is <code>*</code>.</p>
</div>
<div class="paragraph">
<p>Regardless of whether the filtered result includes them or not, all algebraic
variables and derivatives of continuous variables may be excluded, using the
<a href="#tools-cifsim-output-normal-types">Normal output option</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-profiling">Profiling</h7>
<div class="paragraph">
<p>If <a href="#tools-cifsim-chapter-profiling">profiling</a> is enabled, all normal output is
automatically disabled. That is, profiling suppresses all normal output.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-chapter-debug">Debug console output</h6>
<div class="paragraph">
<p>


The following types of debug output are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Debug the CIF/SVG declarations</em> [<code>svg</code>]</p>
<div class="paragraph">
<p>Prints debugging information to the console, for the
<a href="#tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG declarations</a>. For more
information on this kind of debugging output, see the page on
<a href="#tools-cifsim-output-svgviz-debugging-console">console debugging</a> for
CIF/SVG declarations.</p>
</div>
</li>
<li>
<p><em>Debug the parser</em> [<code>parser</code>]</p>
<div class="paragraph">
<p>Prints debugging information to the console, for the parser. This information
is primarily intended for the developers of the simulator, and not for end
users.</p>
</div>
</li>
<li>
<p><em>Debug the generated code (by writing it to disk)</em> [<code>gen-code</code>]</p>
<div class="paragraph">
<p>The simulator generates highly optimized code for the specification. Enabling
this debugging output, writes the generated code to disk, for
<a href="#tools-cifsim-chapter-debug-gen-code">further debugging</a>. This information is primarily
intended for the developers of the simulator, and not for end users.</p>
</div>
</li>
<li>
<p><em>Debug the ODE solver</em> [<code>ode</code>]</p>
<div class="paragraph">
<p>Prints debugging information to the console, for the
<a href="#tools-cifsim-solver-chapter-index">ODE solver</a>. This information can for
instance be used to figure out why a state event (guard change)
<a href="#tools-cifsim-solver-chapter-root-problems">was missed</a>.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-debug-output-option">Debug output option</h7>
<div class="paragraph">
<p>In the option dialog, each of the different types of output can be enabled and
disabled individually
(<b class="menuref">Debug output</b>
option,
<b class="menuref">Output</b>
category).</p>
</div>
<div class="paragraph">
<p>From the command line, using the <code>-d</code> or <code>--debug</code> option, the names of
the different types of debug output, as specified between square brackets,
should be used, separated by commas. By default, i.e. when not using the
<code>-d</code> or <code>--debug</code> option, all debug output is disabled. As an example,
consider <code>-d parser,svg</code> or <code>--debug=parser,svg</code>. Debug output is printed
for the parser (due to <code>parser</code>) and CIF/SVG declarations (due to <code>svg</code>).</p>
</div>
<div class="paragraph">
<p>Specifying an output type twice leads to a warning being printed to the
console.</p>
</div>
<div class="paragraph">
<p>Enabling any debug output, automatically changes the <a href="#tools-cifsim-output-chapter-index">output mode</a>
to 'debug mode'.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-profiling-2">Profiling</h7>
<div class="paragraph">
<p>If <a href="#tools-cifsim-chapter-profiling">profiling</a> is enabled, all debug output is
automatically disabled. That is, profiling suppresses all debug output.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-print-chapter-index">Print output</h6>
<div class="paragraph">
<p>


The CIF simulator supports several forms of
<a href="#tools-cifsim-output-chapter-index">output</a>. By default, simulation results, such as the
current <a href="#tools-cifsim-traces-state">state</a>, are printed to the console.
While this provides useful information, it can also be useful to generate
custom output, tailored to ones specific needs. To allow this, the CIF
simulator supports <em>print output</em>.</p>
</div>
<div class="paragraph">
<p>Simulation using the CIF simulator results in a
<a href="#tools-cifsim-traces-traces">trace</a>. A trace consists of the
<a href="#tools-cifsim-traces-state">states</a> that are encountered and the
transitions that are taken, during the simulation. The print output
declarations allow specifying for which transitions text should be printed
(for instance only for transitions for a certain event), when the text should
be printed (for instance before or after the transition), where the text should
be printed (for instance to a file), and what text should be printed.</p>
</div>
<div class="paragraph">
<p>Print output declarations are an extension to the CIF language, and can be
specified directly in the CIF specification. They are only used to couple
the model to textual output. They don&#8217;t influence the behavior of the model
itself. The CIF <a href="#tools-chapter-text-editor">text editor</a> provides full
integration for the print output declarations extension, complete with syntax
highlighting, background validation, etc.</p>
</div>
<div class="paragraph">
<p>
Print output can be used to generate text that after simulation is further
processed, for instance for visualization or for analysis using statistical
software. Print output can also be useful for debugging,</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-quick-example">Quick example</h7>
<div class="paragraph">
<p>This example serves only to give a quick taste of what print output
declarations look like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">printfile &quot;out.txt&quot;;

print x for e;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This example prints the value of variable <code>x</code> to a file <code>out.txt</code> each
time after a transition for event <code>e</code> is taken.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-documentation">Documentation</h7>
<div class="paragraph">
<p>The tutorials introduce print declarations and text formatting, they explain
the general idea behind them, and they show how to use them, all by means of
examples. The tutorials are focused on practical use, and do not cover all uses
and other details.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-print-chapter-tut-print">Print output tutorial</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-chapter-tut-fmt">Text formatting tutorial</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The reference documentation discusses all details related to text output and
text formatting. It is much more technical than the tutorials.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-print-chapter-ref-printdecl">Print declaration</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-chapter-ref-printfile">Print file declaration</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-chapter-ref-sim">Simulation with print output</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-chapter-ref-fmt">Text formatting details</a></p>
</li>
</ul>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-print-chapter-tut-print">Print output tutorial</h7>
<div class="paragraph">
<p>


This tutorial explains print output by means of examples. It does not explain
all uses of print output, and all details related to print output. For those
details, see the reference documentation instead.</p>
</div>
<div class="paragraph">
<p>In this tutorial, when printed console output is shown, all output that the
simulator can generate other than output for print declarations, is omitted.</p>
</div>
<div class="paragraph">
<p>Before we start with the examples, the
<a href="#tools-cifsim-output-print-tut-print-model-trace">Example model and simulation trace</a> section introduces the
example model and simulation trace on which the examples are based. Then, the
following examples are explained in detail:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex1">Example 1: Printing the buffer count for all states</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex2">Example 2: Printing to a file</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex3">Example 3: Printing the odd/even status for all states</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex4">Example 4: Printing only for odd states</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex5">Example 5: Printing the result of adding an item</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex6">Example 6: Printing addition/removal results</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex7">Example 7: Printing value changes</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex8">Example 8: Printing headers and footers</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex9">Example 9: Printing the new time after time passes</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex10">Example 10: Printing all unique time values</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-tut-print-ex11">Example 11: Printing transitions to/from a location</a></p>
</li>
</ul>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-model-trace">Example model and simulation trace</h8>
<div class="paragraph">
<p>The examples of print output in this tutorial all make use of the same CIF
model:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton buffer:
  event add, remove;
  disc int cnt = 5;

  location:
    initial;
    edge add    when cnt &lt; 10 do cnt := cnt + 1;
    edge remove when cnt &gt;  0 do cnt := cnt - 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>buffer</code> initially contains five items (<code>cnt = 5</code>). As long as there
is room in the buffer (<code>cnt &lt; 10</code>), an item can be added (event <code>add</code>) to
the buffer. As long as the buffer is not empty (<code>cnt &gt; 0</code>), an item can be
removed (event <code>remove</code>) from the buffer. During simulation, it is possible
to <a href="#tools-cifsim-input-chapter-index">choose</a> between adding an item to the
buffer, and removing an item from the buffer. The following is a potential
simulation trace:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/print/trace_normal.png" alt="trace normal">
</div>
</div>
<div class="paragraph">
<p>In the initial state (S1), variable <code>cnt</code> has value <code>5</code>. An item is then
added (transition for the event <code>add</code>), resulting in a new state (S2), where
<code>cnt</code> has value <code>6</code>. After that, another item is added, leading to state
S3, where <code>cnt</code> has value <code>7</code>. Finally, an item is removed by means of a
transition for event <code>remove</code>, leading to state S4, where <code>cnt</code> has value
<code>6</code> again.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex1">Example 1: Printing the buffer count for all states</h8>
<div class="paragraph">
<p>If we want to print for every state (S1 through S4), the number of items in the
buffer, we could add the following print declaration to automaton <code>buffer</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print cnt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, as a result of this print declaration, the following text is printed to
the console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">5
6
7
6</code></pre>
</div>
</div>
<div class="paragraph">
<p>That is, for every state (S1 through S4), the value of variable <code>cnt</code> is
printed, on a new line.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex2">Example 2: Printing to a file</h8>
<div class="paragraph">
<p>Consider the following print declarations:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print cnt     file &quot;a.txt&quot;;
print cnt * 2 file &quot;b.txt&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first print declaration results in the number of items in the buffer being
printed for every state of the simulation trace, to a file named <code>a.txt</code>. The
second print declaration prints the number of items in the buffer multiplied by
two, to a file named <code>b.txt</code>. These declarations use local file declarations
to specify the file to which output is to be written. It is also possible to
use global print file declarations:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">printfile &quot;ab.txt&quot;;
print cnt;
print cnt * 2;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The print file declaration declares that output of this scope is to be printed
to a file named <code>ab.txt</code>. The two print declarations don&#8217;t specify a local
file declaration, and thus use the default file for their scope, in this case
file <code>ab.txt</code>. Alternating lines with the number of items in the buffer and
twice that amount are thus printed to that file.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex3">Example 3: Printing the odd/even status for all states</h8>
<div class="paragraph">
<p>If we want to print for every state, whether the buffer contains an odd or even
number of items, we could add the following print declaration to automaton
<code>buffer</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print if cnt mod 2 = 0: &quot;even&quot; else &quot;odd&quot; end;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, as a result of this print declaration, the following text is printed to
the console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">odd
even
odd
even</code></pre>
</div>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex4">Example 4: Printing only for odd states</h8>
<div class="paragraph">
<p>If we want to print the number of items in the buffer, but only for states
where the number of items is odd, we could add the following print declaration
to automaton <code>buffer</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print cnt when cnt mod 2 = 1;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, as a result of this print declaration, the following text is printed to
the console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">5
7</code></pre>
</div>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex5">Example 5: Printing the result of adding an item</h8>
<div class="paragraph">
<p>If we want to print the result of adding an item, that is the new buffer count
after a transition for the <code>add</code> event, we could add the following print
declaration to automaton <code>buffer</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print cnt for add;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, as a result of this print declaration, the following text is printed to
the console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">6
7</code></pre>
</div>
</div>
<div class="paragraph">
<p>Since an item is added to the buffer twice, two lines of text are printed.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex6">Example 6: Printing addition/removal results</h8>
<div class="paragraph">
<p>If we want to print the resulting buffer count after every change to the buffer
(addition or removal), we could add the following print declaration to
automaton <code>buffer</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print cnt for add, remove;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, as a result of this print declaration, the following text is printed to
the console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">6
7
6</code></pre>
</div>
</div>
<div class="paragraph">
<p>Two items are added to the buffer, and one item is removed from the buffer,
leading to three lines of text being printed.</p>
</div>
<div class="paragraph">
<p>Since the <code>add</code> and <code>remove</code> events are the only events in the system, and
no edges exist without an event (which would implicitly use the <code>tau</code> event),
the print declaration can also be specified as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print cnt for event;</code></pre>
</div>
</div>
<div class="paragraph">
<p>That is, the value of variable <code>cnt</code> is printed after each event transition.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex7">Example 7: Printing value changes</h8>
<div class="paragraph">
<p>If we want to print the buffer count before and after removal of an item from
the buffer, we could add the following print declaration to automaton
<code>buffer</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print pre cnt post cnt for remove;</code></pre>
</div>
</div>
<div class="paragraph">
<p>As a result of this print declaration, the following text is printed to the
console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">7
6</code></pre>
</div>
</div>
<div class="paragraph">
<p>As only one item is removed for our example trace, two lines of text are
printed, one with the buffer count before the removal (due to <code>pre cnt</code>),
and one with the buffer count after the removal (due to <code>post cnt</code>).</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex8">Example 8: Printing headers and footers</h8>
<div class="paragraph">
<p>If we want to print for every state (S1 through S4), the number of items in the
buffer, we could add the following print declaration to automaton <code>buffer</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print cnt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>If we want to print some text before this, as a header, and some text after
this, as a footer, we could add the following print declaration to the top
level scope of the specification, or to automaton <code>buffer</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print &quot;header&quot; for initial;
print &quot;footer&quot; for final;</code></pre>
</div>
</div>
<div class="paragraph">
<p>As a result of the original print declaration, and these two new print
declarations, the following text is printed to the console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">header
5
6
7
6
footer</code></pre>
</div>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex9">Example 9: Printing the new time after time passes</h8>
<div class="paragraph">
<p>In the example simulation trace given at the top of this page, no passage of
time is included. If however a trace includes time passage, it is possible to
filter printing to only time transitions. For instance, if we want to print the
new time after time passes, we could use the following print declaration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print time for time;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This prints the value of variable <code>time</code>, every time after a time transition.
The first <code>time</code> in the print declaration denotes that the value of variable
<code>time</code> should be printed, and the second <code>time</code> denotes that it should be
printed only after passage of time (after time transitions). As an example,
the following could be printed to the console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">0.005
0.75
3.1
7.9</code></pre>
</div>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex10">Example 10: Printing all unique time values</h8>
<div class="paragraph">
<p>In the <a href="#tools-cifsim-output-print-tut-print-ex9">ninth example</a>, we
printed the new time value after each time transition. However, initially time
is zero. Since the initial state is not reached via a time transition, time
zero is not printed. We could adapt the print declaration to the following, to
print all unique values of variable <code>time</code>, for all states of the simulation
trace:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print time for initial, time;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This initially prints the value of variable <code>time</code>, and also prints it after
every time transition. As an example, the following could be printed to the
console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">0.0
0.005
0.75
3.1
7.9</code></pre>
</div>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-tut-print-ex11">Example 11: Printing transitions to/from a location</h8>
<div class="paragraph">
<p>In the example model given at the top of this page, automaton <code>buffer</code> has
only one location. If however an automaton has multiple locations, it may be
useful to print the effect of transitions ending in a certain location, or the
state of the system for transitions starting in a certain location. Consider
the following print declaration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print x for event when aut.loc;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This prints the value of variable <code>x</code> after event transitions leading to a
state where location <code>loc</code> is the current location of automaton <code>aut</code>.
That is, whenever an event transition leads to entering that location, the
value of variable <code>x</code> after that transition is printed. Since self loops have
the same source and target location, this includes self loops. To exclude self
loops, use the following print declaration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print x for event when pre not aut.loc post aut.loc;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This print declaration prints the same text, but only prints it after event
transitions from a state where location <code>loc</code> is not the current location
of automaton <code>aut</code> to a state where location <code>loc</code> is the current location
of automaton <code>aut</code>.</p>
</div>
<div class="paragraph">
<p>So far in this example, we printed text for transitions ending in a location.
To print text for transitions starting in a location, consider the following
print declaration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print pre y for event when pre aut.loc post not aut.loc;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This print declaration prints the value of variable <code>y</code> in the state that is
exited by the transition, for all event transitions that start in location
<code>loc</code> of automaton <code>aut</code>, but do end in that same location.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-print-chapter-tut-fmt">Text formatting tutorial</h7>
<div class="paragraph">
<p>



This tutorial explains text formatting by means of examples. It does not
explain all uses of text formatting, and all details related to text
formatting. For those details, see the
<a href="#tools-cifsim-output-print-chapter-ref-fmt">Text formatting details</a> page instead.</p>
</div>
<div class="paragraph">
<p>In this tutorial, when printed console output is shown, all output that the
simulator can generate other than output for print declarations, is omitted.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-introduction">Introduction</h8>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print &quot;Time=&quot; + &lt;string&gt;time;</code></pre>
</div>
</div>
<div class="paragraph">
<p>When simulated, it could give the following output:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>Time=0.0
Time=3.333333333333336
Time=5.000000000000001
Time=10.0</code></pre>
</div>
</div>
<div class="paragraph">
<p>As you can see, due to rounding and simulation imprecision, the length of the
textual representations of the values of <code>time</code> can vary wildly during
simulation. Furthermore, the explicit casts (conversions) from real to string
(<code>&lt;string&gt;</code>) and string concatenation (the <code>+</code> operator) can quickly
become cluttered, and hard to read.</p>
</div>
<div class="paragraph">
<p>To improve readability of the print declaration, we could adapt the CIF
specification to the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;Time=%s&quot;, time);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, manual text construction has been replaced by the use of the <code>fmt</code>
standard library function. The first argument is a <em>format pattern</em>, and the
remaining arguments are the values that are to be included in the text, in
this case the value of variable <code>time</code>. The <code>fmt</code> function ensures that we
no longer have to use casts. We also no longer have to create pieces of text
and concatenate them (using the <code>+</code> operator).</p>
</div>
<div class="paragraph">
<p>This is a typical use of a format pattern. The print declaration prints the
value that results from text formatting. The value that is used is the value of
variable <code>time</code>. The value of this variable is not used 'as is', but is
instead converted to a textual representation using the format pattern. This
format pattern specifies that the resulting text should start with <code>Time=</code>.
It also specifies that the value (of variable <code>time</code>) should be included at
the end of the textual representation. The <code>%s</code> part of the format pattern is
a <em>format specifier</em>. The <code>%s</code> specifier is the generic specifier that can
convert any type of value to a textual representation.</p>
</div>
<div class="paragraph">
<p>When simulated, this new specification gives the exact same output as the
previous version.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-real-value-formatting">Real value formatting</h8>
<div class="paragraph">
<p>As we saw in the previous section, due to rounding and simulation imprecision,
the length of the generic textual representations of the values of variable
<code>time</code> can vary wildly during simulation. This reduces readability of the
results, as a lot of irrelevant digits are included. Consider the following
alternative CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;Time=%.2f&quot;, time);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, instead of a <code>%s</code> specifier, a <code>%f</code> specifier is used. This specifier
can only be used for <code>real</code> numbers, and indicates that the number should be
formatted as a floating point number in decimal representation. The <code>.2</code> part
specifies the precision, and indicates that the floating point number in
decimal notation should have exactly two digits after the decimal point. When
simulated, this could give the following output:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>Time=0.00
Time=3.33
Time=5.00
Time=10.00</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-putting-values-in-columns">Putting values in columns</h8>
<div class="paragraph">
<p>In the examples above, we included a single value in the output. Now consider
the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;%.2f %.2f %.2f&quot;, x, y, z);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, the values of variables <code>x</code>, <code>y</code>, and <code>z</code> are included in the
formatted result. The format pattern includes each of the values (the first
<code>%.2f</code> includes the value of variable <code>x</code>, the second <code>%.2f</code> includes the
value of variable <code>y</code>, etc). The format pattern includes spaces between the
format specifiers (between the <code>%.2f</code> parts), and thus the formatted values
include spaces between them as well. When simulated, this could give the
following output:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>1.50 0.00 -3.57
2.34 3.75 5.78
4.71 12345.34 -3.12
-3.25 1.25 99.20</code></pre>
</div>
</div>
<div class="paragraph">
<p>Due to some larger values being mixed with shorter values, as well as due to
having both positive and negative values, the output is not so easy to read.
This can be solved by using the following CIF specification instead:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;%10.2f %10.2f %10.2f&quot;, x, y, z);</code></pre>
</div>
</div>
<div class="paragraph">
<p>By including a <em>width</em> of <code>10</code>, the text is now nicely formatted into columns
of ten characters wide:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>---------- ---------- ----------
      1.50       0.00      -3.57
      2.34       3.75       5.78
      4.71   12345.34      -3.12
     -3.25       1.25      99.20</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first line is not actual output, but is included to make it easier to see
the columns. Not only is the output now nicely put in columns, but due to the
exactly two digits after the dot (<code>.</code>), the dots are now also nicely aligned.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-large-numbers">Large numbers</h8>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;%.2f&quot;, time);</code></pre>
</div>
</div>
<div class="paragraph">
<p>When simulated, this could give the following output:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>0.00
1.34
5000.23
2147185402.17</code></pre>
</div>
</div>
<div class="paragraph">
<p>As the values of variable <code>time</code> get larger and larger, their textual
representations become longer and longer, and it becomes more and more
difficult to see exactly how large the values are. The following alternative
CIF specification solves this problem:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;%,.2f&quot;, time);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The addition of the comma (<code>,</code>) <em>flag</em> ensures that we get the following
output instead:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>0.00
1.34
5,000.23
2,147,185,402.17</code></pre>
</div>
</div>
<div class="paragraph">
<p>That is, a comma is used in the result as <em>thousand separator</em>, making it
easier to see that the value of variable <code>time</code> is just over two billion,
rather than for instance just over 200 million.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-left-alignment">Left alignment</h8>
<div class="paragraph">
<p>Earlier, we put values in columns. By default, if a <em>width</em> is used, text is
right-justified (aligned to the right). We can also justify it to the left,
as in this CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;%-10.2d %-10.2d %-10.2d&quot;, g, h, i);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here the <code>%d</code> specifier is used instead of the <code>%f</code> specifier. The <code>%d</code>
specifier can only be used for integer values, while the <code>%f</code> specifier can
only be used for real values. Besides a different specifier, the minus (<code>-</code>)
flag is added, and different variables are used as values. After the changes,
the CIF specification could result in the following output:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>---------- ---------- ----------
184        3675       2
19350      29         -2956
-17        -964563    235
2946       567        -25072563</code></pre>
</div>
</div>
<div class="paragraph">
<p>Once again, the first line is not actual output, but is included to make it
easier to see the columns. Observe how the addition of the <code>-</code> flag resulted
in the right-justified output being changed to left-justified (aligned to the
left) output. The presence of negative numbers makes that the left-most digits
of the columns are not nicely aligned. The following CIF specification solves
this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;%-+10.2d %-+10.2d %-+10.2d&quot;, x, y, z);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The addition of the plus (<code>+</code>) flag means that for non-negative numbers, a
plus (<code>+</code>) character is always included:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>---------- ---------- ----------
+184       +3675      +2
+19350     +29        -2956
-17        -964563    +235
+2946      +567       -25072563</code></pre>
</div>
</div>
<div class="paragraph">
<p>If preferred, a space can be used instead of a plus, resulting in the following
CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print fmt(&quot;%- 10.2d %- 10.2d %- 10.2d&quot;, x, y, z);</code></pre>
</div>
</div>
<div class="paragraph">
<p>and the following output:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>---------- ---------- ----------
 184        3675       2
 19350      29        -2956
-17        -964563     235
 2946       567       -25072563</code></pre>
</div>
</div>
</div>
<div class="sect7">
<h8 id="tools-more-formatting">More formatting</h8>
<div class="paragraph">
<p>In this short tutorial, we&#8217;ve seen a few forms of text formatting using the
<code>fmt</code> function. However, CIF supports various other specifiers, besides the
<code>%s</code>, <code>%f</code>, and <code>%d</code> specifiers that were used in this tutorial. All
those specifiers support various flags, widths, and precisions, and allow them
to be combined in various ways. For the complete details of text formatting,
see the <a href="#tools-cifsim-output-print-chapter-ref-fmt">Text formatting details</a> page.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-print-chapter-ref-printdecl">Print declaration</h7>
<div class="paragraph">
<p>



The core concept of print output is the <em>print declaration</em>. The print
declarations allow specifying what to print. They also optionally allow
specifying when to print it, how to print it, and to where to print it.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-transition-centric-view">Transition centric view</h8>
<div class="paragraph">
<p>Unlike many programming languages that have print statements, CIF has print
declarations. Print declarations are
<a href="http://en.wikipedia.org/wiki/Declarative_programming">declarative</a>,
rather than
<a href="http://en.wikipedia.org/wiki/Imperative_programming">imperative</a>.
Print
declarations center on transitions. The following is a schematic overview of
a transition:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/print/transition.png" alt="transition">
</div>
</div>
<div class="paragraph">
<p>The transition is graphically depicted as an arrow, with a label. The label
denotes the event that occurred, or <code>time</code> for time transitions. Every
transition has a <em>pre</em> or <em>source</em> <a href="#tools-cifsim-traces-state">state</a>,
and a <em>post</em> or <em>target</em> state. The states are graphically depicted as circles,
with a name above them. These names are only used so that they can be referred
to from the text.</p>
</div>
<div class="paragraph">
<p>The figure thus contains the transition and its immediate environment (its
source and target states). Print declarations allow specifying what, how, and
when to print, for transitions. Since the transition is the central part, we
call this the <em>transition centric view</em>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-extended-trace">Extended trace</h8>
<div class="paragraph">
<p>Simulation using the CIF simulator results in a
<a href="#tools-cifsim-traces-traces">trace</a>. A trace consists of the
<a href="#tools-cifsim-traces-state">states</a> that are encountered and the
transitions that are taken, during the simulation. For instance, consider the
following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton buffer:
  event add, remove;
  disc int cnt = 5;

  location:
    initial;
    edge add    when cnt &lt; 10 do cnt := cnt + 1;
    edge remove when cnt &gt;  0 do cnt := cnt - 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>buffer</code> initially contains five items (<code>cnt = 5</code>). As long as there
is room in the buffer (<code>cnt &lt; 10</code>), an item can be added (event <code>add</code>) to
the buffer. As long as the buffer is not empty (<code>cnt &gt; 0</code>), an item can be
removed (event <code>remove</code>) from the buffer. The following is a potential
simulation trace:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/print/trace_normal.png" alt="trace normal">
</div>
</div>
<div class="paragraph">
<p>In the initial state (S1), variable <code>cnt</code> has value <code>5</code>. An item is then
added (transition for the event <code>add</code>), resulting in a new state (S2), where
<code>cnt</code> has value <code>6</code>. After that, another item is added, leading to state
S3, where <code>cnt</code> has value <code>7</code>. Finally, an item is removed by means of a
transition for event <code>remove</code>, leading to state S4, where <code>cnt</code> has value
<code>6</code> again.</p>
</div>
<div class="paragraph">
<p>As can be seen in the figure, the initial state (S1) has no incoming
transition. Furthermore, the last/final state (S4) has no outgoing
transition. As we&#8217;ll see later, that poses some difficulties in applying the
transition centric view. To get around these limitations, the trace is extended
as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/print/trace_extended.png" alt="trace extended">
</div>
</div>
<div class="paragraph">
<p>A transition with the <em>initial</em> label is added before the initial state, and a
transition with the <em>final</em> label is added after the final state. This ensures
that all states have an incoming and outgoing transition. These two added
transitions are <em>virtual</em>, they don&#8217;t actually exist. They are added only for
the benefit of print output. That is, they don&#8217;t affect the simulation behavior
of the model, and are thus not part of the 'real' trace.</p>
</div>
<div class="paragraph">
<p>The added 'initial' virtual transition has no source state, and the added
'final' virtual transition has no target state. Since in the transition centric
view every transition should have a source and a target state, we add the
initial state (S1) as source state (S0) for the 'initial' transition, and the
final state (S4) as target state (S5) for the 'final' transition. This way,
every transition (whether virtual or real) has a source and target state, and
fits the transition centric view. For the 'initial' and 'final' virtual
transitions, the source and target states are thus the same (S0 = S1, S4 = S5).</p>
</div>
<div class="paragraph">
<p>The trace with added virtual 'initial' and 'final' transitions, and with the
duplicates (S0 and S5) of the source and final states, is called the
<em>extended trace</em>.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-specifying-the-text-to-print">Specifying the text to print</h8>
<div class="paragraph">
<p>Every print declaration must specify <em>what</em> to print, using CIF expressions.
These CIF expressions can for instance refer to variables from the CIF model.
Since variables can change values, it is important to know in which state the
expression is evaluated. In the transition centric view, we have two states to
choose from, the pre/source state and the post/target state. The following
variants are supported to specify what to print:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print EXPR;
print pre EXPR;
print post EXPR;
print pre EXPR post EXPR;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first variant has only one expression, which is printed in the post/target
state. The third variant is identical, but explicitly indicates that the
post/target state is used. The second variant also has a single expression, but
is evaluated in the pre/source state. The fourth variant has two expression,
one of which is evaluated in the pre/source state, and one of which is
evaluated in the post/target state. The first three variants only print one
piece of text per transition, while the fourth variant prints two pieces of
text per transition.</p>
</div>
<div class="paragraph">
<p>Consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print &quot;a&quot;;
print pre x post x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first example prints <code>a</code> after each transition. The second example prints
the value of variable <code>x</code> as it was before the transition, as well as the
value of variable <code>x</code> as it is after the transition, for each transition.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-quoting-and-escaping">Quoting and escaping</h8>
<div class="paragraph">
<p>The expressions that indicate what text to print may be of any type, and the
result of evaluating the expression is converted to a textual representation
that closely resembles the textual syntax of CIF. For string literals this
means that the text is escaped, and double quotes are added. If however the
result of the expression is a <code>string</code> typed value, then that string is used
'as is' (without quoting, and without escaping). Thus, consider the following
example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print [&quot;a\&quot;b&quot;];
print &quot;a\&quot;b&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first print declaration prints a list that contains a single string value,
while the second print declaration prints the single string value directly.
This results in the following printed output:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">[&quot;a\&quot;b&quot;]
a&quot;b</code></pre>
</div>
</div>
<div class="paragraph">
<p>That is, in general string values are quoted and escaped, as is the case for
the first example, where the result is a list. However, if the entire result
is a string, as is the case with the second example, the string value is used
'as is', without quoting and without escaping.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-transition-filtering">Transition filtering</h8>
<div class="paragraph">
<p>It is possible to filter the transitions to which print declarations apply, by
looking at the kind of the transitions (their labels). The following transition
filters are available:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 14.2857%;">
<col style="width: 28.5714%;">
<col style="width: 57.1429%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Filter</th>
<th class="tableblock halign-left valign-top">Matches</th>
<th class="tableblock halign-left valign-top">Does not match</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>event</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All event transitions, including those for the <code>tau</code> event.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All time and virtual transitions.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>time</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All time transitions.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All event and virtual transitions.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">e</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All transitions for event <code>e</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All time and virtual transitions, as well as all transitions for
'other' events (including those for the <code>tau</code> event).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>initial</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The single virtual <em>initial</em> transition.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All event and time transitions, as well as the single virtual <em>final</em> transition.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>final</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The single virtual <em>final</em> transition.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All event and time transitions, as well as the single virtual <em>initial</em> transition.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Transition filters may be combined, leading to a combined transition filter
that matches if any of the individual transition filters matches. The
individual filters must be separated by commas.</p>
</div>
<div class="paragraph">
<p>Transition filtering is optional. If no transition filter is supplied, the
default transition filter is used, which is <code>initial, event, time</code>. That is,
by default output is printed for all transitions, except for the <em>final</em>
virtual transition.</p>
</div>
<div class="paragraph">
<p>Consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print EXPR for e;
print EXPR for time, event;
print EXPR for initial, final;
print EXPR for machine1.start, machine2.start;
print EXPR;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first example prints only for transitions for event <code>e</code>. That is, time
transitions and virtual transitions, as well as transitions for all other
events, are filtered out. The second example prints only for event and time
transitions, and thus filters out the virtual transitions. The third example
prints only for the virtual transitions, and thus filters out all 'real'
transitions (the event and time transitions). The fourth example prints only
for transitions for the <code>start</code> events declared in <code>machine1</code> and
<code>machine2</code> (which could for instance be automata), and filters out time
transitions, virtual transitions, and transitions for all other events. The
fifth example does not specify a filter, and thus prints for the <em>initial</em>
virtual transition, as well as all event and time transitions, but excludes
the <em>final</em> virtual transition.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-state-filtering">State filtering</h8>
<div class="paragraph">
<p>It is possible to filter the transitions to which print declarations apply,
by looking at the pre/source and post/target states of the transitions.
The following variants are supported for state filtering:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print EXPR when PRED;
print EXPR when pre PRED;
print EXPR when post PRED;
print EXPR when pre PRED post PRED;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first variant has only one predicate, which is evaluated in the post/target
state. The third variant is identical, but explicitly indicates that the
post/target state is used. For both these variants, text is only printed if the
post/target state satisfies the given predicate. That is, if the predicate
evaluated in the post/target state of the transition results in value <code>true</code>,
text may be printed. Otherwise, no text is printed for that transition.</p>
</div>
<div class="paragraph">
<p>The second variant also has a single predicate, but is evaluated in the
pre/source state. Text is thus only printed if the pre/source state satisfies
the given predicate.</p>
</div>
<div class="paragraph">
<p>The fourth variant has two predicates, one of which is evaluated in the
pre/source state, and one of which is evaluated in the post/target state. Text
is only printed if the pre/source state satisfies the first predicate, and the
post/target state satisfies the second predicate. If either of the states does
not satisfy its corresponding predicate, no text is printed for that
transition.</p>
</div>
<div class="paragraph">
<p>Consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print &quot;a&quot;;
print &quot;b&quot; when aut.loc;
print &quot;c&quot; when pre aut.loc;
print &quot;d&quot; when pre x mod 2 = 0 post x mod 2 = 1;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first example prints <code>a</code> after each transition, and does not restrict the
pre/source or post/target states. The second example only prints <code>b</code> for
transitions that end in location <code>loc</code> of automaton <code>aut</code>. The third
example only prints <code>c</code> for transitions that start in location <code>loc</code> of
automaton <code>aut</code>. The fourth example only prints <code>d</code> for transitions where
the value of variable <code>x</code> is even before the transition, and odd after the
transition.</p>
</div>
<div class="paragraph">
<p>State filtering is thus optional. If no pre/source state predicate is
specified, the default is <code>true</code>. Similarly, if no post/target state
predicate is specified, the default is <code>true</code> as well.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-combining-filters">Combining filters</h8>
<div class="paragraph">
<p>The transition and state filters are all optional. If however both a transition
filter and a state filter are specified, they must both match in order for text
to be printed. Consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print time for time when time &gt; 3;
print x for e when pre x &lt; 3 post x &gt; 5;
print pre y post y when pre y = 5;</code></pre>
</div>
</div>
<div class="paragraph">
<p>For the first example, the value of variable <code>time</code> is printed after time
transitions, if after those time transitions the value of variable <code>time</code> is
strictly larger than three. For the second example, the value of variable <code>x</code>
is printed after transitions for event <code>e</code> if before such transitions the
value of variable <code>x</code> is strictly less than three, and after such transitions
the value of variable <code>x</code> is strictly larger than <code>5</code>. For the third
example, the value of variable <code>y</code> is printed twice for all 'default'
transitions, once in the pre/source state, and once in the post/target state,
but only if the value of variable <code>y</code> before the transition is exactly five.
So if the condition over the pre/source state does not hold, the value of
variable <code>y</code> is not printed, not for the pre/source state, and also not for
the post/target state.</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-printdecl-file">Output file/target</h8>
<div class="paragraph">
<p>By default text is printed to the console, to the
<a href="http://en.wikipedia.org/wiki/Standard_streams">standard output stream</a>,
usually called 'stdout'. It
is however possible to explicitly specify the file or special target to which
the output is to be printed. Consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print ... file &quot;txt_files/some_file.txt&quot;;
print ... file &quot;../files/some_file.txt&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>For the first print declaration, the simulator will look for a <code>txt_files</code>
directory in the same directory as the CIF file, and print text to a file named
<code>some_file.txt</code> in that directory. For the second print declaration, the
simulator will look for a <code>files</code> directory in the parent directory of the
directory that contains the CIF file, and print text to a file named
<code>some_file.txt</code> in that <code>files</code> directory.</p>
</div>
<div class="paragraph">
<p>Files and directories are separated using slashes (<code>/</code>), regardless of the
used operating system. It is also allowed to use backslashes (<code>\</code>), which are
more common on Microsoft Windows operating systems, but they need to be escaped
as <code>\\</code> for this to work, making it easier to use slashes (<code>/</code>) instead.</p>
</div>
<div class="paragraph">
<p>The following special non-file targets are supported:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>":stdout"</code>: prints to the
<a href="http://en.wikipedia.org/wiki/Standard_streams">standard output stream</a>.
In Eclipse, the text ends up on the console, as black text.</p>
</li>
<li>
<p><code>":stderr"</code>: prints to the
<a href="http://en.wikipedia.org/wiki/Standard_streams">standard error stream</a>.
In Eclipse, the text ends up on the console, as red text.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Besides these local file indications, CIF also supports global
<a href="#tools-cifsim-output-print-chapter-ref-printfile">print file declarations</a>,
which influence the default, in case no local file or special target is
specified.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-scoping">Scoping</h8>
<div class="paragraph">
<p>Print file declarations can be specified in all components. That is, they can
be specified in the top level scope of the specification, in groups and group
definitions, as well as in automata and automaton definitions.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-print-chapter-ref-printfile">Print file declaration</h7>
<div class="paragraph">
<p>



<a href="#tools-cifsim-output-print-chapter-ref-printdecl">Print declarations</a> can
<a href="#tools-cifsim-output-print-ref-printdecl-file">specify</a> the file or
special target to which text is to printed. If they don&#8217;t specify anything,
the default is to print to the
<a href="http://en.wikipedia.org/wiki/Standard_streams">standard output stream</a>,
usually called 'stdout'.
This default can be influenced by means of <em>print file declarations</em>, which act
as a sort of global declaration of the file or special target. A typical print
file declaration looks like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">printfile &quot;some_file.txt&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-paths">Paths</h8>
<div class="paragraph">
<p>It is possible to use relative (or absolute) paths for the files. For instance:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">printfile &quot;txt_files/some_file.txt&quot;;
printfile &quot;../files/some_file.txt&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>For the first print file declaration, the simulator will look for a
<code>txt_files</code> directory in the same directory as the CIF file, and print text
to a file named <code>some_file.txt</code> in that directory. For the second print file
declaration, the simulator will look for a <code>files</code> directory in the parent
directory of the directory that contains the CIF file, and print text to a file
named <code>some_file.txt</code> in that <code>files</code> directory.</p>
</div>
<div class="paragraph">
<p>Files and directories are separated using slashes (<code>/</code>), regardless of the
used operating system. It is also allowed to use backslashes (<code>\</code>), which are
more common on Microsoft Windows operating systems, but they need to be escaped
as <code>\\</code> for this to work, making it easier to use slashes (<code>/</code>) instead.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-special-targets">Special targets</h8>
<div class="paragraph">
<p>The following special non-file targets are supported:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>":stdout"</code>: prints to the
<a href="http://en.wikipedia.org/wiki/Standard_streams">standard output stream</a>.
In Eclipse, the text ends up on the console, as black text.</p>
</li>
<li>
<p><code>":stderr"</code>: prints to the
<a href="http://en.wikipedia.org/wiki/Standard_streams">standard error stream</a>.
In Eclipse, the text ends up on the console, as red text.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-scoping-2">Scoping</h8>
<div class="paragraph">
<p>Print file declarations can (just as print declarations) be specified in all
components. That is, they can be specified in the top level scope of the
specification, in groups and group definitions, as well as in automata and
automaton definitions. A print file declaration that is specified in a certain
scope applies to that scope, as well as all child scopes that don&#8217;t have a
print file declaration of their own. Additionally, print file declarations
apply to all print declarations without local file declarations, in scopes to
which the print file declarations apply.</p>
</div>
<div class="paragraph">
<p>For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">printfile &quot;file1.txt&quot;;

print 5;
print 6 file &quot;file2.txt&quot;;

group g:
  printfile &quot;file3.txt&quot;;

  print 7;
  print 8;
  print 9 file &quot;file4.txt&quot;;

  group h:
    printfile &quot;file5.txt&quot;;
  end

  group i:
    print 10;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The print declaration that prints <code>5</code> is declared in the top level scope of
the specification, and does not have a local file declaration. As such, the
print file declaration from the top level scope (<code>file1.txt</code>) applies to it.
The print declaration that prints <code>6</code> is declared in the same scope, but has
a local print file declaration (<code>file2.txt</code>). The local print file
declaration (<code>file2.txt</code>) overrides the print file declaration from the top
level scope (<code>file1.txt</code>).</p>
</div>
<div class="paragraph">
<p>Group <code>g</code> also has a print file declaration (<code>file3.txt</code>). This overrides
the print file declaration from the top level scope (<code>file1.txt</code>). The print
file declaration from group <code>g</code> (<code>file3.txt</code>) thus applies to the print
declarations that print <code>7</code> and <code>8</code>, as they are declared in the same
scope, and don&#8217;t have local print file declarations. The print declaration that
prints <code>9</code> has a local print file declaration (<code>file4.txt</code>), and as such
the print file declaration from group <code>g</code> (<code>file3.txt</code>) does not apply to
it.</p>
</div>
<div class="paragraph">
<p>The print file declaration (<code>file5.txt</code>) from group <code>g.h</code> does not apply to
any print declarations. The simulator will open the file for writing, but no
text will be printed to the file. A warning is printed to the console, to
indicate the potential problem. However, no such warnings are ever printed for
special target 'stdout'.</p>
</div>
<div class="paragraph">
<p>Group <code>g.i</code> does not have a print file declaration, so the print file
declaration (<code>file3.txt</code>) from group <code>g</code> (the parent scope of group
<code>g.i</code>) applies to the print declaration that prints <code>10</code>.</p>
</div>
<div class="paragraph">
<p>See also the <a href="#tools-cif2cif-chapter-print-file-into-decls">Push print file declarations into print declarations</a> CIF to CIF
transformation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-uniqueness-2">Uniqueness</h8>
<div class="paragraph">
<p>In every scope (or component), in principle at most one print file declaration
may be specified. The exception is that for a single scope, specified in
multiple CIF files (when imports are used), if the print file declarations
refer to the same target, they are merged. If however the two CIF files refer
to different targets, this is still considered an error. It is also considered
an error if two print file declarations are present in a single scope, in a
single file, regardless of whether they refer to the same target or not. In
the end, after processing imports, for every scope there must be a unique print
file declaration, if one is declared at all.</p>
</div>
<div class="paragraph">
<p>If the same file or special target is used/specified multiple times, in
different print file declarations or locally in print declarations, this is
detected by the simulator. The simulator only opens a stream to the file or
special target once, and prints to it all the output of all print declarations
that apply to that file or special target. For instance, consider the following
CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print 5 file &quot;some_file.txt&quot;;
print 6 file &quot;some_file.txt&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Even though both print declarations specify a file locally, they use the same
file. The output of both print declarations is thus printed to the same file.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-print-chapter-ref-sim">Simulation with print output</h7>
<div class="paragraph">
<p>
Once a CIF specification with print declarations is available, the simulator
can be used to generate textual output. This page discusses the following
simulation related topics:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-print-ref-sim-overwrite">Overwriting files</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-ref-sim-line-based">Line-based output</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-ref-sim-order">Output order</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-ref-sim-enable-disable">Enabling/disabling print output</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-sim-overwrite">Overwriting files</h8>
<div class="paragraph">
<p>If output is printed to files, those files are always overwritten for each
simulation. That is, at the start of the simulation, the output file is removed
if present. A new empty file is then created, to which the output is printed
during the simulation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-sim-line-based">Line-based output</h8>
<div class="paragraph">
<p>Output is printed in a line-based fashion. That is, every time text is printed
for a <a href="#tools-cifsim-output-print-chapter-ref-printdecl">print declaration</a>, the
text is printed on a new line. If a single print declaration has two texts, one
for the pre/source state and one for the post/target state, both texts are
printed on new lines.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-sim-order">Output order</h8>
<div class="paragraph">
<p>The simulator guarantees that once text is printed for a certain state, no text
shall ever be printed during that same simulation, for previous states. That
is, output text is ordered by 'increasing' states. This guarantee holds for
file output. For the special targets
<a href="http://en.wikipedia.org/wiki/Standard_streams">standard output stream</a>
(stdout) and
<a href="http://en.wikipedia.org/wiki/Standard_streams">standard error stream</a>
(stderr), the output may get mixed, for instance on the Eclipse console.</p>
</div>
<div class="paragraph">
<p>The order in which text is printed for different print declarations that print
text for the same state, is determined by the order in which the print
declarations are specified in the CIF specification, from top to bottom. The
order is determined per file or special target, after elimination of imports,
component definition/instantiation, etc. A depth-first traversal of the
component hierarchy is used, where the print declarations of components are
considered before the print declarations of their children.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-sim-enable-disable">Enabling/disabling print output</h8>
<div class="paragraph">
<p>Print output is enabled by default. It can be disabled by reducing the
types of <a href="#tools-cifsim-output-chapter-normal">normal console output</a> using the
<b class="menuref">Normal output</b>
option (<b class="menuref">Output</b>
category). Using that
option it is also possible to disable all other forms of normal output, to be
able to see only the print output on the console. Print output can also be
disabled by changing the <a href="#tools-cifsim-output-mode">output mode</a> to
<em>Error</em> or to <em>Warning</em>, instead of <em>Normal</em>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-undoreset-2">Undo/reset</h8>
<div class="paragraph">
<p>By <a href="#tools-cifsim-input-history-reset-undo">undoing</a> one or more transitions,
or by <a href="#tools-cifsim-input-history-reset-undo">resetting</a> the simulation, the
state may change. However, only previously taken transitions are undone. No new
transitions are taken by undoing transitions, or by resetting the simulation.
As such, no new print output is generated.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-print-chapter-ref-fmt">Text formatting details</h7>
<div class="paragraph">
<p>


For text formatting, CIF features the <code>fmt</code> standard library function. This
page describes all the details of using that function. For more introductory
information and examples of the use of the <code>fmt</code> function for print output,
see the <a href="#tools-cifsim-output-print-chapter-tut-fmt">Text formatting tutorial</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-pattern">Format patterns</h8>
<div class="paragraph">
<p>The <code>fmt</code> function requires at least one argument, the <em>format pattern</em>. The
remaining arguments of the function are the <em>values</em> that can be inserted into
the format pattern, to allow variable output. For instance, consider:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%s %s&quot;, x, y)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, <code>"%s %s"</code> is the format pattern, <code>x</code> is the first value, and <code>y</code> is
the second value.</p>
</div>
<div class="paragraph">
<p>The first argument, the format pattern, must be a string literal. That is, it
must be text between double quotes (<code>"</code>).</p>
</div>
<div class="paragraph">
<p>The real usefulness of format patterns comes from the inclusion of the values
into the format pattern. The values can be included by inserting format
specifiers (e.g. <code>%s</code>) into the format pattern. Multiple values may be used
by including multiple format specifiers. The first format specifier includes
the first value, the second format specifier includes the second value, etc.</p>
</div>
<div class="paragraph">
<p>The result of <code>fmt</code> applied to it arguments is the text of the format
pattern, with the format specifiers replaced by their corresponding values.</p>
</div>
<div class="paragraph">
<p>Format specifiers can be customized to influence how their corresponding values
are to be inserted. For instance, consider:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%s %.2e&quot;, x, y)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, assuming variable <code>x</code> has value <code>3</code> and variable <code>y</code> has value
<code>5.6</code>, the result of the <code>fmt</code> function is <code>3 5.60e+00</code>.</p>
</div>
<div class="paragraph">
<p>



</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-specifiers">Specifiers</h8>
<div class="paragraph">
<p>Format patterns support various types of format specifiers, each performing a
different kind of conversion on its corresponding value. The following table
lists the available conversions, the types of values that they support, and a
short description of the output of the conversion:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Conversion</th>
<th class="tableblock halign-left valign-top">Supported types</th>
<th class="tableblock halign-left valign-top">Output</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-b">%b</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Either <code>true</code> or <code>false</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-b">%B</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Same as <code>%b</code>, but in upper case.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-d">%d</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Decimal integer notation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-x">%x</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hexadecimal integer notation, using <code>0-9</code> and <code>a-f</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-x">%X</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hexadecimal integer notation, using <code>0-9</code> and <code>A-F</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-e">%e</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Computerized scientific notation, using <code>e</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-e">%E</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Computerized scientific notation, using <code>E</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-f">%f</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Decimal number notation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-g">%g</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">General scientific notation, using <code>e</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-g">%G</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">General scientific notation, using <code>E</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-s">%s</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">any type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">General textual representation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-output-print-ref-fmt-s">%S</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">any type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">General textual representation, in upper case.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For the <code>%d</code>, <code>%x</code>, and <code>%X</code> specifiers, <code>int</code> typed values are
supported, as are integer types with ranges (e.g. <code>int[0..5]</code>). The <code>%s</code>
and <code>%S</code> specifiers support values of any type.</p>
</div>
<div class="paragraph">
<p>The output of the <code>%B</code> specifier is identical to the output of the <code>%b</code>
specifier, where all letters in the output are converted to upper case letters.
This duality (lower case specifier conversion versus upper case specifier
conversion) is present in all conversions that can have letters in their
output.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-syntax">Specifier syntax</h8>
<div class="paragraph">
<p>Specifiers can be customized to influence the conversion of their corresponding
values to text. The general syntax of specifiers is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>%[value_index$][flags][width][.precision]conversion</code></pre>
</div>
</div>
<div class="paragraph">
<p>All specifiers start with a percentage character (<code>%</code>).</p>
</div>
<div class="paragraph">
<p>They are optionally followed by a value index. If the value index is specified,
it must be followed by a dollar sign (<code>$</code>). The value index is a positive
decimal integer indicating the position of the value in the value list. The
first value is referenced by <code>1$</code>, the second by <code>2$</code>, etc. Index zero and
indices starting with zero are not allowed.</p>
</div>
<div class="paragraph">
<p>The index is followed by optional flags. Flags are characters that modify the
output, and may be specified in any order. Each flag may only be specified once
per specifier. The set of valid flags depends on the conversion.</p>
</div>
<div class="paragraph">
<p>After the flags, an optional width may be specified. The width is a
non-negative decimal integer indicating the minimum number of characters that
should be included in the result, for that specific specifier.</p>
</div>
<div class="paragraph">
<p>After the width, a precision may optionally be specified. A precision is always
preceded by a dot (<code>.</code>). The precision is a non-negative decimal integer used
to restrict the number of characters. The specific behavior depends on the
conversion.</p>
</div>
<div class="paragraph">
<p>Specifiers always end with the character indicating the conversion to perform.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-indexing">Implicit and explicit indexing</h8>
<div class="paragraph">
<p>By default, format specifiers are processed in order. The first specifier then
implicitly uses the first value, the second specifier implicitly uses the
second value, etc. However, if an explicit value index is given, that explicit
index indicates the value to use, and the specifier with the explicit index
does not influence subsequent implicit indexing. That is, consider the
following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%s %1$s %3$f %d %f %1$s&quot;, 1, 2, 3.0);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first specifier (<code>%s</code>) does not specify an explicit index, and thus
implicitly uses the first value. The second specifier (<code>%1$s</code>) explicitly
specifies index <code>1</code> and thus uses the first value. The third specifier
(<code>%3$f</code>) explicitly specifies index <code>3</code> and thus uses the third value. The
fourth specifier (<code>%d</code>) is the second specifier to not explicitly specify an
index, and thus implicitly uses the second value. The fifth specifier (<code>%f</code>)
is the third specifier to not explicitly specify an index, and thus implicitly
uses the third value. Finally, the sixth specifier (<code>%1$s</code>) explicitly
specifies index <code>1</code>, and thus uses the first value. The result of the
formatting is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>1 1 3.000000 2 3.000000 1</code></pre>
</div>
</div>
<div class="paragraph">
<p>







</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-flags">Flags</h8>
<div class="paragraph">
<p>The following flags are available:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 7.1428%;">
<col style="width: 7.1428%;">
<col style="width: 7.1428%;">
<col style="width: 7.1428%;">
<col style="width: 7.1428%;">
<col style="width: 7.1428%;">
<col style="width: 7.1428%;">
<col style="width: 7.1428%;">
<col style="width: 42.8576%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Flag</th>
<th class="tableblock halign-left valign-top"><a href="#tools-cifsim-output-print-ref-fmt-b">b/B</a></th>
<th class="tableblock halign-left valign-top"><a href="#tools-cifsim-output-print-ref-fmt-d">d</a></th>
<th class="tableblock halign-left valign-top"><a href="#tools-cifsim-output-print-ref-fmt-x">x/X</a></th>
<th class="tableblock halign-left valign-top"><a href="#tools-cifsim-output-print-ref-fmt-e">e/E</a></th>
<th class="tableblock halign-left valign-top"><a href="#tools-cifsim-output-print-ref-fmt-f">f</a></th>
<th class="tableblock halign-left valign-top"><a href="#tools-cifsim-output-print-ref-fmt-g">g/G</a></th>
<th class="tableblock halign-left valign-top"><a href="#tools-cifsim-output-print-ref-fmt-s">s/S</a></th>
<th class="tableblock halign-left valign-top">Effect</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The result will be left-justified.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The result will always include a sign.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">(space)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The result will include a leading space for non-negative values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>0</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The result will be zero-padded.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>,</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The result will include commas (<code>,</code>) as grouping separator.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The first column shows the available flags, the minus (<code>-</code>), the plus
(<code>+</code>), the space, the zero (<code>0</code>), and the comma (<code>,</code>). The middle columns
indicate for each of the different conversions, whether the flags are
supported. The last column gives short descriptions of the effects of the
flags.</p>
</div>
<div class="paragraph">
<p>The <code>-</code> flag can be used to left-justify the text in case a
<a href="#tools-cifsim-output-print-ref-fmt-width">width</a> is used, as the default
is to right-justify. It is supported by all format specifiers. The <code>-</code> flag
requires the use of a width, and can not be combined with the <code>0</code> flag.</p>
</div>
<div class="paragraph">
<p>The <code>+</code> flag can be used to always include a sign. It only applies to certain
numeric format specifiers. That is, by default non-negative numbers don&#8217;t have
a sign, and negative numbers start with a <code>-</code> character. By including the
<code>+</code> flag, non-negative numbers start with a <code>+</code> character, and negative
numbers still start with a <code>-</code> character. The <code>+</code> and space flags can not
be combined.</p>
</div>
<div class="paragraph">
<p>The space flag can be used force a leading space to be included for
non-negative values. It only applies to certain numeric format specifiers. That
is, by default non-negative numbers don&#8217;t have a sign, and negative numbers
start with a <code>-</code> character. By including the space flag, non-negative numbers
start with a space character, and negative numbers still start with a <code>-</code>
character. The <code>+</code> and space flags can not be combined.</p>
</div>
<div class="paragraph">
<p>The <code>0</code> flag can be used to zero pad numbers, in case a
<a href="#tools-cifsim-output-print-ref-fmt-width">width</a> is used, the text is
right-justified, and the text is shorter than the width. It only applies to
certain numeric format specifiers. The <code>0</code> flag requires the use of a width,
and can not be combined with left-justification (the <code>-</code> flag).</p>
</div>
<div class="paragraph">
<p>The <code>,</code> flag can be used to include commas (<code>,</code>) as grouping separators.
It only applies to certain numeric format specifiers. That is, by default
numbers are just a sequence of digits. By using the <code>,</code> flag, longer numbers
are placed in groups of thousands and the 'thousands separator' (the <code>,</code>
character) occurs every three digits. For instance, <code>12345678</code> would then
become <code>12,345,678</code>.</p>
</div>
<div class="paragraph">
<p>Further details on the effects of flags are given in the sections describing
the individual conversions.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-width">Width</h8>
<div class="paragraph">
<p>The width is a non-negative decimal integer indicating the minimum number of
characters that should be included in the result, for that specific specifier.
If no width is given, there is no minimum number of characters.</p>
</div>
<div class="paragraph">
<p>If the textual representation of the value is shorter than the width, the
text is right-justified. That is, the text will be padded by spaces to the
left of the text until the total number of characters equals the width. To
left-justify the text, use the <code>-</code> flag in combination with a width. This
results in padding with spaces to the right of the text.</p>
</div>
<div class="paragraph">
<p>If the <code>0</code> flag is specified, and the textual representation of the value is
shorter than the width, <code>0</code> padding is used (to the left, as the <code>-</code> flag
may not be used when the <code>0</code> flag is used). See the sections describing the
individual number related specifiers for further details.</p>
</div>
<div class="paragraph">
<p>If the text is longer than the width, the whole text is included in the result
(it is not truncated), and the width essentially has no effect.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-b"><code>%b</code> and <code>%B</code> specifiers</h8>
<div class="paragraph">
<p>The <code>%b</code> and <code>%B</code> specifiers convert boolean values to text. The specifiers
only support boolean values. The specifiers support explicit indices, widths,
and the <code>-</code> flag. They don&#8217;t supports any of the other flags, and precisions.</p>
</div>
<div class="paragraph">
<p>The resulting text is constructed as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Value <code>true</code> results in the text <code>true</code>, and value <code>false</code> results
in the text <code>false</code>.</p>
</li>
<li>
<p>For the <code>%B</code> specifier, the text is converted to upper case, i.e.
<code>TRUE</code> and <code>FALSE</code> respectively.</p>
</li>
<li>
<p>If a width is specified, and the resulting text so far is shorter than that
width, spaces are added until the given width is reached. If the <code>-</code> flag
is given, spaces are added to the right, otherwise spaces are added to the
left.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Here are some examples, assuming <code>b</code> has value <code>true</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%b&quot;, b);       // true
fmt(&quot;%B&quot;, b);       // TRUE
fmt(&quot;_%10b_&quot;, b);   // _      true_
fmt(&quot;_%-10b_&quot;, b);  // _true      _</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-d"><code>%d</code> specifier</h8>
<div class="paragraph">
<p>The <code>%d</code> specifier converts integer numbers to text, using decimal
representations of integers. The specifier only support integer values
(<code>int</code> typed values, and values of integer types with ranges, such as
<code>int[0..5]</code>). The specifier supports explicit indices, widths, and all flags.
It doesn&#8217;t support precisions.</p>
</div>
<div class="paragraph">
<p>The resulting text is constructed as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The resulting text is initialized to the decimal representation of the
absolute value of the integer number. It thus consists of only the digits
<code>0</code> through <code>9</code>.</p>
</li>
<li>
<p>If the <code>,</code> flag is given, thousand separators (<code>,</code> characters) are
inserted as needed, for longer numbers.</p>
</li>
<li>
<p>If the number is negative, it is prefixed with a <code>-</code> character.</p>
</li>
<li>
<p>If the number is non-negative, and the space flag is given, a space is added
before the text.</p>
</li>
<li>
<p>If the number is non-negative, and the <code>+</code> flag is given, a <code>+</code> character
is added before the text.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and the <code>0</code>
flag is given, then <code>0</code> characters are added before the other digits, and
after any non-digit characters, until the desired width is reached.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and the <code>-</code>
flag is given, then space characters are added before the result, until the
desired width is reached.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and neither
the <code>0</code> flag nor the <code>-</code> flag is given, then space characters are added
after the result, until the desired width is reached.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Here are some examples, assuming <code>x</code> has value <code>12345</code> and <code>y</code> has value
<code>-2345</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%d&quot;, x);           // 12345
fmt(&quot;%,d&quot;, x);          // 12,345
fmt(&quot;_%10d_&quot;, x);       // _     12345_
fmt(&quot;_%-10d_&quot;, x);      // _12345     _
fmt(&quot;_%0,10d_&quot;, x);     // _000012,345_
fmt(&quot;_%- 10d_&quot;, x);     // _ 12345    _
fmt(&quot;_%- 10d_&quot;, y);     // _-2345     _
fmt(&quot;_%-+10d_&quot;, x);     // _+12345    _
fmt(&quot;_%-+10d_&quot;, y);     // _-2345     _
fmt(&quot;_%3d_&quot;, x);        // _12345_</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-x"><code>%x</code> and <code>%X</code> specifiers</h8>
<div class="paragraph">
<p>The <code>%x</code> and <code>%X</code> specifiers convert integer numbers to text, using
hexadecimal representations of integers. The specifiers only support integer
values (<code>int</code> typed values, and values of integer types with ranges, such as
<code>int[0..5]</code>). The specifiers supports explicit indices, widths, and the <code>-</code>
and <code>0</code> flags. They don&#8217;t supports any of the other flags, and precisions.</p>
</div>
<div class="paragraph">
<p>The resulting text is constructed as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The signed integer number in range [-2,147,483,648 .. 2,147,483,647] is
first converted to an unsigned integer number in range [0 .. 4,294,967,295].
That is, for negative numbers, 2<sup>32</sup> is added.</p>
</li>
<li>
<p>The resulting text is initialized to the hexadecimal representation of the
unsigned integer number. It thus consists the digits <code>0</code> through <code>9</code> and
letters <code>a</code> through <code>f</code>.</p>
</li>
<li>
<p>For the <code>%X</code> specifier, the text is converted to upper case, i.e. letters
<code>a</code> through <code>f</code> are converted to letters <code>A</code> through <code>F</code>.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and the <code>0</code>
flag is given, then <code>0</code> characters are added before the result, until the
desired width is reached.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and the <code>-</code>
flag is given, then space characters are added before the result, until the
desired width is reached.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and neither
the <code>0</code> flag nor the <code>-</code> flag is given, then space characters are added
after the result, until the desired width is reached.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Here are some examples, assuming <code>a</code> has value <code>5543</code> and <code>b</code> has value
<code>-1</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%x&quot;, a);           // 15a7
fmt(&quot;0x%x&quot;, a);         // 0x15a7
fmt(&quot;0x%X&quot;, a);         // 0x15A7
fmt(&quot;0x%X&quot;, b);         // 0xFFFFFFFF
fmt(&quot;_%10x_&quot;, a);       // _      15a7_
fmt(&quot;_%-10x_&quot;, a);      // _15a7      _
fmt(&quot;_%3x_&quot;, a);        // _15a7_</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-e"><code>%e</code> and <code>%E</code> specifiers</h8>
<div class="paragraph">
<p>The <code>%e</code> and <code>%E</code> specifiers convert real numbers to text, using
computerized scientific notation. The specifiers only support real
values. The specifiers supports explicit indices, widths, the <code>-</code>, <code>+</code>,
space, and <code>0</code> flags, and precisions. They don&#8217;t supports any of the other
flags.</p>
</div>
<div class="paragraph">
<p>Real numbers include a <em>decimal mark</em>, a symbol used to separate the integer
part from the fractional part of number, when written in decimal form. This
decimal mark is denoted by a dot (<code>.</code>).</p>
</div>
<div class="paragraph">
<p>The resulting text is constructed as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The decimal mark of the real number is shifted to ensure that at most one
non-zero digit occurs to the left of it. That is, for real numbers <code>0.012</code>,
<code>0.12</code>, <code>1.2</code>, <code>12.0</code>, and <code>120.0</code>, the decimal mark is shifted
-2, -1, 0, 1, and 2 digits to the left, respectively. This results in the
following real numbers: <code>1.2</code>, <code>1.2</code>, <code>1.2</code>, <code>1.2</code>, and <code>1.2</code>.
For zero, the decimal mark is not shifted.</p>
</li>
<li>
<p>The single decimal digit before the decimal mark is included in the result.
If there is no digit before the decimal mark (in case the real number is
zero), a single <code>0</code> digit is included in the result.</p>
</li>
<li>
<p>If the precision is specified and is not zero, or if the default precision
is used, a dot (<code>.</code>) is added after the single digit.</p>
</li>
<li>
<p>The digits after the decimal mark are added after the dot. Exactly
'precision' digits will be added. If no precision is specified, it defaults
to <code>6</code> digits after the dot. If not enough digits are available after the
dot, additional <code>0</code> characters are added after them, to reach the desired
precision. If too many digits are available after the dot, digits are removed
from the right until the desired precision is reached. Rounding using the
'half up' algorithm is used to ensure correct results in case digits are
removed.</p>
</li>
<li>
<p>If the <code>%e</code> specifier is used, an <code>e</code> character is added to the end.
If the <code>%E</code> specifier is used, an <code>E</code> character is added to the end.</p>
</li>
<li>
<p>A sign character is added after that. That is, if the decimal mark was
shifted a negative number of digits to the left, a <code>-</code> character is added,
otherwise a <code>+</code> character is added.</p>
</li>
<li>
<p>The number of digits that was shifted is added as a decimal number, at the
end. At least two decimal digits are added, so if the number of digits that
was shifted can be represented using a single decimal digit, a <code>0</code> is added
between the <code>e</code> or <code>E</code> character and the number of digits that was
shifted.</p>
</li>
<li>
<p>If the real number is negative, the text is prefixed with a <code>-</code> character.</p>
</li>
<li>
<p>If the real number is non-negative, and the space flag is given, a space is
added before the text.</p>
</li>
<li>
<p>If the real number is non-negative, and the <code>+</code> flag is given, a <code>+</code>
character is added before the text.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and the <code>0</code>
flag is given, then <code>0</code> characters are added before the other digits, and
after any non-digit characters, until the desired width is reached.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and the <code>-</code>
flag is given, then space characters are added before the result, until the
desired width is reached.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and neither
the <code>0</code> flag nor the <code>-</code> flag is given, then space characters are added
after the result, until the desired width is reached.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Here are some examples, assuming <code>a</code> has value <code>12345.6789</code> and <code>b</code> has
value <code>-0.00002345678</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%e&quot;, a);           // 1.234568e+04
fmt(&quot;%E&quot;, a);           // 1.234568E+04
fmt(&quot;%.3e&quot;, a);         // 1.235e+04
fmt(&quot;%.3e&quot;, b);         // -2.346e-05
fmt(&quot;_%20e_&quot;, a);       // _        1.234568e+04_
fmt(&quot;_%-20e_&quot;, a);      // _1.234568e+04        _
fmt(&quot;_%5e_&quot;, a);        // _1.234568e+04_
fmt(&quot;_%020e_&quot;, a);      // _000000001.234568e+04_
fmt(&quot;_%-+20e_&quot;, a);     // _+1.234568e+04       _
fmt(&quot;_%-+20e_&quot;, b);     // _-2.345678e-05       _
fmt(&quot;_%- 20e_&quot;, a);     // _ 1.234568e+04       _
fmt(&quot;_%- 20e_&quot;, b);     // _-2.345678e-05       _</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-f"><code>%f</code> specifier</h8>
<div class="paragraph">
<p>The <code>%f</code> specifier converts real numbers to text, using a decimal number
notation. The specifier only supports real values. The specifier supports
explicit indices, widths, all flags, and precisions. That is, all features of
format specifiers are supported.</p>
</div>
<div class="paragraph">
<p>Real numbers include a <em>decimal mark</em>, a symbol used to separate the integer
part from the fractional part of number, when written in decimal form. This
decimal mark is denoted by a dot (<code>.</code>).</p>
</div>
<div class="paragraph">
<p>The resulting text is constructed as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The decimal digits before the decimal mark are included in the result.
If there are no digits before the decimal mark, a single <code>0</code> digit is
included in the result.</p>
</li>
<li>
<p>If the <code>,</code> flag is given, thousand separators (<code>,</code> characters) are
inserted as needed, for longer numbers.</p>
</li>
<li>
<p>If the precision is specified and is not zero, or if the default precision
is used, a dot (<code>.</code>) is added after the digits.</p>
</li>
<li>
<p>The digits after the decimal mark are added after the dot. Exactly
'precision' digits will be added. If no precision is specified, it defaults
to <code>6</code> digits after the dot. If not enough digits are available after the
dot, additional <code>0</code> characters are added after them, to reach the desired
precision. If too many digits are available after the dot, digits are removed
from the right until the desired precision is reached. Rounding using the
'half up' algorithm is used to ensure correct results in case digits are
removed.</p>
</li>
<li>
<p>If the real number is negative, the text is prefixed with a <code>-</code> character.</p>
</li>
<li>
<p>If the real number is non-negative, and the space flag is given, a space is
added before the text.</p>
</li>
<li>
<p>If the real number is non-negative, and the <code>+</code> flag is given, a <code>+</code>
character is added before the text.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and the <code>0</code>
flag is given, then <code>0</code> characters are added before the other digits, and
after any non-digit characters, until the desired width is reached.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and the <code>-</code>
flag is given, then space characters are added before the result, until the
desired width is reached.</p>
</li>
<li>
<p>If a width is given, the text so far is shorter than the width, and neither
the <code>0</code> flag nor the <code>-</code> flag is given, then space characters are added
after the result, until the desired width is reached.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Here are some examples, assuming <code>a</code> has value <code>12345.6789</code> and <code>b</code> has
value <code>-0.00002345678</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%f&quot;, a);           // 12345.678900
fmt(&quot;%f&quot;, b);           // -0.000023
fmt(&quot;%.3f&quot;, a);         // 12345.679
fmt(&quot;_%20f_&quot;, a);       // _        12345.678900_
fmt(&quot;_%-20f_&quot;, a);      // _12345.678900        _
fmt(&quot;_%-,20f_&quot;, a);     // _12,345.678900       _
fmt(&quot;_%5f_&quot;, a);        // _12345.678900_
fmt(&quot;_%020f_&quot;, a);      // _0000000012345.678900_
fmt(&quot;_%-+20f_&quot;, a);     // _+12345.678900       _
fmt(&quot;_%-+20f_&quot;, b);     // _-0.000023           _
fmt(&quot;_%- 20f_&quot;, a);     // _ 12345.678900       _
fmt(&quot;_%- 20f_&quot;, b);     // _-0.000023           _</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-g"><code>%g</code> and <code>%G</code> specifiers</h8>
<div class="paragraph">
<p>The <code>%g</code> and <code>%G</code> specifiers convert real numbers to text, using general
scientific notation. The specifiers only support real values. The specifiers
supports explicit indices, widths, all flags, and precisions. That is, all
features of format specifiers are supported.</p>
</div>
<div class="paragraph">
<p>Real numbers include a <em>decimal mark</em>, a symbol used to separate the integer
part from the fractional part of number, when written in decimal form. This
decimal mark is denoted by a dot (<code>.</code>).</p>
</div>
<div class="paragraph">
<p>If the real number is is greater than or equal to 10<sup>-4</sup> but
less than 10<sup>precision</sup>, the result is as <code>%f</code>. Otherwise, the
result is as <code>%e</code> and <code>%E</code>, for <code>%g</code> and <code>%G</code> respectively. However,
the total number of
<a href="http://en.wikipedia.org/wiki/Significant_figures">significant digits</a>
of the
result is equal to the precision of the <code>%g</code> or <code>%G</code> specifier, and
defaults to <code>6</code> if not specified. If the specified precision is <code>0</code>, it is
taken to be <code>1</code> instead.</p>
</div>
<div class="paragraph">
<p>Here are some examples, assuming <code>a</code> has value <code>12345.6789</code> and <code>b</code> has
value <code>-0.00002345678</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%g&quot;, a);           // 12345.7
fmt(&quot;%g&quot;, b);           // -2.34568e-05
fmt(&quot;%G&quot;, b);           // -2.34568E-05
fmt(&quot;%.3g&quot;, a);         // 1.23e+04
fmt(&quot;_%20g_&quot;, a);       // _             12345.7_
fmt(&quot;_%-20g_&quot;, a);      // _12345.7             _
fmt(&quot;_%-,20g_&quot;, a);     // _12,345.7            _
fmt(&quot;_%5g_&quot;, a);        // _12345.7_
fmt(&quot;_%020g_&quot;, a);      // _000000000000012345.7_
fmt(&quot;_%-+20g_&quot;, a);     // _+12345.7            _
fmt(&quot;_%-+20g_&quot;, b);     // _-2.34568e-05        _
fmt(&quot;_%- 20g_&quot;, a);     // _ 12345.7            _
fmt(&quot;_%- 20g_&quot;, b);     // _-2.34568e-05        _</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-s"><code>%s</code> and <code>%S</code> specifiers</h8>
<div class="paragraph">
<p>The <code>%s</code> and <code>%S</code> specifiers convert any value to text. The specifiers
support values of any type. The specifiers supports explicit indices, widths,
and the <code>-</code> flag. They don&#8217;t supports any of the other flags, and precisions.</p>
</div>
<div class="paragraph">
<p>The resulting text is constructed as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If the value has a <code>string</code> type, the value of that string is used as is,
without escaping and double quoting. Otherwise, the value is converted to
a textual representation closely resembling the CIF textual syntax (ASCII
syntax), with string values surrounded by double quotes, and with special
characters (tabs, new lines, double quotes, and backslashes) escaped.</p>
</li>
<li>
<p>For the <code>%S</code> specifier, the text is converted to upper case, i.e. letters
<code>a</code> through <code>z</code> are converted to letters <code>A</code> through <code>Z</code>.</p>
</li>
<li>
<p>If a width is specified, and the resulting text so far is shorter than that
width, spaces are added until the given width is reached. If the <code>-</code> flag
is given, spaces are added to the right, otherwise spaces are added to the
left.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Here are some examples, assuming <code>x</code> has value <code>"aBcD"</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;%s&quot;, x);       // aBcD
fmt(&quot;%S&quot;, x);       // ABCD
fmt(&quot;_%10s_&quot;, x);   // _      aBcD_
fmt(&quot;_%-10s_&quot;, x);  // _aBcD      _</code></pre>
</div>
</div>
<div class="paragraph">
<p>As indicated above, <code>string</code> typed values are of special interest. For
instance, consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;a %s b&quot;, (&quot;some \\ text&quot;, 6));     // a (&quot;some \\ text&quot;, 6) b
fmt(&quot;a %s b&quot;, &quot;some \\ text&quot;);          // c some \ text d</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first example has a tuple as value, with a string and an integer number.
The output of this example is <code>a ("some \\ text", 6) b</code>. Note how the string
in the tuple is included in the output with double quotes around it, and how
the escaped backslash is also escaped in the resulting text.</p>
</div>
<div class="paragraph">
<p>The second example has a value that is a string directly (e.g. not contained in
a tuple or some other container). This mapping results in <code>c some \ text d</code>.
Note how the string is included in the output 'as is', i.e. it is not
surrounded by double quotes, and the backslash is not escaped.</p>
</div>
<div class="paragraph">
<p>In general, when using a <code>%s</code> specifier, string values are double quoted and
escaped. If however the entire value is a string, then that string is used
'as is' (without quoting, and without escaping).</p>
</div>
<div class="paragraph">
<p>Also of special interest are real values. The number of digits after the
decimal point can vary. For instance, consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">fmt(&quot;a %s b&quot;, 1 / 3);       // a 0.3333333333333333 b
fmt(&quot;c %s d&quot;, 1 / 2);       // c 0.5 d</code></pre>
</div>
</div>
<div class="paragraph">
<p>For more control over the number of digits after the decimal point, use one of
the floating point number format specifiers:
<a href="#tools-cifsim-output-print-ref-fmt-e">%e</a>,
<a href="#tools-cifsim-output-print-ref-fmt-e">%E</a>,
<a href="#tools-cifsim-output-print-ref-fmt-f">%f</a>,
<a href="#tools-cifsim-output-print-ref-fmt-g">%g</a>, or
<a href="#tools-cifsim-output-print-ref-fmt-g">%G</a>.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-print-ref-fmt-escaping">Escaping and quoting</h8>
<div class="paragraph">
<p>Double quote terminate string literals, and thus also a format pattern, as
format patterns are string literals. It is therefore not possible to include
a double quote in the text of a format pattern without escaping it. That is,
use <code>\"</code> inside a format pattern to include a single double quote. There are
other escape sequences as well. Use <code>\\</code> to include a single backslash
(<code>\</code>), <code>\n</code> to include a single new line (to continue on a new line), and
<code>\t</code> to include a tab character (for alignment).</p>
</div>
<div class="paragraph">
<p>Format specifiers start with a percentage character (<code>%</code>). If a percentage
character is to be included as a percentage character instead of being
interpreted as a format specifier, it needs to be escaped as well. That is,
to include a percentage character as a percentage character, use <code>%%</code> in
the format pattern.</p>
</div>
<div class="paragraph">
<p>For instance, the format pattern <code>"a\"b\nc\td\\e%%f"</code> results in the
following text:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>a&quot;b
c       d\e%f</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-unused-values">Unused values</h8>
<div class="paragraph">
<p>The format pattern is automatically checked for unused values. That is, if a
value is not used in the format pattern, there is no use in specifying it, and
a warning will indicate this.</p>
</div>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-svgviz-chapter-index">SVG visualizer</h6>
<div class="paragraph">
<p>



The CIF simulator supports several forms of <a href="#tools-cifsim-output-chapter-index">output</a>.
By default, simulation results, such as the
current <a href="#tools-cifsim-traces-state">state</a>, are printed to the console.
While this provides useful information, it is not easy to decipher the precise
state of a (sub-)system. Also, it does not give a graphical overview of the
current state of the system.</p>
</div>
<div class="paragraph">
<p>The simulator however, also supports <em>SVG visualization</em>, which allows the user
to make an image of the system, and have that image be updated by the simulator
during simulation, based on the current state of the system. This allows the
user to see changes in the state of the system, in a graphical representation
of that system. This makes it much easier to get a global overview of the
system during simulation. Since the user makes the image, the representation
directly corresponds to the way the user sees the system.</p>
</div>
<div class="paragraph">
<p><strong>Documentation</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-first-example">First example</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svg">Scalable Vector Graphics (SVG)</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-inkscape">Inkscape</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG declarations</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svgfile">SVG file declarations</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svgout">CIF/SVG output mappings</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svgcopy">CIF/SVG copy declaration</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svgmove">CIF/SVG move declaration</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-simulation">Simulation of SVG visualizations</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-debugging">Debugging SVG visualizations</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-viewer">SVG viewer and visualizer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="tools-cifsim-output-svgviz-examples" class="paragraph">
<p><strong>Examples</strong></p>
</div>
<div class="paragraph">
<p>Below is a list of available examples of SVG visualizations, which show some
often used SVG attributes, as well as some tips and tricks on how to handle
common challenges. The following examples are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-example-sun-moon">Sun/moon example</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-example-walk">Walk example</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-example-rate">Rate example</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-example-workstation">Workstation example</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-example-tank">Tank example</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-example-lamps">Lamps example</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-example-buffers-products">Buffers/products example</a></p>
</li>
</ul>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-first-example">First example</h7>
<div class="paragraph">
<p>
Before we go into any details about SVG visualization, let&#8217;s first look at an
example. Here, we use a trivial example, which nonetheless serves several
purposes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>It gives a quick overview of what the idea of SVG visualization is all about,
and what it looks like.</p>
</li>
<li>
<p>It shows how to use SVG visualization with the CIF simulator.</p>
</li>
<li>
<p>It shows the two alternatives to simulation: via the options dialog, and by
using a ToolDef <a href="#tools-scripting-chapter-intro">script</a>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Note that it is not necessary to fully understand what exactly is going on, or
how it works. Those details should become clear after reading the remaining
pages of the documentation.</p>
</div>
<div class="sect7">
<h8 id="tools-creating-the-cif-model">Creating the CIF model</h8>
<div class="paragraph">
<p>In an Eclipse project or directory, create a new CIF file named <code>lamp.cif</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;lamp.svg&quot;;

automaton lamp:
  cont t der 1.0;

  location Off:
    initial;
    edge when t &gt;= 1.0 do t := 0.0 goto On;

  location On:
    edge when t &gt;= 2.0 do t := 0.0 goto Off;

  svgout id &quot;lamp&quot; attr &quot;fill&quot; value if Off: &quot;gray&quot; else &quot;yellow&quot; end;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This file describes not only the behavior of the lamp using a CIF automaton,
but also contains a <a href="#tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG declaration</a>, which specifies the connection between
the behavioral CIF specification and the SVG image.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-creating-the-svg-image">Creating the SVG image</h8>
<div class="paragraph">
<p>Next, we&#8217;ll create an <a href="#tools-cifsim-output-svgviz-chapter-svg">SVG</a> image.
Start
<a href="http://inkscape.org/">Inkscape</a>,
Select
<b class="menuref">Document Properties&#8230;&#8203;</b>
from the
<b class="menuref">File</b>
menu, to open the
<b class="menuref">Document Properties</b>
window. On the
<b class="menuref">Page</b>
tab, set the
<b class="menuref">Units</b>
to
<b class="menuref">px</b>,
the
<b class="menuref">Width</b>
to <code>75.00</code>, and
the height to <code>100.00</code>. It is recommended to always
<a href="#tools-cifsim-output-svgviz-inkscape-size">set the size</a> of the image,
before adding any shapes or text labels.</p>
</div>
<div class="paragraph">
<p>Next, select the circle tool, by clicking on the circle in the <em>Toolbox</em> on the
left side of the application. Draw a circle on the canvas. It should look
something like this:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/lamp/lamp_inkscape.png" alt="lamp inkscape">
</div>
</div>
<div class="paragraph">
<p>Right click the circle and choose
<b class="menuref">Object Properties</b>.
The
<b class="menuref">Object Properties</b>
window will appear. Change the
<b class="menuref">Id</b>
of
the circle to <code>lamp</code> and click the
<b class="button">Set</b>
button. Save the image
as <code>lamp.svg</code>, in the same directory as the <code>lamp.cif</code> file.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-simulation-and-the-options-dialog">Simulation and the options dialog</h8>
<div class="paragraph">
<p>Right click the <code>lamp.cif</code> file and choose
<b class="menuref">Simulate CIF specification&#8230;&#8203;</b>
to start the CIF simulator. An
options dialog appears. In this case the defaults suffice, so click
<b class="button">OK</b>
to start the simulation. Initially, the visualization looks as
follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/lamp/lamp_sim_off.png" alt="lamp sim off">
</div>
</div>
<div class="paragraph">
<p>Using the
<b class="menuref">GUI input</b>,
click the button for
<b class="button">time delay</b>
and then the button for
<b class="button">tau</b>.
After performing these two
transitions, the visualization should look as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/lamp/lamp_sim_on.png" alt="lamp sim on">
</div>
</div>
<div class="paragraph">
<p>As you can see, the lamp is gray while it is off, and yellow while it is on.
Close the
<b class="menuref">GUI input</b>
to terminate the simulator. You may also close
the visualization window.</p>
</div>
<div class="paragraph">
<p>Now restart the simulator. In the
<b class="menuref">Simulator</b>
category, set the
<a href="#tools-cifsim-solver-chapter-endtime-maxdelay">Simulation end time</a> option to
<b class="menuref">Finite end time</b>.
You can leave the default value for
<b class="menuref">End time</b>.
In the
<b class="menuref">Input</b>
category, set the
<a href="#tools-cifsim-input-chapter-index">Input mode</a> option to
<b class="menuref">Automatic input mode</b>.
In the
<b class="menuref">Output</b>
category, enable
the <a href="#tools-cifsim-output-realtime-framerate">Frame rate</a> option and
keep the default frame rate value. Click
<b class="menuref">OK</b>
to start the simulation
again. This time, the simulator automatically chooses transitions. Furthermore,
<a href="#tools-cifsim-output-chapter-realtime">real-time simulation</a> is enabled, where
the model time is interpreted in seconds, and the visualization is regularly
updated. Using these options, SVG visualization essentially turns into an
SVG movie of the simulation of a flashing lamp. Simulation will automatically
stop after ten seconds, the default simulation end time. Once simulation
terminates, you may close the visualization window.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-simulation-using-tooldef">Simulation using ToolDef</h8>
<div class="paragraph">
<p>While the option dialog is useful for configuring simulation options, it is
often easier to use a <em>ToolDef</em> file to
<a href="#tools-scripting-chapter-intro">script</a> the execution of the CIF simulator.
Create a new file named <code>lamp.tooldef</code>, in the same directory as the other
files, and give it the following content:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">from &quot;lib:cif&quot; import *;

cifsim(
    &quot;lamp.cif&quot;,
    &quot;-t 10&quot;,
    &quot;-i auto&quot;,
    &quot;--frame-rate=20&quot;,
);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Don&#8217;t forget to save the file. Right-click the <code>lamp.tooldef</code> file and
choose
<b class="menuref">Execute ToolDef</b>
to execute the ToolDef script. This script
uses the exact same options as we manually configured in the option dialog, in
the previous section.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-svg">Scalable Vector Graphics (SVG)</h7>
<div class="paragraph">
<p>


The SVG visualization feature uses Scalable Vector Graphics (SVG) images.
<a href="http://www.w3.org/TR/SVG11/">SVG</a>
is a widely-deployed royalty-free standard
for two-dimensional vector graphics, developed by the
<a href="http://www.w3.org/">World Wide Web Consortium</a>
(W3C). SVG images consist of
three types of objects: vector graphic shapes (rectangles, circles, etc.),
raster images, and text. The benefit of vector images formats over raster image
formats, is that raster images are created with a fixed size, while vector
images contain a description of the image and can be rendered at any size
without loss of quality.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="tools-cifsim-output-svgviz-svg-svg11" class="paragraph">
<p>Multiple versions of the SVG standard exist. The CIF simulator uses the
free and open source
<a href="http://xmlgraphics.apache.org/batik/">Apache Batik SVG Toolkit</a>
to render SVG images. Batik supports
version 1.1 of the SVG specification.</p>
</div>
<div class="paragraph">
<p>
SVG image files are stored in an
<a href="http://en.wikipedia.org/wiki/XML">XML</a>-based file format. This means that
they can be edited with any text editor. However, it is often more convenient
to edit them with a drawing program that supports vector graphics, such as
<a href="http://www.adobe.com/products/illustrator.html">Adobe Illustrator</a>
or
<a href="#tools-cifsim-output-svgviz-chapter-inkscape">Inkscape</a>. Most modern web
browsers also support SVG images.</p>
</div>
<div class="paragraph">
<p>Since SVG images are essentially XML files, we get all the benefits of XML
for free. One of those benefits is that XML files represent tree structures,
which can be easily manipulated by applications. This is essential for the CIF
simulator. During initialization, the CIF simulator loads the SVG image
file that the user provided, and subsequently has access to the XML tree.
It then uses the aforementioned Batik toolkit to draw the SVG image
represented by the XML tree. Once the simulator starts taking transitions and
updates its <a href="#tools-cifsim-traces-state">state</a>, it can use the
information from the state to modify the XML tree. Changes to the XML tree then
result in an updated SVG image, the next time the image is rendered again.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="tools-cifsim-output-svgviz-svg-id" class="paragraph">
<p>In order to be able to modify particular objects (shapes, text labels, etc.) of
the SVG image, the simulator should be able to identify the objects that make
up the image. Here we once again reap the benefits of XML. All nodes (called
elements) in the XML tree can have an <code>id</code> attribute that specifies the
id (also called name or identity) of the element. As such, all SVG objects can
be identified using their unique id. The
<a href="#tools-cifsim-output-svgviz-svgout-id">SVG element id</a> section of the
<a href="#tools-cifsim-output-svgviz-chapter-svgout">CIF/SVG output mappings</a> page further explains the
use of SVG element ids.</p>
</div>
<div class="paragraph">
<p>

The website of Jakob Jenkov has a very nice
<a href="http://tutorials.jenkov.com/svg">SVG Tutorial</a>.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-inkscape">Inkscape</h7>
<div class="paragraph">
<p>

SVG images can best be edited with a drawing program that supports vector
graphics. One such program is
<a href="http://inkscape.org/">Inkscape</a>,
a free and
open source vector graphics editor that uses SVG as its native file format, and
is available for many platforms, including Microsoft Windows, Mac OS X, and
Linux. In this documentation, we&#8217;ll use Inkscape to create and edit SVG images.</p>
</div>
<div class="paragraph">
<p>It is beyond the scope of this document to explain how Inkscape works. For
that, see the
<a href="http://inkscape.org/">Inkscape website</a>.
Here is a screenshot of the Inkscape interface:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/inkscape/inkscape.png" alt="inkscape">
</div>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-changing-ids">Changing ids</h8>
<div class="paragraph">
<p>As described on the <a href="#tools-cifsim-output-svgviz-chapter-svg">page about SVG</a>,
every SVG object has an id. To change the id of an object in Inkscape, right
click on the object, and choose
<b class="menuref">Object Properties</b>.
The
<b class="menuref">Object Properties</b>
window will appear, which looks like this:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/inkscape/inkscape_props_xml.png" alt="inkscape props xml">
</div>
</div>
<div class="paragraph">
<p>In this window, you can change the object&#8217;s id, by entering a new id in the
<b class="menuref">Id</b>
field, and clicking the
<b class="button">Set</b>
button.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-xml-editor">XML editor</h8>
<div class="paragraph">
<p>Inkscape also features an XML editor, that can be used to view and edit the
underlying XML representation of the SVG image. The screenshot above also shows
Inkscape&#8217;s
<b class="menuref">XML Editor</b>
window, which can be opened via the
<b class="menuref">XML Editor&#8230;&#8203;</b>
item in the
<b class="menuref">Edit</b>
menu. The XML editor
can be useful to find out the exact structure of the XML tree, and to see the
precise definitions that were used to represent the objects that you created
on Inkscape&#8217;s canvas.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-inkscape-size">Document size</h8>
<div class="paragraph">
<p>It is recommended to always set the correct size of the image, before adding
any shapes or text labels. To do this, select
<b class="menuref">Document Properties&#8230;&#8203;</b>
from the
<b class="menuref">File</b>
menu, to open the
<b class="menuref">Document Properties</b>
window. On the
<b class="menuref">Page</b>
tab, we
recommend to set the
<b class="menuref">Units</b>
to
<b class="menuref">px</b>.
You can then enter
the
<b class="menuref">Width</b>
and
<b class="menuref">Height</b>
of the image.</p>
</div>
<div class="paragraph">
<p>By default, Inkscape always adds a layer to new images. When changing the size
of the image as described above, this layer gets a <code>transform</code> attribute
that can cause all kinds of trouble later on. There are several ways to get
rid of this <code>transform</code> attribute of the layer:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Select
<b class="menuref">Layers&#8230;&#8203;</b>
from the
<b class="menuref">Layer</b>
menu to show the
<b class="menuref">Layers</b>
panel. In that panel, select
<b class="menuref">Layer 1</b>
by
clicking on it. Then click the
<b class="menuref">Delete the current layer</b>
button
to remove the selected layer.</p>
</li>
<li>
<p>Use the
<b class="menuref">XML Editor</b>
to select the layer
(<code>&lt;svg:g id="layer1"</code>&#8230;&#8203; node). Then click the
<b class="menuref">Delete node</b>
button at the top of the
<b class="menuref">XML Editor</b>
window to remove the layer.
Alternatively, after selecting the layer, press the <kbd>Delete</kbd> key on the
keyboard to delete the selected layer.</p>
</li>
<li>
<p>Use the
<b class="menuref">XML Editor</b>
to select the layer
(<code>&lt;svg:g id="layer1"</code>&#8230;&#8203; node). Then, on the right, select the
<code>transform</code> attribute by clicking on it. Then click the
<b class="menuref">Delete attribute</b>
button at the top of the
<b class="menuref">XML Editor</b>
window to remove the attribute.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The first two approaches remove the layer, the third approach keeps the layer
and only removes the <code>transform</code> attribute.</p>
</div>
<div class="paragraph">
<p>Alternatively, there is also a way to avoid the <code>transform</code> attribute from
being added in the first place. Instead of using the
<b class="menuref">Document Properties</b>
window to change the size of the image, do
the following:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Use the
<b class="menuref">XML Editor</b>
to select the entire image
(<code>&lt;svg:svg</code>&#8230;&#8203; node).</p>
</li>
<li>
<p>Select the <code>width</code> attribute on the right, by clicking on it.</p>
</li>
<li>
<p>Change the value in the text area at the lower right corner of the window.</p>
</li>
<li>
<p>Click the
<b class="menuref">Set</b>
button to save the new width value. Alternatively,
after typing the new value, press <span class="keyseq"><kbd>Ctrl</kbd>+<kbd>ENTER</kbd></span> to save the
new width value.</p>
</li>
<li>
<p>Repeat for the <code>height</code> attribute.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-coordinate-systems">Coordinate systems</h8>
<div class="paragraph">
<p>The coordinate system used by Inkscape uses the lower left
corner of the canvas as origin, while the underlying SVG representation uses
the upper left corner of the canvas as origin. Also, Inkscape uses x and y
coordinates of objects relative to the outside of their border (called <em>stroke</em>
in Inkscape), while SVG uses x and y coordinates of objects relative to the
middle of their border. These are two most commonly encountered differences
between Inkscape and SVG. See the <a href="#tools-cifsim-output-svgviz-chapter-example-tank">tank example</a>
for some tips and tricks regarding the difference in coordinate systems.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-inkscape-textarea">Text areas</h8>
<div class="paragraph">
<p>When using the Inkscape text tool, select the tool, and left click once on the
canvas to add a text label. Once you added it, start typing text.</p>
</div>
<div class="paragraph">
<p>Inkscape also allows you to select the text tool, left click anywhere on the
canvas, drag the mouse pointer to another position, and only then release the
left mouse button. This creates a text area, where text is automatically
wrapped to multiple lines, so that it stays within the bounds of the text area.
This feature uses SVG <code>flowRoot</code> elements. These elements are defined in
version 1.2 of the SVG standard, which is currently still a working draft.
These elements are <em>not</em> supported by the CIF simulator, which only supports
version 1.1 of the SVG standard.</p>
</div>
<div class="paragraph">
<p>Using an SVG image with a <code>flowRoot</code> or other unsupported SVG feature,
results in the following error when the SVG file is
<a href="#tools-cifsim-output-svgviz-chapter-viewer">opened</a> in Eclipse:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">ERROR: SVG image file &quot;some_image.svg&quot; is not an SVG file, is an invalid SVG file, or contains unsupported SVG features.
CAUSE: invalid.element</code></pre>
</div>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG declarations</h7>
<div class="paragraph">
<p>



The connection between the <a href="#tools-cifsim-traces-state">state</a> of the CIF
specification and the SVG image can be specified by using CIF/SVG declarations
(sometimes also called SVG declarations, for simplicity). Such declarations can
be specified directly in the CIF specification. CIF/SVG declarations are an
extension to the CIF language, and can only be used to couple the model to the
image. They don&#8217;t influence the behavior of the model itself.</p>
</div>
<div class="paragraph">
<p>The CIF <a href="#tools-chapter-text-editor">text editor</a> provides full integration for
the CIF/SVG declarations extension, complete with syntax highlighting,
background validation, etc.</p>
</div>
<div class="sect7">
<h8 id="tools-declarations">Declarations</h8>
<div class="paragraph">
<p>The following types of CIF/SVG declarations are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svgfile">SVG file declarations</a>:
Specifies which SVG image file to use.</p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svgcopy">CIF/SVG copy declaration</a>:
Specifies that a part of the SVG image should be copied.</p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svgmove">CIF/SVG move declaration</a>:
Specifies that a part of the SVG image should be moved.</p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-svgout">CIF/SVG output mappings</a>:
Specifies how to update a certain property of an element of the SVG image.</p>
</li>
<li>
<p><a href="#tools-cifsim-input-svg-chapter-svgin">CIF/SVG input mappings</a>:
Specifies how interaction with the SVG image affects simulation.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-svgfile">SVG file declarations</h7>
<div class="paragraph">
<p>


Before any other CIF/SVG declarations can be specified, you need to indicate to
which SVG image (file) they apply, using an SVG file declaration. A typical SVG
file declaration looks like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;some_file.svg&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The SVG files are declared based on their file names. If possible, it is
recommended to use the same file name for the CIF specification and for the
SVG image, only with different file extensions. This way, it is easy to see
which images goes with which CIF specification.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-paths-2">Paths</h8>
<div class="paragraph">
<p>It is possible to use relative (or absolute) paths for the SVG files. For
instance:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;svg_files/some_file.svg&quot;;
svgfile &quot;../images/some_file.svg&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>For the first SVG file declaration, the tools will look for an <code>svg_files</code>
directory in the same directory as the CIF file, and for a <code>some_file.svg</code>
file in that <code>svg_files</code> directory. For the second SVG file declaration, the
tools will look for an <code>images</code> directory in the parent directory of the
directory that contains the CIF file, and for a <code>some_file.svg</code> file in that
<code>images</code> directory.</p>
</div>
<div class="paragraph">
<p>Files and directories are separated using slashes (<code>/</code>), regardless of the
used operating system. It is also allowed to use backslashes (<code>\</code>), which are
more common on Microsoft Windows operating systems, but they need to be escaped
as <code>\\</code> for this to work, making it easier to use slashes (<code>/</code>) instead.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-scoping-3">Scoping</h8>
<div class="paragraph">
<p>CIF/SVG file declarations (and all 'other' CIF/SVG declarations) can be
specified in all components. That is, they can be specified in the top level
scope of the specification, in groups and group definitions, as well as in
automata and automaton definitions. An SVG file declaration that is specified
in a certain scope applies to that scope, as well as all child scopes that
don&#8217;t have an SVG file declaration of their own. Additionally, all 'other'
CIF/SVG declarations (such as
<a href="#tools-cifsim-output-svgviz-chapter-svgout">SVG output mappings</a>) may include
a local SVG file declaration, that only applies to that specific CIF/SVG
declaration.</p>
</div>
<div class="paragraph">
<p>For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;file1.svg&quot;;

svgout id &quot;a&quot; attr &quot;b&quot; value 5;

svgout id &quot;c&quot; attr &quot;d&quot; value 6 file &quot;file2.svg&quot;;

group g:
  svgfile &quot;file3.svg&quot;;

  svgout id &quot;e&quot; attr &quot;f&quot; value 7;

  svgout id &quot;g&quot; attr &quot;h&quot; value 8;

  svgout id &quot;i&quot; attr &quot;j&quot; value 9 file &quot;file4.svg&quot;;

  group h:
    svgfile &quot;file5.svg&quot;;
  end

  group i:
    svgout id &quot;k&quot; attr &quot;l&quot; value 10;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The mapping for the SVG element with id <code>a</code> is declared in the top level
scope of the specification, and does not have a local SVG file declaration.
As such, the SVG file declaration from the top level scope (<code>file1.svg</code>)
applies to it. The mapping for the SVG element with id <code>b</code> is declared in
the same scope, but has a local SVG file declaration (<code>file2.svg</code>). The local
SVG file declaration (<code>file2.svg</code>) overrides the SVG file declaration from
the top level scope (<code>file1.svg</code>).</p>
</div>
<div class="paragraph">
<p>Group <code>g</code> also has an SVG file declaration (<code>file3.svg</code>). This overrides
the SVG file declaration from the top level scope (<code>file1.svg</code>). The SVG
file declaration from group <code>g</code> (<code>file3.svg</code>) thus applies to the
mappings for ids <code>e</code> and <code>g</code>, as they are declared in the same scope, and
don&#8217;t have local SVG file declarations. The mapping for SVG element id <code>i</code>
has a local SVG file declaration (<code>file4.svg</code>), and as such the SVG file
declaration from group <code>g</code> (<code>file3.svg</code>) does not apply to it.</p>
</div>
<div class="paragraph">
<p>The SVG file declaration (<code>file5.svg</code>) from group <code>g.h</code> does not apply to
any mappings. The simulator will show the image, but the image will not change
during simulation. A warning is printed to the console, to indicate the
potential problem.</p>
</div>
<div class="paragraph">
<p>Group <code>g.i</code> does not have an SVG file declaration, so the SVG file
declaration (<code>file3.svg</code>) from group <code>g</code> (the parent scope of group
<code>g.i</code>) applies to the mapping for SVG element id <code>k</code>.</p>
</div>
<div class="paragraph">
<p>See also the <a href="#tools-cif2cif-chapter-svg-file-into-decls">Push SVG file declarations into other CIF/SVG declarations</a> CIF to CIF
transformation.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-completeness-and-uniqueness">Completeness and uniqueness</h8>
<div class="paragraph">
<p>Every CIF/SVG declaration that is not itself an SVG file declaration, requires
an SVG file declaration, in its scope, in one of its ancestor scopes, or
locally in that CIF/SVG declaration itself.</p>
</div>
<div class="paragraph">
<p>In each scope, there may be at most one SVG file declaration.</p>
</div>
<div class="paragraph">
<p>In every scope (or component), in principle at most one SVG file declaration
may be specified. The exception is that for a single scope, specified in
multiple CIF files (when imports are used), if the SVG file declarations
refer to the same image file, they are merged. If however the two CIF files
refer to different image files, this is still considered an error. It is also
considered an error if two SVG file declarations are present in a single scope,
in a single file, regardless of whether they refer to the same image file or
not. In the end, after processing imports, for every scope there must be a
unique SVG file declaration, if one is declared at all.</p>
</div>
<div class="paragraph">
<p>If the same SVG image file is specified multiple times, in different SVG file
declarations, this is detected by the simulator, and the image will only be
shown once. For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgout id &quot;...&quot; attr &quot;...&quot; value 5 file &quot;some_file.svg&quot;;

svgout id &quot;...&quot; attr &quot;...&quot; value 6 file &quot;some_file.svg&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Even though both output mappings specify an SVG file locally, they use the same
file. The SVG image will thus only be shown once, and both mappings apply to
the same image.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-svgout">CIF/SVG output mappings</h7>
<div class="paragraph">
<p>




For each update of a single attribute of an element in the SVG image, an
<em>output mapping</em> is needed. An output mapping essentially defines a connection
between the CIF specification and the SVG image, for updating that specific
attribute of that specific element.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-simple">A simple output mapping</h8>
<div class="paragraph">
<p>Assume we have the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont pos der 1.0;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Where variable <code>pos</code> is the position of some object, say a box. Then the
following output mapping:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgout id &quot;box&quot; attr &quot;x&quot; value pos;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Keeps the value of the <code>x</code> attribute of the SVG element with id <code>box</code> equal
to the value of continuous variable <code>pos</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-syntax">Syntax</h8>
<div class="paragraph">
<p>The general syntax of CIF/SVG output mappings is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgout id &lt;id&gt; attr &lt;attr&gt; value &lt;value&gt;;
svgout id &lt;id&gt; attr &lt;attr&gt; value &lt;value&gt; file &lt;file&gt;;
svgout id &lt;id&gt; text        value &lt;value&gt;;
svgout id &lt;id&gt; text        value &lt;value&gt; file &lt;file&gt;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>svgout</code> keyword is followed by a specification of an SVG element
<a href="#tools-cifsim-output-svgviz-svg-id">id</a>. Every output mapping must
<a href="#tools-cifsim-output-svgviz-svgout-id">specify the id</a> of an SVG
element, and an SVG element with that id must exist in the SVG image. The
<code>id</code> indicates the element for which an attribute or text is to be updated.</p>
</div>
<div class="paragraph">
<p>The <code>id</code> is followed by a specification of what part of the SVG element is to
updated. That is, either an
<a href="#tools-cifsim-output-svgviz-svgout-attr">attribute</a> or
<a href="#tools-cifsim-output-svgviz-svgout-text">text</a> (label) is updated.</p>
</div>
<div class="paragraph">
<p>After that, the <a href="#tools-cifsim-output-svgviz-svgout-value">value</a> of the
attribute or text (label) is specified.</p>
</div>
<div class="paragraph">
<p>In the syntax examples above, we see that it is also allowed to declare an
optional local
<a href="#tools-cifsim-output-svgviz-chapter-svgfile">SVG file declaration</a>, that only
applies to that specific output declaration.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-id">SVG element id</h8>
<div class="paragraph">
<p>Every output mapping needs to specify the
<a href="#tools-cifsim-output-svgviz-svg-id">id</a> of the SVG element to update.
The id is checked, to make sure an SVG element with that id actually exists in
the SVG image.</p>
</div>
<div class="paragraph">
<p>Only valid SVG names may be used as ids. Valid SVG names start with a letter
(<code>a</code> to <code>z</code>, <code>A</code> to <code>Z</code>), an underscore (<code>_</code>), or a colon (<code>:</code>),
and may be followed by more of the same characters, as well as dashes (<code>-</code>),
dots (<code>.</code>), and numbers (<code>0</code> to <code>9</code>).</p>
</div>
<div class="paragraph">
<p>Ids must be put between double quotes. For instance, to use <code>some-name</code> as
id, it must be written as <code>"some-name"</code>.</p>
</div>
<div class="paragraph">
<p>Instead of using a hard coded SVG element id, it is also allowed to use an
expression that when evaluated results in the SVG element id. Such an
expression must evaluate to a <code>string</code> typed value, and must be statically
evaluable (must not refer to variables that can change value during simulation,
etc). For instance:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Hard coded SVG element id.
svgout id &quot;box&quot; attr &quot;width&quot; value ...;

// Computed SVG element id.
const string c = &quot;bo&quot;;
svgout id c + &quot;x&quot; attr &quot;width&quot; value ...;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first output mapping applies to the SVG element with the id <code>box</code>. The
<code>box</code> id is hard coded into the output mapping. The second
output mapping uses the expression <code>c + "x"</code> to specify the SVG element id.
Once the expression is evaluated (its value is computed), this results in the
<code>string</code> typed value <code>"box"</code>. As such, the second mapping applies to the
SVG element with id <code>box</code> as well.</p>
</div>
<div class="paragraph">
<p>The expressions may also refer to for instance algebraic parameters of
automaton definitions. Since different values can be given to the parameters
for each instantiation, this allows the SVG element id to vary for the
different instantiations of the automaton definition. This particular usage
allows for reuse and scalable solutions. The
<a href="#tools-cifsim-output-svgviz-chapter-example-lamps">lamps example</a> and
<a href="#tools-cifsim-output-svgviz-chapter-example-workstation">workstation example</a>
are good examples of this usage. This usage is often combined with
<a href="#tools-cifsim-output-svgviz-chapter-svgcopy">CIF/SVG copy declarations</a> and
<a href="#tools-cifsim-output-svgviz-chapter-svgmove">CIF/SVG move declarations</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-attr">SVG attribute name</h8>
<div class="paragraph">
<p>Every output mapping needs to specify the name of the attribute of the SVG
element to update (or <code>text</code>, see the
<a href="#tools-cifsim-output-svgviz-svgout-text">Text labels</a> section).
Similarly to specifying ids, attribute names must be valid SVG names. They also
need to be put between double quotes. Unlike SVG element ids, it is not
possible to use expressions to specify attribute names. That is, only hard
coded names can be used to specify attribute names.</p>
</div>
<div class="paragraph">
<p>It is not allowed to change the ids of SVG elements, as it could lead to
duplicate or missing ids. As such, output mappings for the <code>id</code> attribute
(in any casing) are explicitly not supported. Similarly, changing the <code>style</code>
attribute (in any casing) using an output mapping is explicitly not supported,
to avoid conflicting style changes. See also the
<a href="#tools-cifsim-output-svgviz-svgout-svgcss">SVG presentation attributes vs CSS style attributes</a> section for more
information about the <code>style</code> attribute.</p>
</div>
<div class="paragraph">
<p>The supported attributes for an SVG element depend on what kind of element it
is. For instance, a <code>rect</code> element can have an <code>x</code> and <code>y</code> position, a
<code>width</code> and <code>height</code>, a <code>fill</code> color, etc. A <code>g</code> element (a group)
however, does not support those position attributes. It is beyond the scope of
this document to go into more detail. The software however, will warn about
using attribute names that are not supported according to the SVG standard (to
catch simple spelling mistakes), and specifying attributes on elements that
don&#8217;t support them. Consult the official
<a href="http://www.w3.org/TR/SVG11/">SVG specification</a>
for further details. The
<a href="#tools-cifsim-output-svgviz-examples">examples</a> showcase several
commonly used attributes as well.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-svgcss">SVG presentation attributes vs CSS style attributes</h8>
<div class="paragraph">
<p>SVG uses two kinds of attributes: SVG presentation attributes, and CSS style
attributes. For instance, in the following partial SVG image:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="svg">&lt;rect fill=&quot;red&quot;        id=&quot;rect1&quot; width=&quot;25&quot; height=&quot;25&quot; x=&quot;65&quot; y=&quot;5&quot;/&gt;
&lt;rect style=&quot;fill:red;&quot; id=&quot;rect2&quot; width=&quot;25&quot; height=&quot;25&quot; x=&quot;15&quot; y=&quot;5&quot;/&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Rectangle <code>rect1</code> uses the SVG presentation attribute <code>fill</code> to specify the
fill color the rectangle. Rectangle <code>rect2</code> uses the CSS style attribute
<code>fill</code> to specify the fill color the rectangle. The SVG presentation
attributes are all direct attributes of the SVG element. CSS style attributes
on the other hand, are always part of the SVG presentation attribute <code>style</code>.</p>
</div>
<div class="paragraph">
<p><a href="https://en.wikipedia.org/wiki/Cascading_Style_Sheets">CSS</a>
stands for
<em>Cascading Style Sheets</em>, and it is a style sheet language used
for describing the look and formatting of a document. It&#8217;s best known for its
use in styling web pages written in
<a href="https://en.wikipedia.org/wiki/HTML">HTML</a>.
Like SVG, CSS is an international
standard developed and maintained by the
<a href="http://www.w3.org/">World Wide Web Consortium</a>
(W3C). SVG reuses the CSS standard for its CSS style
attributes. The most commonly used attributes for certain elements are also
available in the SVG standard as SVG presentation attributes. Furthermore, SVG
adds additional presentation attributes not found in CSS.</p>
</div>
<div class="paragraph">
<p>If an attribute is specified on an element using both an SVG presentation
attribute, and a CSS style attribute, the CSS style attribute usually takes
precedence. The output mappings handle all of this automatically and
transparently. That is, you just specify the attribute name in the header of
the output mapping, and the simulator makes sure the proper attribute is
update, regardless of whether it is an SVG presentation attribute, or a CSS
style attribute. It is explicitly not supported to change the <code>style</code>
attribute directly (using an output mapping), in order to avoid conflicting
style changes when other output mappings update CSS style attributes that are
part of that same <code>style</code> SVG presentation attribute.</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-text">Text labels</h8>
<div class="paragraph">
<p>Changing the text of text labels is a special case, as text is not stored in
attributes. Consider the following partial SVG image, which contains a text
label (created using <a href="#tools-cifsim-output-svgviz-chapter-inkscape">Inkscape</a>,
and with some of the irrelevant details omitted):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="svg">&lt;text x=&quot;5&quot; y=&quot;5&quot; id=&quot;text1&quot; style=&quot;font-size:16px;&quot;&gt;
  &lt;tspan x=&quot;5&quot; y=&quot;5&quot; id=&quot;tspan2&quot;&gt;
    The actual text.
  &lt;/tspan&gt;
&lt;/text&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here we see a <code>text</code> element with id <code>text1</code>, which contains a <code>tspan</code>
element with id <code>tspan2</code>. The <code>tspan</code> element contains some text. To change
the text of this text label, use one of the following mappings:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgout id &quot;text1&quot; text value ...;

svgout id &quot;tspan2&quot; text value ...;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, instead of the <code>attr</code> keyword followed by the name of the attribute, we
simply specify the <code>text</code> keyword. We can either use the id of the <code>text</code>
element, or the id of the <code>tspan</code> element. More precisely, we can use the id
of an element that contains text (such as the <code>tspan</code> element in our
example), or an element (such as the <code>text</code> element in our example) that has
a single child, which contains text, or an element that has a single child,
which has an single child, which contains text, etc.</p>
</div>
<div class="paragraph">
<p>In practice, it is usually the easiest to use the
<b class="menuref">Object Properties</b>
dialog of <a href="#tools-cifsim-output-svgviz-chapter-inkscape">Inkscape</a>, to get the
properties of the text label. The
<b class="menuref">Id</b>
that is then shown, is the id of the <code>text</code> element.</p>
</div>
<div class="paragraph">
<p>Note that Inkscape can create
<a href="#tools-cifsim-output-svgviz-inkscape-textarea">text areas</a> (SVG <code>flowRoot</code> elements),
which are not supported by the CIF tooling.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-value">Output mapping value</h8>
<div class="paragraph">
<p>In order for an output mapping to be able to update attributes or text labels,
it needs a value. The
<a href="#tools-cifsim-output-svgviz-svgout-simple">simple output mapping</a> example
already showed how
a value can be specified. This section further explains the details of the
specification of such values.</p>
</div>
<div class="paragraph">
<p>The <code>value</code> keyword is followed by an expression. This expression may
for instance be a literal value, such as <code>1</code>, <code>true</code>, <code>1.0</code>,
<code>"some text"</code>, or <code>[1, 2]</code>. At first, it might not seem useful to use a
literal as a value for an output mapping, since the mapping will then produce
the same value every time it is applied. However, the
<a href="#tools-cifsim-output-svgviz-chapter-example-rate">rate example</a> shows why this can in fact be
very useful.</p>
</div>
<div class="paragraph">
<p>The expressions however, may also contain references to variables (discrete,
continuous, or algebraic), functions, constants, locations, etc. For instance,
we could use the value of a continuous variable and multiply it by two, by
using <code>x * 2</code> as expression, assuming that the continuous variable is named
<code>x</code>. Since we may refer to the <a href="#tools-cifsim-traces-state">state</a> of
the CIF specification, the value of the expression can change as the simulation
continues, resulting in different values being mapped to the image.</p>
</div>
<div class="paragraph">
<p>The expressions can also include <code>if</code> expressions, which are particularly
powerful in this context. Using <code>if</code> expressions, a different value can be
used for several different conditions. See the
<a href="#tools-cifsim-output-svgviz-chapter-example-workstation">workstation example</a> for an example of using
<code>if</code> expressions in an output mapping.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-quote-escape">Quoting and escaping</h8>
<div class="paragraph">
<p>The value expression of an output mapping may be of any type. The result of
evaluating the expression is converted to a textual representation that closely
resembles the textual syntax of CIF, before using it to set the value of an
attribute, or the text of a text label. For string literals this means that the
text is escaped, and double quotes are added. If however the result of the
expression is a <code>string</code> typed value, then that string is used 'as is'
(without quoting, and without escaping). Thus, consider the following examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgout id &quot;...&quot; attr &quot;...&quot; value [&quot;a\&quot;b&quot;];
svgout id &quot;...&quot; attr &quot;...&quot; value &quot;a\&quot;b&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value of the first output mapping is a list that contains a single string
value, while the value of the second output mapping is a string value directly.
This results in the following texts being used as values of the attributes:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">[&quot;a\&quot;b&quot;]
a&quot;b</code></pre>
</div>
</div>
<div class="paragraph">
<p>That is, in general string values are quoted and escaped, as is the case for
the first example, where the result is a list. However, if the entire result
is a string, as is the case with the second example, the string value is used
'as is', without quoting and without escaping.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-whitespace">Whitespace handling</h8>
<div class="paragraph">
<p>If the textual result of an output mapping contains a new line character (for
instance due to including <code>\n</code> in a string literal or
<a href="#tools-cifsim-output-print-ref-fmt-pattern">format pattern</a>), the new
line character is ignored by SVG. Furthermore, tabs (<code>\t</code>) are replaced by a
single space character. Finally,
<a href="http://www.w3.org/TR/SVG/text.html#WhiteSpace">by default</a>
consecutive
spaces (including tabs) are merged together into a single space, and spaces at
the beginning and end of the output of a mapping are discarded by SVG.</p>
</div>
<div class="paragraph">
<p>This essentially renders <code>\n</code> and <code>\t</code> useless, as the first is ignored,
and for the second spaces can be used instead.</p>
</div>
<div class="paragraph">
<p>This also means that it is not possible to set multiple lines of text using a
single output mapping. This is a fundamental restriction of SVG, not of CIF/SVG
output mappings. In order to set multiple lines of text, multiple output
mappings are needed, where each mapping sets a different text label (a
different line).</p>
</div>
<div class="paragraph">
<p>Note that if you enter multiple lines of text in
<a href="#tools-cifsim-output-svgviz-chapter-inkscape">Inkscape</a>, this results in a
single <code>text</code> element, with multiple <code>tspan</code> child elements. The actual
text of such <code>tspan</code> elements can then be updated using an output mapping
for each <code>tspan</code> element. The benefit over multiple text labels (multiple
<code>text</code> elements with a single <code>tspan</code> child element each) is that the one
<code>text</code> element can be moved, making all the <code>tspan</code> child elements
automatically move with it. That is, the lines of text are kept together by
Inkscape.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-unique">Uniqueness of output mappings</h8>
<div class="paragraph">
<p>All output mappings must be unique, per SVG image. That is, no two mappings may
use the exact same SVG element id and attribute name. Similarly, no two
mappings may update the same text. That is, for the example above, it is not
allowed to specify two mappings for the text of the SVG element with id
<code>text1</code>. However, since both elements <code>text1</code> and <code>tspan1</code> have the same
text, it is also not allowed to specify output mappings for the text of those
two elements.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-svgout-appl">Application</h8>
<div class="paragraph">
<p>SVG output mappings are applied for <a href="#tools-cifsim-traces-state">states</a>
<a href="#tools-cifsim-output-realtime-frames">frames</a>, throughout simulation.
Their first application is after
<a href="#tools-cifsim-output-svgviz-chapter-svgcopy">copy declarations</a> and
<a href="#tools-cifsim-output-svgviz-chapter-svgmove">move declarations</a> declarations
have been applied. For more information, see the
<a href="#tools-cifsim-output-svgviz-simulation-order">Application order</a> section.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-svgcopy">CIF/SVG copy declaration</h7>
<div class="paragraph">
<p>




A CIF/SVG copy declaration can be used to create copies of existing graphical
elements of an SVG image. This page explains the technical details of such
copy declarations. For concrete examples, see the
<a href="#tools-cifsim-output-svgviz-chapter-example-lamps">lamps example</a> or the
<a href="#tools-cifsim-output-svgviz-chapter-example-buffers-products">buffers/products example</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-example-2">Example</h8>
<div class="paragraph">
<p>Consider the following SVG file:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="svg">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;250&quot; height=&quot;250&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;rect style=&quot;fill:red;&quot;   id=&quot;rect&quot;  width=&quot;100&quot; height=&quot;100&quot; x=&quot;20&quot; y=&quot;20&quot;/&gt;
  &lt;g id=&quot;grp&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rect2&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
  &lt;rect style=&quot;fill:blue;&quot;  id=&quot;rect3&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;80&quot; y=&quot;80&quot;/&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>It features three rectangles, with ids <code>rect</code>, <code>rect2</code>, and <code>rect3</code>, each
with the same size. They have different <code>fill</code> colors and positions. The
second rectangle is enclosed in a group with id <code>grp</code>. Also consider the
following CIF file:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;svgcopy.svg&quot;;

svgcopy id &quot;rect&quot; pre &quot;a&quot;;
svgcopy id &quot;grp&quot; post &quot;b&quot;;
svgcopy id &quot;rect3&quot; pre &quot;_&quot; post &quot;x&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The effect of the copy declarations on the SVG image is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="svg">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;250&quot; height=&quot;250&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;rect style=&quot;fill:red;&quot;   id=&quot;arect&quot;   width=&quot;100&quot; height=&quot;100&quot; x=&quot;20&quot; y=&quot;20&quot;/&gt;
  &lt;rect style=&quot;fill:red;&quot;   id=&quot;rect&quot;    width=&quot;100&quot; height=&quot;100&quot; x=&quot;20&quot; y=&quot;20&quot;/&gt;
  &lt;g id=&quot;grpb&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rect2b&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
  &lt;g id=&quot;grp&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rect2&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
  &lt;rect style=&quot;fill:blue;&quot;  id=&quot;_rect3x&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;80&quot; y=&quot;80&quot;/&gt;
  &lt;rect style=&quot;fill:blue;&quot;  id=&quot;rect3&quot;   width=&quot;100&quot; height=&quot;100&quot; x=&quot;80&quot; y=&quot;80&quot;/&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>





</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-syntax">Syntax</h8>
<div class="paragraph">
<p>The general syntax of CIF/SVG copy declarations is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgcopy id &lt;orig-elem-id&gt; pre &lt;prefix&gt;;

svgcopy id &lt;orig-elem-id&gt; post &lt;postfix&gt;;

svgcopy id &lt;orig-elem-id&gt; pre &lt;prefix&gt; post &lt;postfix&gt;;

svgcopy id &lt;orig-elem-id&gt; pre &lt;prefix&gt; file &quot;...&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>svgcopy</code> keyword is followed by a specification of an SVG element
<a href="#tools-cifsim-output-svgviz-svg-id">id</a>. Every copy declaration must
<a href="#tools-cifsim-output-svgviz-svgout-id">specify the id</a> of an SVG
element, and an SVG element with that id must exist in the original SVG image,
or must exist after applying one of the other copy declarations of the same
CIF specification. The <code>id</code> indicates the element that is to be copied.</p>
</div>
<div class="paragraph">
<p>The prefix and postfix are both optional, but at least one of them must be
specified. The prefix and postfix are used to generate unique ids for the
copied elements. The prefix (if any) is prepended to the ids of the copied
elements, while the postfix (if any) is appended to the ids of the copied
elements. Prefixes (if specified) must be valid SVG name prefixes, which means
they must be valid SVG names, just as
<a href="#tools-cifsim-output-svgviz-svgout-id">SVG element ids</a>.
Similarly, postfixes (if specified) must be valid SVG name postfixes, which
means they must be valid SVG names, but may start with dashes (<code>-</code>), dots
(<code>.</code>), and numbers (<code>0</code> to <code>9</code>). Similar to
<a href="#tools-cifsim-output-svgviz-svgout-id">ids</a>, expressions may be
used for both prefixes and postfixes, as long as they result in a <code>string</code>
typed value when they&#8217;re evaluated.</p>
</div>
<div class="paragraph">
<p>If we look at the rectangles example above, we see that the <code>rect</code> element is
copied, and that the <code>id</code> of the copied element is prefixed with <code>a</code>,
resulting in <code>arect</code> as <code>id</code> of the copy. Similarly, <code>rect3</code> is prefixed
with <code>_</code> and postfixed with <code>x</code> resulting in <code>_rect3x</code> as <code>id</code> of the
copy.</p>
</div>
<div class="paragraph">
<p>The <code>grp</code> element is copied as well, with a <code>b</code> postfix. This results in
a copied group with <code>grpb</code> as its <code>id</code>. Group <code>grp</code> also contains the
rectangle with id <code>rect2</code>. When an element is copied, all its contents are
copied as well. That is, the copy is recursive. This means that the <code>rect2</code>
element is copied as well, and that copy is also given a <code>b</code> postfix,
resulting in <code>rect2b</code> as its <code>id</code>.</p>
</div>
<div class="paragraph">
<p>In the syntax examples above, we see that it is also allowed to declare a
local <a href="#tools-cifsim-output-svgviz-chapter-svgfile">SVG file declaration</a>, that
only applies to that specific copy declaration.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-placement">Placement</h8>
<div class="paragraph">
<p>The copies are added to the SVG image, as siblings of their originals. That is,
the copies are added just before their originals. In the rectangles example
above, this means that the <code>arect</code> copy is added just before the <code>rect</code>
original, and the <code>grpb</code> copy is added just before the <code>grp</code> original.</p>
</div>
<div class="paragraph">
<p>The order of the <code>rect</code>, <code>rect2</code>, and <code>rect3</code> rectangles is important,
in that it determines their <em>rendering order</em>. Elements that are listed first,
get <em>rendered</em> or <em>painted</em> first. Subsequent elements are painted on top of
previously painted elements. Thus, the red <code>rect</code> rectangle is painted first,
and is partially covered by the green <code>rect2</code> rectangle, which is painted
second and is partially covered by the blue <code>rect3</code> rectangle, which is
painted third.</p>
</div>
<div class="paragraph">
<p>By including copies near their originals (as siblings), the copies get a
similar rendering order.</p>
</div>
<div class="paragraph">
<p>It is not allowed to copy the root element (the element with id <code>root</code> in the
rectangles example above), as that would result in two root elements, which is
not allowed by the SVG standard.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-uniqueness-3">Uniqueness</h8>
<div class="paragraph">
<p>All copied elements (the element that is copied, its children, the children of
its children, etc) have their ids pre- and postfixed to create their new ids.
These ids must be unique in the SVG image. That is, the new ids must not yet
exist in the original SVG image, or have been used for previously copied
elements. The unique ids are requires to ensure that we can still uniquely
identify all elements by their ids, and we can thus use the ids to uniquely
indicate to which elements other CIF/SVG declarations apply.</p>
</div>
<div class="paragraph">
<p>Consider once again the rectangles example above:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="svg">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;250&quot; height=&quot;250&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;rect style=&quot;fill:red;&quot;   id=&quot;rect&quot;  width=&quot;100&quot; height=&quot;100&quot; x=&quot;20&quot; y=&quot;20&quot;/&gt;
  &lt;g id=&quot;grp&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rect2&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
  &lt;rect style=&quot;fill:blue;&quot;  id=&quot;rect3&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;80&quot; y=&quot;80&quot;/&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>We add the following copy declaration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgcopy id &quot;rect&quot; post &quot;2&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This would result in the <code>rect</code> element being copied, and the copy being
given a <code>rect2</code> id. However, there is already an element with that id. As
such, the copy declaration is illegal.</p>
</div>
<div class="paragraph">
<p>At least a prefix or a postfix is required for every copy declaration, as
otherwise the new ids would be identical to the original ids.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-overlap">Overlap</h8>
<div class="paragraph">
<p>Consider the following SVG file:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;250&quot; height=&quot;250&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;g id=&quot;g&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;r&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>We use the following copy declarations:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgcopy id &quot;g&quot; post &quot;a&quot;;
svgcopy id &quot;r&quot; post &quot;b&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Both the <code>g</code> element and the <code>r</code> element are copied. However, the <code>r</code>
element is a part of the <code>g</code> element. Therefore, the <code>r</code> element is copied
twice, once for the copy of that element itself, and once for the copy of its
parent (<code>g</code>). This leads to the following SVG image:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;250&quot; height=&quot;250&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;g id=&quot;ga&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;ra&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
  &lt;g id=&quot;g&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rb&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;r&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>However, if we switch the order of the copies, we get:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;250&quot; height=&quot;250&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;g id=&quot;ga&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rba&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;ra&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
  &lt;g id=&quot;g&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rb&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;r&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Copying an element twice by copying the element itself (e.g. <code>g</code>), but also
copying an element that it contains (e.g. <code>r</code>) is not recommended. As seen
above, the outcome depends on the order, and can be very confusing. CIF gives
a warning in case such overlapping copies are used. Generally, instead of
copying the element twice, what is really wanted, is to copy the copied
element. This can be done as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgcopy id &quot;g&quot; post &quot;a&quot;;
svgcopy id &quot;ra&quot; post &quot;b&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>And this results in the following SVG file:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;250&quot; height=&quot;250&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;g id=&quot;ga&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rab&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;ra&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
  &lt;g id=&quot;g&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;r&quot; width=&quot;100&quot; height=&quot;100&quot; x=&quot;50&quot; y=&quot;50&quot;/&gt;
  &lt;/g&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>See the <a href="#tools-cifsim-output-svgviz-chapter-example-buffers-products">buffers/products example</a> for a
more concrete example of the usefulness of copying copied elements.</p>
</div>
<div class="paragraph">
<p>Not that overlap is only detected for copying an element and an element that
it contains. Copying the same element multiple times is perfectly valid and
useful, and does not result in warnings.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-application">Application</h8>
<div class="paragraph">
<p>Copy declarations are only applied once, at the beginning of the simulation,
before any of the other CIF/SVG declarations have been applied. For more
information, see the <a href="#tools-cifsim-output-svgviz-simulation-order">Application order</a>
section.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-svgmove">CIF/SVG move declaration</h7>
<div class="paragraph">
<p>




A CIF/SVG move declaration can be used to move parts of an SVG image to a
certain position, regardless of transformations applied to the elements that
are moved, or any surrounding groups and layers, etc. This page explains the
technical details of such move declarations. For a concrete example, see the
<a href="#tools-cifsim-output-svgviz-chapter-example-lamps">lamps example</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-example-3">Example</h8>
<div class="paragraph">
<p>Consider the following SVG file:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="svg">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;400&quot; height=&quot;400&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;g id=&quot;grp1&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rect1&quot; width=&quot;20&quot; height=&quot;20&quot; x=&quot;5&quot; y=&quot;10&quot;
          transform=&quot;translate(15, 20)&quot;/&gt;
  &lt;/g&gt;
  &lt;g id=&quot;grp2&quot; transform=&quot;scale(5, 2)&quot;&gt;
    &lt;rect style=&quot;fill:blue;&quot; id=&quot;rect2&quot; width=&quot;20&quot; height=&quot;20&quot; x=&quot;5&quot; y=&quot;10&quot;
          transform=&quot;translate(15, 20)&quot;/&gt;
  &lt;/g&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/svgmove/svgmove.png" alt="svgmove">
</div>
</div>
<div class="paragraph">
<p>It features a group <code>grp1</code>, with a green rectangle <code>rect1</code>. It is 20 by 20
pixels in size. Its position is 20 pixels from the left (<code>x</code> is 5, but the
horizontal translation is 15 pixels) and 30 pixels from the top (<code>y</code> is 10,
but the vertical translation is 20 pixels).</p>
</div>
<div class="paragraph">
<p>Group <code>grp2</code> and rectangle <code>rect2</code> are similar. Rectangle <code>rect2</code> is
blue, and group <code>grp2</code> is scaled 5 times horizontally, and 2 times
vertically. This means that rectangle <code>rect2</code> is 100 by 40 pixels in size
(5 times 20, and 2 times 20). It also means that the position of <code>rect2</code>
is 100 pixels from the left (5 times 20) and 60 pixels from the top (2 times
30).</p>
</div>
<div class="paragraph">
<p>Also consider the following CIF file:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;svgmove.svg&quot;;

svgmove id &quot;rect1&quot; to 10, 10;
svgmove id &quot;rect2&quot; to 10, 50;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The upper left corner of the bounding box of rectangle <code>rect1</code> is moved to
10 pixels from the left side, and 10 pixels from the top. The upper left corner
of the bounding box of rectangle <code>rect2</code> is moved to 10 pixels from the left
side, and 50 pixels from the top. The effect of the move declarations on the
SVG image is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="svg">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;400&quot; height=&quot;400&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;g id=&quot;grp1&quot;&gt;
    &lt;rect style=&quot;fill:green;&quot; id=&quot;rect1&quot; width=&quot;20&quot; height=&quot;20&quot; x=&quot;5&quot; y=&quot;10&quot;
          transform=&quot;translate(15, 20) translate(-10.000000,-20.000000)&quot;/&gt;
  &lt;/g&gt;
  &lt;g id=&quot;grp2&quot; transform=&quot;scale(5, 2)&quot;&gt;
    &lt;rect style=&quot;fill:blue;&quot; id=&quot;rect2&quot; width=&quot;20&quot; height=&quot;20&quot; x=&quot;5&quot; y=&quot;10&quot;
          transform=&quot;translate(15, 20) translate(-18.000000,-5.000000)&quot;/&gt;
  &lt;/g&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/svgmove/svgmove.out.png" alt="svgmove.out">
</div>
</div>
<div class="paragraph">
<p>Note the translations that have been added to the <code>transform</code> attributes of
the rectangles. The additional translation for rectangle <code>rect1</code> is -10 in
the x direction and -20 in the y direction, as the rectangle has been moved
from position (20, 30) to position (10, 10).</p>
</div>
<div class="paragraph">
<p>Rectangle <code>rect2</code> has been moved from position (100, 60) to position
(10, 50). You might have expected a horizontal translation of -90 and a
vertical translation of -10. However, its added translation is for -18 pixels
horizontally, and -5 pixels vertically. This is because the scaling applies to
this translation as well, and 5 * 18 = 90, and 2 * 5 = 10.</p>
</div>
<div class="paragraph">
<p>The scaling of the surrounding group complicates the calculations for the
transformations of its children (<code>rect2</code> in this case). Moving elements to
certain positions becomes more and more complicated when the elements
themselves have transformations, their parents have transformations, the
parents of their parents have transformations, etc. This especially holds for
non-translation transformations, such as <code>scale</code>, <code>rotate</code>, etc. The
CIF/SVG move declarations make moving easy, by allowing you to specify the
target position, regardless of the existence of such transformations.</p>
</div>
<div class="paragraph">
<p>







</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-syntax-2">Syntax</h8>
<div class="paragraph">
<p>The general syntax of CIF/SVG move declarations is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgmove id &lt;id&gt; to &lt;x&gt;, &lt;y&gt;;

svgmove id &lt;id&gt; to &lt;x&gt;, &lt;y&gt; file &quot;...&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>svgmove</code> keyword is followed by a specification of an SVG element
<a href="#tools-cifsim-output-svgviz-svg-id">id</a>. Every move declaration must
<a href="#tools-cifsim-output-svgviz-svgout-id">specify the id</a> of an SVG
element, and an SVG element with that id must exist in the SVG image. The
<code>id</code> indicates the element that is to be moved.</p>
</div>
<div class="paragraph">
<p>The x and y target coordinates are both mandatory, and indicate the coordinates
of the upper left corner of the bounding box of element that is being moved,
relative to the upper left corner of the canvas, after the move is completed.
Similar to <a href="#tools-cifsim-output-svgviz-svgout-id">ids</a>,
expressions may be used for both the x and y coordinates, as long as they
result in a <code>int</code> or <code>real</code> typed value when they&#8217;re evaluated. That is,
the x and y coordinates must be numeric.</p>
</div>
<div class="paragraph">
<p>In the syntax examples above, we see that it is also allowed to declare a
local <a href="#tools-cifsim-output-svgviz-chapter-svgfile">SVG file declaration</a>, that
only applies to that specific move declaration.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-moving-graphical-elements">Moving graphical elements</h8>
<div class="paragraph">
<p>In order for an element to be moved, it must have a graphical representation.
Elements that have a graphical representation include rectangles, paths, text
labels, groups, etc. However, certain elements don&#8217;t have a graphical
representation, and thus can not be moved. An example of elements that can not
be moved are the <code>tspan</code> sub-elements of <code>text</code> elements. The <code>tspan</code>
sub-elements don&#8217;t have graphical representations of their own, they are part
of the text labels, and only the <code>text</code> elements have graphical
representations.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-conflicting-transformations">Conflicting transformations</h8>
<div class="paragraph">
<p>The SVG standard allows for powerful
<a href="http://www.w3.org/TR/SVG11/coords.html#TransformAttribute">transformations</a>,
including the <code>scale</code> and <code>matrix</code> transformations. Now assume we use a
<code>scale(0, 0)</code> transformation. Then all coordinates are multiplied by zero,
always resulting in zero. As such, the entire image is scaled into zero by
zero pixels. In such cases, there is no translation that can be added to an
element, that after application of the scaling transformation, moves it to a
certain position. Thus, if such conflicting transformations are present, the
move can not be accomplished, and the CIF/SVG move declaration is considered
illegal. It should be noted however, that such conflicting transformations are
rare, and usually indicate an error has been made in those transformations.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-application-2">Application</h8>
<div class="paragraph">
<p>Move declarations are only applied once, at the beginning of the simulation,
after the <a href="#tools-cifsim-output-svgviz-chapter-svgcopy">copy declarations</a> have
been applied. For more information, see the
<a href="#tools-cifsim-output-svgviz-simulation-order">Application order</a> section.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-simulation">Simulation of SVG visualizations</h7>
<div class="paragraph">
<p>
Once a CIF specification with CIF/SVG declarations, and the SVG image or images
are available, it is time to start simulating the CIF specification with SVG
visualization. This page discusses the following simulation related topics:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-svgviz-simulation-order">Application order</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-simulation-option">SVG visualization option</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-simulation-demos">Demonstrations</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-simulation-order">Application order</h8>
<div class="paragraph">
<p>When the simulator is started, the SVG image is loaded. First, the
<a href="#tools-cifsim-output-svgviz-chapter-svgcopy">CIF/SVG copy declarations</a> are
applied, to ensure all elements exist. For copies of copied elements, the
former are applied after the latter, to ensure the elements that need to be
copied actually exist. Besides that, the copy declarations from a CIF file
are applied in the order in which they are specified (after
<a href="#tools-cif2cif-chapter-elim-comp-def-inst">elimination of component definition/instantiation</a>).
The copy declarations are only applied once.</p>
</div>
<div class="paragraph">
<p>After the copy declarations, the
<a href="#tools-cifsim-output-svgviz-chapter-svgmove">CIF/SVG move declarations</a>
are applied. The move declarations from a CIF file are applied in the order in
which they are specified (after
<a href="#tools-cif2cif-chapter-elim-comp-def-inst">elimination of component definition/instantiation</a>).
The move declarations are only applied once.</p>
</div>
<div class="paragraph">
<p>The <a href="#tools-cifsim-output-svgviz-chapter-svgout">CIF/SVG output mappings</a> are
applied after that, for the initial <a href="#tools-cifsim-traces-state">state</a>.
After the output mappings have been applied, the resulting SVG image is shown
by the simulator. The output mappings are applied again and again, as the state
of the CIF model changes.</p>
</div>
<div class="paragraph">
<p>The output mappings from a CIF file are applied in the order in
which they are specified (after
<a href="#tools-cif2cif-chapter-elim-comp-def-inst">elimination of component definition/instantiation</a>).
Note however, that the order does not matter, as all output mappings are
<a href="#tools-cifsim-output-svgviz-svgout-unique">unique</a> and independent of each
other.</p>
</div>
<div class="paragraph">
<p>Each mapping that is applied, results in an update of an attribute or text
label. Either the new value is different from the previous value, or the value
is updated to the value that was already there. The results of the mappings
are cumulative. That is, the first mapping is applied to the original SVG
image, the second mapping is applied to the image that resulted from applying
the first mapping, the third mapping is applied to the image that resulted
from applying the second mapping, etc.</p>
</div>
<div class="paragraph">
<p>During simulation, the simulator provides states to the SVG visualizer, which
applies the mappings to each of those states, in order to generate
<a href="#tools-cifsim-output-realtime-frames">frames</a>. Whenever the
mappings are applied, they are all applied, one after the other. Between the
application of the individual output mappings, the display is never updated.
That is, only after all mappings are applied, is the visualization updated.
This assures that the images are in a consistent state when they are rendered.</p>
</div>
<div class="paragraph">
<p>By changing the <code>width</code> and <code>height</code> attributes of the root <code>svg</code> element
of an SVG image, it is possible to change the size of the image, and thus the
canvas on which it is displayed during simulation. Changes to these attributes
currently only have effect for the initial state. If the size of the image is
changed during simulation, such changes are ignored.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-simulation-option">SVG visualization option</h8>
<div class="paragraph">
<p>The
<b class="menuref">SVG visualization</b>
option
(<b class="menuref">Output: SVG visualization</b>
category) can be used to disable SVG
visualization. By default, the option is enabled, and SVG visualization is used
if the CIF file being simulated declares any CIF/SVG declarations. By disabling
the option, SVG visualization is disabled, regardless of whether the CIF
specification has any CIF/SVG declarations.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-simulation-demos">Demonstrations</h8>
<div class="paragraph">
<p>For demonstrations and presentations, it may be useful to record a movie of a
simulation with SVG visualization. This way, during the demonstration, there is
no need to manually control the simulation input. Furthermore, a prerecorded
movie can&#8217;t fail to execute, which may be a problem for live demonstrations.
Finally, a prerecorded movie doesn&#8217;t change, and is not influenced by the
<a href="#tools-cifsim-chapter-performance">performance</a> of the computer on which the
demonstration is given.</p>
</div>
<div class="paragraph">
<p>To record a movie of the SVG visualization, screen recording or screen
capturing software can be used. For instance:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://camstudio.org/">CamStudio</a>
for Microsoft Windows.</p>
</li>
<li>
<p><a href="http://recordmydesktop.sourceforge.net/about.php">recordMyDesktop</a>
for Linux.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Both these screen recording applications are free and open source.</p>
</div>
<div class="paragraph">
<p>Ideally a capturing software supports capturing a region of the screen, so
that it is for instance possible to only capture the visualization.
Furthermore, it may be beneficial to be able to capture the mouse pointer, so
that it is clear where interaction takes place, etc.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-undoreset-3">Undo/reset</h8>
<div class="paragraph">
<p>By <a href="#tools-cifsim-input-history-reset-undo">undoing</a> one or more transitions,
or by <a href="#tools-cifsim-input-history-reset-undo">resetting</a> the simulation, the
state may change. The SVG visualizer is automatically updated to reflect such
changes.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-debugging">Debugging SVG visualizations</h7>
<div class="paragraph">
<p>

If an SVG visualization does not behave as you would expect it to behave, there
are several ways to debug such problems. The following approaches are
available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-svgviz-debugging-console">Console debugging</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-debugging-saveas">Save as SVG</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-debugging-stacktrace">Stack traces</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-debugging-console">Console debugging</h8>
<div class="paragraph">
<p>Console debugging for CIF/SVG declarations can be enabled or disabled by using
the
<b class="menuref">Debug output</b>
option (<b class="menuref">Output</b>
category). It is
disabled by default. If enabled, it produces debug output to the console,
whenever CIF/SVG declarations are applied. Here is an example of what such
output looks like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">SVG output (&quot;some_file.svg&quot;) id &quot;a&quot; text: &quot;10.00&quot;
SVG output (&quot;some_file.svg&quot;) id &quot;b&quot; text: &quot;0.0&quot;
SVG output (&quot;some_file.svg&quot;) id &quot;c&quot; text: &quot;3.16&quot;
SVG output (&quot;some_file.svg&quot;) id &quot;n&quot; attr &quot;fill&quot; (CSS attr): &quot;#ff0000&quot;
SVG output (&quot;some_file.svg&quot;) id &quot;water&quot; attr &quot;height&quot; (SVG attr): &quot;75.0&quot;
SVG output (&quot;some_file.svg&quot;) id &quot;water&quot; attr &quot;y&quot; (SVG attr): &quot;104.5&quot;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each of the output mappings that is applied, results in a line of debugging
output. For output mappings that update the value of an attribute, the output
indicates whether the attribute is handled as an
<a href="#tools-cifsim-output-svgviz-svgout-svgcss">SVG presentation attribute</a> or as a
<a href="#tools-cifsim-output-svgviz-svgout-svgcss">CSS style attribute</a>.</p>
</div>
<div class="paragraph">
<p>The textual representations of the values that are set, are put between double
quotes, and their content is not escaped in any way.</p>
</div>
<div class="paragraph">
<p>
Due to the asynchronous nature of the SVG visualizer, the simulator will
continue to calculate the next states that are to become a frame, while the SVG
visualizer is still applying mappings for previous frames. As such, the debug
output and other simulation output are likely to be out of sync and
interleaved. To ease debugging, you can enable the
<a href="#tools-cifsim-chapter-test-mode">test mode option</a>, which ensures synchronous
execution, and thus synchronous output.</p>
</div>
<div class="paragraph">
<p>For the input mappings, whenever an interactive SVG element is clicked, and
the corresponding mapping is used to determine the event to take, a line of
debug output is produced. Here is an example of what such output looks like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">SVG input (&quot;some_file.svg&quot;) id &quot;button&quot;: event &quot;button.u_pushed&quot;
Transition: event button.u_pushed</code></pre>
</div>
</div>
<div class="paragraph">
<p>From the line of debugging output, it can be seen that the SVG element with id
<code>button</code> was clicked, and this resulted in the execution of event
<code>button.u_pushed</code>.</p>
</div>
<div class="paragraph">
<p>Similar debug output is available for the other CIF/SVG declarations:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">SVG copy (&quot;some_file.svg&quot;) id &quot;button&quot; post &quot;1&quot;.
SVG copy (&quot;some_file.svg&quot;) id &quot;button&quot; post &quot;2&quot;.

SVG move (&quot;some_file.svg&quot;) id &quot;button1&quot; to 10.0, 10.0.
SVG move (&quot;some_file.svg&quot;) id &quot;button2&quot; to 30.0, 10.0.</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-debugging-saveas">Save as SVG</h8>
<div class="paragraph">
<p>During simulation, the SVG visualizer can be used to
<a href="#tools-cifsim-output-svgviz-viewer-saveas">save</a> the currently visible image as
an SVG image file. This way, the actual XML representation of the SVG image as
it is displayed at that time, can be inspected in an XML editor or text editor.
This may give insight in the actual effect of the CIF/SVG declarations applied
until that moment.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-debugging-stacktrace">Stack traces</h8>
<div class="paragraph">
<p>If the application of a CIF/SVG declaration results in a runtime error, a stack
trace is printed to the console. This stack trace makes it possible to track
the exact origin of the error. Here is an example of such a stack trace for an
output mapping:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">ERROR: Simulation resulted in a runtime error.
CAUSE: Evaluation of the SVG output mapping (&quot;some_file.svg&quot;) for the text of the SVG element with id &quot;txt1&quot; failed for state: time=0.0, x=-1.5265566588595902e-16.
CAUSE: Evaluation of SVG output mapping value &quot;sqrt(x)&quot; failed.
CAUSE: Invalid operation: sqrt(-1.5265566588595902e-16).</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, we see that simulation resulted in a runtime error. The cause is that
the SVG output mapping for the text of the SVG element with id <code>txt1</code> failed.
This points to the exact CIF/SVG mapping that failed, and includes the file
name of the SVG image file, as the same id may exist in multiple images. It
also includes the state at which the error occurred. The stack trace further
indicates that evaluation of the value expression failed, and the actual
failure was the evaluation of the <code>sqrt</code> standard library function, with a
negative argument.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-viewer">SVG viewer and visualizer</h7>
<div class="paragraph">
<p>




Our software comes with an SVG viewer for Eclipse. SVG image files can now be
opened for viewing within Eclipse. This same viewer is used as a basis for the
SVG visualizer used by the CIF simulator.</p>
</div>
<div class="sect7">
<h8 id="tools-svg-viewer">SVG viewer</h8>
<div class="paragraph">
<p>Opening SVG files in Eclipse results in them being opened by the SVG viewer.
The SVG viewer can be used to preview SVG images from within Eclipse.</p>
</div>
<div class="paragraph">
<p>If the SVG viewer can not open an SVG image, for instance because it contains
<a href="#tools-cifsim-output-svgviz-svg-svg11">unsupported features</a> such
as <a href="#tools-cifsim-output-svgviz-inkscape-textarea">text areas</a>, the SVG
viewer will indicate this. Therefore, opening an SVG image in Eclipse can be
used to verify that the SVG image can be used for SVG visualization.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-refresh">Refresh</h8>
<div class="paragraph">
<p>The SVG viewer does <em>not</em> refresh its display if the image file is changed. To
refresh the image, close the image, and open it again.</p>
</div>
<div class="paragraph">
<p>




</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cifsim-output-svgviz-viewer-saveas">Save as</h8>
<div class="paragraph">
<p>The SVG viewer and SVG visualizer can export the currently visible image to
several different image formats. To export the image, first make sure that
the SVG viewer or SVG visualizer has the focus. Then select
<span class="menuseq"><b class="menu">File</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Save As&#8230;&#8203;</b></span> to open the
<b class="menuref">Save SVG as</b>
dialog. Alternatively, right click the SVG image itself, and choose
<b class="menuref">Save As&#8230;&#8203;</b>
from the popup menu, to open the
<b class="menuref">Save SVG as</b>
dialog. In the dialog, specify the file name of the
exported image. Click
<b class="button">OK</b>
to confirm and to actually export the
image.</p>
</div>
<div class="paragraph">
<p>The following
<a href="http://en.wikipedia.org/wiki/Raster_graphics">raster image</a>
formats are supported:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">Portable Network Graphics</a>
(<code>*.png</code>)</p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/JPEG">JPEG</a>
(<code>*.jpg</code>)</p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/Graphics_Interchange_Format">Graphics Interchange Format</a>
(<code>*.gif</code>)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following
<a href="http://en.wikipedia.org/wiki/Vector_graphics">vector image</a>
formats are supported:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">Scalable Vector Graphics</a>
(<code>*.svg</code>)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The image format that is used to export the image, is derived from the file
extension that is used. For each of the supported file formats, the allowed
file names (with file extensions) are indicated above (between parentheses).</p>
</div>
<div class="paragraph">
<p>After the image is exported, the workspace is refreshed to show that new image
file, if the image was saved in a project that is visible in the
'Project Explorer' tab or 'Package Explorer' tab.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-example-sun-moon">Sun/moon example</h7>
<div class="paragraph">
<p>


This example shows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Grouping of SVG objects.</p>
</li>
<li>
<p>Controlling the visibility of objects based on the current locations of
automata.</p>
</li>
</ul>
</div>
<div class="sect7">
<h8 id="tools-svg-image">SVG image</h8>
<div class="paragraph">
<p>The following SVG image is used for this example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/sun_moon/sun_moon_inkscape.png" alt="sun moon inkscape">
</div>
</div>
<div class="paragraph">
<p>The image features a sun and a moon. The sun consists of a circle and several
lines. They are grouped together, using the
<b class="menuref">Group</b>
command from
Inkscape&#8217;s
<b class="menuref">Object</b>
menu. The group can also be seen in the XML
representation, as an <code>svg:g</code> element, with the actual shapes (paths in this
case) as children. We assigned the <code>sun</code> id to the <code>svg:g</code> element, as it
represents the entire sun. For clarity we gave the sub-elements ids as well,
although that was not necessary, as we won&#8217;t directly reference them in the
CIF/SVG declarations.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cif-specification">CIF specification</h8>
<div class="paragraph">
<p>The following CIF specification models the sun/moon example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;sun_moon.svg&quot;;

automaton sun_moon:
  cont t der 1.0;

  location Day:
    initial;
    edge when t &gt;= 12.0 do t := 0.0 goto Night;

  location Night:
    edge when t &gt;= 12.0 do t := 0.0 goto Day;

  svgout id &quot;sun&quot; attr &quot;visibility&quot;
    value if Day: &quot;visible&quot; else &quot;hidden&quot; end;

  svgout id &quot;moon&quot; attr &quot;visibility&quot;
    value switch self:
      case Day:   &quot;hidden&quot;
      case Night: &quot;visible&quot;
    end;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Initially, it is day (location <code>Day</code>). It is day for 12 hours, after which it
becomes night (location <code>Night</code>). After 12 hours, it becomes day again, etc.</p>
</div>
<div class="paragraph">
<p>There is one mapping to control the visibility of the sun, and one to control
the visibility of the moon. Changing the visibility of the <code>svg:g</code> group
element with id <code>sun</code> influences the visibility of all its children. This
saves us from having to control the visibility of all the individual shapes
that together represent the sun.</p>
</div>
<div class="paragraph">
<p>Both mappings map the current location of automaton <code>sun_moon</code> to either
<code>"visible"</code> or <code>"hidden"</code>, although they do it in a different methods. The
mapping for the sun uses an <code>if</code> expression, which is shorter in syntax, and
especially suited for automata with only two locations. The mapping for the
moon uses a <code>switch</code> expression over <code>self</code>, which is a way to refer to
automaton <code>sun_moon</code>, from inside that automaton itself. The cases list all
the possible locations, and map them to the corresponding visibility values.
The <code>switch</code> method is a bit more explicit, and becomes more elegant as the
automaton has more locations.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-example-walk">Walk example</h7>
<div class="paragraph">
<p>



The first part of this example shows a person walking on a floor, and features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Grouping of SVG objects.</p>
</li>
<li>
<p>The position of grouped objects in SVG.</p>
</li>
<li>
<p>Changing the position of grouped objects using an output mapping.</p>
</li>
<li>
<p>Using the <code>scale</code> standard library function.</p>
</li>
<li>
<p>Using <a href="#tools-cifsim-output-print-chapter-tut-fmt">text formatting</a>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The second part of this example shows a person walking around in a room, and
features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Using multiple values in an output mapping.</p>
</li>
<li>
<p>Using multiple format specifiers in a format pattern.</p>
</li>
</ul>
</div>
<div class="sect7">
<h8 id="tools-svg-image-walking-on-floor">SVG image (walking on floor)</h8>
<div class="paragraph">
<p>The following SVG image is used for the example of a person walking on a floor:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/walk_floor/walk_floor_orig_inkscape.png" alt="walk floor orig inkscape">
</div>
</div>
<div class="paragraph">
<p>The image features a floor (gray bar), a person, and a text label. The
person consists of some lines and a circle. These shapes are grouped together,
using the
<b class="menuref">Group</b>
command from Inkscape&#8217;s
<b class="menuref">Object</b>
menu.
The group can also be seen in the XML representation, as an <code>svg:g</code> element,
with the actual shapes (paths in this case) as children. We assigned the
<code>person</code> id to the <code>svg:g</code> element, as it represents the entire person. For
clarity we gave the sub-elements ids as well, although that was not necessary,
as we won&#8217;t directly reference them in the CIF/SVG declarations.</p>
</div>
<div class="paragraph">
<p>Note that we moved the person as a whole, to the start of the floor. Since
<code>svg:g</code> elements don&#8217;t have an <code>x</code> and <code>y</code> attribute in SVG, Inkscape
applies a translation to move the group. This is reflected in the XML as a
<code>transform</code> attribute, with the <code>translate(-290,-467)</code> value. This
indicates that the person was moved 290 pixels to the left, and 467 pixels to
the top (as SVG has its origin in the upper left corner of the canvas).</p>
</div>
<div class="paragraph">
<p>To get rid of this, once the person is at the correct initial position, we
can ungroup the <code>person</code> group (
<b class="menuref">Ungroup</b>
command from Inkscape&#8217;s
<b class="menuref">Object</b>
menu), and regroup it. By ungrouping the group, the
transformation is pushed to the individual elements of the group. The regroup
simply adds a new group around the elements, without a translation
transformation. The new group is given an automatically generated name, so we
need to rename it to <code>person</code>. This ungroup/group trick is often very useful.
After this trick, the image looks as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/walk_floor/walk_floor_inkscape.png" alt="walk floor inkscape">
</div>
</div>
<div class="paragraph">
<p>The text label is to be used to show the position of the person, as a
percentage. The left position is represented as 0%, and the right position is
represented as 100%. The id of the text label is <code>pos_txt</code>.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cif-specification-walking-on-floor">CIF specification (walking on floor)</h8>
<div class="paragraph">
<p>The following CIF specification models a person walking on a floor:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Behavior.
automaton person:
  cont pos = 0.0;

  location forward:
    initial;
    equation pos' =  1.0;
    edge when pos &gt;= 5.0 goto backward;

  location backward:
    equation pos' = -1.0;
    edge when pos &lt;= 0.0 goto forward;
end

// Visualization.
svgfile &quot;walk_floor.svg&quot;;

// width of the floor - width of the person = movement
// 180px              - 19px                = 161px
svgout id &quot;person&quot; attr &quot;transform&quot;
  value fmt(&quot;translate(%s,0)&quot;, scale(person.pos, 0, 5, 0, 161));

svgout id &quot;pos_txt&quot; text
  value fmt(&quot;%.1f%%&quot;, scale(person.pos, 0, 5, 0, 100));</code></pre>
</div>
</div>
<div class="paragraph">
<p>A person starts at position (variable <code>person.pos</code>) zero (value <code>0.0</code>), and
initially moves <code>forward</code>. After (s)he has reached position <code>5.0</code>, the
movement is reversed. Once the person is back at the start position, the
movement repeats itself.</p>
</div>
<div class="paragraph">
<p>There are two mappings, one that controls the horizontal position of the
<code>person</code>, and another that controls the text of the text label.</p>
</div>
<div class="paragraph">
<p>As stated above, the values of variable <code>person.pos</code> are in the range
[0 .. 5]. As can be seen from the comments of the CIF model, the width of the
floor and person are 180 pixels and 19 pixels respectively. The person can
thus move 161 pixels to the right. The output interval of the <code>scale</code>
standard library function is thus [0 .. 161]. As the vertical position is
fixed, no vertical translation is required. The
<a href="#tools-cifsim-output-print-ref-fmt-pattern">format pattern</a>
<code>"translate(%s,0)"</code> inserts the scaled value into the horizontal amount of
the translation. The formatted output updates the <code>transform</code> attribute,
making the person move horizontally.</p>
</div>
<div class="paragraph">
<p>The text of the text label with id <code>pos_txt</code> is updated using a second
mapping. The value of variable <code>person.pos</code> is once again scaled using the
<code>scale</code> standard library function. This time the output range is [0 .. 100],
to get a percentage. Format pattern <code>"%.1f%%"</code> uses a <code>%.1f</code> format
specifier to convert that percentage to a textual value, with a single digit
after the decimal point. After the value of the percentage, a percentage
character is included in escaped form (<code>%%</code>), to ensure it is not interpreted
as a format specifier.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-svg-image-walking-in-room">SVG image (walking in room)</h8>
<div class="paragraph">
<p>The following SVG image is used for the example of a person walking around in
a room:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/walk_room/walk_room_inkscape.png" alt="walk room inkscape">
</div>
</div>
<div class="paragraph">
<p>The image features a room (black rectangle) and a person. The person is the
same group of elements as in the example of a person walking on a floor. The
same group/ungroup trick is used here as well, to make sure the group has no
translation transformation.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cif-specification-walking-in-room">CIF specification (walking in room)</h8>
<div class="paragraph">
<p>The following CIF specification models a person walking around in a room:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Behavior.
automaton person:
  cont x = 0.0;
  cont y = 0.0;

  location right:
    initial;
    equation x' =  1.0;
    equation y' =  0.0;
    edge when x &gt;= 5.0 goto down;

  location down:
    equation x' =  0.0;
    equation y' =  1.0;
    edge when y &gt;= 5.0 goto left;

  location left:
    equation x' = -1.0;
    equation y' =  0.0;
    edge when x &lt;= 0.0 goto up;

  location up:
    equation x' =  0.0;
    equation y' = -1.0;
    edge when y &lt;= 0.0 goto right;
end

// Visualization.
svgfile &quot;walk_room.svg&quot;;

// width of the room - width of the person = horizontal movement
// 180px             - 19px                = 161px
//
// height of the room - height of the person = vertical movement
// 180px              - 40x                  = 140px
svgout id &quot;person&quot; attr &quot;transform&quot;
  value fmt(&quot;translate(%s,%s)&quot;, scale(person.x, 0, 5, 0, 161),
                                scale(person.y, 0, 5, 0, 140));</code></pre>
</div>
</div>
<div class="paragraph">
<p>A person starts at the top left position, and initially moves to the <code>right</code>.
Once (s)he reaches the right side, (s)he start to move <code>down</code>, followed by
a <code>left</code> and <code>up</code> movement. After the <code>up</code> movement, the person is once
again at the top left position, start another walk around the room, etc.</p>
</div>
<div class="paragraph">
<p>There is only one mapping, which controls both the horizontal and vertical
position of the <code>person</code>. The mapping is similar to the example of a person
walking on a floor, except that now both the horizontal and vertical movements
are included. The mapping uses two scaled values, one for the horizontal
movement, and one for the vertical movement. The format pattern includes both
values in the output. The first scaled value controls the horizontal movement,
while the second scaled value controls the vertical movement.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-example-rate">Rate example</h7>
<div class="paragraph">
<p>


This example shows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The use of literal values in output mappings.</p>
</li>
<li>
<p>How it is best to use simple solutions to solve visualization problems.</p>
</li>
</ul>
</div>
<div class="sect7">
<h8 id="tools-svg-image-2">SVG image</h8>
<div class="paragraph">
<p>The following SVG image is used for this example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/rate/rate_inkscape.png" alt="rate inkscape">
</div>
</div>
<div class="paragraph">
<p>The SVG image visualizes a machine as a circle. The rate of the machine is
visualized as the background of the circle. The higher the rate, the more the
circle is filled.</p>
</div>
<div class="paragraph">
<p>Instead of working with complicated clippings or linear gradients, we use a
more simple solution here. The black circle has a transparent background
(<code>fill</code> attribute set to <code>none</code>). This is the SVG element with id
<code>circle</code>. Behind it is the same circle (id <code>circle_bg</code>), but without a
border (<code>stroke</code> attribute set to <code>none</code>), and with a green fill color.
Between those two circles, is a rectangle (id <code>circle_bg_rect</code>), that at the
top is aligned to the top of the circle. By changing the height of the circle,
we can now control what part of the green background circle is obscured by the
rectangle.</p>
</div>
<div class="paragraph">
<p>During the actual visualization, we&#8217;ll use a white fill color for the
rectangle. Since the background is also white, this 'hides' the rectangle, and
makes for a partial green background of the circle. Because a white rectangle
can not be distinguished from the background, we used a cyan fill color for the
rectangle. This makes that we can easily edit the rectangle, and see whether it
has the correct initial position, size, etc.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cif-specification-2">CIF specification</h8>
<div class="paragraph">
<p>The following CIF specification models the rate example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Behavior.
const real MARGIN = 0.01;

automaton machine:
  cont rate der if rate &lt; target_rate:  1.0
                else                   -1.0
                end;
  disc real target_rate = 0.5;
  disc dist real rate_sampler = uniform(0.0, 1.0);

  location:
    initial;
    edge when rate - MARGIN &lt;= target_rate and target_rate &lt;= rate + MARGIN
         do (target_rate, rate_sampler) := sample rate_sampler;
end

// Visualization.
svgfile &quot;rate.svg&quot;;

svgout id &quot;circle_bg_rect&quot; attr &quot;height&quot;
  value scale(machine.rate, 0, 1, 58, 0);

svgout id &quot;circle_bg_rect&quot; attr &quot;fill&quot; value &quot;white&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This rather artificial machine has a <code>rate</code> at which it produces. The rate
is a value in the interval [0 .. 1]. A target rate (variable <code>target_rate</code>)
is randomly chosen in the same interval. The rate is automatically adapted to
get closer to the target rate. As soon as the rate is close enough to the
target rate, a new target rate is randomly selected, using the
<code>rate_sampler</code>, which is a continuous uniform stochastic distribution.</p>
</div>
<div class="paragraph">
<p>The first mapping controls the <code>height</code> of the rectangle. The value of
variable <code>machine.rate</code> has a value in the interval [0 .. 1]. This interval
is mapped to the [58 .. 0] pixels interval. That is, if the rate is 0, the
height of the rectangle is 58 pixels, and it completely covers the background
of the circle. The circle then appears with a completely white background. If
the rate is 1, the height of the rectangle is 0, and a completely green
background is shown. For rates in between 0 and 1, the lower part of the
background of the circle is green, and the upper part is white.</p>
</div>
<div class="paragraph">
<p>The second mapping sets the <code>fill</code> color of the rectangle to <code>white</code>.</p>
</div>
<div class="paragraph">
<p>The following image shows an example of the visualization of a partial rate:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/rate/rate_partial.png" alt="rate partial">
</div>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-example-workstation">Workstation example</h7>
<div class="paragraph">
<p>




This example shows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Basing the width of an object on the value of a clock in one location, and
setting it to a fixed value in another location.</p>
</li>
<li>
<p>Changing the fill color of a rectangle based on the current location of an
automaton.</p>
</li>
<li>
<p>Updating multiple attributes of an SVG element, using multiple output
mappings.</p>
</li>
<li>
<p>Specifying colors in SVG.</p>
</li>
<li>
<p>Improving scalability by making use of the reuse of mappings.</p>
</li>
</ul>
</div>
<div class="sect7">
<h8 id="tools-svg-image-3">SVG image</h8>
<div class="paragraph">
<p>The following SVG image is used for this example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/workstation/workstation_inkscape.png" alt="workstation inkscape">
</div>
</div>
<div class="paragraph">
<p>In the image, two machines are clearly visible. Each machine has a bar that
shows the progress of the machine. Looking at the
<b class="menuref">XML Editor</b>
window, we can see the bar has a background (box), and a foreground (front)
rectangle. The <code>width</code> and <code>fill</code> color of the latter will be updated to
reflect the machine&#8217;s status.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cif-specification-3">CIF specification</h8>
<div class="paragraph">
<p>The following CIF specification models the workstation example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;workstation.svg&quot;;

event generate, transfer, exit;

m1: Machine(1, 1.0, generate, transfer);
m2: Machine(2, 2.5, transfer, exit);

automaton def Machine(alg int nr; alg real ptime; event start, done):
  cont t der 1.0;

  location idle:
    initial;
    edge start do t := 0.0 goto processing;

  location processing:
    edge when t &gt;= ptime goto completed;

  location completed:
    edge done goto idle;

  svgout id &quot;m&quot; + &lt;string&gt;nr + &quot;_bar_front&quot; attr &quot;width&quot;
    value scale(if processing: t else ptime end, 0, ptime, 0, 130);

  svgout id &quot;m&quot; + &lt;string&gt;nr + &quot;_bar_front&quot; attr &quot;fill&quot;
    value if idle : &quot;gray&quot; else &quot;dodgerblue&quot; end;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The example models a workstation with two machines. The first machine has a
processing time of <code>1.0</code> time units and the second machine has a processing
time of <code>2.5</code> time units. Each machine gets products to <code>start</code> processing,
processes them, and sends them out as it is <code>done</code>. The first machine gets
its input from an infinite generator (event <code>generate</code>). The second machine
sends its finished products to an infinite exit buffer (event <code>exit</code>).
Products are transported from the first machine to the second machine via a
transport system (event <code>transfer</code>). Note that the <code>Machine</code> automaton
definition has three locations. In location <code>idle</code> it is waiting for a
product to enter the machine (event <code>start</code>). In location <code>processing</code> it
processes the product, which takes <code>ptime</code> time units. Finally, in location
<code>completed</code> it has completed processing the product, and waits until it can
send it as output. After that, the machine is back in the <code>idle</code> location,
where it waits for the next product.</p>
</div>
<div class="paragraph">
<p>Both machines (<code>m1</code> and <code>m2</code>) are instantiations of the same automaton
definition (<code>Machine</code>). The definition/instantiation mechanism allows us to
specify the behavior of a machine only once, and still have multiple machines.
This reuse improves scalability, as well as maintainability. The reuse of the
behavior applies to the visualization as well. By declaring the output mappings
in the automaton definition, we get mappings for each instantiation of an
actual machine.</p>
</div>
<div class="paragraph">
<p>Since each machine has its own graphical representation in the SVG image, the
graphical elements for the different machines have different ids as well.
However, they only differ in the number that is used. For instance, there is
an <code>m1_bar_front</code> rectangle for the first machine, and an <code>m2_bar_front</code>
rectangle for the second machine. In order to make sure each machine gets the
correct mappings that apply to their own ids, we added an algebraic parameter
<code>nr</code> to the definition of <code>Machine</code>, that indicates to the machine which
machine it is. We can then use that <code>nr</code> to compute the id. For machine
<code>m1</code>, the <code>Machine</code> automaton definition is instantiated with value <code>1</code>
for the <code>nr</code> parameter. The <code>"m" + &lt;string&gt;nr + "_bar_front"</code> id expression
then evaluates to <code>"m1_bar_front"</code>, and <code>m1_bar_front</code> is used as the id
for the output mapping.</p>
</div>
<div class="paragraph">
<p>The first mapping updates the width of the <code>m*_bar_front</code> rectangles to show
the progress of the machines. If a machine is actually <code>processing</code>, the
value of clock <code>t</code> is used, as that clock indicates how much of the
processing has been completed.</p>
</div>
<div class="paragraph">
<p>When a machine is <code>idle</code> (and waiting for a product) or has <code>completed</code>
processing (but can not yet push the processed product out of the machine),
the progress is either nothing, or everything. In both cases, we choose the
full processing time (variable <code>ptime</code>) as the value. The reason to choose
this value for the <code>idle</code> location, becomes clear in the next output mapping.</p>
</div>
<div class="paragraph">
<p>The <code>ptime</code> value is chosen for the <code>completed</code> location to ensure that
the rectangle does not get wider than the box (rectangle <code>m*_bar_back</code>). If
we would have used the value of clock <code>t</code> in this location as well, then
since the value of the clock keeps increasing in that location, the value
becomes larger than <code>ptime</code>, and thus the progress bar would be partly
outside the box (rectangle <code>m*_bar_back</code>).</p>
</div>
<div class="paragraph">
<p>The value that is selected for this first mapping, is transformed using the
<code>scale</code> standard library function. The function is used to scale the
processing time interval [0 .. <code>ptime</code>] to the [0 .. 130] interval, which
represents the <code>width</code> of the rectangle in pixels. The upper bound of 130
pixels matches the <code>width</code> of the box (rectangle <code>m*_bar_back</code>).</p>
</div>
<div class="paragraph">
<p>The second mapping updates the <code>fill</code> color (foreground color) of the same
SVG element. In the <code>idle</code> location, the color is <code>gray</code>. Since we used the
full width in that location (value <code>ptime</code> in the [0 .. <code>ptime</code>] interval),
the entire box is then filled by a gray rectangle, indicating that the machine
is idle.</p>
</div>
<div class="paragraph">
<p>For the other locations, the <code>fill</code> color is set to <code>dodgerblue</code>. Since the
width in pixels is a value in the interval [0 .. 30], part of the box will be
blue, and part will be the background color of the box, which is white. In the
<code>completed</code> location, the full width is used as well, resulting in a
completely blue box, indicating that the machine has a completely processed
product, waiting to be released as output.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect7">
<h8 id="tools-colors-in-svg">Colors in SVG</h8>
<div class="paragraph">
<p>In the mappings, as described above, we used names to identify colors. SVG
however, provides several ways to specify
<a href="http://www.w3.org/TR/SVG11/types.html#DataTypeColor">colors</a>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://www.w3.org/TR/SVG11/types.html#ColorKeywords">Named colors</a>,
such as <code>red</code>, <code>yellow</code>, <code>lightblue</code> or <code>burlywood</code>.</p>
</li>
<li>
<p>Decimal RGB (red-green-blue) colors, such as <code>rgb(255,0,0)</code> for <code>red</code>, or
<code>rgb(255,255,0)</code> for <code>yellow</code>.</p>
</li>
<li>
<p>Hexadecimal RGB (red-green-blue) colors, such as <code>#f00</code> or <code>#ff0000</code> for
<code>red</code>, or <code>#ff0</code> or <code>#ffff00</code> for <code>yellow</code>.</p>
</li>
<li>
<p>RGB (red-green-blue) colors in percentages, such as <code>rgb(100%,0%,0%)</code> for
<code>red</code>, or <code>rgb(100%,100%,0%)</code> for <code>yellow</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Every color can be specified by one of the three RGB color variants. The colors
that have a predefined color name, can be specified in four different ways.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-example-tank">Tank example</h7>
<div class="paragraph">
<p>



This example shows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Use of the <code>scale</code> standard library function.</p>
</li>
<li>
<p>The difference between the coordinate systems of <a href="#tools-cifsim-output-svgviz-chapter-inkscape">Inkscape</a>
and <a href="#tools-cifsim-output-svgviz-chapter-svg">SVG</a>.</p>
</li>
<li>
<p>How inverting the y-axis can reduce the number of output mappings.</p>
</li>
</ul>
</div>
<div class="sect7">
<h8 id="tools-svg-image-4">SVG image</h8>
<div class="paragraph">
<p>The following SVG image is used for this example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/tank/tank_inkscape.png" alt="tank inkscape">
</div>
</div>
<div class="paragraph">
<p>The image features a tank (black lines) and the water in the tank (blue
rectangle). The water rectangle is selected. At the top of the screenshot, you
see the object&#8217;s position as Inkscape represents it. It shows <code>15</code> for the
<code>x</code> position, and <code>10</code> for the <code>y</code> position. These values are relative to
the lower left corner of the canvas. In the
<b class="menuref">XML Editor</b>
window, you
see the position as SVG represents it. It shows <code>15</code> for the <code>x</code> position
as well, but <code>30</code> for the <code>y</code> position. These values are relative to the
upper left corner of the canvas. Inkscape and SVG use different coordinate
systems, where the <code>y</code>-axis is reversed. The CIF/SVG declarations works on
SVG images, and thus uses the coordinate system of SVG.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cif-specification-4">CIF specification</h8>
<div class="paragraph">
<p>The following CIF specification models the tank example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Behavior.
const real CAPACITY   = 10.0;
const real MAX_LEVEL  =  8.0;
const real INIT_LEVEL =  5.0;
const real MIN_LEVEL  =  2.0;

automaton tank:
  cont level = INIT_LEVEL;

  location open:
    initial;
    equation level' =  1.0;
    edge when level &gt;= MAX_LEVEL goto closed;

  location closed:
    equation level' = -1.0;
    edge when level &lt;= MIN_LEVEL goto open;
end

// Visualization.
svgfile &quot;tank.svg&quot;;

svgout id &quot;water&quot; attr &quot;height&quot; value scale(tank.level, 0, CAPACITY, 0, 80);</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this specification, we have a tank filled with water. Initially, the
<code>level</code> (height) of the water is <code>5.0</code>, and the valve is <code>open</code>. The
level linearly increases with a rate of <code>1.0</code> per time unit. Once the level
is <code>MAX_LEVEL</code>, we close the valve, and go to the <code>closed</code> location. Here
the level linearly decreases until we reach the minimum level (<code>MIN_LEVEL</code>),
after which we open the valve again. The level controller keeps the level
between the minimum and maximum allowed levels.</p>
</div>
<div class="paragraph">
<p>There is only one mapping, and it controls the height of the <code>water</code>
rectangle. The water level in the model stays between zero and <code>CAPACITY</code>, by
definition (as a higher level would overflow). This results in an input
interval of [0 .. <code>CAPACITY</code>]. The height of the tank in the SVG image is
<code>80</code> pixels. The output interval thus becomes [0 .. 80].</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-simulation-2">Simulation</h8>
<div class="paragraph">
<p>When we simulate the tank example using the CIF specification and SVG image
as specified above, we immediately observe a problem:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/tank/tank_problem.png" alt="tank problem">
</div>
</div>
<div class="paragraph">
<p>In SVG the origin is in the upper left corner of the canvas. Changing the
height of an object results in the top of the object being fixed, and the
bottom of the object being closer to or farther away from that top. What we
want in this case, is to have the bottom of the object fixed, and the top of
the object being closer to or farther away from the top, depending on the
height of the object.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-svg-image-revisited">SVG image (revisited)</h8>
<div class="paragraph">
<p>A naive solution would be to add a second output mapping, to correct the
vertical position (<code>y</code> attribute) of the <code>water</code> rectangle. This is a valid
solution, and it works. There is however a simpler and more elegant solution.</p>
</div>
<div class="paragraph">
<p>Consider the following, updated SVG image:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/tank/tank2_inkscape.png" alt="tank2 inkscape">
</div>
</div>
<div class="paragraph">
<p>This SVG image is the same as the original SVG image for this example, but with
an inverted <code>y</code>-axis, for the <code>water</code> rectangle. The <code>y</code>-axis was
inverted by using the
<b class="menuref">Flip Vertical</b>
command from Inkscape&#8217;s
<b class="menuref">Object</b>
menu, while the <code>water</code> rectangle was selected. As can be
seen in the screenshot, Inkscape corrects for the applied transformation, and
still indicates the same <code>x</code> and <code>y</code> coordinates (at the top of the
screenshot). In SVG (and thus the
<b class="menuref">XML Editor</b>
window), we see a new
<code>transform</code> attribute, <code>scale(1,-1)</code> as value, which represents the
inversion of the <code>y</code>-axis. Also, the bottom of the water (the inverted top of
the water) is now <code>90</code> pixels (the inverted <code>-90</code> value of the <code>y</code>
attribute) from the top of the image. Using this vertical flip, we now fixated
the 'bottom' of the water, and we can thus change the height of the water
without having to correct its position. The mappings for this modified SVG
image are the same as the original mappings.</p>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-example-lamps">Lamps example</h7>
<div class="paragraph">
<p>



This example shows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Scalability of CIF models and SVG visualizations.</p>
</li>
<li>
<p>The use of <a href="#tools-cifsim-output-svgviz-chapter-svgcopy">CIF/SVG copy declarations</a>.</p>
</li>
<li>
<p>The use of <a href="#tools-cifsim-output-svgviz-chapter-svgmove">CIF/SVG move declarations</a>.</p>
</li>
</ul>
</div>
<div class="sect7">
<h8 id="tools-introducing-the-lamps-example">Introducing the lamps example</h8>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">// Behavior.
automaton def Lamp():
  event toggle;
  disc bool on = false;

  location:
    initial;
    edge toggle do on := not on;
end

lamp1: Lamp();
lamp2: Lamp();

// Visualization.
svgfile &quot;lamps2.svg&quot;;

svgout id &quot;lamp1&quot; attr &quot;fill&quot; value if lamp1.on: &quot;yellow&quot; else &quot;silver&quot; end;
svgout id &quot;lamp2&quot; attr &quot;fill&quot; value if lamp2.on: &quot;yellow&quot; else &quot;silver&quot; end;

svgout id &quot;lamp1&quot; attr &quot;stroke-width&quot; value if lamp1.on: 5 else 2 end;
svgout id &quot;lamp2&quot; attr &quot;stroke-width&quot; value if lamp2.on: 5 else 2 end;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification has two lamps, <code>lamp1</code> and <code>lamp2</code>. Both lamps have
identical behavior, and therefore the behavior is only specified once, using
automaton definition <code>Lamp</code>. This definition is instantiated two times, once
for each of the lamps. A lamp is initially off, can go on, go off again, go on
again, etc. The following SVG image is used for this example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/lamps/lamps2_inkscape.png" alt="lamps2 inkscape">
</div>
</div>
<div class="paragraph">
<p>The visualization shows the two lamps. The first lamp is off, and has a silver
background color. The second lamp is on and has a yellow background color. The
lamp that is off has a thin border and the lamp that is on has a thicker
border. The CIF specification also contains four
<a href="#tools-cifsim-output-svgviz-chapter-svgout">CIF/SVG output mappings</a>, two for
the background colors of the circles and two for the thickness of the borders
(strokes) of the circles.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-svg-visualization-scalability-issues">SVG visualization scalability issues</h8>
<div class="paragraph">
<p>The use of the automaton definition allows us to add another lamp by simply
adding the following line to the CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">lamp3: Lamp();</code></pre>
</div>
</div>
<div class="paragraph">
<p>This single line ensures that we have a third lamp, with the corresponding
behavior. However, we also need to adapt the SVG image, by adding another
circle, and we need to add two more output mappings to the CIF model. In this
case, the additional amount of work is manageable. If however our lamp would
have been represented in the image by many different graphical elements,
adding another lamp would require copying all those graphical elements, and
might also lead to adding many more output mappings per lamp.</p>
</div>
<div class="paragraph">
<p>Furthermore, if we were to decide to change the graphical representation of
lamps from a circle to a square, we would have to change the graphical
representation of each of the lamps in the image.</p>
</div>
<div class="paragraph">
<p>It should be clear that this approach does not scale very well. Ideally, we
would add another lamp by just adding another instantiation of the <code>Lamp</code>
definition as we did above, and automatically get another circle in the image,
and two more output mappings in the CIF model.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-a-scalable-solution">A scalable solution</h8>
<div class="paragraph">
<p>For the behavior of the lamp, we already had a scalable solution, by using the
component definition/instantiation mechanism. That same mechanism can be used
to make the image and mappings scalable. First, we&#8217;ll change the SVG image:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/lamps/lamps3_inkscape.png" alt="lamps3 inkscape">
</div>
</div>
<div class="paragraph">
<p>The second lamp has been removed from the image. We only keep one lamp, as a
sort of template for all the lamps. Since we want to use the same graphical
representation for all lamps, we only want to include it once in the SVG image.
This allows us to change the graphical representation of the template, to have
all the lamps change appearance at once. The lamp has been moved outside of the
visible part of the canvas, and its <code>id</code> has been changed from <code>lamp1</code> to
<code>lamp</code>. The reason for these last two changes will become clear once we look
at the new CIF model, and especially the new output mappings:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;lamps3.svg&quot;;

automaton def Lamp(alg int nr):
  // Behavior.
  event toggle;
  disc bool on = false;

  location:
    initial;
    edge toggle do on := not on;

  // Visualization.
  svgcopy id &quot;lamp&quot; post &lt;string&gt;nr;

  svgmove id &quot;lamp&quot; + &lt;string&gt;nr to 20 + (nr - 1) * 100, 20;

  svgout id &quot;lamp&quot; + &lt;string&gt;nr attr &quot;fill&quot;
    value if on: &quot;yellow&quot; else &quot;silver&quot; end;

  svgout id &quot;lamp&quot; + &lt;string&gt;nr attr &quot;stroke-width&quot;
    value if on: 5 else 2 end;
end

lamp1: Lamp(1);
lamp2: Lamp(2);
lamp3: Lamp(3);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first change is that the <code>Lamp</code> automaton definition now has a <code>nr</code>
parameter, that indicates which lamp it is. Each lamp is given a different
number when instantiated. This allows the lamp automata to know their own
identity, and use that for the SVG visualization.</p>
</div>
<div class="paragraph">
<p>We also put the CIF/SVG declarations for the visualization inside the automaton
definition. By doing this, we ensure that each instantiation (each lamp) gets
their own version of these declarations.</p>
</div>
<div class="paragraph">
<p>The CIF/SVG declarations have changed as well. A
<a href="#tools-cifsim-output-svgviz-chapter-svgcopy">CIF/SVG copy declaration</a> has been added. The copy
declaration states that the SVG element with id <code>lamp</code> (the circle) should
be copied. It also states that the copy should be postfixed with
<code>&lt;string&gt;nr</code>. That is, for automaton <code>lamp1</code>, the value of the <code>nr</code>
parameter is <code>1</code>, and the id is thus postfixed with <code>"1"</code>. In other words,
circle <code>lamp</code> is copied, and the copy is given name <code>lamp1</code> (composed
from <code>lamp</code> and <code>1</code>). For <code>lamp2</code>, the id of the copied circle is
<code>lamp2</code>, etc. For each of the lamps, the copy gets a different name, that is
unique within the SVG image. This single copy declaration takes care of the
scalability of the SVG image, by ensuring we have exactly as many circles as we
have lamps (not counting the template circle <code>lamp</code>).</p>
</div>
<div class="paragraph">
<p>The copies of the template circle all get exactly the same attributes as the
template (except for their <code>id</code> attribute). As such, they are all positioned
outside the visible part of the canvas. The easiest way to put them at the
correct positions, is to use a
<a href="#tools-cifsim-output-svgviz-chapter-svgmove">CIF/SVG move declaration</a>, which
is also new compared to the previous CIF model. The move declarations use the
ids of the copied circles, so that each move declaration moves the circle for
that specific lamp. They are all moved to 20 pixels from the top of the canvas,
and '20 + (<code>nr</code> - 1) * 100' pixels from the left side of the canvas. So, the
first lamp (<code>nr</code> 1) is moved to (20, 20), the second lamp (<code>nr</code> 2) is moved
to (120, 20), and the third lamp (<code>nr</code> 3) is moved to (220, 20). This single
move declaration takes care of the scalability of the positions of the lamps,
by ensuring we have exactly as many movements as we have lamps. By using the
<code>nr</code> parameter, each lamp can easily be moved to their own unique position.</p>
</div>
<div class="paragraph">
<p>The output mappings for the background color of the circles and thickness of
the borders of the circles, are very similar to the output mappings of the
first version of the CIF model, though there are a few changes. The mappings
use the same method as the move declaration, to construct the ids. Since the
mappings are now defined within the automaton definition, they can directly
refer to the <code>on</code> variable. This ensures that for each different lamp, the
mappings refer to the <code>on</code> variable of that specific lamp. We now have only
one output mapping for the background color, and also only one output mapping
for the thickness of the border.</p>
</div>
<div class="paragraph">
<p>By putting the CIF/SVG declarations inside the automaton definition, and by
using the copy and move declarations, we now have a scalable solution. We only
have one lamp in our SVG image, only one behavioral specification in the CIF
model, and only one output mapping per attribute that we want to couple. No
matter how many instantiations of the <code>Lamp</code> automaton definition we add, we
don&#8217;t have to manually change the SVG image or the visualization coupling.</p>
</div>
<div class="paragraph">
<p>For completeness, take a look at this CIF model after the
<a href="#tools-cif2cif-chapter-elim-comp-def-inst">elimination of component definition/instantiation</a>, the
<a href="#tools-cif2cif-chapter-elim-alg-vars">elimination of algebraic variables</a>, and
the <a href="#tools-cif2cif-chapter-simplify-values">simplification of values</a>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton lamp1:
  event toggle;
  disc bool on = false;
  svgcopy id &quot;lamp&quot; post &quot;1&quot;;
  svgmove id &quot;lamp1&quot; to 20, 20;
  svgout id &quot;lamp1&quot; attr &quot;fill&quot; value if on: &quot;yellow&quot; else &quot;silver&quot; end;
  svgout id &quot;lamp1&quot; attr &quot;stroke-width&quot; value if on: 5 else 2 end;
  location:
    initial;
    edge toggle do on := not on;
end
automaton lamp2:
  event toggle;
  disc bool on = false;
  svgcopy id &quot;lamp&quot; post &quot;2&quot;;
  svgmove id &quot;lamp2&quot; to 120, 20;
  svgout id &quot;lamp2&quot; attr &quot;fill&quot; value if on: &quot;yellow&quot; else &quot;silver&quot; end;
  svgout id &quot;lamp2&quot; attr &quot;stroke-width&quot; value if on: 5 else 2 end;
  location:
    initial;
    edge toggle do on := not on;
end
automaton lamp3:
  event toggle;
  disc bool on = false;
  svgcopy id &quot;lamp&quot; post &quot;3&quot;;
  svgmove id &quot;lamp3&quot; to 220, 20;
  svgout id &quot;lamp3&quot; attr &quot;fill&quot; value if on: &quot;yellow&quot; else &quot;silver&quot; end;
  svgout id &quot;lamp3&quot; attr &quot;stroke-width&quot; value if on: 5 else 2 end;
  location:
    initial;
    edge toggle do on := not on;
end
svgfile &quot;lamps3.svg&quot;;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-svgviz-chapter-example-buffers-products">Buffers/products example</h7>
<div class="paragraph">
<p>


This example shows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Improving hierarchical scalability by making use of the reuse of mappings.</p>
</li>
<li>
<p>Improving hierarchical scalability by making copies of copied elements.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>It is assumed the reader is already familiar with the
<a href="#tools-cifsim-output-svgviz-chapter-example-workstation">workstation example</a>.</p>
</div>
<div class="sect7">
<h8 id="tools-svg-image-5">SVG image</h8>
<div class="paragraph">
<p>The following SVG image is used for this example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/buffers_products/buffers_products_inkscape.png" alt="buffers products inkscape">
</div>
</div>
<div class="paragraph">
<p>The SVG image contains a single template for a buffer (large rectangle), with
one product (small rectangle). The template is moved outside of the canvas to
ensure the template itself is not shown.</p>
</div>
<div class="paragraph">
<p>The SVG file has the following XML content:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="svg">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;
     xmlns:svg=&quot;http://www.w3.org/2000/svg&quot;
     width=&quot;220&quot; height=&quot;70&quot; id=&quot;root&quot; version=&quot;1.1&quot;&gt;
  &lt;g id=&quot;buffer&quot;&gt;
    &lt;rect width=&quot;100&quot; height=&quot;50&quot; x=&quot;-120&quot; y=&quot;10&quot; id=&quot;background&quot; style=&quot;fill:#ff0000&quot;/&gt;
    &lt;rect width=&quot;10&quot;  height=&quot;30&quot; x=&quot;-110&quot; y=&quot;20&quot; id=&quot;product&quot;    style=&quot;fill:#8b0000;visibility:hidden;&quot;/&gt;
  &lt;/g&gt;
&lt;/svg&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>We&#8217;ll use CIF to turn this into two buffers with three products each, in a
scalable manner. That is, to add a single buffer, we only need one more
instantiation, and also to put an additional product in each buffer, we also
only need one more instantiation.</p>
</div>
</div>
<div class="sect7">
<h8 id="tools-cif-specification-5">CIF specification</h8>
<div class="paragraph">
<p>The following CIF specification models the buffers/products example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;buffers_products.svg&quot;;

buffer0: Buffer(0);
buffer1: Buffer(1);

group def Buffer(alg int nr):
  svgcopy id &quot;buffer&quot; post &lt;string&gt;nr;

  svgmove id &quot;buffer&quot; + &lt;string&gt;nr to 10 + nr * 110, 10;

  product0: Product(nr, 0);
  product1: Product(nr, 1);
  product2: Product(nr, 2);
end

group def Product(alg int bufferNr, productNr):
  svgcopy id &quot;product&quot; + &lt;string&gt;bufferNr post &quot;_&quot; + &lt;string&gt;productNr;

  svgout id fmt(&quot;product%d_%d&quot;, bufferNr, productNr)
         attr &quot;transform&quot;
         value fmt(&quot;translate(%d,0)&quot;, productNr * 20);

  svgout id fmt(&quot;product%d_%d&quot;, bufferNr, productNr)
         attr &quot;visibility&quot;
         value &quot;visible&quot;;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Two buffers are present (<code>buffer0</code> and <code>buffer1</code>). Both are instances of
the <code>Buffer</code> definition, and are provided with their own identity (parameter
<code>nr</code>). For each buffer, the <code>buffer</code> element of the image is copied, and
the copy is given a unique number. For instance, for instantiation <code>buffer0</code>,
<code>nr</code> is <code>0</code>, and thus <code>buffer</code> is copied to <code>buffer0</code>, <code>background</code>
is copied to <code>background0</code> and <code>product</code> is copied to <code>product0</code>.</p>
</div>
<div class="paragraph">
<p>Each buffer is also moved. The first buffer (<code>nr</code> <code>0</code>) gets moved to
position (10, 10), while the second (<code>nr</code> <code>1</code>) gets moved to position
(120, 10).</p>
</div>
<div class="paragraph">
<p>Each buffer contains three products, as the <code>Product</code> definition is
instantiated three times. The number of the buffer is passed along, as is a
unique product number. For the copy of the products, the copy of the product
in the copied buffer is copied, and given a unique name using the product
number. For <code>buffer0</code>, the copy of the <code>product</code> was already named
<code>product0</code>. This already copied element is copied another three times, to
<code>product0_0</code> (by the copy declaration in CIF group <code>buffer0.product0</code>),
<code>product0_1</code> (by the copy declaration in CIF group <code>buffer0.product1</code>),
and <code>product0_2</code> (by the copy declaration in CIF group <code>buffer0.product2</code>).
Similarly, three copies are made for <code>buffer1</code>.</p>
</div>
<div class="paragraph">
<p>Unlike the buffers, which are moved to an absolute position using an
<code>svgmove</code>, the products are moved relatively, using an <code>svgout</code> for their
<code>transform</code> attribute. The first product (<code>product0_0</code>) is not moved, the
second product (<code>product0_1</code>) is moved <code>20</code> pixels, etc.</p>
</div>
<div class="paragraph">
<p>The buffer template was put outside of the canvas to show only the copies and
not the template. For the products, which are contained in the buffers, this
trick is not possible. So, instead the <code>visibility</code> of the template
<code>product</code> was set to <code>hidden</code> in the original SVG image. To show the actual
(copied) products, an <code>svgout</code> is used to set the <code>visibility</code> attribute
to <code>visible</code>. The template <code>product</code> is not changed, so it remains hidden.</p>
</div>
<div class="paragraph">
<p>The result of all this hierarchical 2-level structure is the following SVG
image:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/svgviz/buffers_products/buffers_products.png" alt="buffers products">
</div>
</div>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-chapter-trajdata">Trajectory data output</h6>
<div class="paragraph">
<p>


The trajectory data (values of the variables as time progresses), calculated
by the <a href="#tools-cifsim-solver-chapter-index">ode solver</a>, can be written to a
file, using the trajectory data output component.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="tools-cifsim-output-trajdata-option" class="paragraph">
<p>Enable the
<b class="menuref">Trajectory data</b>
option (<b class="menuref">Output: Trajectory data</b>
category) to enable writing the trajectory data to a file.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="tools-cifsim-output-trajdata-file" class="paragraph">
<p>By default, the file to which to write the trajectory data, is the name of the
input specification file, with <code>.trajdata</code> added to it. Using the
<b class="menuref">Trajectory data file</b>
option (<b class="menuref">Output: Trajectory data</b>
category), a different file can be specified. The value of the option is the
absolute or relative local file system path to use for the trajectory data
file.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-filtering">Filtering</h7>
<div class="paragraph">
<p>Variable <code>time</code> is always included in the trajectory data file. The following
additional variables (officially 'state objects') are included by default:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The state variables, which includes the discrete variables and the continuous
variables.</p>
</li>
<li>
<p>The derivatives of the continuous variables. This does not include the
derivative of variable <code>time</code>.</p>
</li>
<li>
<p>The algebraic variables.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Only variables of type <code>bool</code>, <code>int</code> (with or without ranges), or <code>real</code>
are included.</p>
</div>
<div id="tools-cifsim-output-trajdata-filters" class="paragraph">
<p>Using the
<b class="menuref">Trajectory data filters</b>
option
(<b class="menuref">Output: Trajectory data</b>
category), the state objects can be
filtered. The
<b class="menuref">Trajectory data filters</b>
option only has effect
if trajectory data output is enabled, using the
<b class="menuref">Trajectory data</b>
option.</p>
</div>
<div class="paragraph">
<p>As value for the option, comma separated <em>filters</em> should be supplied. Each
filter specifies one or more state objects. The absolute names of the objects
are used. That is, for an automaton <code>a</code>, with a variable <code>x</code>, the absolute
name of the variable object is <code>a.x</code>. If CIF textual syntax keyword are
used as names for events (such as <code>plant</code>), then they must be escaped in
<code>.cif</code> files (<code>$plant</code>). For filters however, all escape characters (<code>$</code>)
in the names are ignored. The <code>*</code> character can be used as wildcard, to
indicate zero or more characters. If a filter doesn&#8217;t match any of the state
objects of the CIF model (after filtering them for supported types etc), a
warning is printed to the console. A warning is also printed if the entire
state is filtered out.</p>
</div>
<div class="paragraph">
<p>By default, filters include matching state objects. Filters may however be
preceded by a <code>-</code> character, turning them into exclusion filters, which
exclude matching states objects rather than including them. Filters are
processed in the order they are specified, allowing for alternating additions
and removals. If a filter does not result in the addition/removal of any state
objects to/from the filter result, a warning is printed to the console.</p>
</div>
<div class="paragraph">
<p>As an example, option value <code>a.*,-a.b*,a.bc*</code> consists of three filters:
<code>a.*</code>, <code>-a.b*</code>, and <code>a.bc*</code>. The first filter indicates that state
objects whose absolute names start with <code>a.</code> are to be included. The second
filter indicates that from those matching state objects, the state objects
whose absolute names start with <code>a.b*</code> are to be excluded. To that result,
the third filter adds those state objects whose absolute names start with
<code>a.bc*</code>. For instance, if a specification contains state objects <code>time</code>,
<code>a.a</code>, <code>a.b</code> <code>a.bb</code>, <code>a.bc</code>, <code>a.b.c</code>, <code>a.bc</code>, <code>a.bcc</code>, and
<code>a.bcd</code>, the result of the three filters is that the following state objects
are displayed: <code>a.a</code>, <code>a.bc</code>, <code>a.bc</code>, <code>a.bcc</code>, and <code>a.bcd</code>.</p>
</div>
<div class="paragraph">
<p>The default option value (filter) is <code>*</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-output">Output</h7>
<div class="paragraph">
<p>
The variables are sorted alphabetically, based on their absolute names. The
only exception is variable <code>time</code>, which is always listed first.</p>
</div>
<div class="paragraph">
<p>For variables with a boolean type, value <code>false</code> is represented by <code>0</code>, and
value <code>true</code> is represented by <code>1</code>.</p>
</div>
<div class="paragraph">
<p>

For each time transition, the trajectories of the variables are printed to the
trajectory data file. The first line is a comment, and contains the names of
the variables. Each of the subsequent lines contain the values of the variables
for a specific value of variable <code>time</code>. The exact times for which the
values are printed to the trajectory data file, is determined by the
<a href="#tools-cifsim-solver-chapter-basics-int">ODE solver integrator</a>, and can be
influenced using the <a href="#tools-cifsim-solver-chapter-options">integration options</a>,
as well as the <a href="#tools-cifsim-solver-chapter-options-outstep">fixed output step size</a> option.</p>
</div>
<div class="paragraph">
<p>An example of a trajectory data file, for a single time transition:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code># time controller.n tank.V tank.V' tank.Qi tank.Qo
0.0 0 10.0 -3.1622776601683795 0.0 3.1622776601683795
0.08763429266802605 0 9.7247959763441 -3.1184605138343664 0.0 3.1184605138343664
0.587634292668026 0 8.228065719426915 -2.868460513834366 0.0 2.868460513834366
1.087634292668026 0 6.8563354625097315 -2.618460513834366 0.0 2.618460513834366
1.587634292668026 0 5.609605205592543 -2.3684605138343646 0.0 2.3684605138343646
2.0876342926680262 0 4.487874948675351 -2.1184605138343624 0.0 2.1184605138343624
2.5876342926680262 0 3.491144691758149 -1.8684605138343569 0.0 1.8684605138343569
3.0876342926680262 0 2.619414434840913 -1.618460513834339 0.0 1.618460513834339
3.496128195593086 0 1.9999999999999958 -1.4142135623730936 0.0 1.4142135623730936</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-trajdata-prettify">Prettifying</h7>
<div class="paragraph">
<p>To make the output in the trajectory data file easier to read, the output
can be <em>prettified</em>. If prettifying is enabled, then after the simulation ends,
the trajectory data file is read, prettified, and rewritten. A fixed width is
then used for each column (each variable), with a fixed column separation.
After prettification, the above trajectory data file looks like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code># time                controller.n   tank.V               tank.V'               tank.Qi   tank.Qo
0.0                   0              10.0                 -3.1622776601683795   0.0       3.1622776601683795
0.08763429266802605   0              9.7247959763441      -3.1184605138343664   0.0       3.1184605138343664
0.587634292668026     0              8.228065719426915    -2.868460513834366    0.0       2.868460513834366
1.087634292668026     0              6.8563354625097315   -2.618460513834366    0.0       2.618460513834366
1.587634292668026     0              5.609605205592543    -2.3684605138343646   0.0       2.3684605138343646
2.0876342926680262    0              4.487874948675351    -2.1184605138343624   0.0       2.1184605138343624
2.5876342926680262    0              3.491144691758149    -1.8684605138343569   0.0       1.8684605138343569
3.0876342926680262    0              2.619414434840913    -1.618460513834339    0.0       1.618460513834339
3.496128195593086     0              1.9999999999999958   -1.4142135623730936   0.0       1.4142135623730936</code></pre>
</div>
</div>
<div id="tools-cifsim-output-trajdata-sep" class="paragraph">
<p>By default, the trajectory data output is prettified using a column separation
of three spaces. This can be changed using the
<b class="menuref">Trajectory data separation amount</b>
option
(<b class="menuref">Output: Trajectory data</b>
category). Using this option,
prettification can be disabled, or a different number of spaces can be used
between the columns.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-undoreset-4">Undo/reset</h7>
<div class="paragraph">
<p>It is possible to go back in time, by
<a href="#tools-cifsim-input-history-reset-undo">undoing</a> one or more transitions, or
by <a href="#tools-cifsim-input-history-reset-undo">resetting</a> the simulation.
However, once a time transition is taken, trajectory data is written to the
output file. The simulator does not remove data for time points that are then
suddenly in the future. If simulation continues after the undo or reset, new
data may be written at the end of the trajectory, for the same time points that
were already present earlier in the data file. As such, the data contained in
the trajectory data file, may no longer be useful after an undo or reset, if
simulation continues afterwards.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-chapter-plotviz">Plot visualizer</h6>
<div class="paragraph">
<p>


For models with variables, especially continuous ones, it may be useful to be
able to observe how their values change, as time progresses during simulation.
The <em>plot visualizer</em> can be used for that exact purpose. The plot visualizer
can create graphical plots, where the x-axis represents the values of variable
<code>time</code>, and the y-axis represents values of the variables being plotted. Here
is an example screenshot of the visualizer:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/plotviz_sshot.png" alt="plotviz sshot">
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="tools-cifsim-output-plotviz-option" class="paragraph">
<p>Plot visualization is disabled by default. It can be enabled using the
<b class="menuref">Plot visualization</b>
option (<b class="menuref">Output: Plot visualization</b>
category).</p>
</div>
<div class="sect6">
<h7 id="tools-variables">Variables</h7>
<div class="paragraph">
<p>The plot visualizer can plot the values of the following variables (officially
'state objects'):</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The state variables, which includes the discrete variables and the continuous
variables.</p>
</li>
<li>
<p>The derivatives of the continuous variables. This does not include the
derivative of variable <code>time</code>.</p>
</li>
<li>
<p>The algebraic variables.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Only variables of type <code>bool</code>, <code>int</code> (with or without ranges), or <code>real</code>
can be plotted. For variables with a boolean type, value <code>false</code> is
represented by <code>0</code>, and value <code>true</code> is represented by <code>1</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-plotviz-filtering">Filtering</h7>
<div class="paragraph">
<p>By default, if plot visualization is enabled, all variables (officially
'state objects') that can be plotted are plotted. The one exception is variable
<code>time</code>, which is excluded by default, as it already represents the x-axis.
That is, variables are plotted against time. Using the
<b class="menuref">Plot visualization filters</b>
option
(<b class="menuref">Output: Plot visualization</b>
category), the state objects can
be filtered. The
<b class="menuref">Plot visualization filters</b>
option only has effect
if plot visualization is enabled, using the
<b class="menuref">Plot visualization</b>
option.</p>
</div>
<div class="paragraph">
<p>As value for the option, comma separated <em>filters</em> should be supplied. Each
filter specifies one or more state objects. The absolute names of the objects
are used. That is, for an automaton <code>a</code>, with a variable <code>x</code>, the absolute
name of the variable object is <code>a.x</code>. If CIF textual syntax keyword are
used as names for events (such as <code>plant</code>), then they must be escaped in
<code>.cif</code> files (<code>$plant</code>). For filters however, all escape characters (<code>$</code>)
in the names are ignored. The <code>*</code> character can be used as wildcard, to
indicate zero or more characters. If a filter doesn&#8217;t match any of the state
objects of the CIF model, a warning is printed to the console. A warning is
also printed if the entire state is filtered out.</p>
</div>
<div class="paragraph">
<p>By default, filters include matching state objects. Filters may however be
preceded by a <code>-</code> character, turning them into exclusion filters, which
exclude matching states objects rather than including them. Filters are
processed in the order they are specified, allowing for alternating additions
and removals. If a filter does not result in the addition/removal of any state
objects to/from the filter result, a warning is printed to the console.</p>
</div>
<div class="paragraph">
<p>As an example, option value <code>a.*,-a.b*,a.bc*</code> consists of three filters:
<code>a.*</code>, <code>-a.b*</code>, and <code>a.bc*</code>. The first filter indicates that state
objects whose absolute names start with <code>a.</code> are to be included. The second
filter indicates that from those matching state objects, the state objects
whose absolute names start with <code>a.b*</code> are to be excluded. To that result,
the third filter adds those state objects whose absolute names start with
<code>a.bc*</code>. For instance, if a specification contains state objects <code>time</code>,
<code>a.a</code>, <code>a.b</code> <code>a.bb</code>, <code>a.bc</code>, <code>a.b.c</code>, <code>a.bc</code>, <code>a.bcc</code>, and
<code>a.bcd</code>, the result of the three filters is that the following state objects
are displayed: <code>a.a</code>, <code>a.bc</code>, <code>a.bc</code>, <code>a.bcc</code>, and <code>a.bcd</code>.</p>
</div>
<div class="paragraph">
<p>The default option value (filter) is <code>*,-time</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-multiple-plot-visualizers">Multiple plot visualizers</h7>
<div class="paragraph">
<p>By default, only one visualizer is shown. However, using the
<b class="menuref">Plot visualization filters</b>
option
(<b class="menuref">Output: Plot visualization</b>
category), it is possible to specify
that multiple visualizers should be used. The option allows for filtering of
the state objects, as described above. However, such filters can be separated
by semicolons, to specify the filters per visualizer.</p>
</div>
<div class="paragraph">
<p>As an example, consider option value <code>time,a.x;b.y</code>. This results in two
plot visualizers. The first one displays state objects <code>time</code> and <code>a.x</code>,
while the second one displays state object <code>b.y</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-plotviz-mode">Plot visualization modes</h7>
<div class="paragraph">
<p>There are two plot visualization modes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Live plotting. In this mode, the plots are shown at the start of the
simulation, and are continuously updated as new data becomes available during
simulation.</p>
</li>
<li>
<p>Postponed plotting. In this mode, the plots are shown after the simulation
has <a href="#tools-cifsim-chapter-termination">ended</a>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Which plot visualization mode to use, can be configured using the
<b class="menuref">Plot visualization mode</b>
option
(<b class="menuref">Output: Plot visualization</b>
category). Using that option it is
possible to explicitly choose one of the modes. By default, an automatic mode
is used, which chooses between live and postponed mode, as follows:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><a href="#tools-cifsim-input-chapter-index">Input mode</a> vs <a href="#tools-cifsim-output-chapter-realtime">real-time simulation</a></th>
<th class="tableblock halign-left valign-top">Real-time enabled</th>
<th class="tableblock halign-left valign-top">Real-time disabled</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-input-chapter-console">Interactive console input mode</a> (pure interactive)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-input-chapter-console">Interactive console input mode</a> (<a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic</a>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">postponed</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-input-chapter-gui">Interactive GUI input mode</a> (pure interactive)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-input-chapter-gui">Interactive GUI input mode</a> (<a href="#tools-cifsim-input-chapter-semi-automatic">semi-automatic</a>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">postponed</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-input-chapter-automatic">Automatic input mode</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">postponed</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-input-chapter-trace">Trace input mode</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">postponed</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-input-svg-chapter-index">SVG input mode</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">live</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">postponed</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>When doing a non real-time simulation, using a non-interactive input mode leads
to as fast as possible simulation, where a lot of data points are calculated in
a short amount of time. If live plotting mode is then enabled, this floods the
visualizer with so much data that it can&#8217;t keep up. The effect is a
non-responsive user interface. While the automatic default can thus be
overridden using the option, it is generally not recommended.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-plotviz-range">Plot visualization range</h7>
<div class="paragraph">
<p>For simulations that span longer periods of (model) time, there may be too
much data to display, for the limited width of the time axis (x-axis). To keep
the plot useful, the range of time values to display on the x-axis can be
configured using the
<b class="menuref">Plot visualization range</b>
option
(<b class="menuref">Output: Plot visualization</b>
category).</p>
</div>
<div class="paragraph">
<p>By default, only the <code>50</code> most recent time units are displayed. That is, if
the current model time is <code>120</code>, then the plot only shows the values of the
variables from time <code>70</code> to time <code>120</code>. Using the option, the length of the
range can configured to any other positive value. The option can also be used
to set the range to infinite, to display the values of the variables during
the entire simulation, from time <code>0</code> to the current model time.</p>
</div>
<div class="paragraph">
<p>For long running simulations, with lots variables, using an infinite range can
lead to large numbers of data points, which can have a significant effect on
performance. This applies especially for live plotting mode.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-plotviz-data">Data points</h7>
<div class="paragraph">
<p>This section describes which data points are visualized. For most users, this
will be of little interest, as it essentially works as you would expect.</p>
</div>
<div class="paragraph">
<p>The plot visualizer adds data points (a <code>time</code> value and a value of a
variable at that time) for all variables, for the following
<a href="#tools-cifsim-traces-state">states</a>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The initial state of the simulation.</p>
</li>
<li>
<p>The start state of every time transition.</p>
</li>
<li>
<p><a href="#tools-cifsim-output-realtime-frames">Intermediate states</a> of time
transitions, only if real-time simulation is enabled.</p>
</li>
<li>
<p>Trajectory data points of time transitions, only if real-time simulation is
disabled.</p>
</li>
<li>
<p>The end state of every time transition.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For real-time simulation, the amount of model time between two intermediate
states is the <a href="#tools-cifsim-output-realtime-delta">model time delta</a>,
and can be influenced using the
<a href="#tools-cifsim-output-realtime-framerate">frame rate</a> and
<a href="#tools-cifsim-output-realtime-simspeed">simulation speed</a>.</p>
</div>
<div class="paragraph">
<p>For non real-time simulation, the trajectory data points are determined by the
<a href="#tools-cifsim-solver-chapter-basics-int">ODE solver integrator</a>, and can be
influenced using the <a href="#tools-cifsim-solver-chapter-options">integration options</a>,
as well as the <a href="#tools-cifsim-solver-chapter-options-outstep">fixed output step size</a> option.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-plotviz-trajdata-relation">Relation to trajectory data output</h7>
<div class="paragraph">
<p>The plot visualizer can be used for simple plotting. It can be customized a bit
through options, as described above. However, the level of customization is
somewhat limited. For instance, the appearance can not be customized. This is
intentional.</p>
</div>
<div class="paragraph">
<p>If further customization is required, use the
<a href="#tools-cifsim-output-chapter-trajdata">trajectory data output component</a>
instead. It allows saving the data to a file, for further processing with
external tools, such as
<a href="http://www.r-project.org/">R</a>.</p>
</div>
<div class="paragraph">
<p>Such post processing is then performed after the simulation has
<a href="#tools-cifsim-chapter-termination">ended</a>. A benefit of the plot visualizer, is
that it allows live plotting mode, without the need of post processing, and
which can be enabled with little effort. The plot visualizer is meant to be
used only to get a basic understanding of how values of variables change as
time progresses.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-plotviz-trajdata-save">Saving a plot image</h7>
<div class="paragraph">
<p>The plot visualizer can export the currently visible plot to several different
image formats. To export the image, first make sure that the plot visualizer
has the focus. Then select <span class="menuseq"><b class="menu">File</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Save As&#8230;&#8203;</b></span> to open the
<b class="menuref">Save plot as</b>
dialog. Alternatively, right click the plot itself,
and choose
<b class="menuref">Save As&#8230;&#8203;</b>
from the popup menu, to open the
<b class="menuref">Save plot as</b>
dialog. In the dialog, specify the file name of the
exported image. Click
<b class="button">OK</b>
to confirm and continue.</p>
</div>
<div class="paragraph">
<p>A second dialog appears, in which the size of the exported image can be
specified. By default, the current size of the visualizer is used. A custom
size can be entered. The width and height need to specified in pixels,
separated by a <code>x</code> character. For instance, for a width of <code>640</code> pixels and
a height of <code>480</code> pixels, enter <code>640x480</code> into the dialog. Click <code>OK</code> to
confirm and to actually export the image.</p>
</div>
<div class="paragraph">
<p>The following
<a href="http://en.wikipedia.org/wiki/Raster_graphics">raster image</a>
formats are supported:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">Portable Network Graphics</a>
(<code>*.png</code>)</p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/JPEG">JPEG</a>
(<code>*.jpg</code>)</p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/Graphics_Interchange_Format">Graphics Interchange Format</a>
(<code>*.gif</code>)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The image format that is used to export the image, is derived from the file
extension that is used. For each of the supported file formats, the allowed
file names (with file extensions) are indicated above (between parentheses).</p>
</div>
<div class="paragraph">
<p>After the image is exported, the workspace is refreshed to show that new image
file, if the image was saved in a project that is visible in the
'Project Explorer' tab or 'Package Explorer' tab.</p>
</div>
<div class="paragraph">
<p>In order for the export to succeed, data points must be available for at least
two time values.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-undoreset-5">Undo/reset</h7>
<div class="paragraph">
<p>It is possible to go back in time, by
<a href="#tools-cifsim-input-history-reset-undo">undoing</a> one or more transitions, or
by <a href="#tools-cifsim-input-history-reset-undo">resetting</a> the simulation.</p>
</div>
<div class="paragraph">
<p>If one or more transitions are undone, data for all time points that are then
suddenly in the future, are removed. More precisely, all data for time points
added for time transitions that have been undone, are removed.</p>
</div>
<div class="paragraph">
<p>If the simulation is reset, the entire plot is cleared.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-chapter-stateviz">State visualizer</h6>
<div class="paragraph">
<p>


The <a href="#tools-cifsim-output-chapter-normal">normal console output</a>, which may
include the <a href="#tools-cifsim-traces-state">state</a> of the specification,
is printed to the console. The entire state is then printed as a single line
of text, which can be hard to read as the specification grows, and the state
contains more and more variables. The <em>state visualizer</em> can be used as an
alternative. It shows the same information, but in a table in a separate
window. Here is an example screenshot of the visualizer:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/output/stateviz_sshot.png" alt="stateviz sshot">
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div id="tools-cifsim-output-stateviz-option" class="paragraph">
<p>Unlike <a href="#tools-cifsim-output-svgviz-chapter-index">SVG visualization</a>, which
requires that the user makes an image of the system and couples the image to
the specification, the state visualizer can be used directly, without any
additional effort. All that is required to use it, is to enable it. The state
visualizer is disabled by default, and can be enabled using the
<b class="menuref">State visualization</b>
option (<b class="menuref">Output: State visualization</b>
category).</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-contents">Contents</h7>
<div class="paragraph">
<p>The state visualizer shows all the discrete, continuous, and algebraic
variables of the specification, as well as their values. It also shows the
derivatives of the continuous variables, and their values. This includes
variable <code>time</code>, but not its derivative. It also shows the automata, with
their current locations. The variables and automata are listed in alphabetical
order, except for variable <code>time</code>, which is always shown at the top.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-icons-and-legend">Icons and legend</h7>
<div class="paragraph">
<p>The icons on the left indicate the kind of object that is shown in a particular
row of the table:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="image"><img src="./tools/cifsim/output/stateviz_aut.png" alt="stateviz aut"></span>
An automaton, with its current location.</p>
</li>
<li>
<p><span class="image"><img src="./tools/cifsim/output/stateviz_discvar.png" alt="stateviz discvar"></span>
A discrete variable, with its current value.</p>
</li>
<li>
<p><span class="image"><img src="./tools/cifsim/output/stateviz_contvar.png" alt="stateviz contvar"></span>
A continuous variable (includes variable <code>time</code>),
with its current value.</p>
</li>
<li>
<p><span class="image"><img src="./tools/cifsim/output/stateviz_deriv.png" alt="stateviz deriv"></span>
A derivative of a continuous variable (excludes variable
<code>time</code>), with its current value.</p>
</li>
<li>
<p><span class="image"><img src="./tools/cifsim/output/stateviz_algvar.png" alt="stateviz algvar"></span>
An algebraic variable, with its current value.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
The values are updated for the initial state, states reached after transitions
(event transitions and time transitions), as well as for
<a href="#tools-cifsim-output-realtime-frames">frames</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-stateviz-filtering">Filtering</h7>
<div class="paragraph">
<p>By default, all state objects are displayed by the state visualizer. Using
the
<b class="menuref">State visualization filters</b>
option
(<b class="menuref">Output: State visualization</b>
category), the state objects can
be filtered. The
<b class="menuref">State visualization filters</b>
option only has effect
if state visualization is enabled, using the
<b class="menuref">State visualization</b>
option.</p>
</div>
<div class="paragraph">
<p>As value for the option, comma separated <em>filters</em> should be supplied. Each
filter specifies one or more state objects. The absolute names of the objects
are used. That is, for an automaton <code>a</code>, with a variable <code>x</code>, the absolute
name of the variable object is <code>a.x</code>. If CIF textual syntax keyword are
used as names for events (such as <code>plant</code>), then they must be escaped in
<code>.cif</code> files (<code>$plant</code>). For filters however, all escape characters (<code>$</code>)
in the names are ignored. The <code>*</code> character can be used as wildcard, to
indicate zero or more characters. If a filter doesn&#8217;t match any of the state
objects of the CIF model, a warning is printed to the console. A warning is
also printed if the entire state is filtered out.</p>
</div>
<div class="paragraph">
<p>By default, filters include matching state objects. Filters may however be
preceded by a <code>-</code> character, turning them into exclusion filters, which
exclude matching states objects rather than including them. Filters are
processed in the order they are specified, allowing for alternating additions
and removals. If a filter does not result in the addition/removal of any state
objects to/from the filter result, a warning is printed to the console.</p>
</div>
<div class="paragraph">
<p>As an example, option value <code>a.*,-a.b*,a.bc*</code> consists of three filters:
<code>a.*</code>, <code>-a.b*</code>, and <code>a.bc*</code>. The first filter indicates that state
objects whose absolute names start with <code>a.</code> are to be included. The second
filter indicates that from those matching state objects, the state objects
whose absolute names start with <code>a.b*</code> are to be excluded. To that result,
the third filter adds those state objects whose absolute names start with
<code>a.bc*</code>. For instance, if a specification contains state objects <code>time</code>,
<code>a.a</code>, <code>a.b</code> <code>a.bb</code>, <code>a.bc</code>, <code>a.b.c</code>, <code>a.bc</code>, <code>a.bcc</code>, and
<code>a.bcd</code>, the result of the three filters is that the following state objects
are displayed: <code>a.a</code>, <code>a.bc</code>, <code>a.bc</code>, <code>a.bcc</code>, and <code>a.bcd</code>.</p>
</div>
<div class="paragraph">
<p>The default option value (filter) is <code>*</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-multiple-state-visualizers">Multiple state visualizers</h7>
<div class="paragraph">
<p>By default, only one visualizer is shown. However, using the
<b class="menuref">State visualization filters</b>
option
(<b class="menuref">Output: State visualization</b>
category), it is possible to specify
that multiple visualizers should be used. The option allows for filtering of
the state objects, as described above. However, such filters can be separated
by semicolons, to specify the filters per visualizer.</p>
</div>
<div class="paragraph">
<p>As an example, consider option value <code>time,a.x;b.y</code>. This results in two
state visualizers. The first one displays state objects <code>time</code> and <code>a.x</code>,
while the second one displays state object <code>b.y</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-undoreset-6">Undo/reset</h7>
<div class="paragraph">
<p>By <a href="#tools-cifsim-input-history-reset-undo">undoing</a> one or more transitions,
or by <a href="#tools-cifsim-input-history-reset-undo">resetting</a> the simulation, the
state may change. The state visualizer is automatically updated to reflect such
changes.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-output-chapter-realtime">Real-time simulation</h6>
<div class="paragraph">
<p>


The CIF simulator allows for a form of real-time simulation. By enabling
real-time simulation, the simulator interprets the model time (the value of
variable <code>time</code>) in seconds. The simulator attempts to ensure that the actual
simulation time is equal to the model time. This feature is very useful for
visualizers, which then visualize their output at a steady rate. Without
real-time simulation, the rate at which such visualizers would visualize their
output, would primarily be determined by the amount of time it takes for the
simulator to compute the output, leading to abrupt slow downs and sudden speed
increases.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-realtime-frames">Frames</h7>
<div class="paragraph">
<p>If real-time simulation is disabled, visualizations are only updated for the
<a href="#tools-cifsim-traces-state">states</a> that are reached. That is, the
visualizations are updated for the initial state, and each new state that is
reached after taking a transition. The visual representations of the
visualizations resulting from these states are called <em>frames</em>.</p>
</div>
<div class="paragraph">
<p>As time progresses, the values of continuous variables (and algebraic variables
for which the value is directly or indirectly derived from a continuous
variable, etc) change. If the visualization is only updated before and after
time transitions, as is done when real-time simulation is disabled, this leads
to 'jumps' in the visualization. For real-time simulation, the simulator
calculates states that are evenly spaced over time. This ensures that we get
regular updates of the visualizations, as time progresses, and the
visualizations thus become 'smooth' or 'fluent'. If enough states are
visualized per second, a visualization essentially becomes a <em>movie</em>.</p>
</div>
<div class="paragraph">
<p>



The states that result from transitions are always calculated. For real-time
simulation, the simulator calculates additional states for the purpose
of visualization, as mentioned above. These additional states are called
<em>intermediate states</em>, and the corresponding visual representations of the
visualizations to which they lead are called <em>intermediate frames</em>.</p>
</div>
<div class="paragraph">
<p>For real-time simulation, the simulator thus uses intermediate frames that are
evenly spaced over time, for smooth visualizations. A consequence of this, is
that state changes between those intermediate frames are lost. If the effect is
still visible in the next intermediate state, this is not a problem. If however
the effect is temporary, and does not last until the next intermediate state,
the effect is thus not visualized.</p>
</div>
<div class="paragraph">
<p>For real-time simulation combined with an interactive
<a href="#tools-cifsim-input-chapter-index">input mode</a>, the
simulator uses both the state frames and the intermediate frames. This ensures
that at the moment an interactive choice has to be made about which
transition to take, the visualization reflects the current state of the system.
Semi-automatic mode is not taken into account.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-realtime-framerate">Frame rate</h7>
<div class="paragraph">
<p>Using the
<b class="menuref">Frame rate</b>
option (<b class="menuref">Output</b>
category), it is
possible to specify how often per second of real time, visualizations should
be updated. A higher frame rate leads to more updates per second, and thus to
a more fluent visualization. However, since a higher frame rate also leads to
more frequent updates, the amount of CPU power it takes to perform these
updates increases as well. If the computer can not update the visualization in
time for the next update to take place, the visualization may start to
'stutter'.</p>
</div>
<div class="paragraph">
<p>
The frame rate will thus always be a compromise between fluency and
performance. Choosing an appropriate frame rate depends not only on the
complexity of the specification being simulated and the visualization that is
being shown, but also on the computer on which the simulation is run.
Furthermore, it may depend on the other tasks the computer is performing while
the simulation is being run.</p>
</div>
<div class="paragraph">
<p>Frame rates are always positive, and may be fractional. For instance, a frame
rate of <code>7.5</code> is valid, and will update the visualization 7.5 times per
second.</p>
</div>
<div class="paragraph">
<p>A low frame rate (typically less than 10 frames per second) can have a
devastating effect on the
<a href="#tools-cifsim-input-svg-simulation-responsiveness">responsiveness of SVG input</a>.
Similarly, it can hinder
<a href="#tools-cifsim-chapter-termination">termination</a> of the simulation, as the red
<em>Terminate</em> button has no effect between intermediate frames. That is, the
effect of clicking the button is postponed until the next frame, or until the
time transition ends.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-realtime-simspeed">Simulation speed</h7>
<div class="paragraph">
<p>If real-time simulation is enabled, the simulator by default interprets the
model time (the value of variable <code>time</code>) in seconds. However, this can be
changed using the
<b class="menuref">Simulation speed</b>
option (<b class="menuref">Output</b>
category). This option specifies a scaling factor. A scaling factor of <code>1.0</code>
interprets model time as seconds, <code>2.0</code> is twice as fast (1 unit of model
time takes 0.5 seconds), etc. The simulation speed must always be positive,
and may be fractional. For instance, a simulation speed of <code>0.5</code> is valid,
and will interpret model time as twice as slow (1 unit of model time takes 2
seconds).</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-enabling-real-time-simulation">Enabling real-time simulation</h7>
<div class="paragraph">
<p>By default, real-time simulation is disabled, and the simulator will try to
simulate as fast as possible (infinite speed, taking time transitions takes no
time). By setting a frame rate and/or a simulation speed, real-time simulation
can be enabled. If only one of the options is specified, the other gets a
default value. The default frame rate for real-time simulation is <code>20.0</code>
frames per second. The default simulation speed is <code>1.0</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div id="tools-cifsim-output-realtime-outcomp" class="paragraph">
<p>Enabling real-time simulation requires a real-time output component
(visualizer). Currently, the following real-time output components are
available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-index">SVG visualizer</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If real-time simulation is enabled without using a real-time output component,
simulation can&#8217;t be started. Closing the visualizer of a real-time simulation
during the simulation, if it is the last remaining real-time output component,
leads to the simulation being <a href="#tools-cifsim-chapter-termination">stopped</a>.</p>
</div>
<div class="paragraph">
<p>All real-time output components can also be used when real-time simulation is
disabled, but obviously without any real-time effects.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-output-realtime-delta">Model time delta</h7>
<div class="paragraph">
<p>The simulation speed does not influence the frame rate. That is, both options
can be specified orthogonally. The two options together however, do influence
the model time delta, the amount of model time between two consecutive updates
of the visualizations, i.e. the amount of model time between two consecutive
intermediate frames. The model time delta is calculated using the following
formula (where <code>r</code> is the frame rate, and <code>s</code> is the simulation speed):
1 / (<code>r</code> / <code>s</code>). Doubling the frame rate results in half the model time
delta, while doubling the simulation speed results in double the model time
delta.</p>
</div>
<div class="paragraph">
<p>If the model time delta becomes to big, this may lead to 'jumps' in the
visualization. In such cases, increasing the frame rate, or reducing the
simulation speed causes a smaller model time delta, leading to a more fluent
visualization.</p>
</div>
<div class="paragraph">
<p>The model time delta (and thus the frame rate and simulation speed) also
affects the <a href="#tools-cifsim-solver-chapter-options-outstep">ODE solver fixed output step size</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-test-mode">Test mode</h7>
<div class="paragraph">
<p><a href="#tools-cifsim-chapter-test-mode">Test mode</a> disables all real-time delays of
the real-time simulation mode, but still updates the visualizations for the
intermediate frames. With test mode enabled, it is also allowed to perform a
real-time simulation without real-time output component.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-simulation-advanced-topics">Simulation advanced topics</h4>
<div class="sect4">
<h5 id="tools-cifsim-chapter-options">Simulator options</h5>
<div class="paragraph">
<p>
The CIF simulator can be configured via various options. The available
options are listed below, per category.</p>
</div>
<div class="paragraph">
<p><strong>General</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Help</em>: Prints the help text of the application to the console.</p>
</li>
<li>
<p><a href="#tools-cifsim-output-mode">Output mode</a></p>
</li>
<li>
<p><em>License</em>: Prints the license text of the application to the console.</p>
</li>
<li>
<p><em>Developer mode</em>: Option to control whether exceptional situations return
limited and user-friendly information (the default), or extended developer
oriented information. This option is primarily intended for the developers of
the CIF simulator, and should not be used by end users.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Simulation</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>CIF specification</em>: The absolute or relative local file system path to the
CIF specification (<code>.cif</code> file) to simulate. May also be a
<a href="#tools-cifsim-chapter-repeated-simulation">compiled code file</a> (<code>.cifcode</code>
file).</p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-init">CIF specification initialization</a></p>
</li>
<li>
<p><a href="#tools-cifsim-termination-endtime">Simulation end time</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-endtime-maxdelay">Maximum delay</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-distr-seeds">Initial seed for stochastic distributions</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-complete-mode">Complete mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-extfuncs-async">External functions asynchronous execution</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-profiling">Profiling</a></p>
</li>
<li>
<p><a href="#tools-cifsim-termination-confirm">Ask to confirm simulator termination</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-max-time-point-tol">Maximum time point tolerance</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-debug-gen-code">Load debug code</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Compiler</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-repeated-sim-compile-once">Compile only</a></p>
</li>
<li>
<p><a href="#tools-cifsim-repeated-sim-compile-once">Compiled code file</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-java-compiler">Java compiler</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Input</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-input-chapter-index">Input mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-automatic-trans">Automatic mode choice algorithm</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-automatic-time">Automatic mode time transition duration</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-trace-file">Trace input file</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-chapter-semi-automatic">Interactive mode automatic transition choice</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-env-events">Environment events</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-history-enable">History</a></p>
</li>
<li>
<p><a href="#tools-cifsim-input-history-size">History size</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Output</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-chapter-normal">Normal output</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-normal-state-filter">Normal output state filters</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-chapter-debug">Debug output</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-realtime-framerate">Frame rate</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-realtime-simspeed">Simulation speed</a></p>
</li>
<li>
<p><a href="#tools-cifsim-chapter-test-mode">Test mode</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Output: SVG visualization</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-svgviz-simulation-option">SVG visualization</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Output: Trajectory data</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-trajdata-option">Trajectory data</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-trajdata-file">Trajectory data file</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-trajdata-filters">Trajectory data filters</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-trajdata-sep">Trajectory data separation amount</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Output: Plot visualization</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-plotviz-option">Plot visualization</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-plotviz-mode">Plot visualization mode</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-plotviz-filtering">Plot visualization filters</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-plotviz-range">Plot visualization range</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Output: State visualization</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-stateviz-option">State visualization</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-stateviz-filtering">State visualization filters</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>ODE solver</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-solver-chapter-options-outstep">ODE solver fixed output step size</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>ODE solver: ODE integrator</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-solver-options-int-algo">ODE solver integrator algorithm</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-int-tol">ODE solver integrator absolute tolerance</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-int-tol">ODE solver integrator relative tolerance</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-int-step">ODE solver integrator minimum step size</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-int-step">ODE solver integrator maximum step size</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-int-numstep">ODE solver integrator number of steps</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>ODE solver: ODE root finder</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-solver-options-root-maxcheck">ODE solver root finder maximum check interval</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-root-algo">ODE solver root finding algorithm</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-root-tol">ODE solver root finder absolute tolerance</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-root-tol">ODE solver root finder relative tolerance</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-options-root-maxiter">ODE solver root finder maximum iterations</a></p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-performance">Simulation performance</h5>
<div class="paragraph">
<p>

General performance information about Java or Eclipse typically applies to the
CIF simulator as well. This page provides additional information specific to
the CIF simulator.</p>
</div>
<div class="sect5">
<h6 id="tools-closing-the-simulator">Closing the simulator</h6>
<div class="paragraph">
<p>Closing the simulator ensures that all its resources are freed, and become
available for other applications.
The CIF simulator however, may ask you to press <kbd>ENTER</kbd> to
<a href="#tools-cifsim-termination-confirm">confirm termination</a> of the
simulator. If asked, as long as you haven&#8217;t pressed <kbd>ENTER</kbd> yet, the
status of the console will still show it&#8217;s running, and the application can&#8217;t
release its resources.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-slow-starting-of-the-simulator">Slow starting of the simulator</h6>
<div class="paragraph">
<p>If simulation is slow to start, you can try a different
<a href="#tools-cifsim-chapter-java-compiler">Java compiler</a>. You can also try to
<a href="#tools-cifsim-repeated-sim-compile-once">compile the model once</a>,
reducing the start time of the simulator for
<a href="#tools-cifsim-chapter-repeated-simulation">repeated simulations</a>.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-slow-termination-of-the-simulator">Slow termination of the simulator</h6>
<div class="paragraph">
<p>If termination of the simulator is slow, this may be related to
the <a href="#tools-cifsim-output-chapter-trajdata">trajectory data output component</a>.
If its <a href="#tools-cifsim-output-trajdata-prettify">prettifying</a> option is
enabled, it will read the trajectory data file after the simulation terminates,
and write the whole file again in a prettier from. This may take some time,
especially on slow remote/network file systems or storage devices. Disabling
the option or the trajectory data output may solve this problem, as may
switching to a faster file system or storage device.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-value-simplification">Value simplification</h6>
<div class="paragraph">
<p>By applying the <a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a> CIF to CIF transformation
before simulation, you may be able to simplify the specification, and thus
improve the performance of both starting up the simulator, as well as the
actual simulation.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-simulation-options">Simulation options</h6>
<div class="paragraph">
<p>Various simulation options can be tweaked to increase the simulation
performance:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-console">Console output</a></p>
<div class="paragraph">
<p>Reducing the amount of console output significantly improves simulation
performance.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-output-components">Output components</a></p>
<div class="paragraph">
<p>By disabling certain output components, the simulator needs to do less work,
and this may improve the performance of the simulation.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-output-chapter-realtime">Real-time simulation</a></p>
<div class="paragraph">
<p>The performance and perceived 'smoothness' or 'fluency' of visualizations can
be influenced via the
<a href="#tools-cifsim-output-realtime-framerate">frame rate</a> and
<a href="#tools-cifsim-output-realtime-simspeed">simulation speed</a>.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-endtime-maxdelay">Maximum delay</a></p>
<div class="paragraph">
<p>By decreasing the maximum allowed length of a single time transition, shorter
time transitions are calculated, which takes less time. After the shorter
time delay, the simulator will calculate the remainder of the time
transition. Essentially, the time transitions are cut into parts, which are
calculated separately, over time. As such, the calculation time is spread
out over time as well. This can make
<a href="#tools-cifsim-output-svgviz-chapter-index">SVG visualizations</a> feel more fluent. However, each time
transition calculation has a certain amount of overhead, so reducing the
maximum delay too much is not a good idea.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-chapter-complete-mode">Complete mode</a></p>
<div class="paragraph">
<p>By disabling the complete mode, the simulator has to perform less work to
calculate the possible transitions, improving the simulation performance.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-index">Solver</a></p>
<div class="paragraph">
<p>The ODE solver options can be used to make the ODE solver faster, usually at
the expense of accuracy. For instance, increasing the various tolerances
reduces the number of calculations needed by the ODE solver, but makes the
calculated trajectories less accurate. Switching algorithms may also improve
the performance, as may increasing the maximum check interval.</p>
</div>
</li>
<li>
<p><a href="#tools-cifsim-extfuncs-async">External functions synchronous execution</a></p>
<div class="paragraph">
<p>Using synchronous execution for external user-defined functions reduces
their execution overhead.</p>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-solver-chapter-index">ODE solver</h5>
<div class="paragraph">
<p>



During time transitions, the values of the continuous variables and their
derivatives change. These changes are calculated using an
<a href="http://en.wikipedia.org/wiki/Ordinary_differential_equation">ODE</a>
<a href="http://en.wikipedia.org/wiki/Numerical_ordinary_differential_equations">integrator</a>.
As soon as a guard for an event becomes enabled, time should no longer
progress. To calculate whether (and when) guards change value, a
<a href="http://en.wikipedia.org/wiki/Root-finding_algorithm">root finding algorithm</a>
is used.
Software to solve ODEs, through integration and root finding, are often called
ODE solvers. The CIF simulator uses the
<a href="http://commons.apache.org/proper/commons-math/">The Apache Commons Mathematics Library</a>.
This library
contains ODE solvers, with several different integrators and root finding
algorithms.</p>
</div>
<div class="paragraph">
<p>Debug information about what the ODE solver calculates, and for what time
points, can be enabled using the <em>Debug output</em> option. See the
<a href="#tools-cifsim-output-chapter-debug">Debug console output</a> page for more information.</p>
</div>
<div class="paragraph">
<p><strong>Basic topics</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-solver-chapter-basics-int">The basics of numeric integration</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-basics-root">The basics of numeric root finding</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-root-problems">Problems with root finding</a> (and missed guards/events)</p>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-options-outstep">Fixed output step size</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Advanced topics</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-solver-chapter-endtime-maxdelay">Simulation end time and maximum delay</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-options">ODE solver integrator options</a></p>
</li>
<li>
<p><a href="#tools-cifsim-solver-chapter-options-root">ODE solver root finder options</a></p>
</li>
</ul>
</div>
<div class="sect5">
<h6 id="tools-cifsim-solver-chapter-basics-int">The basics of numeric integration</h6>
<div class="paragraph">
<p>



During time transitions, the values of the continuous variables and their
derivatives change. The derivatives have explicit equations, the continuous
variables change according to the value of their derivatives. Using the
equations for the derivatives as a system of
<a href="http://en.wikipedia.org/wiki/Ordinary_differential_equation">ordinary differential equations</a>
(ODEs),
together with the initial values of the continuous variables as the <em>initial
conditions</em>, this essentially comes down to solving an
<a href="http://en.wikipedia.org/wiki/Initial_value_problem">initial value problem</a>
(IVP).</p>
</div>
<div class="paragraph">
<p>Such problems can be solved through
<a href="http://en.wikipedia.org/wiki/Integral">integration</a>.
For some problems it is possible to do this
<a href="http://en.wikipedia.org/wiki/Symbolic_integration">symbolically</a>.
For more complex systems of ODEs however,
<a href="http://en.wikipedia.org/wiki/Numerical_ordinary_differential_equations">numerical methods</a>
are used. The CIF simulator uses
<a href="http://commons.apache.org/proper/commons-math/">The Apache Commons Mathematics Library</a>,
which contains several numerical integrators.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-linear-ode">Linear ODE</h7>
<div class="paragraph">
<p>Consider the following CIF specification, with a linear ODE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont x = 0.0;
equation x' = 1.0;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The solution to this IVP, is the values of continuous variable <code>x</code> and its
derivative <code>x'</code>, as function of variable <code>time</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/integr_linear.png" alt="integr linear">
</div>
</div>
<div class="paragraph">
<p>Here, the numerical integrator start with the initial value of continuous
variable <code>x</code>, which is <code>0.0</code>. For the initial value of variable <code>time</code>,
which is also <code>0.0</code>, it computes <code>x'</code>, which is <code>1.0</code>. It then slightly
increases the value of variable <code>time</code> to say <code>1e-6</code>. Assuming a linear
continuous variable <code>x</code>, the value of variable <code>x</code> at that time is <code>1e-6</code>
as well.</p>
</div>
<div class="paragraph">
<p>The numerical integrator tries to predict the values of the derivative as time
progresses. It gradually increases the value of variable <code>time</code>, predicting
the value of the derivative at the next time point. If the next prediction
closely matches the actual calculated value, the integrator moves on to the
next time point. If the next prediction is not close enough to the actual
calculated value of the derivative for that time point, more intermediate
values are calculated. That is, the integrator tries to approximate the
derivative as time progresses, while increasing the time between two
consecutive time points. As long as the predictions match the actual
calculated value of the derivative at the next time point, it keeps increasing
the step size even further. If the predictions are not good enough (the
difference with the actual calculated value is above a certain tolerance), more
intermediate time points are investigated. The values calculated for those
time points can then be used to come up with a better approximation, that
better predicts the value of the derivative at future time points.</p>
</div>
<div class="paragraph">
<p>For the linear ODE given above, the <a href="#tools-cifsim-output-chapter-trajdata">trajectory data</a>
calculated by the integrator is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code># time                 x                       x'
0.0                    0.0                     1.0
9.999999999999999e-5   1.0000000000000003e-4   1.0
0.0011                 0.0011000000000000005   1.0
0.0111                 0.011100000000000006    1.0
0.1                    0.10000000000000006     1.0</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note that the time points for which the values were calculated, are indicated
in the figure above by small plus signs (<code>+</code>).</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-nonlinear-ode">Nonlinear ODE</h7>
<div class="paragraph">
<p>The approximations of the integrator don&#8217;t need to be linear. Some integrators
for instance support
<a href="http://en.wikipedia.org/wiki/Nonlinear#Nonlinear_differential_equations">nonlinear differential equations</a>.
Consider the following CIF specification, with such a nonlinear ODE:</p>
</div>
<div class="paragraph">
<p>The solution calculated by the numerical integrator is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont x = 0.0;
equation x' = (x * x) - x - 2;</code></pre>
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/integr_nonlinear.png" alt="integr nonlinear">
</div>
</div>
<div class="paragraph">
<p>Here, we see how the step size is increased initially, as the linear
approximation is good enough. As soon as we get to the bend, the step size is
reduced to better approximate the actual values. After the bend, the step size
is slowly increased again. The integrator internally uses a polynomial of a
higher degree to approximate this differential equation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-discontinuities">Discontinuities</h7>
<div class="paragraph">
<p>If the derivative has a
<a href="http://en.wikipedia.org/wiki/Discontinuity_%28mathematics%29">discontinuity</a>,
such as in the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">cont x = 1.0;
equation x' = if x &lt; 2: 1.0
              else      3.0
              end;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The integrator will try to figure out the time point at which the discontinuity
occurs, by decreasing the step size as it nears the discontinuity. After the
discontinuity, the step size is gradually increased, as integration continues:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/integr_discont.png" alt="integr discont">
</div>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-solver-chapter-basics-root">The basics of numeric root finding</h6>
<div class="paragraph">
<p>

During time transitions, the values of the continuous variables and their
derivatives change. If continuous variables or their derivatives are (directly
or indirectly) used in guards of edges, changes in their values may result in
the guard becoming enabled, as time progresses. To detect such changes during
<a href="#tools-cifsim-solver-chapter-basics-int">integration</a>, a
<a href="http://en.wikipedia.org/wiki/Root-finding_algorithm">root finding algorithm</a>
can be used.</p>
</div>
<div class="paragraph">
<p>Consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  cont x = 0.0;
  equation x' = 0.5;

  location:
    initial;
    edge when x &gt;= 1.5 do x := 0.0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, the value of continuous variable <code>x</code> increases with <code>0.5</code> every time
unit. Once the value of <code>1.5</code> is reached, the variable is reset to <code>0.0</code>.
This process is repeated:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/root_simple.png" alt="root simple">
</div>
</div>
<div class="paragraph">
<p>If we look at the data calculated by the numerical integrator, to solve the ODE
problem:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/root_simple2.png" alt="root simple2">
</div>
</div>
<div class="paragraph">
<p>we see that values are calculated for time points <code>1.1111</code> and <code>5.0</code>. If we
then also look at the value of the guard, where we use value <code>-1</code> for
<code>false</code> and <code>+1</code> for <code>true</code>:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/root_simple_guard.png" alt="root simple guard">
</div>
</div>
<div class="paragraph">
<p>we see that at time <code>1.1111</code>, the value of the guard is <code>-1</code> (<code>false</code>).
At time <code>5.0</code> it is <code>+1</code> (<code>true</code>). That is, the guard changed value
between two time points calculated by the integrator. If this is the case, the
ODE solver tries to calculate the exact time point at which the guard changes
its value. That is, it calculates the exact time point at which the guard
function crosses the time axis, and thus has a
<a href="http://en.wikipedia.org/wiki/Zero_of_a_function">root</a>.</p>
</div>
<div class="paragraph">
<p>


One of the simplest root finding algorithms, is the
<a href="http://en.wikipedia.org/wiki/Bisection_method">bisection method</a>.
This algorithm starts with
the two time points where the guard has opposite
<a href="http://en.wikipedia.org/wiki/Sign_%28mathematics%29">signs</a>.
This is the interval
where the guard sign change occurs (it contains the root). The bisection method
tries to reduce the size of the interval, by calculating the value of the guard
in the middle of the interval. Depending on the sign of the value of the guard
at this middle point, this middle point replaces either the lower bound or the
upper bound of the interval. This is done in such a way that the values of the
guard at the lower and upper bound of the interval have opposite signs, and the
interval thus <em>brackets</em> the root.</p>
</div>
<div class="paragraph">
<p>For the example above, the root is calculated as follows:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/root_root.png" alt="root root">
</div>
</div>
<div class="paragraph">
<p>We start with the interval <code>[1.1111 .. 5.0]</code>. The middle point is <code>3.0555</code> at which
the guard holds, just like the upper bound (at <code>5.0</code>). Thus <code>5.0</code> is replaced by
<code>3.0555</code>. The middle point of <code>1.1111</code> and <code>3.0555</code> is <code>1.5972</code>. Since the guard holds
for time <code>1.5972</code>, upper bound <code>3.0555</code> is replaced by <code>1.5972</code>. The middle point
of <code>1.1111</code> and <code>1.5972</code> is <code>1.3542</code>. The guard does not hold at time <code>1.3542</code>, so the
lower bound of <code>1.1111</code> (at which the guard does not hold) is replaced by <code>1.3542</code>.
This process continues until the interval is smaller than a certain tolerance
value. Once we have that interval, we can choose a value from the interval as
the computed root.</p>
</div>
<div class="paragraph">
<p>While the bisection method is relatively simple, the root finding algorithms
used by the CIF simulator work using the same principles. However, they
converge much faster. That is, they requires much less iterations of updating
the bounds, to get to a satisfactory answer.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-solver-chapter-root-problems">Problems with root finding</h6>
<div class="paragraph">
<p>
With <a href="#tools-cifsim-solver-chapter-basics-root">numeric root finding</a>, there is
the risk of missing guard changes, which means there is the risk of missing
event transitions.</p>
</div>
<div class="sect6">
<h7 id="tools-the-problem">The problem</h7>
<div class="paragraph">
<p>To illustrate the problem, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  cont x = 0.0;
  equation x' = 1.0;

  location:
    initial;
    edge when x &gt;= 2.33 and x &lt;= 2.34 do x := 0.0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification, when simulated using the CIF simulator, using default
settings, results in:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/root_problem.png" alt="root problem">
</div>
</div>
<div class="paragraph">
<p>From the image, where the values calculated by the integrator are indicated
using small plus signs (<code>+</code>), we can see that for times <code>2.1111</code> and
<code>2.6111</code>, the integrator calculated points. Since the function is linear
between those two time points, no additional intermediate time points were
investigated. Since the guard becomes <code>true</code> after time point <code>2.1111</code> (at
time point <code>2.33</code>) and also becomes <code>false</code> again before time point
<code>2.61111</code> (at time point <code>2.34</code>), the integrator misses the guard change.
That is, for every time point that the guard is evaluated, it is <code>false</code>, and
the change in guard value is thus not detected. We miss the guard, and thus
the event that resets variable <code>x</code> to <code>0.0</code>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-solution-1-maximum-check-interval">Solution 1: maximum check interval</h7>
<div class="paragraph">
<p>The first solution is to use the
<b class="menuref">ODE solver root finder maximum check interval</b>
option (<b class="menuref">ODE solver: ODE root finder</b>
category). This
option can be used to set the maximum time interval between two consecutive
checks of the sign of the guard. By default, this is <code>0.5</code> time units. If we
set this value to <code>0.001</code>, then we ensure that at least once every <code>0.001</code>
time units, the guard sign is checked. This means that between time points
<code>2.1111</code> and <code>2.61111</code>, the guard will be checked approximately 500 times.
This also means that between time points <code>2.33</code> and <code>2.34</code>, the guard will
be checked approximately 10 times. Therefore, this ensures that we check a time
point just before time <code>2.33</code>, and one just after it, which means we can&#8217;t
miss the guard change.</p>
</div>
<div class="paragraph">
<p>In the above example, <code>x'</code> is <code>1.0</code>. If however <code>x'</code> would be <code>2.0</code>,
then the time interval where the guard is enabled reduces from <code>0.01</code> time
units to <code>0.005</code> time units. Using a maximum check interval of <code>0.001</code>
would then still suffice, as the guard would be checked approximately 5 times
in that time interval. If however <code>x'</code> is <code>100</code>, then the time interval
would become <code>0.0001</code>, which is smaller than the maximum check interval of
<code>0.001</code>. That is, the derivatives of the values occurring in guards influence
the value that should be chosen for the maximum delay interval.</p>
</div>
<div class="paragraph">
<p>In general, to choose an appropriate value for the maximum check interval, not
only the the ranges of values of the variables where the guard is enabled
should be taken into account, but the steepness of their derivatives as well.
That is, the value of the maximum check interval should be based on the time
interval where the guard is enabled. Choosing half the duration of the smallest
of such time intervals, for all guards, is generally a good choice.</p>
</div>
<div class="paragraph">
<p>
Note that choosing a smaller interval results in more guard change checks, and
thus negatively impacts the performance of the simulation. Therefore, choosing
a maximum check interval that is unnecessarily small also unnecessarily
reduces performance of the simulation.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-solution-2-splitting-the-guard">Solution 2: splitting the guard</h7>
<div class="paragraph">
<p>We can reformulate the original CIF specification, by splitting the guard:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  cont x = 0.0;
  equation x' = 1.0;

  location:
    initial;
    edge when x &gt;= 2.33, x &lt;= 2.34 do x := 0.0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification, when simulated using the CIF simulator, using default
settings, results in:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/cifsim/solver/root_problem2.png" alt="root problem2">
</div>
</div>
<div class="paragraph">
<p>The difference with the original specification is the guard of the edge. In the
original specification, the <code>and</code> binary operator is used, making it a single
guard. In the new specification, a comma (<code>,</code>) is used, which constructs two
separate guards. Both guards can be individually checked by the root finding
algorithm. As shown in the image, each of the guards changes value only once.</p>
</div>
<div class="paragraph">
<p>The comma between guards means that both guards have to hold, in order for the
edge to be enabled. This is similar, but not identical, to the <code>and</code> binary
operator. For the <code>and</code> binary operator, the left hand side must be evaluated
before the right hand side, and the right hand side may only be evaluated if
the left hand side evaluates to <code>true</code>. This is called
<a href="http://en.wikipedia.org/wiki/Short-circuit_evaluation">short-circuit evaluation</a>.
For guards separated by commas, no such relation may be assumed. That is, even if
the first guard evaluates to false, can the second guard still be evaluated by
the root finding algorithm, for guard changes. It can even be the case that the
second guard is evaluated before the first guard. These differences not only
influence root finding, but are also of particular interest when the right hand
side can result in a runtime evaluation failure. For instance, the following
specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  cont x der 1.0;
  location:
    initial;
    edge when x &gt; 0, 1 / x &lt; 0.5 do x := 0.0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>results in a runtime error. The second guard (<code>1 / x &lt; 0.5</code>) is evaluated
even if the first guard (<code>x &gt; 0</code>) does not hold. Initially, the first guard
does not hold, and the second guard results in division by zero. Changing the
comma between the guards to an <code>and</code> operator, makes it possible to simulate
this specification.</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-debug-information">Debug information</h7>
<div class="paragraph">
<p>Debug information about what the ODE solver calculates, and for what time
points, can be enabled using the <em>Debug output</em> option. This may be useful in
figuring out why the guard was missed, and what settings need to be changed.
See the <a href="#tools-cifsim-output-chapter-debug">Debug console output</a> page for more information.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-solver-chapter-options-outstep">Fixed output step size</h6>
<div class="paragraph">
<p>


The <a href="#tools-cifsim-solver-chapter-basics-int">integrator</a> determines the time
points for which values are calculated. By default, those points are included
in the trajectories. This means that they are also the output of the
<a href="#tools-cifsim-output-chapter-trajdata">trajectory data output component</a>.
The integrator determines the time points for which to calculate values, based
on the complexity of the ODEs. The integrator can be influenced using
the <a href="#tools-cifsim-solver-chapter-options">integrator options</a>.</p>
</div>
<div class="paragraph">
<p>Sometimes however, it may be more convenient to have the integration output
at more regular intervals. Using the
<b class="menuref">ODE solver fixed output step size</b>
option (<b class="menuref">ODE solver</b>
category), a fixed output step size can be
configured. This value must be an integer or real number larger than zero.</p>
</div>
<div class="paragraph">
<p>This option does not influence the actual time points for which the integrator
calculates the values. Instead, it influences how these results are put in the
trajectories, that are subsequently used by the simulator.</p>
</div>
<div class="paragraph">
<p>Setting a fixed output step size, ensures that the trajectories contain output
for all multiples of the given step size. They will however also contain output
for the start and end of each time transition, which may not be at multiples
of the step size, due to guards becoming enabled or disabled at other times.</p>
</div>
<div class="paragraph">
<p>

If <a href="#tools-cifsim-output-chapter-realtime">real-time</a> simulation is enabled, the
default is changed to automatically use the
<a href="#tools-cifsim-output-realtime-delta">model time delta</a> that is used for
real-time simulation, as the fixed output step size. This way, the trajectories
contain the time points for which intermediate
<a href="#tools-cifsim-output-realtime-frames">frames</a> are generated. If
real-time simulation is enabled, setting a custom fixed output step size is
not supported.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-solver-chapter-endtime-maxdelay">Simulation end time and maximum delay</h6>
<div class="paragraph">
<p>


The maximum length of a time transition is determined by several factors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The current simulation time.</p>
</li>
<li>
<p>The simulation <a href="#tools-cifsim-termination-endtime">end time</a>.</p>
</li>
<li>
<p>The maximum allowed delay amount.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The current simulation time is the value of variable <code>time</code>. Each time
transition starts at the current time.</p>
</div>
<div class="paragraph">
<p>Using the
<b class="menuref">Simulation end time</b>
option (<b class="menuref">Simulator</b>
category), the <a href="#tools-cifsim-termination-endtime">end time</a> of the
simulation can be configured. By setting a simulation end time, you ensure that
when the value of variable <code>time</code> reaches that value, the simulation
<a href="#tools-cifsim-chapter-termination">terminates</a>. Settings a simulation end time
also limits the maximum length of a time transition, since from the current
time, a limited amount of time can pass before the end time is reached. By
default the simulation end time is set to 'infinite', which means that
simulation termination, and the maximum length of a time transition, are not
limited by a simulation end time.</p>
</div>
<div class="paragraph">
<p>
Using the
<b class="menuref">Maximum delay</b>
option (<b class="menuref">Simulator</b>
category),
the maximum delay amount for a single time transition can be set. If set, no
time transitions longer than the specified value may be calculated. This limits
the maximum length of time transitions to that value. Essentially, this cuts
time transitions into parts with a maximum length specified by this option. By
default, the maximum delay is set to 'infinite', which means that the maximum
length of a time transition is not limited by this option. Restricting the
maximum delay amount for a time transition should generally be avoided.
For debugging purposes however, it may be useful to disable passage of time
altogether. This can be achieved by using a maximum delay of <code>0</code>.</p>
</div>
<div class="paragraph">
<p>If both a simulation end time and a maximum allowed delay amount are specified,
the most restrictive of them determines the maximum length of the time
transition. If neither is specified, the simulator will attempt to calculate a
time transition of length <code>100.0</code>.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-solver-chapter-options">ODE solver integrator options</h6>
<div class="paragraph">
<p>

The <a href="#tools-cifsim-solver-chapter-basics-int">integrator</a> used by the ODE solver
of the CIF simulator, can be configured using several options.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-cifsim-solver-options-int-algo">Integration algorithm</h7>
<div class="paragraph">
<p>The
<b class="menuref">ODE solver integrator algorithm</b>
option
(<b class="menuref">ODE solver: ODE integrator</b>
category) can be used to configure the
integrator algorithm to use. The following algorithms are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Higham and Hall 5(4)</p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/Dormand-Prince">Dormand-Prince 5(4)</a></p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/Dormand-Prince">Dormand-Prince 8(5,3)</a>
(default)</p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/Bulirsch-Stoer_algorithm">Gragg-Bulirsch-Stoer</a></p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/Adams_method">Adams-Bashforth</a>
(experimental)</p>
</li>
<li>
<p><a href="http://en.wikipedia.org/wiki/Adams_method">Adams-Moulton</a>
(experimental)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The algorithms differ in the complexity of the systems of ODEs that they can
handle, their performance, the precision of their results, etc. All these
algorithms use an
<a href="http://en.wikipedia.org/wiki/Adaptive_stepsize">adaptive step size</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-solver-options-int-tol">Absolute and relative tolerance</h7>
<div class="paragraph">
<p>The
<b class="menuref">ODE solver integrator absolute tolerance</b>
option
(<b class="menuref">ODE solver: ODE integrator</b>
category) and the
<b class="menuref">ODE solver integrator relative tolerance</b>
option
(<b class="menuref">ODE solver: ODE integrator</b>
category), can be used to configure how
precise the results of the integrator should be. The lower the tolerance (or
error), the higher the precision of the results, but also the more computing
time it costs to get to that precision. The absolute precision is the
difference between the prediction and the actual value, while the relative
precision is that same difference, as a fraction of the actual value. In the
latter case, precision reduces with increasing values.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-solver-options-int-step">Minimum and maximum step size</h7>
<div class="paragraph">
<p>The interval between two consecutive time points calculated by the integrator
can be configured using the
<b class="menuref">ODE solver integrator minimum step size</b>
option (<b class="menuref">ODE solver: ODE integrator</b>
category) and the
<b class="menuref">ODE solver integrator maximum step size</b>
option
(<b class="menuref">ODE solver: ODE integrator</b>
category).</p>
</div>
<div class="paragraph">
<p>The default minimum step size is <code>1e-15</code> and the default maximum step size is
<code>0.5</code>. Note however that the last step can be smaller than the value
specified for the minimum step size option.</p>
</div>
<div class="paragraph">
<p>
Increasing the maximum default step size may lead to better performance, but
can also lead to less precision, and <a href="#tools-cifsim-solver-chapter-root-problems">root finding problems</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-solver-options-int-numstep">Number of steps</h7>
<div class="paragraph">
<p>The
<b class="menuref">ODE solver integrator number of steps</b>
option
(<b class="menuref">ODE solver: ODE integrator</b>
category) can be used to configure the
number of steps to use for the experimental
<a href="http://en.wikipedia.org/wiki/Adams_method">Adams-Bashforth</a>
and
<a href="http://en.wikipedia.org/wiki/Adams_method">Adams-Moulton</a>
integrators. The number of steps must be greater or equal to two.</p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-solver-chapter-options-root">ODE solver root finder options</h6>
<div class="paragraph">
<p>

The <a href="#tools-cifsim-solver-chapter-basics-root">root finder</a> used by the ODE
solver of the CIF simulator, can be configured using several options.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-cifsim-solver-options-root-maxcheck">Maximum check interval</h7>
<div class="paragraph">
<p>The
<b class="menuref">ODE solver root finder maximum check interval</b>
option
(<b class="menuref">ODE solver: ODE root finder</b>
category) is explained on a separate
page. See <a href="#tools-cifsim-solver-chapter-root-problems">Problems with root finding</a>.</p>
</div>
<div class="paragraph">
<p>



</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-solver-options-root-algo">Root finding algorithm</h7>
<div class="paragraph">
<p>The
<b class="menuref">ODE solver root finding algorithm</b>
option
(<b class="menuref">ODE solver: ODE root finder</b>
category) can be used to configure the
root finding algorithm to use. The following algorithms are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Regula Falsi
(<a href="http://en.wikipedia.org/wiki/False_position_method">False position</a>)
method</p>
</li>
<li>
<p>Illinois method</p>
</li>
<li>
<p>Pegasus method (default)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The <em>Illinois</em> and <em>Pegasus</em> methods are modified <em>Regula Falsi</em> methods. The
algorithms differ only in how they choose the middle point of the interval.
This influences their convergence speed. The <em>Regula Falsi</em> method in
particular should be avoided in practice.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-solver-options-root-tol">Absolute and relative tolerance</h7>
<div class="paragraph">
<p>The
<b class="menuref">ODE solver root finder absolute tolerance</b>
option
(<b class="menuref">ODE solver: ODE root finder</b>
category) and the
<b class="menuref">ODE solver root finder relative tolerance</b>
option
(<b class="menuref">ODE solver: ODE root finder</b>
category), can be used to
configure how precise the results of the root finder should be. The lower the
tolerance (or error), the higher the precision of the results, but also the
more computing time it costs to get to that precision. The absolute precision
is the difference between the prediction and the actual value, while the
relative precision is that same difference, as a fraction of the actual value.
In the latter case, precision reduces with increasing values.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-cifsim-solver-options-root-maxiter">Maximum iterations</h7>
<div class="paragraph">
<p>The
<b class="menuref">ODE solver root finder maximum iterations</b>
option
(<b class="menuref">ODE solver: ODE root finder</b>
category) can be used to set the
maximum number of iterations to use for root finding. This value must be at
least one. If the root interval is larger than the tolerances allow, after the
maximum number of iterations, root finding fails.</p>
</div>
<div class="paragraph">
<p>If it fails for your CIF specification, increase the value of this option. If
that does not help, your specification is most likely too complex (by nature),
or has a modeling error that causes the specification to become too complex
for the root finding algorithm to handle. The problem however, may also be in
one of the other root finder options, or in one of the
<a href="#tools-cifsim-solver-chapter-options">integrator options</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-java-compiler">Java compiler</h5>
<div class="paragraph">
<p>

The simulator internally generates
<a href="http://oracle.com/java">Java</a>
code from
the CIF model. This code is compiled using a Java compiler and executed. Code
generation and compilation result in faster simulation. However, compilation
itself also takes time. The time it takes to compile is different for different
Java compilers.</p>
</div>
<div class="paragraph">
<p>Using the <em>Java Compiler</em> option (<em>Compiler</em> category), the Java compiler
implementation to use, can be configured. We currently provide two different
Java compilers:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Java compiler from the Java Development Kit (<code>jdk</code>)</p>
<div class="paragraph">
<p>The Java Development Kit (JDK) that is required to use our tooling
includes a Java compiler. This compiler has the advantage that is has a bit
less overhead of accessing the file system, while it has as disadvantage that
it is a slower in actually compiling the Java code.</p>
</div>
</li>
<li>
<p>Eclipse Compiler for Java (<code>eclipse</code>)</p>
<div class="paragraph">
<p>The Eclipse Compiler for Java (ecj) is part of the Eclipse Java Development
Tools (JDT), and is provided with our tooling. This compiler has the
advantage that is is a faster in actually compiling the Java code, while it
has as disadvantage that it has a bit more overhead of accessing the file
system.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The names given above, in parentheses, indicate the command line option values
to use for selecting the different compilers.</p>
</div>
<div class="paragraph">
<p>In general, the JDK compiler is faster for small CIF models, while the Eclipse
compiler is faster for larger CIF models. By default, the JDK compiler is
used.</p>
</div>
<div class="paragraph">
<p>The <em>Java Compiler</em> option has no effect when simulating using a
<a href="#tools-cifsim-chapter-repeated-simulation">compiled code file</a> (e.g. a
<code>.cifcode</code> file) for repeated simulations, or when
<a href="#tools-cifsim-chapter-debug-gen-code">debugging generated code</a> by enabling
the <em>Load debug code</em> option (<em>Simulator</em> category).</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-simulation-miscellaneous-topics">Simulation miscellaneous topics</h4>
<div class="sect4">
<h5 id="tools-cifsim-chapter-complete-mode">Complete mode</h5>
<div class="paragraph">
<p>
The CIF simulator calculates for each <a href="#tools-cifsim-traces-state">state</a>
the set of transitions that are possible from
that state. It is up to the <a href="#tools-cifsim-input-chapter-index">input component</a>
to choose one of those transitions, as the transition to take. Using the
<a href="#tools-cifsim-input-chapter-automatic">automatic input mode</a>, it is possible to
always choose the first transition that is possible.</p>
</div>
<div class="paragraph">
<p>In that situation, it is then a waste of resources to calculate the other
possible transitions. Using the
<b class="menuref">Complete mode</b>
option (<b class="menuref">Simulator</b>)
category), it is possible to enable complete mode. If
complete mode is enabled, the calculation of the possible transitions stops as
soon as one possible transition is found.</p>
</div>
<div class="paragraph">
<p>The following values are available for the complete mode option:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Auto: disable if possible, enable otherwise</em></p>
<div class="paragraph">
<p>Automatically chooses whether to enable or disable complete mode. If it is
allowed to disable complete mode, it will be disabled. Otherwise, complete
mode will be enabled.</p>
</div>
</li>
<li>
<p><em>On: forced enabled</em></p>
<div class="paragraph">
<p>Enables complete mode. All possible transitions will be calculated.</p>
</div>
</li>
<li>
<p><em>Off: forced disabled</em></p>
<div class="paragraph">
<p>Disables complete mode. Only the first possible transitions will be
calculated.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Currently, it is only allowed to disable complete mode, if the
<a href="#tools-cifsim-input-chapter-automatic">automatic input mode</a> or
<a href="#tools-cifsim-input-svg-chapter-index">SVG input mode</a> is used, together with
always choosing the first possible transition.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-extfuncs">External user-defined functions</h5>
<div class="paragraph">
<p>

The CIF simulator supports external user-defined functions. Currently, the
following external languages are supported:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-chapter-extfuncs-java">Java</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>


</p>
</div>
<div class="sect5">
<h6 id="tools-cifsim-extfuncs-async">Asynchronous execution</h6>
<div class="paragraph">
<p>By default, external user-defined functions are executed asynchronously. This
ensures that the simulation can be <a href="#tools-cifsim-chapter-termination">terminated</a>
during the execution of such a function. This is
useful if such functions take a long time to execute. It is also particularly
useful for external functions that never terminate, for instance because they
get stuck in a loop, often due to a bug.</p>
</div>
<div class="paragraph">
<p>
This asynchronous execution however, does lead to a performance penalty. To
get rid of this performance penalty, disable asynchronous execution, leading
to synchronous execution. Asynchronous execution can be disabled using the
<b class="menuref">External functions asynchronous execution</b>
option
(<b class="menuref">Simulator</b>
category).</p>
</div>
<div class="paragraph">
<p>By disabling the asynchronous execution, the simulator can no longer be
terminated if it gets stuck executing an external user-defined function. If the
functions runs for a long time, the termination is postponed until the external
function finishes its execution.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cifsim-extfuncs-side-effects">Side effects</h6>
<div class="paragraph">
<p>All user-defined functions in CIF are pure mathematical functions. They must
therefore be deterministic, and may not have side effects. For internal
user-defined functions, this is enforced. For external user-defined functions,
it is mostly impossible to check this constraint in an implementation, and the
responsibility for checking this is therefore delegated to the end user.
Practically, this means that for instance logging statements in functions,
while essentially side effects, may be permitted, as long as the function
returns the same value, if given the same arguments. This is essential for
correct simulation results, as the results of function calls may for instance
be cached by the simulator.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-value-semantics">Value semantics</h6>
<div class="paragraph">
<p>The CIF simulator uses value semantics for the parameters and return values
of functions. That is, changes to the parameters of functions in external
user-defined functions are <em>not</em> reflected back to the CIF specification.
Furthermore, changes to the return values in the CIF simulator have no effect
on subsequent calls to external user-defined functions.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-extfuncs-java">External user-defined Java functions</h5>
<div class="paragraph">
<p>
External user-defined Java functions allow the use of static Java methods from
CIF specifications. This page explains how to use such Java methods, how the
simulator loads and invokes them, what is allowed, etc. It explicitly does not
explain how to write or compile Java code.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-external-implementation-reference">External implementation reference</h6>
<div class="paragraph">
<p>Consider the following examples of external user-defined Java function:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">func real f1(real x): &quot;java:java.lang.Math.expm1&quot;;

func int f2(bool x): &quot;java:pkg.Cls.method|../some.jar;bin&quot;;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Two external user-defined functions are given as examples. Both have a string
literal as external implementation reference. For Java functions, the string
literal must start with <code>java:</code>. Then the absolute name of the Java method
that is to be invoked is given. That is, the package name, class name, and
method name are given, separated by dots (<code>.</code>).</p>
</div>
<div class="paragraph">
<p>Optionally, a Java class path may be given at the end, preceded by a bar
(<code>|</code>) character. The class path entries must be separated by semicolons
(<code>;</code>) regardless of the operating system. The class path entries are absolute
or relative local file system paths to Jar files or directories with Java class
files. Relative paths are resolved against the directory that contains the
CIF specification in which the external user-defined function is declared. Both
Linux/Mac path separators (<code>/</code>) and Windows path separators (<code>\</code>) may be
used in class path entries. However, <code>\</code> must be escaped as <code>\\</code> in CIF
string literals, and thus it is recommended to always use <code>/</code> as path
separator. A discussion of the Java class path concept is beyond the scope of
this documentation.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-supported-types-and-values">Supported types and values</h6>
<div class="paragraph">
<p>Not all CIF data types are supported for the parameters and return values of
external user-defined Java functions. The following table lists the allowed
CIF types, and their corresponding Java types.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">CIF type</th>
<th class="tableblock halign-left valign-top">Java type</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.lang.Boolean</code> / <code>boolean</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.lang.Integer</code> / <code>int</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int[a..b]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.lang.Integer</code> / <code>int</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.lang.Double</code> / <code>double</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>string</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.lang.String</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>list t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.util.List&lt;t&gt;</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>set t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.util.List&lt;t&gt;</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>dict(k: v)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.util.Map&lt;k, v&gt;</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tuple(t1, t2, ..., tn)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.util.List&lt;java.lang.Object&gt;</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Unless otherwise specified, the primitive Java types (<code>boolean</code>, <code>int</code>,
and <code>double</code>) can be used interchangeably with their class variants
(<code>java.lang.Boolean</code>, <code>java.lang.Integer</code>, and <code>java.lang.Double</code>).
For lists and sets, the element type recursively affects the type parameters of
the Java types. Similarly, for dictionaries, the key and value types affect
the type parameters of the Java <code>Map</code> type. Since Java doesn&#8217;t have tuples,
and there is no way in Java to define a type with a variable number of type
parameters, CIF tuples are passed to Java as a list of objects. It may be
assumed that such lists have the same number of elements as there are fields in
the original tuple, and that the elements have types that correspond to the
types of the field of the tuple. The following table shows a few examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">CIF type</th>
<th class="tableblock halign-left valign-top">Java type</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>boolean</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>list int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.util.List&lt;java.lang.Integer&gt;</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>set tuple(int a, b)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.util.Set&lt;java.util.List&lt;java.lang.Object&gt;&gt;</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For parameters, no <code>null</code> values are ever passed, not even as elements of
lists, etc. Furthermore, for <code>real</code> typed values, <code>NaN</code>, positive infinity,
and negative infinity are never passed along.</p>
</div>
<div class="paragraph">
<p>For return values, <code>null</code> values, as well as <code>NaN</code>, positive infinity, and
negative infinity are considered runtime errors. Furthermore, integer values
outside their CIF integer type range bounds are considered runtime errors as
well.</p>
</div>
<div class="paragraph">
<p>




</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-method-resolution">Method resolution</h6>
<div class="paragraph">
<p>The class as specified in the external implementation reference is loaded using
a Java class loader. By default, the system class loader is used. If additional
class path entries are specified in the external implementation reference, an
extended class loader is used that searches in the additional class path
entries before deferring to the system class loader. The class is loaded using
the
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#name">binary name</a>
of the class.</p>
</div>
<div class="paragraph">
<p>The method that is resolved must be a static method. The access modifier of the
static method is irrelevant. That is, it doesn&#8217;t matter whether the method is
<code>private</code>, <code>protected</code>, <code>public</code>, etc.</p>
</div>
<div class="paragraph">
<p>The method is resolved in the Java Virtual Machine (JVM) that runs the
simulator. The method is resolved by name, and parameter types. The parameter
types only include the top level type. That is, for CIF type <code>list int</code>, the
Java type <code>java.util.List</code> is used as the type of the parameter. If more than
one method with the same parameter types is declared in the class, and one of
these methods has a return type that is more specific than any of the others,
that method is used. Otherwise one of the methods is chosen arbitrarily.</p>
</div>
<div class="paragraph">
<p>For parameters that have primitive Java types as their type, the primitive
types are used to resolve the method instead of their classes. In other words,
when resolving the method, or the proper overload of the method, <code>int</code> and
<code>java.lang.Integer</code> are considered incompatible.</p>
</div>
<div class="paragraph">
<p>The CIF simulator employs lazy loading. That is, if the external Java
function is never called, it is also never loaded.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-method-invocation">Method invocation</h6>
<div class="paragraph">
<p>The method is invoked in the Java Virtual Machine (JVM) that runs the
simulator, using reflection. By default, it is invoked
<a href="#tools-cifsim-extfuncs-async">asynchronously</a>.</p>
</div>
<div class="paragraph">
<p>Since the parameter types are not checked recursively when the method is
resolved, methods may fail to execute properly if the type signatures don&#8217;t
match exactly. Similarly, for the return type only the top level type is
checked. If a return value does not match the CIF type (wrong element type,
wrong tuple length, etc), simulation will fail with a runtime error.</p>
</div>
<div class="paragraph">
<p>Any exceptions that occur during execution of the Java method are caught by
the simulator. When the simulator catches such an exception, it will print the
Java stack trace of the exception to the console, and simulation will be
<a href="#tools-cifsim-chapter-termination">terminated</a>.</p>
</div>
<div class="paragraph">
<p>





</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-side-effects">Side effects</h6>
<div class="paragraph">
<p>As all functions in CIF, external user-defined Java functions should not have
any <a href="#tools-cifsim-extfuncs-side-effects">side effects</a>. That is, if
called with the same arguments, it should return the same value each time.
More concretely, maintaining state information should be avoided, as should
file I/O, and reading from stdin.</p>
</div>
<div class="paragraph">
<p>Writing to stdout and stderr should not affect the result of the method. It
should however be avoided as well, as such writes are associated with the
streams of the Java Virtual Machine (JVM), and not the simulator. The output
will not end up on the Eclipse console of the simulator.</p>
</div>
<div class="paragraph">
<p>By default, the Java methods are invoked <a href="#tools-cifsim-extfuncs-async">asynchronously</a>,
on a freshly created thread. That is, there
is no guarantee that an invocation uses the same thread as the previous
invocation. If static fields (class variables) are used to maintain state, this
may cause problems if thread safety is not ensured by the Java method. If
synchronous execution is used, all external function calls are invoked from the
simulation thread, and such thread safety issues should not be a problem.</p>
</div>
<div class="paragraph">
<p>You should assume that each external function is loaded using a different
class loader. As such, multiple Java methods from the same class, from the
same external library, may be loaded using different class loaders as
well. As such, shared static fields (class variables) of those classes can in
general not be shared by different external functions.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-profiling">Profiling</h5>
<div class="paragraph">
<p>


The CIF simulator has a
<b class="menuref">Profiling</b>
option (<b class="menuref">Simulator</b>
category). If the option is enabled, information about the number of
transitions taken per second, is printed to the console. Enabling profiling
disables most other types of console
<a href="#tools-cifsim-output-chapter-index">output</a>. By default, profiling is disabled.</p>
</div>
<div class="paragraph">
<p>The profiling output looks somewhat like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">750431.42 transitions/second
640589.87 transitions/second
890939.01 transitions/second
887228.57 transitions/second
890143.25 transitions/second
893674.44 transitions/second
891812.69 transitions/second</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-distr-seeds">Stochastic distributions and seeds</h5>
<div class="paragraph">
<p>

<a href="#tut-stochastics-chapter-intro">Stochastics</a> can be used to model
randomness in CIF models. The CIF simulator exhibits
<a href="#tut-stochastics-chapter-pseudo-randomness">pseudo-randomness</a>. This page
explains how to influence that pseudo-randomness.</p>
</div>
<div class="paragraph">
<p>The randomness of the stochastic distributions is implemented in the CIF
simulator using
<a href="http://en.wikipedia.org/wiki/Pseudorandom_number_generator">pseudorandom number generators</a>
(PRNGs). The PRNG used is the
<a href="http://en.wikipedia.org/wiki/Mersenne_twister">Mersenne Twister</a>.
The sequences of
random numbers that are generated by the MT are not truly random. They are
pseudorandom, as they start to repeat after some time. The Mersenne Twister
however, has a very long <em>period</em> of 2<sup>19937</sup> - 1 numbers.</p>
</div>
<div class="paragraph">
<p>Since the sequence of generated random numbers is always the same, the only
way to vary it, is to use a different starting place. The starting place is
determined by the initial
<a href="http://en.wikipedia.org/wiki/Random_seed">seed</a>,
which can be configured through the
<b class="menuref">Initial seed for stochastic distributions</b>
option (<b class="menuref">Simulator</b>
category). If specified, it must
be a value in the range [1 .. 2<sup>30</sup>]. If it is not specified, a random
initial seed in that range is chosen by the simulator. If a random initial seed
is chosen, and it is used, it is <a href="#tools-cifsim-output-normal-seeds">printed</a> to the console.</p>
</div>
<div class="paragraph">
<p>The initial seed as provided by the option, is used for the first stochastic
distribution that is created. Each subsequent distribution uses the next
available seed. That is, if you specify an initial seed of 5, then the first
distribution is created with an initial seed of 5, the next one uses 6, the
third one uses 7, etc. The initial seeds are kept in the range
[1 .. 2<sup>30</sup>]. After seed 2<sup>30</sup>, 1 is used as seed, then 2 is used as seed, etc.</p>
</div>
<div class="paragraph">
<p>Simulating the same specification multiple times, using the same initial seed,
results in the same samples. Therefore, using a fixed seed can make your
simulation deterministic, even though you use stochastic distributions to
introduce randomness into your specification.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-simulation-developer-topics">Simulation developer topics</h4>
<div class="sect4">
<h5 id="tools-cifsim-chapter-max-time-point-tol">Maximum time point tolerance</h5>
<div class="paragraph">
<p></p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
This page is primarily intended for the developers of the CIF simulator,
and not its end users.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The CIF simulator internally often queries the trajectories computed by the
<a href="#tools-cifsim-solver-chapter-index">ODE solver</a>. Due to the limited precision
of binary floating point number representations, requests of time points for
which no exact match is present in the trajectories, but for which a very close
match is present, are allowed. The simulator compensates for these small
deviations, to avoid accumulation of such deviations.</p>
</div>
<div class="paragraph">
<p>
The simulator uses the value of the
<b class="menuref">Maximum time point tolerance</b>
option (<b class="menuref">Simulation</b>
category) to determine whether two time points
are close enough to each other to constitute a match. The tolerance is given in
<a href="http://en.wikipedia.org/wiki/Unit_in_the_last_place">ulps</a>
(<em>units in the
last place</em>, or <em>units of least precision</em>). One ulp is the difference
between two subsequent floating point numbers, for the limited precision
binary floating point number representation used by the simulator. That is, two
floating point numbers are one ulp away from each other, if there is no other
floating point number between them, that can be represented using the floating
point number representation used by the simulator. Since an ulp increases as
the floating point numbers increase, the tolerance is thus relative to the
values of the time points.</p>
</div>
<div class="paragraph">
<p>The tolerance values chosen using the option must be in the range
[1 .. 2<sup>30</sup>]. The default tolerance is 2<sup>10</sup> (= 1024) ulps. The default
tolerance should suffice, but if it doesn&#8217;t, you may
be presented with an error like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">ERROR: Simulation resulted in a runtime error, for state: time=0.0, x=1.0.
CAUSE: Requested time point &quot;1.6000000000000005&quot; is &quot;2.0&quot; ulps (1 ulp = 2.220446049250313e-16) away from the closest time point in the trajectories &quot;1.6&quot;, which is farther away than the maximum tolerance of &quot;1&quot; ulps. You can try increasing the value of the maximum time point tolerance option. Please also contact the development team.</code></pre>
</div>
</div>
<div class="paragraph">
<p>If you get such an error, you can try to increase the tolerance using the
<b class="menuref">Maximum time point tolerance</b>
option, in order to be able to
continue your simulation. However, as this shouldn&#8217;t actually happen, you
should also contact the development team, who will then figure out why the
default tolerance doesn&#8217;t suffice for your model.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-debug-gen-code">Debugging generated code</h5>
<div class="paragraph">
<p>
</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
This page is primarily intended for the developers of the CIF simulator, and not its end users.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The CIF simulator generates highly optimized code for the specification, to
speed up the simulation. By enabling the
<b class="menuref">Debug the generated code (by writing it to disk)</b>
<a href="#tools-cifsim-output-chapter-debug">debugging output</a>,
the generated code can be written to disk, for further debugging.</p>
</div>
<div class="sect5">
<h6 id="tools-output-directory">Output directory</h6>
<div class="paragraph">
<p>If the simulation is performed from within Eclipse, and a project named
<code>org.eclipse.escet.cif.simulator.debug</code> exists, is not closed, and has a <code>src</code>
directory, the generated code will be written to that <code>src</code> directory.
Otherwise, the generated code will be written to the directory containing the
input specification file.</p>
</div>
<div class="paragraph">
<p>Regardless, the code is also always written to a <code>cifcode</code>
sub-directory. If this sub-directory does not yet exist, it is created. If it
already exists, all existing <code>.java</code> files are removed from the
sub-directory first, before the newly generated code is written.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-written-files">Written files</h6>
<div class="paragraph">
<p>The generated code consists of Java files only. This results in several
<code>.java</code> files being written to the <code>cifcode</code> directory.</p>
</div>
<div class="paragraph">
<p>Additionally, an Eclipse launch configuration file (<code>_cifsim_debug.launch</code>)
is written. This launch configuration can be used to reproduce the simulation
implemented by the generated code. The launch configuration
reproduces the simulation options that were used, and always shows the option
dialog. The working directory for the simulation performed via the generated
launch configuration is the same working directory as the original simulation.
This allows additional files, such as configuration files, to be found.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-how-to-use">How to use</h6>
<div class="paragraph">
<p>To use this feature, follow these steps:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Import all CIF related source projects into your Eclipse workspace.</p>
</li>
<li>
<p>Make sure your workspace is automatically rebuilt, by enabling the
<b class="menuref">Build Automatically</b>
option in the
<b class="menuref">Project</b>
menu.</p>
</li>
<li>
<p>Start a sub-Eclipse application, by right clicking on any plug-in project in
the workspace, and choosing <span class="menuseq"><b class="menu">Run as</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Eclipse Application</b></span>
or <span class="menuseq"><b class="menu">Debug as</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Eclipse Application</b></span>.</p>
</li>
<li>
<p>In the sub-Eclipse that opens, make sure the CIF specification (the <code>.cif</code>
file) that you like to simulate is available in the workspace.</p>
</li>
<li>
<p>In the sub-Eclipse, import the <code>org.eclipse.escet.cif.simulator.debug</code> source
project.</p>
</li>
<li>
<p>Simulate the CIF specification, and make sure you enable the
<b class="menuref">Debug the generated code</b>
option.</p>
</li>
<li>
<p>Continue simulation, if desired.</p>
</li>
<li>
<p>Once the simulation has terminated, switch back to the main Eclipse.</p>
</li>
<li>
<p>Refresh the <code>org.eclipse.escet.cif.simulator.debug</code> project.</p>
</li>
<li>
<p>Set breakpoints in the generated Java code, or in the simulator code, as
desired.</p>
</li>
<li>
<p>Right click the launch configuration in the <code>src/cifcode</code> directory, and
choose <span class="menuseq"><b class="menu">Debug as</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">_cifsim_debug</b></span>.</p>
</li>
<li>
<p>Debug the simulation, with the generated code, as you would any Java program.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-starting-the-simulator-with-generated-code">Starting the simulator with generated code</h6>
<div class="paragraph">
<p>The launch configuration that is written to disk with the generated code, uses
the
<b class="menuref">Load debug code</b>
option (<b class="menuref">Simulator</b> category). Using
this option, the classpath (directory) where the already generated code is
located, is specified. By specifying it, the simulator knows from where to load
it.</p>
</div>
<div class="paragraph">
<p>Simulations not started from the generated launch configuration, generally
don&#8217;t use this option. They load the input specification, validate it, generate
fresh code, and compile the code in-memory, or use
<a href="#tools-cifsim-repeated-sim-compile-once">compiled code files</a></p>
</div>
<div class="paragraph">
<p>Simulations using the generated code ignore all options related to
<a href="#tools-cifsim-chapter-repeated-simulation">repeated simulations</a>. That is, the
<em>Load debug code</em> option takes priority over the <em>Compile only</em> option
(<em>Compiler</em> category), and simulating with
<a href="#tools-cifsim-repeated-sim-compile-once">compiled code files</a>.</p>
</div>
<div class="paragraph">
<p>A warning is printed to the console if the generated code was generated with
a different version of the simulator than the one used to simulate it. Ignoring
the warning may lead to unexpected simulation results, or even simulator
crashes.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cifsim-chapter-test-mode">Test mode</h5>
<div class="paragraph">
<p>
</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
This page is primarily intended for the developers of the CIF simulator,
and not its end users.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>In order to be able to perform automated testing, the
<b class="menuref">Test mode</b>
option (<b class="menuref">Output</b>
category) can be used. This option has the following
effect:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The visual interfaces for all
<a href="#tools-cifsim-output-chapter-index">output components</a> (such as visualizers)
are disabled.</p>
</li>
<li>
<p>The user is no longer asked to
<a href="#tools-cifsim-termination-confirm">confirm termination</a> of the
simulator, if the the
<b class="menuref">Ask to confirm simulator termination</b>
option (<b class="menuref">Simulator</b>
category) is configured to let the simulator
decide whether to ask the user for confirmation or terminate automatically.
By not asking for user input at the console, the automated test set can be
fully automatically executed.</p>
</li>
<li>
<p>It is allowed to perform <a href="#tools-cifsim-output-chapter-realtime">real-time</a>
simulation without using any
<a href="#tools-cifsim-output-realtime-outcomp">real-time output components</a>,
allowing testing of the real-time functionality in the automated test set.</p>
</li>
<li>
<p>All <a href="#tools-cifsim-output-chapter-realtime">real-time delays</a> are skipped. By
not performing unnecessary real-time delays, the automated test set executes
as fast as possible.</p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-index">SVG visualization</a> operates in
synchronous mode, rather than asynchronous mode. This ensures that debug
output becomes synchronous as well, and we thus get consistent output for our
test cases. This is not only useful for automated testing, but also for
debugging.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tools-verification-tools">Verification tools</h3>
<div class="sect3">
<h4 id="tools-chapter-cif2mcrl2">CIF to mCRL2 transformer</h4>
<div class="paragraph">
<p>


The CIF to mCRL2 transformer is used to convert a CIF specification to a
mCRL2 specification.
<a href="http://www.mcrl2.org/">mCRL2</a>
is a tool for verifying properties of the model.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-transformation-4">Starting the transformation</h5>
<div class="paragraph">
<p>The transformation can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF verification tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Convert CIF to mCRL2&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF verification tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Convert CIF to mCRL2&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cif2mcrl2</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cif2mcrl2</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2mcrl2-options">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file path</em>: The absolute or relative file system path to the input
CIF specification.</p>
</li>
<li>
<p><em>Instance tree definition</em>: mCRL2 uses a tree of processes which you can
specify manually here. If not specified, it takes the default solution,
which first merges all CIF automata (one at a time), and on top of that, the
variable processes of the shared variables (also one at a time).
How to define your own tree is explained in the
<a href="#tools-cif2mcrl2-instancetree-syntax">instantiation tree syntax</a> Section.</p>
</li>
<li>
<p><em>Enable debug output</em>: The transformer derives information about used and
available variables in the instantiation tree, and uses that information to
generate the mCRL2 action operations at every level. By enabling this
option, this information is also written to an output file for further
external analysis. By default, the information is written in a file with the
same name as the input file, except first the <code>.cif</code> extension is removed
(if present), and a <code>_dbg.txt</code> extension is appended. The name of the
output file can be changed with the <em>Debug output file path</em> option. Setting
the latter option enables this option.</p>
</li>
<li>
<p><em>Debug output file path</em>: The absolute or relative file system path to use
for writing derived information about used and available variables at every
level in the instantiation tree. Setting this option changes the debug
output file path to the given path. It also enables the <em>Enable debug
output</em> option.</p>
</li>
<li>
<p><em>Output file path</em>: The absolute or relative file system path for writing
the generated mCRL2 output file. By default, the output file path is the
same as the input file path, but with the <code>.cif</code> extension removed (if it
exists), and the <code>.mcrl2</code> extension added. By setting this option, the
default is overridden by the given value.</p>
</li>
<li>
<p><em>Generate 'value' actions</em>: To query the value of variable <code>x</code>,
a <code>value_x</code> action can be used. By default, such actions are generated for
every variable in the system. Using this option, you can define precisely
which variables should have such an action. See the
<a href="#cif2mcrl2-value-select">Generation of 'value' actions</a> Section for more details.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-specifications-4">Supported specifications</h5>
<div class="paragraph">
<p>The CIF to mCRL2 transformer supports a subset of CIF specifications. The
following restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The transformer ignores the supervisory kind of the automata.</p>
</li>
<li>
<p>Algebraic variables are not supported.</p>
</li>
<li>
<p>Continuous variables are not supported.</p>
</li>
<li>
<p>Equations are not supported.</p>
</li>
<li>
<p>Initialization predicates are not supported, except for initialization
predicates in a location.</p>
</li>
<li>
<p>Invariants are not supported.</p>
</li>
<li>
<p>Marker predicates are ignored.</p>
</li>
<li>
<p>Discrete variables must have type <code>bool</code> or <code>int</code>. The latter may have
a range.</p>
</li>
<li>
<p>Multiple potential initial values are not supported.</p>
</li>
<li>
<p>Initial value must be a constant.</p>
</li>
<li>
<p>There must be at least one automaton.</p>
</li>
<li>
<p>The transformation translates the range of integer variables if used, but it
does not enforce the maximum and minimum integer value of CIF.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In automata, there are a number of extra conditions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The <code>initial</code> expression in locations must be constant.</p>
</li>
<li>
<p>There must be a single initial location in each automaton.</p>
</li>
<li>
<p>Conditional updates are not supported, only assignment updates are allowed.</p>
</li>
<li>
<p>Multi-assignments are not supported.</p>
</li>
<li>
<p>Channels are not supported.</p>
</li>
<li>
<p>The <code>tau</code> event is not supported.</p>
</li>
<li>
<p>Urgency of locations and edges is ignored.</p>
</li>
<li>
<p>Location references are not supported.</p>
</li>
<li>
<p>All expressions and sub-expressions must be of type <code>bool</code> or <code>int</code>. The
latter may have a range.</p>
</li>
<li>
<p>Boolean constants, discrete variables, and operators <code>and</code>, <code>or</code>,
<code>==</code>, <code>&gt;=</code>, <code>&gt;</code>, <code>&lt;=</code>, <code>&lt;</code>, <code>!=</code>, and <code>not</code> are allowed.</p>
</li>
<li>
<p>Integer constants, discrete variables, binary operators <code>+</code>, <code>*</code>, <code>-</code>,
and unary operators <code>-</code> and <code>+</code> are allowed.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>However, some of these limitations are resolved by preprocessing of the
specification, as explained in the next section.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-4">Preprocessing</h5>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-alg-vars">Eliminate algebraic variables</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-consts">Eliminate constants</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-enums">Eliminate enumerations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-monitors">Eliminate monitors</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-add-default-init-values">Add default initial values</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="cif2mcrl2-value-select">Generation of 'value' actions</h5>
<div class="paragraph">
<p>The CIF to mCRL2 transformer generates a <code>value</code> action for each variable by
default. In some cases, this may not be wanted. Variables that never have to
be queried for their value do not need such an action. Having such an action
available anyway increases the amount of work that has to be done by the mCRL2
tool. To eliminate these unneeded <code>value</code> actions, the CIF to mCRL2
transformer has the <em>Generate 'value' actions</em> option.</p>
</div>
<div class="paragraph">
<p>The option takes a comma separated list of variable patterns. Each pattern
can add or remove variables. If the pattern starts with a <code>+</code> character,
variables are added. If the pattern starts with a <code>-</code> character, variables
are removed. If the pattern start neither with a <code>+</code> nor with a <code>-</code>
character, variables are added. The main part of each pattern is the name of
the variable to add or remove. In addition, you can use the <code>*</code> character
as a shorthand for 'zero or more arbitrary characters', allowing you to write
abbreviations, and match several variables at the same time.</p>
</div>
<div class="paragraph">
<p>For example, assume existence of the following variables in a CIF model:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>A.p12 A.q2 A.z B.x B.y1 B.y2 B.z C.q</code></pre>
</div>
</div>
<div class="paragraph">
<p>Below a number of example option values, and what variables they select from
the above list.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The option value <code>B.x,+A.z</code> selects variables <code>B.x</code> and <code>A.z</code>.</p>
</li>
<li>
<p>The option value <code>+*1</code> matches all variables that end with a <code>1</code>, which
is variable <code>B.y1</code> only (Variable <code>A.p12</code> does have a <code>1</code> in it, but
not at the end.)</p>
</li>
<li>
<p>The option value <code>+*1*</code> matches all variables with a <code>1</code> at any
position. This matches both <code>A.p12</code> and <code>B.y1</code>.</p>
</li>
<li>
<p>The option value <code>+*,-B.*</code> selects all variables, except those in
automaton <code>B</code>. (<code>*</code> adds all variables, then <code>-B.*</code> removes all
variables that start with <code>B.</code>, that is all variables in automaton <code>B</code>.)</p>
</li>
<li>
<p>The option value <code>-*</code> removes all <code>value</code> actions, since the pattern
removes all variables.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2mcrl2-instancetree-syntax">Syntax of the instance tree</h5>
<div class="paragraph">
<p>In mCRL2, a behavior process is required for every automaton in the input, and
a variable process is needed for every variable used (read or written) by two
or more automata. In addition, it is allowed to have a variable process for
variables that are used in one automaton only (that is, a local variable of
the automaton).</p>
</div>
<div class="paragraph">
<p>All these processes must be instantiated using the parallel composition
operator. For larger specifications, the naive solution of instantiating all
processes together in one level fails due to having too many allowed
combinations of actions for the mCRL2 tool to handle.</p>
</div>
<div class="paragraph">
<p>A different solution is to instantiate smaller groups of processes at a time,
and then use these groups again in other instantiations. Instantiation happens
in multiple levels in this case, leading to a tree of process instantiations.
At each level, the set of allowed actions is restricted by adding action
operators. This results in a large reduction of the number of possible
combinations of actions that need to be explored by the mCRL2 tool. Fewer
combinations of actions in turn leads to enabling larger specifications to be
verified.</p>
</div>
<div class="paragraph">
<p>Which processes and groups are taken together at each level in the tree has a
large impact on feasibility. The CIF to mCRL2 transformer has a default
scheme, where pairs of one group and one behavior process are taken together
at each level (except at the bottom, where two behavior processes are merged
instead). On top of that tree, pairs of a group and a variable process are
taken together.</p>
</div>
<div class="paragraph">
<p>The CIF to mCRL2 transformer does not perform analysis to decide how processes
and variables should combined. In many cases this provides a working solution.
For some specifications however, you may want to have more influence in the
order of grouping. For this reason, the <em>Instance tree definition</em> option
exists. It allows you to define which processes should be taken together at
each level in the instantiation tree.</p>
</div>
<div class="paragraph">
<p>The current implementation has limits with respect to ordering. Automata
processes must be merged first (but the number of levels and the order of
combining is free), and then variables must be added one at a time (but which
variable to use at each level is free).</p>
</div>
<div class="paragraph">
<p>The option expects absolute names of all automata in the specification and
absolute names of all discrete variables used in two more automata, separated
by white space or commas. In addition you may add the absolute names of
variables used in only one automaton. For each element mentioned, a process is
created in mCRL2. Variables used in one automaton that are not mentioned,
become local variables of the behavior process of the automaton that uses the
variable.</p>
</div>
<div class="paragraph">
<p>Processes for the mentioned CIF elements are instantiated. Sub-groups of
processes are written by surrounding them with parentheses. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>( ( A B C ) A.x ) B.y</code></pre>
</div>
</div>
<div class="paragraph">
<p>takes automata <code>A</code>, <code>B</code>, <code>C</code> together. One level higher, variable
<code>A.x</code> is added, and finally variable <code>B.y</code> is added at the highest level.
Another order is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>( ( ( A B ) C ) B.y ) A.x</code></pre>
</div>
</div>
<div class="paragraph">
<p>First processes <code>A</code> and <code>B</code> are combined, then process <code>C</code> is added, and
finally variables <code>B.y</code> and <code>A.x</code> at the top-most two levels.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-debug-output">Debug output</h5>
<div class="paragraph">
<p>The transformer analyzes use of the variables by each automaton, and computes
variable usage and availability of the variables at each level in the
instantiation tree. This information is written to a file with debug output by
enabling the <em>Enable debug output</em> option. As an example, consider the
following artificial CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event a, b, c;

automaton P:
  disc int[0..10] x = 0;
  disc int[-5..5] zero = 0;

  location p1:
    initial;
    edge a do x := x + 1 goto p2;

  location p2:
    edge c when Q.y != 0 goto p1;
    edge a do x := 1 goto p1;
end

automaton Q:
  disc int[0..1] y = 1;

  location q1:
    initial;
    edge a when y = 1 goto q2;

  location q2:
    edge b when y = 1 and P.x &lt; 8 and P.zero = 0 goto q1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This specification has two automata <code>P</code> and <code>Q</code>, and two shared variables
<code>P.x</code> and <code>Q.y</code>. The ranges of the variables are important, mCRL2
considers the integer type unbounded, depending on your CIF file, without
giving upper and lower bounds for the variables, you may end up in the
situation that mCRL2 tries every single value of its infinite integer type,
which takes a very long time!</p>
</div>
<div class="paragraph">
<p>Variable <code>zero</code> is not shared, only automaton <code>Q</code> uses it. The transformer
moves it to the <code>Q</code> process. Normally however, you would use a constant
instead of a variable.</p>
</div>
<div class="paragraph">
<p>The instance tree used in the transformation is <code>( ( P Q ) P.x ) Q.y</code>. The
debug output for <code>P</code> is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>===============================================================
Node 1.1.1.1

Variable use by behavior processes ordered by event:
    a:
        P.x  read:SOMETIMES  write:ALWAYS
    c:
        Q.y  read:ALWAYS  write:NEVER</code></pre>
</div>
</div>
<div class="paragraph">
<p>Automaton <code>P</code> has one <code>c</code> edge, which checks the value of <code>Q.y</code> but it
does not change its value. It has two <code>a</code> edges, only the <code>a</code> edge in
location <code>p1</code> reads <code>P.x</code> (to compute <code>x + 1</code>). Both edges assign a new
value to <code>P.x</code>.</p>
</div>
<div class="paragraph">
<p>In a similar way, the node information for automaton <code>Q</code> is computed. The
result is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>===============================================================
Node 1.1.1.2

Variable use by behavior processes ordered by event:
    a:
        Q.y  read:ALWAYS  write:NEVER
    b:
        Q.y  read:ALWAYS  write:NEVER
        P.x  read:ALWAYS  write:NEVER</code></pre>
</div>
</div>
<div class="paragraph">
<p>The automaton only checks values rather than writing them. As you can see,
variable <code>P.x</code> is not mentioned with event <code>a</code>, since there is no edge in
the automaton with event <code>a</code> that accesses variable <code>P.x</code>.</p>
</div>
<div class="paragraph">
<p>The node that merges both automata, i.e. <code>( P Q )</code>, has the following
formation:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>===============================================================
Node 1.1.1

Variable use by behavior processes ordered by event:
    a:
        P.x  read:SOMETIMES  write:ALWAYS
        Q.y  read:ALWAYS     write:NEVER
    c:
        Q.y  read:ALWAYS  write:NEVER
    b:
        Q.y  read:ALWAYS  write:NEVER
        P.x  read:ALWAYS  write:NEVER

Children:
    node 1.1.1.1
    node 1.1.1.2</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable use by each event is simply merged. In this example there is no
overlap, but that works as you would expect, <code>SOMETIMES</code> overrides
<code>NEVER</code>, and <code>ALWAYS</code> overrides <code>SOMETIMES</code>.</p>
</div>
<div class="paragraph">
<p>The node for variable process for <code>P.x</code> only provides a variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>===============================================================
Node 1.1.2

Available variable processes:
    P.x</code></pre>
</div>
</div>
<div class="paragraph">
<p>The output states that variable <code>P.x</code> is available here.</p>
</div>
<div class="paragraph">
<p>At <code>( P Q ) P.x</code> node, the merge of the variable <code>P.x</code> with the two
automata, this results in:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>===============================================================
Node 1.1

Available variable processes:
    P.x

Variable use by behavior processes ordered by event:
    a:
        P.x  read:SOMETIMES  write:ALWAYS
        Q.y  read:ALWAYS     write:NEVER
    c:
        Q.y  read:ALWAYS  write:NEVER
        P.x  read:NEVER   write:NEVER
    b:
        Q.y  read:ALWAYS  write:NEVER
        P.x  read:ALWAYS  write:NEVER

Children:
    node 1.1.1
    node 1.1.2</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this node, variable <code>P.x</code> is also available. The variable process does
not perform events, so the event variable table of node <code>1.1.1</code> is copied.
The only exception is the additional line <code>P.x</code> for event <code>c</code>. The reason
for this line is that while <code>( P Q )</code> may not use <code>P.x</code> in combination
with event <code>c</code>, other automata higher up in the tree may still need that
variable. (In a future version of the transformer tool, it may be detected
that such use never happens, and there is no need to add the line here.)</p>
</div>
<div class="paragraph">
<p>Node <code>1.2</code> is the variable process of <code>Q.y</code>. It looks the same as node
<code>1.1.2</code>, except for the name of the variable.</p>
</div>
<div class="paragraph">
<p>Finally the top-node that merges <code>( P Q ) P.x</code> with <code>Q.y</code>, bringing
everything together, looks like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>===============================================================
Node 1

Available variable processes:
    P.x
    Q.y

Variable use by behavior processes ordered by event:
    a:
        P.x  read:SOMETIMES  write:ALWAYS
        Q.y  read:ALWAYS     write:NEVER
    c:
        Q.y  read:ALWAYS  write:NEVER
        P.x  read:NEVER   write:NEVER
    b:
        Q.y  read:ALWAYS  write:NEVER
        P.x  read:ALWAYS  write:NEVER

Children:
    node 1.1
    node 1.2</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>Q.y</code> variable is now also available. The event variable table is again
copied. Since all events already used variable <code>Q.y</code> no additional lines
were added.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-output-of-the-transformation">Output of the transformation</h5>
<div class="paragraph">
<p>A variable process in mCRL2 handles shared access to a variable. For variable
<code>P.x</code> in the above example it looks like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>act value_x, vread_x, vwrite_x, sync_x, aread_x, awrite_x : Int;

proc VarProc_x(v:Int) =
  value_x(v) . VarProc_x(v) +
  vread_x(v) . VarProc_x(v) +
  sum m:Int . ((m &gt;= 0) &amp;&amp; (m &lt;= 10)) -&gt; vwrite_x(m) . VarProc_x(m) +
  sum m:Int . ((m &gt;= 0) &amp;&amp; (m &lt;= 10)) -&gt; vread_x(v) | vwrite_x(m) . VarProc_x(m);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The name of the actions all end with the name of the variable. If the CIF
specification has two or more variables with the same name, a number gets
appended to make each variable unique in mCRL2.</p>
</div>
<div class="paragraph">
<p>A behavior process is generated for each automaton instance. Like the
variables, the name of the automaton is used in the output. If there are
name conflicts, a number is appended to make it unique. The process is
the same list of edges of the original CIF automaton, with added read and
write actions for synchronizing with the variable processes:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>sort LocSort_P = struct loc_P_p1 | loc_P_p2;

proc BehProc_P(Locvar_P : LocSort_P) =
  sum x : Int . ((x &gt;= 0) &amp;&amp; (x &lt;= 10) &amp;&amp; (Locvar_P == loc_P_p1)) -&gt; a | aread_x(x) | awrite_x((x + 1)) . BehProc_P(loc_P_p2) +
  sum y : Int . ((y &gt;= 0) &amp;&amp; (y &lt;= 1) &amp;&amp; (Locvar_P == loc_P_p2) &amp;&amp; (y != 0)) -&gt; c | aread_y(y) . BehProc_P(loc_P_p1) +
  (Locvar_P == loc_P_p2) -&gt; a | awrite_x(1) . BehProc_P(loc_P_p1);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Locations are encoded in a <code>struct</code> and variable read and write actions are
added as needed.</p>
</div>
<div class="paragraph">
<p>The instantiation tree is dominated by the action operators needed for
synchronizing and restricting actions. The <code>value_...</code> actions are allowed
up the to top level node, to give access to variable values in the
verification. This leads to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>act a, renamed_a, c, renamed_c, b, renamed_b;

init block({aread_y, awrite_y, vread_y, vwrite_y},
     hide({sync_y},
     comm({aread_y | vread_y -&gt; sync_y,
           awrite_y | vwrite_y -&gt; sync_y},
     (
       block({aread_x, awrite_x, vread_x, vwrite_x},
       hide({sync_x},
       comm({aread_x | vread_x -&gt; sync_x,
             awrite_x | vwrite_x -&gt; sync_x},
       (
         allow({value_zero,
            a | awrite_x | aread_y,
                a | awrite_x | aread_x | aread_y,
                c | aread_y,
                b | aread_y | aread_x},
         rename({renamed_a -&gt; a},
         block({a},
         comm({a | a -&gt; renamed_a},
         (
           BehProc_P(loc_P_p1)
         ||
           BehProc_Q(loc_Q_q1, 0)
         )))))
       ||
         VarProc_x(0)
       ))))
     ||
       VarProc_y(1)
     ))));</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-chapter-cif2uppaal">CIF to UPPAAL transformer</h4>
<div class="paragraph">
<p>


The CIF to UPPAAL transformer can be used to transform CIF specifications
to UPPAAL systems (<code>*.xml</code> files).
<a href="http://www.uppaal.org/">UPPAAL</a>
is a tool modeling, validation, and verification of networks of timed automata with
variables. The transformer only transforms untimed CIF specifications.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-transformation-5">Starting the transformation</h5>
<div class="paragraph">
<p>The transformation can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF verification tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Convert CIF to UPPAAL&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF verification tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Convert CIF to UPPAAL&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cif2uppaal</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cif2uppaal</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-options-14">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file path</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file path</em>: The absolute or relative local file system path to the
output UPPAAL file. If not specified, defaults to the input file path, where
the <code>.cif</code> file extension is removed (if present), and a <code>.xml</code> file
extension is added.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-specifications-5">Supported specifications</h5>
<div class="paragraph">
<p>The CIF to UPPAAL transformer supports a subset of CIF specifications. The
following restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Specifications without automata are not supported.</p>
</li>
<li>
<p>Channels (events with data types) are not supported.</p>
</li>
<li>
<p>Initialization predicates in components are not supported.</p>
</li>
<li>
<p>Automata that do not have exactly one initial location are not supported.</p>
</li>
<li>
<p>Locations with initialization predicates that are too complex to evaluate
statically, are not supported. That is, those predicates must essentially be
be constant. For instance, <code>true</code> and <code>true or false</code> are supported, as
is <code>c</code> if <code>c</code> is a constant. However, <code>v =&gt; c</code> with <code>v</code> a discrete
variable that can initially have several different values, is not supported.</p>
</li>
<li>
<p>Discrete variables with multiple potential initial values are not supported.</p>
</li>
<li>
<p>Discrete variables with initial values that are too complex to evaluate
statically, are not supported. That is, their initial values must essentially
be constant. For instance, <code>1 + 1</code> and <code>2 * 5</code> are supported, as is
<code>c + 1</code> if <code>c</code> is a constant. However, <code>v * 2</code> with <code>v</code> a discrete
variable that can initially have several different values, is not supported.</p>
</li>
<li>
<p>Enumerations are not supported.</p>
</li>
<li>
<p>Continuous variables are not supported.</p>
</li>
<li>
<p>Algebraic variables are not supported.</p>
</li>
<li>
<p>Input variables are not supported.</p>
</li>
<li>
<p>User-defined functions are not supported.</p>
</li>
<li>
<p>Urgent edges are not supported.</p>
</li>
<li>
<p>Multi-assignments on edges (such as <code>do (x, y) := (1, 2)</code>) are not
supported. However, it is allowed to use multiple assignments on an edge
(such as <code>do x := 1, y := 2</code>).</p>
</li>
<li>
<p>Partial variable assignments (such as <code>do x[0] := 5</code>) are not supported.</p>
</li>
<li>
<p>Conditional updates (<code>if</code> updates) on edges (such as
<code>do if b: x := 5 end</code>) are not supported.</p>
</li>
<li>
<p>Only the following data types are supported: boolean types and integer (both
with a range and without a range).</p>
</li>
<li>
<p>Only the following expressions are supported: boolean literal values
(<code>true</code> and <code>false</code>), integer literal values, binary expressions
(partially, see below), unary expressions (partially, see below), casts that
don&#8217;t change the type, <code>if</code> expressions, and references to constants,
discrete variables, and locations.</p>
</li>
<li>
<p>Only the following binary operators are supported: logical equivalence
(<code>&lt;=&gt;</code>), logical implication (<code>=&gt;</code>), logical conjunction (<code>and</code> on
boolean operands), logical disjunction (<code>or</code> on boolean operands), addition
(<code>+</code>) on integer operands, subtraction (<code>-</code>) on integer operands,
multiplication (<code>*</code>) on integer operands, integer division (<code>div</code>),
integer modulus (<code>mod</code>), equality (<code>=</code>) on integer operands, inequality
(<code>!=</code>) on integer operands, less than (<code>&lt;</code>) on integer operands, less
than or equal to (<code>&lt;=</code>) on integer operands, greater than (<code>&gt;</code>) on
integer operands, and greater than or equal to (<code>&gt;=</code>) on integer operands.</p>
</li>
<li>
<p>Only the following unary operators are supported: logical inverse (<code>not</code>),
negation (<code>-</code>) on an integer operand, and plus (<code>+</code>) on an integer
operand.</p>
</li>
<li>
<p>Only state invariants are supported. State/event exclusion invariants are
not supported. To allow state/event exclusion invariants to be used in the
input, manually eliminate them first using the
<a href="#tools-cif2cif-chapter-elim-state-event-excl-invs">Eliminate state/event exclusion invariants</a> CIF to CIF transformation.</p>
</li>
<li>
<p>The controllability of events is ignored.</p>
</li>
<li>
<p>The supervisory kinds of automata are ignored.</p>
</li>
<li>
<p>The supervisory kinds of invariants are ignored.</p>
</li>
<li>
<p>Marker predicates are ignored.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-5">Preprocessing</h5>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-tau-event">Eliminate <code>tau</code> event</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-monitors">Eliminate monitors</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-transformation-result-2">Transformation result</h5>
<div class="paragraph">
<p>CIF features synchronizing events, while UPPAAL only supports channels. A
<code>SendAut</code> automaton/template is added to the UPPAAL system to ensure proper
event synchronization. The UPPAAL template has a single location, and self
loops for every event in the CIF specification. The guards of the self loops
express the conditions under which the events are globally enabled (guard wise)
in the CIF specification. Every CIF event is a broadcast channel in UPPAAL. If
the self loop is enabled (guard wise), the <code>SendAut</code> template broadcasts over
the channel. All the other templates (for the CIF automata) receive the event.
They can actually receive, as the guard of the self loop ensures that. Together
the <code>SendAut</code> self loops and the receive edges form the synchronization.</p>
</div>
<div class="paragraph">
<p>As the <code>SendAut</code> template needs to refer to locations of the other templates,
location pointer variables are added for all the other templates. For every
CIF automaton <code>some.aut</code>, a location pointer variable <code>LP_some_aut</code> is
added. The location pointers are integer variables with range <code>[0,n-1]</code>, for
an automaton with <code>n</code> locations. Updates are added to the edges to ensure the
location pointer variables have the proper values. The location pointers are
similar to those created by the CIF to CIF transformation that
<a href="#tools-cif2cif-chapter-elim-locs-in-exprs">eliminates the use of locations in expressions</a>.</p>
</div>
<div class="paragraph">
<p>In CIF, assignments interpret the right hand side of the assignment (the new
value of the variable) in the source state of the transition. In UPPAAL,
assignments have order, and the right hand sides are interpreted over the
current state, after any preceding assignments. Furthermore, the order in which
the assignments of the edges of different participating templates are executed
is not defined. To ensure the proper CIF semantics, 'old' versions of all
variables (including the location pointer variables) are added. For a variable
<code>x</code>, <code>OLD_x</code> is added. The <code>SendAut</code> automaton assigns the current values
of all variables to their 'old' counterparts. The assignments on the edges of
the other automata then use the 'old' variables to compute the new values of
the variables. As the values of the 'old' variables are only used during the
transitions, the 'old' variables are <em>meta</em> variables in the UPPAAL system.</p>
</div>
<div class="paragraph">
<p>The invariants from CIF components are added to the location of the <code>SendAut</code>
template.</p>
</div>
<div class="paragraph">
<p>For CIF variables with an <code>int</code> type, the UPPAAL type is
<code>int[-2147483648,2147483647]</code>.</p>
</div>
<div class="paragraph">
<p>The names of templates, variables, etc in UPPAAL are based on the absolute
names of their CIF counterparts. For a variable <code>a.b.c</code> in CIF, the UPPAAL
name is <code>a_b_c</code>. If there are conflicts between the UPPAAL names, or if one
of the UPPAAL names conflicts with a UPPAAL keyword, renaming is performed, and
a warning is printed to the console.</p>
</div>
<div class="paragraph">
<p>No geometry is generated. When the generated UPPAAL file is opened in UPPAAL,
UPPAAL will perform some layouting.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tools-real-time-testing-code-generation-and-implementation-tools">Real-time testing, code generation, and implementation tools</h3>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect3">
<h4 id="tools-codegen-chapter-index">CIF code generator</h4>
<div class="paragraph">
<p>The CIF code generator can be used to generate implementation code for
various languages/platforms. The generated code is complete, and can be used as
is, without any CIF related library or runtime.</p>
</div>
<div class="paragraph">
<p>The remainder of this page explains general information about the tool, that
applies to all target languages/platforms. Specific information is available
for each of the target languages/platforms, on separate pages:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-codegen-chapter-c89">C89</a> (if there is no <code>C99</code> compiler)</p>
</li>
<li>
<p><a href="#tools-codegen-chapter-c99">C99</a></p>
</li>
<li>
<p><a href="#tools-codegen-chapter-java">Java</a></p>
</li>
<li>
<p><a href="#tools-codegen-chapter-simulink">Simulink</a>, with an example of
<a href="#tools-codegen-chapter-simulink-example">controlling a tank</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-generator">Starting the generator</h5>
<div class="paragraph">
<p>The generator can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the <b class="menuref">Project Explorer</b>
or <b class="menuref">Package Explorer</b> and choose
<span class="menuseq"><b class="menu">CIF implementation tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Generate code for CIF specification&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF implementation tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Generate code for CIF specification&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifcodegen</code> tool in a ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifcodegen</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-codegen-options">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options that apply to all target languages/platforms:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output directory</em>: The absolute or relative local file system path to the
output directory. This is the directory to which the generated code files
will be written. If the directory does not yet exist, it is automatically
created. By default, the current directory is used.</p>
</li>
<li>
<p><em>Target language</em>: Specifies the target language/platform for which to
generate code. By default, C99 code is generated. The following
languages/platforms are supported:</p>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Target language/platform</th>
<th class="tableblock halign-left valign-top">Command line value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-codegen-chapter-c89">C89</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>c89</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-codegen-chapter-c99">C99</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>c99</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-codegen-chapter-java">Java</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-codegen-chapter-simulink">Simulink</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>simulink</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The first column indicates the target language/platform, and is linked to a
page with more information for that specific language/platform. The second
column indicates the command line value to use for the option, to select that
target language/platform.</p>
</div>
</li>
<li>
<p><em>Code prefix</em>: The code prefix, used to prefix file names, identifiers in
the code, etc. If no prefix is given, the prefix is derived from the input
filename, by removing the <code>.cif</code> file extension, if present. This is also
the default. The prefix must be a valid CIF identifier, i.e. consist of only
letters (<code>a</code> to <code>z</code>, <code>A</code> to <code>Z</code>), numbers (<code>0</code> to <code>9</code>), and
underscores (<code>_</code>), and not start with a number.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-codegen-supported">Supported specifications</h5>
<div class="paragraph">
<p>The CIF code generator supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Specifications without automata are not supported.</p>
</li>
<li>
<p>Initialization predicates in components are not supported, except if it
can be determined statically that they are trivially <code>true</code>.</p>
</li>
<li>
<p>State invariants in components are not supported, except if it can be
determined statically that they are trivially <code>true</code>.</p>
</li>
<li>
<p>State/event exclusion invariants (in components as well as locations) are not
supported. To allow state/event exclusion invariants to be used in the input,
manually eliminate them first using the
<a href="#tools-cif2cif-chapter-elim-state-event-excl-invs">CIF to CIF transformation</a>.</p>
</li>
<li>
<p>Discrete variables with multiple initial values (including <code>any</code>) are not
supported.</p>
</li>
<li>
<p>External user-defined functions are not supported.</p>
</li>
<li>
<p>Urgent locations are not supported.</p>
</li>
<li>
<p>Initialization predicates in locations that can not be statically evaluated
are not supported.</p>
</li>
<li>
<p>State invariants in locations are not supported, except if it can be
determined statically that they are trivially <code>true</code>.</p>
</li>
<li>
<p>Automata that do not have exactly one initial location are not supported.</p>
</li>
<li>
<p>Urgent edges are not supported.</p>
</li>
<li>
<p>Data types other than <code>bool</code>, <code>int</code> (with or without range), <code>real</code>,
<code>string</code>, enumerations, tuples, and arrays, are not supported. This applies
to the data types of variables, parameters of functions, return types of
functions, etc.</p>
</li>
<li>
<p>Sampling of distributions is not supported.</p>
</li>
<li>
<p>The use of the conjunction and disjunction binary operators on anything other
than boolean values is not supported.</p>
</li>
<li>
<p>The use of the equality and inequality binary operators on anything other
than boolean, integer, real, string, or enumeration values is not supported.</p>
</li>
<li>
<p>The use of the addition binary operators on anything other than numeric or
string values is not supported.</p>
</li>
<li>
<p>The use of the subtraction binary operators on anything other than numeric
values is not supported.</p>
</li>
<li>
<p>The use of the element test and subset binary operators is not supported.</p>
</li>
<li>
<p>Projection on anything other than tuples, arrays, and strings is not
supported. This applies to expressions as well as addressables (the left hand
sides of assignments). For arrays, both 0-based indices (counting from the
left) as well as negative indices (counting from the right) are supported.</p>
</li>
<li>
<p>Slicing is not supported.</p>
</li>
<li>
<p>Function calls on anything other than standard library functions and internal
user-defined functions is not supported.</p>
</li>
<li>
<p>The <code>del</code>, <code>pop</code>, <code>acosh</code>, <code>asinh</code>, <code>atanh</code>, <code>cosh</code>, <code>sinh</code>,
and <code>tanh</code> standard library functions are not supported.</p>
</li>
<li>
<p>The <code>empty</code> standard library function on anything other than arrays is not
supported.</p>
</li>
<li>
<p>The <code>size</code> standard library function on anything other than strings and
arrays is not supported.</p>
</li>
<li>
<p>The distribution standard library functions are not supported.</p>
</li>
<li>
<p>Lists (except for arrays), sets, and dictionaries are not supported.</p>
</li>
<li>
<p>The use of functions as values is not supported. That is, functions may only
be used in function calls, and may for instance not be stored in variables,
or passed to other functions.</p>
</li>
<li>
<p>Print declarations with pre/source state text and post/target state filtering
(<code>when</code>) are not supported.</p>
</li>
<li>
<p>Print declarations with post/target state text and pre/source state filtering
(<code>when</code>) are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-6">Preprocessing</h5>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-cif-svg-decls">Remove CIF/SVG declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values-no-refs-optimized">Simplify values (no references, optimized)</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-others">Simplify others</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>After these preprocessing steps, the generator checks whether the specification
is supported. It then applies the following additional
<a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-linearize-merge">Linearize (merge)</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values-no-refs-optimized">Simplify values (no references, optimized)</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-add-default-init-values">Add default initial values</a></p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="tools-generated-code">Generated code</h5>
<div class="paragraph">
<p>This section explains the basics behind the generated code, as they apply to
all target languages. The specific pages that explain the code generated for
specific target languages provide further details.</p>
</div>
<div class="sect5">
<h6 id="tools-code-overview">Code overview</h6>
<div class="paragraph">
<p>The code that executes the edges of the CIF model is called the <em>event loop</em>
code. The event loop is not the only code that is executed. Before the loop,
the values of the input variables are obtained from the environment, the
initial state is initialized (for the first execution only), and the values of
the continuous variables are updated to account for the amount of time that has
passed (for all but the first execution). Then the event loop is executed.
Finally, output values may be supplied to the environment.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-repeated-execution">Repeated execution</h6>
<div class="paragraph">
<p>During the execution of the code, variable <code>time</code> from the CIF model is
not updated. Execution of the code takes time. After the code is executed,
potentially more time passes. Then, the code can be executed again. The time
(in seconds) between the first execution and the current execution is the
total time that has passed since execution started, and this becomes the new
value of variable <code>time</code>.</p>
</div>
<div class="paragraph">
<p>How often the code is executed, and whether this is done with a fixed cycle
time (periodic task scheduling) or with a variable cycle times (non-periodic
tasks) can be influenced by the end user. The details differ per target
language, and can be found on their respective pages.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-event-loop">Event loop</h6>
<div class="paragraph">
<p>The CIF model is first <a href="#tools-cif2cif-chapter-linearize-merge">linearized</a> to
eliminate parallel composition. The result is self loop edges with guards and
updates. The main part of the generated code essentially consists of update
code that is conditionally executed. This code executes edges. This is done
repeatedly, until no more events are enabled. The loop in the generated code
that repeatedly executes event code until no more events are possible, is
called the <em>event loop</em>. Once no more events are enabled, the event loop
terminates.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-event-order">Event order</h6>
<div class="paragraph">
<p>The order in which the code is generated for the different edges (in the
<em>event loop</em>), is done in such a way that it matches the order in which
transitions are chosen by the simulator. Assuming the simulator is used to
simulate by always automatically choosing the
<a href="#tools-cifsim-input-chapter-automatic">first transition</a> that is enabled, the
generated code will choose that same transition. That is, for each iteration of
the event loop, the code is executed for the first event with an enabled guard.
Then, a new iteration of the loop is started, from the top, to ensure that the
first enabled event is always executed, similar to simulation. If during an
iteration of the loop none of the events is enabled, the event loop terminates.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-termination-2">Termination</h6>
<div class="paragraph">
<p>If in the CIF model always at least one event is enabled, the generated code
will run forever, and will never terminate. Time will not pass. Code generation
should be avoided for such models. It is the responsibility of the modeler to
ensure this is taken into account.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-predictability-of-execution-time">Predictability of execution time</h6>
<div class="paragraph">
<p>If at least one event is enabled, the event loop is executed again. If during
an iteration of the loop none of the edges is enabled, the loop terminates.
This approach generally does not result in predictable execution times of the
program body. That is, if a certain edge keeps being enabled, the loop is
executed over an over again. In that case, the execution time of the body
may exceed the fixed cycle time, and the controller is no longer guaranteed to
work correctly. Even if the loop is only executed a finite number of times,
the execution time of the body may exceed the fixed cycle time. One may
consider monitoring the execution times to detect such issues. All
implementations provide a way to obtain execution time statistics. The details
differ per target language, and can be found on their respective pages.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optional-execution-feedback">Optional execution feedback</h6>
<div class="paragraph">
<p>Several implementations provide additional information during simulation, such as
which events have been executed, timing information, and what new print output
has been generated. Such information can generally be enabled and disabled in
the implementations. The details differ per target language, and can be found
on their respective pages.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-correct-handling-of-io">Correct handling of I/O</h6>
<div class="paragraph">
<p>The generated code cannot guarantee its correct behavior if the inputs from the
external I/O change more rapidly than the generated code is executed. That is,
if an input changes during a single execution of the code, the change is not
noticed until the next execution. If an input changes during an execution and
changes back during that same execution, the change is not noticed at all.
Therefore, executing the code often enough per second, is essential. In other
words, choosing an appropriate cycle time is essential for the correct
functioning of the generated code.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-codegen-accuracy-over-time">Accuracy over time</h6>
<div class="paragraph">
<p>The generated C89, C99 and Java code maintains the running time in seconds.
Due to the finite
representation of numeric values, this results in numeric overflow after
execution for a long time. Running the code continuously for longer than 100
years should be avoided.</p>
</div>
<div class="paragraph">
<p>The continuous variables from the CIF specification in the generated code
are updated each execution
using the <a href="http://en.wikipedia.org/wiki/Euler_method">Euler method</a> for
integration. That is, each execution the time that has elapsed since the
previous execution is multiplied by the derivative of the continuous variable
in the state of the previous execution. This value is added to the value of the
continuous variable. Essentially, a linear approximation of the derivative is
used, calculated using the state of the previous execution.</p>
</div>
<div class="paragraph">
<p>The Euler method can be
<a href="http://en.wikipedia.org/wiki/Numerical_stability">numerically unstable</a>, it
can suffer from rounding
errors due to the use finite binary representations of real values, and has
some other issues as well. The effects are likely to be limited if linear
continuous variable (continuous variables with constant derivatives) are used.
Especially clocks (derivative +1 or -1) generally don&#8217;t suffer too much from
these issues. However, even clocks may suffer from loss of accuracy over time.
As such, clocks should not be used to measure over long periods of time.
Instead they should be reset, rendering the past loss of accuracy irrelevant
for any future measurements.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-enumerations">Enumerations</h6>
<div class="paragraph">
<p>The <a href="#tools-cif2cif-chapter-linearize-merge">linearization</a> that is used as
preprocessing, also <a href="#tools-cif2cif-chapter-merge-enums">merges all enumerations</a>
into a single enumeration. This is done in such a way that the behavior of the
original CIF model is left intact. However, it is up to the implementer that
connects the inputs from the environment to the generated code, to ensure that
only valid enumeration literals are assigned to the input variables of the
generated code.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-codegen-chapter-c89">C89 code generation</h5>
<div class="paragraph">
<p>

The <a href="#tools-codegen-chapter-index">CIF code generator</a> can generate C89 code from a CIF
specification. It is assumed the reader of this page is familiar with the
general information of the CIF code generator tool. This page describes
specific information applicable only to C89 code generation.</p>
</div>
<div class="paragraph">
<p>In general, use of the <a href="#tools-codegen-chapter-c99">C99</a> code generator is
preferred, as the language contains a decade longer development. However, in
the case there is no <code>c99</code> compiler available, the <code>c89</code> code generation
might be a useful fallback option to convert a CIF program for controlling a
real time system. The conversion uses a simple integrator
intended for updating running clocks (derivative should not change during
a time step for best results). Also, it does not compute length of the next
time step, but instead assumes being called regularly to update
internal state and perform discrete steps if possible.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-6">Supported specifications</h6>
<div class="paragraph">
<p>The CIF code generator supports a subset of CIF specifications. Generation
of C89 code does not impose additional restrictions. See the
<a href="#tools-codegen-supported">Supported specifications</a> section of the <a href="#tools-codegen-chapter-index">CIF code generator</a>
page for more information.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-differences-in-output">Differences in output</h6>
<div class="paragraph">
<p>When converting a real number to text, for example when printing a real value,
the generated C89 code does not preserve trailing zeroes of real number
fractions while using <code>%g</code>. For example <code>fmt("%.3g", 1.0)</code> will output
<code>1</code> rather than <code>1.000</code>.</p>
</div>
<div class="paragraph">
<p>This may cause real number values to be printed with less digits precision than
indicated in the CIF program.</p>
</div>
<div class="paragraph">
<p>Strings have an upper limit in length that is set during compilation. Longer
strings are silently truncated to this length.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-15">Options</h6>
<div class="paragraph">
<p>The C89 code generator only uses the <a href="#tools-codegen-options">common options</a>
that apply to all target languages/platforms of the
<a href="#tools-codegen-chapter-index">CIF code generator</a>, it has no options of its own.</p>
</div>
<div class="paragraph">
<p>The code prefix that can be configured using a common option is used to prefix
external names, making them unique for the generated code.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-generated-files">Generated files</h6>
<div class="paragraph">
<p>C89 code generation leads to creation of seven files:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 66.6667%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Generated file</th>
<th class="tableblock halign-left valign-top">Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_library.h</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Runtime support code and library headers</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_library.c</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Runtime support code and library implementation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_engine.h</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Interface definition of the translated CIF program</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_engine.c</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation of the translated CIF program</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_compile.sh</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compile script for Linux</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_test_code.c</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Example of external functions, allow compiling the generated code</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_readme.txt</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Short description of use, the interface, and compile options</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>where <code>&lt;prefix&gt;</code> is replaced by the value of the <em>Code prefix</em> option during
code generation.</p>
</div>
<div class="paragraph">
<p>The aim is to provide a complete and compilable package, to minimize the effort
in converting a CIF specification. Most files are static text (modulo
the <code>&lt;prefix&gt;</code> replacement). The two exceptions are both engine files that
contain the C89 version of the CIF specification. The interface of these files
is however fixed (modulo the <code>&lt;prefix&gt;</code> replacement), and generated data
types and operations on them have predictable names, reducing the chance of
failed compilation when re-generating the files.</p>
</div>
<div class="paragraph">
<p>When modifying a generated file (such as the compile script or the example test
code), keep in mind that running the code generator again will overwrite <em>all</em>
files. Rename a file before modifying it to avoid loss of work.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-compilation-of-the-generated-code">Compilation of the generated code</h6>
<div class="paragraph">
<p>The generated code is C89 code that can be compiled using a C89 C compiler, like <code>gcc</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="shell">gcc -Wall -std=c89 -DPRINT_OUTPUT=1 -DCHECK_RANGES=1 \
    &lt;prefix&gt;_engine.c &lt;prefix&gt;_library.c &lt;prefix&gt;_test_code.c -lm</code></pre>
</div>
</div>
<div class="paragraph">
<p>The single <code>\</code> is not part of the command, it means the next line should be appended at the end.</p>
</div>
<div class="paragraph">
<p>The <code>&lt;prefix&gt;</code> should be replaced by the value of the <em>Code prefix</em> option during
code generation. The <code>PRINT_OUTPUT</code> and <code>CHECK_RANGES</code> macros enable
support for the CIF <code>print</code> statement and checking of integer range overlap,
as defined by CIF. In general however, you may want to replace the test code
file by your own code.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-c89-compile-time-options">C89 compile-time options</h6>
<div class="paragraph">
<p>Besides the <code>PRINT_OUTPUT</code> and <code>CHECK_RANGES</code> macros, the generated code
has a few other compile-time options to customize its behavior. Below is the complete list.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Macro name</th>
<th class="tableblock halign-left valign-top">Effect</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MAX_STRING_SIZE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CIF has variable length strings, in the generated code they are converted to strings with a fixed
upper limit. Default is 128 (including the terminator character). Set this macro for a different limit.
<em>Note that both the library and the engine use this macro. It is crucial that both files use the same
value for this macro</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHECK_RANGES</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">When copying integers from one range to another, where the latter is only partially covered by the
former, CIF checks whether the copied values do not violate the destination range. Since violating
this property generally indicates a programming error, it is recommended to enable this macro.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>EVENT_OUTPUT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If set, the generated code calls <code>&lt;prefix&gt;_InfoEvent()</code> before and after performing an event to
allow third-party code to act on it. Enable if your code needs to know when an event is performed.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PRINT_OUTPUT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If set, the CIF <code>print</code> statement is performed, and the <code>&lt;prefix&gt;__PrintOutput()</code> is called with
the resulting text and destination filename. Mainly intended for debugging, but only useful in
systems where the text can be displayed to a user.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MAX_NUM_EVENTS</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The CIF semantics state that execution of edges is instantaneous and time-less. The generated code
loops to perform edges, until no edge can be executed any more. Unfortunately, such a loop is not
time-less. To avoid requiring too much time, there is an upper limit of 1000 iterations. Set this macro
to change the limit.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>KEEP_RUNNING</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The CIF language checks range conversions (if <code>CHECK_RANGES</code> is set) and verifies updates of
continuous variable updates. Setting this flag disables a few checks. Most of these checks are in
<code>assert()</code> checks and not controlled by this macro, since violating the condition generally means a
crash is eventually inevitable. It is recommended to avoid using this macro.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect5">
<h6 id="tools-executing-the-code">Executing the code</h6>
<div class="paragraph">
<p>The engine files act as a library that implements the CIF program. To run the
program, the code must be called regularly. The code has two entry points, one
for initializing and performing the first steps, and one for handling a time
delay.</p>
</div>
<div class="paragraph">
<p>The first entry point is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_EngineFirstStep(<span class="directive">void</span>)</code></pre>
</div>
</div>
<div class="paragraph">
<p>This entry point initializes all the data, queries the values of the input
variables if present, and performs execution of edges until blocked on the
first time step or until hitting the <code>MAX_NUM_EVENTS</code> limit. Since this
resets the entire CIF program to its initial state, you should only call this
when the system being controlled is also (re-)initialized.</p>
</div>
<div class="paragraph">
<p>The second entry point is more regularly called, after a period of time has passed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_EngineTimeStep(<span class="predefined-type">double</span> delta)</code></pre>
</div>
</div>
<div class="paragraph">
<p>By calling this entry point, you indicate that <code>delta</code> (&gt; 0) time units have
passed. The code reads new values of the input variables,
<a href="#tools-codegen-accuracy-over-time">updates the continuous variables</a>,
and performs edges until all edges are blocked, or
hitting the <code>MAX_NUM_EVENTS</code> limit.</p>
</div>
<div class="paragraph">
<p>When the call of either entry point returns, you can query the value of the
variables to use as input for other parts of the system.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-environment-interface">Environment interface</h6>
<div class="paragraph">
<p>Calling one of the above entry points causes the CIF program to be executed,
up to the next time step (assuming the <code>MAX_NUM_EVENTS</code> limit is high
enough). During the execution, the code performs a number of callbacks to get
information from the environment, to provide information about its actions, or
to deliver output. In addition, after each call, variables may be inspected by
the environment to get information about the decisions of the CIF program.</p>
</div>
<div class="paragraph">
<p>The externally provided callback functions that are being used are:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_AssignInputVariables(<span class="directive">void</span>)</code></pre>
</div>
</div>
<div class="paragraph">
<p>The CIF program requests new values for all its input variables. In your
implementation of this function you should write values directly in the input
variables. Input variables are assumed to be independent of other parts of the
CIF program, in general you should not need other CIF program values to
implement this function.</p>
</div>
<div class="paragraph">
<p>If <code>EVENT_OUTPUT</code> is set during compilation, executed events are reported with:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_InfoEvent(&lt;prefix&gt;_Event_ event, BoolType pre)</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the <code>EVENT_OUTPUT</code> macro is set during compilation, the generated code
reports with this call that event event is about to (<code>pre</code> is <code>TRUE</code>),
or has been (<code>pre</code> is <code>FALSE</code>) executed. In the pre-event call, the event
can be executed, and all variables have their value before performing the
updates of the involved edges. In the post-event call, all variables have their
values updated as indicated in the updates of the edges.</p>
</div>
<div class="paragraph">
<p>Primary use of this call is to forward the decision to other parts of the
controlled system.</p>
</div>
<div class="paragraph">
<p>Finally, if the <code>PRINT_OUTPUT</code> macro is set during compilation, the generated
code reports lines of output to be printed with the following function call:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_PrintOutput(<span class="directive">const</span> <span class="predefined-type">char</span> *line, <span class="directive">const</span> <span class="predefined-type">char</span> *fname)</code></pre>
</div>
</div>
<div class="paragraph">
<p>It denotes that text <code>line</code> should be printed at file <code>fname</code>. The primary
uses of this call are to enable debugging the system, or to log relevant
events. Note that <code>fname</code> here can mean anything. It can mean a real file,
but also a pseudo-device like <code>:stdout</code> which is commonly used to print
output to the C <code>stdout</code> stream.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-data-access">Data access</h6>
<div class="paragraph">
<p>Each CIF constant is available as a variable that does not change after
initialization. Each algebraic variable can be queried by calling a function
with the same name as the variable. The value of continuous variables is
available by accessing the equivalent variable in the generated code. The
derivative of each continuous variable is available as function named by the
variable, and the suffix <code>deriv</code>. The model time is available as
<code>model_time</code>. There is no derivative function of time. Internal functions are
available as well if required.</p>
</div>
<div class="paragraph">
<p>The engine header file lists the translated names. It should be easy to find
the relevant entry, as the generated code also documents the original name.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-data-types">Data types</h6>
<div class="paragraph">
<p>The following table defines how CIF data types are converted in the C89 generated code.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">CIF data type</th>
<th class="tableblock halign-left valign-top">C89 data type</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BoolType</code> which is a typedef to <code>int</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>IntType</code> which is a typedef to <code>int</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>enum e = ...</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;Enum</code> which is a typedef to <code>enum Enum&lt;prefix&gt;_</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>RealType</code> which is a typedef to <code>double</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>string</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>StringType</code> which is a typedef to a <code>struct</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>list[n] t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>...Type</code> which is a typedef to a <code>struct</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tuple(...)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>...Type</code> which is a typedef to a <code>struct</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>A few notes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The <code>...</code> in the C89 <code>...Type</code> name for arrays (fixed length lists) and
tuples is the <a href="#tools-codegen-c89-systematic-type-names">systematic type name</a>
of the array or tuple type.</p>
</li>
<li>
<p>Due to <a href="#tools-cif2cif-chapter-linearize-merge">linearization</a> all enumerations
are merged into one. The generated C89 code always has exactly one translated
<code>enum</code>.</p>
</li>
<li>
<p>The elementary data types (<code>BoolType</code>, <code>IntType</code>, <code>RealType</code>, and
<code>StringType</code>) are defined in the library header file.</p>
</li>
<li>
<p>The <code>StringType</code> structure wraps a <code>char data[MAX_STRING_SIZE]</code> array.
The <code>struct</code> allows copying arrays by value using an assignment statement.</p>
</li>
<li>
<p>The array type (list with a fixed length) structure wraps a
<code>&lt;element-type&gt; data[&lt;size&gt;]</code> array for the same reason. Copying an array
by assignment is allowed.</p>
</li>
<li>
<p>The tuple type is a structure with fields <code>_field0</code>, <code>_field1</code>, and so
on, where the type of each field in the structure matches with the type of
the CIF tuple field.</p>
</li>
<li>
<p>Boolean constants <code>true</code> and <code>false</code> are  named <code>TRUE</code> and <code>FALSE</code>
respectively.</p>
</li>
<li>
<p>The <code>-0.0</code> value of doubles gets replaced by <code>0.0</code> to void subtle equality
problems.</p>
</li>
<li>
<p>Strings get silently truncated to <code>MAX_STRING_SIZE - 1</code> characters. They
are always terminated with a NUL character.</p>
</li>
<li>
<p>Enumeration values get <code>_&lt;prefix&gt;_</code> added in front to make them unique.</p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-codegen-c89-systematic-type-names">Systematic type names</h6>
<div class="paragraph">
<p>For tuple and list types, the type is converted to a name in a systematic way,
making each type unique and predictable.</p>
</div>
<div class="paragraph">
<p>The conversion composes a name of a type from the type of its elements, and
concatenates the result. The following conversion table applies:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">CIF type</th>
<th class="tableblock halign-left valign-top">Systematic name</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>B</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>I</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>enum e = ...</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E</code> (Due to linearization, all enumerations are merged together to a
single enumeration. As such, always exactly one <code>enum</code> is generated for a
CIF model.)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>R</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>list[n] t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>A&lt;n&gt;&lt;t&gt;</code>, with <code>&lt;n&gt;</code> the length of the array, and <code>&lt;t&gt;</code> the systematic
type name of the element type of the array.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tuple(t1, t2, t3, ..., tn)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>T&lt;n&gt;&lt;t1&gt;&lt;t2&gt;&lt;t3&gt;...&lt;tn&gt;</code>, with <code>&lt;n&gt;</code> the number of fields in the tuple, and
<code>&lt;t1&gt;</code> to <code>&lt;tn&gt;</code> the systematic type names of the fields.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For example, type <code>list[5] int</code> is converted to <code>A5I</code>, and type
<code>tuple(list[5] int x; tuple(real a, b) z)</code> is converted to <code>T2A5IT2RR</code>
(concatenation of <code>T2</code> with the field type names <code>A5I</code> and <code>T2RR</code>).</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-runtime-errors">Runtime errors</h6>
<div class="paragraph">
<p>The CIF language defines strict sets of allowed values for all data types, and
performs checking of these values at run time. The generated C89 code follows
that idea, and checks whether operations on data are safe. Most of these
checks are performed with an <code>assert</code>. Executed C code does not provide useful
stack traces by default, and original line numbers of e.g. a CIF program have no
meaning due to the linearization that is performed before code is generated. In
addition, the generated code is quite readable and it is not too hard to
understand what the code is doing at some C source line.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-codegen-chapter-c99">C99 code generation</h5>
<div class="paragraph">
<p>

The <a href="#tools-codegen-chapter-index">CIF code generator</a> can generate C99 code from a CIF
specification. It is assumed the reader of this page is familiar with the
general information of the CIF code generator tool. This page describes
specific information applicable only to C99 code generation.</p>
</div>
<div class="paragraph">
<p>The aim of the C99 code generation tool is to provide an easy conversion from
a CIF program to control of a real time system. It uses a simple integrator
intended for updating running clocks (derivative should not change during
a time step for best results). Also, it does not compute length of the next
time step, but instead assumes being called regularly to update
internal state and perform discrete steps if possible.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-7">Supported specifications</h6>
<div class="paragraph">
<p>The CIF code generator supports a subset of CIF specifications. Generation
of C99 code does not impose additional restrictions. See the
<a href="#tools-codegen-supported">Supported specifications</a> section of the <a href="#tools-codegen-chapter-index">CIF code generator</a>
page for more information.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-differences-in-output-2">Differences in output</h6>
<div class="paragraph">
<p>When converting a real number to text, for example when printing a real value,
the generated C99 code does not preserve trailing zeroes of real number
fractions while using <code>%g</code>. For example <code>fmt("%.3g", 1.0)</code> will output
<code>1</code> rather than <code>1.000</code>.</p>
</div>
<div class="paragraph">
<p>This may cause real number values to be printed with less digits precision than
indicated in the CIF program.</p>
</div>
<div class="paragraph">
<p>Strings have an upper limit in length that is set during compilation. Longer
strings are silently truncated to this length.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-16">Options</h6>
<div class="paragraph">
<p>The C99 code generator only uses the <a href="#tools-codegen-options">common options</a> that apply to all target languages/platforms of the
<a href="#tools-codegen-chapter-index">CIF code generator</a>, it has no options of its own.</p>
</div>
<div class="paragraph">
<p>The code prefix that can be configured using a common option is used to prefix
external names, making them unique for the generated code.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-generated-files-2">Generated files</h6>
<div class="paragraph">
<p>C99 code generation leads to creation of seven files:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 66.6667%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Generated file</th>
<th class="tableblock halign-left valign-top">Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_library.h</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Runtime support code and library headers</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_library.c</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Runtime support code and library implementation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_engine.h</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Interface definition of the translated CIF program</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_engine.c</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation of the translated CIF program</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_compile.sh</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compile script for Linux</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_test_code.c</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Example of external functions, allow compiling the generated code</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;_readme.txt</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Short description of use, the interface, and compile options</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>where <code>&lt;prefix&gt;</code> is replaced by the value of the <em>Code prefix</em> option during
code generation.</p>
</div>
<div class="paragraph">
<p>The aim is to provide a complete and compilable package, to minimize the effort
in converting a CIF specification. Most files are static text (modulo
the <code>&lt;prefix&gt;</code> replacement). The two exceptions are both engine files that
contain the C99 version of the CIF specification. The interface of these files
is however fixed (modulo the <code>&lt;prefix&gt;</code> replacement), and generated data
types and operations on them have predictable names, reducing the chance of
failed compilation when re-generating the files.</p>
</div>
<div class="paragraph">
<p>When modifying a generated file (such as the compile script or the example test
code), keep in mind that running the code generator again will overwrite <em>all</em>
files. Rename a file before modifying it to avoid loss of work.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-compilation-of-the-generated-code-2">Compilation of the generated code</h6>
<div class="paragraph">
<p>The generated code is C99 code that can be compiled using a C99 C compiler, like <code>gcc</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="shell">gcc -Wall -std=c99 -DPRINT_OUTPUT=1 -DCHECK_RANGES=1 \
    &lt;prefix&gt;_engine.c &lt;prefix&gt;_library.c &lt;prefix&gt;_test_code.c -lm</code></pre>
</div>
</div>
<div class="paragraph">
<p>The single <code>\</code> is not part of the command, it means the next line should be appended at the end.</p>
</div>
<div class="paragraph">
<p>The <code>&lt;prefix&gt;</code> should be replaced by the value of the <em>Code prefix</em> option during
code generation. The <code>PRINT_OUTPUT</code> and <code>CHECK_RANGES</code> macros enable
support for the CIF <code>print</code> statement and checking of integer range overlap,
as defined by CIF. In general however, you may want to replace the test code
file by your own code.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-c99-compile-time-options">C99 compile-time options</h6>
<div class="paragraph">
<p>Besides the <code>PRINT_OUTPUT</code> and <code>CHECK_RANGES</code> macros, the generated code
has a few other compile-time options to customize its behavior. Below is the complete list.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Macro name</th>
<th class="tableblock halign-left valign-top">Effect</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MAX_STRING_SIZE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CIF has variable length strings, in the generated code they are converted to strings with a fixed
upper limit. Default is 128 (including the terminator character). Set this macro for a different limit.
<em>Note that both the library and the engine use this macro. It is crucial that both files use the same
value for this macro</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHECK_RANGES</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">When copying integers from one range to another, where the latter is only partially covered by the
former, CIF checks whether the copied values do not violate the destination range. Since violating
this property generally indicates a programming error, it is recommended to enable this macro.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>EVENT_OUTPUT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If set, the generated code calls <code>&lt;prefix&gt;_InfoEvent()</code> before and after performing an event to
allow third-party code to act on it. Enable if your code needs to know when an event is performed.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>PRINT_OUTPUT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If set, the CIF <code>print</code> statement is performed, and the <code>&lt;prefix&gt;__PrintOutput()</code> is called with
the resulting text and destination filename. Mainly intended for debugging, but only useful in
systems where the text can be displayed to a user.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MAX_NUM_EVENTS</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The CIF semantics state that execution of edges is instantaneous and time-less. The generated code
loops to perform edges, until no edge can be executed any more. Unfortunately, such a loop is not
time-less. To avoid requiring too much time, there is an upper limit of 1000 iterations. Set this macro
to change the limit.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>KEEP_RUNNING</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The CIF language checks range conversions (if <code>CHECK_RANGES</code> is set) and verifies updates of
continuous variable updates. Setting this flag disables a few checks. Most of these checks are in
<code>assert()</code> checks and not controlled by this macro, since violating the condition generally means a
crash is eventually inevitable. It is recommended to avoid using this macro.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect5">
<h6 id="tools-executing-the-code-2">Executing the code</h6>
<div class="paragraph">
<p>The engine files act as a library that implements the CIF program. To run the
program, the code must be called regularly. The code has two entry points, one
for initializing and performing the first steps, and one for handling a time
delay.</p>
</div>
<div class="paragraph">
<p>The first entry point is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_EngineFirstStep(<span class="directive">void</span>)</code></pre>
</div>
</div>
<div class="paragraph">
<p>This entry point initializes all the data, queries the values of the input
variables if present, and performs execution of edges until blocked on the
first time step or until hitting the <code>MAX_NUM_EVENTS</code> limit. Since this
resets the entire CIF program to its initial state, you should only call this
when the system being controlled is also (re-)initialized.</p>
</div>
<div class="paragraph">
<p>The second entry point is more regularly called, after a period of time has passed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_EngineTimeStep(<span class="predefined-type">double</span> delta)</code></pre>
</div>
</div>
<div class="paragraph">
<p>By calling this entry point, you indicate that <code>delta</code> (&gt; 0) time units have
passed. The code reads new values of the input variables,
<a href="#tools-codegen-accuracy-over-time">updates the continuous variables</a>,
and performs edges until all edges are blocked, or
hitting the <code>MAX_NUM_EVENTS</code> limit.</p>
</div>
<div class="paragraph">
<p>When the call of either entry point returns, you can query the value of the
variables to use as input for other parts of the system.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-environment-interface-2">Environment interface</h6>
<div class="paragraph">
<p>Calling one of the above entry points causes the CIF program to be executed,
up to the next time step (assuming the <code>MAX_NUM_EVENTS</code> limit is high
enough). During the execution, the code performs a number of callbacks to get
information from the environment, to provide information about its actions, or
to deliver output. In addition, after each call, variables may be inspected by
the environment to get information about the decisions of the CIF program.</p>
</div>
<div class="paragraph">
<p>The externally provided callback functions that are being used are:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_AssignInputVariables(<span class="directive">void</span>)</code></pre>
</div>
</div>
<div class="paragraph">
<p>The CIF program requests new values for all its input variables. In your
implementation of this function you should write values directly in the input
variables. Input variables are assumed to be independent of other parts of the
CIF program, in general you should not need other CIF program values to
implement this function.</p>
</div>
<div class="paragraph">
<p>If <code>EVENT_OUTPUT</code> is set during compilation, executed events are reported with:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_InfoEvent(&lt;prefix&gt;_Event_ event, BoolType pre)</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the <code>EVENT_OUTPUT</code> macro is set during compilation, the generated code
reports with this call that event event is about to (<code>pre</code> is <code>TRUE</code>),
or has been (<code>pre</code> is <code>FALSE</code>) executed. In the pre-event call, the event
can be executed, and all variables have their value before performing the
updates of the involved edges. In the post-event call, all variables have their
values updated as indicated in the updates of the edges.</p>
</div>
<div class="paragraph">
<p>Primary use of this call is to forward the decision to other parts of the
controlled system.</p>
</div>
<div class="paragraph">
<p>Finally, if the <code>PRINT_OUTPUT</code> macro is set during compilation, the generated
code reports lines of output to be printed with the following function call:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="c">&lt;prefix&gt;_PrintOutput(<span class="directive">const</span> <span class="predefined-type">char</span> *line, <span class="directive">const</span> <span class="predefined-type">char</span> *fname)</code></pre>
</div>
</div>
<div class="paragraph">
<p>It denotes that text <code>line</code> should be printed at file <code>fname</code>. The primary
uses of this call are to enable debugging the system, or to log relevant
events. Note that <code>fname</code> here can mean anything. It can mean a real file,
but also a pseudo-device like <code>:stdout</code> which is commonly used to print
output to the C <code>stdout</code> stream.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-data-access-2">Data access</h6>
<div class="paragraph">
<p>Each CIF constant is available as a variable that does not change after
initialization. Each algebraic variable can be queried by calling a function
with the same name as the variable. The value of continuous variables is
available by accessing the equivalent variable in the generated code. The
derivative of each continuous variable is available as function named by the
variable, and the suffix <code>deriv</code>. The model time is available as
<code>model_time</code>. There is no derivative function of time. Internal functions are
available as well if required.</p>
</div>
<div class="paragraph">
<p>The engine header file lists the translated names. It should be easy to find
the relevant entry, as the generated code also documents the original name.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-data-types-2">Data types</h6>
<div class="paragraph">
<p>The following table defines how CIF data types are converted in the C99 generated code.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">CIF data type</th>
<th class="tableblock halign-left valign-top">C99 data type</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BoolType</code> which is a typedef to <code>int</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>IntType</code> which is a typedef to <code>int</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>enum e = ...</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;Enum</code> which is a typedef to <code>enum Enum&lt;prefix&gt;_</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>RealType</code> which is a typedef to <code>double</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>string</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>StringType</code> which is a typedef to a <code>struct</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>list[n] t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>...Type</code> which is a typedef to a <code>struct</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tuple(...)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>...Type</code> which is a typedef to a <code>struct</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>A few notes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The <code>...</code> in the C99 <code>...Type</code> name for arrays (fixed length lists) and
tuples is the <a href="#tools-codegen-c99-systematic-type-names">systematic type name</a>
of the array or tuple type.</p>
</li>
<li>
<p>Due to <a href="#tools-cif2cif-chapter-linearize-merge">linearization</a> all enumerations
are merged into one. The generated C99 code always has exactly one translated
<code>enum</code>.</p>
</li>
<li>
<p>The elementary data types (<code>BoolType</code>, <code>IntType</code>, <code>RealType</code>, and
<code>StringType</code>) are defined in the library header file.</p>
</li>
<li>
<p>The <code>StringType</code> structure wraps a <code>char data[MAX_STRING_SIZE]</code> array.
The <code>struct</code> allows copying arrays by value using an assignment statement.</p>
</li>
<li>
<p>The array type (list with a fixed length) structure wraps a
<code>&lt;element-type&gt; data[&lt;size&gt;]</code> array for the same reason. Copying an array
by assignment is allowed.</p>
</li>
<li>
<p>The tuple type is a structure with fields <code>_field0</code>, <code>_field1</code>, and so
on, where the type of each field in the structure matches with the type of
the CIF tuple field.</p>
</li>
<li>
<p>Boolean constants <code>true</code> and <code>false</code> are  named <code>TRUE</code> and <code>FALSE</code>
respectively.</p>
</li>
<li>
<p>The <code>-0.0</code> value of doubles gets replaced by <code>0.0</code> to void subtle equality
problems.</p>
</li>
<li>
<p>Strings get silently truncated to <code>MAX_STRING_SIZE - 1</code> characters. They
are always terminated with a NUL character.</p>
</li>
<li>
<p>Enumeration values get <code>_&lt;prefix&gt;_</code> added in front to make them unique.</p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-codegen-c99-systematic-type-names">Systematic type names</h6>
<div class="paragraph">
<p>For tuple and list types, the type is converted to a name in a systematic way,
making each type unique and predictable.</p>
</div>
<div class="paragraph">
<p>The conversion composes a name of a type from the type of its elements, and
concatenates the result. The following conversion table applies:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">CIF type</th>
<th class="tableblock halign-left valign-top">Systematic name</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>B</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>I</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>enum e = ...</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E</code> (Due to linearization, all enumerations are merged together to a
single enumeration. As such, always exactly one <code>enum</code> is generated for a
CIF model.)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>R</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>list[n] t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>A&lt;n&gt;&lt;t&gt;</code>, with <code>&lt;n&gt;</code> the length of the array, and <code>&lt;t&gt;</code> the systematic
type name of the element type of the array.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tuple(t1, t2, t3, ..., tn)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>T&lt;n&gt;&lt;t1&gt;&lt;t2&gt;&lt;t3&gt;...&lt;tn&gt;</code>, with <code>&lt;n&gt;</code> the number of fields in the tuple, and
<code>&lt;t1&gt;</code> to <code>&lt;tn&gt;</code> the systematic type names of the fields.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For example, type <code>list[5] int</code> is converted to <code>A5I</code>, and type
<code>tuple(list[5] int x; tuple(real a, b) z)</code> is converted to <code>T2A5IT2RR</code>
(concatenation of <code>T2</code> with the field type names <code>A5I</code> and <code>T2RR</code>).</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-runtime-errors-2">Runtime errors</h6>
<div class="paragraph">
<p>The CIF language defines strict sets of allowed values for all data types, and
performs checking of these values at run time. The generated C99 code follows
that idea, and checks whether operations on data are safe. Most of these
checks are performed with an <code>assert</code>. Executed C code does not provide useful
stack traces by default, and original line numbers of e.g. a CIF program have no
meaning due to the linearization that is performed before code is generated. In
addition, the generated code is quite readable and it is not too hard to
understand what the code is doing at some C source line.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-codegen-chapter-java">Java code generation</h5>
<div class="paragraph">
<p>

The <a href="#tools-codegen-chapter-index">CIF code generator</a> can generate Java code from a CIF
specification. It is assumed the reader of this page is familiar with the
general information of the CIF code generator tool. This page describes
specific information applicable only to Java code generation.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-8">Supported specifications</h6>
<div class="paragraph">
<p>The CIF code generator supports a subset of CIF specifications. Generation
of Java code does not impose additional restrictions. See the
<a href="#tools-codegen-supported">Supported specifications</a> section of the <a href="#tools-codegen-chapter-index">CIF code generator</a>
page for more information.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-17">Options</h6>
<div class="paragraph">
<p>Besides the <a href="#tools-codegen-options">common options</a> that apply to all
target languages/platforms of the <a href="#tools-codegen-chapter-index">CIF code generator</a>, the Java code
generation can be influenced by the following additional options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Java package</em>: The Java package in which to generate Java code. If not
specified, the code prefix is used. The specified package should be a valid
Java package name, and must not be empty.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The code prefix that can be configured using a common option, is used in the
generated Java code as prefix for class names.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-compilation">Compilation</h6>
<div class="paragraph">
<p>The generated Java code can be compiled with a Java 7 compiler or newer.</p>
</div>
<div class="paragraph">
<p>The generated code is complete, and can be used as is, without any CIF related
library or runtime. No additional dependencies or libraries are required.
Only the standard Java libraries, part of any Java installation, are needed.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-generated-files-3">Generated files</h6>
<div class="paragraph">
<p>Java code generation leads to two Java files being generated:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>&lt;prefix&gt;.java</code></p>
</li>
<li>
<p><code>&lt;prefix&gt;Test.java</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>where <code>&lt;prefix&gt;</code> is replaced by the code prefix configured using the
<em>Code prefix</em> option.</p>
</div>
<div class="paragraph">
<p>The first file contains the code for all the features of the CIF model in an
abstract class named <code>&lt;prefix&gt;</code>. The second file contains a class named
<code>&lt;prefix&gt;Test</code>, which inherits from the <code>&lt;prefix&gt;</code> class, and implements
various abstract methods. This test class can be used to test the code, and
can serve as a starting point for actually implementing the coupling between
the code generated for the CIF model, and the environment in which it runs.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-executing-the-code-3">Executing the code</h6>
<div class="paragraph">
<p>The code can be executed in multiple ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>execOnce</code> method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">void</span> execOnce(<span class="type">double</span> newTime)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Invoke this method to execute the code once. Inputs are read, transitions are
executed until none are possible, output is written, etc.</p>
</div>
<div class="paragraph">
<p>The <code>newTime</code> is the time in seconds, since the start of the first
execution of this method. For each invocation, the time that has elapsed
so far should be provided. This becomes the new value of variable <code>time</code>.</p>
</div>
<div class="paragraph">
<p>Using this method, you decide when you invoke this method, and with what
values to use for variable <code>time</code>. This approach allows full control.</p>
</div>
</li>
<li>
<p><code>exec</code> method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">void</span> exec(<span class="type">long</span> frequency)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Invoke this method to execute the code repeatedly, without ever stopping.
This repeatedly invokes the <code>execOnce</code> method.</p>
</div>
<div class="paragraph">
<p>The <code>frequency</code> can be used to configure how often, in number of times per
second, the code should be executed. By given a frequency of <code>100</code>, the
method attempts to execute the code every 10 milliseconds. If a single
execution takes less than 10 milliseconds, the method will sleep for the
remainder of what is left of the 10 milliseconds. However, if a single
execution takes more than 10 milliseconds, the next execution is immediately
started.</p>
</div>
<div class="paragraph">
<p>It is also possible to execute the code repeatedly, as fast as possible,
without any delays. As soon as a single execution has finished, another
execution is started. This kind of behavior can be obtained by providing a
negative or zero value for <code>frequency</code>.</p>
</div>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-environment-interface-3">Environment interface</h6>
<div class="paragraph">
<p>The code generated for the CIF model does not do anything useful by itself.
Only once it is coupled to the environment, can the CIF model become useful.
The following methods are provided in the interface of the generated class as
abstract methods, and need to be implemented in a derived class:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>updateInputs</code> method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">protected</span> <span class="type">void</span> updateInputs()</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this method, you should update the values of the input variables of the
CIF model. Note that you should obtain these from the environment. You should
not access the state of the CIF model from this method, as it may not be
initialized or up-to-date yet.</p>
</div>
<div class="paragraph">
<p>An example of how to update the input variables, can be found in the
generated <code>&lt;prefix&gt;Test</code> class. There, each input variable is assigned the
default value for its data type.</p>
</div>
<div class="paragraph">
<p>If you want to update the variable, you should always assign completely new
fresh values. Don&#8217;t modify arrays and tuples in-place, as that may lead to
other variables being changed as well.</p>
</div>
</li>
<li>
<p><code>preExec</code> method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">protected</span> <span class="type">void</span> preExec()</code></pre>
</div>
</div>
<div class="paragraph">
<p>This method is invoked each time, just before the code for the CIF model is
executed. This method is invoked before the <code>updateInputs</code> method is
invoked.</p>
</div>
<div class="paragraph">
<p>You should not access the state of the CIF model from this method, as it may
not be initialized or up-to-date yet.</p>
</div>
</li>
<li>
<p><code>postExec</code> method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">protected</span> <span class="type">void</span> postExec()</code></pre>
</div>
</div>
<div class="paragraph">
<p>This method is invoked each time, just after the code for the CIF model is
executed.
In this method, you should write the output variables of the CIF model to
the environment. Since the code for the CIF model was just executed, these
variables may have new values.</p>
</div>
<div class="paragraph">
<p>All discrete and continuous variables of the CIF model are available, as are
variable <code>time</code> and the current locations of all of the automata of the
CIF model.</p>
</div>
<div class="paragraph">
<p>The code to write the output values to the environment is the dual to reading
the inputs from the environment, as is done in the <code>updateInputs</code> method.</p>
</div>
</li>
<li>
<p><code>infoExec</code> method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">protected</span> <span class="type">void</span> infoExec(<span class="type">long</span> duration, <span class="type">long</span> cycleTime)</code></pre>
</div>
</div>
<div class="paragraph">
<p>This method informs about the duration of a single execution of the code
generated for the CIF model.
The <code>duration</code> is the total number of nanoseconds spent executing the code.
The <code>cycleTime</code> is the desired maximum duration of the execution, in
nanoseconds, or <code>-1</code> if not available.</p>
</div>
<div class="paragraph">
<p>You can use this method to detect when the code runs longer than the desired
maximum duration, and thus the desired execution frequency can not be
achieved. You can also use this method to figure out the variability of the
duration of execution.</p>
</div>
<div class="paragraph">
<p>The <code>doInfoExec</code> field of the class can be used to configure whether this
method is invoked during execution by the <code>exec</code> method. This is enabled
(<code>true</code>) by default.</p>
</div>
</li>
<li>
<p><code>infoEvent</code> method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">protected</span> <span class="type">void</span> infoEvent(<span class="type">int</span> idx, <span class="type">boolean</span> pre)</code></pre>
</div>
</div>
<div class="paragraph">
<p>This method informs about events that are about to be executed or have just
been executed.
The <code>idx</code> is the 0-based index of the event. You can feed this index to the
<code>getEventName</code> method to obtain the absolute name of the event. The <code>pre</code>
is <code>true</code> if the event is about to be executed, and <code>false</code> if the event
has just been executed.</p>
</div>
<div class="paragraph">
<p>You can use this method to be informed about what the code does during
execution. You could for instance log that for debugging.</p>
</div>
<div class="paragraph">
<p>The <code>doInfoEvent</code> field of the class can be used to configure whether this
method is invoked during execution. This is disabled (<code>false</code>) by default.</p>
</div>
</li>
<li>
<p><code>infoPrintOutput</code> method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">protected</span> <span class="type">void</span> infoPrintOutput(<span class="predefined-type">String</span> text, <span class="predefined-type">String</span> target)</code></pre>
</div>
</div>
<div class="paragraph">
<p>This method informs that new print output has been generated during
execution.
The <code>text</code> is the text that is to be printed. The <code>target</code> indicates the
file or special target to which text is to be printed. If printed to a file,
an absolute or relative local file system path is given. Paths may contain
both <code>/</code> and <code>\</code> as path separators. Supply the path to the
<code>&lt;prefix&gt;Utils.normalizePrintTarget</code> method to normalize the path to use
path separators for the current platform on which the Java code is executed.</p>
</div>
<div class="paragraph">
<p>There are two special targets: <code>:stdout</code> to print to the standard output
stream, and <code>:stderr</code> to print to the standard error stream.</p>
</div>
<div class="paragraph">
<p>You should use this method to actually print the text to standard output,
standard error, or files. An example of how to do this, can be found in the
generated <code>&lt;prefix&gt;Test</code> class.</p>
</div>
<div class="paragraph">
<p>The <code>doInfoPrintOutput</code> field of the class can be used to configure whether
this method is invoked during execution. This is enabled (<code>true</code>) by default.</p>
</div>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-data-access-and-manipulation">Data access and manipulation</h6>
<div class="paragraph">
<p>For each CIF constant, a field is generated in the Java class. Similar fields
are generated for the state variables (discrete and continuous variables), and
the input variables. A <code>time</code> field is always present and contains the
current model time.</p>
</div>
<div class="paragraph">
<p>For each internal user-defined function of the CIF model, a method is generated
in the Java class. Similarly, a method is generated for each algebraic variable
of the CIF model, as well as for the derivative of each continuous variable
(except variable <code>time</code>).</p>
</div>
<div class="paragraph">
<p>The standard library functions and operators that are supported by the code
generation, are also available, in the <code>&lt;prefix&gt;Utils</code> inner class. Not all
operators and standard library functions are available. Only those that have
no corresponding Java operator or method, or behave differently with respect to
runtime errors, are available in this inner class.</p>
</div>
<div class="paragraph">
<p>For more information on the names of the generated field and methods, see the
section on <a href="#tools-codegen-java-naming">naming</a> below.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-codegen-java-datatypes">Data types</h6>
<div class="paragraph">
<p>The following table lists CIF types supported by the code generator, and their
equivalent in the generated Java code:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 40%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">CIF type</th>
<th class="tableblock halign-left valign-top">Java type</th>
<th class="tableblock halign-left valign-top">Tuple postfix</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>boolean</code> / <code>java.lang.Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>B</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code> (with or without range)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code> / <code>java.lang.Integer</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>I</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>real</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>double</code> / <code>java.lang.Double</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>R</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>string</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.lang.String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>S</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>list[...] t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>java.util.List&lt;t&gt;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Lt</code>, with <code>t</code> a postfix for the element type</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>enum e = ...</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;Enum</code> inner enumeration (class)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tuple(...)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CifTuple_T...</code> inner class</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TnFFF</code>, with <code>n</code> the number of fields, and <code>FFF</code> a postfix for
the type of each field.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Notes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>For each unique tuple type (ignoring integer and array ranges
of the types of the fields, as well as field names) an inner
Java class is generated. Their names all start with
<code>CifTuple_</code>, and end in a postfix that describes the type.
The <em>Tuple postfix</em> column in the table lists the texts used for each
type in the postfix. For instance, for a
<code>tuple(tuple(int x; real y; string z) a, list[3] int b)</code>
type, the tuple class would be named <code>CifTuple_T2T3IRSLI</code>.</p>
</li>
<li>
<p>For <code>boolean</code>, <code>int</code>, and <code>double</code>, the primitive type is preferred. It&#8217;s boxed
variant is used when needed, for instance for element types of a
<code>java.util.List&lt;...&gt;</code> class.</p>
</li>
<li>
<p>Generic lists are not supported, only CIF arrays can be used.</p>
</li>
<li>
<p>As linearization is applied on the CIF model prior to generating Java code,
all enumerations are merged together to a single enumeration. As such, always
exactly one Java <code>enum</code> is generated for a CIF model.</p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-runtime-errors-3">Runtime errors</h6>
<div class="paragraph">
<p>Some CIF models that are syntactically valid, may lead to runtime errors when
simulated or executed. For instance, there may be a division by zero, an out
of bounds projection, or an assignment may lead to the range of the assigned
variable being violated. The generated Java code detects all such problems and
throws a <code>&lt;prefix&gt;Exception</code> in such cases. This exception class is an inner
class of the <code>&lt;prefix&gt;</code> class. The exception indicates what caused the
runtime error, using an informative end-user readable message.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-codegen-java-naming">Naming</h6>
<div class="paragraph">
<p>The generated code will contain names for variables, functions, etc. The names
in the generated code are based on the absolute names of the objects in the
original CIF model. The names are further influenced by the
<a href="#tools-cif2cif-chapter-linearize-merge">linearization</a> algorithm. Essentially,
the absolute names are used, where each <code>.</code> is replaced by a <code>_</code>.
Furthermore, a <code>_</code> is added at the end, to avoid conflicts with other
non-generated names, Java keywords, etc. For instance, for an automaton <code>a</code>
with a discrete variable <code>b</code> in it, the absolute name is <code>a.b</code>. In the
Java code, the variable will be named <code>a_b_</code>.</p>
</div>
<div class="paragraph">
<p>The code generator ensures unique names in the generated Java code. If the
same Java name results from two different CIF objects, one of them is renamed,
by adding a <code>2</code>, or <code>3</code>, or <code>4</code>, etc to make it unique. For instance,
if the CIF model has a constant named <code>a_b</code> in the top level scope, and a
constant named <code>b</code> in the <code>a</code> automaton, both would be named <code>a_b_</code>. One
of them is renamed to <code>a_b_2</code>. If such renaming takes place, a warning is
printed to the console.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">CIF model</th>
<th class="tableblock halign-left valign-top">Java code</th>
<th class="tableblock halign-left valign-top">Example CIF name</th>
<th class="tableblock halign-left valign-top">Example Java name</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Field</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Discrete variable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Field</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Continuous variable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Field</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Derivative of a continuous variable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Method</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b'</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_deriv()</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Algebraic variable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Method</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_()</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Input variable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Field</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">User-defined function</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Method</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_()</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Parameter of a user-defined function</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Method parameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Local variable of an internal user-defined function</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Local variable of a method</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a_b_</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enumeration</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enumeration</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;Enum</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enumeration literal</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enumeration constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.b.c</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;Enum._c</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Tuple type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Inner class</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">n/a</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CifTuple_T...</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Notes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>As linearization is applied on the CIF model prior to generating Java code,
all enumerations are merged together to a single enumeration. As such, always
exactly one Java <code>enum</code> is generated for a CIF model.</p>
</li>
<li>
<p>For details on tuple types and the classes that are generated for them,
see the <a href="#tools-codegen-java-datatypes">data types</a> section above.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-codegen-chapter-simulink">Simulink C S-Function code generation</h5>
<div class="paragraph">
<p>Everywhere at this page, the terms <em>Matlab</em>, <em>Simulink</em>, <em>S-Function</em>, and
<em>Mex</em> refer to products and programs developed and owned by <em>MathWorks</em>. For
more information, please visit <a href="http://mathworks.com/" class="bare">http://mathworks.com/</a>.</p>
</div>
<div class="paragraph">
<p>The <a href="#tools-codegen-chapter-index">CIF code generator</a> can generate Matlab Simulink S-Function C code
from a CIF specification. It is assumed the reader of this page is familiar with the
general information of the CIF code generator tool. This page describes
specific information applicable only to Simulink code generation.</p>
</div>
<div class="paragraph">
<p>The aim of the the conversion from CIF to Simulink is to provide a smooth path
from a CIF specification to a controlled real-time system.</p>
</div>
<div class="paragraph">
<p>At this page, all the details about the Simulink code generation are discussed.
For an example of how to use this code generation in practice, read
<a href="#tools-codegen-chapter-simulink-example">the example</a>.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-9">Supported specifications</h6>
<div class="paragraph">
<p>The CIF code generator supports a subset of CIF specifications.  See the
<a href="#tools-codegen-supported">Supported specifications</a> section of the <a href="#tools-codegen-chapter-index">CIF code generator</a> page
for more information. Generation of Simulink S-Function C code adds
a restriction to the type of CIF input variables caused by limitations in
Simulink input ports.</p>
</div>
<div class="paragraph">
<p>Simulink input ports can only handle real and complex signals. The latter
cannot be expressed in CIF, while the former creates the need for CIF input
variables with data types that can be relatively easily converted to real
number values. For this reason, CIF input variables must have a boolean,
enumeration, integer, or real elementary type. Arrays (fixed length CIF lists)
of these elementary types are also supported, they are converted to a vector
of real numbers at a Simulink input port. Finally, arrays of arrays of the
elementary types are converted to a matrix of real numbers at a Simulink input
port.</p>
</div>
<div class="paragraph">
<p>Data types of all other CIF variables have no additional constraints. However,
Simulink poses similar restrictions to its other data vectors, in particular
the output ports. The CIF to Simulink code generator toool only makes
variables available for output that are compatible with real number, vectors
of real numbers, or matrices of real numbers.
That means that use of the CIF string type, the tuple type, or arrays with
a deeper nesting than two levels will not be available at the output.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-differences-in-output-3">Differences in output</h6>
<div class="paragraph">
<p>When converting a real number to text, for example when printing a real value,
the generated Simulink code does not preserve trailing zeroes of real number
fractions while using <code>%g</code>. For example <code>fmt("%.3g", 1.0)</code> will output
<code>1</code> rather than <code>1.000</code>.
This may cause real number values to be printed with less digits precision than
indicated in the CIF program.</p>
</div>
<div class="paragraph">
<p>Strings have an upper limit in length that is set during compilation. Longer
strings are silently truncated to this length.</p>
</div>
<div class="paragraph">
<p>The CIF print statement is supported, but only for the <code>:stdout</code> file. It
is translated to the <code>ssPrintf</code> C function. This is also the only way to get
a string to appear outside the Simulink S-Function block. Note that Simulink
may drop the output function for platforms that have no output possibilities.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-options-18">Options</h6>
<div class="paragraph">
<p>The CIF to Simulink code generator uses the <a href="#tools-codegen-options">common options</a>
that apply to all target languages/platforms of the
<a href="#tools-codegen-chapter-index">CIF code generator</a>. It also has the additional options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Simulink Outputs</em>: This option takes a list of CIF variables that should be
made available as output of the generated S-Function. Only location
varaiables (automata), discrete variables, continuous variables, and
algebraic variables can be selected. The option also allows to use the
wildcard character <code>*</code>, which represents zero or more characters from the
name. You can use it to match several variables at once, for example
<code>*out</code> matches all variables that end with <code>out</code>. The special name
<code>nothing</code> means that no output should be produced at all.</p>
</li>
<li>
<p><em>Simulink sample time</em>: This option controls how Simulink samples the
generated block. Allowed values are <code>continuous</code>, <code>inherited</code>,
<code>variable</code>, or a sample period. Check the Mathworks <code>ssSetSampleTime</code>
function documentation for details which to use. By default, sample time is
set to <code>continuous</code>.</p>
</li>
<li>
<p><em>Simulink sample offset</em>: This option controls the offset of sampling. Its
allowed values depend on the value of the <em>Simulink sample time</em> option.
Possible values are <code>fixed</code>, <code>0.0</code>, or a positive non-zero value. Check
the Mathworks <code>ssSetSampleOffset</code> function documentation for details which
to use. By default, this options is set to <code>0.0</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The code prefix that can be configured using a common option is used as name
for the generated S-Function.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-generated-files-4">Generated files</h6>
<div class="paragraph">
<p>Running the Simulink code generator produces two output files:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Generated file</th>
<th class="tableblock halign-left valign-top">Contents</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;prefix&gt;.c</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The generated Simulink S-Function C code.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Report file</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Links CIF variables to Simulink entries.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>where <code>&lt;prefix&gt;</code> is replaced by the value of the <em>Code prefix</em> option during
code generation.</p>
</div>
<div class="paragraph">
<p>The <code>&lt;prefix&gt;.c</code> file contains the source code of the actual S-Function. The
file can be compiled using the Matlab Mex C compiler. The resulting mex file
can be used in Simulink (Open the <b class="menuref">Simulink Library</b>, select
<b class="menuref">User-defined functions</b>, and then the <b class="menuref">S-Function</b> block,
drag it into the Simulink canvas, open the block , and type the <code>&lt;prefix&gt;</code>
name into the <b class="menuref">Name</b> field.)</p>
</div>
<div class="paragraph">
<p>The report file lists how CIF variables got mapped onto
the input, mode, contstate, and output Simulink vectors. You can use this
information to connect your CIF program with the other parts of the Simulink model.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-codegen-chapter-simulink-example">Simulink code generation and simulation example</h5>
<div class="paragraph">
<p>The <a href="#tools-codegen-chapter-simulink">Simulink C S-Function code generation</a> can generate Simulink C code from a
CIF specification. Here an example is given to demonstrate how the code
generator can be used to control a model in Simulink.</p>
</div>
<div class="paragraph">
<p><em>Matlab</em> and <em>Simulink</em> are products owned by <a href="http://mathworks.com">Mathworks</a>.</p>
</div>
<div class="sect5">
<h6 id="tools-system-to-control">System to control</h6>
<div class="paragraph">
<p>The system to control is a simple water tank, as shown below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/codegen/simulink-example/tank.svg" alt="tank">
</div>
</div>
<div class="paragraph">
<p>The water in the tank has volume <code>V</code>. At the bottom of the tank is a pipe
where water flows away with speed <code>Qo</code>. At the top is a pipe with valve
<code>n</code> that can be open or closed. The <code>Qi</code> variable denotes the speed of
water flowing into the tank. The equations that hold in this system are:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">Qi = n * 5
Qo = sqrt(V)
V' = Qi - Qo</code></pre>
</div>
</div>
<div class="paragraph">
<p>By switching <code>n</code> on or off, a controller can control the amount of water
flowing into the tank, and with that, control the volume <code>V</code>. The objective
is to keep the volume between 2 and 10.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-controller-in-cif">Controller in CIF</h6>
<div class="paragraph">
<p>A switching controller will be sufficient to control this system. In CIF that
results in a <code>tank_ctrl.cif</code> file containing:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event open_valve;

automaton controller:
    disc int n = 0;
    input real V;

    location closed:
        initial;
        edge open_valve when V &lt;= 2 do n := 1 goto opened;

    location opened:
        edge when V &gt;= 10 do n := 0 goto closed;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The controller has the control variable <code>n</code>, and input variable <code>V</code>. When
the volume of the tank is below 2, <code>n</code> is set to <code>1</code>, which turns on the
inflow. When the volume of the tank is high enough, <code>n</code> is set to <code>0</code>
which turns the inflow off.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-generating-simulink-c-code">Generating Simulink C code</h6>
<div class="paragraph">
<p>To simulate the controlled system in Simulink, the code generator tool can
produce C code for Simulink that can be used in a Simulink <em>System SFunction</em> block.
Convert the CIF model to C for Simulink with the code generation tool, by
selecting the code generation tool from the menu under the right mouse button:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/codegen/simulink-example/rmb-generate-code.png" alt="rmb generate code">
</div>
</div>
<div class="paragraph">
<p>By default, you will get all internal variables at the output of the
SFunction, which is often too much. The <em>Simulink Generation</em> tab allows
precise definition of what output variables should be added, in this case all
variables in the <code>controller</code> automaton. (Input variables are never made
available from the CIF SFunction block, as they are already available in Simulink.)</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/codegen/simulink-example/set-output-variables.png" alt="set output variables">
</div>
</div>
<div class="paragraph">
<p>After selecting <em>OK</em>, the CIF model is translated to C code. Code generation
from the <code>tank_ctrl.cif</code> files results in two output files. The
<code>tank_ctrl.c</code> file contains the generated C source code. The
<code>tank_ctrl_report.txt</code> is a text file describing the data of the generated
SFunction code:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>Input/output report of the tank_ctrl.cif SFunction.

During code generation, CIF variables are made available in the Simulink vectors.
This report lists the variables in each vector, along with their index number.

Modes
-----
controller 1

Continuous states
-----------------
time 1

Inputs
------
controller.V 1

Outputs
-------
controller.n 1</code></pre>
</div>
</div>
<div class="paragraph">
<p>The report shows which CIF variables are available at each vector. The
<em>Inputs</em> and <em>Outputs</em> are the most interesting. Here it shows that <code>V</code> is
the only input variable, <code>n</code> is the only output variable, and they are both
the first value in their vector. This is what you would expect for such
a small system. With bigger systems, the index numbers are much more useful
for making proper connections in Simulink.</p>
</div>
<div class="paragraph">
<p>And this concludes the CIF part of this example, next step is setting things
up in Matlab/Simulink.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-simulation-in-simulink">Simulation in Simulink</h6>
<div class="paragraph">
<p>After starting <em>Matlab</em>, and moving to the correct directory, you get
a display like:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/codegen/simulink-example/matlab-mex.png" alt="matlab mex">
</div>
</div>
<div class="paragraph">
<p>You can see the files present in the directory, as you would expect. In
Matlab, the generated C code is compiled with the Matlab <em>Mex</em>
compiler:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="shell">mex tank_ctrl.c</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, the compiler prints a warning about the wrong compiler version, this may
be different at your system.</p>
</div>
<div class="paragraph">
<p>The result of the compilation is a <code>tank_ctrl.mexa64</code> file at a 64 bit
system. If you use a 32 bit system, the filename extension is different.</p>
</div>
<div class="paragraph">
<p>The compiled CIF controller can be used in a Simulink <em>System SFunction</em>
block, as shown below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/codegen/simulink-example/simulink-controlled-system.png" alt="simulink controlled system">
</div>
</div>
<div class="paragraph">
<p>In the middle the equations are modeled. The output of the equations is <code>V</code>,
which is fed into the <code>S-Function</code> block with the CIF controller at the top.
The controller computes <code>n</code> which is an input for the equations.</p>
</div>
<div class="paragraph">
<p>At the bottom, a scope is attached that produces the following picture.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/codegen/simulink-example/simulation-graph.png" alt="simulation graph">
</div>
</div>
<div class="paragraph">
<p>The volume fluctuates between 2 and 10, at the bottom is the control signal
<code>n</code>.</p>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-cif2plc-chapter-index">CIF PLC code generator</h4>
<div class="paragraph">
<p>


The CIF PLC code generator can be used to generate <strong>P</strong>rogrammable
<strong>L</strong>ogic <strong>C</strong>ontroller (PLC) code, for the implementation of CIF
controllers on PLCs. The generated PLC code adheres to the IEC 61131-3
standard, a widely used international standard for PLC programming languages.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-generator-2">Starting the generator</h5>
<div class="paragraph">
<p>The generator can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF implementation tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Generate PLC code for CIF specification&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF implementation tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Generate PLC code for CIF specification&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cif2plc</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cif2plc</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2plc-options">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output file. Depending on the <a href="#tools-cif2plc-output-type">output type</a>,
this is either a file or a directory. The default depends on the output type
as well.</p>
</li>
<li>
<p><em>PLC code output type</em>: The PLC code <a href="#tools-cif2plc-output-type">output type</a>
specifies the type of output (essentially the file format) that should be generated.</p>
</li>
<li>
<p><em>PLC task name</em>: The name of the PLC task to generate. If not specified,
defaults to <code>PlcTask</code>.</p>
</li>
<li>
<p><em>PLC task cycle time</em>: If periodic task scheduling is to be used, use this
option to enable it, by setting the cycle time in milliseconds for the task
to generate. The cycle time must be a positive integer number. Cycle times of
over a minute may not work as expected. However, since such large cycle times
are of little practical use, that should not be a problem. Disable this
option to disable periodic task scheduling. This option defaults to periodic
task scheduling with a cycle time of 10 milliseconds. Disabling periodic task
scheduling is not supported for the TwinCAT <a href="#tools-cif2plc-output-type">output type</a>.</p>
</li>
<li>
<p><em>PLC task priority</em>: The scheduling priority of the task to generate. The
priority must be in the range [0 .. 65535], where priority 0 is the highest
priority, and priority 65535 is the lowest priority. The priority can be used
for preemptive or non-preemptive scheduling. If not specified, the priority
defaults to 20.</p>
</li>
<li>
<p><em>PLC project name</em>: The name of the PLC project to generate. If not
specified, defaults to <code>Untitled1</code>.</p>
</li>
<li>
<p><em>PLC configuration name</em>: The name of the PLC configuration to generate. If
not specified, defaults to <code>Untitled1</code>.</p>
</li>
<li>
<p><em>PLC resource name</em>: The name of the PLC resource to generate. If not
specified, defaults to <code>Untitled1</code>.</p>
</li>
<li>
<p><em>PLC number bits</em>: The maximum number of bits supported by the PLC for
representing numeric values. Use 64-bit if supported by the PLC, for full CIF
compatibility, and the highest <a href="#tools-cif2plc-accuracy">accuracy</a>. If
the PLC does not supported 64-bit integer and floating point numbers, set
this option to 32-bit.</p>
</li>
<li>
<p><em>PLC maximum iterations</em>: The maximum number of iterations of the main loop
of the main program body, per execution of the main program body. Must be
a positive number. May be set to infinite, to not impose a restriction. The
default is set to at most 100 iterations. See the section on the
<a href="#tools-cif2plc-progbody">program body</a> for more information.</p>
</li>
<li>
<p><em>Formal function invocation (arguments based)</em>: Specifies for which functions
to use formal invocation syntax in the generated PLC code. By default the
formal syntax is used for none of the functions. For PLC implementations that
don&#8217;t support the non-formal syntax, the formal syntax can be used for all
functions, or only for functions with more than one argument.</p>
</li>
<li>
<p><em>Formal function invocation (function kind based)</em>: Specifies for which
functions to use formal invocation syntax in the generated PLC code. By
default the formal syntax is used only for all but the standard
library/conversion functions. This can be changed to only the standard
library/conversion functions, or to all functions.</p>
</li>
<li>
<p><em>Eliminate enumerations</em>: Enable this option to eliminate enumerations before
generating the actual PLC code, in case the PLC doesn&#8217;t support enumerations.
Disable this option to keep enumerations in the generated PLC code. By
default this option is disabled.</p>
</li>
<li>
<p><em>Simplify values</em>: Enable this option to simplify values and inline constants
during generation of the PLC code. The benefit is that static computations
are evaluated, and for the result simpler PLC code is generated. This applies
to both the original model as well as anything generated during the code
generation, for instance as the result of
<a href="#tools-cif2cif-chapter-linearize-merge">linearization</a>. Enabling the option
may thus lead to simpler PLC code. However, the simplification itself may
take quite some time. Furthermore, as constants are inlined, they are
duplicated for each use. If a constant with a large value (such as a large
literal array) is used multiple times, this can lead to significantly larger
PLC code. By default this option is enabled.</p>
</li>
<li>
<p><em>Rename warnings</em>: Enable this option to print warnings to the console when
a PLC name is renamed due to a conflict with another PLC name, or disable it
to omit the warnings. The option is disabled by default. See the section on
<a href="#tools-cif2plc-names">names</a> for more information.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Formal function invocation syntax (e.g. <code>MIN(IN1:3, IN2:5)</code>) is used in the
generated PLC code only for those functions that are included by both the
<b class="menuref">Formal function invocation (arguments based)</b>
option and the
<b class="menuref">Formal function invocation (function kind based)</b>
option. If either
of the options excludes the function, the non-formal function invocation syntax
(e.g. <code>MIN(3, 5)</code>) is used for that function. Note that for invocations of
function blocks, the generated PLC code always uses the formal syntax.
Furthermore, for certain standard library functions, only the non-formal syntax
is defined by the standard, and thus used in the generated PLC code.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-specifications-10">Supported specifications</h5>
<div class="paragraph">
<p>The CIF PLC code generator supports a subset of CIF specifications. The
following restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Unrestricted events are not supported, as they can always be executed (are
always enabled), and would lead to infinitely running PLC code. Detection of
unrestricted events however, is incomplete. That is, for some unrestricted
the code generation results in an error, while for other unrestricted events
code is generated without any warnings or errors. See the
<a href="#tools-cif2plc-progbody">Program body</a> section for more information.</p>
</li>
<li>
<p>Specifications without automata are not supported.</p>
</li>
<li>
<p>Initialization predicates outside locations are not supported, except if it
can be determined statically that they are trivially <code>true</code>.</p>
</li>
<li>
<p>State invariants in components are not supported, except if it can be
determined statically that they are trivially <code>true</code>.</p>
</li>
<li>
<p>State/event exclusion invariants (in components as well as locations) are not
supported. To allow state/event exclusion invariants to be used in the input,
manually eliminate them first using the
<a href="#tools-cif2cif-chapter-elim-state-event-excl-invs">Eliminate state/event exclusion invariants</a> CIF to CIF transformation.</p>
</li>
<li>
<p>Discrete variables with multiple initial values (including <code>any</code>) are not
supported.</p>
</li>
<li>
<p>External user-defined functions are not supported.</p>
</li>
<li>
<p>Urgent locations are not supported.</p>
</li>
<li>
<p>Initialization predicates in locations that can not be statically evaluated
are not supported.</p>
</li>
<li>
<p>State invariants in locations are not supported, except if it can be
determined statically that they are trivially <code>true</code>.</p>
</li>
<li>
<p>Automata that do not have exactly one initial location are not supported.</p>
</li>
<li>
<p>Urgent edges are not supported.</p>
</li>
<li>
<p>User-defined functions without parameters are not supported.</p>
</li>
<li>
<p>Internal user-defined functions that contain a multi-assignment that assigns
multiple (non-overlapping) parts of a single variable are not supported.
For instance, <code>a[0], a[1] := 1, 2</code> is not supported, as multiple parts
(the first and second element) of array <code>a</code> are assigned in a single
multi-assignment. This restriction applies only to multi-assignments in
functions, not to multi-assignments on edges.</p>
</li>
<li>
<p>Internal user-defined functions that contain a <code>continue</code> statement are
not supported.</p>
</li>
<li>
<p>Data types other than <code>bool</code>, <code>int</code> (with or without range), <code>real</code>,
enumerations, tuples, and arrays, are not supported. This applies to the data
types of variables, parameters of functions, return types of functions, etc.</p>
</li>
<li>
<p>String values are not supported.</p>
</li>
<li>
<p>Cast from <code>int</code> to <code>real</code> and casts that don&#8217;t change the type, are
supported. All other casts are not supported.</p>
</li>
<li>
<p>Sampling of distributions is not supported.</p>
</li>
<li>
<p>The use of the conjunction and disjunction binary operators on anything other
than boolean values is not supported.</p>
</li>
<li>
<p>The use of the equality and inequality binary operators on anything other
than boolean, integer, real, or enumeration values is not supported.</p>
</li>
<li>
<p>The use of the addition and subtraction binary operators on anything other
than integer or real values is not supported.</p>
</li>
<li>
<p>The use of the element test and subset binary operators is not supported.</p>
</li>
<li>
<p>Projection on anything other than tuples and arrays is not supported. This
applies to expressions as well as addressables (the left hand sides of
assignments). For arrays, both 0-based indices (counting from the left) as
well as negative indices (counting from the right) are supported.</p>
</li>
<li>
<p>Slicing is not supported.</p>
</li>
<li>
<p>Function calls on anything other than standard library functions and internal
user-defined functions is not supported.</p>
</li>
<li>
<p>The <code>ceil</code>, <code>del</code>, <code>empty</code>, <code>floor</code>, <code>fmt</code>, <code>pop</code>, <code>round</code>,
<code>scale</code>, <code>sign</code>, <code>size</code>, <code>acosh</code>, <code>asinh</code>, <code>atanh</code>, <code>cosh</code>,
<code>sinh</code>, and <code>tanh</code> standard library functions are not supported.</p>
</li>
<li>
<p>The distribution standard library functions are not supported.</p>
</li>
<li>
<p>Lists (except for arrays), sets, and dictionaries are not supported.</p>
</li>
<li>
<p>The use of functions as values is not supported. That is, functions may only
be used in function calls, and may for instance not be stored in variables.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-7">Preprocessing</h5>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a> (if <em>Simplify values</em> option is enabled)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-others">Simplify others</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-consts">Eliminate constants</a> (if <em>Simplify values</em> option is enabled)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>After these preprocessing steps, the generator checks whether the specification
is supported. It then applies the following additional <a href="../../cif2cif/index.html">CIF to CIF
transformations</a>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-linearize-merge">Linearize (merge)</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a> (if <em>Simplify values</em> option is enabled)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-add-default-init-values">Add default initial values</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-standard-compliance">Standard compliance</h5>
<div class="paragraph">
<p>The PLC code that is generated complies with the second edition (from 2003) of
the IEC 61131-3 standard. The code does not use any vendor specific extensions,
functions, etc.</p>
</div>
<div class="paragraph">
<p>For the TwinCAT <a href="#tools-cif2plc-output-type">output type</a>, <code>STRUCT</code>
data type declarations have no <code>;</code> character after the <code>STRUCT</code> data types,
to work around a bug in the TwinCAT parser. In that case the output is not
compliant with the IEC 61131-3 standard.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-generated-plc-code">Generated PLC code</h5>
<div class="paragraph">
<p>The bodies of the programs and functions in the generated PLC code use
Structured Text as programming language. Structured Text is one of the
programming languages that is part of the IEC 61131-1 standard.</p>
</div>
<div class="paragraph">
<p>The generated code contains a single program called <code>MAIN</code>. This program is
instantiated in a task, which is part of a resource, which in turn is part of
a configuration. The configuration is put in a project, but that is outside
the range of the IEC 61131-3 standard. Most implementations however, work with
projects. The effect of the project, configuration, resource, and task is
dependent on the <a href="#tools-cif2plc-output-type">output type</a>. Besides a
program, the code generator also generates data types, functions, and global
variables.</p>
</div>
<div class="paragraph">
<p>For algebraic variables, functions are generated that are parametrized over the
state of the system. Similarly, functions are generated for the derivatives of
the continuous variables. For the discrete and continuous variables (including
variable <code>time</code>), a <code>STRUCT</code> data type named <code>STATE</code> is generated that
holds the entire state of the system (or more precisely, the
<a href="#tools-cifsim-traces-state">state</a> of the CIF specification). For input variables,
an <code>INPUTS</code> global variables list/file is generated. For constants (if
<em>Simplify values</em> option is disabled), a <code>CONSTS</code> global variables list/file
is generated.</p>
</div>
<div class="paragraph">
<p>For invalid CIF specifications, the resulting code may not always behave as the
original CIF code. For instance, the ranges of integer types are ignored by the
code generator. Furthermore, <code>mod</code> by zero in CIF results in a runtime error,
while in the generated code it results in zero. Out of bound projection indices
of arrays may for instance have the effect that the closest existing element is
used instead, and the result may even be implementation dependent. There are
other such differences as well.</p>
</div>
<div class="paragraph">
<p>Little to no effort is put into generating readable code. That is, the
generated is not meant to be inspected. The generated code is also not intended
to be modified directly. Instead, the original CIF models should be modified,
and from them new PLC code should be generated. Examples of non-readable code
include the generated <a href="#tools-cif2plc-names">names</a>, and code generated
for expressions (which has way more parentheses than strictly necessary).</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2plc-names">Names</h5>
<div class="paragraph">
<p>The generated PLC code will contain names for functions, variables, locations
of automata, etc. The absolute names of all objects are used. The names are
influenced by the <a href="#tools-cif2cif-chapter-linearize-merge">linearization</a>
algorithm. They are further influenced by the PLC code generator.</p>
</div>
<div class="paragraph">
<p>The code generator ensures unique names in the generated PLC code, taking into
account the reserved names (keywords, standard functions, etc) of the IEC
61131-3 standard and some of the common implementations of that standard. To
avoid reserved names, names are prefixed with prefixes that depend on the type
of object (for instance, <code>dvar_</code> for discrete variables). Furthermore, it
takes into account that names in CIF are case sensitive, while they are case
insensitive in IEC 61131-3. The code generator computes a candidate name based
on these criteria.</p>
</div>
<div class="paragraph">
<p>If this results in duplicate names, renaming is performed. A common reason for
renaming is different locations (of the same automaton or of different
automata) that have the same name, but in different casing. For instance,
consider one location named <code>WaitForTimeout</code> and another named
<code>WaitForTimeOut</code>. After linearization, there is an enumeration with a literal
for each unique location name. The enumeration thus has at least two literals,
named <code>WaitForTimeout</code> and <code>WaitForTimeOut</code>. The candidate names for these
enumeration literals are <code>elit_WaitForTimeout</code> and <code>elit_WaitForTimeOut</code>.
However, they are identical except for casing. Thus, the first one that is
encountered during code generation gets the candidate name, and the second one
is renamed. This results in a warning like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">WARNING: PLC variable &quot;elit_WaitForTimeout&quot; is renamed to &quot;elit_WaitForTimeout2&quot;.</code></pre>
</div>
</div>
<div class="paragraph">
<p>Renaming may be needed to ensure valid functioning output. However, it may make
it slightly more difficult to trace names in the generated PLC code back to the
original CIF model. Also, in the PLC environment, when debugging the current
values of variables may be shown. If enumeration literals are renamed, the
renamed names may then be shown in the debugger. By default, the PLC code
generator does not inform the user when renaming takes place. By enabling the
<em>Rename Warnings</em> option, a warning will be printed to the console, each time
a PLC name is renamed.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2plc-progbody">Program body</h5>
<div class="paragraph">
<p>The body of the <code>MAIN</code> program consists of several parts. The <code>MAIN</code>
program is executed exactly once per cycle, by the PLC. The following parts are
present, and are executed in order:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Time and cycle time handling.</p>
</li>
<li>
<p>Initialization of the initial state, for the first cycle only.</p>
</li>
<li>
<p>Updating of the continuous variables for the time that has passed since the
previous cycle, for all but the first cycle.</p>
</li>
<li>
<p>A loop that executes events for as long as they are possible.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The code automatically determines the cycle time that is used, in a manner that
does not require any vendor specific extensions, functions, or data types.
The generated code works for fixed cycle times (periodic task scheduling) as
well as variable cycle times (non-periodic tasks).</p>
</div>
<div class="paragraph">
<p>During the first cycle, the variables of the state are initialized to their
proper values. For subsequent cycles, the state resulting from the previous
cycle is reused, where the values of the continuous variables are updated to
account for the time that has passed since the beginning of the previous cycle.
For details on the method used to update the values of the continuous
variables, see the <a href="#tools-cif2plc-accuracy">Accuracy over time</a> section.</p>
</div>
<div class="paragraph">
<p>The loop at the end of the body evaluates the guard of each of the events of
the CIF specification. If a guard holds, the corresponding update is performed.
Code is generated for the events, or rather the edges, in the order that they
occur in the <a href="#tools-cif2cif-chapter-linearize-merge">linearized</a> CIF
specification. Linearization is performed in such a way, that the PLC code that
is generated from it, has a correspondence to the simulator. Assuming the
simulator is used to simulate by always automatically choosing the
<a href="#tools-cifsim-input-chapter-automatic">first transition</a> that is enabled, the
PLC code will choose that same transition. That is, for each iteration of the
event loop, the code is executed for the first event with an enabled guard.
Then, a new iteration of the loop is started, from the top, to ensure that the
first enabled event is always executed, similar to simulation. If during an
iteration of the loop none of the events is enabled, the loop terminates.</p>
</div>
<div class="paragraph">
<p>If at least one event was enabled, the loop is executed again. If during an
iteration of the loop none of the edges was enabled, the loop terminates. This
approach generally does not result in predictable execution times of the
program body. That is, if a certain edge keeps being enabled, the loop is
executed over an over again. In that case, the execution time of the body
exceeds the fixed cycle time, and the controller is no longer guaranteed to
work correctly. Even if the loop is only executed a finite number of times,
the execution time of the body may exceed the fixed cycle time. One may
consider monitoring the execution times to detect such issues.</p>
</div>
<div class="paragraph">
<p>
Within the 'event loop', a counter is used to detect how often the loop is
repeated. After the loop is executed a 100 times, the loop is terminated, to
ensure that the body terminates in the case of events that are always possible.
In such a cases, variable <code>loopsKilled</code> is incremented by one, for debugging.
While by default the loop is terminated after 100 iterations, this maximum
number of iterations can be configured using the
<b class="menuref">PLC maximum iterations</b>
option (<b class="menuref">Generator</b>
category). The
option can also be set to infinite, to not impose a restriction, and never
terminate the loop due to too many iterations. See also the
<a href="#tools-cif2plc-options">Options</a> section above.</p>
</div>
<div class="paragraph">
<p>Obviously, similar to the fact that the controller cannot guarantee its correct
behavior if the execution time of a cycle exceeds the cycle time, the
controller also cannot guarantee its correct behavior if the inputs from the
external I/O change more rapidly than the cycle time. That is, if an input
changes during a cycle, the change is not noticed until the next cycle. If an
input changes during a cycle and changes back during that same cycle, the
change is not noticed at all. Therefore, choosing an appropriate cycle time is
essential for the correct functioning of the controller.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2plc-accuracy">Accuracy over time</h5>
<div class="paragraph">
<p>The generated code maintains the running time in seconds, by adding the cycle
time to current running time, on each cycle. Due to the finite binary
representation of real values, this results in loss of a accuracy over
prolonged periods of execution time. As such, the use of variable <code>time</code> in
CIF models is highly discouraged.</p>
</div>
<div class="paragraph">
<p>However, for a cycle time of one millisecond, while there may be loss of
accuracy, time should keep increasing for at least several thousand years.
After that, adding the cycle time may no longer increase the value of the
variable, potentially resulting in unexpected execution behavior.</p>
</div>
<div class="paragraph">
<p>The continuous variables from the CIF specification are updated each cycle
using the
<a href="http://en.wikipedia.org/wiki/Euler_method">Euler method</a>
for
integration. That is, each cycle the cycle time is multiplied by the derivative
of the continuous variable in the state of the previous cycle. This value is
added to the value of the continuous variable. Essentially, a linear
approximation of the derivative is used, calculated using the state of the
previous cycle.</p>
</div>
<div class="paragraph">
<p>The Euler method can be
<a href="http://en.wikipedia.org/wiki/Numerical_stability">numerically unstable</a>,
can suffer from rounding
errors due to the use finite binary representations of real values, and has
some other issues as well. The effects are likely to be limited if linear
continuous variable (continuous variables with constant derivatives) are used.
Especially clocks (derivative +1 or -1) generally don&#8217;t suffer too much from
these issues. However, even clocks may suffer from loss of accuracy over time.
As such, clocks should not be used to measure over long periods of time.
Instead they should be reset, rendering the past loss of accuracy irrelevant
for any future measurements.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-io-coupling">I/O coupling</h5>
<div class="paragraph">
<p>For all variables in the state of the CIF specification, except for variable
<code>time</code>, PLC variables are generated with a <code>%Q*</code> address, to ensure they
can be used as output variables, and can potentially be coupled to output
ports. The state is maintained in a variable <code>state0</code>, a persistent local
variable of the <code>MAIN</code> program.</p>
</div>
<div class="paragraph">
<p>For all input variables of the CIF specification, a PLC variable is generated
with a <code>%I*</code> addresses, to ensure they can be used as input variables, and
can potentially be coupled to input ports. These variables are generated in a
global variables list/file named <code>INPUTS</code>.</p>
</div>
<div class="paragraph">
<p>The actual coupling to hardware addresses is something that is left to the
implementation of the PLC programming environment.</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2plc-output-type">PLC output type</h5>
<div class="paragraph">
<p>The PLC code generator can generate its output in multiple forms (file formats)
depending on the output type. The output type can be configured using the
<b class="menuref">PLC code output type</b>
option (
<b class="menuref">Generator</b>
category). The
following output types are currently available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>PLCopen XML (default)</p>
</li>
<li>
<p>IEC 61131-3</p>
</li>
<li>
<p><a href="#tools-cif2plc-chapter-twincat">TwinCAT</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>PLCopen XML is an
<a href="http://en.wikipedia.org/wiki/XML">XML</a>-based file format
standardized by the PLCopen organization, intended for the exchange of complete
projects of PLC code, even across different tools and vendors. The PLCopen
XML files generated by the PLC code generator are compliant with version 2.01
of the PLCopen XML standard. By default, if no output file is specified, it
defaults to the input file path, where the <code>.cif</code> file extension is removed
(if present), and a <code>.plcopen.xml</code> file extension is added.</p>
</div>
<div class="paragraph">
<p>Output in IEC 61131-3 syntax generates multiple files. By default, if no output
directory is specified, it defaults to the input file path, where the <code>.cif</code>
file extension is removed (if present), and a <code>_plc</code> directory extension is
added. The <code>MAIN</code> program gets a <code>.plcprog</code> file extension, functions get
a <code>.plcfunc</code> file extension, type declarations get a <code>.plctype</code> file
extension, and the configuration gets a <code>.plccfg</code> file extension. The
<em>PLC project name</em> and <em>PLC resource name</em> options have no effect for this
output type.</p>
</div>
<div class="paragraph">
<p>TwinCAT is a complete
<a href="http://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a>
for the
development and testing of PLC controllers. Using the TwinCAT PLC output type,
the generated PLC code can be written to the native file formats of the TwinCAT
IDE. By default, if no output directory is specified, it defaults to the input
file path, where the <code>.cif</code> file extension is removed (if present), and a
<code>_twincat</code> directory extension is added. See the
<a href="#tools-cif2plc-chapter-twincat">TwinCAT PLC output</a> page for further details.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2plc-chapter-twincat">TwinCAT PLC output</h5>
<div class="paragraph">
<p>

<a href="http://www.beckhoff.com/english/twincat">TwinCAT</a>
is a complete
<a href="http://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a>
for the
development and testing of PLC controllers. Using the TwinCAT <a href="#tools-cif2plc-output-type">PLC output
type</a>, the generated PLC code can be written to the
native file formats of the TwinCAT IDE. This allows for more tight integration
and smoother development cycles than using the PLCopen XML output type.</p>
</div>
<div class="paragraph">
<p>We currently only provide official support for version 3.1 of TwinCAT.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div class="sect5">
<h6 id="tools-cif2plc-twincat-modes">TwinCAT system modes</h6>
<div class="paragraph">
<p>The TwinCAT software IDE is built on Microsoft Visual Studio. TwinCAT also
supplies a utility to monitor and control the TwinCAT System Service, via an
icon in the system tray, part in the Windows taskbar. The icon shows the mode
(or status) of the TwinCAT system:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_inactive.png" alt="mode inactive"></span>
Inactive Mode</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_stop.png" alt="mode stop"></span>
Stop Mode</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_config.png" alt="mode config"></span>
Config Mode</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_run.png" alt="mode run"></span>
Run Mode</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_ex.png" alt="mode ex"></span>
Exception Mode</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In the <em>Inactive Mode</em>, the TwinCAT System Service is not running. Restart
Windows or manually activate the TwinCAT System Service and related services.</p>
</div>
<div class="paragraph">
<p>The <em>Stop Mode</em> is of little use, so
<a href="#tools-cif2plc-twincat-modes-change">switch</a> to the <em>Config Mode</em>
instead. In the <em>Config Mode</em>, the system (the PLC) can be configured. In the
<em>Run Mode</em>, the system (the PLC) can be used to control the hardware. If a
runtime exception occurs in <em>Run Mode</em>, the <em>Exception Mode</em> becomes active.</p>
</div>
<div class="paragraph">
<p>Within Visual Studio, the mode is also shown as an icon in the bottom right
corner of the IDE:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_stop.png" alt="mode stop"></span>
Stop Mode</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_config.png" alt="mode config"></span>
Config Mode</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_run.png" alt="mode run"></span>
Run Mode</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_run.png" alt="mode run"></span> / <span class="image"><img src="./tools/cif2plc/mode_free_run.png" alt="mode free run"></span>
Free Run Mode (alternating icons)</p>
</li>
<li>
<p><span class="image"><img src="./tools/cif2plc/mode_ex.png" alt="mode ex"></span>
Exception Mode</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the system is only equipped with a <em>soft PLC</em>, and the TwinCAT environment
is set up to target the local system, both icons should indicate a consistent
status. This page assumes this situation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2plc-twincat-modes-change">Changing modes</h6>
<div class="paragraph">
<p>To change to <em>Config Mode</em> or restart <em>Config Mode</em> from the system tray:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Right click the system tray icon and choose
<span class="menuseq"><b class="menu">System</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Config</b></span>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To change to <em>Config Mode</em> or restart <em>Config Mode</em> from Visual Studio:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">TwinCAT</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Restart TwinCAT (Config Mode)</b></span>.
Alternatively, click the appropriate toolbar item
(<span class="image"><img src="./tools/cif2plc/restart_config.png" alt="restart config"></span>).</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Restart TwinCAT System in Config Mode</em>.
Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>A dialog pops up with the question <em>Load I/O Devices</em>.
Click
<b class="button">Yes</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>A dialog pops up with the question <em>Activate Free Run</em>.
Click
<b class="button">Yes</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To change to <em>Run Mode</em> or restart <em>Run Mode</em> from the system tray:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Make sure the hardware is powered up.</p>
</li>
<li>
<p>Right click the system tray icon and choose
<span class="menuseq"><b class="menu">System</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Start/Restart</b></span>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To change to <em>Run Mode</em> or restart <em>Run Mode</em> from Visual Studio:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Make sure the hardware is powered up.</p>
</li>
<li>
<p>Click <span class="menuseq"><b class="menu">TwinCAT</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Restart TwinCAT System</b></span>. Alternatively,
click the appropriate toolbar item (<span class="image"><img src="./tools/cif2plc/restart_run.png" alt="restart run"></span>).</p>
</li>
<li>
<p>A dialog pops up with the question <em>Restart TwinCAT System in Run Mode</em>.
Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In general it is recommended to switch modes via Visual Studio instead of via
the system tray icon.</p>
</div>
<div class="paragraph">
<p>



</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-generated-output">Generated output</h6>
<div class="paragraph">
<p>The CIF PLC code generator can generate code into an existing TwinCAT Visual
Studio solution, with a TwinCAT XAE project that contains a TwinCAT Standard
PLC project. The directory that contains the solution must have the same name
(except for the file extension) as the solution file (<code>.sln</code> file). The
TwinCAT XAE project (both the directory and the <code>.tsproj</code> file) in the
solution should have the same name as well. The TwinCAT XAE project should
contain a TwinCAT Standard PLC project. This project may be given any name,
and this name can be configured using the
<b class="menuref">PLC project name</b>
option
(<b class="menuref">Generator</b>
category). However, in order to be able to import I/O
mappings it is highly recommended to always use the default name suggested by
TwinCAT (<code>Untitled1</code>) for TwinCAT Default PLC projects.</p>
</div>
<div class="paragraph">
<p>The project should already contain a task. This task can be given any name,
and this name can be configured using the
<b class="menuref">PLC task name</b>
option
(<b class="menuref">Generator</b>
category). By default, TwinCAT Default PLC projects have
a task named <code>PlcTask</code>. This name is the default for the
<b class="menuref">PLC task name</b>
option as well. The cycle time and priority of the
task are automatically updated by the PLC code generator, depending on the
values provided for the options of the generator. The code generator also
ensures that the <code>MAIN</code> program is instantiated/scheduled on the task.</p>
</div>
<div class="paragraph">
<p>All <code>POU</code> (functions, programs, etc), <code>DUT</code> (data types), and <code>GVL</code>
(global variable lists) code files that are present in the TwinCAT Default PLC
project are removed, from both the project and from disk, by the PLC code
generator. The newly generated code files are (over)written, and the project is
updated to include and compile only the newly generated files.</p>
</div>
<div class="paragraph">
<p>The
<b class="menuref">PLC configuration name</b>
and
<b class="menuref">PLC resource name</b>
options have no effect on the TwinCAT output.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2plc-twincat-usage">TwinCAT usage</h6>
<div class="paragraph">
<p>Follow these steps to create a solution and project in TwinCAT, generate PLC
code in it, and use the PLC code to control the hardware:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Start TwinCAT (Visual Studio) by right clicking on the TwinCAT system tray
icon and choosing
<b class="menuref">TwinCAT XAE (VS 2010)</b>.</p>
</li>
<li>
<p>Create a new TwinCAT XAE project:</p>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">File</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">New</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Project&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In the
<b class="menuref">New Project</b>
window,
<b class="menuref">TwinCAT XAE Project (XML format)</b>
should already be selected. If not, first select
<b class="menuref">TwinCAT Project</b>
on the left (from the list of
<b class="menuref">Installed Templates</b>),
and then select
<b class="menuref">TwinCAT XAE Project (XML format)</b>.</p>
</li>
<li>
<p>Choose a project name and enter it in the
<b class="menuref">Name</b>
box at the
bottom of the dialog.</p>
</li>
<li>
<p>Make sure the
<b class="menuref">Solution name</b>
is exactly the same, and that the
<b class="menuref">Create directory for solution</b>
option is enabled.</p>
</li>
<li>
<p>For
<b class="menuref">Location</b>,
select the directory in which the directory for
the solution should be created. This is usually the directory that contains
the script and/or source files you will be using to generate the PLC code.</p>
<div class="ulist">
<ul>
<li>
<p>To figure out the directory that contains the ToolDef script, make sure
that the <b class="menuref">Properties</b> view is visible in Eclipse. Select the ToolDef
script in the 'Project Explorer' tab or 'Package Explorer' tab, and look
for the <b class="menuref">location</b> property.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Click
<b class="button">OK</b>
to create the project.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Scan the available hardware:</p>
<div class="ulist">
<ul>
<li>
<p>Make sure the hardware is powered up.</p>
</li>
<li>
<p>Make sure the <a href="#tools-cif2plc-twincat-modes">Config Mode</a> is enabled,
by <a href="#tools-cif2plc-twincat-modes-change">switching</a> to it if it is not
the current mode.</p>
</li>
<li>
<p>In the project, under
<b class="menuref">I/O</b>,
right click the
<b class="menuref">Devices</b>
item and choose
<b class="menuref">Scan</b>.
Alternatively, select the
<b class="menuref">I/O</b>
item and click the appropriate toolbar item (<span class="image"><img src="./tools/cif2plc/scan_devices.png" alt="scan devices"></span>).</p>
</li>
<li>
<p>A dialog pops up with the warning
<em>HINT: Not all types of devices can be found automatically</em>.
Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>A dialog pops up where you have to choose the I/O device to scan. Normally,
if you have only one I/O device, it should already be selected. Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>A dialog pops up with the question <em>Scan for boxes</em>.
Click
<b class="button">Yes</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>A dialog pops up with the question <em>Activate Free Run</em>.
Click
<b class="button">Yes</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Create a new TwinCAT PLC project:</p>
<div class="ulist">
<ul>
<li>
<p>Right click the
<b class="menuref">PLC</b>
item in the project, and choose
<b class="menuref">Add New Item&#8230;&#8203;</b>.</p>
</li>
<li>
<p>In the
<b class="menuref">Add New Item</b>
dialog,
<b class="menuref">Standard PLC project</b>
should already be selected.</p>
</li>
<li>
<p>Keep the name
<code>Untitled1</code>
in the
<b class="menuref">Name</b>
box at the
bottom of the dialog.</p>
</li>
<li>
<p>Also don&#8217;t change the
<b class="menuref">Location</b>
of the project.</p>
</li>
<li>
<p>Click
<b class="menuref">Add</b>
to add the PLC project.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Save the entire solution by clicking <span class="menuseq"><b class="menu">File</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Save All</b></span>.</p>
</li>
<li>
<p>Generate PLC code. If using a script, wait for the execution of the script to
finish (the status indicated
as part of the title of the console should change from <code>running</code> to
<code>FINISHED</code>).</p>
</li>
<li>
<p>Switch back to TwinCAT (Microsoft Visual Studio).</p>
</li>
<li>
<p>When a
<em>File Modification Detected</em>
window pops up for the project,
click
<b class="button">Reload</b>
to reload the updated project that was written by
the CIF tooling.</p>
</li>
<li>
<p>Build the project by clicking <span class="menuseq"><b class="menu">Build</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Rebuild Solution</b></span>.</p>
</li>
<li>
<p>Load the I/O mappings:</p>
<div class="ulist">
<ul>
<li>
<p>In the project, under
<b class="menuref">I/O</b>,
right click
<b class="menuref">Mappings</b>,
and choose
<b class="menuref">Import Mapping Infos&#8230;&#8203;</b>.</p>
</li>
<li>
<p>Select the mappings file for your hardware, and click
<b class="menuref">Open</b>.</p>
</li>
<li>
<p>If the import succeeds, you should see an
<em>Untitled1 Instance - &#8230;&#8203;</em>
item under the
<b class="menuref">Mappings</b>
item.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Activate the configuration:</p>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">TwinCAT</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Activate Configuration</b></span>. Alternatively,
click the appropriate toolbar item (<span class="image"><img src="./tools/cif2plc/activate_cfg.png" alt="activate cfg"></span>).</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Activate Configuration (Old Configurations will be overwritten!)</em>.
Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Restart TwinCAT System in Run Mode</em>. Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Start the PLC:</p>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">PLC</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Login</b></span>. Alternatively, click the appropriate
toolbar item (<span class="image"><img src="./tools/cif2plc/login.png" alt="login"></span>).</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Application Port_851 does not
exist on the device. Do you want to create it and proceed with download?</em>.
Click
<b class="button">Yes</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>Click <span class="menuseq"><b class="menu">PLC</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Start</b></span>. Alternatively, click the appropriate
toolbar item (<span class="image"><img src="./tools/cif2plc/start.png" alt="start"></span>).</p>
</li>
</ul>
</div>
</li>
<li>
<p>The PLC is now running, and you can use the system.</p>
</li>
</ul>
</div>
<div id="tools-cif2plc-twincat-usage-stop" class="paragraph">
<p>To stop the PLC:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">PLC</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Stop</b></span>. Alternatively, click the appropriate
toolbar item (<span class="image"><img src="./tools/cif2plc/stop.png" alt="stop"></span>).</p>
</li>
<li>
<p>Click <span class="menuseq"><b class="menu">PLC</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Logout</b></span>. Alternatively, click the appropriate
toolbar item (<span class="image"><img src="./tools/cif2plc/logout.png" alt="logout"></span>). This step is optional, and can usually be
skipped.</p>
</li>
</ul>
</div>
<div id="tools-cif2plc-twincat-usage-reset" class="paragraph">
<p>To reset the PLC and start the 'simulation' from the beginning, with the same
code and the same configuration:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Make sure the hardware is powered up.</p>
</li>
<li>
<p>Load the I/O mappings, if the
<em>Untitled1 Instance - &#8230;&#8203;</em>
item under the
<b class="menuref">Mappings</b>
item is no longer present:</p>
<div class="ulist">
<ul>
<li>
<p>In the project, under
<b class="menuref">I/O</b>,
right click
<b class="menuref">Mappings</b>,
and choose
<b class="menuref">Import Mapping Infos&#8230;&#8203;</b>.</p>
</li>
<li>
<p>Select the mappings file for your hardware, and click
<b class="menuref">Open</b>.</p>
</li>
<li>
<p>If the import succeeds, you should see an
<em>Untitled1 Instance - &#8230;&#8203;</em>
item under the
<b class="menuref">Mappings</b>
item.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Reactivate the configuration:</p>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">TwinCAT</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Activate Configuration</b></span>. Alternatively,
click the appropriate toolbar item (<span class="image"><img src="./tools/cif2plc/activate_cfg.png" alt="activate cfg"></span>).</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Activate Configuration (Old Configurations will be overwritten!)</em>.
Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Restart TwinCAT System in Run Mode</em>.
Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Start the PLC:</p>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">PLC</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Login</b></span>. Alternatively, click the appropriate
toolbar item (<span class="image"><img src="./tools/cif2plc/login.png" alt="login"></span>).</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Application Port_851 does not
exist on the device. Do you want to create it and proceed with download?</em>.
Click
<b class="button">Yes</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>Click <span class="menuseq"><b class="menu">PLC</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Start</b></span>. Alternatively, click the appropriate
toolbar item (<span class="image"><img src="./tools/cif2plc/start.png" alt="start"></span>).</p>
</li>
</ul>
</div>
</li>
<li>
<p>The PLC is now running, and you can use the system.</p>
</li>
</ul>
</div>
<div id="tools-cif2plc-twincat-usage-regen" class="paragraph">
<p>Whenever you change a CIF source file, regenerate a supervisor, change a
hardware mapping, etc, you need to regenerate the PLC code as well. Follow
these steps:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Make sure the <a href="#tools-cif2plc-twincat-modes">Config Mode</a> is enabled,
by <a href="#tools-cif2plc-twincat-modes-change">switching</a> to it if it is not
the current mode.</p>
</li>
<li>
<p>Save the entire solution in TwinCAT by clicking
<span class="menuseq"><b class="menu">File</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Save All</b></span>.</p>
</li>
<li>
<p>Regenerate PLC code from Eclipse.
If using a script, wait for the execution of the script to finish (the status indicated
as part of the title of the console should change from <code>running</code> to
<code>FINISHED</code>).</p>
</li>
<li>
<p>Switch back to TwinCAT (Microsoft Visual Studio).</p>
</li>
<li>
<p>For all
<em>File has been changed outside the environment. Reload the new file?</em>
questions, click
<b class="button">Yes</b>
or press
<kbd>ENTER</kbd>.
See the
<a href="#tools-cif2plc-twincat-faq">Frequently Asked Questions (FAQ)</a> for instructions on how to disable some of
these questions.</p>
</li>
<li>
<p>When a
<em>File Modification Detected</em>
window pops up for the project,
click
<b class="button">Reload</b>
to reload the updated project that was written by
the CIF tooling.</p>
</li>
<li>
<p>Clean the project by clicking <span class="menuseq"><b class="menu">Build</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Clean Solution</b></span>.</p>
</li>
<li>
<p>Rebuild the project by clicking <span class="menuseq"><b class="menu">Build</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Rebuild Solution</b></span>.</p>
</li>
<li>
<p>Make sure the hardware is powered up.</p>
</li>
<li>
<p>Reload the I/O mappings:</p>
<div class="ulist">
<ul>
<li>
<p>In the project, under
<b class="menuref">I/O</b>, right click
<b class="menuref">Mappings</b>,
and choose
<b class="menuref">Import Mapping Infos&#8230;&#8203;</b>.</p>
</li>
<li>
<p>Select the mappings file for your hardware, and click
<b class="menuref">Open</b>.</p>
</li>
<li>
<p>If the import succeeds, you should see an
<em>Untitled1 Instance - &#8230;&#8203;</em>
item under the
<b class="menuref">Mappings</b>
item.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Activate the configuration:</p>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">TwinCAT</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Activate Configuration</b></span>. Alternatively,
click the appropriate toolbar item (<span class="image"><img src="./tools/cif2plc/activate_cfg.png" alt="activate cfg"></span>).</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Activate Configuration (Old Configurations will be overwritten!)</em>. Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>A dialog pops up with the question
<b class="menuref">Restart TwinCAT System in Run Mode</b>.
Click
<b class="button">OK</b>
or press
<kbd>ENTER</kbd>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Start the PLC:</p>
<div class="ulist">
<ul>
<li>
<p>Click <span class="menuseq"><b class="menu">PLC</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Login</b></span>. Alternatively, click the appropriate
toolbar item (<span class="image"><img src="./tools/cif2plc/login.png" alt="login"></span>).</p>
</li>
<li>
<p>A dialog pops up with the question
<em>Application Port_851 does not
exist on the device. Do you want to create it and proceed with download?</em>.
Click
btn:Yes[]
or press
<kbd>ENTER</kbd>.</p>
</li>
<li>
<p>Click <span class="menuseq"><b class="menu">PLC</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Start</b></span>. Alternatively, click the appropriate
toolbar item (<span class="image"><img src="./tools/cif2plc/start.png" alt="start"></span>).</p>
</li>
</ul>
</div>
</li>
<li>
<p>The PLC is now running, and you can use the system.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2plc-twincat-faq">Frequently Asked Questions (FAQ)</h6>
<div class="ulist">
<ul>
<li>
<p><strong>Question</strong>: Is there something that can be done about the large number of
<em>File has been changed outside the environment&#8230;&#8203;</em> prompts?</p>
<div class="paragraph">
<p><strong>Answer</strong>: Yes. Click <span class="menuseq"><b class="menu">Tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Options&#8230;&#8203;</b></span> to show the
<b class="menuref">Options</b> dialog. On the left, select
<span class="menuseq"><b class="menu">Environment</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Documents</b></span>. Then, on the right, enable the
<b class="menuref">Detect when file is changed outside the environment</b> and
<b class="menuref">Auto-load changes, if saved</b> options.</p>
</div>
</li>
<li>
<p><strong>Question</strong>: Why doesn&#8217;t importing the I/O mappings have any effect?</p>
<div class="paragraph">
<p><strong>Answer</strong>: Make sure the TwinCAT Standard PLC project is named
<code>Untitled1</code>, and try again. Also, make sure you&#8217;ve built the
solution before you try to import the I/O mappings.</p>
</div>
</li>
<li>
<p><strong>Question</strong>: I get a dialog with the warning
<em>Device '&#8230;&#8203;' needs a sync master (at least one variable linked to a task variable)</em>.
What should I do?</p>
<div class="paragraph">
<p><strong>Answer</strong>: You probably forgot to load an I/O mapping.</p>
</div>
</li>
</ul>
</div>
<div id="tools-cif2plc-twincat-faq-inlinemon" class="ulist">
<ul>
<li>
<p><strong>Question</strong>: Why does opening the MAIN program take so long in
Run Mode?</p>
<div class="paragraph">
<p><strong>Answer</strong>: As the generated code becomes larger, it can take a long time for
TwinCAT to set up the environment for inline monitoring of the MAIN
program. To disable inline monitoring, click
<span class="menuseq"><b class="menu">Tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Options&#8230;&#8203;</b></span> to show the <b class="menuref">Options</b> dialog.
On the left, select
<span class="menuseq"><b class="menu">TwinCAT</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">PLC Environment</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Text Editor</b></span>. Then, on the
right, switch to the <b class="menuref">Monitoring</b> tab. Disable the
<b class="menuref">Enable inline monitoring option</b>.</p>
</div>
</li>
<li>
<p><strong>Question</strong>: TwinCAT hangs for long periods of time, before crashing and
automatically being restarted by Windows. What should I do?</p>
<div class="paragraph">
<p><strong>Answer</strong>: If the generated code is too large, TwinCAT may not be able to
handle it. In such cases, reduce the size of the generated code, by reducing
the size of the CIF model for which you are generating the code.</p>
</div>
</li>
<li>
<p><strong>Question</strong>: I get an error stating 'Reading file failed. [&#8230;&#8203;]'.
What should I do?</p>
<div class="paragraph">
<p><strong>Answer</strong>: The generated code is too large for TwinCAT to handle. See also
the answer to the previous question.</p>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tools-miscellaneous-tools">Miscellaneous tools</h3>
<div class="sect3">
<h4 id="tools-cif2cif-chapter-index">CIF to CIF transformer</h4>
<div class="paragraph">
<p>

The CIF to CIF transformer can be used to syntactically transform CIF
specifications to similar CIF specifications, which behave in the same
manner (are semantically equivalent), but are expressed using different
language constructs. For example, the CIF to CIF transformation that
eliminates constants, replaces all uses of constants by their values,
and removes the constants from the specification.</p>
</div>
<div class="paragraph">
<p>These reusable transformations are primarily used to increase the subset
of CIF specifications that can be transformed or processed.
Usually, there is no need to apply the CIF to CIF transformations manually.
Transformations that work on subsets of the CIF language, automatically
apply the necessary CIF to CIF transformations as a preprocessing step, to
increase the translatable subset.</p>
</div>
<div class="paragraph">
<p>The CIF to CIF transformer can also be used as a <a href="#tools-cif2cif-pprinter">pretty printer</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-transformation-6">Starting the transformation</h5>
<div class="paragraph">
<p>The transformation can be started from Eclipse in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Right click a <code>.cif</code> file in the 'Project Explorer' tab or
'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF miscellaneous tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply CIF to CIF transformations&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF miscellaneous tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Apply CIF to CIF transformations&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cif2cif</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cif2cif</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-options-19">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file path</em>: The absolute or relative local file system path to the
input CIF specification.</p>
</li>
<li>
<p><em>Output file path</em>: The absolute or relative local file system path to the
output CIF specification. If not specified, the output file path defaults to
the input file path, where the <code>.cif</code> file extension is removed (if
present), and a <code>.transformed.cif</code> file extension is added.</p>
</li>
<li>
<p><em>Transformations</em>: The CIF to CIF transformations to apply. The
transformations are applied in the chosen order. Transformations may be
applied multiple times. By default, no transformations are applied,
essentially making the CIF to CIF transformer a <a href="#tools-cif2cif-pprinter">pretty printer</a>.</p>
<div class="paragraph">
<p>In the option dialog, the available transformations are shown. To add a
transformation, double click it, or select it and click the <em>Add</em>
button below the list of available transformations. To remove a
transformation, double click on it in the list of chosen transformations, or
select it in that list and click the <em>Remove</em> button.</p>
</div>
<div class="paragraph">
<p>At the command line, specify comma separated transformation names, in the
order they should be applied. The names to use are listed below, in the
<a href="#tools-cif2cif-available">Available transformations</a> section.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-transformation-descriptions">Transformation descriptions</h5>
<div class="paragraph">
<p>The pages describing the <a href="#tools-cif2cif-available">available transformations</a> all use the same format. They have the following
sections:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Introduction</em>: describes the transformation in a few sentences.</p>
</li>
<li>
<p><em>Supported specifications</em>: describes the subset of CIF specifications to which
the transformation can be applied.</p>
</li>
<li>
<p><em>Preprocessing</em>: specifies the CIF to CIF transformations that are
automatically applied as preprocessing, or the CIF to CIF transformations
that can be manually applied as preprocessing, to increase the subset of
CIF specifications that can be transformed by the transformation.</p>
</li>
<li>
<p><em>Implementation details</em>: further specifies what the transformation does, how
it does it, and what the result of the transformation is. Most
transformations also show one or more examples.</p>
</li>
<li>
<p><em>Renaming</em>: explains if and when renaming may be performed by the
transformation.</p>
</li>
<li>
<p><em>Size considerations</em>: describes whether the transformation reduces or
increases the size of the specification. If the specification may increase
in size, an estimate of the order of increase is given (linear, exponential,
etc). Note that the size is not the file size, but rather the number of
objects used to represent the specification (the number of automata,
locations, edges, guards, binary operators, etc).</p>
</li>
<li>
<p><em>Optimality</em>: describes why the transformation result may not be optimal, if
applicable. May also explain how to eliminate certain concepts that may be
introduced as the result of the transformation.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-available">Available transformations</h5>
<div class="paragraph">
<p>A whole collection of CIF to CIF transformations is available. The available
transformations are listed below, with a link to the information about the
transformation, and the name to use for that transformation on the command
line.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-add-default-init-values">Add default initial values</a> (<code>add-default-init-values</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-alg-vars">Eliminate algebraic variables</a> (<code>elim-alg-vars</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-aut-casts">Eliminate automata to string casts</a> (<code>elim-aut-casts</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a> (<code>elim-comp-def-inst</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-consts">Eliminate constants</a> (<code>elim-consts</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-enums">Eliminate enumerations</a> (<code>elim-enums</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-equations">Eliminate equations</a> (<code>elim-equations</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-groups">Eliminate groups</a> (<code>elim-groups</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-if-updates">Eliminate <code>if</code> updates</a> (<code>elim-if-updates</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a> (<code>elim-locs-in-exprs</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-monitors">Eliminate monitors</a> (<code>elim-monitors</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</a> (<code>elim-self</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-state-event-excl-invs">Eliminate state/event exclusion invariants</a> (<code>elim-state-event-excl-invs</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-tau-event">Eliminate <code>tau</code> event</a> (<code>elim-tau-event</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-tuple-field-projs">Eliminate tuple field projections</a> (<code>elim-tuple-field-projs</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-type-decls">Eliminate type declarations</a> (<code>elim-type-decls</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-lift-events">Lift events</a> (<code>lift-events</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-linearize-merge">Linearize (merge)</a> (<code>linearize-merge</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-linearize-product">Linearize (product)</a> (<code>linearize-product</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-merge-enums">Merge enumerations</a> (<code>merge-enums</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-print-file-into-decls">Push print file declarations into print declarations</a> (<code>print-file-into-decls</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-remove-cif-svg-decls">Remove CIF/SVG declarations</a> (<code>remove-cif-svg-decls</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a> (<code>remove-io-decls</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-remove-print-decls">Remove print declarations</a> (<code>remove-print-decls</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-remove-pos-info">Remove position information</a> (<code>remove-pos-info</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-remove-reqs">Remove requirements</a> (<code>remove-reqs</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-others">Simplify others</a> (<code>simplify-others</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a> (<code>simplify-values</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values-optimized">Simplify values (optimized)</a> (<code>simplify-values-optimized</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values-no-refs">Simplify values (no references)</a> (<code>simplify-values-no-refs</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-simplify-values-no-refs-optimized">Simplify values (no references, optimized)</a> (<code>simplify-values-no-refs-optimized</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-svg-file-into-decls">Push SVG file declarations into other CIF/SVG declarations</a> (<code>svg-file-into-decls</code>)</p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-switches-to-ifs">Convert <code>switch</code> expressions to <code>if</code> expressions</a> (<code>switches-to-ifs</code>)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-pprinter">Pretty printer</h5>
<div class="paragraph">
<p>If no transformations are applied by the CIF to CIF transformer, the input CIF
specification is just read from the input file, validated, and written to the
output file. This can be useful, as it essentially turns the CIF to CIF
transformer into a CIF <em>pretty printer</em>.</p>
</div>
<div class="paragraph">
<p>As a side effect of reading the input file and validating it, the model may
change slightly. In fact, this occurs not only for the CIF to CIF transformer
but for all tools, as they all read input files and validate them, before
continuing with their actual task. Examples of such changes include the
elimination of imports, the loss of comments, and the evaluation of tuple
projection indices.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-add-default-init-values">Add default initial values</h5>
<div class="paragraph">
<p>

This CIF to CIF transformation adds the default initial values to variables
that are not given an explicit initial value. This includes discrete and
continuous variables, as well as local variables of functions.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-11">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-8">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details">Implementation details</h6>
<div class="paragraph">
<p>The default values for all types are simple values. The only exception are
function types, for which a new function is introduced. This new functions
returns the default value for the return type of the function. If multiple
default values for the same function type are needed, the newly introduced
function is reused. The functions are named <code>_f</code>, <code>_f2</code>, <code>_f3</code>, etc.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton x:
  disc int x, y = 5;
  disc func bool (int) f;
  location;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">func bool _f(int p0):
  return false;
end

automaton x:
  disc int x = 0, y = 5;
  disc func bool (int) f = _f;
  location;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming">Renaming</h6>
<div class="paragraph">
<p>If the names of the functions that are introduced, conflict with already
existing declarations, they are renamed. For instance, if <code>_f2</code> is already in
use, <code>_f22</code>, <code>_f23</code>, etc, are used instead. If renaming takes place, a
warning is printed to the console.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations">Size considerations</h6>
<div class="paragraph">
<p>Since values are added, this transformation increases the size of the
specification. For an array of 400 elements, with an array of 300 integers
each, the default initial value consists of 1,200 integers. Add such an initial
value can significantly increase the size of the model.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality">Optimality</h6>
<div class="paragraph">
<p>The default values for all types are as primitive as they can be, and can
usually not be simplified any further. It may however be possible that
functions are introduced for the default values of function types, while such
a function already existed in the original specification.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-switches-to-ifs">Convert <code>switch</code> expressions to <code>if</code> expressions</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation converts <code>switch</code> expressions to <code>if</code>
expressions.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-12">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports all CIF specifications.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-9">Preprocessing</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-2">Implementation details</h6>
<div class="paragraph">
<p>All <code>switch</code> expressions are replaced by <code>if</code> expressions. For instance,
consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg int y = ...
alg real x = switch y:
               case 1: 1.0
               case 2: 4.0
               case 3: 9.0
               else    0.0
             end;
alg real z = switch y:
               else 1.0
             end;

automaton a:
  alg string v = switch self:
                   case l1: &quot;first&quot;
                   case l2: &quot;second&quot;
                 end;

  location l1:
    initial;
    edge tau goto l2;

  location l2;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This is transformed to the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg int y = ...
alg real x = if   y = 1: 1.0
             elif y = 2: 4.0
             elif y = 3: 9.0
             else        0.0
             end;
alg real z = 1.0;

automaton a:
  alg string v = if l1: &quot;first&quot;
                 else   &quot;second&quot;
                 end;

  location l1:
    initial;
    edge tau goto l2;

  location l2;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>For algebraic variable <code>z</code>, there is only one case (the <code>else</code>), so no
<code>if</code> expression is generated. This optimization means that the control value
(<code>y</code> in this case) is lost.</p>
</div>
<div class="paragraph">
<p>For algebraic variable <code>v</code> in automaton <code>a</code>, the <code>switch</code> expression uses
an automaton self reference. The cases list the possible locations of the
automaton, and the <code>switch</code> expression maps them to string values. Since for
<code>if</code> expressions the <code>else</code> part is mandatory, the last <code>case</code> of the
<code>switch</code> is converted to the <code>else</code> of the <code>if</code> expression.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-2">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-2">Size considerations</h6>
<div class="paragraph">
<p>The created <code>if</code> expression is usually larger than the original <code>switch</code>
expression, as the control value is duplicated for each <code>if</code> and <code>elif</code>
part, where it is compared to the <code>case</code> values. For <code>switch</code> expressions
with only one <code>case</code> or <code>else</code>, no <code>if</code> expression is generated, and the
expression becomes smaller.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-2">Optimality</h6>
<div class="paragraph">
<p>This transformation transforms <code>switch</code> expressions to <code>if</code> expressions,
leading to <code>if</code> expressions with <code>if</code> and <code>elif</code> guards that may not be
optimal. To simplify the result, apply additional CIF to CIF transformations,
such as <a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-alg-vars">Eliminate algebraic variables</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates algebraic variables and their
equations.</p>
</div>
<div class="paragraph">
<p>See also: <a href="#tools-cif2cif-chapter-equations">Eliminate equations</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-13">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
<li>
<p>Automaton <code>self</code> references are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-10">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-3">Implementation details</h6>
<div class="paragraph">
<p>For each algebraic variable with a single equation in a component or automaton,
all uses of the variable (for instance in guards, invariants, etc) are
replaced by the value of the variable (the right hand side of its equation).
For algebraic variables with equations specified in the locations of an
automaton, an 'if' expression is created. This 'if' expression uses the
locations of the automaton as guards, and the right hand sides of the equations
as values for each of the alternatives. The last alternative is an 'else', and
thus has no guard. If the automaton has only one location, generation of the
'if' expression is suppressed.</p>
</div>
<div class="paragraph">
<p>The algebraic variables and their equations are removed.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg bool b1 = true;
alg bool b2;
equation b2 = false;

automaton aut:
  alg int a;
  location l1:
    equation a = 1;
  location l2:
    equation a = 2;
end

invariant b1 or b2 or p.a &gt; 0;</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton aut:
  location l1;
  location l2;
end

invariant true or false or if p.l1: 1 else 2 end &gt; 0;</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-3">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-3">Size considerations</h6>
<div class="paragraph">
<p>Since algebraic variables are shortcuts for expressions, eliminating them
could result in an increase of the size of the specification. Algebraic
variables may be defined in terms of other algebraic variables. Therefore, in
the worst case, the increase is exponential.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-3">Optimality</h6>
<div class="paragraph">
<p>For an assignment <code>x := 1 + y</code>, where <code>y</code> is an algebraic variable that is
eliminated, and where <code>y</code> has value <code>5</code>, the resulting assignment is
<code>x := 1 + 5</code>. The result is not simplified any further. To further simplify
the result, apply additional CIF to CIF transformations, such as
<a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>.</p>
</div>
<div class="paragraph">
<p>This transformation introduces 'if' expressions for algebraic variables
that have an equation per location, for automata with at least two locations.
The guards of such 'if' expressions refer to the locations of the automata.
To eliminate such location references, apply the
<a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a> CIF to CIF transformation.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-aut-casts">Eliminate automata to string casts</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates casts of automata to strings.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-14">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-11">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-4">Implementation details</h6>
<div class="paragraph">
<p>All casts of automata to strings, using either implicit automaton <code>self</code>
references or explicit automata references, are eliminated. If the referred
automaton has only a single location, the cast is replaced by a string literal
with the name of that location. If the automaton has multiple locations, the
cast is replaced by an <code>if</code> expression, using the locations of the automaton
as guards, and string literals containing the location names as values. For
nameless locations the string literal <code>"*"</code> is used.</p>
</div>
<div class="paragraph">
<p>For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  alg string x = &lt;string&gt;self;

  location:
    initial;
end

automaton b:
  alg string x = &lt;string&gt;self;

  location l1:
    initial;
  location l2:
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This is transformed to the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  alg string x = &quot;*&quot;;

  location:
    initial;
end

automaton b:
  alg string x = if   l1: &quot;l1&quot;
                 elif l2: &quot;l2&quot;
                 else     &quot;l3&quot;
                 end;

  location l1:
    initial;
  location l2;
  location l3;
end</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-4">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-4">Size considerations</h6>
<div class="paragraph">
<p>The created <code>if</code> expressions are usually larger than the original cast
expressions. The increase is linear in terms of the number of locations times
the number of casts.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-4">Optimality</h6>
<div class="paragraph">
<p>This transformation introduces 'if' expressions for automaton to string casts,
for automata with at least two locations. The guards of such 'if' expressions
refer to the locations of the automata. To eliminate such location references,
apply the <a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a> CIF to CIF transformation.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</h5>
<div class="paragraph">
<p>



This CIF to CIF transformation eliminates all component definitions and
instantiations, by actually instantiating the component definitions.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-15">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports all CIF specifications.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-12">Preprocessing</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-5">Implementation details</h6>
<div class="paragraph">
<p>This transformation operates in three phases:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Phase 1: Find the component definitions without any component definitions
and/or component instantiations in them.</p>
</li>
<li>
<p>Phase 2: Instantiate the component definitions found in phase 1, by putting
the body of the definition in the place of the instantiation, in a component
named after the component instantiation. Also removes the component
definitions that were just instantiated, and introduces new local algebraic
variables for the algebraic parameters.</p>
</li>
<li>
<p>Phase 3: Replace uses of component, event, and location parameters by the
actual arguments provided for the instantiation.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group def P(alg int x):
  invariant x &gt; 0;
end

p1: P(1);

alg int y = 2;
p2: P(y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group p1:
  alg int x = 1;
  invariant x &gt; 0;
end

alg int y = 2;
group p2:
  alg int x = y;
  invariant x &gt; 0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Absolute references may be needed to express the results of this
transformation. For instance:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int x = 5;

group def X():
  invariant x = 5;
end

group a:
  x: X();
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int x = 5;

group a:
  group x:
    invariant .x = 5;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note how the invariant in component <code>a.x</code> can not refer to constant <code>x</code>
directly, as <code>x</code> refers to component <code>a.x</code> in that context. Therefore, the
scope absolute reference <code>.x</code> is used instead.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-5">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-5">Size considerations</h6>
<div class="paragraph">
<p>Since component definitions are shortcuts for components, eliminating
them could result in an increase of the size of the specification.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-5">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-consts">Eliminate constants</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates constants.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-16">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-13">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-6">Implementation details</h6>
<div class="paragraph">
<p>All uses of constants (for instance in guards, invariants, etc), are replaced
by their values. The constants themselves are removed. For instance, the
following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int x = 1;
const int z = y;
const int y = x + 1;
invariant x + y + z &gt; 0;</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">invariant 1 + 2 + 2 &gt; 0;</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-6">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-6">Size considerations</h6>
<div class="paragraph">
<p>Since constants are shortcuts for values, eliminating them could result in an
increase of the size of the specification. Constants may be defined in terms of
other constants. Therefore, in the worst case, the increase is exponential.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-6">Optimality</h6>
<div class="paragraph">
<p>For an assignment <code>x := 1 + y</code>, where <code>y</code> is a constant that is eliminated,
and where <code>y</code> has value <code>5</code>, the resulting assignment is <code>x := 1 + 5</code>.
The result is not simplified any further. To further simplify the result, apply
additional CIF to CIF transformations, such as
<a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-enums">Eliminate enumerations</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates enumerations.</p>
</div>
<div class="paragraph">
<p>See also: <a href="#tools-cif2cif-chapter-merge-enums">Merge enumerations</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-17">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-14">Preprocessing</h6>
<div class="paragraph">
<p>To increase the subset of specifications that can be transformed, apply
the following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order) prior to using this transformation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-7">Implementation details</h6>
<div class="paragraph">
<p>Enumerations, which are used as types, are replaced by integer types, with
range <code>[0 .. n-1]</code>, where <code>n</code> is the number of literals of the enumeration.</p>
</div>
<div class="paragraph">
<p>Enumeration literals, which are used as values, are replaced by integer values.
If the used enumeration literal is the <code>n</code><sup>th</sup> literal in the corresponding
enumeration (declaration), then the integer value is <code>n - 1</code>. That is, the
integer value is the 0-based index of the enumeration literal into the literals
of the enumeration declaration.</p>
</div>
<div class="paragraph">
<p>All enumeration declarations are removed.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group x:
  enum EX = A, B;

  const EX x = A;
end

group y:
  enum EY = B, A;

  const EY y = A;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group x:
  const int[0..1] x = 0;
end

group y:
  const int[0..1] y = 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-7">Renaming</h6>
<div class="paragraph">
<p>This transformation itself does not perform any renaming.</p>
</div>
<div class="paragraph">
<p>If enumeration literals are renamed, this may influence value equality for
<em>compatible</em> enumerations (enumerations with the same number of literals,
with the same names, in the same order). Therefore, either apply this
transformation before applying other transformations that perform renaming on
enumeration literals (such as the <a href="#tools-cif2cif-chapter-groups">Eliminate groups</a> CIF to CIF
transformation), or otherwise ensure that renaming does not result in an
invalid specification.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-7">Size considerations</h6>
<div class="paragraph">
<p>Integer types and integer values are not larger than enumerations and their
literals. Therefore, this transformation does not increase the size of the
specification. In fact, it may even be smaller.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-7">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-equations">Eliminate equations</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates equations for algebraic variables
and derivatives of continuous variables. Note that it does not eliminate the
variables themselves.</p>
</div>
<div class="paragraph">
<p>See also: <a href="#tools-cif2cif-chapter-elim-alg-vars">Eliminate algebraic variables</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-18">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
<li>
<p>Automaton <code>self</code> references are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-15">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-8">Implementation details</h6>
<div class="paragraph">
<p>For algebraic variables with a single equation in a component or automaton,
the value of the variable (the right hand side of the equation) is moved to
the declaration of the algebraic variable. For algebraic variables with
equations specified in the locations of an automaton, an 'if' expression is
created. This 'if' expression uses the locations of the automaton as guards,
and the right hand sides of the equations as values for each of the
alternatives. The last alternative is an 'else', and thus has no guard. The
single right hand side, or the 'if' expression, is put directly in the
declaration of the algebraic variable. If the automaton has only one location,
generation of the 'if' expression is suppressed.</p>
</div>
<div class="paragraph">
<p>The derivatives of continuous variables are transformed in a similar way. The
derivative ends up in the declaration of the continuous variable.</p>
</div>
<div class="paragraph">
<p>All equations are removed from components (including automata) and locations.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg bool b1 = true;
cont x;
equation x' = 1.0;

automaton p:
  alg int a;
  location l1:
    equation a = 1;
  location l2:
    equation a = 2;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg bool b1 = true;
cont x der 1.0;

automaton p:
  alg int a = if l1: 1
              else   2
              end;
  location l1;
  location l2;
end</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-8">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-8">Size considerations</h6>
<div class="paragraph">
<p>The right hand sides of the equations are simply moved. This does not influence
the size of the specification. For equations specified in the locations of an
automaton, an 'if' expression is created. This increases the size of the
specification. The increase however, is linear in the number of equations.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-8">Optimality</h6>
<div class="paragraph">
<p>This transformation introduces 'if' expressions for algebraic variables and
derivatives of continuous variables that have an equation per location of an
automaton, for automata with at least two locations. The guards of such 'if'
expressions refer to the locations of the automata. To eliminate such location
references, apply the <a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a> CIF to CIF
transformation.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-groups">Eliminate groups</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation flattens the component structure of a
specification, by eliminating all groups. That is, after this transformation,
all automata will be at the top level, directly in the specification.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-19">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Furthermore, this transformation does not guarantee the correct result for
specification with enumerations. See also the
<a href="#tools-cif2cif-elim-groups-renaming">Renaming</a> section below.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-16">Preprocessing</h6>
<div class="paragraph">
<p>To increase the subset of specifications that can be transformed, apply
the following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order) prior to using this transformation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-enums">Eliminate enumerations</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
automatically applied as preprocessing (in the given order), to increase the
subset of CIF specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-svg-file-into-decls">Push SVG file declarations into other CIF/SVG declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-print-file-into-decls">Push print file declarations into print declarations</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-9">Implementation details</h6>
<div class="paragraph">
<p>All declarations, invariants, initialization predicates, marker predicates, and
equations from the groups are lifted to the top level of the specification.
The automata are lifted to the top level of the specification as well.
Subsequently, the groups are removed.</p>
</div>
<div class="paragraph">
<p>In order to be able to track the origin of automata and declarations, they are
named after their absolute names. For a group <code>x</code>, with a group
<code>y</code>, with a constant <code>z</code>, the absolute name of the constant is <code>x.y.z</code>.
The constant is lifted to the top level of the specification, and named
<code>x_y_z</code>.</p>
</div>
<div class="paragraph">
<p>For instance, this specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group a:
  const int x = 5;
  invariant x &gt; 4;
end

group p:
  automaton q:
    event e;
    location;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int a_x = 5;
invariant a_x &gt; 4;

automaton p_q:
  event e;
  location;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2cif-elim-groups-renaming">Renaming</h6>
<div class="paragraph">
<p>Since declarations of the specification are merged with the declarations of the
groups and with automata, renaming may be necessary to ensure uniquely
named declarations. For instance, for a group <code>x</code>, with a group
<code>y</code>, with a constant <code>z</code>, the absolute name of the constant is <code>x.y.z</code>.
The constant is lifted to the top level of the specification, and renamed to
<code>x_y_z</code>. However, if the specification already contains a declaration of
another constant, automaton, etc named <code>x_y_z</code>, then the lifted constant is
renamed to <code>x_y_z2</code> instead. If that name is also already in use, it is
renamed to <code>x_y_z3</code>, etc.</p>
</div>
<div class="paragraph">
<p>Whenever renaming takes place, a warning will be printed to the console.</p>
</div>
<div class="sect6">
<h7 id="tools-renaming-of-enumeration-literals">Renaming of enumeration literals</h7>
<div class="paragraph">
<p>Enumeration literals that are part of lifted enumeration declarations, are not
renamed to their absolute names. To understand why this is necessary, consider:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group x:
  enum E = A, B;
end

automaton y:
  enum E = A, B;
  location:
    initial;
end

invariant x.A = y.A;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, group <code>x</code> and automaton <code>y</code> both have an enumeration <code>E</code> with
enumeration literals <code>A</code> and <code>B</code>. The invariant of the specification
compares the literals of the two different enumerations. This is allowed, since
the enumerations are <em>compatible</em> (they have the same enumeration literals,
with the same names, in the same order). If we were to rename the enumeration
literals to absolute names as we lift them to the top level of the
specification, the result would be:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum x_E = x_A, x_B;

automaton y:
  enum E = A, B;
  location:
    initial;
end

invariant x_A = y.A;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Which would no longer be a valid specification, as enumerations <code>x_E</code> and
<code>y.E</code> are no longer compatible (they have enumeration literals with different
names). Since we leave the names of the enumeration literals as they are, the
result of the transformation is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum x_E = A, B;

automaton y:
  enum E = A, B;
  location:
    initial;
end

invariant A = y.A;</code></pre>
</div>
</div>
<div class="paragraph">
<p>which is still a correct specification, and has the same meaning as the
original specification.</p>
</div>
<div class="paragraph">
<p>Now assume the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group x:
  enum E = A, B;
end

group y:
  enum E = A, B;
end

invariant x.A = y.A;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, the two enumerations are both in groups. If we lift them, we have
two enumerations, with the same literals, which is not a valid CIF
specification. As such, renaming can not be avoided, and the result of the
transformation will be:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum x_E = A, B;
enum y_E = A2, B2;

invariant A = A2;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This result is an invalid CIF specification. Whenever an enumeration literal
is renamed, a warning is printed to the console, informing of the possibility
that the resulting specification is invalid. As such, it is highly recommended
to avoid such situations, and eliminate the enumerations prior to the
elimination of the groups.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-9">Size considerations</h6>
<div class="paragraph">
<p>The groups are removed. Other objects are lifted, which essentially means
they are moved. The size of the specification does not increase.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-9">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-if-updates">Eliminate <code>if</code> updates</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates 'if' updates on edges.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-20">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Multi-assignments and partial variable assignments are not supported. That
is, the left hand sides of the assignments on edges (the addressables) must
be single variables without projections.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-17">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing, to increase the subset of CIF specifications that can be
transformed, is currently performed by this CIF to CIF transformation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2cif-elim-if-updates-impl">Implementation details</h6>
<div class="paragraph">
<p>This transformation ensures that each variable that is assigned, gets
a single explicit assignment. Simply put, the 'if' update structure is
replicated by an 'if' expression. For instance, the following edge updates:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">if g:
  if g2:
    x := 5
  else
    y := 6
  end
end,
z := 7</code></pre>
</div>
</div>
<div class="paragraph">
<p>are transformed to the following edge updates:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">x := if g:
       if g2:
         5
       else
         x
       end
     else
       x
     end,
y := if g:
       if g2:
         y
       else
         6
       end
     else
       y
     end,
z := 7</code></pre>
</div>
</div>
<div class="paragraph">
<p>Observe how variables <code>x</code> and <code>y</code> are assigned inside two <code>if</code> updates.
These <code>if</code> updates are replicated by two <code>if</code> expressions.</p>
</div>
<div class="paragraph">
<p>Since for <code>if</code> expressions the <code>else</code> part is not optional, dummy
<code>x := x</code> assignments are sometimes performed in cases where the original
specification would not have assigned variable <code>x</code> at all. That is, variables
may be assigned their old values, resulting in superfluous assignments.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-9">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-10">Size considerations</h6>
<div class="paragraph">
<p>The 'if' structure may be replicated for multiple variables, which may result
in an increase of the specification size. The increase amount is influenced
by the size of the guard expressions, and the number of levels of nesting 'if'
updates.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-10">Optimality</h6>
<div class="paragraph">
<p>The superfluous assignments (see the <a href="#tools-cif2cif-elim-if-updates-impl">Implementation details</a>
section above), are obviously not optimal. The language however requires them.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</h5>
<div class="paragraph">
<p>

This CIF to CIF transformation eliminates the use of locations in expressions
(such as guards, invariants, and equations), by introducing location pointer
variables for automata, and using them instead.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-21">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-18">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-10">Implementation details</h6>
<div class="paragraph">
<p>For each automaton for which a location is used (referred to) in an expression
(such as a guard, invariant, or equation), a location pointer variable is
introduced, with as value the current location of the automaton. The values
for such a new variables are part of a newly created enumeration that has a
value (an enumeration literal) for each location of the automaton.</p>
</div>
<div class="paragraph">
<p>To initialize the new location pointer variable, the variable itself is
initialized to <code>any</code> (meaning any value in its domain), and initialization
predicates are added to all locations that could potentially be initial
locations. For automata with exactly one initial state, the initial value
of the location pointer variable is set directly, instead of using
initialization predicates.</p>
</div>
<div class="paragraph">
<p>All edges in the automaton that change the current location of that automaton,
get an additional assignment to update the location pointer variable.</p>
</div>
<div class="paragraph">
<p>All uses of the locations of the automaton in expressions (that is, all
location reference expressions) are changed to equality binary expressions for
the location pointer variable and the enumeration literal corresponding to the
location.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton x:
  event e;
  alg bool a = l1;

  location l1:
    initial;
    edge e goto l2;

  location l2:
    edge e;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton x:
  event e;
  alg bool a = LP_x = LOC_l1;
  disc LOCS_x LP_x = LOC_l1;
  enum LOCS_x = LOC_l1, LOC_l2;

  location l1:
    initial;
    edge e do LP_x := LOC_l2 goto l2;

  location l2:
    edge e;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Location pointer variable <code>LP_x</code> is added. It is initialized directly in the
declaration, since there is exactly one initial location in this automaton.
Enumeration <code>LOCS_x</code> is created to represent the possible values of the
location pointer variable. Enumerations literals <code>LOC_l1</code> and <code>LOC_l2</code>
represent locations <code>l1</code> and <code>l2</code>, respectively.</p>
</div>
<div class="paragraph">
<p>The edge from location <code>l1</code> to location <code>l2</code> is extended with an update
to the location pointer. The self loop in location <code>l2</code> is not extended, as
the location does not change.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-10">Renaming</h6>
<div class="paragraph">
<p>If the names of the location pointer variables that are introduced, conflict
with already existing declarations, they are renamed. For instance, if <code>LP_x</code>
is already in use, <code>LP_x2</code>, <code>LP_x3</code>, etc, are used instead. Similarly,
renaming is performed for enumerations, and enumeration literals that conflict
with already existing declarations. If renaming takes place, a warning is
printed to the console.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-11">Size considerations</h6>
<div class="paragraph">
<p>The number of added location pointer variables is linear in the number of
automata. The number of added initialization predicates for the location
pointer variables is linear in the number of possible initial locations. The
number of added enumerations is linear in the number of automata. The number of
added enumeration literals is linear in the number of locations. The number of
added updates is linear in the number of edges. The number of added equality
binary expressions is linear in the number of location references.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-11">Optimality</h6>
<div class="paragraph">
<p>This transformation introduces enumerations for the possible values of the
location pointer variables. To eliminate the enumerations, apply the
<a href="#tools-cif2cif-chapter-elim-enums">Eliminate enumerations</a> CIF to CIF transformation.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-monitors">Eliminate monitors</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates monitor events.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-22">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-19">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-11">Implementation details</h6>
<div class="paragraph">
<p>For each monitor event in an automaton, additional self loops are added as
needed, to make sure the automaton doesn&#8217;t disable the monitor event.
Furthermore, all monitors are removed from all automata.</p>
</div>
<div class="paragraph">
<p>The self loop edges created by this transformation have no communication
(no <code>!...</code>, no <code>?...</code>), no urgency (no <code>now</code>), and no updates
(no <code>do ...</code>).</p>
</div>
<div class="paragraph">
<p>For instance, for the following locations and edges, for monitor event <code>e</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">location l1:
  edge e goto l2;
  edge f when x = 2 goto l3;

location l2:
  edge e when x = 1 goto l3;
  edge e when x = 2 goto l1;

location l3;</code></pre>
</div>
</div>
<div class="paragraph">
<p>the result after this transformation is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">location l1:
  edge e goto l2;
  edge f when x = 2 goto l3;

location l2:
  edge e when x = 1 goto l3;
  edge e when x = 2 goto l1;
  edge e when not(x = 1 or x = 2);

location l3:
  edge e;</code></pre>
</div>
</div>
<div class="paragraph">
<p>In location <code>l1</code>, monitor event <code>e</code> is always enabled (no guard implies
a <code>true</code> guard), and thus no additional self loop is needed. In location
<code>l2</code>, event <code>e</code> is only enabled if <code>x</code> has either value <code>1</code> or value
<code>2</code>. A self loop is added for all other cases, to ensure the event is always
enabled. In location <code>l3</code>, the event is never enabled (no edges, which
essentially means guard <code>false</code>). A self loop is added, to ensure the event
is always enabled.</p>
</div>
<div class="paragraph">
<p>Event <code>f</code> is not a monitor event, and is thus not affected by this
transformation.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-11">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-12">Size considerations</h6>
<div class="paragraph">
<p>Since self loop edges may be added by this transformation, the size of the
specification may increase.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-12">Optimality</h6>
<div class="paragraph">
<p>For an edge with guard <code>x = 1</code>, a self loop with guard <code>not (x = 1)</code> may
be generated by this transformation. The guard could be simplified to
<code>x != 1</code>. However, this transformation does not simplify guards. To further
simplify the result, apply additional CIF to CIF transformations, such as
<a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation replaces implicit automaton <code>self</code> references
by explicit automaton references.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-23">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-20">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-12">Implementation details</h6>
<div class="paragraph">
<p>All implicit automaton <code>self</code> references are replaced by explicit automaton
references. For instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  alg string x = &lt;string&gt;self;

  location:
    initial;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This is transformed to the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton a:
  alg string x = &lt;string&gt;a;

  location:
    initial;
end</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-12">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-13">Size considerations</h6>
<div class="paragraph">
<p>Since both references are single expression nodes, this transformation does not
increase the size of the specification.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-13">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-state-event-excl-invs">Eliminate state/event exclusion invariants</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates state/event exclusion invariants. It
replaces them with automata with self loops.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-24">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-21">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-13">Implementation details</h6>
<div class="paragraph">
<p>All state/event exclusion invariants are removed from the specification.</p>
</div>
<div class="paragraph">
<p>They are replaced with automata with self loops. Per component, the state/event
exclusion invariants of the component (the top level scope of the
specification, groups, automata), as well as those of its locations (only for
automata), are partitioned per
<a href="#lang-tut-extensions-synthesis-invkind">supervisory kind</a>. Per such
partition, an automaton is created.</p>
</div>
<div class="paragraph">
<p>The automaton is put along side the component (for groups and automata), as
sibling. For invariants in the top level scope of the specification, the new
automaton is put in the top level scope of the specification. The new automaton
gets the same name as the component that contained the invariants as prefix,
with some postfixes. For invariants at the top level scope of the
specification, an empty prefix is used. The first postfix is indicates the
supervisory kind of the invariants of the partition: <code>Plant</code>,
<code>Requirement</code>, <code>Supervisor</code>, or empty for regular/kindless invariants.
The second postfix is <code>StateEvtExcls</code>. So, for an automaton <code>Abc</code> with
some plant invariants, an automaton <code>AbcPlantStateEvtExcls</code> is created. The
name may conflict with existing automata or other declarations, in which case
it is <a href="#tools-cif2cif-elim-state-event-excl-invs-renaming">renamed</a>.</p>
</div>
<div class="paragraph">
<p>The automata that are created inherit the supervisory kind of the state/event
exclusion invariants in the partition for which the automaton is created. The
automata have a single nameless location, that is both initial and marked.</p>
</div>
<div class="paragraph">
<p>For each state/event exclusion invariant in the partition, and self loop edge
is created per event. The condition predicates of the invariants are used as
guard, possible after some manipulation.</p>
</div>
<div class="paragraph">
<p>For state/event exclusion invariants of the locations of automata, the
condition predicate is made conditional on the location. However, this is only
done for automata with at least two locations, as conditioning on an always
active location is of little use. For a location <code>loc</code>, and a state/event
exclusion invariant <code>invariant evt needs x = 1</code>, predicate <code>x = 1</code> is
changed to <code>loc =&gt; x = 1</code>.</p>
</div>
<div class="paragraph">
<p>For state/event exclusion invariants that indicate when an event is to be
disallowed/disabled, the condition predicate is inverted. The inversion is
performed after the condition predicate is made condition on the location, if
applicable. For instance, for a state/event exclusion invariant
<code>invariant x != 1 disables evt</code> in a location <code>loc</code>, the condition
predicate <code>x != 1</code> is first made conditional on the location. This results in
<code>loc =&gt; x != 1</code>. The condition predicate is then inverted to
<code>not(loc =&gt; x != 1)</code>, which is then used as guard.</p>
</div>
<div class="paragraph">
<p>The alphabets of the automata are left implicit.</p>
</div>
<div class="paragraph">
<p>Consider the following example CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton aut:
  controllable e1, e2, e3;
  disc int[0..10] x;

  requirement invariant e1    needs    x &lt; 10;
  requirement invariant x = 0 disables {e1, e2};

  location:
    initial;

    requirement invariant x = 0 disables e3;

    edge e1 do x := x + 1;
    edge e2 do x := x - 1;
    edge e3 do x := 0;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>It is transformed to the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton aut:
  controllable e1, e2, e3;
  disc int[0..10] x;

  location:
    initial;

    edge e1 do x := x + 1;
    edge e2 do x := x - 1;
    edge e3 do x := 0;
end

requirement automaton autRequirementStateEvtExcls:
  location:
    initial;
    marked;

    edge aut.e1 when aut.x &lt; 10, not(aut.x = 0);
    edge aut.e2 when not(aut.x = 0);
    edge aut.e3 when not(aut.x = 0);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2cif-elim-state-event-excl-invs-renaming">Renaming</h6>
<div class="paragraph">
<p>New automata are created. If the desired name for an automaton is already in
use for some other automaton or declaration, the new automaton is given a
different name. For instance, if an automaton is to be named
<code>ControllerStateEvtExcls</code> and that name is already in use, it will be named
<code>ControllerStateEvtExcls2</code>. If that name is also already in use, it will be
named <code>ControllerStateEvtExcls3</code>, etc.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-14">Size considerations</h6>
<div class="paragraph">
<p>The constant amount of additional objects are created (e.g. an automaton, a
location, a <code>true</code> initialization predicate, etc). At most one automaton is
created per state/event exclusion invariant. As such, the size increase is
linear in the number of state/event exclusion invariants.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-14">Optimality</h6>
<div class="paragraph">
<p>For state/event exclusion invariants that are defined in locations of automata
with more than one location, this transformation makes their predicates
conditional on those locations. To eliminate such location references, apply
the <a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a> CIF to CIF transformation.</p>
</div>
<div class="paragraph">
<p>This transformation generate boolean implication and inversion predicates.
These are not simplified. To simply them, apply the
the <a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a> CIF to CIF transformation.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-tau-event">Eliminate <code>tau</code> event</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates the <code>tau</code> event.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-25">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports all CIF specifications.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-22">Preprocessing</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-14">Implementation details</h6>
<div class="paragraph">
<p>This transformation introduces new events for the <code>tau</code> event, one per
automaton where a <code>tau</code> event is used. The new events are named <code>tau_</code> (if
that name is not already in use).</p>
</div>
<div class="paragraph">
<p>If the alphabet is explicit specified, it is extended as well.</p>
</div>
<div class="paragraph">
<p>The new events are neither controllable nor uncontrollable, and don&#8217;t have a
data type.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  event e;

  location l1:
    initial;
    edge when true goto l2;

  location l2:
    edge e, tau goto l1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  event e;
  event tau_;

  location l1:
    initial;
    edge tau_ when true goto l2;

  location l2:
    edge e, tau_ goto l1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-13">Renaming</h6>
<div class="paragraph">
<p>The newly introduced <code>tau_</code> events are renamed to <code>tau_2</code>, <code>tau_3</code>, etc,
if they conflict with other declarations with the same name, that already
exist in the automata. If renaming is needed, a warning is printed to the
console.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-15">Size considerations</h6>
<div class="paragraph">
<p>New events may be added, the alphabet may be extended, and an explicit event
may be added to edges. Therefore, the size of the specification may increase.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-15">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-tuple-field-projs">Eliminate tuple field projections</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates tuple field projections by replacing
them with tuple index projections.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-26">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports all CIF specifications.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-23">Preprocessing</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-15">Implementation details</h6>
<div class="paragraph">
<p>Obtaining the value of a field of a tuple is called tuple projection.
There are two ways to project a tuple. That is, there are two ways to indicate
from which field to obtain the value. The first way is to use the name of the
field, the second way is to use the 0-based index of the field into the fields
of the tuple&#8217;s type. For instance:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const tuple(int a; real b) t = (1, 2.0);
const int x = t[a];
const int y = t[0];</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, both constants <code>x</code> and <code>y</code> have value <code>1</code>, obtained from field
<code>a</code> of the tuple value of constant <code>t</code>.</p>
</div>
<div class="paragraph">
<p>This transformation replaces tuple field projections (using the name of the
field), by tuple index projections (using the 0-based index of the field). For
instance, for the example above, the result of this transformation is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const tuple(int a; real b) t = (1, 2.0);
const int x = t[0];
const int y = t[0];</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-14">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-16">Size considerations</h6>
<div class="paragraph">
<p>Since both field references and integer values are single expression nodes,
this transformation does not increase the size of the specification.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-16">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-elim-type-decls">Eliminate type declarations</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation eliminates type declarations.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-27">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-24">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-16">Implementation details</h6>
<div class="paragraph">
<p>All uses of type declarations (in types of variables, types of other type
declarations, etc), are replaced by the types of those type declarations. The
type declarations themselves are removed. For instance, the following
specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">type t = int;
type u = v;
type v = tuple(t a, b);

const t x = 1;
const u y = (2, 3);
const v z = (4, 5);</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int x = 1;
const tuple(int a, b) y = (2, 3);
const tuple(int a, b) z = (4, 5);</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-15">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-17">Size considerations</h6>
<div class="paragraph">
<p>Since type declarations are shortcuts for types, eliminating them could result
in an increase of the size of the specification. Type declarations may be
defined in terms of other type declarations. Therefore, in the worst case, the
increase is exponential.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-17">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-lift-events">Lift events</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation lifts event declarations to the top level of the
specification.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-28">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
<li>
<p>Groups are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-25">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-groups">Eliminate groups</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-17">Implementation details</h6>
<div class="paragraph">
<p>All events declared in the automata, are lifted to the top level of the
specification.</p>
</div>
<div class="paragraph">
<p>In order to be able to track the origin of the events, they are named after
their absolute names. For a group <code>x</code>, with a group <code>y</code>, with an
event <code>e</code>, the absolute name of the event is <code>x.y.e</code>. The event is lifted
to the top level of the specification, and named <code>x_y_e</code>.</p>
</div>
<div class="paragraph">
<p>For instance, this specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;

automaton a:
  event e;
  location;
end

group b:
  automaton c:
    event e;
    location;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;
event a_e;
event b_c_e;

automaton a:
  location;
end

group b:
  automaton c:
    location;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-16">Renaming</h6>
<div class="paragraph">
<p>Since events of the automata are merged with the declarations of the
specification, renaming may be necessary to ensure uniquely named declarations.
For instance, for a group <code>x</code>, with a group <code>y</code>, with an event
<code>e</code>, the absolute name of the event is <code>x.y.e</code>. The event is lifted to the
top level of the specification, and renamed to <code>x_y_e</code>. However, if the
specification already contains a declaration of a constant, automaton, other
event, etc, named <code>x_y_e</code>, then the lifted event is renamed to <code>x_y_e2</code>
instead. If that name is also already in use, it is renamed to <code>x_y_e3</code>, etc.</p>
</div>
<div class="paragraph">
<p>Whenever renaming takes place, a warning is be printed to the console.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-18">Size considerations</h6>
<div class="paragraph">
<p>Events are lifted, which essentially means they are moved. The size of the
specification does not increase.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-18">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-linearize-merge">Linearize (merge)</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation performs process-algebraic linearization,
thereby eliminating parallel composition and event synchronization.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-29">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Specifications without automata are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-26">Preprocessing</h6>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-pos-info">Remove position information</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-groups">Eliminate groups</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-switches-to-ifs">Convert <code>switch</code> expressions to <code>if</code> expressions</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-equations">Eliminate equations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-aut-casts">Eliminate automata to string casts</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-18">Implementation details</h6>
<div class="paragraph">
<p>A location pointer variable is introduced for each original automaton, and the
use of locations in expressions is eliminated. This is mostly similar to what
the <a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a> CIF to CIF transformation does,
except that for instance location pointer variables are added for all automata.
For nameless locations, name <code>X</code> is used.</p>
</div>
<div class="paragraph">
<p>One new automaton, named <code>M</code>, is created. If all original automata have
the same supervisory kind, the new automaton gets this kind as well. Otherwise,
it gets no supervisory kind. The alphabet of this new automaton is the union of
alphabets of the original automata, including the events that are used to
send or receive in any of the automata.</p>
</div>
<div class="paragraph">
<p>All declarations from the original automata are moved to the new automaton.
They are renamed based on their absolute names. That is, for an automaton <code>a</code>
with a constant <code>c</code>, the absolute name of the constant is <code>a.c</code> and the
moved constant will be named <code>a_c</code>. Enumeration literals are not given
absolute names, and keep their original names
<a href="#tools-cif2cif-linearize-merge-renaming">if possible</a>.</p>
</div>
<div class="paragraph">
<p>One location, named <code>L</code>, is added. This location is both initial and marked.
All initialization and marker predicates from all the original automata
(including ones from locations) are merged together. They are put in the new
automaton, and restrict the initialization and marker predicates of location
<code>L</code>.</p>
</div>
<div class="paragraph">
<p>The invariants of the original automata (including ones from locations) are
merged together in a similar way as the initialization and marker predicates.
The supervisory kinds of the invariants are made explicit, to ensure that the
original supervisory kinds inherited from automata are preserved.</p>
</div>
<div class="paragraph">
<p>For the <code>tau</code> event, a self loop is created per original <code>tau</code> edge. For
all other events, the edges are merged, resulting in a single self loop for
each non-<code>tau</code> event. By creating single edges per non-<code>tau</code> event,
<a href="#tools-cif2cif-linearize-merge-nondet">non-deterministic choice</a> may be
eliminated, ensuring that the model size of the resulting specification is
near-linear <a href="#tools-cif2cif-linearize-merge-size">compared to</a> the model
size of the original specification.</p>
</div>
<div class="paragraph">
<p>Monitors are taken into account when merging the guards of the edges, resulting
in simpler guard predicates. Communication is eliminated altogether, and events
no longer have data types after linearization. For edges with receives, the
'received value' is replaced (in the updates) by the 'send value'.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;

plant automaton p:
  disc int x = 1;

  location l1:
    initial;
    edge e when x = 1 do x := 2 goto l2;

  location l2:
    edge e when x = 2 do x := 1 goto l1;
end

plant automaton q:
  location l1:
    initial;
    edge tau goto l2;

  location l2:
    edge e goto l1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;
enum E = l1, l2;

plant automaton M:
  alphabet e;

  disc int p_x = 1;
  disc E p = l1;
  disc E q = l1;

  initial p = l1 and true or p = l2 and false,
          q = l1 and true or q = l2 and false;

  marked p = l1 and false or p = l2 and false,
         q = l1 and false or q = l2 and false;

  location L:
    initial;
    marked;

    edge e when (p = l1 and p_x = 1 or p = l2 and p_x = 2) and
                (q = l1 and false or q = l2 and true)
           do if   p = l1 and p_x = 1: p_x := 2, p := l2
              elif p = l2 and p_x = 2: p_x := 1, p := l1
              end,
              q := l1;
    edge tau when q = l1 do q := l2;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>We see that an enumeration <code>E</code> is added, with literals for all the locations
of the original automata. We also see that plant automata <code>p</code> and <code>q</code> are
linearized to plant automaton <code>M</code>. Two location pointers, <code>p</code> and <code>q</code>,
named after the original automata, are added. The variables are moved. The
initialization and marker predicates are linearized. We have one location
<code>L</code>, which is initial and marked. For event <code>e</code>, the guards and updates are
linearized into a single self loop. Location pointer updates are incorporated
as well. For event <code>tau</code>, the single original edge is simply included as a
self loop.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-cif2cif-linearize-merge-nondet">Non-determinism</h7>
<div class="paragraph">
<p>If the original automata have non-determinism, this choice is eliminated as
part of this transformation. Non-determinism can be present due to multiple
outgoing edges for a single location, for the same event (excluding the
<code>tau</code> event), with overlapping guards. Another cause of non-determinism is
multiple senders or receivers that are enabled at the same time, for the same
channel. In the resulting specification, the first possible transition is
always taken, similar to how the simulator chooses, assuming the simulator is
configured to always automatically choose the
<a href="#tools-cifsim-input-chapter-automatic">first transition</a>. Linearization eliminates some of the
non-determinism in this case, essentially choosing a specific trace through
the state space. To ensure the same choices are made, events and automata are
sorted in the same order for linearization and simulation.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  event e;
  disc int x = 0;

  location:
    edge e when x &lt; 5 do x := x + 1;
    edge e when x &gt; 3 do x := x - 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum E = X;

automaton M:
  alphabet p_e;

  event p_e;

  disc int p_x = 0;
  disc E p in any;

  initial p = X and false;
  marked p = X and false;

  location L:
    initial;
    marked;

    edge p_e when p = X and (p_x &lt; 5 or p_x &gt; 3)
             do if   p = X and p_x &lt; 5: p_x := p_x + 1
                elif p = X and p_x &gt; 3: p_x := p_x - 1
                end;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, we see that the edge for event <code>e</code> with guard <code>x &lt; 5</code> and update
<code>x := x + 1</code> is chosen to take precedence over the edge with guard <code>x &gt; 3</code>
with update <code>x := x - 1</code>. This choice is based on the original specification,
where the edge with guard <code>x &lt; 5</code> is listed before the edge with guard
<code>x &gt; 3</code>.</p>
</div>
<div class="paragraph">
<p>Related to this, are dummy updates, which are added to ensure that the correct
updates are taken. For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  event e;
  disc int x = 0;
  location:
    edge e when x &gt;= 3;
    edge e when x &lt; 3 do x := x + 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum E = X;

automaton M:
  alphabet p_e;
  event p_e;

  disc int p_x = 0;
  disc E p in any;

  initial p = X and false;
  marked p = X and false;

  location L:
    initial;
    marked;

    edge p_e when p = X and (p_x &gt;= 3 or p_x &lt; 3)
             do if   p = X and p_x &gt;= 3: p := X
                elif p = X and p_x &lt; 3:  p_x := p_x + 1
                end;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, the edge with guard <code>x &gt;= 3</code> takes precedence over the edge with guard
<code>x &lt; 3</code>. To ensure that no updates are performed when the edge with guard
<code>x &gt;= 3</code> is chosen, a dummy update is added (reassigning the location pointer
variable the value it already has). If this update were to be omitted, the
update of the other edge would instead be executed, which is undesirable.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-order">Order</h7>
<div class="paragraph">
<p>If code generation is performed on a linearized version of the specification,
it may be a good idea to ensure the same order is used and the same choices
are made, both in the generated code and in simulation. Assuming simulation
was performed by always automatically choosing the
<a href="#tools-cifsim-input-chapter-automatic">first transition</a>, this should correspond to the output of
linearization. The linearized edges are in the same order as the transitions
are calculated by the simulator. This is ensured by sorting events and automata
in the same order for linearization and simulation. Also, as the
<a href="#tools-cif2cif-linearize-merge-nondet">Non-determinism</a> section above explains, if
non-determinism is eliminated, it is done in a way that preserves that order.</p>
</div>
<div class="paragraph">
<p>Code should thus be generated in the order of the linearized edges resulting
from linearization. Each time the code for an edge is executed, the code should
start from the top, to ensure always the first enabled transition is chosen.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-urgency">Urgency</h7>
<div class="paragraph">
<p>If the original automata contain urgent locations and/or urgent edges, a
discrete boolean variable <code>u</code> is added to the linearized automaton.
Initially, it&#8217;s value is <code>true</code>, and it must always remain so
(<code>plant invariant u;</code>). We add self loops (event <code>tau</code>), with as guard the
urgent locations and guards of urgent edges, such that the edge can be taken if
the system is in an urgent location, or an urgent edge is enabled (guard wise).
However, these edges update <code>u</code> to <code>false</code>, which violates the target
location invariant, meaning we can never take these edges in a transition.
Since the edge is also urgent, it means that if the edge is enabled guard wise,
time may not progress, thus ensuring the urgency behavior of the original
urgent locations and edges.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  event e;

  location l1:
    initial;
    urgent;
    edge e when true goto l2;

  location l2:
    edge e when 1 = 1 now goto l1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum E = l1, l2;

automaton M:
  alphabet p_e;
  event p_e;

  disc E p = l1;
  disc bool u = true;

  initial p = l1 and true or p = l2 and false;
  marked p = l1 and false or p = l2 and false;

  plant invariant u;

  location L:
    initial;
    marked;

    edge p_e when p = l1 and true or p = l2 and 1 = 1
             do if   p = l1 and true:  p := l2
                elif p = l2 and 1 = 1: p := l1
                end;

    edge when p = l1 or p = l2 and 1 = 1 now do u := false;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>So, if <code>p</code> (the location pointer variable for original automaton <code>p</code>) is
equal to <code>l1</code> (the enumeration literal for original location <code>l1</code>), then
the guard of the new urgent edge is enabled, and time may not progress.
Similarly, if <code>p</code> is equal to <code>l2</code> and the guard <code>1 = 1</code> of the original
urgent edge is enabled, the guard of the new urgent edge is enabled, and time
may not progress. This correctly reflects the urgency conditions of the
original specification.</p>
</div>
<div class="paragraph">
<p>To ensure that no additional event transitions are possible, the new urgent
edge can never be taken, as it would update <code>u</code> to <code>false</code>, which violates
<code>plant invariant u</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-received-values-and-tuple-field-projections">Received values and tuple field projections</h7>
<div class="paragraph">
<p>The following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event tuple(int a, b) e;

automaton s:
  location:
    edge e!(1, 2);
end

automaton r:
  disc int x;
  location:
    edge e? do x := ?[a];
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;
enum E = X;

automaton M:
  alphabet e;

  disc E s in any;
  disc int r_x;
  disc E r in any;

  initial s = X and false,
          r = X and false;
  marked s = X and false,
         r = X and false;

  location L:
    initial;
    marked;

    edge e when s = X and true and (r = X and true) do r_x := (1, 2)[0];
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Observe how event <code>e</code> no longer has a data type, and the communication (send
and receive) have been eliminated. In the assignment <code>x := ?[a]</code>, received
value <code>?</code> has been replaced by send value <code>(1, 2)</code>. Since tuple values
don&#8217;t have field names, the right hand side <code>(1, 2)[a]</code> has been replaced
by <code>(1, 2)[0]</code>, using the <a href="#tools-cif2cif-chapter-elim-tuple-field-projs">Eliminate tuple field projections</a> CIF to
CIF transformation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-elimination-of-communication">Elimination of communication</h7>
<div class="paragraph">
<p>Since channel communication is completely eliminated, and channels become
regular events after this transformation, it is no longer possible to
<a href="#tools-chapter-mergecif">merge</a> additional senders/receivers with the linearized
specification. If you wish to merge another specification with additional
communication partners, first perform the merging, and then the linearization.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2cif-linearize-merge-renaming">Renaming</h6>
<div class="paragraph">
<p>Since declarations are moved/merged, and new names are introduced, renaming may
be necessary to ensure unique names within a single scope. In order to reduce
the amount of renaming for the enumeration literals introduced for the
locations of the original automata, all enumerations are merged together into a
single enumeration in the specification, with name <code>E</code>.</p>
</div>
<div class="paragraph">
<p>If renaming is performed, a warning is printed to the console.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2cif-linearize-merge-size">Size considerations</h6>
<div class="paragraph">
<p>Declarations are moved, so they don&#8217;t increase the size of the specification.</p>
</div>
<div class="paragraph">
<p>The addition of location variables increases the size of the specification, but
this is linear in the number of automata and the number of locations.</p>
</div>
<div class="paragraph">
<p>Assignment are added for the updates to the location pointers. The increase is
linear in the number of edges. The additional dummy updates that are added are
linear in the number of edges as well.</p>
</div>
<div class="paragraph">
<p>A single self loop is added for each non-<code>tau</code> event. This does increase the
size of the specification. The guards are simply combined using boolean
operators, and the increase is therefore linear in the number of guards.
Similarly, updates are combined using 'if' updates, and the increase is also
linear.</p>
</div>
<div class="paragraph">
<p>For original edges with multiple events however, the guards and updates are
duplicated for each event. The duplication is linear in the number of events
on those edges.</p>
</div>
<div class="paragraph">
<p>Since <code>tau</code> edges are essentially just moved, they don&#8217;t increase the size
of the specification. That is, their size is linear in the number of original
<code>tau</code> edges.</p>
</div>
<div class="paragraph">
<p>The initialization and marker predicates, as well as the invariants are moved.
They remain linear in size related to the number of original predicates. The
predicates for the locations are also made conditional on the values of the
location pointer variable. This size increase is linear in the number of
original locations. Predicates are combined using boolean operators, leading
to a size increase that is linear in the number of original predicates.</p>
</div>
<div class="paragraph">
<p>If a single received value is used multiple times in the updates of a single
edge, the send value is duplicated for each of those uses. As such, the size
increase is linear in the number of uses of the received value.</p>
</div>
<div class="paragraph">
<p>If multiple senders and multiple receivers (individual send/receive edges, not
whole automata) are present for a certain event, then the received value is
expanded to all the potential send values, with the conditions under which they
are used as send value (using an 'if' expression). As such, the received
value are expanded into expressions that are linear in the number of senders.
If we have only a single sender or a single receiver, this is linear. If we
have multiple of both, this becomes quadratic (number of senders times number
of receivers).</p>
</div>
<div class="paragraph">
<p>For urgency, an additional variable and invariant are added. This is a constant
increase in size. A self loop is added as well. This self loop duplicates
the guards of urgent edges. It also includes predicates for the urgent
locations. The size of this edge is linear in the number of urgent locations,
and the guards of the urgent edges.</p>
</div>
<div class="paragraph">
<p>From the above, it should be clear that while the specification may increase
in size, it is mostly linear. Practically, the size of the linearized
specification is usually linear compared to the size of the input
specification.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-19">Optimality</h6>
<div class="paragraph">
<p>As should be clear from the examples above, this transformation does not try
to generate optimized expressions. In fact, often almost all generated
expressions can easily be simplified. To further simplify the result, apply
additional CIF to CIF transformations, such as
<a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>.</p>
</div>
<div class="paragraph">
<p>Currently, no effort is made by this transformation to reduce for instance the
number of dummy assignments, or the number of replacements of tuple field
projections by tuple index projections.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-linearize-product">Linearize (product)</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation performs process-algebraic linearization,
thereby eliminating parallel composition and event synchronization.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-30">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Specifications without automata are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-27">Preprocessing</h6>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-pos-info">Remove position information</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-groups">Eliminate groups</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-switches-to-ifs">Convert <code>switch</code> expressions to <code>if</code> expressions</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-equations">Eliminate equations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-aut-casts">Eliminate automata to string casts</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-19">Implementation details</h6>
<div class="paragraph">
<p>A location pointer variable is introduced for each original automaton, and the
use of locations in expressions is eliminated. This is mostly similar to what
the <a href="#tools-cif2cif-chapter-elim-locs-in-exprs">Eliminate the use of locations in expressions</a> CIF to CIF transformation does,
except that for instance location pointer variables are added for all automata.
For nameless locations, name <code>X</code> is used.</p>
</div>
<div class="paragraph">
<p>One new automaton, named <code>M</code>, is created. If all original automata have
the same supervisory kind, the new automaton gets this kind as well. Otherwise,
it gets no supervisory kind. The alphabet of this new automaton is the union of
alphabets of the original automata, including the events that are used to
send or receive in any of the automata.</p>
</div>
<div class="paragraph">
<p>All declarations from the original automata are moved to the new automaton.
They are renamed based on their absolute names. That is, for an automaton <code>a</code>
with a constant <code>c</code>, the absolute name of the constant is <code>a.c</code> and the
moved constant will be named <code>a_c</code>. Enumeration literals are not given
absolute names, and keep their original names
<a href="#tools-cif2cif-linearize-product-renaming">if possible</a>.</p>
</div>
<div class="paragraph">
<p>One location, named <code>L</code>, is added. This location is both initial and marked.
All initialization and marker predicates from all the original automata
(including ones from locations) are merged together. They are put in the new
automaton, and restrict the initialization and marker predicates of location
<code>L</code>.</p>
</div>
<div class="paragraph">
<p>The invariants of the original automata (including ones from locations) are
merged together in a similar way as the initialization and marker predicates.
The supervisory kinds of the invariants are made explicit, to ensure that the
original supervisory kinds inherited from automata are preserved.</p>
</div>
<div class="paragraph">
<p>For the <code>tau</code> event, a self loop is created per original <code>tau</code> edge. For
all other events, the
<a href="http://en.wikipedia.org/wiki/Cartesian_product">Cartesian product</a>
of all
edges is created, combining the edges in all possible combinations. This
results in self loops for all non-<code>tau</code> events, where the combination of all
self loops maintains all non-deterministic choices of the original
specification. Worst case, the model size of the resulting specification
compared to the model size of the original specification
<a href="#tools-cif2cif-linearize-product-size">could blow up</a> exponentially.</p>
</div>
<div class="paragraph">
<p>Monitors are taken into account when merging the guards of the edges, resulting
in simpler guard predicates. Communication is eliminated altogether, and events
no longer have data types after linearization. For edges with receives, the
'received value' is replaced (in the updates) by the 'send value'.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;

plant automaton p:
  disc int x = 1;

  location l1:
    initial;
    edge e when x = 1 do x := 2 goto l2;

  location l2:
    edge e when x = 2 do x := 1 goto l1;
end

plant automaton q:
  location l1:
    initial;
    edge tau goto l2;

  location l2:
    edge e goto l1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;
enum E = l1, l2;

plant automaton M:
  alphabet e;

  disc int p_x = 1;
  disc E p = l1;
  disc E q = l1;

  initial p = l1 and true or p = l2 and false,
          q = l1 and true or q = l2 and false;

  marked p = l1 and false or p = l2 and false,
         q = l1 and false or q = l2 and false;

  location L:
    initial;
    marked;

    edge e when p = l1 and p_x = 1 and q = l2
           do p_x := 2, p := l2, q := l1;
    edge e when p = l2 and p_x = 2 and q = l2
           do p_x := 1, p := l1, q := l1;
    edge tau when q = l1 do q := l2;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>We see that an enumeration <code>E</code> is added, with literals for all the locations
of the original automata. We also see that plant automata <code>p</code> and <code>q</code> are
linearized to plant automaton <code>M</code>. Two location pointers, <code>p</code> and <code>q</code>,
named after the original automata, are added. The variables are moved. The
initialization and marker predicates are linearized. We have one location
<code>L</code>, which is initial and marked. For event <code>e</code>, two self loop edges are
added, as automaton <code>p</code> has two edges for <code>e</code> and automaton <code>q</code> has one
edge for <code>e</code> and <code>2 * 1</code> is <code>2</code>. For the self loop edges, the guards and
updates are combined. Location pointer updates are incorporated as well. For
event <code>tau</code>, the single original edge is simply included as a self loop.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect6">
<h7 id="tools-non-determinism">Non-determinism</h7>
<div class="paragraph">
<p>If the original automata have non-determinism, this choice is maintained as
part of this transformation. Non-determinism can be present due to multiple
outgoing edges for a single location, for the same event (excluding the
<code>tau</code> event), with overlapping guards. Another cause of non-determinism is
multiple senders or receivers that are enabled at the same time, for the same
channel. In the resulting specification, all possible combinations are
included as self loops. For a specification with 4 sender automata with two
send edges each (8 send edges in total) and 5 receiver automata with two
receive edges each (10 receive edges in total) for event <code>e</code>, and also 6
automata with two edges each that synchronize over that event (12
synchronization edges in total), the number of possible combinations for
communication with synchronization is <code>8 * 10 * 12</code>, which is <code>960</code>
possible combinations.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;

automaton p:
  disc int x = 0;

  location:
    edge e when x &lt; 5 do x := x + 1;
    edge e when x &gt; 3 do x := x - 1;
end

automaton q:
  disc int y = 0;

  location:
    edge e when y &lt; 5 do y := y + 1;
    edge e when y &gt; 3 do y := y - 1;
    edge e when y = 4 do y := y - 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;

enum E = X;

automaton M:
  alphabet e;

  disc int p_x = 0;
  disc E p in any;
  disc int q_y = 0;
  disc E q in any;

  initial p = X and false,
          q = X and false;

  marked p = X and false,
         q = X and false;

  location L:
    initial;
    marked;

    edge e when p = X and p_x &lt; 5 and q = X and q_y &lt; 5
           do p_x := p_x + 1, q_y := q_y + 1;
    edge e when p = X and p_x &lt; 5 and q = X and q_y &gt; 3
           do p_x := p_x + 1, q_y := q_y - 1;
    edge e when p = X and p_x &lt; 5 and q = X and q_y = 4
           do p_x := p_x + 1, q_y := q_y - 1;
    edge e when p = X and p_x &gt; 3 and q = X and q_y &lt; 5
           do p_x := p_x - 1, q_y := q_y + 1;
    edge e when p = X and p_x &gt; 3 and q = X and q_y &gt; 3
           do p_x := p_x - 1, q_y := q_y - 1;
    edge e when p = X and p_x &gt; 3 and q = X and q_y = 4
           do p_x := p_x - 1, q_y := q_y - 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, we see that for event <code>e</code>, automaton <code>p</code> has two edges and automaton
<code>q</code> has three edges. The linearization result has six edges.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-order-2">Order</h7>
<div class="paragraph">
<p>If code generation is performed on a linearized version of the specification,
it may be a good idea to ensure the same order is used and the same choices
are made, both in the generated code and in simulation. Assuming simulation
was performed by always automatically choosing the
<a href="#tools-cifsim-input-chapter-automatic">first transition</a>, this should correspond to the output of
linearization. The linearized edges are in the same order as the transitions
are calculated by the simulator. This is ensured by sorting events and automata
in the same order for linearization and simulation.</p>
</div>
<div class="paragraph">
<p>Code should thus be generated in the order of the linearized edges resulting
from linearization. Each time the code for an edge is executed, the code should
start from the top, to ensure always the first enabled transition is chosen.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-urgency-2">Urgency</h7>
<div class="paragraph">
<p>If the original automata contain urgent locations and/or urgent edges, a
discrete boolean variable <code>u</code> is added to the linearized automaton.
Initially, it&#8217;s value is <code>true</code>, and it must always remain so
(<code>plant invariant u;</code>). We add self loops (event <code>tau</code>), with as guard the
urgent locations and guards of urgent edges, such that the edge can be taken if
the system is in an urgent location, or an urgent edge is enabled (guard wise).
However, these edges update <code>u</code> to <code>false</code>, which violates the target
location invariant, meaning we can never take these edges in a transition.
Since the edge is also urgent, it means that if the edge is enabled guard wise,
time may not progress, thus ensuring the urgency behavior of the original
urgent locations and edges.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">automaton p:
  event e;

  location l1:
    initial;
    urgent;
    edge e when true goto l2;

  location l2:
    edge e when 1 = 1 now goto l1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum E = l1, l2;

automaton M:
  alphabet p_e;
  event p_e;

  disc E p = l1;
  disc bool u = true;

  initial p = l1 and true or p = l2 and false;
  marked p = l1 and false or p = l2 and false;

  plant invariant u;

  location L:
    initial;
    marked;

    edge p_e when p = l1 and true do p := l2;
    edge p_e when p = l2 and 1 = 1 do p := l1;

    edge when p = l1 or p = l2 and 1 = 1 now do u := false;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>So, if <code>p</code> (the location pointer variable for original automaton <code>p</code>) is
equal to <code>l1</code> (the enumeration literal for original location <code>l1</code>), then
the guard of the new urgent edge is enabled, and time may not progress.
Similarly, if <code>p</code> is equal to <code>l2</code> and the guard <code>1 = 1</code> of the original
urgent edge is enabled, the guard of the new urgent edge is enabled, and time
may not progress. This correctly reflects the urgency conditions of the
original specification.</p>
</div>
<div class="paragraph">
<p>To ensure that no additional event transitions are possible, the new urgent
edge can never be taken, as it would update <code>u</code> to <code>false</code>, which violates
<code>plant invariant u</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect6">
<h7 id="tools-received-values-and-tuple-field-projections-2">Received values and tuple field projections</h7>
<div class="paragraph">
<p>The following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event tuple(int a, b) e;

automaton s:
  location:
    edge e!(1, 2);
end

automaton r:
  disc int x;
  location:
    edge e? do x := ?[a];
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">event e;
enum E = X;

automaton M:
  alphabet e;

  disc E s in any;
  disc int r_x;
  disc E r in any;

  initial s = X and false,
          r = X and false;
  marked s = X and false,
         r = X and false;

  location L:
    initial;
    marked;

    edge e when s = X and r = X do r_x := (1, 2)[0];
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Observe how event <code>e</code> no longer has a data type, and the communication (send
and receive) have been eliminated. In the assignment <code>x := ?[a]</code>, received
value <code>?</code> has been replaced by send value <code>(1, 2)</code>. Since tuple values
don&#8217;t have field names, the right hand side <code>(1, 2)[a]</code> has been replaced
by <code>(1, 2)[0]</code>, using the <a href="#tools-cif2cif-chapter-elim-tuple-field-projs">Eliminate tuple field projections</a> CIF to
CIF transformation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect6">
<h7 id="tools-elimination-of-communication-2">Elimination of communication</h7>
<div class="paragraph">
<p>Since channel communication is completely eliminated, and channels become
regular events after this transformation, it is no longer possible to
<a href="#tools-chapter-mergecif">merge</a> additional senders/receivers with the linearized
specification. If you wish to merge another specification with additional
communication partners, first perform the merging, and then the linearization.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2cif-linearize-product-renaming">Renaming</h6>
<div class="paragraph">
<p>Since declarations are moved/merged, and new names are introduced, renaming may
be necessary to ensure unique names within a single scope. In order to reduce
the amount of renaming for the enumeration literals introduced for the
locations of the original automata, all enumerations are merged together into a
single enumeration in the specification, with name <code>E</code>.</p>
</div>
<div class="paragraph">
<p>If renaming is performed, a warning is printed to the console.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-cif2cif-linearize-product-size">Size considerations</h6>
<div class="paragraph">
<p>Declarations are moved, so they don&#8217;t increase the size of the specification.</p>
</div>
<div class="paragraph">
<p>The addition of location variables increases the size of the specification, but
this is linear in the number of automata and the number of locations.</p>
</div>
<div class="paragraph">
<p>Assignment are added for the updates to the location pointers. The increase is
linear in the number of edges.</p>
</div>
<div class="paragraph">
<p>Since <code>tau</code> edges are essentially just moved, they don&#8217;t increase the size
of the specification. That is, their size is linear in the number of original
<code>tau</code> edges.</p>
</div>
<div class="paragraph">
<p>Multiple self loops may be added for non-<code>tau</code> event, and thus may result in
an exponential blow up of the number of edges.</p>
</div>
<div class="paragraph">
<p>The initialization and marker predicates, as well as the invariants are moved.
They remain linear in size related to the number of original predicates. The
predicates for the locations are also made conditional on the values of the
location pointer variable. This size increase is linear in the number of
original locations. Predicates are combined using boolean operators, leading
to a size increase that is linear in the number of original predicates.</p>
</div>
<div class="paragraph">
<p>If a single received value is used multiple times in the updates of a single
edge, the send value is duplicated for each of those uses. As such, the size
increase is linear in the number of uses of the received value.</p>
</div>
<div class="paragraph">
<p>For urgency, an additional variable and invariant are added. This is a constant
increase in size. A self loop is added as well. This self loop duplicates
the guards of urgent edges. It also includes predicates for the urgent
locations. The size of this edge is linear in the number of urgent locations,
and the guards of the urgent edges.</p>
</div>
<div class="paragraph">
<p>From the above, it should be clear that due to the exponential blow up of the
edges, linearization results can be significantly larger than the original
specifications.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-20">Optimality</h6>
<div class="paragraph">
<p>As should be clear from the examples above, this transformation does not try
to generate optimized expressions. In fact, often almost all generated
expressions can easily be simplified. To further simplify the result, apply
additional CIF to CIF transformations, such as
<a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>.</p>
</div>
<div class="paragraph">
<p>Currently, no effort is made by this transformation to reduce for instance the
number of replacements of tuple field projections by tuple index projections.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-merge-enums">Merge enumerations</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation merges all enumerations together to a single
enumeration.</p>
</div>
<div class="paragraph">
<p>See also: <a href="#tools-cif2cif-chapter-elim-enums">Eliminate enumerations</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-31">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-28">Preprocessing</h6>
<div class="paragraph">
<p>To increase the subset of specifications that can be transformed, apply
the following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order) prior to using this transformation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
automatically applied as preprocessing (in the given order), to increase the
subset of CIF specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-add-default-init-values">Add default initial values</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-20">Implementation details</h6>
<div class="paragraph">
<p>If there are any enumerations in the specification, a single new enumeration
is created. This enumeration is named <code>E</code>. All literals of the original
enumerations are added to this new enumeration. Obviously, duplicate literals
are only included once. The literals are added in sorted order.</p>
</div>
<div class="paragraph">
<p>The original enumerations are removed.</p>
</div>
<div class="paragraph">
<p>For instance, the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum A = B, C;

automaton p:
  enum A = C, B;
  enum X = D, C;
  disc A a = C;
  disc X x = D;
  location:
    initial;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum E = B, C, D;

automaton p:
  disc E a = C;
  disc E x = D;
  location:
    initial;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-17">Renaming</h6>
<div class="paragraph">
<p>The newly created enumeration <code>E</code> and its literals, may conflict with
declarations already present in the specification. If this is the case, they
are renamed. For instance, if <code>E</code> is already in use, <code>E2</code>, or <code>E3</code>, etc,
is used instead. If renaming is performed, a warning is printed to the console.</p>
</div>
<div class="paragraph">
<p>In general, renaming of enumeration literals may influence value equality for
<em>compatible</em> enumerations (enumerations with the same number of literals, with
the same names, in the same order). However, since the resulting specification
has at most one enumeration, there are no multiple enumerations, and thus
compatibility is not an issue (since the enumeration is always compatible with
itself).</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-default-initial-values">Default initial values</h6>
<div class="paragraph">
<p>Consider the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group g1:
  enum e1 = A, B;
end

group g2:
  enum e2 = B, A;
end

automaton p:
  disc g1.e1 v1;
  disc g2.e2 v2;

  location:
    initial;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>If we apply merging of enumerations directly, we get the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">enum E = A, B;

group g1:
end

group g2:
end

automaton p:
  disc E v1;
  disc E v2;

  location:
    initial;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the original specification, <code>v1</code> had value <code>A</code>, and <code>v2</code> had value
<code>B</code>. After the merging of the enumerations, both <code>v1</code> and <code>v2</code> have
implicit initial value <code>A</code>. Thus, they had different initial values
beforehand, and the same initial values afterward. To solve this problem, the
<a href="#tools-cif2cif-chapter-add-default-init-values">Add default initial values</a> CIF to CIF transformation is
automatically applied as preprocessing before the actual elimination of the
enumerations, to ensure that the explicit initial values are properly
transformed.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-19">Size considerations</h6>
<div class="paragraph">
<p>Since enumerations are merged, duplicate literals become a single new literal.
Therefore, this transformation may decrease the size of the specification.</p>
</div>
<div class="paragraph">
<p>The added default initial values may significantly increase the size of the
specification.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-21">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-print-file-into-decls">Push print file declarations into print declarations</h5>
<div class="paragraph">
<p>



This CIF to CIF transformation pushes
<a href="#tools-cifsim-output-print-chapter-ref-printfile">print file declarations</a>
inwards into the
<a href="#tools-cifsim-output-print-chapter-ref-printdecl">print declarations</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-32">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-29">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-21">Implementation details</h6>
<div class="paragraph">
<p>All <a href="#tools-cifsim-output-print-chapter-ref-printfile">print file declarations</a>
specified in the top level scope of the specification, in groups, and in
automata, are removed. The
<a href="#tools-cifsim-output-print-chapter-ref-printdecl">print declarations</a> to which
they applied, each get a local print file declaration instead. If they already
had a local print file declaration, the print declaration is not changed.
Print declarations to which no print file declaration applies, get the default
target <code>":stdout"</code>.</p>
</div>
<div class="paragraph">
<p>For instance, this specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">printfile &quot;out1.txt&quot;;

print 5;
print 6 file &quot;out2.txt&quot;;

group g:
  printfile &quot;out3.txt&quot;;

  print 7;
  print 8;
  print 9 file &quot;out4.txt&quot;;

  group h:
    printfile &quot;out5.txt&quot;;
  end

  group i:
    print 10;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">print 5 file &quot;out1.txt&quot;;
print 6 file &quot;out2.txt&quot;;

group g:
  print 7 file &quot;out3.txt&quot;;
  print 8 file &quot;out3.txt&quot;;
  print 9 file &quot;out4.txt&quot;;

  group h:
  end

  group i:
    print 10 file &quot;out3.txt&quot;;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The print declaration that prints <code>5</code> is declared in the top level scope of
the specification, and does not have a local print file declaration. As such,
the print file declaration from the top level scope (<code>out1.txt</code>) is pushed
inwards into the print declaration. The print declaration that prints <code>6</code> is
declared in the same scope, but already has a local print file declaration
(<code>out2.txt</code>), and is thus not changed.</p>
</div>
<div class="paragraph">
<p>Group <code>g</code> also has an print file declaration (<code>out3.txt</code>). This is pushed
inwards to the print declarations that print <code>7</code> and <code>8</code>, as they are
declared in the same scope, and don&#8217;t have local print file declarations. The
print declaration that prints <code>9</code> is not changed, as it already has a local
print file declaration (<code>out4.txt</code>).</p>
</div>
<div class="paragraph">
<p>The print file declaration (<code>out5.txt</code>) from group <code>g.h</code> does not apply to
any print declarations, and thus gets lost.</p>
</div>
<div class="paragraph">
<p>Group <code>g.i</code> does not have an print file declaration, so the print declaration
that prints <code>10</code>, which is declared in that group, gets the print file
declaration from group <code>g</code> (the parent scope of group <code>g.i</code>) instead.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-18">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-20">Size considerations</h6>
<div class="paragraph">
<p>As print file declarations may apply to multiple print declarations, this
transformation may increase the number of (local) print file declarations in
the specification. The number of print file declarations after the
transformation is at most the number of print declarations, and as such the
increase is at most linear in the number of print declarations as well.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-22">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-svg-file-into-decls">Push SVG file declarations into other CIF/SVG declarations</h5>
<div class="paragraph">
<p>



This CIF to CIF transformation pushes
<a href="#tools-cifsim-output-svgviz-chapter-svgfile">SVG file declarations</a> inwards into
the other <a href="#tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG declarations</a>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-33">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-30">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-22">Implementation details</h6>
<div class="paragraph">
<p>All <a href="#tools-cifsim-output-svgviz-chapter-svgfile">SVG file declarations</a>
specified in the top level scope of the specification, in groups, and in
automata, are removed. The other
<a href="#tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG declarations</a> to which they
apply, each get a local SVG file declaration instead. If they already had a
local SVG file declaration, the CIF/SVG declaration is not changed.</p>
</div>
<div class="paragraph">
<p>For instance, this specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgfile &quot;file1.svg&quot;;

svgout id &quot;a&quot; attr &quot;b&quot; value 5;

svgout id &quot;c&quot; attr &quot;d&quot; value 6 file &quot;file2.svg&quot;;

group g:
  svgfile &quot;file3.svg&quot;;

  svgout id &quot;e&quot; attr &quot;f&quot; value 7;

  svgout id &quot;g&quot; attr &quot;h&quot; value 8;

  svgout id &quot;i&quot; attr &quot;j&quot; value 9 file &quot;file4.svg&quot;;

  group h:
    svgfile &quot;file5.svg&quot;;
  end

  group i:
    svgout id &quot;k&quot; attr &quot;l&quot; value 10;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>is transformed to the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">svgout id &quot;a&quot; attr &quot;b&quot; value 5 file &quot;file1.svg&quot;;

svgout id &quot;c&quot; attr &quot;d&quot; value 6 file &quot;file2.svg&quot;;

group g:
  svgout id &quot;e&quot; attr &quot;f&quot; value 7 file &quot;file3.svg&quot;;

  svgout id &quot;g&quot; attr &quot;h&quot; value 8 file &quot;file3.svg&quot;;

  svgout id &quot;i&quot; attr &quot;j&quot; value 9 file &quot;file4.svg&quot;;

  group h:
  end

  group i:
    svgout id &quot;k&quot; attr &quot;l&quot; value 10 file &quot;file3.svg&quot;;
  end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The mapping for the SVG element with id <code>a</code> is declared in the top level
scope of the specification, and does not have a local SVG file declaration.
As such, the SVG file declaration from the top level scope (<code>file1.svg</code>) is
pushed inwards into the mapping. The mapping for the SVG element with id <code>b</code>
is declared in the same scope, but already has a local SVG file declaration
(<code>file2.svg</code>), and is thus not changed.</p>
</div>
<div class="paragraph">
<p>Group <code>g</code> also has an SVG file declaration (<code>file3.svg</code>). This is pushed
inwards to the mappings for ids <code>e</code> and <code>g</code>, as they are declared in the
same scope, and don&#8217;t have local SVG file declarations. The mapping for SVG
element id <code>i</code> is not changed, as it already has a local SVG file declaration
(<code>file4.svg</code>).</p>
</div>
<div class="paragraph">
<p>The SVG file declaration (<code>file5.svg</code>) from group <code>g.h</code> does not apply to
any mappings, and thus gets lost.</p>
</div>
<div class="paragraph">
<p>Group <code>g.i</code> does not have an SVG file declaration, so the mapping for SVG
element id <code>k</code>, which is declared in that group, gets the SVG file
declaration from group <code>g</code> (the parent scope of group <code>g.i</code>) instead.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-19">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-21">Size considerations</h6>
<div class="paragraph">
<p>As SVG file declarations may apply to multiple other CIF/SVG declarations, this
transformation may increase the number of SVG file declarations in the
specification. The number of SVG file declarations after the transformation is
at most the number of 'other' CIF/SVG declarations, and as such the increase is
at most linear in the number of 'other' CIF/SVG declarations as well.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-23">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-remove-cif-svg-decls">Remove CIF/SVG declarations</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation removes
<a href="#tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG</a> declarations from the
specification. This may reduce the size of the specification. It may also lead
to the specification being supported by more tools, as the CIF/SVG declarations
may use features of the CIF language that certain tools don&#8217;t support.</p>
</div>
<div class="paragraph">
<p>This CIF to CIF transformation removes only CIF/SVG declarations. The
<a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a> CIF to CIF transformation removes them
as well, but additionally also removes the other I/O declarations.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-34">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports all CIF specifications.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-31">Preprocessing</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-23">Implementation details</h6>
<div class="paragraph">
<p>All CIF/SVG declarations are removed from the specification.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-20">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-22">Size considerations</h6>
<div class="paragraph">
<p>Since information is removed from the specification, the specification can only
become smaller as a result of this transformation.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-24">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation removes I/O declarations from the specification.
This may reduce the size of the specification. It may also lead to the
specification being supported by more tools, as the I/O declarations may use
features of the CIF language that certain tools don&#8217;t support.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-35">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports all CIF specifications.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-32">Preprocessing</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-24">Implementation details</h6>
<div class="paragraph">
<p>All I/O declarations are removed from the specification. I/O declarations
include:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cifsim-output-print-chapter-ref-printdecl">Print declaration</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-print-chapter-ref-printfile">Print file declaration</a></p>
</li>
<li>
<p><a href="#tools-cifsim-output-svgviz-chapter-cifsvg">CIF/SVG declarations</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>This transformation removes all I/O declarations. To only remove certain kinds
of I/O declarations, see the following CIF to CIF transformations:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-print-decls">Remove print declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-remove-cif-svg-decls">Remove CIF/SVG declarations</a></p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-21">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-23">Size considerations</h6>
<div class="paragraph">
<p>Since information is removed from the specification, the specification can only
become smaller as a result of this transformation.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-25">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-remove-print-decls">Remove print declarations</h5>
<div class="paragraph">
<p>



This CIF to CIF transformation removes
<a href="#tools-cifsim-output-print-chapter-ref-printdecl">print</a> and
<a href="#tools-cifsim-output-print-chapter-ref-printfile">print file</a> declarations
from the specification. This may reduce the size of the specification. It may
also lead to the specification being supported by more tools, as the print and
print file declarations may use features of the CIF language that certain tools
don&#8217;t support.</p>
</div>
<div class="paragraph">
<p>This CIF to CIF transformation removes only print and print file declarations.
The <a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a> CIF to CIF transformation removes
them as well, but additionally also removes the other I/O declarations.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-36">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports all CIF specifications.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-33">Preprocessing</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-25">Implementation details</h6>
<div class="paragraph">
<p>All print and print file declarations are removed from the specification.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-22">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-24">Size considerations</h6>
<div class="paragraph">
<p>Since information is removed from the specification, the specification can only
become smaller as a result of this transformation.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-26">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-remove-pos-info">Remove position information</h5>
<div class="paragraph">
<p>

This CIF to CIF transformation removes position information from the internal
representation of the specification.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-37">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports all CIF specifications.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-34">Preprocessing</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-26">Implementation details</h6>
<div class="paragraph">
<p>When performing operations on CIF specifications, the specification is first
read from disk, and stored into memory. The internal representation
stores position information with all objects (such as declarations,
types, expression nodes, automata, locations, etc). The position information of
an object includes information about the location of the object in the original
textual source. This information is used during validation of the specification
(i.e. type checking), when reporting errors, to indicate where in the original
specification the error is found.</p>
</div>
<div class="paragraph">
<p>
After type checking, this information is no longer used. To make sure that
subsequent operations, such as CIF to CIF transformations, don&#8217;t have to
process the position information, this transformation can be applied to rid
the specification of all position information. Applying this transformation
may increase the performance of subsequent transformations.</p>
</div>
<div class="paragraph">
<p>Applying this transformation has no effect on the actual contents of the
specification, and does not change the effect of subsequent transformation.
That is, it may affect the performance of subsequent transformations, but has
no effect on the result of the subsequent transformations, as they are written
to disk.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-23">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-25">Size considerations</h6>
<div class="paragraph">
<p>Since position information is removed from the specification, this
transformation has an effect on the size of the specification as it is
represented in memory. However, this transformation has no effect on the size
of the specification, as far as actual content (which affects the meaning of
the specification) is concerned.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-27">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-remove-reqs">Remove requirements</h5>
<div class="paragraph">
<p>


This CIF to CIF transformation removes
<a href="#lang-tut-extensions-synthesis-plant-req-sup">requirements</a> from the
specification. By removing all requirements from a CIF specification with both
<a href="#lang-tut-extensions-synthesis-plant-req-sup">plants</a> and requirements, only the
plants remain. The resulting plants can then be <a href="#tools-chapter-mergecif">merged</a>
with a <a href="#lang-tut-extensions-synthesis-plant-req-sup">supervisor</a> or other
controller.</p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-38">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
<li>
<p>Using (referring to) requirement automata or declarations from requirement
automata from outside requirement automata.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Specifications where requirement automata or declarations declared in
requirement automata are used (referred to) from outside requirement automata
are not supported. By removing the requirement automata, those uses
(references) become invalid, as the automata or declarations that are
referenced no longer exist. For instance, consider:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg int x = switch req: case l1: 1 else 2 end;

requirement automaton req:
  location l1:
    initial;
    edge tau goto l2;

  location l2;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>When requirement automaton <code>req</code> is removed, the <code>switch</code> expression can no
longer refer to that automaton, or to its locations. Removing the requirements
from this CIF specification is not supported.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-35">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-27">Implementation details</h6>
<div class="paragraph">
<p>Both <a href="#lang-tut-extensions-synthesis-autkind">requirement automata</a> and
<a href="#lang-tut-extensions-synthesis-invkind">requirement invariants</a> are
removed. Requirement invariants are removed from the top level scope of the
specification, all groups and automata, and all locations of automata. For
instance, consider the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">controllable add;

plant automaton buffer:
  disc int x;

  plant invariant 0 &lt;= x and x &lt;= 5;
  requirement invariant x &lt; 5;

  location:
    initial;
    plant invariant x &gt;= 0;
    edge add do x := x + 1;
end

requirement automaton not2:
  location:
    initial;
    requirement invariant buffer.x &gt;= 0;
    edge add when buffer.x != 2;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The result after this transformation is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">controllable add;

plant automaton buffer:
  disc int x;

  plant invariant 0 &lt;= x and x &lt;= 5;

  location:
    initial;
    plant invariant x &gt;= 0;
    edge add do x := x + 1;
end</code></pre>
</div>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-24">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-26">Size considerations</h6>
<div class="paragraph">
<p>Since information is removed from the specification, the specification can only
become smaller as a result of this transformation.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-28">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-simplify-others">Simplify others</h5>
<div class="paragraph">
<p>

This CIF to CIF transformation simplifies CIF specifications, by applying
the following non-value related simplifications:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Duplicate monitor events of automata are removed.</p>
</li>
<li>
<p>Duplicate events in the alphabet are removed.</p>
</li>
<li>
<p>Duplicate events on edges are removed, with the exception of duplicate sends
for the same event, as they may send different values.</p>
</li>
<li>
<p>Self-loops with a target location are simplified by removing the target
location.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-39">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-36">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-28">Implementation details</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-25">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-27">Size considerations</h6>
<div class="paragraph">
<p>This transformation tries to simplify the specification, possibly reducing its
size.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-29">Optimality</h6>
<div class="paragraph">
<p>n/a</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-simplify-values">Simplify values</h5>
<div class="paragraph">
<p>

This CIF to CIF transformation simplifies CIF specifications, by applying
the following value-related simplifications:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Evaluation of constant (sub-)expressions. For instance, <code>1 + 1</code> is
simplified to <code>2</code>.</p>
</li>
<li>
<p>Simplification of short-circuit boolean binary operators. For instance,
<code>true and x</code> is simplified to <code>x</code>.</p>
</li>
<li>
<p>Simplification of boolean unary operators. For instance, <code>not not x</code> is
simplified to <code>x</code>.</p>
</li>
<li>
<p>Removal of default values. For instance, <code>true</code> state invariants are
removed.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-40">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-37">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-29">Implementation details</h6>
<div class="paragraph">
<p>The following is a complete list of the short-circuit boolean binary operators
that are simplified (with <code>x</code> an arbitrary boolean expression):</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Original</th>
<th class="tableblock halign-left valign-top">Simplified</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true  and x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x     and true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false and x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x     and false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true  or  x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x     or  true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false or  x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x     or  false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true  =&gt;  x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x     =&gt;  true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false =&gt;  x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x     =&gt;  false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true  &lt;=&gt; x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x     &lt;=&gt; true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false &lt;=&gt; x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x     &lt;=&gt; false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not x</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The following is a complete list of the boolean unary operators that are
simplified (with <code>x</code> and <code>y</code> two arbitrary expressions):</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Original</th>
<th class="tableblock halign-left valign-top">Simplified</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not not x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not(x &lt; y)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x &gt;= y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not(x &lt;= y)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x &gt;  y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not(x = y)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x != y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not(x != y)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x =  y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not(x &gt; y)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x &#8656; y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not(x &gt;= y)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x &lt;  y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not(x =&gt; y)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x and not y</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Default values are removed in the following places:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Initialization predicates of components (including automata) and locations.</p>
</li>
<li>
<p>Marker predicates of components (including automata) and locations.</p>
</li>
<li>
<p>Invariants of components (including automata) and locations.</p>
</li>
<li>
<p>Guards of edges.</p>
</li>
<li>
<p>Guards of 'if' and 'elif' updates on edges.</p>
</li>
<li>
<p>Guards of 'if' and 'elif' expressions.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Predicates that are trivially equal to the default value are removed. If a
trivial value is found that is equal to the negation of the default value, the
entire feature gets the non-default value. For instance, for guards on edges,
<code>true</code>, <code>1 = 1</code>, etc, are removed as they are all trivially <code>true</code>
(the default for guards). If however, <code>false</code>, <code>1 = 2</code>, <code>1 != 1</code>, or any
other trivially <code>false</code> guards is found, all guards on that edge are removed,
and a single <code>false</code> guard is added.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-26">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-28">Size considerations</h6>
<div class="paragraph">
<p>This transformation tries to simplify the specification, possibly reducing its
size.</p>
</div>
<div class="paragraph">
<p>All uses of constants lead to constant (sub-)expressions, and they are
evaluated. This leads to constants being inlined. For constants with large
literal values, this may significantly increase the size of the specification,
especially if the constant is used more than once. For information on how to
prevent this, see the <a href="#tools-cif2cif-chapter-simplify-values-no-refs">Simplify values (no references)</a> CIF to CIF
transformation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-30">Optimality</h6>
<div class="paragraph">
<p>Not all simplifications that could potentially be performed are implemented in
this transformation.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-simplify-values-optimized">Simplify values (optimized)</h5>
<div class="paragraph">
<p>

This CIF to CIF transformation simplifies CIF specifications, by applying
same value-related simplifications as the <a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>
CIF to CIF transformation, but with optimizations for literal expressions.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-41">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-38">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-30">Implementation details</h6>
<div class="paragraph">
<p>One of the simplifications that the CIF to CIF transformation to
<a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a> performs, is the evaluation of constant
(sub-)expressions. For large literal expressions, such as arrays with thousands
or even millions of elements, this is expensive, without having any effect.
For instance, consider list/array literal <code>[1, 2, 3]</code>. Evaluating the
list/array and the integer elements, and then reconstructing the literal
list/array expression and literal integer expressions, has no effect. The
result is the same list/array literal as the original.</p>
</div>
<div class="paragraph">
<p>This transformation detects literal expressions, and doesn&#8217;t further simplify
them, thus greatly improving performance for large literal expressions.
Literal expressions are detected using a static analysis. Due to using static
analysis, some literals may not be simplified, while they would have been
simplified if this literal detection optimization was not used. For instance,
a set literal <code>{1, 2, 1}</code> is simplified to <code>{1, 2}</code> without optimizations,
and is not simplified with optimizations. In this case, static analysis does
not account for duplicate elements of the set.</p>
</div>
<div class="paragraph">
<p>The following differences can be observed for literal optimization, with
respect to not using literal optimization:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Negations of integer literals are not normalized, although this only affects
the internal representation of negative integer values, and may not be
externally visible to end users.</p>
</li>
<li>
<p>Real literals are not normalized. For instance, <code>1e3</code> is not normalized
to <code>1000.0</code>.</p>
</li>
<li>
<p>For set literals, duplicate elements are not removed.</p>
</li>
<li>
<p>For dictionary literals, duplicate keys are not removed, and the dictionary
literal is not further simplified. Without literal optimization, duplicate
keys would lead to an error during simplification.</p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-27">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-29">Size considerations</h6>
<div class="paragraph">
<p>This transformation tries to simplify the specification, possibly reducing its
size.</p>
</div>
<div class="paragraph">
<p>All uses of constants lead to constant (sub-)expressions, and they are
evaluated. This leads to constants being inlined. For constants with large
literal values, this may significantly increase the size of the specification,
especially if the constant is used more than once. For information on how to
prevent this, see the <a href="#tools-cif2cif-chapter-simplify-values-no-refs-optimized">Simplify values (no references, optimized)</a>
CIF to CIF transformation.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-31">Optimality</h6>
<div class="paragraph">
<p>Not all simplifications that could potentially be performed are implemented in
this transformation.</p>
</div>
<div class="paragraph">
<p>The optimizations for literals that are performed influence the optimality of
the simplification, as described above.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-simplify-values-no-refs">Simplify values (no references)</h5>
<div class="paragraph">
<p>

This CIF to CIF transformation simplifies CIF specifications, by applying
same value-related simplifications as the <a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>
CIF to CIF transformation, but without simplifying reference expressions.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-42">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-39">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-31">Implementation details</h6>
<div class="paragraph">
<p>The CIF to CIF transformation to <a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>,
transforms the following specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int x = 3;
invariant x - 5 + 1 &gt; 0;</code></pre>
</div>
</div>
<div class="paragraph">
<p>into the following simplified specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int x = 3;
invariant false;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This transformation however, does not take the values of declarations into
account, and thus for instance does not fill in the values of constants,
algebraic variables, etc. Therefore, this transformation transforms that same
specification into the following simplified specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">const int x = 3;
invariant x - 4 &gt; 0;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This variant can be useful, as it prevents the use of constants from being
eliminated. This makes it possible to change the value of the constant in one
place (the one place being the declaration of the constant), and have all uses
of that constant automatically change with it (as they still refer to the
constant). If the value of the constant would be filled in as well, changing
the value of the constant would be more work, as all those places where it was
filled in, need to be replaced as well. In the above example, the issue is
even bigger, as the result is simplified even further, eliminating the entire
comparison to a single boolean value.</p>
</div>
<div class="paragraph">
<p>Another issue related to simplification of constants, is that inlining them
can be very expensive. If a constant has a large literal as its value, the
large literal is inlined wherever the constant is used. This may lead to
significantly larger specifications. Also, tools that use the resulting model
may handle constants in a special way to ensure they are evaluated only once,
but may not do so for large literals that occur in the middle of other
expressions. As such, simplification/inlining of constants may significantly
reduce performance.</p>
</div>
<div class="paragraph">
<p>The reference expressions that are not simplified (filled in) include among
others the following:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Values of constants.</p>
</li>
<li>
<p>Values of discrete variables.</p>
</li>
<li>
<p>Values of algebraic variables.</p>
</li>
<li>
<p>Values of continuous variables.</p>
</li>
<li>
<p>Values of input variables.</p>
</li>
<li>
<p>Derivatives of continuous variables.</p>
</li>
<li>
<p>Values of local variables of functions.</p>
</li>
<li>
<p>Values of parameters of functions.</p>
</li>
<li>
<p>User-defined functions.</p>
</li>
</ul>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-28">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-30">Size considerations</h6>
<div class="paragraph">
<p>This transformation tries to simplify the specification, possibly reducing its
size.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-32">Optimality</h6>
<div class="paragraph">
<p>Not all simplifications that could potentially be performed are implemented in
this transformation.</p>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tools-cif2cif-chapter-simplify-values-no-refs-optimized">Simplify values (no references, optimized)</h5>
<div class="paragraph">
<p>

This CIF to CIF transformation simplifies CIF specifications, by applying
same value-related simplifications as the <a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a>
CIF to CIF transformation, but without simplifying reference expressions, and
with optimizations for literal expressions.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect5">
<h6 id="tools-supported-specifications-43">Supported specifications</h6>
<div class="paragraph">
<p>This transformation supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-preprocessing-40">Preprocessing</h6>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-implementation-details-32">Implementation details</h6>
<div class="paragraph">
<p>This CIF to CIF transformation simplifies CIF specifications, by applying
same value-related simplifications as the
<a href="#tools-cif2cif-chapter-simplify-values">Simplify values</a> CIF to CIF transformation.</p>
</div>
<div class="paragraph">
<p>However, it does not simplifying reference expressions. For details, see the
<a href="#tools-cif2cif-chapter-simplify-values-no-refs">Simplify values (no references)</a> CIF to CIF transformation.
Furthermore, it simplifies with optimizations for literal expressions. For
details, see the <a href="#tools-cif2cif-chapter-simplify-values-optimized">Simplify values (optimized)</a> CIF to CIF
transformation.</p>
</div>
</div>
<div class="sect5">
<h6 id="tools-renaming-29">Renaming</h6>
<div class="paragraph">
<p>n/a</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-size-considerations-31">Size considerations</h6>
<div class="paragraph">
<p>This transformation tries to simplify the specification, possibly reducing its
size.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect5">
<h6 id="tools-optimality-33">Optimality</h6>
<div class="paragraph">
<p>Not all simplifications that could potentially be performed are implemented in
this transformation.</p>
</div>
<div class="paragraph">
<p>The optimizations for literals that are performed influence the optimality of
the simplification, as described above.</p>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-chapter-mergecif">CIF merger</h4>
<div class="paragraph">
<p>

The CIF merger can be used to merge two or more CIF specifications into a
single CIF specification. The result of the merger is essentially the parallel
composition of the input specifications. Unlike the
<a href="#tools-chapter-cif-explorer">CIF explorer</a> and <a href="#tools-eventbased-chapter-product">Event-based synchronous product</a> tools
however, the parallel composition is not unfolded into a
<a href="#tools-cifsim-traces-state-space">state space</a>.</p>
</div>
<div class="paragraph">
<p>It can for instance be useful to merge a synthesized supervisor with a timed or
hybrid plant, to validate the supervisor against that more detailed plant,
using interactive simulation and visualization on the merged specification.</p>
</div>
<div class="paragraph">
<p>The specifications that are being merged can <a href="#tools-mergecif-shared">share</a>
events and variables, making it possible to have
interaction between the merged specifications.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-transformation-7">Starting the transformation</h5>
<div class="paragraph">
<p>The merger can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Use the Eclipse IDE to merge multiple files:</p>
<div class="ulist">
<ul>
<li>
<p>Select a <code>.cif</code> file in the 'Project Explorer' tab or
'Package Explorer' tab by left clicking on it.</p>
</li>
<li>
<p>Select additional <code>.cif</code> files by left clicking on them while pressing
the
<kbd>Ctrl</kbd>
or
<kbd>Control</kbd>
key.</p>
</li>
<li>
<p>Make sure at least two <code>.cif</code> files are selected.</p>
</li>
<li>
<p>Right click one of the <code>.cif</code> files and choose
<b class="menuref">Merge CIF specifications&#8230;&#8203;</b>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Use the Eclipse IDE to merge a single file with itself (allowed, but
practically not that useful):</p>
<div class="ulist">
<ul>
<li>
<p>Right click a <code>.cif</code> file in the 'Project Explorer' tab or
'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF miscellaneous tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Merge CIF specifications&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF miscellaneous tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Merge CIF specifications&#8230;&#8203;</b></span>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Use the <code>cifmerge</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifmerge</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-options-20">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input files</em>: The absolute or relative local file system path to the
input CIF specifications. These are the files to merge.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
merged/output CIF specification. If not specified, the output file defaults
to <code>merged.cif</code>. If the merger is executed via the Eclipse GUI, the output
file, if specified as a relative path (or just a file name), is resolved
relative to the directory that contains the first input file.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-41">Preprocessing</h5>
<div class="paragraph">
<p>The following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are
applied as preprocessing (in the given order), to increase the subset of CIF
specifications that can be transformed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-svg-file-into-decls">Push SVG file declarations into other CIF/SVG declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-print-file-into-decls">Push print file declarations into print declarations</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If only one input file is provided to the CIF merger, essentially that single
input file is preprocessed and written as output, without any merging taking
place.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-example-4">Example</h5>
<div class="paragraph">
<p>Consider the following supervisor:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group button:
  uncontrollable u_pushed, u_released;
end

group lamp:
  controllable c_on, c_off;
end

group timer:
  controllable c_start;
  uncontrollable u_timeout;
end

supervisor automaton timed_lamp:
  location s0:
    initial;
    edge button.u_pushed goto s1;
    edge button.u_released;

  location s1:
    edge lamp.c_on goto s2;
    edge button.u_pushed, button.u_released;

  location s2:
    edge timer.c_start goto s3;
    edge button.u_pushed, button.u_released;

  location s3:
    edge timer.u_timeout goto s4;
    edge button.u_pushed, button.u_released;

  location s4:
    edge lamp.c_off goto s0;
    edge button.u_pushed, button.u_released;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>and the following timed plant:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton button:
  uncontrollable u_pushed, u_released;

  location released:
    initial;
    edge u_pushed goto pushed;

  location pushed:
    edge u_released goto released;
end

plant automaton lamp:
  controllable c_on, c_off;

  location off:
    initial;
    edge c_on goto on;

  location on:
    edge c_off goto off;
end

plant automaton timer:
  controllable c_start;
  uncontrollable u_timeout;

  cont t der 1.0;

  location idle:
    initial;
    edge c_start do t := 0.0 goto running;

  location running:
    edge u_timeout when t &gt;= 2.0 goto idle;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Merging these two specifications results in the following merged specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton button:
  uncontrollable u_pushed;
  uncontrollable u_released;
  location released:
    initial;
    edge u_pushed goto pushed;
  location pushed:
    edge u_released goto released;
end
plant automaton lamp:
  controllable c_on;
  controllable c_off;
  location off:
    initial;
    edge c_on goto on;
  location on:
    edge c_off goto off;
end
plant automaton timer:
  controllable c_start;
  uncontrollable u_timeout;
  cont t der 1.0;
  location idle:
    initial;
    edge c_start do t := 0.0 goto running;
  location running:
    edge u_timeout when t &gt;= 2.0 goto idle;
end
supervisor automaton timed_lamp:
  location s0:
    initial;
    edge button.u_pushed goto s1;
    edge button.u_released;
  location s1:
    edge lamp.c_on goto s2;
    edge button.u_pushed, button.u_released;
  location s2:
    edge timer.c_start goto s3;
    edge button.u_pushed, button.u_released;
  location s3:
    edge timer.u_timeout goto s4;
    edge button.u_pushed, button.u_released;
  location s4:
    edge lamp.c_off goto s0;
    edge button.u_pushed, button.u_released;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The supervisor specification contains three <em>skeletons</em>: groups that only
contain event declarations, and have no behavior. The skeletons represent the
plants of the system, which are controlled by the supervisor. The supervisor
specification also contains a supervisor automaton, which waits for the button
to be pushed, then turns on the lamp and start the timer, waits for the timer
to time out, turns the lamp back off, and keeps repeating this behavior.
Pushing or releasing the button during the cycle has no effect.</p>
</div>
<div class="paragraph">
<p>The timed specification contains the same plants, with the same events, but
here the plants are actual automata with behavior, instead of just skeleton
groups. For the button and lamp, the events occur in alternating sequences.
The timer has a clock that ensures that the timeout happens two time units
after the timer is started.</p>
</div>
<div class="paragraph">
<p>Since both specifications contain the same events (based on their absolute
names), these events are merged together. This ensures that uses of those
events become linked (or coupled), and all refer to the single merged event in
the merged specification. This means that the events used in the supervisor are
the same events as used the timed plant. This also means that they synchronize,
and the supervisor thus controls the timed plants.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-mergecif-shared">Shared events and variables</h5>
<div class="paragraph">
<p>The example above shows how shared events can be used to link (or couple)
multiple specifications through merging.</p>
</div>
<div class="paragraph">
<p>Similarly to the way events can be merged, it is possible to merge input
variables with other variables, as long as the types are compatible. That is,
an input variable can be merged with another input variable, a discrete
variable, a continuous variable, an algebraic variable, a constant, or a
location. The input variable is then a sort of <em>skeleton</em> definition that is
merged with an actual definition (for instance an algebraic variable), which
defines the value.</p>
</div>
<div class="paragraph">
<p>There are thus two ways for merged specifications to become linked (or
coupled): by means of shared events and by means of shared variables (including
constants).</p>
</div>
<div class="paragraph">
<p>For further details and restrictions, see the
<a href="#tools-mergecif-compatibility">Merge compatibility</a> section.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-mergecif-compatibility">Merge compatibility</h5>
<div class="paragraph">
<p>In general, objects (components, declarations, etc) that only occur in one
of the specifications being merged, are simply copied to the merged
specification. If in two (or more) specifications objects with the same
absolute name are present, they need to be merged. Not all objects can be
merged with all other objects, i.e. not all objects are <em>merge compatible</em>.
The following table gives an overview of what can be merged:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6923%;">
<col style="width: 7.6924%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Merge with</th>
<th class="tableblock halign-left valign-top">Group</th>
<th class="tableblock halign-left valign-top">Automaton</th>
<th class="tableblock halign-left valign-top">Event</th>
<th class="tableblock halign-left valign-top">Input var</th>
<th class="tableblock halign-left valign-top">Discrete var</th>
<th class="tableblock halign-left valign-top">Continuous var</th>
<th class="tableblock halign-left valign-top">Algebraic var</th>
<th class="tableblock halign-left valign-top">Constant</th>
<th class="tableblock halign-left valign-top">Location</th>
<th class="tableblock halign-left valign-top">Type declaration</th>
<th class="tableblock halign-left valign-top">Enumeration</th>
<th class="tableblock halign-left valign-top">Enumeration literal</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Group</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Automaton</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Event</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Input var</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Discrete var</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Continuous var</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Algebraic var</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Constant</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Location</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Type declaration</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Enumeration</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Enumeration literal</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For components (i.e. groups and automata) that are present in more than one
specification, the contents are recursively merged into a single component.
The contents of components consists not only of their declarations (such as
events) and their sub-components (for groups), but also of their invariants,
initialization predicates, marker predicates, equations, locations
(for automata), etc.</p>
</div>
<div class="paragraph">
<p>As the button/lamp example above shows, automata can be merged with groups
(often acting as skeletons), resulting in an automaton with the contents of
the group merged into it. Since automata can&#8217;t contain sub-components and
user-defined functions, groups with sub-components and/or user-defined
functions can not be merged with automata.</p>
</div>
<div class="paragraph">
<p>Groups can also be merged with other groups. Automata however can not be merged
with other automata, as that may lead to the merge of conflicting behavioral
specifications.</p>
</div>
<div class="paragraph">
<p>Events can be merged with other events. Each event must then either be a
channel in all of the specifications in which it occurs, or in none of them.
If it is a channel, the data type must be exactly the same in all
specifications in which it is declared. Events that have different
controllability in different specifications, can also not be merged.</p>
</div>
<div class="paragraph">
<p>Constants can be merged with other constants. However, the constants must then
have the exact same type and value in all the specifications in which they
occur. This restriction prevents the merge of conflicting values. Due to this
restriction, constants that have a type of which the values can not be compared
for equality (e.g. function types), are not supported (can not be merged).</p>
</div>
<div class="paragraph">
<p>As mentioned in the <a href="#tools-mergecif-shared">Shared events and variables</a> section, an input variable can
be merged with another input variable, discrete variable, continuous variable,
algebraic variable, constant, or location. Input variables can only be merged
with other objects that have the exact same type.</p>
</div>
<div class="paragraph">
<p>A location can be merged with an input variable that has a boolean type. The
input variable is then a placeholder for the location, indicating whether the
location is the current location of its automaton.</p>
</div>
<div class="paragraph">
<p>It is not allowed to merge two algebraic variables, two discrete variables, or
two continuous variables, as that may lead to the merge of conflicting values.</p>
</div>
<div class="paragraph">
<p>In general, only one of the specifications defines the variable as a concrete
variable that defines a value (e.g. as a discrete, continuous, or algebraic
variable). All the other specifications that have that same variable must
declare it as an input variable (essentially a <em>placeholder</em>). It is however
allowed to merge two or more constants with the same type and the same value.</p>
</div>
<div class="paragraph">
<p>Type declarations can be merged with other type declarations, as long as they
have the exact same type.</p>
</div>
<div class="paragraph">
<p>Enumerations can be merged with other enumerations, as long as they are
compatible. Two enumerations are compatible if they have the same number of
literals, with the exact same names, in the same order.</p>
</div>
<div class="paragraph">
<p>Enumeration literals can only be merged as the result of the enumerations of
which they are a part being merged. Merging two literals from different
enumerations (which then have different names) is not supported.</p>
</div>
<div class="paragraph">
<p>Type declarations and enumerations can be merged, as long as the type of the
type declaration is compatible with the enumeration.</p>
</div>
<div class="paragraph">
<p>User-defined functions can never be merged with other objects of the same name.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-invariants-2">Invariants</h5>
<div class="paragraph">
<p>Merging a group with an automaton, may change the supervisory kinds of the
invariants of the group. For instance, consider the following CIF
specifications:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">group x:
  input int y;
  invariant y = 1;
end</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton x:
  disc int y;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>When merged, this leads to the following CIF specification:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">plant automaton x:
  disc int y;
  invariant y = 1;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the original group <code>x</code>, the invariant did not have a supervisory kind.
After merging, the invariant still does not specify a supervisory kind.
However, since it is now specified in an automaton <code>x</code> of kind <code>plant</code>, the
invariant <a href="#lang-tut-extensions-synthesis-invkind-implicit">implicitly</a>
becomes a plant invariant as well.</p>
</div>
<div class="paragraph">
<p>When an invariant gets an implicit supervisory kind as a result of merging,
the merge tool prints a warning to the console.</p>
</div>
<div class="paragraph">
<p>To get rid of the warning, the invariant in group <code>x</code> can be declared
explicitly as being a <code>plant</code> invariant. The supervisory kind then matches
the supervisory kind of automaton <code>x</code>. When the group and automaton are
merged, the invariant keeps its explicit supervisory <code>plant</code> kind. The merge
result is thus the same as the earlier merge result, as in both cases the
invariant in the merged specification is interpreted as a print invariant.
However, in this last case, no warning is printed to the console.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-merge-problems">Merge problems</h5>
<div class="paragraph">
<p>Even when two or more CIF specifications are merge compatible, as described
above, the resulting merged CIF specification can still be invalid. In such
cases, merging fails. For instance, consider the following two CIF
specifications:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">input int x;
alg int y = x;</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg int x = y;
input int y;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Merging them would result in:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="cif">alg int x = y;
alg int y = x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>But this merged specification is invalid, as <code>x</code> is defined in terms of
<code>y</code>, which is defined in terms of <code>x</code>, leading to a loop (definition/use
cycle).</p>
</div>
<div class="paragraph">
<p>Another example of merge problems is two CIF specifications that have SVG
output mappings for the same SVG element id and attribute, for the same SVG
image file. In the individual CIF specifications there are no duplicate output
mappings, but in the merged specification there are.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-chapter-event-disabler">CIF event disabler</h4>
<div class="paragraph">
<p>

The CIF event disabler tool can be used to disable certain events of a CIF
specification, or even to disable events not currently present in a CIF
specification. The tool has various <a href="#tools-event-disabler-options">options</a> that can be used to control the working of the
tool, and influence its output.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-event-disabler-usage-scenario">Usage scenario</h5>
<div class="paragraph">
<p>Assume a system with some sensors and actuators. From the view of the
supervisor (or controller in general), the sensors are uncontrollable, and the
actuators are controllable. Now assume a controller is being designed for this
system, and it is to be merged with a simulation model of the uncontrolled
system, that is being designed as well.</p>
</div>
<div class="paragraph">
<p>The situation may arise that the controller only controls a part of the
uncontrolled system. This may for instance be the case if the designer of the
controller starts with a small controller and incrementally extends it to cover
more and more functionality of the system. The designer may have already made
a full simulation model of the uncontrolled system beforehand. Alternatively,
if one designer develops the controller and another develops the simulation
model of the uncontrolled system, the simulation model may be finished well
before the controller for the entire system is finished.</p>
</div>
<div class="paragraph">
<p>A problem arises when a controller that controls only part of the system, is
merged with a simulation model of the entire uncontrolled system. In the
uncontrolled system, the actuators can usually be turned on and off
arbitrarily, as they are not yet controlled in any way. If the controller
doesn&#8217;t control certain actuators, the behavior of those actuators is not
restricted, and during simulation the events to turn the actuators on and off
can happen at any time. Events are urgent, that is, they take precedence over
passage of time, and thus happen 'immediately'. Events that are always enabled
thus prevent passage of time. The simulation will turn the actuators on, off,
on again, off again, etc.</p>
</div>
<div class="paragraph">
<p>To solve this problem, the controllable events of the uncontrolled system that
are not restricted in any way by the controller need to be disabled. The CIF
event disabler tool makes this possible.</p>
</div>
<div class="paragraph">
<p>This is however not the only usage scenario. The same controller may be used
for implementation. For the implementation, a mapping from events to variables
that represent the I/O ports may be needed. This mapping could be a CIF
specification, with an automaton that performs the mapping. Similar to having
a complete simulation model, a complete mapping specification for the
implementation may be available. If in such mappings the actuator events are
always enabled, this may lead to similar problems as for the simulation, if
the controller only controls part of the system. Here too, the event disabler
can be used to restrict such actuator events from causing trouble.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-starting-the-tool">Starting the tool</h5>
<div class="paragraph">
<p>The tool can be started in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>In Eclipse, right click a <code>.cif</code> file in the 'Project Explorer' tab
or 'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF miscellaneous tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Disable events of CIF specification&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>In Eclipse, right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF miscellaneous tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Disable events of CIF specification&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifevtdis</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifevtdis</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-specifications-44">Supported specifications</h5>
<div class="paragraph">
<p>The event disabler supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Component definitions and component instantiations are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-42">Preprocessing</h5>
<div class="paragraph">
<p>No preprocessing is currently performed by this CIF to CIF transformation. To
increase the subset of specifications that can be transformed, apply the
following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> (in the
given order):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-event-disabler-options">Options</h5>
<div class="paragraph">
<p>Besides the general application options, this application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file</em>: The absolute or relative local file system path to the
input CIF specification. If we relate this to the above
<a href="#tools-event-disabler-usage-scenario">usage scenario</a>, the input file should be the
controller that only controls part of the system.</p>
</li>
<li>
<p><em>Output file</em>: The absolute or relative local file system path to the
output CIF specification. If not specified, defaults to the input file
path, where the <code>.cif</code> file extension is removed (if present), and a
<code>.disabled.cif</code> file extension is added.</p>
</li>
<li>
<p><em>Event names</em>: The absolute names of the events. How these supplied events
are used depends on the <em>Event usage</em> option. Multiple events may be
specified, separated by commas and/or spaces.</p>
</li>
<li>
<p><em>Event names file</em>: The absolute or relative local file system path of a file
with the absolute names of the events. How these supplied events are used
depends on the <em>Event usage</em> option. Multiple events may be specified in the
file, on separate lines. Empty lines are ignored. Lines starting with a <code>#</code>
character are ignored as well, and can thus be used to add comments.</p>
</li>
<li>
<p><em>SVG input events</em>: Enable this option to use the SVG input events. How the
events are used depends on the <em>Event usage</em> option.</p>
</li>
<li>
<p><em>Event usage</em>: This option can be used to specify how the supplied events are
to be used. That is, it specifies which events to disable. See the
<a href="#tools-event-disabler-spec-evts-to-disable">Specifying the events to disable</a> section for more
information.</p>
</li>
<li>
<p><em>Include input specification</em>: Should the output file contain only the new
automaton that is created to disable the events, or should it include the
input specification as well? See the
<a href="#tools-event-disabler-output">Output</a> section for more information.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>At least one of the <em>Event names</em>, <em>Event names file</em>, or <em>SVG input events</em>
options must be used to supply events to the tool. It is allowed to use
multiple of these options, to combine events from multiple sources, and supply
all of them to the tool.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-event-disabler-spec-evts-to-disable">Specifying the events to disable</h5>
<div class="paragraph">
<p>The <em>Event names</em>, <em>Event names file</em>, and <em>SVG input events</em> options can be
used to supply events to the tool. How these events are used (or interpreted)
depends on the <em>Event usage</em> option. Several alternatives are available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Disable the supplied events, regardless of the alphabet of the input
specification (<code>disable</code>)</p>
</li>
<li>
<p>Disable all supplied events, that are not in the alphabet of the input
specification (<code>alphabet</code>)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The texts between parentheses at the end of the alternatives indicate the
command line option values that correspond with the alternatives. The default
is <code>alphabet</code>.</p>
</div>
<div class="paragraph">
<p>The most straightforward alternative is to manually specify the events to
<code>disable</code> (the first alternative in the above list). The supplied events are
then disabled.</p>
</div>
<div class="paragraph">
<p>Manually specifying the events to disable can be cumbersome. Especially if the
controller is developed incrementally, this can be a burden. The more events
the controller does restrict, the less events should be disabled using the
event disabler. In this case it may be easier to list the controllable events
of the uncontrolled system that the controller may or may not restrict. That
is, the <code>alphabet</code> (the second alternative in the above list) of controllable
events of the uncontrolled system is specified. Supplied events that are not
in the alphabet of any of the automata of the input specification, are
disabled.</p>
</div>
<div class="paragraph">
<p>The following table summarizes which events get disabled by the tool:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Event usage</th>
<th class="tableblock halign-left valign-top">Event supplied</th>
<th class="tableblock halign-left valign-top">Event in alphabet</th>
<th class="tableblock halign-left valign-top">Event is disabled by tool</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">disable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes/no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">disable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes/no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">alphabet</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">alphabet</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">alphabet</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">yes/no</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-event-disabler-output">Output</h5>
<div class="paragraph">
<p>If the <em>Include input specification</em> option is enabled, the output
specification is a copy of the input specification, which is then modified to
disable certain events. For events that are disabled by the tool, but did not
exist in the input specification, an event declaration is added. If the option
is disabled, the output specification starts empty. For all events are
disabled, an event declaration is added. Event declarations are added in
their proper scopes, based on their absolute names, by adding groups around
them as needed.</p>
</div>
<div class="paragraph">
<p>

By default, the <em>Include input specification</em> option is disabled. This ensures
that the output specification is small. The typical scenario is to merge the
input specification, event disabler output specification, and simulation model
together using the <a href="#tools-chapter-mergecif">CIF merger</a> tool. Disabling the <em>Include input
specification</em> specification option then gives the best performance for the
tool chain.</p>
</div>
<div class="paragraph">
<p>If any events are disabled by the tool, a new automaton is created, and this
automaton is added to the output specification. The automaton is named
<code>event_disabler</code>, but may be renamed if it conflicts with an already existing
object with the same name. The automaton has no supervisory kind, and has the
disabled events as alphabet. It has a single nameless location, with a single
self loop for all of the events that are disabled. The guard of the self
loop is <code>false</code>, which results in the events being globally disabled.</p>
</div>
<div class="paragraph">
<p>If the <em>Include input specification</em> option is enabled, and events are disabled
that did not exist in the input specification, event declarations are added to
the output specification for those events. If the <em>Include input specification</em>
option is disabled, event declarations are added for all events that are
disabled. Event declarations that are added and existed in the input
specification (in case the <em>Include input specification</em> option is disabled),
inherit their controllability from the input specification. All other events
that are added are declared as controllable events if their name starts with
<code>c_</code>, are declared as uncontrollable events if their name starts with <code>u_</code>,
and are declared as neither controllable nor uncontrollable otherwise.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-chapter-cif-explorer">CIF explorer</h4>
<div class="paragraph">
<p>




The CIF explorer unfolds the state space expressed by a CIF specification, in
an untimed setting. It takes a CIF model and iteratively explores the states
using event transitions, unfolding the state space. Available output forms
include a CIF automaton of the state space, and a report with details of the
found states. Time transitions are never taken. The explorer will return a
deadlock state when forced into a time step. Continuous variables are allowed,
but behave much like discrete variables due to lack of time steps.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect4">
<h5 id="tools-starting-the-program">Starting the program</h5>
<div class="paragraph">
<p>The explorer can be started in Eclipse in the following ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Right click a <code>.cif</code> file in the 'Project Explorer' tab or
'Package Explorer' tab and choose
<span class="menuseq"><b class="menu">CIF miscellaneous tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Explore untimed state space&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Right click an open text editor for a <code>.cif</code> file and choose
<span class="menuseq"><b class="menu">CIF miscellaneous tools</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Explore untimed state space&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Use the <code>cifexplorer</code> tool in a
ToolDef script. See the
<a href="#tools-scripting-chapter-intro">scripting documentation</a> and
<a href="#tools-scripting-chapter-tools">tools overview</a> page for details.</p>
</li>
<li>
<p>Use the <code>cifexplorer</code> command line tool.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-options-21">Options</h5>
<div class="paragraph">
<p>Besides the general application options, the application has the following
options:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>Input file path</em>: The absolute or relative file system path to the input
CIF specification.</p>
</li>
<li>
<p><em>Enable edge minimization</em>: Enable edge minimization to remove duplicate
edges of the state space, before printing statistics, and writing output
files. Two edges are duplicates if they have the same source and target
states, and the same event. The communication value, if any, is ignored.
Enabled by default.</p>
</li>
<li>
<p><em>Enable statistics</em>: Enable printing of statistics of the resulting state
space to the console. Statistics include the number of states and the number
of edges of the resulting state space. It is recommended to enable the
edge minimization option when printing statistics. Enabled by default.</p>
</li>
<li>
<p><em>Enable CIF output</em>: Enable output of states and edges as a CIF automaton.
Enabled by default.</p>
</li>
<li>
<p><em>Output file path</em>: The absolute or relative file system path of the output
CIF specification with the generated state space as a CIF automaton.</p>
</li>
<li>
<p><em>Enable report</em>: Enable writing a detailed report on the found states.
Disabled by default.</p>
</li>
<li>
<p><em>Report file path</em>: The absolute or relative file system path of the report
file. If specified, option <em>Enable report</em> is implied.</p>
</li>
<li>
<p><em>Print progress</em>: The number of states to process before printing progress
information. Must be a non-negative integer number. May be <code>off</code> to disable
progress information. The default is to print progress information after
processing 1000 states.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The CIF output file is written if the <em>Enable CIF output</em> option is set, or if
a path is supplied with the <em>Output file path</em> option. If the latter is given,
its value is used as the path for writing the report file. If only the
<em>Enable CIF output</em> option is set, the value of the <em>Input file path</em> option is
used, where the <code>.cif</code> extension is removed (if present), and
a <code>_statespace.cif</code> suffix is added.</p>
</div>
<div class="paragraph">
<p>The report file is written if the <em>Enable report</em> option is set, or if a path
is supplied with the <em>Report file path</em> option. If the latter is given, its
value is used as the path for writing the report file. If only the
<em>Enable report</em> option is set, the value of the <em>Input file path</em> option is
used, where the <code>.cif</code> extension is removed (if present), and
a <code>_report.txt</code> suffix is added.</p>
</div>
<div class="paragraph">
<p>If both the CIF output and the report file output are disabled, the resulting
state space is not outputted at all. In such cases, the state space explorer
acts as a verifier for runtime errors, which can make the exploration fail.
If exploration completes without errors, the explorer has verified that no
runtime errors occur. Runtime errors include failures to compute values, such
as division by zero, as well as assignments that assign values to variables
that are outside the allowed bounds/ranges of the variables.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-supported-specifications-45">Supported specifications</h5>
<div class="paragraph">
<p>The explorer supports a subset of CIF specifications. The following
restrictions apply:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Usage of distribution types and distribution standard library functions is
not supported.</p>
</li>
<li>
<p>Usage of derivatives is not supported.</p>
</li>
<li>
<p>External user-defined functions are not supported.</p>
</li>
<li>
<p>Input variables are not supported.</p>
</li>
<li>
<p>Specifications with more than 2<sup>31</sup> - 1 = 2,147,483,647 potential
initial states are not supported.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following information from the specification is ignored:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Automaton and invariant supervisory kinds.</p>
</li>
<li>
<p>Controllability of events.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="tools-preprocessing-43">Preprocessing</h5>
<div class="paragraph">
<p>Prior to exploration, the following <a href="#tools-cif2cif-chapter-index">CIF to CIF transformations</a> are applied as preprocessing (in the given order), to
increase the subset of CIF specifications that can be explored:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tools-cif2cif-chapter-remove-io-decls">Remove I/O declarations</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-comp-def-inst">Eliminate component definition/instantiation</a></p>
</li>
<li>
<p><a href="#tools-cif2cif-chapter-elim-self">Eliminate automaton <code>self</code> references</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In addition it applies the
<a href="#tools-cif2cif-chapter-simplify-values-no-refs-optimized">Simplify values (no references, optimized)</a> CIF to CIF
transformation to speed up processing.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tools-scripting">Scripting</h3>
<div class="sect3">
<h4 id="tools-scripting-chapter-intro">Introduction to scripting</h4>
<div class="paragraph">
<p>All CIF <a href="#tools-chapter-index">tools</a> can be used in
ToolDef scripts. ToolDef is a
cross-platform and machine-independent scripting language that supports command
line execution, but is also available as plug-in for
<a href="https://eclipse.org">Eclipse</a>, providing an integrated development
experience.</p>
</div>
<div class="sect4">
<h5 id="tools-scenarios">Scenarios</h5>
<div class="paragraph">
<p>Using CIF tools in a ToolDef script can be useful for various reasons.</p>
</div>
<div class="paragraph">
<p>Scripts allow executing multiple tools, one after the other, for instance to
perform <a href="#tools-chapter-datasynth">data-based synthesis</a> on some sub-systems,
<a href="#tools-chapter-mergecif">merge</a> the resulting supervisors, and
<a href="#tools-cif2plc-chapter-index">generate PLC code</a> from it. Once a script is made,
these steps can be easily repeated whenever the models for the sub-systems
change. This is much easier than starting each of the tools manually, and saves
valuable time. Furthermore, it is possible to share your script with others,
who can then perform the same steps, and get the same results.</p>
</div>
<div class="paragraph">
<p>A script can also be used to execute a single tool, specifying the parameters
used when executing it. For instance, a script could execute the simulator,
specifying not only which model (file) to simulate, but also the simulation
options. If various <a href="#tools-cifsim-output-chapter-index">visualizations</a> are
enabled, variables are <a href="#tools-cifsim-output-plotviz-filtering">filtered</a>,
etc, manually configuring the options for each simulation can become tiresome.
By specifying them in a script, simulating again with the same options becomes
as simple as executing the script again. By sharing such a script with others,
they can simulate the same model with the same options.</p>
</div>
<div class="paragraph">
<p>Another use of scripts is to repeatedly execute the same tool, but with
different parameters. A good example is
<a href="#tools-cifsim-chapter-repeated-simulation">repeatedly simulating</a> a model.
Instead of manually simulating a model with
<a href="#tut-stochastics-chapter-intro">stochastics</a> hundreds or even thousands of
times, which can be very time consuming, a script can be used to automate this
task. The script can then also be used to automatically collect the results,
and process them. Others can use the same script to repeat the experiments and
verify the results, or to perform similar experiments.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-library-import">Library import</h5>
<div class="paragraph">
<p>In order to use CIF tools in a ToolDef script, the library with all CIF
tools needs to be imported. The import statement to use is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">from &quot;lib:cif&quot; import *;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This statement imports all tools from the <code>cif</code> library, a library
registered by the CIF tooling. You&#8217;ll want to include this import statement
in all your own scripts that use CIF tools.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-execution-a-tool">Execution a tool</h5>
<div class="paragraph">
<p>Here is a simple example of a ToolDef script that simulates a model using the
<a href="#tools-cifsim-chapter-index">CIF simulator</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">from &quot;lib:cif&quot; import *;

cifsim(&quot;some_model.cif -i auto -t 10&quot;);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The second statement executes the <code>cifsim</code> tool (the CIF simulator). This
is just one of the tools that is available, but there are
<a href="#tools-scripting-chapter-tools">many more</a>.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-command-line-arguments">Command line arguments</h5>
<div class="paragraph">
<p>Command line arguments can be used to let a tool know on which files it should
operate, and what options it should use. The example above uses
<code>"some_model.cif -i auto -t 10"</code> as arguments, consisting of the model to
simulate (the <code>some_model.cif</code> file) and some simulation options
(<a href="#tools-cifsim-input-chapter-automatic">automatic simulation</a> due to
<code>-i auto</code>, and a simulation
<a href="#tools-cifsim-termination-endtime">end time</a> of 10 time units due to
<code>-t 10</code>).</p>
</div>
<div class="paragraph">
<p>The command line options to use in ToolDef, are identical to the command line
options to use for command line scripts, in a
shell or command window. The CIF documentation generally refers to command line
arguments or command line options, which can thus be used on the actual command
line, as well as in ToolDef scripts.</p>
</div>
<div class="paragraph">
<p>The command line arguments that are available are different for each tool. All
CIF tools have <code>-h</code> and <code>--help</code> command line arguments that can be used
to print the application help text to the console. The help text contains
detailed information on all the command line arguments supported by the tool.
Here is an example of how to show the help text for the simulator:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">from &quot;lib:cif&quot; import *;

cifsim(&quot;-h&quot;);</code></pre>
</div>
</div>
<div class="paragraph">
<p>This information can also be seen in the option dialog:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/scripting/option_dialog_cmdline_help.png" alt="option dialog cmdline help">
</div>
</div>
<div class="paragraph">
<p>The option dialog shows the same help text as the command line <code>--help</code> and
<code>-h</code> options. In this screenshot, you can see the help text of the
<code>--end-time</code> or <code>-t</code> option. This particular option can also be configured
using the option dialog. It is part of the
<b class="menuref">Simulator</b>
category:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tools/scripting/option_dialog_cmdline_link.png" alt="option dialog cmdline link">
</div>
</div>
<div class="paragraph">
<p>There, it is listed as
<b class="menuref">Simulator end time</b>
option. After that name,
the command line names of the option (<code>--end-time</code> and <code>-t</code>) are also
listed. This makes it easier to link options in the option dialog with command
line options.</p>
</div>
<div class="paragraph">
<p>In the example ToolDef scripts so far, all command line arguments are provided
as a single string of text. However, it is also possible to provide each
command line argument as a separate string. In fact, you may provide as many
strings as you like, and each string may contain as many command line arguments
as you like. For instance, the following statements each execute the simulator,
and all have the same command line arguments, but provided in a different way:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">cifsim(&quot;some_model.cif -i auto -t 10&quot;);       // Single string, all arguments.
cifsim(&quot;some_model.cif&quot;, &quot;-i auto&quot;, &quot;-t 10&quot;); // Multiple strings, multiple arguments each.
cifsim(&quot;some_model.cif&quot;, &quot;-i&quot;, &quot;auto&quot;, &quot;-t&quot;, &quot;10&quot;); // Multiple strings, one argument each.</code></pre>
</div>
</div>
<div class="paragraph">
<p>For simulations, disabling a certain simulation option is a common task. By
listing each simulation option on a separate line of the script, disabling or
enabling a simulation option becomes as easy as commenting or uncommenting a
line of the script. For instance, consider the following script:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">from &quot;lib:cif&quot; import *;

cifsim(
    &quot;some_model.cif&quot;,
    &quot;-i auto&quot;,
    &quot;-t 10&quot;,
);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The model to simulate, the enabling of the automatic input mode, and the
simulation end time, are each specified on a separate line. This makes it very
easy to disable the simulation end time:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">from &quot;lib:cif&quot; import *;

cifsim(
    &quot;some_model.cif&quot;,
    &quot;-i auto&quot;,
    // &quot;-t 10&quot;,
);</code></pre>
</div>
</div>
<div class="paragraph">
<p>To comment a line or multiple selected lines in a ToolDef text editor, use
keyboard shortcut <span class="keyseq"><kbd>Ctrl</kbd>+<kbd>/</kbd></span> or the corresponding toolbar button
(<span class="image"><img src="./tools/scripting/comment.png" alt="comment"></span>). For uncommenting, use keyboard shortcut
<span class="keyseq"><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>/</kbd></span> or the corresponding toolbar button
(<span class="image"><img src="./tools/scripting/uncomment.png" alt="uncomment"></span>).</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-output-redirection-and-other-options">Output redirection and other options</h5>
<div class="paragraph">
<p>Besides the application specific options that can be configured using the
command line arguments, all tools such as the <code>cifsim</code> tool, have some
additional options. This includes the possibility to write the output of the
tool to a file instead of the console:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">from &quot;lib:cif&quot; import *;

cifsim(&quot;some_model.cif -i auto -t 10&quot;, stdout=&quot;output.txt&quot;);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>stdout</code> parameter of the <code>cifsim</code> tool is used to specify the
filename of the file to which to write the output. A complete list of the
available parameters and their meaning, is available on the
<a href="#tools-scripting-chapter-tools">Overview of scriptable tools</a> page.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tools-scripting-chapter-tools">Overview of scriptable tools</h4>
<div class="paragraph">
<p>This page provides an overview of the CIF tools that are available in the
<code>cif</code> library that is registered with ToolDef by CIF.</p>
</div>
<div class="sect4">
<h5 id="tools-tools">Tools</h5>
<div class="paragraph">
<p>The following table shows the relation between the names of the ToolDef tools
in the library and the tools of the CIF tool set:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">ToolDef tool name</th>
<th class="tableblock halign-left valign-top">CIF tool</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cif2yed</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-chapter-cif2yed">CIF to yEd transformer</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifdatasynth</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-chapter-datasynth">Data-based supervisory controller synthesis</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cif2supremica</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-chapter-cif2supremica">CIF to Supremica transformer</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifsim</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cifsim-chapter-index">CIF simulator</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cif2mcrl2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-chapter-cif2mcrl2">CIF to mCRL2 transformer</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cif2uppaal</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-chapter-cif2uppaal">CIF to UPPAAL transformer</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifcodegen</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-codegen-chapter-index">CIF code generator</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cif2plc</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cif2plc-chapter-index">CIF PLC code generator</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cif2cif</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-cif2cif-chapter-index">CIF to CIF transformer</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifmerge</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-chapter-mergecif">CIF merger</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifevtdis</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-chapter-event-disabler">CIF event disabler</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifexplorer</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-chapter-cif-explorer">CIF explorer</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifprod</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-product">Event-based synchronous product</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifsupsynth</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-supervisorsynthesis">Event-based supervisor synthesis</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifsynthanalys</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-synthesis-analysis">Event-based synthesis analysis</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifncchk</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-nonconflicting-check">Event-based nonconflicting check</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifctrlchk</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-controllability-check">Event-based controllability check</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ciflngeqv</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-language-equivalence-check">Event-based language equivalence check</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifnfadfa</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-nfa-to-dfa">Event-based NFA to DFA automaton conversion</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifdfamin</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-dfa-minimization">Event-based DFA minimization</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifproj</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-projection">Event-based automaton projection</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifobschk</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-observer-check">Event-based observer check</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cifabstr</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-automaton-abstraction">Event-based automaton abstraction</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ciftrimchk</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-trim-check">Event-based trim check</a></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ciftrim</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#tools-eventbased-chapter-trim">Event-based trim</a></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect4">
<h5 id="tools-parameters">Parameters</h5>
<div class="paragraph">
<p>For every CIF tool, two ToolDef tool variants are available in the <code>cif</code>
ToolDef library. All the CIF tools in the <code>cif</code> ToolDef library have
the same tool signatures, including the same parameters. Only their names
differ. Below the tool signatures for the two variants are listed, with
<code>toolname</code> instead of the actual tool name (e.g. <code>cifsim</code>):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="tooldef">tool int toolname(
            string... args,
            string stdin = &quot;-&quot;,
            string stdout = &quot;-&quot;,
            string stderr = &quot;-&quot;,
            bool appendOut = false,
            bool appendErr = false,
            bool errToOut = false,
            bool ignoreNonZeroExitCode = false
)

tool int toolname(
            list string args = [],
            string stdin = &quot;-&quot;,
            string stdout = &quot;-&quot;,
            string stderr = &quot;-&quot;,
            bool appendOut = false,
            bool appendErr = false,
            bool errToOut = false,
            bool ignoreNonZeroExitCode = false
)</code></pre>
</div>
</div>
<div class="paragraph">
<p>The meaning of each of the parameters is as follows:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">args</dt>
<dd>
<p>The command line arguments of the application. Each argument string is parsed
to zero or more actual arguments. It is possible to use a single string with
all arguments (where the arguments themselves are separated by spaces), comma
separated strings for each of the arguments (each string has one argument),
or a mix of those.</p>
<div class="paragraph">
<p>In argument strings, individual arguments are separated by whitespace
(spaces, tabs, new lines, etc). The whitespace itself is ignored, and only
serves as separation. To include whitespace in an argument, the argument (or
a part of it), may be quoted, by putting it between double quotes (<code>"</code>) or
single quotes (<code>'</code>). Characters may be escaped by prefixing them with a
backslash (<code>\</code>). This is particularly useful for single/double quotes, and
escape characters, and can also be used to escape spaces. Escapes work the
same inside of quoted parts as they do outside of quoted parts.</p>
</div>
</dd>
<dt class="hdlist1">stdin</dt>
<dd>
<p>Specify whether to have a standard input (stdin) stream and where the input
comes from. Use <code>""</code> to not have a stdin stream, "-" to use the stdin
stream of the ToolDef interpreter, or otherwise an absolute or relative local
file system path of the file from which to read the standard input. May
contain both <code>\</code> and <code>/</code> as path separators</p>
</dd>
<dt class="hdlist1">stdout</dt>
<dd>
<p>Specify whether to have a standard output (stdout) stream and where to write
the standard output. Use <code>""</code> to not have a stdout stream, <code>"-"</code> to use
the stdout stream of the ToolDef interpreter, or otherwise an absolute or
relative local file system path of the file to which to write the standard
output. May contain both <code>\</code> and <code>/</code> as path separators.</p>
</dd>
<dt class="hdlist1">stderr</dt>
<dd>
<p>Specify whether to have a standard error (stderr) stream and where to write
the standard error output. Use <code>""</code> to not have a stderr stream, <code>"-"</code>
to use the stderr stream of the ToolDef interpreter, or otherwise an absolute
or relative local file system path of the file to which to write the standard
error output. May contain both <code>\</code> and <code>/</code> as path separators. Is ignored
when the standard error stream is redirected to the standard output stream.</p>
</dd>
<dt class="hdlist1">appendOut</dt>
<dd>
<p>Whether to append to the stdout file (<code>true</code>) or overwrite it (<code>false</code>).
Is ignored when standard output is not written to a file.</p>
</dd>
<dt class="hdlist1">appendErr</dt>
<dd>
<p>Whether to append to the stderr file (<code>true</code>) or overwrite it (<code>false</code>).
Is ignored if standard error output is not written to a file. Is also ignored
when standard error stream is redirected to the standard output stream.</p>
</dd>
<dt class="hdlist1">errToOut</dt>
<dd>
<p>Whether to redirect the standard error stream to the standard output stream
(<code>true</code>) or use separate streams (<code>false</code>).</p>
</dd>
<dt class="hdlist1">ignoreNonZeroExitCode</dt>
<dd>
<p>Whether to ignore non-zero exit codes (<code>true</code>) or consider them as errors
(<code>false</code>).</p>
</dd>
</dl>
</div>
</div>
<div class="sect4">
<h5 id="tools-return-value">Return value</h5>
<div class="paragraph">
<p>All the tools return an integer value. This value is the exit code of the
application. A zero (<code>0</code>) exit code means the application terminated without
any errors. A non-zero exit code means the application terminated with an
error.</p>
</div>
</div>
<div class="sect4">
<h5 id="tools-implementation">Implementation</h5>
<div class="paragraph">
<p>All the tools are internally implemented using the ToolDef <code>app</code> tool.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="examples-chapter-index">CIF examples</h2>
<div class="sectionbody">
<div class="paragraph">
<p>CIF ships with several examples. To obtain these examples, follow these steps:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Start the Eclipse ESCET IDE.</p>
</li>
<li>
<p>Click <span class="menuseq"><b class="menu">File</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="submenu">New</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Example&#8230;&#8203;</b></span>.</p>
</li>
<li>
<p>Select <em>CIF Examples</em> and click <b class="button">Next</b>.</p>
</li>
<li>
<p>Choose the name of the new project that will be created.</p>
</li>
<li>
<p>Choose a location for the new project, on your hard disk. If you leave the
<em>Use default location</em> option enabled, the new project will be created in
workspace directory. See the Eclipse ESCET documentation for more
information on workspaces.</p>
</li>
<li>
<p>Click <b class="button">Finish</b> to create the new project, and fill it with the
examples.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For new releases of CIF, the examples may change. The examples project that you
previously created won&#8217;t be automatically updated. You can however go
through the steps again, and get a second project, with the new examples. The
version of the release is included in the suggested project name, allowing
multiple example projects for different releases.</p>
</div>
<div class="paragraph">
<p>Most examples also include a ToolDef <a href="#tools-scripting-chapter-intro">script</a>
(<code>.tooldef</code> file) that can be used to perform various tasks, such as
simulation. To execute such a script, right click a <code>.tooldef</code> file an choose
<b class="menuref">Execute ToolDef</b>. Alternatively, select the file and press
<kbd>F10</kbd>.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="release-notes-chapter-index">CIF release notes</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The release notes for the releases of CIF and the associated tools, as
part of the Eclipse ESCET project, are listed below in reverse chronological
order.</p>
</div>
<div class="sect2">
<h3 id="version-0-1-unreleased">Version 0.1 (unreleased)</h3>
<div class="paragraph">
<p>The first release of CIF as part of the Eclipse ESCET project.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="dev-chapter-index">Developers</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The CIF developers manual is intended only for those who develop or extend
the CIF language or tools. It is not intended for end users.</p>
</div>
<div class="paragraph">
<p>This manual only contains CIF specific information. For general developers
information, see the Eclipse ESCET developers manual.</p>
</div>
<div class="paragraph">
<p>The following information is available for developers:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#dev-lang-modify">CIF language modification</a></p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="dev-lang-modify">CIF language modification</h3>
<div class="paragraph">
<p>For each change to the CIF language, follow these steps:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Update <code>cif.setext</code> syntax.</p>
</li>
<li>
<p>Update <code>cif.bnf</code> syntax in documentation.</p>
</li>
<li>
<p>Update example models for changed syntax.</p>
</li>
<li>
<p>Update Ecore metamodel. Update Ecore diagram images.</p>
</li>
<li>
<p>Update Ecore genmodel. Remove and re-generate model code.</p>
</li>
<li>
<p>Update generated Java constructors and walker code.</p>
</li>
<li>
<p>Update LaTeX documentation skeleton files.</p>
</li>
<li>
<p>Update LaTeX documentation, including constraints. Generate new PDF.</p>
</li>
<li>
<p>Update example models for changed constraints.</p>
</li>
<li>
<p>Update parser implementation, including AST classes.</p>
</li>
<li>
<p>Update text editor, including keywords and syntax highlighting.</p>
</li>
<li>
<p>Update type checker, including error message enumeration.</p>
</li>
<li>
<p>Update pretty printer, including set of keywords.</p>
</li>
<li>
<p>Update CIF to CIF transformations and other tools.</p>
</li>
<li>
<p>Update CIF documentation, including language reference manual with lexical
syntax and grammar.</p>
</li>
<li>
<p>Update CIF syntax highlighting definition for LaTeX.</p>
</li>
<li>
<p>Update CIF syntax highlighting definition for AsciiDoctor.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="legal-chapter-index">Legal</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The material in this documentation is
Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation.</p>
</div>
<div class="paragraph">
<p>Eclipse ESCET and ESCET are trademarks of the Eclipse Foundation.
Eclipse, and the Eclipse Logo are registered trademarks of the
Eclipse Foundation. Other names may be trademarks of their
respective owners.</p>
</div>
<div class="paragraph">
<p><strong>License</strong></p>
</div>
<div class="paragraph">
<p>The Eclipse Foundation makes available all content in this document
("Content"). Unless otherwise indicated below, the Content is provided to you
under the terms and conditions of the MIT License. A copy of the MIT License
is available at <a href="https://opensource.org/licenses/MIT" class="bare">https://opensource.org/licenses/MIT</a>. For purposes of the
MIT License, "Software" will mean the Content.</p>
</div>
<div class="paragraph">
<p>If you did not receive this Content directly from the Eclipse Foundation,
the Content is being redistributed by another party ("Redistributor") and
different terms and conditions may apply to your use of any object code in
the Content. Check the Redistributor&#8217;s license that was provided with the
Content. If no such license exists, contact the Redistributor. Unless
otherwise indicated below, the terms and conditions of the MIT License
still apply to any source code in the Content and such source code may be
obtained at <a href="http://www.eclipse.org" class="bare">http://www.eclipse.org</a>.</p>
</div>
</div>
</div>
</div>
<style>
/* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
pre.CodeRay{background:#f7f7f8}
.CodeRay .line-numbers{border-right:1px solid currentColor;opacity:.35;padding:0 .5em 0 0}
.CodeRay span.line-numbers{display:inline-block;margin-right:.75em}
.CodeRay .line-numbers strong{color:#000}
table.CodeRay{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.CodeRay td{vertical-align:top;line-height:inherit}
table.CodeRay td.line-numbers{text-align:right}
table.CodeRay td.code{padding:0 0 0 .75em}
.CodeRay .debug{color:#fff !important;background:#000080 !important}
.CodeRay .annotation{color:#007}
.CodeRay .attribute-name{color:#000080}
.CodeRay .attribute-value{color:#700}
.CodeRay .binary{color:#509}
.CodeRay .comment{color:#998;font-style:italic}
.CodeRay .char{color:#04d}
.CodeRay .char .content{color:#04d}
.CodeRay .char .delimiter{color:#039}
.CodeRay .class{color:#458;font-weight:bold}
.CodeRay .complex{color:#a08}
.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
.CodeRay .color{color:#099}
.CodeRay .class-variable{color:#369}
.CodeRay .decorator{color:#b0b}
.CodeRay .definition{color:#099}
.CodeRay .delimiter{color:#000}
.CodeRay .doc{color:#970}
.CodeRay .doctype{color:#34b}
.CodeRay .doc-string{color:#d42}
.CodeRay .escape{color:#666}
.CodeRay .entity{color:#800}
.CodeRay .error{color:#808}
.CodeRay .exception{color:inherit}
.CodeRay .filename{color:#099}
.CodeRay .function{color:#900;font-weight:bold}
.CodeRay .global-variable{color:#008080}
.CodeRay .hex{color:#058}
.CodeRay .integer,.CodeRay .float{color:#099}
.CodeRay .include{color:#555}
.CodeRay .inline{color:#000}
.CodeRay .inline .inline{background:#ccc}
.CodeRay .inline .inline .inline{background:#bbb}
.CodeRay .inline .inline-delimiter{color:#d14}
.CodeRay .inline-delimiter{color:#d14}
.CodeRay .important{color:#555;font-weight:bold}
.CodeRay .interpreted{color:#b2b}
.CodeRay .instance-variable{color:#008080}
.CodeRay .label{color:#970}
.CodeRay .local-variable{color:#963}
.CodeRay .octal{color:#40e}
.CodeRay .predefined{color:#369}
.CodeRay .preprocessor{color:#579}
.CodeRay .pseudo-class{color:#555}
.CodeRay .directive{font-weight:bold}
.CodeRay .type{font-weight:bold}
.CodeRay .predefined-type{color:inherit}
.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
.CodeRay .key{color:#808}
.CodeRay .key .delimiter{color:#606}
.CodeRay .key .char{color:#80f}
.CodeRay .value{color:#088}
.CodeRay .regexp .delimiter{color:#808}
.CodeRay .regexp .content{color:#808}
.CodeRay .regexp .modifier{color:#808}
.CodeRay .regexp .char{color:#d14}
.CodeRay .regexp .function{color:#404;font-weight:bold}
.CodeRay .string{color:#d20}
.CodeRay .string .string .string{background:#ffd0d0}
.CodeRay .string .content{color:#d14}
.CodeRay .string .char{color:#d14}
.CodeRay .string .delimiter{color:#d14}
.CodeRay .shell{color:#d14}
.CodeRay .shell .delimiter{color:#d14}
.CodeRay .symbol{color:#990073}
.CodeRay .symbol .content{color:#a60}
.CodeRay .symbol .delimiter{color:#630}
.CodeRay .tag{color:#008080}
.CodeRay .tag-special{color:#d70}
.CodeRay .variable{color:#036}
.CodeRay .insert{background:#afa}
.CodeRay .delete{background:#faa}
.CodeRay .change{color:#aaf;background:#007}
.CodeRay .head{color:#f8f;background:#505}
.CodeRay .insert .insert{color:#080}
.CodeRay .delete .delete{color:#800}
.CodeRay .change .change{color:#66f}
.CodeRay .head .head{color:#f4f}
</style>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  messageStyle: "none",
  tex2jax: {
    inlineMath: [["\\(", "\\)"]],
    displayMath: [["\\[", "\\]"]],
    ignoreClass: "nostem|nolatexmath"
  },
  asciimath2jax: {
    delimiters: [["\\$", "\\$"]],
    ignoreClass: "nostem|noasciimath"
  },
  TeX: { equationNumbers: { autoNumber: "none" } }
})
MathJax.Hub.Register.StartupHook("AsciiMath Jax Ready", function () {
  MathJax.InputJax.AsciiMath.postfilterHooks.Add(function (data, node) {
    if ((node = data.script.parentNode) && (node = node.parentNode) && node.classList.contains('stemblock')) {
      data.math.root.display = "block"
    }
    return data
  })
})
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_HTMLorMML"></script>
<!--
  Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation

  See the NOTICE file(s) distributed with this work for additional
  information regarding copyright ownership.

  This program and the accompanying materials are made available under the terms
  of the MIT License which is available at https://opensource.org/licenses/MIT

  SPDX-License-Identifier: MIT
-->

<div id="footer">
<div id="footer-text">
<a href="https://www.eclipse.org">Eclipse Home</a>
|
<a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a>
|
<a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a>
|
<a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a>
|
<a href="https://www.eclipse.org/legal">Eclipse Legal</a>
</div>
</div>
</body>
</html>