Runtime Enforcement of Timed Properties



Similar documents
Testing LTL Formula Translation into Büchi Automata

Runtime Verification for Real-Time Automotive Embedded Software

T Reactive Systems: Introduction and Finite State Automata

Semantic Description of Distributed Business Processes

Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection

Specification and Analysis of Contracts Lecture 1 Introduction

TECHNICAL UNIVERSITY OF CRETE DATA STRUCTURES FILE STRUCTURES

KS3 Computing Group 1 Programme of Study hours per week

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation

Integration of an open source rule engine to enhance the IHTSDO Workbench testing

Modeling of Graph and Automaton in Database

Algorithmic Software Verification

A Load Balancing Technique for Some Coarse-Grained Multicomputer Algorithms

Access Control Models Part I. Murat Kantarcioglu UT Dallas

ATV Data Link Simulator: A Development based on a CCSDS Layers Framework

Reliability Guarantees in Automata Based Scheduling for Embedded Control Software

Certification Authorities Software Team (CAST) Position Paper CAST-13

Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall.

Monitoring Metric First-order Temporal Properties

Introduction to Automated Testing

Apache Web Server Execution Tracing Using Third Eye

Enforcing Security Policies. Rahul Gera

From Control Loops to Software

Web Traffic Capture Butler Street, Suite 200 Pittsburgh, PA (412)

Observability and Controllability Issues in Conformance Testing of Web Service Compositions

Methodological Basics of Localization During Business Software Development

Informatique Fondamentale IMA S8

Construct User Guide

Unified Static and Runtime Verification of Object-Oriented Software

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Supply chain management by means of FLM-rules

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

A Framework for the Semantics of Behavioral Contracts

KEEP IT SYNPLE STUPID

SOFTWARE DEFINED NETWORKS REALITY CHECK. DENOG5, Darmstadt, 14/11/2013 Carsten Michel

Classic IOS Firewall using CBACs Cisco and/or its affiliates. All rights reserved. 1

On the Modeling and Verification of Security-Aware and Process-Aware Information Systems

A Security Specification Language (SSL) for Run-Time Policy Enforcement

Architectures and Platforms

Supporting Document Mandatory Technical Document. Evaluation Activities for Stateful Traffic Filter Firewalls cpp. February Version 1.

A Scala DSL for Rete-based Runtime Verification

Deterministic Finite Automata

Network Administration and Monitoring

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Chapter 4: Design Principles I: Correctness and Robustness

The Ergodic Theorem and randomness

Synchronization in. Distributed Systems. Cooperation and Coordination in. Distributed Systems. Kinds of Synchronization.

CONTINUOUS DIAGNOSTICS BEGINS WITH REDSEAL

OPC COMMUNICATION IN REAL TIME

Understanding the Platform

Using Patterns and Composite Propositions to Automate the Generation of Complex LTL

QUEUES. Primitive Queue operations. enqueue (q, x): inserts item x at the rear of the queue q

INTRUSION PREVENTION AND EXPERT SYSTEMS

Algorithms are the threads that tie together most of the subfields of computer science.

Introduction to programming

MEng, BSc Computer Science with Artificial Intelligence

DOE/OE Transmission Reliability Program. Data Validation & Conditioning

A Multi Agent System for MS Windows using Matlab-enabled Agents

Kirsten Sinclair SyntheSys Systems Engineers

Network Security Management

Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm

Agent-Oriented Software Engineering

The Service Availability Forum Specification for High Availability Middleware

Overview - Using ADAMS With a Firewall

How to design and implement firmware for embedded systems

Cloud and Big Data Summer School, Stockholm, Aug Jeffrey D. Ullman

SMock A Test Platform for the Evaluation of Monitoring Tools

Understand Troubleshooting Methodology

How Program Monitors Enforce Non-Safety

How To Write A Privacy Preserving Firewall Optimization Protocol

6 Project Planning Matrix (PPM) - Overview (in brief)

