flowchart LR
A["Déterminer ce qui doit </br> être vérifié"]
B["Écrire les théorèmes </br> à prouver"]
C["**Écrire les preuves**"]
D("Certifier les preuves </br> avec un outil fiable")
A --> B
B --> C
C --> D
Introduction
def is_server_available(server_online, whitelist_enabled,
player_is_whitelisted, ban_active,
max_players, current_players,
maintenance, op_override):
return (
(server_online and not maintenance and not ban_active
and (not whitelist_enabled or player_is_whitelisted)
and (current_players < max_players or op_override))
or (op_override and server_online and not ban_active)
or (not server_online and not maintenance
and op_override and not ban_active)
) and not (maintenance and not op_override)


Program testing can be used to show the presence of bugs, but never to show their absence
Dijkstra
On veut vérifier que les accès sont cohérents avec les règles du serveur :
L’IA peut-elle éviter d’avoir à faire ce travail pénible ?
Une question de spécification
flowchart LR
A["Déterminer ce qui doit </br> être vérifié"]
B["Écrire les théorèmes </br> à prouver"]
C["**Écrire les preuves**"]
D("Certifier les preuves </br> avec un outil fiable")
A --> B
B --> C
C --> D
Où est-ce que ça pourrait mal se passer ?
`
Logique et démonstration — Jules Chouquet — page du cours