Jekyll2023-11-21T08:57:36+00:00http://plug-obp.github.io/feed.xmlOBP2Studies on xDSL DynamicsPragmaDEV STUDIO V6 uses OBP2 for SDL model verification2022-06-23T00:00:00+00:002022-06-23T00:00:00+00:00http://plug-obp.github.io/news/2022/06/23/studio<p><a href="http://www.pragmadev.com/product/studio.html" target="_blank"><img src="/images/logo_studio.gif" alt="process" class="download" width="100px" /></a></p>
<p><a href="https://www.pragmadev.com/" target="_blank">PragmaDev</a> released the version V6.0 of <a href="http://www.pragmadev.com/product/studio.html" target="_blank">PragmaDev Studio</a>, a SDL modeling tool, which uses OBP2 for formal verification.
<!--more--></p>
<p>PragmaDev STUDIO is the best SDL modeling tool for the specification and the design of safe communicating software, cristalizing more than 20 years of industrial experience around the <a href="http://www.sdl-rt.org/" target="_blank">SDL-RT standard</a>. Besides improved standard compliance through the support of the new SDL-RT Broadcast feature, the new version of STUDIO integrates OBP2 verification engine as its primary backend for formal verification.</p>
<h2 id="property-verification">Property Verification</h2>
<p>The key characteristic of OBP2 verification engine is that it is not dependent on a specification language. But it relies on a third party executor to execute the model. In PragmaDev Studio V6 OBP2 is interacting with PragmaDev SDL executor to query the semantics. OBP2 does not actually know anything about the model it is exploring. The same principle applies for property verification, complex temporal properties are composed of local atomic proposition. These atomic propositions enable establishing a dialog between the formal verification engine and the STUDIO V6 SDL semantics, which drives the analysis of temporal logic properties.
This decoupled, API-based architecture of the OBP2 tool renders it particularly suited for integration with existing complex execution engines.
<img src="/images/ObpIntegrationArchitecture.png" alt="overview" /></p>
<p>To guide the verification efforts, PragmaDEV STUDIO V6 offers a number of state-space reduction axes, such as <em>constrained message parameters</em> and <em>variable hiding</em>.</p>
<h2 id="further-informations">Further informations</h2>
<p>PragmaDev Studio is free for small projects and education. For more informations do not hesitate to contact <a href="https://www.pragmadev.com/contact.html">PragmaDev</a></p>CiprianPragmaDev released the version V6.0 of PragmaDev Studio, a SDL modeling tool, which uses OBP2 for formal verification.ONEWAY Project2021-12-01T00:00:00+00:002021-12-01T00:00:00+00:00http://plug-obp.github.io/news/2021/12/01/oneway<p>The P4S Team of Lab-STICC & ENSTA Bretagne are proud to be a partner of the OneWay project, led by Airbus and supported by DGAC (the French Civil Aviation Authority), which aim to ensure digital continuity in the aeronautical sector. OBP2 plays an important role in the verification of the Product Development Plans expressed in BPMN.</p>
<!--more-->
<h3 id="modeling-capabilities-and-digital-analysis-of-a-product-development-plan">Modeling Capabilities and Digital Analysis of a Product Development Plan</h3>
<p>Against a fiercely competitive global economic backdrop, the aeronautical industry is one of France’s strengths. With a fabric of small, medium and large companies, the French aeronautics sector is the only one, along with the United States, that is fully capable of developing, producing and marketing civil and military aircraft. The French Government has developed a plan for supporting the aeronautics sector, designed to protect French expertise and know-how, while delivering the far-reaching changes needed to achieve the energy transition. The strategy is focused on the green transition and lowering carbon emissions in air transport.</p>
<p>The French aeronautical industry’s expertise on its products, programs and interactions within its value chain is widely recognized. For all that, it must contend with a growing number of challenges if it is to become more proficient in its design and development cycles and more efficient in its engineering activities and ensure that the performances of its products and support systems continually improve. It also needs to take technological innovations more swiftly on board and take advantage of the opportunities offered by new information technologies. Given these challenges, there is an inevitable need for radical changes to engineering methods within the French aeronautical industry, and this is where the ONEWAY project comes in.</p>
<p>The project began in May 2021, for an 18-month period, with a budget of €48m. It brought together 14 partners: Airbus, Dassault Aviation, Liebherr Aerospace, Safran Electrical & Power, Safran Aerotechnics, Thales, Altran Technologies, Cap Gemini, Sopra Steria, CIMPA, PragmaDEV, IMT Mines Ales, Université de Rennes 1 and ENSTA Bretagne.</p>
<p>ENSTA Bretagne helps to define a digital capacity for supporting decisions regarding launch, then control and management of a Product Development Plan (PDP). The PDP seeks to predict and control the best date for a product and its industrial system to be brought to the market, as well as the expected production ramp-up stage. This has become crucial for the competitiveness of the French aeronautical industry.</p>
<p>Thanks to the experience of ENSTA Bretagne’s Processes for Safe and Secure Software and Systems (P4S) team on federating complex software systems, the development of formal semantics and analytical algorithms, an equipped PDP modeling framework has been established. The tool developed allows for a detailed capture of the business specifics, industrial-scale simulation of the development process and validation of the models built through formal verification methods.</p>
<p>For ENSTA Bretagne, the two main implications in the ONEWAY project concern the formal verification and validation of the PDP. Project outcomes:</p>
<ul>
<li>Extension of the OBP2 model-checker with statistical exploration algorithms for massive testing on industry-derived models;</li>
<li>Improvement of the layer of expression of formal properties associated with the system requirements or Top Program Objectives;</li>
<li>Invention of a modular strategy for the formal verification of time-bound systems, based on the PDP’s formal semantics without the need for costly model transformation procedures.</li>
</ul>
<h3 id="external-references">External References</h3>
<ul>
<li><a href="https://www.pragmadev.com/news/OneWay_En.pdf">Press Release PragmaDEV</a></li>
<li><a href="https://nextmove.fr/blog/pragmadev-est-partenaire-dun-projet-majeur-dintegration-numerique-de-la-filiere-aeronautique">NextMove.fr article</a></li>
<li><a href="https://www.lembarque.com/article/mene-par-airbus-le-projet-oneway-vise-a-ameliorer-lintegration-numerique-de-la-filiere-aeronautique">lembarque.com</a></li>
</ul>CiprianThe P4S Team of Lab-STICC & ENSTA Bretagne are proud to be a partner of the OneWay project, led by Airbus and supported by DGAC (the French Civil Aviation Authority), which aim to ensure digital continuity in the aeronautical sector. OBP2 plays an important role in the verification of the Product Development Plans expressed in BPMN.OBP2 nominated by Systematic Paris Region Deep Tech Ecosystem2020-11-09T00:00:00+00:002020-11-09T00:00:00+00:00http://plug-obp.github.io/news/2020/11/09/systematic<p><a href="https://systematic-paris-region.org/hup-open-source-prix-coup-de-coeur-academique/" target="_blank"><img src="/images/logo-coup-de-coeur-academique-HOS.jpg" alt="systematic" class="download" width="100px" /></a></p>
<p>OBP2 was nominated by the Hub Open Source of the <a href="https://systematic-paris-region.org/">Systematic Paris Region Deep Tech Ecosystem</a> for the price “Coup de Cœur Académique”.
<!--more--></p>
<p>The other nominees are <a href="https://www.open-mpi.org/projects/hwloc/">Hardware Locality</a>, <a href="http://why3.lri.fr/">Why3</a>, and <a href="https://scikit-learn.org/stable/">SCIKIT LEARN</a>.</p>
<p>Link to the official <a href="https://systematic-paris-region.org/hup-open-source-prix-coup-de-coeur-academique/">Nomination</a>.</p>
<p><img src="/images/Nomination_Systematic.png" alt="overview" /></p>CiprianOBP2 was nominated by the Hub Open Source of the Systematic Paris Region Deep Tech Ecosystem for the price “Coup de Cœur Académique”.OBP2 Verifies Partial UML Models2020-10-22T00:00:00+00:002020-10-22T00:00:00+00:00http://plug-obp.github.io/news/2020/10/22/animuml<p>AnimUML is a web application that can animate partial UML models. It can also verify these models by connecting to OBP2 over a WebSocket.
<!--more--></p>
<p><strong>NOTE:</strong> The following slides are interactive. Do not hesitate to follow the links.</p>
<iframe src="https://animuml.kher.nl/slides/MODELS2020.html" height="500" width="740" allowfullscreen="" frameborder="0">
</iframe>
<p>Try it yourself online at <strong><a href="https://animuml.obpcdl.org">animuml.obpcdl.org</a></strong></p>
<p><a href="https://conf.researchr.org/details/models-2020/models-2020-technical-track/35/Designing-Animating-and-Verifying-Partial-UML-Models">MODELS 2020</a></p>
<table>
<tbody>
<tr>
<td><img src="/images/paper-logo.png" alt="paper" class="paper-icon" /> F. Jouault, V. Besnard, T. Le Calvar, C. Teodorov, M. Brun, J. Delatour, “<strong>Designing, Animating, and Verifying Partial UML Models</strong>”, <em>23rd International Conference on Model Driven Engineering Languages and Systems (MODELS 2020)</em>, Oct 2020, Virtual event, Canada. <a href="https://dl.acm.org/doi/10.1145/3365438.3410967">[DOI]</a></td>
</tr>
</tbody>
</table>
<p>source code : <a href="https://github.com/fjouault/AnimUML">github.com/fjouault/AnimUML</a></p>CiprianAnimUML is a web application that can animate partial UML models. It can also verify these models by connecting to OBP2 over a WebSocket.OBP2 meets Logo2019-12-12T00:00:00+00:002019-12-12T00:00:00+00:00http://plug-obp.github.io/news/2019/12/12/logo<p>An experimental implementation of the Logo educational programming language bound with OBP2.
<!--more--></p>
<video src="/assets/videos/logo_obp2.mp4" width="560px" muted="" controls="" class="center-image"></video>
<p><a href="https://en.wikipedia.org/wiki/Logo_(programming_language)">Logo</a></p>CiprianAn experimental implementation of the Logo educational programming language bound with OBP2.Lancement Projet Ker-SEVECO2019-12-04T00:00:00+00:002019-12-04T00:00:00+00:00http://plug-obp.github.io/news/2019/12/04/ker-seveco<p><a href="https://www.kereval.com/">Kereval</a>, <a href="https://www.mobilitytechgreen.com/">Mobility Tech Green</a> et l’<a href="https://www.ensta-bretagne.fr/fr">ENSTA Bretagne</a> démarrent un projet pour améliorer la cybersécurité des véhicules connectés.</p>
<!--more-->
<p>Le projet collaboratif “Ker-Seveco” (Sécurité de Véhicule Connecté) a pour but de développer des équipements, des moyens et une méthodologie de tests permettant d’assurer la cybersécurité du véhicule communicant.</p>
<ul>
<li><em>Nom</em> : Kerseveco</li>
<li><em>Objet</em> : La sécurité du véhicule connecté</li>
<li><em>Partenaires</em> : Kereval, Mobility Tech Green, ENSTA Bretagne</li>
<li><em>Durée</em> : 24 mois</li>
<li><em>Labellisation</em> : Pôles de compétitivité ID4car et Images et Réseaux</li>
<li><em>Soutien Financier</em> : Région Bretagne, Rennes Métropole et Union Européenne via les fonds FEDER.</li>
</ul>
<p><img src="https://www.kereval.com/wp-content/uploads/2019/12/IMG_9454.png" alt="lancement_photo" />
Les équipes de Kereval, Mobility Tech Green et l’ENSTA Bretagne ont lancé ce matin (4/12/2019) le projet collaboratif Ker SEVECO en présence des représentants des pôles de compétitivités ID4CAR et Images et Réseaux.</p>
<h3 id="references-externes">References externes</h3>
<ul>
<li><a href="https://www.kereval.com/cybersecurite-des-vehicules-connectes/">article de Kereval</a></li>
<li><a href="https://www.mobilitytechgreen.com/blog/2022/11/24/telematique-cybersecurite/">article de Mobility Tech Green</a></li>
<li><a href="https://www.ensta-bretagne.fr/fr/nouveau-projet-de-recherche-en-cybersecurite-des-vehicules-connectes">article de l’ENSTA Bretagne</a></li>
<li><a href="https://www.images-et-reseaux.com/le-projet-ker-seveco-securite-de-vehicule-connecte-demarre-en-trombe/">article image-et-reseaux</a></li>
<li><a href="https://www.id4mobility.org/actualites/ker-seveco-la-cybersecurite-du-vehicule-communicant">article id4mobility</a></li>
<li><a href="https://agence-api.ouest-france.fr/article/kereval-mobility-tech-green-et-lensta-bretagne-associes-dans-ker-seveco">api ouest france</a></li>
</ul>CiprianKereval, Mobility Tech Green et l’ENSTA Bretagne démarrent un projet pour améliorer la cybersécurité des véhicules connectés.PragmaDEV Process uses OBP22019-11-15T00:00:00+00:002019-11-15T00:00:00+00:00http://plug-obp.github.io/news/2019/11/15/process<p><a href="https://www.pragmadev.com/product/process.html" target="_blank"><img src="/images/logo_process.jpg" alt="process" class="download" width="100px" /></a></p>
<p><a href="https://www.pragmadev.com/" target="_blank">PragmaDev</a> released the version 1.0 of <a href="https://www.pragmadev.com/product/process.html" target="_blank">PragmaDev PROCESS</a>, a BPMN process modeling tool, which uses OBP2 for formal process verification.
<!--more--></p>
<p>PragmaDev Process is a BPMN editor, executor, and verifier. It is the outcome of a 2 years research project with the French Army, Eurocontrol, and Airbus DS. The editor is completely free and the executor offers free execution of small models.</p>
<p><img src="/images/process_executor.gif" alt="overview" /></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/COHG4y47OJY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<h2 id="property-verification">Property Verification</h2>
<p>PragmaDev Process uses OBP2 for property-driven process verification. The properties can be expressed either with the <a href="https://dx.doi.org/10.1007/s10515-007-0012-6">Property Sequence Charts</a> (PSC) formalism or with the <a href="/properties/2019/05/09/buchi/">GPSL</a> formalism.</p>
<p><img src="/images/process_obp_counterex.png" alt="OBP2 counter example in PROCESS" /></p>
<p>If the verified property is not satisfied by the process model, OBP2 generates a counter example which is automatically loaded by PragmaDev Process and shown as a layer over the Process model and as a MSC trace.</p>
<h2 id="further-informations">Further informations</h2>
<p>For more informations do not hesitate to contact <a href="https://www.pragmadev.com/contact.html">PragmaDev</a></p>CiprianPragmaDev released the version 1.0 of PragmaDev PROCESS, a BPMN process modeling tool, which uses OBP2 for formal process verification.GPSL syntax: LTL & Buchi2019-05-09T00:00:00+00:002019-05-09T00:00:00+00:00http://plug-obp.github.io/properties/2019/05/09/buchi<p><strong>Generic Property Specification Language</strong> (GPSL) is the language used by OBP2 for specifying the properties that should be verified during the analysis. Currently it supports Linear Temporal Logic and Buchi Automata specifications.</p>
<p>GPSL is <strong>only</strong> a <em>property-specification</em> language. Methodologically it is orthogonal from the formalisms used for <em>capturing the operational environment</em> (xGDL scenarios) and for <em>taming the state-space explosion</em> problem during model-checking (state-space decomposition, pruning through state-constraints - TLA, etc.).</p>
<p>The main characteristic of GPSL is its independence from the formalism used for model-specification. To achieve this independece relation, the GPSL language delegates the evaluation of the atomic properties to the <em>verification model</em> semantics. Thus, from the perspective of the specification language, the atomic proposition are simply a mapping of names to booleans. In other words, the GPSL semantics binds the <em>property</em> to the <em>verification model</em> through a semantics-driven evaluation function.</p>
<p>In GPSL each property is associated with a named variable. All these variables form the <em>property set</em>
Any <em>property</em> can be verified during an analysis run.</p>
<h3 id="propositional-logic-syntax--semantics">Propositional Logic: Syntax & Semantics</h3>
<p>There are two Boolean constants predefined in the language: <strong>true</strong> and <strong>false</strong></p>
<p>Atomic proposition in GPSL are strings of characters enclosed between pairs of <code class="language-plaintext highlighter-rouge">|</code> (ie. <code class="language-plaintext highlighter-rouge">| string of characters |</code>). Each atomic proposition can be prefixed with two identifiers specifying the atomic proposition language and the ‘verification’ module on which it should be interpreted.</p>
<h3 id="boolean-operators">Boolean Operators</h3>
<p>Two expressions f and g can be combined using the following Boolean operators</p>
<table>
<thead>
<tr>
<th>Operation</th>
<th style="text-align: center">syntax0</th>
<th style="text-align: center">syntax1</th>
<th style="text-align: center">syntax2</th>
<th style="text-align: center">syntax3</th>
<th style="text-align: center">syntax4</th>
</tr>
</thead>
<tbody>
<tr>
<td>negation</td>
<td style="text-align: center">not f</td>
<td style="text-align: center">!f</td>
<td style="text-align: center">~f</td>
<td style="text-align: center"> </td>
<td style="text-align: center"> </td>
</tr>
<tr>
<td>disjunction</td>
<td style="text-align: center">f or g</td>
<td style="text-align: center">f | g</td>
<td style="text-align: center">f \/ g</td>
<td style="text-align: center">f + g</td>
<td style="text-align: center"> </td>
</tr>
<tr>
<td>conjunction</td>
<td style="text-align: center">f and g</td>
<td style="text-align: center">f & g</td>
<td style="text-align: center">f && g</td>
<td style="text-align: center">f /\ g</td>
<td style="text-align: center">f * g</td>
</tr>
<tr>
<td>exclusion</td>
<td style="text-align: center">f xor g</td>
<td style="text-align: center">f ^ g</td>
<td style="text-align: center"> </td>
<td style="text-align: center"> </td>
<td style="text-align: center"> </td>
</tr>
<tr>
<td>implication</td>
<td style="text-align: center">f implies g</td>
<td style="text-align: center">f -> g</td>
<td style="text-align: center">f => g</td>
<td style="text-align: center"> </td>
<td style="text-align: center"> </td>
</tr>
<tr>
<td>equivalence</td>
<td style="text-align: center">f iff g</td>
<td style="text-align: center">f <-> g</td>
<td style="text-align: center">f <=> g</td>
<td style="text-align: center"> </td>
<td style="text-align: center"> </td>
</tr>
</tbody>
</table>
<h3 id="let-expressions">Let Expressions</h3>
<p>To simplify the expression of large formula GPSL uses Let expression forms to
introduce variables.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>let
v1 = expr
v2 = expr
...
vn = expr
in
v1 op v2
</code></pre></div></div>
<h2 id="temporal-logic-syntax--semantics">Temporal Logic: Syntax & Semantics</h2>
<p>The support for LTL is enabled using LTL3Buchi conversion [1].</p>
<h3 id="temporal-logic-operators">Temporal Logic Operators</h3>
<p>Two expressions f and g can be combined using the following Boolean operators</p>
<table>
<thead>
<tr>
<th>operation</th>
<th style="text-align: left">syntax0</th>
<th style="text-align: right">syntax1</th>
<th style="text-align: center">syntax2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Next</td>
<td style="text-align: left">X f</td>
<td style="text-align: right">next f</td>
<td style="text-align: center">() f</td>
</tr>
<tr>
<td>Eventually</td>
<td style="text-align: left">F f</td>
<td style="text-align: right">eventually f</td>
<td style="text-align: center"><> f</td>
</tr>
<tr>
<td>Always</td>
<td style="text-align: left">G f</td>
<td style="text-align: right">globally f</td>
<td style="text-align: center">[] f</td>
</tr>
<tr>
<td>Strong Until</td>
<td style="text-align: left">f U g</td>
<td style="text-align: right">f until g</td>
<td style="text-align: center"> </td>
</tr>
<tr>
<td>Weak Until</td>
<td style="text-align: left">f W g</td>
<td style="text-align: right"> </td>
<td style="text-align: center"> </td>
</tr>
<tr>
<td>Weak Release</td>
<td style="text-align: left">f R g</td>
<td style="text-align: right">f release g</td>
<td style="text-align: center">f V g</td>
</tr>
<tr>
<td>Strong Release</td>
<td style="text-align: left">f M g</td>
<td style="text-align: right"> </td>
<td style="text-align: center"> </td>
</tr>
</tbody>
</table>
<h4 id="some-ltl-examples">Some LTL examples</h4>
<pre><code class="language-plain">aliceCS = |{Alice}1@CS|
bobCS = |{Bob}1@CS|
exclusionI = []!(|{Alice}1@I| && |{Bob}1@I|)
exclusion = []!(aliceCS && bobCS)
eventuallyOneInCS = []<>(aliceCS || bobCS)
fairness =
let
aliceFlagUP=|{sys}1:flags[0] = true|,
bobFlagUP=|{sys}1:flags[1] = true|
in
([] ( (aliceFlagUP -> (<> aliceCS) )
&& (bobFlagUP -> (<> bobCS))))
idling = let
aliceFlagUP=|{sys}1:flags[0]=true|,
bobFlagUP=|{sys}1:flags[1]=true|
in
([] (!aliceFlagUP -> (![] aliceCS))
&& (!bobFlagUP -> (![] bobCS)) )
infoften = [] <> bobCS
all = (exclusion & eventuallyOneInCS & fairness & idling)
</code></pre>
<h3 id="buchi-automata">Buchi Automata</h3>
<p>Buchi Automata can be used for expressing properties. In this case the syntax for atomic propositions stays the same.
The named variables, used in the automaton, are restricted to propositional logic constructs.
The in clause of the let construct is extended with the syntactical term for describing the automaton.
In this context an automaton is composed of 4 parts :</p>
<ul>
<li>the set of states</li>
<li>the initial state(s)</li>
<li>the accepting state(s)</li>
<li>the guarded transitions</li>
</ul>
<p>The set of state is defined by the keyword <em>states</em> followed by a comma delimited list of identifiers (state names)</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>states_rule := 'states' identifier (',' identifier)*
</code></pre></div></div>
<p>The initial state(s) are introduced with the keyword <em>initial</em> followed by a comma delimited list of state names</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>initial_rule := 'initial' identifier (',' identifier)*
</code></pre></div></div>
<p>The accepting state(s) are introduced with the keyword <em>accept</em> followed by a comma delimited list of state names</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>accept_rule := 'accept' identifier (',' identifier)*
</code></pre></div></div>
<p>Each transition is specified by the source state, the guard expression, and the target state, where the source and target state are state identifiers, and the guard expression is a propositional logic expression composed using literals (true, false), atomic propositions (|…|), propositional operators (!, and, or, ->, etc), and named variable references.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>transition_rule := identifier '[' expression ']' identifier
</code></pre></div></div>
<p>The automaton is defined by the following syntax:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>automaton_rule :=
states_rule ';'
initial_rule ';'
accept_rule ';'
transition_rule (';' transition_rule)*
</code></pre></div></div>
<h4 id="buchi-automaton-example">Buchi Automaton Example</h4>
<p>Automaton as named property :</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>aut1 =
states s0, s1;
initial s0;
accept s1;
s0 [ |a=5| ] s1;
s0 [ true ] s0;
s1 [ |b=7| and |c=2| ] s1
</code></pre></div></div>
<p>Automaton in let expression :</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>b1 = let
a1 = |P_1!=wait|,
a2 = |P_0=choose|,
a3 = |P_2!=choose|,
a4 = |number[1]<0|,
p1 = !a3 and !a4,
p2 = a3 and a4,
in
states s0, s1, s2, s3;
initial s0;
accept s2, s3;
s0 [!a2 and !a1] s1;
s0 [(!a1 and p1) or (!a1 and p2)] s2;
s0 [a1] s3;
s1 [!a2] s1;
s1 [|P_1==wait|] s2;
s2 [p1] s2;
s3 [true] s3
</code></pre></div></div>
<h2 id="references">References</h2>
<p>[1] Babiak, Tomáš, et al. “LTL to Büchi automata translation: Fast and more deterministic.” International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, Berlin, Heidelberg, 2012.</p>CiprianGeneric Property Specification Language (GPSL) is the language used by OBP2 for specifying the properties that should be verified during the analysis. Currently it supports Linear Temporal Logic and Buchi Automata specifications.OBP2 Version 0.0.6 is out2018-12-10T00:00:00+00:002018-12-10T00:00:00+00:00http://plug-obp.github.io/version/2018/12/10/obp2<ul class="download">
<li><a href="https://bintray.com/plug-obp/distributions/download_file?file_path=plug-obp2-0.0.6.zip">Download</a>
<strong>Version 0.0.6</strong></li>
</ul>
<p><strong>OBP2</strong> is a multi language model-checker</p>
<ul>
<li>Fiacre models using the <a href="http://www.obpcdl.org/doku.php">OBP compiler</a></li>
<li>TLA models using the <a href="https://github.com/tlaplus/tlaplus">tlatools</a> for TLA model compilation
<!--more--></li>
</ul>
<p>The new version <code class="language-plaintext highlighter-rouge">0.0.6</code> is out with tons of new features.</p>
<p><img src="/images/obp2/0.0.4/VerificationView.png" alt="Verification View" height="600px" class="center-image" /></p>
<h2 id="exploration-capabilities">Exploration capabilities</h2>
<ul>
<li>Simple Simulation of models</li>
<li>Exhaustif BFS, DFS and concurrent BFS explorations,</li>
</ul>
<p><img src="/images/obp2/0.0.4/Executions.png" alt="Executions" width="300px" class="center-image" /></p>
<ul>
<li><strong>Pause</strong>, resume and stop any exploration,</li>
</ul>
<table>
<tbody>
<tr>
<td><strong>Idle</strong></td>
<td><img src="/images/obp2/0.0.4/ExecutionIdle.png" alt="Execution Idle" width="300px" /></td>
<td>1: Start execution <br /> 2: Open the simulation view</td>
</tr>
<tr>
<td><strong>Running</strong></td>
<td><img src="/images/obp2/0.0.4/ExecutionRunning.png" alt="Execution Running" width="300px" /></td>
<td>3: Pause execution <br /> 4: Stop execution</td>
</tr>
<tr>
<td><strong>Paused</strong></td>
<td><img src="/images/obp2/0.0.4/ExecutionPaused.png" alt="Execution Paused" width="300px" /></td>
<td>5: Resume execution</td>
</tr>
<tr>
<td><strong>Done</strong></td>
<td><img src="/images/obp2/0.0.4/ExecutionDone.png" alt="Execution Done" width="300px" /></td>
<td>6: Clear results</td>
</tr>
</tbody>
</table>
<h2 id="model-checking">Model-checking</h2>
<ul>
<li>Native Deadlock verification,</li>
<li>LTL verification (See the <a href="/properties/2018/04/11/ltl/">post</a> on GPSL syntax),</li>
</ul>
<h2 id="advanced-simulation-view">Advanced simulation view</h2>
<ul>
<li>Configurations presentation:</li>
</ul>
<table>
<tbody>
<tr>
<td>Tree View</td>
<td>Differences</td>
</tr>
<tr>
<td><img src="/images/obp2/0.0.4/ConfigurationItems.png" alt="Configuration Items" width="150px" /></td>
<td><img src="/images/obp2/0.0.4/ConfigurationDiffs.png" alt="Configuration Diffs" width="160px" /></td>
</tr>
</tbody>
</table>
<ul>
<li>Graph view of visited configuration,</li>
<li>Color coding of duplicate configurations,</li>
</ul>
<p><img src="/images/obp2/0.0.4/SimulationView.png" alt="Simulation View" height="600px" class="center-image" /></p>
<ul>
<li>Presentation of counter-example with possibilty to branch.</li>
</ul>
<p><img src="/images/obp2/0.0.4/CounterExample.png" alt="Counter Example" height="600px" class="center-image" /></p>
<ul>
<li>Export of graph views.</li>
</ul>
<p><img src="/images/obp2/0.0.4/GraphExport.png" alt="Export" height="600px" class="center-image" /></p>Ciprian TeodorovDownload Version 0.0.6 OBP2 is a multi language model-checker Fiacre models using the OBP compiler TLA models using the tlatools for TLA model compilationAEFD Debug & Model-Checking2018-11-18T00:00:00+00:002018-11-18T00:00:00+00:00http://plug-obp.github.io/news/2018/11/18/AEFD<p>Integration of an <strong>AEFD runtime</strong> with the OBP2 debug and model-checking infrastructure.
<!--more--></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/FVVkH4j_yTA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>CiprianIntegration of an AEFD runtime with the OBP2 debug and model-checking infrastructure.