Hostname: page-component-74656f9884-8r8nv Total loading time: 0 Render date: 2026-11-07T00:06:33.319Z Has data issue: false hasContentIssue false

TCAS software verification using constraint programming

Published online by Cambridge University Press:  26 July 2012

Arnaud Gotlieb*
Affiliation:
INRIA – Rennes – Bretagne Atlantique, 35042 Rennes Cedex, France; e-mail: Arnaud.Gotlieb@inria.fr Certus Software V&V Centre, Simula Research Laboratory, Lysaker, Norway; e-mail: arnaud@simula.no
Rights & Permissions [Opens in a new window]

Abstract

Safety-critical software must be thoroughly verified before being exploited in commercial applications. In particular, any TCAS (Traffic Alert and Collision Avoidance System) implementation must be verified against safety properties extracted from the anti-collision theory that regulates the controlled airspace. This verification step is currently realized with manual code reviews and testing. In our work, we explore the capabilities of Constraint Programming for automated software verification and testing. We built a dedicated constraint solving procedure that combines constraint propagation with Linear Programming to solve conditional disjunctive constraint systems over bounded integers extracted from computer programs and safety properties. An experience we made on verifying a publicly available TCAS component implementation against a set of safety-critical properties showed that this approach is viable and efficient.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2012
Figure 0

Figure 1 TCAS (Traffic Alert and Collision Avoidance System) alarms

Figure 1

Figure 2 Call graph of tcas.c

Figure 2

Figure 3 Function alt_sep_test from tcas.c

Figure 3

Table 1 Safety properties for tcas.c

Figure 4

Figure 4 Resolution advisories. CPA = closest point of approach; TCAS = Traffic Alert and Collision Avoidance System

Figure 5

Figure 5 Program foo

Figure 6

Figure 6 Dynamic linear relaxations (DLRs)

Figure 7

Figure 7 The grey box contains all the integer points inside the polyhedron

Figure 8

Figure 8 Relaxation of multiplication

Figure 9

Figure 9 Weak Join vs. Convex Hull

Figure 10

Figure 10 Implementation

Figure 11

Table 2 Verification of safety properties