Firewalls. Basic Firewall Concept. Why firewalls? Firewall goals. Two Separable Topics. Firewall Design & Architecture Issues

Software Engineering Reference Framework

Layered Approach to Development of OO War Game Models Using DEVS Framework

Team Builder Project

CHAPTER 15: Operating Systems: An Overview

PART III. OPS-based wide area networks

CS155 - Firewalls. Simon Cooper <sc@sgi.com> CS155 Firewalls 22 May 2003

Compiler Construction

MEng, BSc Applied Computer Science

Techniques algébriques en calcul quantique

Data Networks Project 2: Design Document for Intra-Domain Routing Protocols

Transcription:

Runtime Enforcement of Timed Properties Srinivas Pinisetty 1,Yliès Falcone 2, Thierry Jéron 1, Hervé Marchand 1, Antoine Rollet 3 and Omer Nguena Timo 3 INRIA Rennes - Bretagne Atlantique, France LIG, Université Grenoble I, France LaBRI, Université de Bordeaux - CNRS, France MOVEP 2012, December 05, Marseille

Outline 1 Introduction 2 Enforcement of timed properties 3 Enforcement of safety properties 4 Conclusion

Verification and enforcement monitors Runtime verification verdicts Verification Monitor events ω D ϕ σ = ϕ? D σ Σ Does the run satisfy the property? Monitoring an executing system. No system model. Input: stream of events. Output: stream of verdicts. Runtime enforcement The run should satisfy the property. Monitoring an executing system. No system model. Input: stream of events (may violate the property). Output: stream of events (should satisfy the property).

Verification and enforcement monitors Runtime verification verdicts Verification Monitor events ω D ϕ σ = ϕ? D σ Σ Runtime enforcement events o = ϕ o σ EM ϕ memory events σ = ϕ? Does the run satisfy the property? Monitoring an executing system. No system model. Input: stream of events. Output: stream of verdicts. The run should satisfy the property. Monitoring an executing system. No system model. Input: stream of events (may violate the property). Output: stream of events (should satisfy the property).

Enforcement monitor (untimed case) Dedicated to a property ϕ. Possibly augmented with a memorization mechanism. events o = ϕ o σ EM ϕ memory events σ = ϕ? Enforcement mechanism An EM modifies the current execution sequence (sometimes like a filter ). reads an input sequence σ Σ. outputs a new sequence o Σ. endowed with a set of enforcement primitives. operates on the memorization mechanism. delete or insert events using the memory content and the current input. An EM behaves as a function E : Σ Σ.

Motivation for timed enforcement Specifying the timing behavior Allow specifying desired behavior of a system more precisely (time constraints between events). After an action a, action b should occur with a delay of at least 5 time units between them. Many application domains Domains: Real-time embedded systems, monitor hardware failures, communication protocols, web services and many more. Examples Monitor a firewall to prevent DOS attack ensuring minimal delay between input events. Monitor a web application to check if pre-conditions are met to provide a service.

Motivation for timed enforcement Specifying the timing behavior Allow specifying desired behavior of a system more precisely (time constraints between events). After an action a, action b should occur with a delay of at least 5 time units between them. Many application domains Domains: Real-time embedded systems, monitor hardware failures, communication protocols, web services and many more. Examples Monitor a firewall to prevent DOS attack ensuring minimal delay between input events. Monitor a web application to check if pre-conditions are met to provide a service.

Motivation for timed enforcement Specifying the timing behavior Allow specifying desired behavior of a system more precisely (time constraints between events). After an action a, action b should occur with a delay of at least 5 time units between them. Many application domains Domains: Real-time embedded systems, monitor hardware failures, communication protocols, web services and many more. Examples Monitor a firewall to prevent DOS attack ensuring minimal delay between input events. Monitor a web application to check if pre-conditions are met to provide a service.

