<!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.12">
<meta name="author" content="Copyright (c) 2010, 2021 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;word-wrap:anywhere;-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%}
.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}
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;word-wrap:normal}
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{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}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre).nobreak{word-wrap:normal}
:not(pre).nowrap{white-space:nowrap}
:not(pre).pre-wrap{white-space:pre-wrap}
: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}
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:none;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);word-wrap:anywhere}
.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;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}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>*>tr>*{border-width:1px}
table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-rows>*>tr>*{border-width:1px 0}
table.frame-all{border-width:1px}
table.frame-ends{border-width:1px 0}
table.frame-sides{border-width:0 1px}
table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width: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{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}
td.hdlist2{word-wrap:anywhere}
.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:50%;border-radius:50%;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}
#header,#content,#footnotes,#footer{max-width:none}
#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, 2021 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, 2021 Contributors to the Eclipse Foundation</span><br>
<span id="revnumber">version 0.1.0.20210318-080652</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">Version 0.1</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 Eclipse ESCET&#8482; project. Visit the
<a href="https://eclipse.org/escet">project website</a> for downloads,
installation instructions, source code, general tool usage information,
information on how to contribute, and more.</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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">disc dict(string:int) age = {"eve": 32, "john": 34, "adam": 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="highlight"><code class="language-cif" data-lang="cif">disc dict(string:int) age = {"eve":  32,
                             "john": 34,
                             "adam": 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">disc dict(string:int) age = {"adam": 25, "eve": 32, "john": 34};
disc int i;

edge ... do i := age["adam"];   // 'i' becomes '25'
edge ... do i := age["eve"];    // 'i' becomes '32'
edge ... do i := age["carl"];   // error (there is no "carl" 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="highlight"><code class="language-cif" data-lang="cif">disc dict(string:int) age = {"adam": 25, "eve": 32, "john": 34};

edge ... do age["eve"] := 33;  // Changes eve's age.
edge ... do age["bob"] := 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="highlight"><code class="language-cif" data-lang="cif">{"a": 1, "b": 2} = {"b": 2, "a": 1}     // true (equality check)
{"a": 1, "b": 2} = {"a": 1, "b": 3}     // false

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

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

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

