Refinement in Requirements Specification and Analysis: a Case Study

Similar documents
Implementing Domain Specific Languages using Dependent Types and Partial Evaluation

Event Based Sequential Program Development: Application to Constructing a Pointer Program

solutions:, and it cannot be the case that a supersolution is always greater than or equal to a subsolution.

Extensional Equality in Intensional Type Theory

Nominal Techniques in Isabelle/HOL

Two-Way Equational Tree Automata for AC-like Theories: Decidability and Closure Properties

ishares Core Composite Bond ETF

A Formal Architecture for the 3APL Agent Programming Language

½ Ê Ú Û Ó ÆÒ ÕÙÓØ ÒØ ¾ ÇÖØ Ó ÓÒ Ð ÒÚ Ö ÒØ ÓÙ Ð Ö Ø ÓÒ Ý ÕÙÓØ ÒØ Ñ Ô ÇÖ Ø ÓÖÖ ÔÓÒ Ò Ü ÑÔÐ Ó ÓÖ Ø ÓÖÖ ÔÓÒ Ò Ü ÑÔÐ Ø Ò ÓÖ ÔÖÓ ÙØ Ü ÑÔÐ ÓÒØÖ Ø ÓÒ Ñ Ô ÇÔ Ò

½º»¾¼ º»¾¼ ¾º»¾¼ º»¾¼ º»¾¼ º»¾¼ º»¾¼ º»¾¼» ¼» ¼ ÌÓØ Ð»½ ¼

ÈÖÓÚ Ò Ò ÁÑÔÐ Ø ÓÒ È É Ï Ö Ø ÐÓÓ Ø Û Ý ØÓ ÔÖÓÚ Ø Ø Ñ ÒØ Ó Ø ÓÖÑ Á È Ø Ò É ÓÖ È É Ì ÓÐÐÓÛ Ò ÔÖÓÓ ØÝÔ Ò Ð Ó Ù ØÓ ÔÖÓÚ Ø Ø Ñ ÒØ Ó Ø ÓÖÑ Ü È Üµ É Üµµ Ý ÔÔ

Ë ÁÌÇ ÌÓ Ó ÍÒ Ú Ö Øݵ Ç ¼ Ô Û Ö ÙÒÓ Ø Ò Ð Ä Ò ÙÖ ÖÝ ÓÒ ÒÓØ Ý ÛÓÖ Û Ø Ã ÞÙ ÖÓ Á Ö Ó ÒØ Ë Ò ÝÓ ÍÒ Ú Ö Øݵ Ç

É ÀÓÛ Ó Ý Ò ² Ö Ò ÁÒ Ö Ò «Ö ÓØ ÑÔ Ù ÔÖÓ Ð ØÝ ØÓ Ö ÙÒ ÖØ ÒØÝ ÙØ Ø Ý ÓÒ Ø ÓÒ ÓÒ «Ö ÒØ Ø Ò º Ü ÑÔÐ ÁÑ Ò Ð Ò Ð ØÖ Ð Û Ø Ò ½ Ñ Ø Ô Ö Ó Ù Ø º ÁÒ Ô Ö ÓÒ Ù Ø

pronoun word noun noun noun phrase phrase phrase

x = x 1x 2 x (p-1)x x = 3 x = 3 x = 3 x = 3 0 x 1 x 2 x... (p-1)x

ÙÒØ ÓÒ Ò Ø ÓÒ ÙÒØ ÓÒ ÖÓÑ ØÓ ÒÓØ Ö Ð Ø ÓÒ ÖÓÑ ØÓ Ù Ø Ø ÓÖ Ú ÖÝ Ü ¾ Ø Ö ÓÑ Ý ¾ Ù Ø Ø Ü Ýµ Ò Ø Ö Ð Ø ÓÒ Ò Ü Ýµ Ò Ü Þµ Ö Ò Ø Ö Ð Ø ÓÒ Ø Ò Ý Þº ÆÓØ Ø ÓÒ Á

½½ º º À Æ Æ º º Í Æ ÒÓØ ÔÓ Ø Ú Ñ ¹ Ò Ø ÙÒÐ Ø ÓÐÐÓÛ Ò ØÖÙ Ø Ö ÓÒ Ù ÔÖÓ Ð Ñ È ½ Û Ø Ò Ð ÐÐ ÓÒ ØÖ ÒØ Û Ó ÓÖÑ Ù Ø ØÓ Ñ Ò ¾Ê Ò µ ½ ¾ Ì Ì Ø Ì Ù ÔÖÓ Ð Ñ Ø Ð

Solutions of Implication Constraints yield Type Inference for More General Algebraic Data Types

È Ö Ø ² ÑÔ Ö Ø Ò ÓÖÑ Ø ÓÒ ÓÖ Ñ È Ö Ø Ò ÓÖÑ Ø ÓÒ ÈÐ Ý Ö ÒÓÛ ÓÙØ Ø ÔÖ Ú ÓÙ ÑÓÚ Ó ÓÔÔÓÒ ÒØ º º º Ð ¹ËØ Û ÖØ Ñ º ÁÑÔ Ö Ø Ò ÓÖÑ Ø ÓÒ ÈÐ Ý Ö Ó ÒÓØ ÒÓÛ ÓÙØ Û

Liveness: The Readers / Writers Problem

A Calculus for End-to-end Statistical Service Guarantees

Control X Switch X=1, SW ON X=0, SW OFF F(X)=X F un tion Implementation N. Mekhiel

Ï Ó ØÖ Ù ÛÓÖÐ Ý Ù Ð Ø Ö Ø ÓÖ Ð Ö Ð Ø Ú ØÓ Û ÆÈ ËÈ ÊË Ó ÓØ Ú ÓÑÔÐ Ø Ø º Å Ö ÌÓÖ ÅÌ Ú Ö Ð Ø Ú Þ Ð ÔÖÓÓ Ø Ø ÓÔØ Ñ Ð ÔÖÓÓ Ý Ø Ñ Ü Ø Ø ÆÈ ËÈ ÊË Ó Ú ÓÑÔÐ Ø

ÙÖ ¾ Ë Ð Ø ÔÔÐ Ø ÓÒ ¾ ¾

arxiv: v25 [math.ca] 21 Nov 2008

Ø Ñ Ò Ò ÙØÙÑÒ ¾¼¼¾ Ò Ò Ö ÕÙ ÒØ ÐÓ µ Ø Û Ø ØÖ ØÖÙØÙÖ ½ ȹØÖ È¹ ÖÓÛØ ÄÇË Ì È¹ØÖ Ø ØÖÙØÙÖ È¹ ÖÓÛØ Ð ÓÖ Ø Ñ ÓÖ Ò Ò ÐÐ Ö ÕÙ ÒØ Ø ÄÇË Ì Ð ÓÖ Ø Ñ ÓÖ Ò Ò Ö ÕÙ

function KB-AGENT( percept) returns an action static: KB, a knowledge base t, a counter, initially 0, indicating time

Proof a n d Com p uta tion in Coq Maxime Dénès, Benjamin Grégoire, Chantal Keller, Pierre Yves Strub, Laurent Théry Map 16 p.1

MSR, Access Control, and the Most Powerful Attacker

Ì ÓÑÔÙØ Ð Ñ Ò ÓÒ Ó ÌÖ Ó ÁÒ Ò Ø À Ø ÊÙ ÐÐ Å ÐÐ Ö ÂÙÐÝ ¾ ¾¼¼ Ì Ö Ø ÓÙÖ Ø ÓÒ Ó Ø ÖØ Ð ÔÔ Ö ÔØ Ö Ó È º º Ø Ø Ø ÍÒ Ú Ö ØÝ Ó Ó ÙÒ Ö Ø ÙÔ ÖÚ ÓÒ Ó ÊÓ ÖØ Áº ËÓ

A B. Ø ÓÒ Left Right Suck NoOp

XOR KEYS S BOXES KEY ADDITION MODULO 2^{256} DIFFUSION LAYER

ÓÙÖ ËØ ÁÒ ØÖÙØÓÖ ÓÒØ Ø ËÐ Ñ Ø ÙÐÐ Ö ÐÓÙ Ð Ø ÓÒ ÓÙÖ Û Ø ÇÒ ÍÏ¹Ä ÖÒ Ò ÓÒ ÓÙÖ Û Ø Î ÖÝ Ø Ö ÓÑ ØÓ Ð Ø ÒÓØ Ë ÁÒØÖÓ ØÓ Å Ñص ÇÚ ÖÚ Û Ó Ë ÄÄ ¾¼½ ¾» ¾