Motivation for timed enforcement Specifying the timing behavior Allow specifying desired behavior of a system more precisely (time constraints between events). After an action a, action b should occur with a delay of at least 5 time units between them. Many application domains Domains: Real-time embedded systems, monitor hardware failures, communication protocols, web services and many more. Examples Monitor a firewall to prevent DOS attack ensuring minimal delay between input events. Monitor a web application to check if pre-conditions are met to provide a service.

Motivation for timed enforcement Specifying the timing behavior Allow specifying desired behavior of a system more precisely (time constraints between events). After an action a, action b should occur with a delay of at least 5 time units between them. Many application domains Domains: Real-time embedded systems, monitor hardware failures, communication protocols, web services and many more. Examples Monitor a firewall to prevent DOS attack ensuring minimal delay between input events. Monitor a web application to check if pre-conditions are met to provide a service.

Outline 1 Introduction 2 Enforcement of timed properties 3 Enforcement of safety properties 4 Conclusion

Enforcement of timed properties From untimed to timed properties enforcement New elements have to be taken into account Input/output sequences are timed words: σ = (δ 1, a 1 ) (δ 2, a 2 ) (δ n, a n ), δ i R, a i Σ. Property ϕ described by a timed automaton or a timed logic. Synthesis of the corresponding enforcer? Class of enforceable properties? Focus on safety and co-safety properties modeled by TA. Model of the enforcer? Memory + similar operations (, ). No finite structure. Requirements (What should the enforcer do?).

Enforcement of timed properties From untimed to timed properties enforcement New elements have to be taken into account Input/output sequences are timed words: σ = (δ 1, a 1 ) (δ 2, a 2 ) (δ n, a n ), δ i R, a i Σ. Property ϕ described by a timed automaton or a timed logic. Synthesis of the corresponding enforcer? Class of enforceable properties? Focus on safety and co-safety properties modeled by TA. Model of the enforcer? Memory + similar operations (, ). No finite structure. Requirements (What should the enforcer do?).

Property Defined by a timed language ϕ (R 0 Σ). A timed word σ satisfies ϕ (noted σ = ϕ) if σ ϕ. Focus on properties specified by a TA A ϕ. Safety and co-safety properties specified by TA Safety: nothing bad should ever happen (prefix closed). Co-safety: something good will eventually happen within a finite amount of time (extension closed).

Property Defined by a timed language ϕ (R 0 Σ). A timed word σ satisfies ϕ (noted σ = ϕ) if σ ϕ. Focus on properties specified by a TA A ϕ. Safety and co-safety properties specified by TA Safety: nothing bad should ever happen (prefix closed). Co-safety: something good will eventually happen within a finite amount of time (extension closed). Σ 1 Σ 1 \ {r} Σ 1 \ {r} r, x := 0 r, x < 5 l 0 l 1 l 2 r, x 5, x := 0

Property Defined by a timed language ϕ (R 0 Σ). A timed word σ satisfies ϕ (noted σ = ϕ) if σ ϕ. Focus on properties specified by a TA A ϕ. Safety and co-safety properties specified by TA Safety: nothing bad should ever happen (prefix closed). Co-safety: something good will eventually happen within a finite amount of time (extension closed). r, x := 0 l 0 l 1 g, 10 x 15 l 3 Σ 2 Σ 2 \ {r} l 2 Σ 2 \ {g}; g, x < 10 x > 15 Σ 2

Enforcement monitoring in a timed context Enforcement function - E ϕ E(σ, t) = ϕ Enforcement function σ, t E : (R 0 Σ) R 0 (R 0 Σ). ϕ: Property which should be enforced (specified by a TA). σ: Input timed word. Output at time t: E(σ, t) should satisfy some additional constraints [Soundness, Transparency, Optimality]. E realized as a Enforcement Monitor (EM).

Enforcement Monitor - EM E(σ, t) = ϕ Memory EM ϕ σ Memory Timed word Operations : stores the received event and a delay in the memory. : removes the event from memory and releases it as output.

