Coinduction
En informatique théorique, la coinduction est une technique de définition et de vérification de propriétés de systèmes d'objets en interaction.

La coinduction est la notion duale de l'induction structurelle. Les types définis par coinduction sont aussi connus comme codata et sont en général des structures de données infinies, tels que les flux.

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

Pour engendrer et manipuler des codata, on utilise typiquement des fonctions corécursives en conjonction avec l'évaluation paresseuse. De manière informelle, plutôt que de définir une fonction par pattern-matching sur chacun de ses constructeurs inductifs, on définit des destructeurs (c'est le dual d'un constructeur). Pour une liste par exemple, les constructeurs sont nil et cons, les destructeurs sont tête et queue.

En programmation, la coinduction, aussi appelée programmation co-logique, est une généralisation naturelle de la programmation logique à la programmation en logique coinductive, généralisant d'autres extensions, comme les arbres infinis, les prédicats paresseux, ou les prédicats communicants concurrents. Elle intervient en plus dans la vérification de propriétés infinitaires, le model checking, preuves par bisimilarité. 

En France, Claude Pair est un pionnier de l'utilisation de la coinduction en informatique. La coinduction est largement utilisée dans des assistants de preuves comme Coq.

Articles liés
 F-coalgèbre
 
 Bisimulation
 Anamorphisme
 
 Coq
 Assistant de preuve
Dualité

Notes et références

Bibliographie 
Ouvrages

 .
 .
 .
 Textes d'introduction
  — describes induction and coinduction simultaneously
 .
 .
 .

Informatique théorique
Programmation fonctionnelle
Théorie des catégories
En informatique théorique , la coinduction est une technique de définition et de vérification de propriétés de systèmes d' objets en interaction . La coinduction est la notion duale de l' induction structurelle . Les types définis par coinduction sont aussi connus comme codata et sont en général de les structures de données infinies , tels que les flux . En tant que définition ou spécification informatique , la coinduction décrit comment un objet peut être décomposé en objets plus simples . Comme technique de démonstration , elle peut être utilisée pour montrer qu' une équation est satisfaite par toutes les implémentations possible d' une telle spécification . Pour engendrer et manipuler de les codata , on utilise typiquement de les fonctions corécursives en conjonction avec l' évaluation paresseuse . De manière informelle , plutôt que de définir une fonction par pattern-matching sur chacun de ses constructeurs inductifs , on définit de les destructeurs ( c' est le dual d' un constructeur ) . Pour une liste par exemple , les constructeurs sont nil et cons , les destructeurs sont tête et queue . En programmation , la coinduction , aussi appelée programmation co-logique , est une généralisation naturelle de la programmation logique à la programmation en logique coinductive , généralisant d' autres extensions , comme les arbres infinis , les prédicats paresseux , ou les prédicats communicants concurrents . Elle intervient en plus dans la vérification de propriétés infinitaires , le model checking , preuves par bisimilarité . En France , Claude Pair est un pionnier de l' utilisation de la coinduction en informatique . La coinduction est largement utilisée dans de les assistants de preuves comme Coq . Articles liés F-coalgèbre Bisimulation Anamorphisme Coq Assistant de preuve Dualité Notes et références Bibliographie Ouvrages \ . \ . \ . Textes d' introduction — describes induction and coinduction simultaneously \ . \ . \ . Informatique théorique Programmation fonctionnelle Théorie de les catégories