ÇÙØÐ Ò Ó Ø Ð ÅÓØ Ú Ø ÓÒ ÔÓÐÝÒÓÑ Ð Ú ÓÒ ÒÓ Ò ÓÖ ÝÐ Ó ÙØÓÑÓÖÔ Ñ µ ÑÓ ÙÐ ÕÙ ¹ÝÐ µ ØÖÙ¹ ØÙÖ ÖĐÓ Ò Ö ÓÖ ÑÓ ÙÐ Ú ÐÙ Ø ÓÒ Ó ÖÓÑ ÓÖ Ö ÓÑ Ò Ò¹ ÐÙ Ò ÓÔÔ Ó µ Ü Ñ

¾ ÍÆ ÌÁÇÆ Ä ËÈ Á Á ÌÁÇÆ ÒÚ ÖÓÒÑ ÒØ ½ º½ ÓÖÑ Ø Ò º º º º º º º º º º º º º º º º º º º º º º º º ½ º½º½ Ö ØÓÖÝ ÒØÖ º º º º º º º º º º º º º º º º º º

ÇÙØÐ Ò È Ý Ð ÓÒ Ø ÓÒ Ò ÓÙ Æ ÙÐ ÄÓÛ¹ Ò ØÝ Ð Ñ Ø À ¹ Ò ØÝ Ð Ñ Ø Ü ÑÔÐ ÜØ ÒØ ÓÒ ØÓÛ Ö ÐÑ Ö Ö Ñ ÒØ Ò

Domain, Range, Inverse

Strong normalization of lambda-bar-mu-mu-tilde-calculus with explicit substitutions

Regression. Linear least squares. Support vector regression. increasing the dimensionality fitting polynomials to data over fitting regularization

ÇÙØÐ Ò

Decomposition and Complexity of Hereditary History Preserving Bisimulation on BPP

Deadlock. deadlock analysis - primitive processes, parallel composition, avoidance

ÓÙÖ ÓÒØ ÒØ Ï Ý Ó Û Ù Ø ÙÒØ ÓÒ Ð ØÝ ÔÖÓÚ Ý Ø Å Ò Ñ ÒØ ËÝ Ø Ñ Ø ÅÓ Ð Ê Ð Ø ÓÒ Ð Æ ØÛÓÖ ÇÇ ÀÓÛ Ó Û Ù ÅË Ê Ð Ø ÓÒ Ð ÑÓ Ð ÓÙÒ Ø ÓÒ Ð ÕÙ ÖÝ Ð Ò Ù ËÉÄ ÔÔÐ Ø


ÇÙØÐ Ò Ó Ø Ø Ð ÅÓØ Ú Ø ÓÒ = ¾ ÙÔ Ö ÝÑÑ ØÖ Ò ¹Å ÐÐ ÕÙ ÒØÙÑ Ñ Ò ÆÙÑ Ö Ð Ð ÓÖ Ø Ñ Ò ÒÙÑ Ö Ð Ö ÙÐØ Ü Ø ÓÐÙØ ÓÒ ÙÖØ Ö Ô Ö Ô Ø Ú

Breeze. Stench PIT. Breeze. Breeze PIT. Stench. Gold. Breeze. Stench PIT START

M 1 M 2 M 3 M 1 M 1 M 1 M 2 M 3 M 3

ÅÓØ Ú Ø ÓÒ Å ÕÙ Ð ØÝ Ó Ø Ó ØÖ Ò Ô Ö ÒØ ÁÒ Ø ÓÒ Ú ÐÓÔÑ ÒØ ØÖ Ò ÖÖ Û ÓÖ Ò Ð ÙØ ÓÖ Ö Ñ Ò ÐÓÒ Ú ÐÓÔÑ ÒØ ØÓÖÝ Å ÒÝ Ù ØÓÑ Ö»Ù ØÓÑ Ö Ù ÓÑÔÓÒ ÒØ Ó Ñ ÒÝ ÔÖÓ Ø

Tensor. Field. Vector 2D Length. SI BG cgs. Tensor. Units. Template. DOFs u v. Distribution Functions. Domain

ÅÓ Ø Ü Ø Ò ÖÓ ¹ÓÚ Ö Ö ÓÙÖ ÔÖÓÚ ÓÒÐÝ ÐÐÓÛ Ö ÔÖ ÒØ Ø ÓÒ Ñ ÒØ ÇÚ ÖÚ Û ÛÓÖÐ ÔÔÐ Ø ÓÒ Ò Ö ÓÙÖ Û Ø Ö ÝÒØ Ø Ò ¹ Ê Ð Ö ÔÖ ÒØ Ø ÓÒ º Ñ ÒØ ÅÙ Ö Ö Ö ÔÖ ÒØ Ø ÓÒ Ö

ÁÒØÖÓ ÙØ ÓÒ Ì Ñ Ñ Ö Ó Ú Ò Ô ÓÖ Ù Ô µ Ú Ø Ñ Ò Ö Ð ØÙÖ ÓÒ Ø Ö Ó Ø Ô ØØ ÖÒº ÀÓÛ Ú Ö Ò Ú Ù Ð Ò Ñ Ð Ø ÓÛÒ Ø ÒØ Ñ Ö Ò º Ì Ô ØØ ÖÒ Ö ÒÓØ Ø ÖÑ Ò Ò Ø ÐÐݺ Ì Ý

½º ÌÖ ÙØÓÑØ

ÁÒØÖÓ ÙØ ÓÒ ØÓ ÓÑÔÙØ Ö ÈÖÓ Ö ÑÑ Ò Ò Ü Ñ ÂÙÒ ½ ¾¼¼ È ½ Ü Ö ½ ¾ ½ Å Ö µ µ ÓÒ Ö Ø ÓÓÛ Ò Ñ Ø Ó ÔÙ ÚÓ ÒØ ÒØ µ ß ¼ ¼µ ß Ö ØÙÖÒ ÒØ ¼µ ß ËÝ Ø ÑºÓÙغÔÖ ÒØÒ Ò Ø

ÝÓÒ ÀÝÔ ÖØÖ Ï Ø ÓÑÔÓ Ø ÓÒ Å Ø Ó Ï Ø ÓÙØ ÓÑÔÓ Ø ÓÒ ÀÙ Ò Ò Î ØÓÖ ÐÑ Ù Ô ÖØ Ñ ÒØ Ì ÒÓÐÓ ÍÒ Ú Ö Ø Ø ÈÓÑÔ Ù Ö Ö ÐÓÒ ËÔ Ò Ù º Ò Ú ØÓÖº ÐÑ Ù ÙÔ º Ù ØÖ Øº Ì Ò

Lazy Semiring Neighbours

Ò ÐÝ º Ê Ö ÓÒ ØÖ ÙØ ÓÒ Ó ÇÆ ½µ Ì ÓÙØÓÑ Ù Ð µ Ú Ö Ð Ö ÔÓÒ Ö ÔÓÒ µ Ú Ö Ð Ô Ò ÒØ Ò µ Ú Ö Ð Ú Ö Ð Y Ö Ð Ø ØÓ ÇÆ ÇÊ ÅÇÊ ÜÔÐ Ò ØÓÖÝ ÓÖ Ð Ö Ò µ Ú Ö Ð Ò Ô Ò Ò

ÐÓ Û µ ÅÄ Ó Ò ººº Ð Ò Ö Ó Ü = (,..., Ü Ò ) ººº ÒØ Ó ÛÓÖ Ý = (Ý ½,..., Ý Ò ) ººº Ö Ú ÛÓÖ ¹ ÓÒ Ø ÒØ ÐÓ Û µ Å Ü ÑÙÑ Ä Ð ÓÓ Åĵ Ó Ö Ø Ø ÔÓ Ð Ó Ö Ñ Ò Ñ Þ Ø

ÁÒØÖÓ ÙØ ÓÒ ËØ Ø Ø Ð Ò ÐÝ ÓÖ Ö Ø Ø Ô ÖØ Ù¹ Ð ÖÐÝ ÓÖ ÔÖÓ Ð ØÝ ÑÓ Ð Ù Ø ÒÓ¹ Ñ Ð ÈÓ ÓÒ Ò ÑÙÐØ ÒÓÑ Ð Ý ÒÓÛ Ú ÖÝ Û ÐÐ ÙÒ Ö ØÓÓ Û Ø Û ÐØ Ó Ù Ø Ð Ó Ø¹ Û Ö º