Decisions (δ k+1, a k+1) (δ m, a m) (δ 1, a 1 ) (δ k, a k) = ϕ EM ϕ E(σ, t) delays obs(σ, t) σ = (δ 1, a 1 ) (δ k, a k ) (δ m, a m ) (δ n, a n ) obs(σ, t) = {σ σ σ time(σ ) t} What can the enforcer do? No insertion, deletion of events. Order of events cannot be changed. Allow to increase the delay between actions.

Summary of the approach ϕ Enforcement Function E(σ, t) Soundness Transparency Optimality σ Requirements: Soundness, Transparency and Optimality conditions. Enforcement Monitor: Defined as a transition system (which should satisfy the requirements). Implementation: Translation of the EM semantic rules into algorithms.

Summary of the approach ϕ E(σ, t) Enforcement Monitor σ Requirements: Soundness, Transparency and Optimality conditions. Enforcement Monitor: Defined as a transition system (which should satisfy the requirements). Implementation: Translation of the EM semantic rules into algorithms.

Summary of the approach ϕ E(σ, t) Process Implementation Memory Process σ Requirements: Soundness, Transparency and Optimality conditions. Enforcement Monitor: Defined as a transition system (which should satisfy the requirements). Implementation: Translation of the EM semantic rules into algorithms.

Outline 1 Introduction 2 Enforcement of timed properties 3 Enforcement of safety properties 4 Conclusion

Enforcement of a safety property Soundness σ (R 0 Σ), t R 0, E(σ, t) = ϕ. Transparency At any time instant t, the output E(σ, t) delays the input obs(σ, t): σ (R 0 Σ), t R 0, E(σ, t) d obs(σ, t) time(e(σ, t)) t. Optimality If E is sound and transparent, it is optimal for any σ, t if (Op1) E(σ, t) is among the longest correct timed words delaying obs(σ, t). (Op2) Every prefix of E(σ, t) has the shortest possible last delay.

Enforcement of a safety property Soundness σ (R 0 Σ), t R 0, E(σ, t) = ϕ. Transparency At any time instant t, the output E(σ, t) delays the input obs(σ, t): σ (R 0 Σ), t R 0, E(σ, t) d obs(σ, t) time(e(σ, t)) t. Optimality If E is sound and transparent, it is optimal for any σ, t if (Op1) E(σ, t) is among the longest correct timed words delaying obs(σ, t). (Op2) Every prefix of E(σ, t) has the shortest possible last delay.

Enforcement of a safety property Soundness σ (R 0 Σ), t R 0, E(σ, t) = ϕ. Transparency At any time instant t, the output E(σ, t) delays the input obs(σ, t): σ (R 0 Σ), t R 0, E(σ, t) d obs(σ, t) time(e(σ, t)) t. Optimality If E is sound and transparent, it is optimal for any σ, t if (Op1) E(σ, t) is among the longest correct timed words delaying obs(σ, t). (Op2) Every prefix of E(σ, t) has the shortest possible last delay.

Enforcement of a safety property Soundness σ (R 0 Σ), t R 0, E(σ, t) = ϕ. Transparency At any time instant t, the output E(σ, t) delays the input obs(σ, t): σ (R 0 Σ), t R 0, E(σ, t) d obs(σ, t) time(e(σ, t)) t. Optimality If E is sound and transparent, it is optimal for any σ, t if (Op1) E(σ, t) is among the longest correct timed words delaying obs(σ, t). (Op2) Every prefix of E(σ, t) has the shortest possible last delay.

EM for a safety property EM = C, C 0, Γ EM, C = (R 0 Σ) R 0 R 0 B Q is the set of configurations Initial configuration is C 0 = ɛ, 0, 0, tt, q 0 C; Γ EM = ( (R 0 Σ) {ɛ} ) Op ( (R 0 Σ) {ɛ} ) is the input-operation-output alphabet, where Op = {( ), ( ), Delay( )}; C Γ EM C EM should fulfill the soundness, transparency and optimality conditions.

