Coinduction - Coinduction

En informatique , la coinduction est une technique permettant de définir et de prouver les propriétés de systèmes d' objets en interaction simultanés .

La coinduction est le double mathématique de l' induction structurelle . Les types définis de manière coinductive sont connus sous le nom de codata et sont généralement des structures de données infinies , telles que des flux .

En tant que définition ou spécification , la coinduction décrit comment un objet peut être « observé », « décomposé » ou « détruit » en objets plus simples. En tant que technique de preuve , elle peut être utilisée pour montrer qu'une équation est satisfaite par toutes les implémentations possibles d'une telle spécification.

Pour générer et manipuler des codonnées, on utilise généralement des fonctions corecursives , en conjonction avec l' évaluation paresseuse . De manière informelle, plutôt que de définir une fonction par correspondance de motifs sur chacun des constructeurs inductifs, on définit chacun des "destructeurs" ou "observateurs" sur le résultat de la fonction.

En programmation, la programmation co-logique (co-LP pour brièveté) « est une généralisation naturelle de la programmation logique et de la programmation logique coinductive, qui à son tour généralise d'autres extensions de la programmation logique, telles que les arbres infinis, les prédicats paresseux et les prédicats communicants concurrents. Co-LP a des applications aux arbres rationnels, à la vérification de propriétés infinités, à l'évaluation paresseuse, à la programmation logique concurrente, à la vérification de modèle, aux preuves de bisimilarité , etc." Des implémentations expérimentales de co-LP sont disponibles auprès de l'Université du Texas à Dallas et dans Logtalk (pour des exemples, voir ) et SWI-Prolog .

Voir également

Les références

Lectures complémentaires

Manuels
  • Davide Sangiorgi (2012). Introduction à la bisimulation et à la co-induction . La presse de l'Universite de Cambridge.
  • Davide Sangiorgi et Jan Rutten (2011). Sujets avancés en bisimulation et coinduction . La presse de l'Universite de Cambridge.
Textes d'introduction
Histoire
Divers