ÓÖ Ö ÛÓÖ Ò Ô Ö Ó ØÝ Ò Ø ÛÓÖ ÓÖ Ö Ø ÔÖÓÔ Ö ÔÖ Ü ÕÙ Ð ØÓ Ù Üº ÓÖ Ü ÑÔÐ ÓÖ Ö º Á ÛÓÖ ÒÓØ ÓÖ Ö Û Ý Ø ÙÒ ÓÖ Ö ÓÖ ÓÖ Ö¹ Ö º ÓÖ Ü ÑÔÐ ½¼ Ò = ½¼¼ ¼ Ö ÙÒ ÓÖ Ö

½ ÁÒØÖÓ ÙØ ÓÒ Ê ÒØ Ö ÙÐØ Ò ÑÔÐ Ñ ÒØ Ø ÓÒ Ó Ø ÔÐ ÒÒ Ö ½ Ú Ö Ø Ò¹ Ø Ö Ø ÓÖ Ù Ø Ð ÔÔÐ Ð ØÝ Ó Ø ÔÐ ÒÒ Ò ÔÔÖÓ ØÓ Ñ ÒÝ Ö Ð ÛÓÖÐ ÔÖÓ Ð Ñ º ÍÒ ÓÖØÙÒ Ø ÐÝ Ø ÔÖ

Ì ÄÈ Ë ÈÖÓ Ð Ñ Ì ÄÈ Ë ÐÓÒ Ø Ô Ö Ñ Ø Ö Þ ÓÑÑÓÒ Ù ÕÙ Ò µ ÔÖÓ Ð Ñ Ò Ö Ð Þ Ø ÓÒ Ó Û ÐÐ ÒÓÛÒ Ä Ë ÔÖÓ Ð Ñ ÓÒØ Ò Ò Ô¹ÓÒ ØÖ ÒØ º Ò Ø ÓÒ ÁÒ ÄÈ Ë(,, Ã ½, Ã ¾, )

Ì Ø Ð ÓÒ Ò Ò ÐÓ Ù Ó Ó Ñ³ Ø ÓÖ Ñ ÓÖ Ö Ø Ð ÑÞ Û ¹ ÐÐ ¾¼½½ ÇÒ Ø Ø Ó Ö Ð ÒÙÑ Ö Ö Ó Ò Þ Ý Ò Ø ÙØÓÑ Ø Ò ÑÙÐØ ÔÐ Ó ÐÓع ÖÙ Ø Ò¹ ÖÙÝ Ö ¾¼½¼ Ö Ø¹ÓÖ Ö ÐÓ Ò ÆÙÑ

Ä ÖÒ Ò ÖÓÑ Ø Ö Ëº Ù¹ÅÓ Ø Ð ÓÖÒ ÁÒ Ø ØÙØ Ó Ì ÒÓÐÓ Ý Ä ØÙÖ ½ Ì Ä ÖÒ Ò ÈÖÓ Ð Ñ ËÔÓÒ ÓÖ Ý ÐØ ³ ÈÖÓÚÓ Ø Ç ² Ë Ú ÓÒ Ò ÁËÌ ÌÙ Ý ÔÖ Ð ¾¼½¾

ÚÓ Ù ØÖ Ó Ø Ö ÓÙÒØ Øµ ØÖÙØ Ø ÒÓ Ø Ñµ» Ø ÚÓ Ù ØÖ Ó Ø Ö ÓÙÒØ ÔÙص ØÖÙØ Ø ÒÓ Ø Ñµ» Ø ØÖÙØ Ù ØÖ Ó Ý Ö Ò Ñ ½¼ Ô ÒÓ Ø Ó» Ó Ý Ó» ØÖÙØ Ù ØÖ Ù Ø Ø ¾ Ñ Ü Þ» Ò Ø

t 2 3t + 2 lim xln x x x x2 + 1 x + 1

ÅÓØ Ú Ø ÓÒ Ø Ú Øݹ ØÖ Ú Ð Ñ Ò ÑÓ Ð Ò Ô Ö ÓÒ Ð Þ ÖÚ ÓÒ Ñ ÖØÔ ÓÒ ¾» ¾

Æ ÛØÓÒ³ Å Ø Ó ÐÓ Ì ÓÖÝ Ò ËÓÑ Ø Ò ÓÙ ÈÖÓ ÐÝ Ò³Ø ÃÒÓÛ ÓÙØ Ú º ÓÜ Ñ Ö Ø ÓÐÐ

Chapter 9. Trapezoidal Maps. 9.1 The Trapezoidal Map

ËÌ Ä Å Ä Å ÌÁÇÆ ÂÓ Ò Ìº Ð Û Ò Ô ÖØÑ ÒØ Ó Å Ø Ñ Ø ËØ Ø Ø Ò ÓÑÔÙØ Ö Ë Ò ÍÒ Ú Ö ØÝ Ó ÁÐÐ ÒÓ Ø Ó Â ÒÙ ÖÝ ¾¼¼¼ Ø ØÓ Ø Ñ ÑÓÖÝ Ó ºÁºÅ Ð Úº ÁÒ ½ ÖÞ ÓÖÞÝ Û Ø Ö

½º¾ Ò Ø ÓÒ Ì Ò Ó Ø ÓÚ ÕÙ Ø ÓÒ Ò ÓÖÑ Ð Þ Ý Ø ÓÐÐÓÛ Ò Ò Ø ÓÒº Ò Ø ÓÒ ½ È Ù Ó Ê Ò ÓÑ ÙÒØ ÓÒ Ñ Ðݵ Ñ ÐÝ ¾ ¼ ½ ¾Æ ÐÐ Ñ ÐÝ Ó Ð µ Ä µµ È Ù Ó Ê Ò ÓÑ ÙÒØ ÓÒ ¾

Kevin Dowd, after his book High Performance Computing, O Reilly & Associates, Inc, 1991

Outflow plane U=V=W=0. 2.5m. 1.95m U=V=W= m (0,0,H) 0.1m. 0.1m y. 0.41m 0.15m. 0.45m U=V=W= m Inflow plane

Improved Boosting Algorithms Using Confidence-rated Predictions

MODELLING OF GAS-SOLID TURBULENT CHANNEL FLOW WITH NON-SPHERICAL PARTICLES WITH LARGE STOKES NUMBERS



ÇÙØÐ Ò ÖÓÙÒ Ü ÑÔÐ ÔÖÓ Ö Ñ ÒÓ Ñ Ø Ó Ü ÑÔÐ ÒÓ Ì ÓÖÝ ÓÒÐÙ ÓÒ ¾

Density Data


Dagstuhl Seminar Proceedings 05451Dagstuhl Seminar Proceedings Beyond Program Slicing

ÁÒ ÙØ Ú ¹ ÙØ Ú ËÝ Ø Ñ Ñ Ø Ñ Ø Ð ÐÓ Ò Ø Ø Ø Ð Ð ÖÒ Ò Ô Ö Ô Ø Ú Æ ÓÐ ÓØ Å Ð Ë Ø ÇÐ Ú Ö Ì ÝØ Ù ÍÒ Ú Ö Ø È Ö ¹ËÙ ÆÊË ÁÆÊÁ ÈÖÓ ¾¼¼

NS Ilist Clist F. F y<=w

Communications Network Design: lecture 19 p.1/32

ÇÆÌ ÆÌ ËÙ Ø Ú ÒØÖÓ ÙØÓÖÝ Ö Ñ Ö Å Ø Ô ÓÖ Ò Ø Ú ÔÔÖÓ Ì Ô ÐÓ ÓÔ Ð Ö Ò À ÖÑ Ò ÙØ Ò Ø Ö Ð Ø ÓÒ Ô ØÓ Ò Ì ÒØ ÖÔÖ Ø Ò Ò Ø ÒØ ÖÔÖ Ø Ö Ò

Accept() Reject() Connect() Connect() Above Threshold. Threshold. Below Threshold. Connection A. Connection B. Time. Activity (cells/unit time) CAC

x 2 x 1 f 1 Objective space Decision space

ÖÙÔØ Ú ÝÓÙÒ Ø Ö ÓÖ ÍÓÖ ÄÓÛ Ñ ÔÖ ¹Ñ Ò ÕÙ Ò Ó Ø ËØ Ö Ð Ö ÑÓÙÒØ Ó ÖÙÑ Ø ÐÐ Ö Ñ Ø Ö Ð ÍÓÖ ÇÙØ ÙÖ Ø Ó Ñ ÓÖ ÑÓÖ Ò ÓÔØ Ð Ð Ø Ä Ø Ò ÓÖ Ú Ö Ð Ê Ô Ø Ø Ú ÓÖ ÍÓÖ