Operations 1. σ s, δ, d, tt, q (δ,a)/(δ,a)/ɛ σ s (δ, a), 0, d, (δ ), q with: δ = shortest delay δ δ s.t. (q (δ,a) q, q G) q is defined as q (δ,a) q if δ < and q = q otherwise 2. (δ, a) σs, s, δ, b, q ɛ/(δ,a)/(δ,a) σ s, s, 0, b, q if δ 3. Delay σ s, s, d, b, q ɛ/del(δ)/ɛ σ s, s + δ, d + δ, b, q

Implementation E(σ, t) Process Enforcer Memory Process σ, t Algorithm: Process (l, X) (l init, [X 0]) while tt do (δ, a) await event if (post(l, X, a, δ) / G) then δ update(l, X, a, δ) if δ = then terminate Process end if else δ δ end if (l, X) post(l, X, a, δ ) enqueue (δ, a) end while Algorithm: Process d 0 while tt do await ( σ s 1) (δ, a) dequeue (σ s ) wait (δ d) dump (a) d 0 end while

Outline 1 Introduction 2 Enforcement of timed properties 3 Enforcement of safety properties 4 Conclusion

Conclusion Formal approach for enforcing timed properties Enforcer adds additional delay between input actions in order to satisfy the property. Additional constraints to ensure choosing best delay between actions. Focused on safety/co-safety properties. Algorithms to implement the enforcers. Prototypes developed using Python and UPPAAL. Ongoing/ future work Enforcing more expressive properties. New transparency conditions. Improve implementation. Test on case studies (analysis, different architectures).

Conclusion Formal approach for enforcing timed properties Enforcer adds additional delay between input actions in order to satisfy the property. Additional constraints to ensure choosing best delay between actions. Focused on safety/co-safety properties. Algorithms to implement the enforcers. Prototypes developed using Python and UPPAAL. Ongoing/ future work Enforcing more expressive properties. New transparency conditions. Improve implementation. Test on case studies (analysis, different architectures).

Example Σ 1 \ {r} Σ 1 \ {r} Σ 1 r, x := 0 r, x < 5 l 0 l 1 l 2 r, x 5, x := 0 Input σ = (1, a) (3, r) (1, r) t = 0 t = 1 t = 1 t = 1 t = 4 t = 4 ɛ/(ɛ, 0, 0, tt, < l 0, 0 >)/(1, a) (3, r) (1, r) del(1) ɛ/(ɛ, 1, 1, tt, < l 0, 1 >)/(1, a) (3, r) (1, r) ɛ/((1, a), 0, 1, tt, < l 0, 1 >)/(3, r) (1, r) (1, a)/(ɛ, 0, 0, tt, < l 0, 1 >)/(3, r) (1, r) del(3) (1, a)/(ɛ, 3, 3, tt, < l 0, 4 >)/(3, r) (1, r) (1, a)/((3, r), 0, 3, tt, < l 1, 0 >)/(1, r) (1, a) (3, r)/(ɛ, 0, 0, tt, < l 1, 0 >)/(1, r) t = 4 del(1) (1, a) (3, r)/(ɛ, 1, 1, tt, < l 1, 1 >)/(1, r) t = 5 (1, a) (3, r)/((5, r), 0, 1, tt, < l 1, 0 >)/ɛ t = 5 del(4) (1, a) (3, r)/((5, r), 4, 5, tt, < l 1, 4 >)/ɛ t = 9 (1, a) (3, r) (5, r)/(ɛ, 4, 0, tt, < l 1, 4 >)/ɛ t = 9 Sound, Transparent and Optimal

