Adrien Durier PRO
Enseignant-Chercheur en informatique @ Université Paris-Saclay
Concurrency Theory for formal verification of
Cyber-Physical Systems
Adrien Durier
LMF, séminaire au vert
3 juin 2025
Work in collaboration with
Paolo Crisafulli, Benjamin Puyobro, Safouan Taha, Burkhart Wolff
Context:
Autonomous vehicles
Collision-avoiding driving strategies
and driving control
RSS: Responsibility-Sensitive Safety
On a formal model of safe and scalable self-driving cars
S. Shalev-Shwartz, S. Shammah, A. Shashua
Mobileye, 2017:
RSS: Responsibility-Sensitive Safety
When far enough:
Cars may pick whatever speed they choose
RSS: Responsibility-Sensitive Safety
RSS 'Safe' Distance
RSS: Responsibility-Sensitive Safety
RSS 'Safe' Distance
Safety Violation: Rear has to start braking
as soon as it can react
(according to its reaction time)
RSS: Responsibility-Sensitive Safety
A car only cares about its own 'safety' violation
RSS: Responsibility-Sensitive Safety
RSS: Responsibility-Sensitive Safety
RSS: Responsibility-Sensitive Safety
Possible safety violation
(from blue point of view)
RSS: Responsibility-Sensitive Safety
Green goes 'straight':
its responsibility is not engaged
RSS: Responsibility-Sensitive Safety
Mobileye claim:
when car can change lanes,
it's still fine.
RSS: Responsibility-Sensitive Safety
2 Dimensions: Parking
RSS: Responsibility-Sensitive Safety
RSS: Responsibility-Sensitive Safety
Possible 'lateral' safety violation
But not 'longitudinal'
Possible 'lateral' safety violation
But not 'longitudinal'
Mobileye Claim:
Everything is fine ("no need to brake")
As long as safe distance is maintained in one dimension
This is fine.
Goals
(Almost) All that follows is implemented and verified in Isabelle/HOL
The Framework
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Discrete + Continuous
Non-Deterministic Time-Triggered Model
Initial 'Scene'
For each agent:
Non-Deterministic Time-Triggered Model
Initial 'Scene'
...
...
...
...
...
...
...
...
...
...
Agree on
0,1s
0,01s
0,1s
Pick
The whole tree is called a scenario
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Discrete + Continuous
Please forgive the segments instead of hyperboles...
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Two cars on a lane...
Please forgive the segments instead of hyperboles...
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Two cars on a lane...
Please forgive the segments instead of hyperboles...
Safety distance
violation
Rear car starts braking
Car 1 (Front)
Car 2 (Rear)
Two cars on a lane...
Why CSP?
Non-deterministic choice (external)
Non-deterministic choice (internal)
'Sequential composition'
Parallel Composition (with forced synchronization)
CSP Crash Course
Menu
Pick a meal
CSP Crash Course
Not any
Contains both standard kinematics, driving strategy, and even possibly scheduling
Motions
Algebra of Motions:
Some operations preserve Invariants & Safety Properties...
Motions
Remember the Menu!
Car 1 (Front)
Car 2 (Rear)
Two cars on a lane...
Maxwell's 'Demon'
Scenarios
Everybody has to agree on timings & scenes
Scenarios
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Two cars on a lane...
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Two cars on a lane...
The demon ability to 'oversample'
makes it impossible to miss a collision!
Polychrony
Problems
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Every discretized time is a possible
point of decision
Safety distance
violation
Rear car starts braking
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Rear car starts braking
New Braking Point
Every discretized time is a possible
point of decision
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Oversampling may make it impossible to recover previous curve !!!!
Every discretized time is a possible
point of decision
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Rear car starts braking
Might not be able to take a decision (yet)
Every discretized time is a possible
point of decision
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Solution: Scheduling
(Cycle Times, Reaction Times)
Cycle time: car may only react at these points (exactly)
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Solution: Scheduling
(Cycle Times, Reaction Times)
Bad
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Solution: Scheduling
(Cycle Times, Reaction Times)
Can be applied directly in the 'Motions'
(by 'killing' bad branches)
Non-Deterministic Time-Triggered Model
Initial 'Scene'
...
...
...
...
...
...
...
...
...
...
0,1s
0,01s
0,1s
Non-Deterministic Time-Triggered Model
Initial 'Scene'
...
...
...
...
...
...
...
...
...
...
0,1s
0,01s
0,1s
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Solution: Scheduling
(Cycle Times, Reaction Times)
Reaction time: car have to be able to react before it ends
Car 1 (Front)
Car 2 (Rear)
Position (x)
Time
Solution: Scheduling
(Cycle Times, Reaction Times)
Reaction time: car have to be able to react before it ends
Position (x)
Time
Killing branches: effect on Bouncing Ball
Safety Properties
Safety Properties
Safety Property:
Liveness Properties:
Safety Properties
Safety Properties
Safety Properties
No collision!
Safety Properties
Monotony of safe processes:
If
Then
Safety Properties
Safety of a scenario:
A scenario is defined as safe relative to P if:
In other words, every scene of every trace of the scenario verifies P.
Safety Properties
Inductive proof by invariant
If, for some Pinv
Then scenario is P-safe
Example: RSS (2 cars, longi)
Inductive proof by invariant
RSS 'Safe' Distance
Invariant Proof:
If you start braking at RSS safe distance,
then you never break minimum distance
Liveness Properties
'Something good eventually happens'
Liveness Properties
'Something good eventually happens'
Something good?
"Eventually":
Liveness Properties
'Something good eventually happens'
Zenon's Paradox:
For something good to eventually happen, time needs to progress
(on at least some branches)
Theorem:
If M is a non-empty Motion, then time can progress in
By Adrien Durier
Concurrency Theory for formal verification of Cyber-Physical Systems - LMF - Séminaire au vert 2025