empty({"a": 1, "b": 2})                 // false (empty check)
size({"a": 1, "b": 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">// consumer.cif

import "producer.cif";

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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">// counter.cif

import "math.cif";

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="highlight"><code class="language-cif" data-lang="cif">// counter.cif

import "libraries/math.cif";

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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">// factory.cif

import "p1.cif";
import "p2.cif";
import "p3.cif";
import "p4.cif";</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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">"hello world"
"first line\nsecond line"</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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-bnf" data-lang="bnf">Specification : GroupBody
              ;

GroupBody : OptGroupDecls
          ;

AutomatonBody : OptAutDecls Locations OptIoDecls
              ;

OptGroupDecls : /* empty */
              | OptGroupDecls GroupDecl
              ;

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

OptAutDecls : /* empty */
            | OptAutDecls AutDecl
            ;

AutDecl : Decl
        | "alphabet" Events ";"
        | "alphabet" ";"
        | "monitor" Events ";"
        | "monitor" ";"
        | "disc" Type DiscDecls ";"
        ;

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

Identifier : IDENTIFIERTK
           ;

Imports : StringToken
        | Imports "," StringToken
        ;

StringToken : STRINGTK
            ;

TypeDefs : Identifier "=" Type
         | TypeDefs "," Identifier "=" Type
         ;

ConstantDefs : Identifier "=" Expression
             | ConstantDefs "," Identifier "=" Expression
             ;

AlgVarsDefs : Identifier
            | Identifier "=" Expression
            | AlgVarsDefs "," Identifier
            | AlgVarsDefs "," Identifier "=" Expression
            ;

FuncParams : "(" ")"
           | "(" FuncParamDecls ")"
           ;

FuncParamDecls : Type Identifiers
               | FuncParamDecls ";" Type Identifiers
               ;

FuncBody : FuncVarDecls FuncStatements "end"
         | StringToken ";"
         ;

FuncVarDecls : /* empty */
             | FuncVarDecls Type FuncVarDecl ";"
             ;

FuncVarDecl : Identifier
            | Identifier "=" Expression
            | FuncVarDecl "," Identifier
            | FuncVarDecl "," Identifier "=" Expression
            ;

FuncStatements : FuncStatement
               | FuncStatements FuncStatement
               ;

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

OptElifFuncStats : /* empty */
                 | OptElifFuncStats "elif" Expressions ":" FuncStatements
                 ;

OptElseFuncStat : /* empty */
                | "else" FuncStatements
                ;

Events : Name
       | Events "," Name
       ;

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

OptEdgeGuard : /* empty */
             | "when" Expressions
             ;

OptEdgeUrgent : /* empty */
              | "now"
              ;

OptEdgeUpdate : /* empty */
              | "do" Updates
              ;

EdgeEvents : EdgeEvent
           | EdgeEvents "," EdgeEvent
           ;

EdgeEvent : "tau"
          | Name
          | Name "!"
          | Name "!" Expression
          | Name "?"
          ;

Locations : Location
          | Locations Location
          ;

Location : "location" ";"
         | "location" Identifier ";"
         | "location" ":" LocationElements
         | "location" Identifier ":" LocationElements
         ;

LocationElements : LocationElement
                 | LocationElements LocationElement
                 ;

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

ActualParms : "(" ")"
            | "(" Expressions ")"
            ;

FormalParms : "(" ")"
            | "(" FormalDecls ")"
            ;

FormalDecls : FormalDeclaration
            | FormalDecls ";" FormalDeclaration
            ;

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

EventParamIds : EventParamId
              | EventParamIds "," EventParamId
              ;

EventParamId : Identifier OptEventParamFlags
             ;

OptEventParamFlags : /* empty */
                   | OptEventParamFlags EventParamFlag
                   ;

EventParamFlag : "!"
               | "?"
               | "~"
               ;

DiscDecls : DiscDecl
          | DiscDecls "," DiscDecl
          ;

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

ContDecls : ContDecl
          | ContDecls "," ContDecl
          ;

ContDecl : Identifier OptDerivative
         | Identifier "=" Expression OptDerivative
         ;

OptDerivative : /* empty */
              | "der" Expression
              ;

Equations : Equation
          | Equations "," Equation
          ;

Equation : Identifier "'" "=" Expression
         | Identifier "=" Expression
         ;

InvariantDecls : OptSupKind "invariant" Invariants ";"
               |    SupKind             Invariants ";"
               ;

Invariants : Invariant
           | Invariants "," Invariant
           ;

Invariant : Expression
          | Name                  "needs"    Expression
          | NonEmptySetExpression "needs"    Expression
          | Expression            "disables" Name
          | Expression            "disables" NamesSet
          ;

NamesSet : "{" Names "}"
         ;

Names : Name
      | Names "," Name
      ;

Updates : Update
        | Updates "," Update
        ;

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

Addressables : Addressable
             | Addressables "," Addressable
             ;

Addressable : Identifier
            | Identifier Projections
            | "(" Addressable "," Addressables ")"
            ;

Projections : Projection
            | Projections Projection
            ;

Projection : "[" Expression "]"
           ;

OptElifUpdates : /* empty */
               | OptElifUpdates "elif" Expressions ":" Updates
               ;

OptElseUpdate : /* empty */
              | "else" Updates
              ;

Identifiers : Identifier
            | Identifiers "," Identifier
            ;

OptSupKind : /* empty */
           | SupKind
           ;

OptControllability : /* empty */
                   | Controllability
                   ;

Controllability : "controllable"
                | "uncontrollable"
                ;

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

OptIoDecls : /* empty */
           | OptIoDecls IoDecl
           ;

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

SvgFile : "svgfile" StringToken ";"
        ;

OptSvgFile : /* empty */
           | "file" StringToken
           ;

SvgCopy : "svgcopy" "id" Expression OptSvgCopyPre OptSvgCopyPost OptSvgFile ";"
        ;

OptSvgCopyPre : /* empty */
              | "pre" Expression
              ;

OptSvgCopyPost : /* empty */
               | "post" Expression
               ;

SvgMove : "svgmove" "id" Expression "to" Expression "," Expression
          OptSvgFile ";"
        ;

SvgOut : "svgout" "id" Expression SvgAttr "value" Expression OptSvgFile
         ";"
       ;

SvgAttr : "attr" StringToken
        | "text"
        ;

SvgIn : "svgin" "id" Expression "event" SvgInEvent OptSvgFile ";"
      ;

SvgInEvent : Name
           | "if" Expression ":" Name OptSvgInEventElifs "else" Name "end"
           | "if" Expression ":" Name SvgInEventElifs "end"
           ;

OptSvgInEventElifs : /* empty */
                   | SvgInEventElifs
                   ;

SvgInEventElifs : "elif" Expression ":" Name
                | SvgInEventElifs "elif" Expression ":" Name
                ;

PrintFile : "printfile" StringToken ";"
          ;

Print : "print" PrintTxt OptPrintFors OptPrintWhen OptPrintFile ";"
      ;

PrintTxt : Expression
         | "pre" Expression
         | "post" Expression
         | "pre" Expression "post" Expression
         ;

OptPrintFors : /* empty */
             | "for" PrintFors
             ;

PrintFors : PrintFor
          | PrintFors "," PrintFor
          ;

PrintFor : "event"
         | "time"
         | Name
         | "initial"
         | "final"
         ;

OptPrintWhen : /* empty */
             | "when" Expression
             | "when" "pre" Expression
             | "when" "post" Expression
             | "when" "pre" Expression "post" Expression
             ;

OptPrintFile : /* empty */
             | "file" StringToken
             ;

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

Types : Type
      | Types "," Type
      ;

EventType : "void"
          | Type
          ;

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

Fields : Field
       | Fields ";" Field
       ;

Field : Type Identifiers
      ;

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

Expressions : Expression
            | Expressions "," Expression
            ;

OptExpression : /* empty */
              | Expression
              ;

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

OrExpression : AndExpression
             | OrExpression "or" AndExpression
             ;

AndExpression : CompareExpression
              | AndExpression "and" CompareExpression
              ;

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

AddExpression : MulExpression
              | AddExpression "+" MulExpression
              | AddExpression "-" MulExpression
              ;

MulExpression : UnaryExpression
              | MulExpression "*" UnaryExpression
              | MulExpression "/" UnaryExpression
              | MulExpression "div" UnaryExpression
              | MulExpression "mod" UnaryExpression
              ;

UnaryExpression : FuncExpression
                | "-" UnaryExpression
                | "+" UnaryExpression
                | "not" UnaryExpression
                | "sample" FuncExpression
                ;

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

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

NonEmptySetExpression : "{" Expressions "}"
                      ;

DictPairs : Expression ":" Expression
          | DictPairs "," Expression ":" Expression
          ;

OptElifExprs : /* empty */
             | OptElifExprs "elif" Expressions ":" Expression
             ;

SwitchBody : SwitchCases
           | SwitchCases "else" Expression
           |             "else" Expression
           ;

SwitchCases : "case" Expression ":" Expression
            | SwitchCases "case" Expression ":" Expression
            ;

Name : Identifier
     | RELATIVENAMETK
     | ABSOLUTENAMETK
     | ROOTNAMETK
     ;

SupKind : "plant"
        | "requirement"
        | "supervisor"
        ;

StdLibFunction : "acosh"
               | "acos"
               | "asinh"
               | "asin"
               | "atanh"
               | "atan"
               | "cosh"
               | "cos"
               | "sinh"
               | "sin"
               | "tanh"
               | "tan"
               | "abs"
               | "cbrt"
               | "ceil"
               | "del"
               | "empty"
               | "exp"
               | "floor"
               | "fmt"
               | "ln"
               | "log"
               | "max"
               | "min"
               | "pop"
               | "pow"
               | "round"
               | "scale"
               | "sign"
               | "size"
               | "sqrt"
               | "bernoulli"
               | "beta"
               | "binomial"
               | "constant"
               | "erlang"
               | "exponential"
               | "gamma"
               | "geometric"
               | "lognormal"
               | "normal"
               | "poisson"
               | "random"
               | "triangle"
               | "uniform"
               | "weibull"
               ;</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 macOS.</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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-tooldef" data-lang="tooldef">from "lib:cif" import *;

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

rmfile("out.txt", force=true);

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

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

outln("Minimum: %.2f", minimum);
outln("Maximum: %.2f", 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="highlight"><code class="language-console" 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="highlight"><code class="language-console" 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="highlight"><code class="language-console" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">svgin id "button" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">svgin id "button" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">printfile "out.txt";

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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" data-lang="cif">print cnt     file "a.txt";
print cnt * 2 file "b.txt";</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="highlight"><code class="language-cif" data-lang="cif">printfile "ab.txt";
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="highlight"><code class="language-cif" data-lang="cif">print if cnt mod 2 = 0: "even" else "odd" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">print "header" for initial;
print "footer" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-console" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">print "Time=" + &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="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="highlight"><code class="language-cif" data-lang="cif">print fmt("Time=%s", 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="highlight"><code class="language-cif" data-lang="cif">print fmt("Time=%.2f", 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="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="highlight"><code class="language-cif" data-lang="cif">print fmt("%.2f %.2f %.2f", 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="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="highlight"><code class="language-cif" data-lang="cif">print fmt("%10.2f %10.2f %10.2f", 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="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="highlight"><code class="language-cif" data-lang="cif">print fmt("%.2f", 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="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="highlight"><code class="language-cif" data-lang="cif">print fmt("%,.2f", 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="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="highlight"><code class="language-cif" data-lang="cif">print fmt("%-10.2d %-10.2d %-10.2d", 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="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="highlight"><code class="language-cif" data-lang="cif">print fmt("%-+10.2d %-+10.2d %-+10.2d", 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="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="highlight"><code class="language-cif" data-lang="cif">print fmt("%- 10.2d %- 10.2d %- 10.2d", 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="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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">print "a";
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="highlight"><code class="language-cif" data-lang="cif">print ["a\"b"];
print "a\"b";</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="highlight"><code class="language-console" data-lang="console">["a\"b"]
a"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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">print "a";
print "b" when aut.loc;
print "c" when pre aut.loc;
print "d" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">print ... file "txt_files/some_file.txt";
print ... file "../files/some_file.txt";</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="highlight"><code class="language-cif" data-lang="cif">printfile "some_file.txt";</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="highlight"><code class="language-cif" data-lang="cif">printfile "txt_files/some_file.txt";
printfile "../files/some_file.txt";</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="highlight"><code class="language-cif" data-lang="cif">printfile "file1.txt";

print 5;
print 6 file "file2.txt";

group g:
  printfile "file3.txt";

  print 7;
  print 8;
  print 9 file "file4.txt";

  group h:
    printfile "file5.txt";
  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="highlight"><code class="language-cif" data-lang="cif">print 5 file "some_file.txt";
print 6 file "some_file.txt";</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="highlight"><code class="language-cif" data-lang="cif">fmt("%s %s", 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="highlight"><code class="language-cif" data-lang="cif">fmt("%s %.2e", 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="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="highlight"><code class="language-cif" data-lang="cif">fmt("%s %1$s %3$f %d %f %1$s", 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="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="highlight"><code class="language-cif" data-lang="cif">fmt("%b", b);       // true
fmt("%B", b);       // TRUE
fmt("_%10b_", b);   // _      true_
fmt("_%-10b_", 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="highlight"><code class="language-cif" data-lang="cif">fmt("%d", x);           // 12345
fmt("%,d", x);          // 12,345
fmt("_%10d_", x);       // _     12345_
fmt("_%-10d_", x);      // _12345     _
fmt("_%0,10d_", x);     // _000012,345_
fmt("_%- 10d_", x);     // _ 12345    _
fmt("_%- 10d_", y);     // _-2345     _
fmt("_%-+10d_", x);     // _+12345    _
fmt("_%-+10d_", y);     // _-2345     _
fmt("_%3d_", 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="highlight"><code class="language-cif" data-lang="cif">fmt("%x", a);           // 15a7
fmt("0x%x", a);         // 0x15a7
fmt("0x%X", a);         // 0x15A7
fmt("0x%X", b);         // 0xFFFFFFFF
fmt("_%10x_", a);       // _      15a7_
fmt("_%-10x_", a);      // _15a7      _
fmt("_%3x_", 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="highlight"><code class="language-cif" data-lang="cif">fmt("%e", a);           // 1.234568e+04
fmt("%E", a);           // 1.234568E+04
fmt("%.3e", a);         // 1.235e+04
fmt("%.3e", b);         // -2.346e-05
fmt("_%20e_", a);       // _        1.234568e+04_
fmt("_%-20e_", a);      // _1.234568e+04        _
fmt("_%5e_", a);        // _1.234568e+04_
fmt("_%020e_", a);      // _000000001.234568e+04_
fmt("_%-+20e_", a);     // _+1.234568e+04       _
fmt("_%-+20e_", b);     // _-2.345678e-05       _
fmt("_%- 20e_", a);     // _ 1.234568e+04       _
fmt("_%- 20e_", 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="highlight"><code class="language-cif" data-lang="cif">fmt("%f", a);           // 12345.678900
fmt("%f", b);           // -0.000023
fmt("%.3f", a);         // 12345.679
fmt("_%20f_", a);       // _        12345.678900_
fmt("_%-20f_", a);      // _12345.678900        _
fmt("_%-,20f_", a);     // _12,345.678900       _
fmt("_%5f_", a);        // _12345.678900_
fmt("_%020f_", a);      // _0000000012345.678900_
fmt("_%-+20f_", a);     // _+12345.678900       _
fmt("_%-+20f_", b);     // _-0.000023           _
fmt("_%- 20f_", a);     // _ 12345.678900       _
fmt("_%- 20f_", 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="highlight"><code class="language-cif" data-lang="cif">fmt("%g", a);           // 12345.7
fmt("%g", b);           // -2.34568e-05
fmt("%G", b);           // -2.34568E-05
fmt("%.3g", a);         // 1.23e+04
fmt("_%20g_", a);       // _             12345.7_
fmt("_%-20g_", a);      // _12345.7             _
fmt("_%-,20g_", a);     // _12,345.7            _
fmt("_%5g_", a);        // _12345.7_
fmt("_%020g_", a);      // _000000000000012345.7_
fmt("_%-+20g_", a);     // _+12345.7            _
fmt("_%-+20g_", b);     // _-2.34568e-05        _
fmt("_%- 20g_", a);     // _ 12345.7            _
fmt("_%- 20g_", 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="highlight"><code class="language-cif" data-lang="cif">fmt("%s", x);       // aBcD
fmt("%S", x);       // ABCD
fmt("_%10s_", x);   // _      aBcD_
fmt("_%-10s_", 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="highlight"><code class="language-cif" data-lang="cif">fmt("a %s b", ("some \\ text", 6));     // a ("some \\ text", 6) b
fmt("a %s b", "some \\ text");          // 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="highlight"><code class="language-cif" data-lang="cif">fmt("a %s b", 1 / 3);       // a 0.3333333333333333 b
fmt("c %s d", 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="highlight"><code>a"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="highlight"><code class="language-cif" data-lang="cif">svgfile "lamp.svg";

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 "lamp" attr "fill" value if Off: "gray" else "yellow" 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="highlight"><code class="language-tooldef" data-lang="tooldef">from "lib:cif" import *;

cifsim(
    "lamp.cif",
    "-t 10",
    "-i auto",
    "--frame-rate=20",
);</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, macOS, 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="highlight"><code class="language-console" data-lang="console">ERROR: SVG image file "some_image.svg" 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="highlight"><code class="language-cif" data-lang="cif">svgfile "some_file.svg";</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="highlight"><code class="language-cif" data-lang="cif">svgfile "svg_files/some_file.svg";
svgfile "../images/some_file.svg";</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="highlight"><code class="language-cif" data-lang="cif">svgfile "file1.svg";

svgout id "a" attr "b" value 5;

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

group g:
  svgfile "file3.svg";

  svgout id "e" attr "f" value 7;

  svgout id "g" attr "h" value 8;

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

  group h:
    svgfile "file5.svg";
  end

  group i:
    svgout id "k" attr "l" 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="highlight"><code class="language-cif" data-lang="cif">svgout id "..." attr "..." value 5 file "some_file.svg";

svgout id "..." attr "..." value 6 file "some_file.svg";</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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">svgout id "box" attr "x" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">// Hard coded SVG element id.
svgout id "box" attr "width" value ...;

// Computed SVG element id.
const string c = "bo";
svgout id c + "x" attr "width" 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="highlight"><code class="language-svg" data-lang="svg">&lt;rect fill="red"        id="rect1" width="25" height="25" x="65" y="5"/&gt;
&lt;rect style="fill:red;" id="rect2" width="25" height="25" x="15" y="5"/&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="highlight"><code class="language-svg" data-lang="svg">&lt;text x="5" y="5" id="text1" style="font-size:16px;"&gt;
  &lt;tspan x="5" y="5" id="tspan2"&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="highlight"><code class="language-cif" data-lang="cif">svgout id "text1" text value ...;

svgout id "tspan2" 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="highlight"><code class="language-cif" data-lang="cif">svgout id "..." attr "..." value ["a\"b"];
svgout id "..." attr "..." value "a\"b";</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="highlight"><code class="language-console" data-lang="console">["a\"b"]
a"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="highlight"><code class="language-svg" data-lang="svg">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="250" height="250" id="root" version="1.1"&gt;
  &lt;rect style="fill:red;"   id="rect"  width="100" height="100" x="20" y="20"/&gt;
  &lt;g id="grp"&gt;
    &lt;rect style="fill:green;" id="rect2" width="100" height="100" x="50" y="50"/&gt;
  &lt;/g&gt;
  &lt;rect style="fill:blue;"  id="rect3" width="100" height="100" x="80" y="80"/&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="highlight"><code class="language-cif" data-lang="cif">svgfile "svgcopy.svg";

svgcopy id "rect" pre "a";
svgcopy id "grp" post "b";
svgcopy id "rect3" pre "_" post "x";</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="highlight"><code class="language-svg" data-lang="svg">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="250" height="250" id="root" version="1.1"&gt;
  &lt;rect style="fill:red;"   id="arect"   width="100" height="100" x="20" y="20"/&gt;
  &lt;rect style="fill:red;"   id="rect"    width="100" height="100" x="20" y="20"/&gt;
  &lt;g id="grpb"&gt;
    &lt;rect style="fill:green;" id="rect2b" width="100" height="100" x="50" y="50"/&gt;
  &lt;/g&gt;
  &lt;g id="grp"&gt;
    &lt;rect style="fill:green;" id="rect2" width="100" height="100" x="50" y="50"/&gt;
  &lt;/g&gt;
  &lt;rect style="fill:blue;"  id="_rect3x" width="100" height="100" x="80" y="80"/&gt;
  &lt;rect style="fill:blue;"  id="rect3"   width="100" height="100" x="80" y="80"/&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="highlight"><code class="language-cif" 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 "...";</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="highlight"><code class="language-svg" data-lang="svg">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="250" height="250" id="root" version="1.1"&gt;
  &lt;rect style="fill:red;"   id="rect"  width="100" height="100" x="20" y="20"/&gt;
  &lt;g id="grp"&gt;
    &lt;rect style="fill:green;" id="rect2" width="100" height="100" x="50" y="50"/&gt;
  &lt;/g&gt;
  &lt;rect style="fill:blue;"  id="rect3" width="100" height="100" x="80" y="80"/&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="highlight"><code class="language-cif" data-lang="cif">svgcopy id "rect" post "2";</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="highlight"><code class="language-cif" data-lang="cif">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="250" height="250" id="root" version="1.1"&gt;
  &lt;g id="g"&gt;
    &lt;rect style="fill:green;" id="r" width="100" height="100" x="50" y="50"/&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="highlight"><code class="language-cif" data-lang="cif">svgcopy id "g" post "a";
svgcopy id "r" post "b";</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="highlight"><code class="language-cif" data-lang="cif">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="250" height="250" id="root" version="1.1"&gt;
  &lt;g id="ga"&gt;
    &lt;rect style="fill:green;" id="ra" width="100" height="100" x="50" y="50"/&gt;
  &lt;/g&gt;
  &lt;g id="g"&gt;
    &lt;rect style="fill:green;" id="rb" width="100" height="100" x="50" y="50"/&gt;
    &lt;rect style="fill:green;" id="r" width="100" height="100" x="50" y="50"/&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="highlight"><code class="language-cif" data-lang="cif">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="250" height="250" id="root" version="1.1"&gt;
  &lt;g id="ga"&gt;
    &lt;rect style="fill:green;" id="rba" width="100" height="100" x="50" y="50"/&gt;
    &lt;rect style="fill:green;" id="ra" width="100" height="100" x="50" y="50"/&gt;
  &lt;/g&gt;
  &lt;g id="g"&gt;
    &lt;rect style="fill:green;" id="rb" width="100" height="100" x="50" y="50"/&gt;
    &lt;rect style="fill:green;" id="r" width="100" height="100" x="50" y="50"/&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="highlight"><code class="language-cif" data-lang="cif">svgcopy id "g" post "a";
svgcopy id "ra" post "b";</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="highlight"><code class="language-cif" data-lang="cif">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="250" height="250" id="root" version="1.1"&gt;
  &lt;g id="ga"&gt;
    &lt;rect style="fill:green;" id="rab" width="100" height="100" x="50" y="50"/&gt;
    &lt;rect style="fill:green;" id="ra" width="100" height="100" x="50" y="50"/&gt;
  &lt;/g&gt;
  &lt;g id="g"&gt;
    &lt;rect style="fill:green;" id="r" width="100" height="100" x="50" y="50"/&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="highlight"><code class="language-svg" data-lang="svg">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="400" height="400" id="root" version="1.1"&gt;
  &lt;g id="grp1"&gt;
    &lt;rect style="fill:green;" id="rect1" width="20" height="20" x="5" y="10"
          transform="translate(15, 20)"/&gt;
  &lt;/g&gt;
  &lt;g id="grp2" transform="scale(5, 2)"&gt;
    &lt;rect style="fill:blue;" id="rect2" width="20" height="20" x="5" y="10"
          transform="translate(15, 20)"/&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="highlight"><code class="language-cif" data-lang="cif">svgfile "svgmove.svg";

svgmove id "rect1" to 10, 10;
svgmove id "rect2" 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="highlight"><code class="language-svg" data-lang="svg">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="400" height="400" id="root" version="1.1"&gt;
  &lt;g id="grp1"&gt;
    &lt;rect style="fill:green;" id="rect1" width="20" height="20" x="5" y="10"
          transform="translate(15, 20) translate(-10.000000,-20.000000)"/&gt;
  &lt;/g&gt;
  &lt;g id="grp2" transform="scale(5, 2)"&gt;
    &lt;rect style="fill:blue;" id="rect2" width="20" height="20" x="5" y="10"
          transform="translate(15, 20) translate(-18.000000,-5.000000)"/&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="highlight"><code class="language-cif" 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 "...";</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="highlight"><code class="language-console" data-lang="console">SVG output ("some_file.svg") id "a" text: "10.00"
SVG output ("some_file.svg") id "b" text: "0.0"
SVG output ("some_file.svg") id "c" text: "3.16"
SVG output ("some_file.svg") id "n" attr "fill" (CSS attr): "#ff0000"
SVG output ("some_file.svg") id "water" attr "height" (SVG attr): "75.0"
SVG output ("some_file.svg") id "water" attr "y" (SVG attr): "104.5"</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="highlight"><code class="language-console" data-lang="console">SVG input ("some_file.svg") id "button": event "button.u_pushed"
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="highlight"><code class="language-console" data-lang="console">SVG copy ("some_file.svg") id "button" post "1".
SVG copy ("some_file.svg") id "button" post "2".

SVG move ("some_file.svg") id "button1" to 10.0, 10.0.
SVG move ("some_file.svg") id "button2" 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="highlight"><code class="language-console" data-lang="console">ERROR: Simulation resulted in a runtime error.
CAUSE: Evaluation of the SVG output mapping ("some_file.svg") for the text of the SVG element with id "txt1" failed for state: time=0.0, x=-1.5265566588595902e-16.
CAUSE: Evaluation of SVG output mapping value "sqrt(x)" 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="highlight"><code class="language-cif" data-lang="cif">svgfile "sun_moon.svg";

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 "sun" attr "visibility"
    value if Day: "visible" else "hidden" end;

  svgout id "moon" attr "visibility"
    value switch self:
      case Day:   "hidden"
      case Night: "visible"
    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="highlight"><code class="language-cif" 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 "walk_floor.svg";

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

svgout id "pos_txt" text
  value fmt("%.1f%%", 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="highlight"><code class="language-cif" 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 "walk_room.svg";

// 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 "person" attr "transform"
  value fmt("translate(%s,%s)", 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="highlight"><code class="language-cif" 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 "rate.svg";

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

svgout id "circle_bg_rect" attr "fill" value "white";</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="highlight"><code class="language-cif" data-lang="cif">svgfile "workstation.svg";

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 "m" + &lt;string&gt;nr + "_bar_front" attr "width"
    value scale(if processing: t else ptime end, 0, ptime, 0, 130);

  svgout id "m" + &lt;string&gt;nr + "_bar_front" attr "fill"
    value if idle : "gray" else "dodgerblue" 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="highlight"><code class="language-cif" 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 "tank.svg";

svgout id "water" attr "height" 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="highlight"><code class="language-cif" 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 "lamps2.svg";

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

svgout id "lamp1" attr "stroke-width" value if lamp1.on: 5 else 2 end;
svgout id "lamp2" attr "stroke-width" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">svgfile "lamps3.svg";

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

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

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

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

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

  svgout id "lamp" + &lt;string&gt;nr attr "stroke-width"
    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="highlight"><code class="language-cif" data-lang="cif">automaton lamp1:
  event toggle;
  disc bool on = false;
  svgcopy id "lamp" post "1";
  svgmove id "lamp1" to 20, 20;
  svgout id "lamp1" attr "fill" value if on: "yellow" else "silver" end;
  svgout id "lamp1" attr "stroke-width" 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 "lamp" post "2";
  svgmove id "lamp2" to 120, 20;
  svgout id "lamp2" attr "fill" value if on: "yellow" else "silver" end;
  svgout id "lamp2" attr "stroke-width" 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 "lamp" post "3";
  svgmove id "lamp3" to 220, 20;
  svgout id "lamp3" attr "fill" value if on: "yellow" else "silver" end;
  svgout id "lamp3" attr "stroke-width" value if on: 5 else 2 end;
  location:
    initial;
    edge toggle do on := not on;
end
svgfile "lamps3.svg";</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="highlight"><code class="language-svg" data-lang="svg">&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg"
     xmlns:svg="http://www.w3.org/2000/svg"
     width="220" height="70" id="root" version="1.1"&gt;
  &lt;g id="buffer"&gt;
    &lt;rect width="100" height="50" x="-120" y="10" id="background" style="fill:#ff0000"/&gt;
    &lt;rect width="10"  height="30" x="-110" y="20" id="product"    style="fill:#8b0000;visibility:hidden;"/&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="highlight"><code class="language-cif" data-lang="cif">svgfile "buffers_products.svg";

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

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

  svgmove id "buffer" + &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 "product" + &lt;string&gt;bufferNr post "_" + &lt;string&gt;productNr;

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

  svgout id fmt("product%d_%d", bufferNr, productNr)
         attr "visibility"
         value "visible";
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="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="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="highlight"><code class="language-cif" 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="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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">func real f1(real x): "java:java.lang.Math.expm1";

func int f2(bool x): "java:pkg.Cls.method|../some.jar;bin";</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="highlight"><code class="language-console" 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="highlight"><code class="language-console" data-lang="console">ERROR: Simulation resulted in a runtime error, for state: time=0.0, x=1.0.
CAUSE: Requested time point "1.6000000000000005" is "2.0" ulps (1 ulp = 2.220446049250313e-16) away from the closest time point in the trajectories "1.6", which is farther away than the maximum tolerance of "1" 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="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="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="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="highlight"><code class="language-cif" 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="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="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="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="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="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="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="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="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="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="highlight"><code class="language-shell" 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="highlight"><code class="language-c" data-lang="c">&lt;prefix&gt;_EngineFirstStep(void)</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="highlight"><code class="language-c" data-lang="c">&lt;prefix&gt;_EngineTimeStep(double 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="highlight"><code class="language-c" data-lang="c">&lt;prefix&gt;_AssignInputVariables(void)</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="highlight"><code class="language-c" 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="highlight"><code class="language-c" data-lang="c">&lt;prefix&gt;_PrintOutput(const char *line, const char *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="highlight"><code class="language-shell" 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="highlight"><code class="language-c" data-lang="c">&lt;prefix&gt;_EngineFirstStep(void)</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="highlight"><code class="language-c" data-lang="c">&lt;prefix&gt;_EngineTimeStep(double 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="highlight"><code class="language-c" data-lang="c">&lt;prefix&gt;_AssignInputVariables(void)</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="highlight"><code class="language-c" 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="highlight"><code class="language-c" data-lang="c">&lt;prefix&gt;_PrintOutput(const char *line, const char *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="highlight"><code class="language-java" data-lang="java">public void execOnce(double 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="highlight"><code class="language-java" data-lang="java">public void exec(long 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="highlight"><code class="language-java" data-lang="java">protected void 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="highlight"><code class="language-java" data-lang="java">protected void 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="highlight"><code class="language-java" data-lang="java">protected void 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="highlight"><code class="language-java" data-lang="java">protected void infoExec(long duration, long 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="highlight"><code class="language-java" data-lang="java">protected void infoEvent(int idx, boolean 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="highlight"><code class="language-java" data-lang="java">protected void infoPrintOutput(String text, String 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="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="highlight"><code class="language-shell" 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="highlight"><code class="language-console" data-lang="console">WARNING: PLC variable "elit_WaitForTimeout" is renamed to "elit_WaitForTimeout2".</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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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: "first"
                   case l2: "second"
                 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="highlight"><code class="language-cif" 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: "first"
                 else   "second"
                 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">automaton a:
  alg string x = "*";

  location:
    initial;
end

automaton b:
  alg string x = if   l1: "l1"
                 elif l2: "l2"
                 else     "l3"
                 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">printfile "out1.txt";

print 5;
print 6 file "out2.txt";

group g:
  printfile "out3.txt";

  print 7;
  print 8;
  print 9 file "out4.txt";

  group h:
    printfile "out5.txt";
  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="highlight"><code class="language-cif" data-lang="cif">print 5 file "out1.txt";
print 6 file "out2.txt";

group g:
  print 7 file "out3.txt";
  print 8 file "out3.txt";
  print 9 file "out4.txt";

  group h:
  end

  group i:
    print 10 file "out3.txt";
  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="highlight"><code class="language-cif" data-lang="cif">svgfile "file1.svg";

svgout id "a" attr "b" value 5;

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

group g:
  svgfile "file3.svg";

  svgout id "e" attr "f" value 7;

  svgout id "g" attr "h" value 8;

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

  group h:
    svgfile "file5.svg";
  end

  group i:
    svgout id "k" attr "l" 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="highlight"><code class="language-cif" data-lang="cif">svgout id "a" attr "b" value 5 file "file1.svg";

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

group g:
  svgout id "e" attr "f" value 7 file "file3.svg";

  svgout id "g" attr "h" value 8 file "file3.svg";

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

  group h:
  end

  group i:
    svgout id "k" attr "l" value 10 file "file3.svg";
  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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">group x:
  input int y;
  invariant y = 1;
end</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" data-lang="cif">input int x;
alg int y = x;</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-cif" 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="highlight"><code class="language-cif" 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. See the <a href="https://eclipse.org/escet/tooldef">ToolDef website</a> for
more information on ToolDef.</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="highlight"><code class="language-tooldef" data-lang="tooldef">from "lib:cif" 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="highlight"><code class="language-tooldef" data-lang="tooldef">from "lib:cif" import *;

cifsim("some_model.cif -i auto -t 10");</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="highlight"><code class="language-tooldef" data-lang="tooldef">from "lib:cif" import *;

cifsim("-h");</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="highlight"><code class="language-tooldef" data-lang="tooldef">cifsim("some_model.cif -i auto -t 10");       // Single string, all arguments.
cifsim("some_model.cif", "-i auto", "-t 10"); // Multiple strings, multiple arguments each.
cifsim("some_model.cif", "-i", "auto", "-t", "10"); // 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="highlight"><code class="language-tooldef" data-lang="tooldef">from "lib:cif" import *;

cifsim(
    "some_model.cif",
    "-i auto",
    "-t 10",
);</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="highlight"><code class="language-tooldef" data-lang="tooldef">from "lib:cif" import *;

cifsim(
    "some_model.cif",
    "-i auto",
    // "-t 10",
);</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="highlight"><code class="language-tooldef" data-lang="tooldef">from "lib:cif" import *;

cifsim("some_model.cif -i auto -t 10", stdout="output.txt");</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="highlight"><code class="language-tooldef" data-lang="tooldef">tool int toolname(
            string... args,
            string stdin = "-",
            string stdout = "-",
            string stderr = "-",
            bool appendOut = false,
            bool appendErr = false,
            bool errToOut = false,
            bool ignoreNonZeroExitCode = false
)

tool int toolname(
            list string args = [],
            string stdin = "-",
            string stdout = "-",
            string stderr = "-",
            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="paragraph">
<p>See also the Eclipse ESCET
<a href="https://www.eclipse.org/escet/escet/#release-notes-chapter-index">toolkit release notes</a>
covering those aspects that are common to the various Eclipse ESCET tools.</p>
</div>
<div class="sect2">
<h3 id="version-0-1">Version 0.1</h3>
<div class="paragraph">
<p>The first release of CIF as part of the Eclipse ESCET project.
This release is based on the initial contribution by the Eindhoven University
of Technology (TU/e).</p>
</div>
<div class="paragraph">
<p>Most notable changes compared to the last TU/e release:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The names of the CIF command line tools and tools available in ToolDef
scripts have changed. For more information, check the list of
<a href="#tools-scripting-chapter-tools">currently available tools</a>.</p>
</li>
<li>
<p>The CIF simulator no longer crashes on code generation.</p>
</li>
<li>
<p>The CIF simulator plot visualizer has been re-implemented using different
third party libraries.</p>
</li>
</ul>
</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, 2021 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>
<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.9/MathJax.js?config=TeX-MML-AM_HTMLorMML"></script>
<!--
  Copyright (c) 2010, 2021 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>