Ø Ñ Ñ Ò µ Ú Ù ¾ ¾ ½ ÓÒØ Ò Ö Ú Ù Ú Ù µ ÔÓ Ö Ø Ö ØÓÖ Ú ØÓÖ Ø Ö Ø Ø ÓÚ Ö ÓÒØ Ò Ö Ú ØÓÖ Ø Ö ØÓÖ Ø ÓÒØ Ò Öº Ò µ Ø ÓÒØ Ò Öº Ò µ Ø µ Ù Ø Ñ Ø Ö Ø ÓÒ ÓÒØ Ò Öº

COMPARATIVE EVALUATION OF WEATHER FORECASTS FROM THE COSMO, ALARO AND ECMWF NUMERICAL MODELS FOR ROMANIAN TERRITORY

Ó Ú ÐÙ Ö ÒÚÓÐÚ Ò ÖØ Ò Ô ÖØ Ó Ø ÔÖÓ Ö Ñµ Ò ØÓ ÐÔ Ø Ø ÔÖÓ Ö ÑÑ Ö Ñ Ø º ÁÒ Ø Ø ÐÐÝ ØÝÔ Ð Ò Ù Ø ØÝÔ Ö ÒÓØ Ò ÓÑ Ø Ò Ø Ø Ø Ô ÖØ Ò ÓÑÔÙØ Ø ÓÒ ÙØ Ö Ø Ö ÓÑ Ø Ò

¾ ÓÖÔÙ Ôк ÓÖÔÓÖ µ ÓÖÔÙ ÓÐÐ Ø ÓÒ Ó Ø ÜØ µ ÓÖ ÙØØ Ö Ò ½¼ Ø ÒÝ ½¼ Ö ÓÒ Ð ½¼ ½¾ ÙÖÖ ÒØ Ð Ð Ñ Ø ÓÖ ÙÒ ÒÒÓØ Ø Ø Ì ÑÓ Ø Ú ÐÙ Ð ÓÖÔÓÖ Ö Ø Ó Ø Ø ÓÙÖ Ò ØÙÖ ÐÐÝ

ÁÒØÖÓ ÙØ ÓÒ ÇÖ Ò Ø ÓÒ Ð Ù ÌÓÔ ÇÚ ÖÚ Û Ä ØÙÖ Ü Ö ÓÑÔÙØ Ö ÓÓ Ü Ñ Ï Ý Ñ Ø Ñ Ø ÅÓ Ð Ò Ø Ë Ø ÌÛÓ Ü ÑÔÐ

ËÓÙÖ Ö Ø Ò Ö³ Ó Ø ÓÒ Ò ÐÓÓÑ Ö

Ö Ò ÁÅ ÔØ Ö Ê ÕÙ Ö ÔØ Ö ½¼ ½ Ò ½ º ÄÏÀ ØÓ ÖØ Ð ÁÒØ ÐÐ Ò ÁÒØÖÓ ÙØ ÓÒ ¹ ËÔÖ Ò ¾¼½ Ë º ÓÙ ÖÝ Ë Ù¹Û ¹Ö µ ÖØ ¼¾µ ¾¹ º º ÓÙ ÖÝ ½ ÁÒ ØÖÙØÓÖ³ ÒÓØ ÖÙ ÖÝ ½ ¾¼½

Reputation-Based Trust Management (extended abstract)


Ø Ø Ò Ö ÓÖ Ö ÒØ Ö Ø ÓÒ ÀÓÛ ØÓ Ø Ø Î¹ ØÖÙØÙÖ Û Ø Ô ÖÛ Û ÓÖ ÒÓÒ Ü Ø Òص Ô Ò Ò X Y Z º Ë ÒÓÚ ËÅÄ Í Äµ Ì Ö ¹Ú Ö Ð Ø Ø ÆÁÈË ¼ ¾¼½ ¾» ½

ÓÒØ ÒØ ½ ÇÚ ÖÚ Û ½ ¾ Ö Ø ØÙÖ Ð Ö ÔØ ÓÒ ½ ¾º½ Ê Ø Ö º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º ½ ¾º¾ ÙÒ Ñ ÒØ Ð ÌÝÔ º º

1 The Multinomial logit

Ö Ô ÓÒ Ø Ó ØÛÓ Ø Î Ò ÒÓØ Ý Î µº Ë Ø Î Ò Ø ÒÓÒ¹ ÑÔØÝ Ø Ó Ú ÖØ ÓÖ ÒÓ µ Ò Ø Ó Ô Ö Ó Ú ÖØ ÐÐ º Ï Ù Î µ Ò µ ØÓ Ö ÔÖ ÒØ Ø Ø Ó Ú ÖØ Ò Ò Ö Ô Ö Ô Ø Ú Ðݺ ÅÓÖ Ò

Transcription:

Refinement in Requirements Specification and Analysis: a Case Study Edwin de Jong Hollandse Signaalapparaten P.O. Box 42 7550 GD Hengelo The Netherlands edejong@signaal.nl Jaco van de Pol CWI P.O. Box 94079 1090 GB Amsterdam The Netherlands Jaco.van.de.Pol@cwi.nl Jozef Hooman University of Nijmegen P.O. Box 9010 6500 GL Nijmegen The Netherlands hooman@cs.kun.nl Abstract This paper presents a formal method for requirements specification and analysis. Using this method some techniques for step-wise refinement are studied. During the early phases of system development, where the exact requirements are yet unclear, these techniques allow to write incomplete and global specifications, which during successive steps can be refined and completed. At each step the method supports formal analysis of the specification. In particular two abstraction techniques are studied: nondeterminism and uninterpreted symbols. These techniques are explored using a realistic case study, that was inspired by the specification of an existing naval command and control system. Specifications are written and analysed using the language and proof checker of PVS. 1. Introduction The strength of formal system specifications is that they are written with mathematical precision. Using a formal specification language ensures that the system specification is unambiguous. A formal semantics provides for a model of the system, that can be analysed with mathematical rigour. Powerful tools, like theorem provers, that are nowadays available, make the analysis tractable. In the early phases of system development, where most of the requirements are yet unclear, this strength however usually proves to be a weakness. At this stage of development, any method that enforces completeness of the specification is not considered very helpful. At the same time, however, particularly during the system requirements specification phase, there is a clear need of methods, techniques, and tools that help in assessing the correctness and quality of the specification. Errors and omissions in the requirements specification tend to propagate through all later phases, until they are detected. It is well known, that errors that are made early and detected late, are relatively expensive to repair. In order to support requirements specification and analysis, a formal method should be able to cope with incomplete, in the sense of yet unfinished, and very global descriptions. During successive stages, it should be possible to complete and refine the initial specification, until the intended system is precisely described. At each stage the intermediate specification should be suitable for analysis; in fact, the outcome of this analysis should provide a guiding principle for the decisions in the next iteration. In this paper we present a formal method for requirements specification and analysis. Using this method we experiment with some techniques for step-wise refinement by means of a realistic case study. The method is an extension of earlier work [2] and is based on a specification in higher-order logic, that defines a state-transition system which accepts input events and emits output events. Using this framework, we study in this paper two abstraction techniques that support step-wise refinement: nondeterminism and parameterized specifications. Using nondeterminism, the system engineer at first globally delineates the intended system behaviour. Initially the specification may implicitly contain some unintended behaviours as well. During successive refinement steps, the amount of nondeterminism can be gradually reduced until precisely the intended system behaviours remain. Formally, each refinement step carries a proof obligation, since it should be verified that the refined specification does not introduce any behaviour that is excluded by the higher-level specification. Using parameterized specifications, the system engineer is able to write incomplete descriptions of the system, where the parameters refer to (yet) uninterpreted parts of the specification. These descriptions can later on be refined by instantiating the parameters with actual definitions. In the parameterized specification usually various assumptions are stated about the parameters. It is a proof obligation of each refinement step to formally verify that these assumptions

