Skip to main content
The Traffic Collision Avoidance System (TCAS) II is one of the most safety-critical systems in commercial aviation. Mandated on all aircraft with more than 30 seats, TCAS provides the last line of defense against mid-air collisions. When two aircraft are on a collision course, TCAS coordinates vertical maneuvers to ensure they diverge one climbs, one descends. This specification models TCAS II Version 7.1, the current standard defined in RTCA DO-185B. Version 7.1 introduced critical improvements over 7.0, particularly in handling cases where the intruder aircraft doesn’t follow their Resolution Advisory (RA). The 2002 Überlingen mid-air collision, where conflicting instructions from TCAS and ATC led to tragedy, drove many of these enhancements.

Why Formally Specify TCAS?

TCAS is a distributed system with real-time constraints, coordination requirements, and safety-critical invariants. Plus I was asked if I could figure it out, this is my attempt at doing so. The specification captures:
  • Sensitivity levels (SL2-SL7) with altitude-dependent thresholds
  • Modified tau formula for threat detection that handles low closure rates
  • DMOD, ZTHR, and ALIM parameters per altitude band
  • Altitude inhibitions preventing dangerous advisories near the ground
  • Preventive vs Corrective RA selection based on predicted miss distance
  • RA timing constraints preventing oscillation between advisories
  • Multi-threat logic when multiple intruders exist simultaneously
  • Version 7.1 enhancements for detecting intruder non-compliance
The formal model allows verification of properties like “coordinated RAs always have complementary senses” and “no descent RA is issued below 1100 feet AGL.”

Specification Overview

The specification defines several key components:

Sensitivity Levels

TCAS adjusts its alerting thresholds based on altitude above ground level (AGL). Lower altitudes use more aggressive thresholds because there’s less time and space to maneuver:

Advisory Types

The specification models the full RA vocabulary:
  • Corrective RAs: Require immediate pilot action (Climb, Descend, Increase Climb/Descend, Crossing maneuvers, Reversals)
  • Preventive RAs: Limit vertical rate without requiring action (Don’t Climb, Don’t Descend, Limit Climb/Descend to specific rates)
  • Weakening RAs: Reduce RA strength as threat diminishes (Level Off, Maintain VS)

Coordination Protocol

When two TCAS II-equipped aircraft encounter each other, they coordinate via Mode S datalink to ensure complementary maneuvers. The specification models:
  • Sense selection based on geometry and received coordination
  • Reversal when same-sense conflict detected
  • Version 7.1 enhancement: reversal when intruder non-compliance detected

Full TLA+ Specification

Key Safety Properties

The specification verifies several critical invariants:

NoRABelowSL2

No Resolution Advisory can be issued when an aircraft is below 1000 ft AGL (Sensitivity Level 2). At this altitude, pilots need to focus on landing/takeoff and shouldn’t be distracted by TCAS maneuvers.

NoDescendRABelowThreshold

Descend RAs are inhibited below 1100 ft AGL to prevent TCAS from commanding descent into terrain.

CoordinatedRAsComplementary

When two TCAS II-equipped aircraft coordinate, their RAs must have complementary senses—if one climbs, the other descends. This prevents both aircraft from maneuvering in the same direction.

IntruderNonComplianceDetectable

The v7.1 enhancement: if the intruder isn’t following their RA after the expected pilot response time (5 seconds), the system detects this and can trigger a reversal for the compliant aircraft.

Model Checking Configuration

To run this specification, create a configuration file:
The state space grows quickly with more aircraft. For practical model checking, 2-3 aircraft with bounded altitude ranges work well(ish)