Example Σ 1 \ {r} Σ 1 \ {r} Σ 1 r, x := 0 r, x < 5 l 0 l 1 l 2 r, x 5, x := 0 Input σ = (1, a) (3, r) (1, r) t = 0 t = 1 t = 1 t = 1 t = 4 t = 4 ɛ/(ɛ, 0, 0, tt, < l 0, 0 >)/(1, a) (3, r) (1, r) del(1) ɛ/(ɛ, 1, 1, tt, < l 0, 1 >)/(1, a) (3, r) (1, r) ɛ/((1, a), 0, 1, tt, < l 0, 1 >)/(3, r) (1, r) (1, a)/(ɛ, 0, 0, tt, < l 0, 1 >)/(3, r) (1, r) del(3) (1, a)/(ɛ, 3, 3, tt, < l 0, 4 >)/(3, r) (1, r) (1, a)/((3, r), 0, 3, tt, < l 1, 0 >)/(1, r) (1, a) (3, r)/(ɛ, 0, 0, tt, < l 1, 0 >)/(1, r) t = 4 del(1) (1, a) (3, r)/(ɛ, 1, 1, tt, < l 1, 1 >)/(1, r) t = 5 (1, a) (3, r)/((5, r), 0, 1, tt, < l 1, 0 >)/ɛ t = 5 del(4) (1, a) (3, r)/((5, r), 4, 5, tt, < l 1, 4 >)/ɛ t = 9 (1, a) (3, r) (5, r)/(ɛ, 4, 0, tt, < l 1, 4 >)/ɛ t = 9 Sound, Transparent and Optimal

Example Σ 1 \ {r} Σ 1 \ {r} Σ 1 r, x := 0 r, x < 5 l 0 l 1 l 2 r, x 5, x := 0 Input σ = (1, a) (3, r) (1, r) t = 0 t = 1 t = 1 t = 1 t = 4 t = 4 ɛ/(ɛ, 0, 0, tt, < l 0, 0 >)/(1, a) (3, r) (1, r) del(1) ɛ/(ɛ, 1, 1, tt, < l 0, 1 >)/(1, a) (3, r) (1, r) ɛ/((1, a), 0, 1, tt, < l 0, 1 >)/(3, r) (1, r) (1, a)/(ɛ, 0, 0, tt, < l 0, 1 >)/(3, r) (1, r) del(3) (1, a)/(ɛ, 3, 3, tt, < l 0, 4 >)/(3, r) (1, r) (1, a)/((3, r), 0, 3, tt, < l 1, 0 >)/(1, r) (1, a) (3, r)/(ɛ, 0, 0, tt, < l 1, 0 >)/(1, r) t = 4 del(1) (1, a) (3, r)/(ɛ, 1, 1, tt, < l 1, 1 >)/(1, r) t = 5 (1, a) (3, r)/((5, r), 0, 1, tt, < l 1, 0 >)/ɛ t = 5 del(4) (1, a) (3, r)/((5, r), 4, 5, tt, < l 1, 4 >)/ɛ t = 9 (1, a) (3, r) (5, r)/(ɛ, 4, 0, tt, < l 1, 4 >)/ɛ t = 9 Sound, Transparent and Optimal

Example Σ 1 \ {r} Σ 1 \ {r} Σ 1 r, x := 0 r, x < 5 l 0 l 1 l 2 r, x 5, x := 0 Input σ = (1, a) (3, r) (1, r) t = 0 t = 1 t = 1 t = 1 t = 4 t = 4 ɛ/(ɛ, 0, 0, tt, < l 0, 0 >)/(1, a) (3, r) (1, r) del(1) ɛ/(ɛ, 1, 1, tt, < l 0, 1 >)/(1, a) (3, r) (1, r) ɛ/((1, a), 0, 1, tt, < l 0, 1 >)/(3, r) (1, r) (1, a)/(ɛ, 0, 0, tt, < l 0, 1 >)/(3, r) (1, r) del(3) (1, a)/(ɛ, 3, 3, tt, < l 0, 4 >)/(3, r) (1, r) (1, a)/((3, r), 0, 3, tt, < l 1, 0 >)/(1, r) (1, a) (3, r)/(ɛ, 0, 0, tt, < l 1, 0 >)/(1, r) t = 4 del(1) (1, a) (3, r)/(ɛ, 1, 1, tt, < l 1, 1 >)/(1, r) t = 5 (1, a) (3, r)/((5, r), 0, 1, tt, < l 1, 0 >)/ɛ t = 5 del(4) (1, a) (3, r)/((5, r), 4, 5, tt, < l 1, 4 >)/ɛ t = 9 (1, a) (3, r) (5, r)/(ɛ, 4, 0, tt, < l 1, 4 >)/ɛ t = 9 Sound, Transparent and Optimal