are met by the actual parameters. We have implemented our method using the language and interactive proof checker of PVS [9]. We regard integrated tool support as an indispensable means for any practical application of formal requirements specification and analysis. In our method the proof checker of PVS is used in performing various types of analyses of the specification, and in particular to verify the correctness of each refinement step. This paper is organized as follows. In Section 2 we first outline the general specification and analysis method, including its tool support. To illustrate, we discuss in Section 3 a case study that was inspired by the specification of an existing naval command and control system. The specification starts from a concise and global description of the system, which we refine and complete in Section 4 by two successive refinement steps. The first step focuses on behavioural requirements by reduction of nondeterminism. The second step fills in some details that were left open in the initial specification by instantiating some of the specification s parameters with actual definitions. We analyse both refinement steps and prove that they extend the requirements from the higher-level specification. In Section 5 we conclude with an evaluation of the method, a brief discussion on related work, and some indications for future research. 2. Specification and Analysis Method 2.1. Specification Ideally a requirements specification should consider the system as a black box, defining the system s output given a series of input events. Particularly for large-scale systems, however, it is not feasible in practice to define the relationship between input and output events directly. For this reason, an internal system state is introduced as an auxiliary means to specify this relationship. On the basis of input events, the system accumulates information on the current state of affairs in its environment. This information is represented by the system s internal state. The internal state, in turn, is used to decide which output events occur. We make the following modeling assumptions: Input events are atomic, so they occur instantaneously, one at a time. Each input event causes a state transition, which also takes place instantaneously. A state transition may trigger (cause) one or more output events. To formalise these ideas, we propose the following system model, that defines the basic building blocks of a formal specification. A. Static system interface. The static interface between the system and its environment is defined by the kind of input and output events that are handled by the system. Since we want events to carry arbitrary parameters, the sets of possible input and output events may be infinite. So formally the static system interface is determined by: a set of input events Á; a set of output events Ç. B. Information model. As mentioned earlier, the internal state of the system is introduced as an auxiliary means to define the relationship between input and output events. The information model determines the internal state space of the system; it is defined by: a list of state variables and their types - together these span the system s state space Ë; a set of invariant conditions ÁÒÚ Ë; a set of allowed initial states Ë ¼ Ë. C. Behavioural Model. The system s behaviour is defined as a relationship between input and output events. This relationship is specified indirectly by means of state transitions. For each input event it is defined which state transition is caused by it, and conversely, for each output event it is specified by which state transition it is triggered. Formally we define: a state transition function Á Ð Ë Ëµ, and an output trigger function Ç Ð Ë Ëµ. Here Ð Ë Ëµ denotes the powerset of Ë Ë. D. Environment. Finally, any assumptions about the system s environment are explicitly specified. These assumptions are formulated as preconditions on the input events. These preconditions can be seen as requirements that the system s environment should meet: as long as these conditions are met, the system shall exhibit well-defined behaviour. In this way, the integration of the system into a certain environment can be verified to work. Formally these preconditions are defined as: a function È Ö ¾ Á Р˵, that maps each input event onto a condition on the system s internal state. A system specification, constructed from the above building blocks, is to be interpreted as follows. Initially, the system is in some state ¾ Ë ¼ ÁÒÚ. Assume that during execution, the system is in some state ¾ Ë, and that input event ¾ Á occurs. Provided that ¾ È Ö µ, the system then moves (nondeterministically) to some state Ø, such that ص ¾ µ and Ø ¾ ÁÒÚ (if such a Ø exists). During

this transition, all output events Ó, for which ص ¾ Óµ are triggered. If such a Ø cannot be found or if ¾ È Ö µ, the system is blocked (deadlock), which is an undesirable situation. Note that, using this interpretation, we need not specify how the invariant is maintained by the various state transitions. Instead, the next state Ø is taken from the intersection of µ and ÁÒÚ. In this way, the specification tends to become less operational and more declarative. 2.2. Analysis For the analysis of a requirements specification, a distinction can be made between verification and validation. By verification, the intrinsic quality of the specification is addressed. Special attention is given to the verification that the various blocks of a specification fit together consistently. It cannot be verified however, whether the intended system has been specified. This check is the purpose of validation. So validation addresses the question whether the correct system is specified, while verification addresses the question whether a system is specified correctly. Though formal methods can be a valuable tool in validating a requirements specification, by challenging the specification by putative theorems, we focus in this paper on verification. Parsing and type checking form the first sanity check of a specification. Together, these checks reveal a lot of errors. In a strongly typed language, most typos are detected by parsing and type checking, and also a number of conceptual problems are detected by the latter. In a strongly-typed logical language, type checking can also guarantee semantical completeness, for instance totality of functions, exhaustiveness of case distinctions and tables etc. Besides parsing and type checking, it is important for the proposed specification model to verify that the set of possible initial states is non-empty. Recall that all states have to satisfy the invariant, including the initial state. Note that this establishes that the invariant is consistent, since we found a model. Proof obligation 1. ¾ Ë ¼ ÁÒÚ Another proof obligation is to establish deadlock freedom in any environment that guarantees the precondition. Assuming that some input event occurs in state, the system is blocked either if does not satisfy È Ö µ or if all candidate next states Ø (i.e. ص ¾ µ) do not meet the invariant condition. By establishing deadlock freedom, we also show that the state transitions and the invariants are consistent (under assumption of the precondition), because the existence of transitions that satisfy both is proved. This proof obligation can be formally stated as follows. Note that we can safely assume that satisfies the invariant. Proof obligation 2. ¾ Á ¾ ÁÒÚ È Ö µ Ø ¾ ÁÒÚ Øµ ¾ µ Other general proof obligations for specifications can be stipulated here. Especially, we do not yet have an obligation to check that the specification of the output events is reasonable. As in [5], it could be required that the state transitions are deterministic. In general, however, we do not require this of a specification, since we will exploit nondeterminism as an abstraction technique to support step-wise refinement. 2.3. Tool Support In order to have tool support at this experimental stage of research, we use an existing general-purpose theorem prover. We have implemented the proposed specification and analysis method in PVS (Prototype Verification System) [7, 9]. PVS is a specification language integrated with support tools and a theorem prover, developed at SRI, Stanford. PVS supports the proposed specification method in various ways. Firstly, specifications are written in the language of PVS, which is based on strongly-typed higherorder logic. The specification can be distributed over a number of theories, which are parameterizable, and can import each other. Each theory consists of a number of definitions and theorems. These can be made available in other theories, by the importing-mechanism. A theory can also make assumptions on its parameters. Secondly, using PVS a specification can be parsed automatically, and type checked. Type checking is to a large extent automatic, but due to the rich type system certain checks are undecidable in general. These cases lead to extra type check conditions (TCCs). A theory can only be regarded type correct, if these TCCs are proved. Finally, the TCCs, together with the proof obligations and the putative theorems declared in the specification, can be proved using the theorem prover. This is an interactive tool, because theorem proving in higher-order logic is undecidable. So the user interactively provides commands to apply the proof rules. However, PVS supports a lot of automation to decrease the number of user interactions. We like to mention here: term rewriting techniques, decision procedures for linear arithmetic, model checking on finite state systems, a BDD-based decision procedure for propositional logic, and advanced heuristics to deal with quantifiers. Due to space limitations, we are not able to explain all details of PVS. The intentions of the specifications that we present in this paper, however, should be clear from the accompanying text. For more details about PVS, we refer to e.g. [8].

3. Case Study: Initial Specification To illustrate and evaluate the proposed method, we formally specify and analyze the requirements of a subsystem that were inspired by a naval command and control system. The subsystem that we consider here is Track Management (TM). First we informally describe the requirements of TM, focusing on automatic track fusion, which is one of the main tasks of TM. The initial description is still quite global; many details are missing and some requirements are missing as well. We will apply the method from Section 2 using PVS to formally specify TM. The specification is decomposed into blocks A through D as previously discussed. Since the initial description of TM is still very general, we will exploit nondeterminism in the state transition relation to coarsely delineate the intended system behaviour. Additionally, we will make frequent use of uninterpreted terms for parts of the specification that are initially left open. In the next section the initial specification will be completed by two successive refinement steps. 3.1. Track Management In command and control systems a track models a target that has been detected in the environment. A track consists of the target s measured position, velocity, identification, etc. Tracks occur on (at least) two levels: sensor tracks, as reported by the system s sensors; system tracks, as compiled and maintained by TM. A target in the environment may be simultaneously detected by multiple sensors. Since the observations are subject to measurement noise, this may result in different sensor tracks. One of the tasks of TM is to create and maintain a single system track for one or more sensor tracks that originate from the same target. To this end, TM applies a set of predefined criteria to determine whether a sensor and system track correlate. The sensors interact with TM by initiating new sensor tracks, and updating or wiping existing sensor tracks. TM maintains a track database, containing the current sets of sensor and system tracks, their relationship, and the derived system tracks state. TM reports to the operator (and other subsystems) by initiating, updating, or wiping system tracks. In addition, TM shall generate a warning if a sensor track and its related system track decorrelate, alerting the operator of a split target situation. 3.2. Static System Interface The formal specification of TM starts from the system interface, which is defined in terms of the types of input and output events. From the description of TM we see that there are three types of input events Ò Û, ÙÔ Ø and Û Ô, with the purpose of initiating, updating and deleting sensor tracks. Each input event carries a sensor track as parameter. The Ò Û and ÙÔ Ø events additionally carry the sensor track s current state, reporting on its position, velocity identification, etc. Because at this stage it is not yet clear exactly which attributes the sensor track s state will be composed of, we use PVS uninterpreted type declarations, using the keyword Ì È or Ì È ; the latter indicates that the type is non-empty. To facilitate step-wise refinement, we put these uninterpreted terms into the parameter list of the PVS theory that represents the initial specification of TM. Later the initial specification can be refined by (partially) instantiating the parameters with actual definitions. Using abstract data types to define the set of input events Á Ú ÒØ, the PVS theory that specifies TM starts as follows. Ò Ø Ð Ô Ë Ò ÓÖ ØÖ Ì È Ë Ò ÓÖ ØÖ Ø Ø Ì È ÌÀ ÇÊ Á Ú ÒØ Ì Ì È Ò Û Ë Ò ÓÖ ØÖ Ü Ë Ò ÓÖ ØÖ Ø Ø µ Ò Û Ò ÓÖ ØÖ ÙÔ Ø Ë Ò ÓÖ ØÖ Ü Ë Ò ÓÖ ØÖ Ø Ø µ ÙÔ Ø Ò ÓÖ ØÖ Û Ô Ë Ò ÓÖ ØÖ µ Û Ô Ò ÓÖ ØÖ Æ Á Ú ÒØ Æ Ò Ø Ð Ô The set of output events Ç Ú ÒØ is defined similarly. We introduce three output events: Ò Û, ÙÔ Ø, and Û Ô, this time defined on system tracks. Again we use uninterpreted types ËÝ Ø Ñ ØÖ Ì È and ËÝ Ø Ñ ØÖ Ø Ø Ì È to refrain from details and add these types to the parameter list of the theory. Additionally, the operator shall be warned of decorrelating sensor and system tracks, which we model by the output event Û ÖÒ.

Ç Ú ÒØ Ì Ì È Ò Û Ø ËÝ Ø Ñ ØÖ Ý ËÝ Ø Ñ ØÖ Ø Ø µ Ò Û Ý Ø Ñ ØÖ ÙÔ Ø Ø ËÝ Ø Ñ ØÖ Ý ËÝ Ø Ñ ØÖ Ø Ø µ ÙÔ Ø Ý Ø Ñ ØÖ Û Ô Ø ËÝ Ø Ñ ØÖ µ Û Ô Ý Ø Ñ ØÖ Û ÖÒ Ë Ò ÓÖ ØÖ µ Û ÖÒ Æ Ç Ú ÒØ 3.3. Information Model The informal description of TM states that TM maintains a track database, containing the current sets of sensor and system tracks, their relationship, and the derived system tracks state. We model the system s internal state as a record consisting of these four components. ËØ Ø Ì È Ò ÓÖ ØÖ ØÓ Ë Ò ÓÖ ØÖ Ý Ø Ñ ØÖ ØÓ ËÝ Ø Ñ ØÖ Ø Ø ËÝ Ø Ñ ØÖ ¹ ËÝ Ø Ñ ØÖ Ø Ø Ö Ð Ø ÔÖ Ë Ò ÓÖ ØÖ ËÝ Ø Ñ ØÖ From the description of TM it becomes clear that the relation between sensor and system tracks is restricted to those that are actually present in the current state. Furthermore, each system track should be related to at least one sensor track, and conversely, each sensor track should be related to precisely one system track. These requirements can be formulated as an invariant condition on the state. In this way, we fix some global properties of the system, without indicating how they should be maintained. Î Ê Ë Ò ÓÖ ØÖ Ø Î Ê ËÝ Ø Ñ ØÖ Î Ê ËØ Ø ÓÒ ØÖ Òؽ µ ÓÓÐ ÇÊ ÄÄ Ø Ö Ð Ø µ ص Ò ÓÖ ØÖ µ µ ² Ý Ø Ñ ØÖ µ ص ÓÒ ØÖ Òؾ µ ÓÓÐ ÇÊ ÄÄ Ò ÓÖ ØÖ µ µ Ü Ø ½ Ø Ö Ð Ø µ ص ÓÒ ØÖ ÒØ µ ÓÓÐ ÇÊ ÄÄ Ø Ý Ø Ñ ØÖ µ ص ÁËÌË Ö Ð Ø µ ص ÁÒÚ Ö ÒØ µ ÓÓÐ ÓÒ ØÖ Òؽ µ ² ÓÒ ØÖ Òؾ µ ² ÓÒ ØÖ ÒØ µ We complete the information model by specifying the set of allowed initial states. In an initial state we require that the set of sensor tracks is empty. Ò Ø Ð µ ÓÓÐ ÑÔØÝ Ò ÓÖ ØÖ µµ Note that the invariant restricts the set of system tracks and their relationship. In the analysis of the specification (Section 3.6) we will show that there exists at least one initial state satisfying the invariant. 3.4. Behavioural Model The behavioural model defines the relationship between input and output events by mapping input events to state transitions, and similarly by mapping output events to state transitions. For TM we arrive at the following pair of tables, binding each input or output event to a (nondeterministic) state transition. The next step in the specification will be to define these state transitions. Î Ê Á Ú ÒØ Ó Î Ê Ç Ú ÒØ Ü Î Ê Ë Ò ÓÖ ØÖ Ø Ø Ý Î Ê ËÝ Ø Ñ ØÖ Ø Ø Á Ú ÒØ Ñ ÔÔ Ò µ ËØ Ø ËØ Ø ¹ ÓÓÐ Ë Ë Ç Ò Û Üµ Ò Û Ò ÓÖ ØÖ Üµ ÙÔ Ø Üµ ÙÔ Ø Ò ÓÖ ØÖ Üµ Û Ô µ Æ Ë Ë Û Ô Ò ÓÖ ØÖ µ Ç Ú ÒØ Ñ ÔÔ Ò Ó µ ËØ Ø ËØ Ø ¹ ÓÓÐ Ë Ë Ó Ç Ò Û Ø Ýµ Ò Û Ý Ø Ñ ØÖ Ø Ýµ ÙÔ Ø Ø Ýµ ÙÔ Ø Ý Ø Ñ ØÖ Ø Ýµ Û Ô Øµ Û ÖÒ µ Æ Ë Ë Û Ô Ý Ø Ñ ØÖ Øµ Ø Ø ÓÖÖ Ð Ø ÓÒ µ Due to space considerations we discuss only a representative part of the complete specification. In particular, we consider the state transitions Ò Û Ò ÓÖ ØÖ and Ø Ø ÓÖÖ Ð Ø ÓÒ. When a new sensor track is reported, TM may relate the sensor track to an existing system track, provided that certain correlation criteria are met. At this stage of the specification, however, we are not yet concerned with the actual correlation test to be used. Hence, we introduce the correlation test as an uninterpreted relation ÓÖÖ Ð Ø Ü Ýµ ÓÓÐ between a sensor and a system track state, and add it to the parameter list of the theory. For the state transition Ò Û Ò ÓÖ ØÖ we require