Example Σ 1 \ {r} Σ 1 \ {r} Σ 1 r, x := 0 r, x < 5 l 0 l 1 l 2 r, x 5, x := 0 Input σ = (1, a) (3, r) (1, r) t = 0 t = 1 t = 1 t = 1 t = 4 t = 4 ɛ/(ɛ, 0, 0, tt, < l 0, 0 >)/(1, a) (3, r) (1, r) del(1) ɛ/(ɛ, 1, 1, tt, < l 0, 1 >)/(1, a) (3, r) (1, r) ɛ/((1, a), 0, 1, tt, < l 0, 1 >)/(3, r) (1, r) (1, a)/(ɛ, 0, 0, tt, < l 0, 1 >)/(3, r) (1, r) del(3) (1, a)/(ɛ, 3, 3, tt, < l 0, 4 >)/(3, r) (1, r) (1, a)/((3, r), 0, 3, tt, < l 1, 0 >)/(1, r) (1, a) (3, r)/(ɛ, 0, 0, tt, < l 1, 0 >)/(1, r) t = 4 del(1) (1, a) (3, r)/(ɛ, 1, 1, tt, < l 1, 1 >)/(1, r) t = 5 (1, a) (3, r)/((5, r), 0, 1, tt, < l 1, 0 >)/ɛ t = 5 del(4) (1, a) (3, r)/((5, r), 4, 5, tt, < l 1, 4 >)/ɛ t = 9 (1, a) (3, r) (5, r)/(ɛ, 4, 0, tt, < l 1, 4 >)/ɛ t = 9 Sound, Transparent and Optimal

Example Σ 1 \ {r} Σ 1 \ {r} Σ 1 r, x := 0 r, x < 5 l 0 l 1 l 2 r, x 5, x := 0 Input σ = (1, a) (3, r) (1, r) t = 0 t = 1 t = 1 t = 1 t = 4 t = 4 ɛ/(ɛ, 0, 0, tt, < l 0, 0 >)/(1, a) (3, r) (1, r) del(1) ɛ/(ɛ, 1, 1, tt, < l 0, 1 >)/(1, a) (3, r) (1, r) ɛ/((1, a), 0, 1, tt, < l 0, 1 >)/(3, r) (1, r) (1, a)/(ɛ, 0, 0, tt, < l 0, 1 >)/(3, r) (1, r) del(3) (1, a)/(ɛ, 3, 3, tt, < l 0, 4 >)/(3, r) (1, r) (1, a)/((3, r), 0, 3, tt, < l 1, 0 >)/(1, r) (1, a) (3, r)/(ɛ, 0, 0, tt, < l 1, 0 >)/(1, r) t = 4 del(1) (1, a) (3, r)/(ɛ, 1, 1, tt, < l 1, 1 >)/(1, r) t = 5 (1, a) (3, r)/((5, r), 0, 1, tt, < l 1, 0 >)/ɛ t = 5 del(4) (1, a) (3, r)/((5, r), 4, 5, tt, < l 1, 4 >)/ɛ t = 9 (1, a) (3, r) (5, r)/(ɛ, 4, 0, tt, < l 1, 4 >)/ɛ t = 9 Sound, Transparent and Optimal