that the new sensor track is added to the current set of sensor tracks. Note how the invariant condition on the state, particularly ÓÒ ØÖ Òؾ, already requires that the sensor track be related to some system track. Additionally, we now state that the sensor and system track shall satisfy the correlation test, if the system track already exists. Using the informal description of TM as a basis, we are at this stage of requirements specification not yet concerned with the exact conditions under which a new system track shall be created or an existing system track shall be updated by a new sensor track. Neither do we specify how the system track state shall be initialized or updated. Using nondeterminism in the definition of Ò Û Ò ÓÖ ØÖ, we leave all possible implementations yet open. Ò Û Ò ÓÖ ØÖ Üµ µ ÓÓÐ Ò ÓÖ ØÖ µ Ò ÓÖ ØÖ µµ ² ÇÊ ÄÄ Ø Ö Ð Ø µ ص ² Ý Ø Ñ ØÖ µ ص ÓÖÖ Ð Ø Ü Ø Ø µ صµ The state transitions of the two remaining input events ÙÔ Ø and Û Ô can be defined similarly. Our next concern are the state transitions that trigger the output events. As an example we consider the state transition that produces a warning to the operator in case a sensor track and its related system track decorrelate. Formally stated, a decorrelation is detected if a sensor track is related to different system tracks in subsequent states and : ؽ ؾ Î Ê ËÝ Ø Ñ ØÖ Ø Ø ÓÖÖ Ð Ø ÓÒ µ µ ÓÓÐ ÁËÌË Ø½ ؾ Ö Ð Ø µ ؽµ 3.5. Environment ² Ö Ð Ø µ ؾµ ² ؽ» ؾ We complete the initial requirements specification by making the assumptions on the system interface explicit. Here the interface is restricted to the interaction between the system s sensors and TM. We expect the sensors to obey the track life-cycle. This means that a sensor is assumed to initiate only fresh sensor tracks and, conversely, to update or wipe only existing sensor tracks. These assumptions are formulated as a precondition on the system s internal state: ÈÖ ÓÒ Ø ÓÒ µ µ ÓÓÐ Ë Ë Ç Ò Û Üµ ÆÇÌ Ò ÓÖ ØÖ µ µ ÙÔ Ø Üµ Ò ÓÖ ØÖ µ µ Û Ô µ Æ Ë Ë Ò ÓÖ ØÖ µ µ 3.6. Analysis of the Initial Specification We start the analysis of the initial specification by verifying the proof obligations that were introduced in Section 2.2. In PVS we have implemented a generic theory that automatically generates the proof obligations when it is imported into a specification [4]. When we import this theory into the specification of TM, PVS automatically generates the following two proof obligations while type checking. ÁÅÈÇÊÌÁÆ ½ Ì ½ Ç ÄÁ ÌÁÇÆ ÁËÌË Ò Ø Ð µ ² ÁÒÚ Ö ÒØ µ ÁÅÈÇÊÌÁÆ ½ Ì ¾ Ç ÄÁ ÌÁÇÆ ÇÊ ÄÄ Á Ú ÒØ ËØ Ø µ ÈÖ ÓÒ Ø ÓÒ µ µ ² ÁÒÚ Ö ÒØ µ ÁËÌË ËØ Ø µ ÁÒÚ Ö ÒØ µ ² Á Ú ÒØ Ñ ÔÔ Ò µ µµµ The first proof obligation is to check that there exists at least one initial state that satisfies the invariant condition on the system s internal state. In the interactive prover, this property can be proved by first instantiating to the state, where the sets of sensor and system tracks and their relationship are empty. Then the single PVS command ÊÁÆ µ finishes the proof by automatically verifying that all conditions on are met. Note that this also proves consistency of the invariant condition, because we have found at least one state by which it is met. The second proof obligation concerns the absence of deadlock in any environment that guarantees the precondition. Using the interactive proof checker of PVS, the proof proceeds by case distinction over the possible input events. For each input event an auxiliary lemma can be formulated, stating that a transition to a new state is possible, given that the precondition holds in the current state. For the input event Ò Û the lemma reads as follows. Ò Û Ä ÅÅ ÁÒÚ Ö ÒØ µ ² ÈÖ ÓÒ Ø ÓÒ Ò Û Üµµ µ ÁËÌË ÁÒÚ Ö ÒØ µ ² Ò Û Ò ÓÖ ØÖ Üµ µ For the remaining two input events similar lemmas can be formulated. The proofs are based on the construction of a state that is shown to satisfy the invariant condition and the state transition relation. It appears that the proof of the above lemma requires the assumption that a fresh ËÝ Ø Ñ ØÖ can always be found in the construction of. In PVS this assumption on the type ËÝ Ø Ñ ØÖ can be explicitly formulated in the theory Ò Ø Ð Ô.

4. Refinement Techniques The formal specification of TM is still very global and is lacking many details. For instance, the actual sensor and system track states and the correlation criteria were left out from the initial specification. Furthermore, the specification still allows some unintended implementations; a potential implementation of Ò Û Ò ÓÖ ØÖ, for example, can easily decide to always create a new system track. Here we discuss two ways of refining the initial specification, based on (1) reduction of nondeterminism in state transitions, and (2) instantiation of uninterpreted terms. We discuss both techniques by successively applying them to the initial specification of TM. 4.1. First refinement Unintended implementations of the state transition Ò Û Ò ÓÖ ØÖ can be ruled out by extending the initial requirements as follows. If a new sensor track is received by TM, a new system track shall be initiated only if the correlation tests on all existing system tracks fail; existing system tracks shall remain unchanged. Otherwise the new sensor track is related to a correlating system track, and the correlating system track s state shall be updated accordingly. Again, all other system tracks shall remain unchanged. To formally define these requirements, we introduce two auxiliary state transitions Ò Û Ý Ø Ñ ØÖ and ÓÖÖ Ð Ø Ò Ý Ø Ñ ØÖ to explicitly cover both cases. At this stage we are not yet concerned with the actual calculations on the system track state, so we add uninterpreted functions Ò Ø Ø and ÙÔ Ø to the parameter list of the specification. Ö Ø Ö Ò Ñ ÒØ Ë Ò ÓÖ ØÖ Ë Ò ÓÖ ØÖ Ø Ø ËÝ Ø Ñ ØÖ ËÝ Ø Ñ ØÖ Ø Ø Ì È ÓÖÖ Ð Ø Ë Ò ÓÖ ØÖ Ø Ø ËÝ Ø Ñ ØÖ Ø Ø ¹ ÓÓÐ Ò Ø Ø Ë Ò ÓÖ ØÖ Ø Ø ¹ ËÝ Ø Ñ ØÖ Ø Ø ÙÔ Ø Ë Ò ÓÖ ØÖ Ø Ø ÌÀ ÇÊ ËÝ Ø Ñ ØÖ Ø Ø ¹ ËÝ Ø Ñ ØÖ Ø Ø Æ Ö Ø Ö Ò Ñ ÒØ In this theory the state transitions Ò Û Ý Ø Ñ ØÖ and ÓÖÖ Ð Ø Ò Ý Ø Ñ ØÖ are defined as follows. Ò Û Ý Ø Ñ ØÖ Üµ µ ÓÓÐ ÇÊ ÄÄ Ø Ý Ø Ñ ØÖ µ ص ² ÁËÌË Ø ÆÇÌ ÓÖÖ Ð Ø Ü Ø Ø µ صµµ ÆÇÌ Ý Ø Ñ ØÖ µ صµ ² Ò ÓÖ ØÖ µ Ò ÓÖ ØÖ µµ Ý Ø Ñ ØÖ Ø Ý Ø Ñ ØÖ µµ Ö Ð Ø Øµ Ö Ð Ø µµ Ø Ø Ø Ø µ ÏÁÌÀ Ø Ò Ø Ø Üµ ÓÖÖ Ð Ø Ò Ý Ø Ñ ØÖ Üµ µ ÓÓÐ ÁËÌË Ø Ý Ø Ñ ØÖ µ ص ² ÓÖÖ Ð Ø Ü Ø Ø µ صµ ² ÏÁÌÀ Ò ÓÖ ØÖ Ò ÓÖ ØÖ µµ Ö Ð Ø Øµ Ö Ð Ø µµ Ø Ø Ø Ø µ ÏÁÌÀ Ø ÙÔ Ø Ü Ø Ø µ صµ Note that both state transitions are still nondeterministic. In Ò Û Ý Ø Ñ ØÖ any fresh system track is allowed, and ÓÖÖ Ð Ø Ò Ý Ø Ñ ØÖ does not specify which system track shall be chosen, if there is more than one correlating system track. The Ò Û Ò ÓÖ ØÖ state transition from the initial specification can now be redefined as follows. Ò Û Ò ÓÖ ØÖ Üµ µ ÓÓÐ Ò Û Ý Ø Ñ ØÖ Üµ µ ÇÊ ÓÖÖ Ð Ø Ò Ý Ø Ñ ØÖ Üµ µ The other state transitions from the initial specification for updating and wiping sensor tracks can be refined in a similar fashion. We are obliged to verify that the refined state transitions do not introduce any behaviour that is excluded by the initial specification. Formally, in terms of the basic building blocks from Section 2.1, for any state transition µ that is refined by state transition ¼ µ, it should be proved that, for any Ü Ý ¾ ÁÒÚ, if Ü Ýµ ¾ ¼ µ and Ü ¾ È Ö µ, then Ü Ýµ ¾ µ. We have implemented a generic PVS theory that, when imported into the refined specification together with the initial specification, automatically generates the corresponding proof obligation in PVS. For the refined

specification of TM, the proof can be established using the interactive proof checker of PVS by case distinction over the various state transition relations. In particular, for the refined transition Ò Û Ò ÓÖ ØÖ we can prove the following lemma. Ľ Ä ÅÅ Ò Û Ò ÓÖ ØÖ Üµ µ ² ÁÒÚ Ö ÒØ µ ² ÁÒÚ Ö ÒØ µ ² ÈÖ ÓÒ Ø ÓÒ Ò Û Üµµ µ Ò Ø Ð Ô ºÒ Û Ò ÓÖ ØÖ Üµ µ Finally, we should verify the proof obligations from Section 2.2 for the refined specification. Since the refined specification has more requirements, that is, allows fewer state transitions, the proofs need to be established explicitly. The proofs, however, are very similar to those of the initial specification in fact, constructing the next state is more straightforward, due to the more operational definition of the state transitions in the refined specification. 4.2. Second refinement In the initial specification as well as in the previous refinement, some types and constants were left uninterpreted, thus allowing some degree of freedom in the implementation. In the second refinement of TM, we now actually assign a meaning to these uninterpreted symbols. To facilitate this refinement step, the uninterpreted symbols were specified in the parameter list of the previous specification. In this way, a set of specifications is obtained, one for each value of the parameters. A refinement of the specification can be seen as a (partial) instantiation of these parameters, thus decreasing the set of possible implementations. The only proof obligation is that the refined specification is indeed an instantiation of the original specification. In particular, it must be checked that the actual parameters satisfy the assumptions put on the parameters. These checks are automatically generated by the PVS type checker. To illustrate this, we continue with the requirements specification of TM with a second refinement step. It is decided that the sensor and system track states shall consist of three dimensional position and velocity vectors, and identification of the target. In addition, sensor tracks shall contain information regarding their source. A sensor and system track shall correlate if their mutual distance is within some predefined margin and their identification is not conflicting. In a similar fashion the initiation and updating of system tracks can be described in more detail, resulting in a refined specification that can be outlined as follows. Note how the ÁÅÈÇÊÌÁÆ clause at the end of the PVS theory actually instantiates the specification of the first refinement with the definitions of the second refinement. ÓÒ Ö Ò Ñ ÒØ Ë Ò ÓÖ ØÖ ËÝ Ø Ñ ØÖ ËÓÙÖ Ì È Å Ö Ò ßÜ Ö Ð Ü ¼Ð ÌÀ ÇÊ Á ÒØ Ø ÓÒ Ì È ß Ö Ò Ó Ø Ð Ô Ò Ò Ð Î ØÓÖ Ì È Ü Ý Þ Ö Ð Ë Ò ÓÖ ØÖ Ø Ø Ì È ÓÙÖ ËÓÙÖ ÒØ Ø ÓÒ Á ÒØ Ø ÓÒ ÔÓ Ø ÓÒ Ú ÐÓ ØÝ Î ØÓÖ ËÝ Ø Ñ ØÖ Ø Ø Ì È ÓÖÖ Ð Ø Ü Ýµ ÓÓÐ Ø Ò Ü Ýµ Å Ö Ò ² ÆÇÌ ÓÒ Ð Ø Ò ÒØ Ø ÓÒ Üµ ÒØ Ø ÓÒ Ýµµ ± Ò Ø ÓÒ Ó Ò Ø Ø Ò ÙÔ Ø ÁÅÈÇÊÌÁÆ Ö Ø Ö Ò Ñ ÒØ Ë Ò ÓÖ ØÖ Ë Ò ÓÖ ØÖ Ø Ø ËÝ Ø Ñ ØÖ ËÝ Ø Ñ ØÖ Ø Ø ÓÖÖ Ð Ø Ò Ø Ø ÙÔ Ø Æ ÓÒ Ö Ò Ñ ÒØ The second refinement still has parameters for the sensor and system tracks (these are actually object identifiers and are left as implementation detail), for the ËÓÙÖ of sensor tracks, and for the Å Ö Ò that plays a role in the correlation test. So it is possible to refine this specification even further. Using the PVS type checker, the second refinement is automatically proved to be type correct, which establishes the correctness of this refinement step. Also note that, since the second refinement is an instance of the first refinement, every theorem proved in the first refinement automatically holds in the second. This holds especially for the verification proof obligations, so no further verification is needed. 5. Conclusion The general goal of our research is to construct a formal method that supports requirements specification and analy-

sis of industrial-strength systems, with a particular emphasis on command and control systems. Step-wise refinement and tool support are two indispensable means to this end. Using a realistic case study, we have in this paper explored two refinement techniques based on reduction of nondeterminism and instantiation of uninterpreted symbols. Specifications are written in higher-order logic and essentially define a state-transition system that accepts input events and produces output events. PVS appeared to be well-suited for implementing an environment that directly supports this method. Using the importing mechanism of PVS, the proof obligations to verify the well-definedness of a specification or the correctness of a refinement step can be automatically generated. The interactive proof checker of PVS then assists in constructing the required proofs. Using uninterpreted symbols, yet incomplete specifications can be verified, or validated by means of putative theorems. The advantage of this technique is that, when later refining these specifications by instantiating some of the uninterpreted symbols with actual definitions, all proven properties of the original specification remain valid for the refined specification. The designers of PVS at SRI International already advocated the use of PVS during the early phases of system engineering. E.g. [6] describes the use of strong type checking, completeness and consistency checking using powerful decision procedures and model-checking of PVS for requirements engineering. This has been applied in several industrial applications. For instance, [1] describes four case studies in which requirements for new flight software subsystems on NASA s Space Shuttle were analyzed. The size of the analyzed specifications ranges from 20 to 110 pages of informal description. Analysis included reachability analysis using the state exploration tool Murphi and theorem proving with PVS. References [1] J. Crow and B. Di Vito. Formalizing space shuttle software requirements: Four case studies. ACM Transactions on Software Engineering and Methodology, 7(3):296 332, 1998. [2] J.C. van de Pol, J.J.M. Hooman, and E. de Jong. Formal requirements specification for command and control systems. In Proc. of the Conf. on Engineering of Computer Based Systems, pages 37 44, Jerusalem, 1998. IEEE. [3] J.C. van de Pol, J.J.M. Hooman, and E. de Jong. Modular formal specification of data and behaviour. In K. Araki, A. Galloway, and K. Taguchi, editors, Proceedings of the 1st International Conference on Integrated Formal Methods, pages 109 128, York, UK, 1999. Springer. [4] J.C. van de Pol, J.J.M. Hooman, and E. de Jong. Requirements specification and analysis of command and control systems. Technical Report 99-09, Department of Mathematics and Computing Science, Eindhoven University of Technology, Eindhoven, The Netherlands, 1999. [5] M.P.E. Heimdahl and N.G. Leveson. Completeness and consistency in hierarchical state-based requirements. IEEE Transactions on Software Engineering, 22(6):363 377, 1996. [6] J. Rushby. Calculating with requirements. In 3rd Symposium on Requirements Engineering, pages 144 146. IEEE, 1997. [7] S. Owre, J.M. Rushby, N. Shankar, and F. Von Henke. Formal Verification of Fault-Tolerant Architectures: Prolegomena to the Design of PVS. IEEE Transactions on Software Engineering, 21(2):107 125, 1995. [8] S. Owre, N. Shankar, J.M. Rushby, and D.W.J. Stringer- Calvert. PVS Language Reference. Computer Science Laboratory, SRI International, Menlo Park, CA, September 1998. [9] S. Owre, S. Rajan, J.M. Rushby, N. Shankar, and M.K. Srivas. PVS: Combining specification, proof checking, and model checking. In R. Alur and T.A. Henzinger, editors, Proceedings of the Eighth International Conference on Computer Aided Verification CAV, volume 1102 of Lecture Notes in Computer Science, pages 411 414. Springer Verlag, 1996. Another important issue in the requirements specification and analysis of large-scale systems is the construction of modular specifications. In general it should be possible to decompose a specification into logical components. These do not necessarily coincide with the physical components of the system. The physical decomposition of the system is typically decided in a later design phase. Each logical component should be defined by a number of specification blocks, and it should be possible to verify that the composition of the various components is consistent. In [3] we proposed a method based on temporal logic that supports modular specification and analysis. It remains future research to determine how both methods can be integrated into a unifying framework, capturing modularity and refinement.