. Démonstration, Soient H 1 : R symétrique et H 2 : iperm_bij R l 1 l 2 . Grâce à H 1 on obtient f et g tels que : H 3 : bij f g et H 4 : ?i, R (fct l 1 i)

?. Et-on-veut-prouver-que-?-f-?-g, (fct l 2 i) (fct l 1 ( f ? i))). On prend f ? := g et g ? := f , et on doit donc prouver deux choses : 1. bij g f : on utilise

. On-doit-prouver-que-?i and P. Gall, fct (sons g 2 ) i) On prouve que i = conv H 6 (conv sym H 6 i) (la preuve est immédiate), Il nous reste donc à prouver que Gall P (fct (sons g 2 ) (conv H 6

. Démonstration, Soient H 1 : l ? l ? et H 2 : element_of R l g. H 2 nous donne g ? tel que H 3 : g ? ? l et H 4 : Geq R g g ? . On veut prouver que ?y, y ? l ? ? Geq R g y. On prend y := g ?

. Démonstration, On raisonne par coinduction. Soient H 1 : ?g, P g ? P ? g ? et

. Démonstration, Soit H 1 : l ? l ? . On veut montrer que : Gall (element_of R l) g ? Gall (element_of R l ? ) g

D. Le-lemme, il nous suffit de prouver que ?g ? , element_of R l g ? ? element_of R l ? g ?

. Démonstration, G_ finite R eq ) l et n et ln tels que l = n, ln. On raisonne par induction sur n. Et on veut montrer que : ?l ? , iall (Gall (element_of R eq l ? )) n, ln [Cas 0] Comme ln est vide (elle est de type ilistn (Graph T) 0), on prend lg := []. On doit montrer que ?i : Fin (lg 0, ln), Gall (element_of R eq []) (fct 0, ln i) Or on a Fin

. Démonstration, H 1 : G_ finite R g, nous donne l telle que H 2 : Gall (element_of R l) g. On veut prouver que ?m, Gall (?x

. Démonstration, On applique la règle dir de la Définition 5.4 (Infinite_Graph n a pour fils Infinite_Graph n+1 ) On doit prouver que : Geq eq Infinite_Graph n+1

. Démonstration, Soit H 1 : n < m. On raisonne par induction sur m. [Cas 0] Ici H 1 : n < 0 ce qui est faux. [Cas m + 1] L'hypothèse d'induction est IH

. Démonstration, H. Soit, and R. Dec, On va raisonner par induction sur n puis par analyse de cas en se servant de H et de l'hypothèse d'induction. On veut montrer que Preuves 2. x = succ i : d'après la définition de f ? , R x ( f ? x) nous donne R (succ i) ( f i)

. Démonstration, On veut montrer que : max_list_nat (map f (makeListFin n)) ? f i. D'après le Lemme 5.28, il nous suffit de montrer que : f i ? map f (makeListFin n) Ou encore, d'après un résultat bien connu sur map que i ? makeListFin n

. Démonstration, Soient H 1 : bij f g et H 2 : IPPGen T. On a P : N ? U ? Prop tel que H 3 : ?n?s, P n s et on veut montrer que : ?s 0

. Rappel-de-l-'énoncé, ?. Tiersex, ?. Dne-démonstration, and P. ?. ¬p, On a P tel que H 2 : ¬¬P et on veut montrer que P est vraie. D'après H 1 , on a deux solutions pour P : [Cas H 3 : P] On

R. Iperm_bij-gperm_mend, sons g 1 ) (sons g 2 ) : d'après le Théorème 4.2, il nous suffit de prouver que : iperm_ind GPerm_mend R (sons g 1 )

D. Le-lemme, 34 utilisé avec H 1 , il nous suffit de prouver que iperm_ind R (sons g 1 ) (sons g 2 )

. Ce-qui-est-vrai-d, après H 3 . [Direction ?] On raisonne par coinduction avec CH : GPerm_bij_mend R ? GPerm_mend R . D'après la Définition 6, hypothèse GPerm_bij_mend R g 1 g 2 nous donne R telle que : H 1 : R ? GPerm_bij_mend R H 2 : R (label g 1 )

D. Le-lemme, 48 utilisé avec H 1 , il nous suffit de prouver que iperm_bij R (sons g 1 ) (sons g 2 )

. Démonstration, Soit H 1 : GinGP R g 1 g 2 On raisonne par induction sur H 1 . [Cas de base] On a maintenant H 1 : GPerm_imp R g 1 g 2, Le Lemme 6.3 appliqué à H 1 nous donne H 2 : R (label g 1 ) (label g 2 ) H 3 : iperm_ind GPerm_imp R (sons g 1 ) (sons g 2

L. Et-le, 21 nous donne i ? tel que H 4 : GPerm_imp R (fct (sons g 1 ) i) (fct (sons g 2 ) i ? )

. Lem, 6.41 151 Graph_in_Graph_ Perm_trans GPerm 741

A. Michael, A. Thorsten, G. Neil, and M. Conor, Constructing polymorphic programs with quotient types, Lecture Notes in Computer Science, vol.3125, pp.2-15

A. Andreas, A Polymorphic Lambda-Calculus with Sized Higher-Order Types, Thèse de doctorat, p.36, 2006.

A. Jean-raymond, The B-book -assigning programs to meanings, 2005.

A. Jirí, B. Filippo, H. Mathias, K. Barbara, M. Stefan et al., A coalgebraic perspective on minimization and determinization, Proceedings of the Fifteenth International Conference on Foundations of Software Science and Computation structures Lecture Notes in Computer Science, 2012.

A. Thorsten, A formalization of the strong normalization proof for system F in LEGO, BEZEM et GROOTE [17], pp.13-28

B. Emilie and M. Pierre-etienne, Term-graph rewriting via explicit paths, Andrei VORONKOV, éditeur : RTA : International Conference on Rewriting Techniques and Applications RTA Lecture Notes in Computer Science, pp.32-47, 2008.

B. Henk and N. Tobias, Types for Proofs and Programs, International Workshop TYPES'93, Nijmegen, The Netherlands, Lecture Notes in Computer Science, vol.806, pp.217-219, 1993.

B. Falk, Generalised coinduction, Mathematical Structures in Computer Science, vol.13, issue.2, pp.321-348, 2003.

B. Gilles, M. João, F. , E. Giménez, P. Luis et al., Typebased termination of recursive definitions, Mathematical Structures in Computer Science, vol.14, issue.1, pp.97-141, 2004.

B. Ulrich, From coinductive proofs to exact real arithmetic : theory and applications, Logical Methods in Computer Science, vol.7, issue.1, pp.2011-162

Y. Bertot, Filters on CoInductive Streams, an Application to Eratosthenes??? Sieve, Pawel URZYCZYN, éditeur : TLCA, volume 3461 de Lecture Notes in Computer Science, pp.102-115, 2005.
DOI : 10.1007/11417170_9

URL : https://hal.archives-ouvertes.fr/inria-00070658

B. Yves and C. Pierre, Interactive Theorem Proving and Program Development Coq'Art : The Calculus of Inductive Constructions. Texts in Theoretical Computer Science, 2004.

B. Yves and K. Ekaterina, Inductive and coinductive components of corecursive functions in Coq, 2008.

B. Yves and K. Ekaterina, Using structural recursion for corecursion, BERARDI, pp.220-236

R. S. Bird, Maximum marking problems, Journal of Functional Programming, vol.11, issue.04, pp.411-424, 2001.
DOI : 10.1017/S0956796801004038

B. Sylvain, Specifying in Coq inheritance used in computer algebra, Research report, 2000.

D. Achim, . Brucker, and W. Burkhart, An extensible encoding of object-oriented data models in HOL, Journal of Automated Reasoning, vol.41, issue.3-4, pp.219-249, 2008.

C. Adam, is Coq being too conservative ? " du Coq club, janvier 2010. https://sympa.inria.fr/sympa, pp.2010-2011

E. M. Clarke, G. Orna, and P. Doron, Model checking, 2001.

C. Evelyne, C. Hubert, C. Kirchner, and K. Hélène, Modeling permutations in Coq for Coccinelle, éditeurs : Rewriting, Computation and Proof, pp.259-269

C. Thierry, Infinite objects in type theory, BARENDREGT et NIPKOW [8], pp.62-78

C. Thierry and P. Gérard, HUET : The calculus of constructions, Inf. Comput, vol.76, issue.23, pp.95-120, 1988.

C. Bruno, Fundamental properties of infinite trees, Theor. Comput. Sci, vol.25, pp.95-169, 1983.

D. Chris, is Coq being too conservative ? " du Coq club, janvier 2010. https://sympa.inria.fr/sympa, pp.2010-2011

N. Anders, D. Ana, B. Ekaterina, K. Milad, and N. , Beating the productivity checker using embedded languages, EPTCS, vol.43, pp.29-48, 2010.

C. Equipe-de-développement-de, Bibliothèque standard de l'assistant de preuve Coq, pp.69-70

C. Equipe-de-développement-de, FAQ de l'assistant de preuve Coq

C. Equipe-de-développement-de, Manuel de référence de l'assistant de preuve Coq. http://coq.inria.fr, pp.1-18

W. Edsger and . Dijkstra, On the productivity of recursive definitions. circulated privately, p.26, 1980.

E. Abbas, P. John, and P. , A new representation for exact real numbers, Electr. Notes Theor. Comput. Sci, vol.6, pp.119-132, 1997.

E. Martin, Inductive graphs and functional graph algorithms, J. Funct. Program, vol.11, issue.5, pp.467-492, 2001.

G. Herman, Inductive and coinductive types with iteration and recursion, Proceedings of the Workshop on Types for Proofs and Programs, pp.193-217, 1992.

P. Di, G. Marino, and M. , A unifying approach to recursive and co-recursive definitions, Herman GEUVERS et Freek WIEDIJK, éditeurs : TYPES, volume 2646 de Lecture Notes in Computer Science, pp.148-161, 2002.

P. Di, G. Marino, and M. , Unifying recursive and co-recursive definitions in sheaf categories, Igor WALUKIEWICZ, éditeur : FoSSaCS, volume 2987 de Lecture Notes in Computer Science, pp.136-150, 2004.

G. Eduardo, D. Peter, N. Bengt, and J. M. Smith, Codifying guarded definitions with recursive schemes, Lecture Notes in Computer Science, vol.996, pp.39-59, 1994.

G. Eduardo, Un Calcul de Constructions Infinies et son application a la vérification de systèmes communicants, Thèse de doctorat, pp.2-22, 1996.

G. Eduardo and C. Pierre, A tutorial on [co-]inductive types in Coq, 2007.

H. Lars, An intensional characterization of the largest bisimulation, Theor. Comput. Sci, vol.53, pp.335-343, 1987.

H. Peter and S. Anton, Guarded induction and weakly final coalgebras in dependent type theory éditeurs : From Sets and Types to Topology and Analysis. Towards Practicable Foundations for Constructive Mathematics, pp.115-134, 2005.

J. J. Hickey, Formal objects in type theory using very dependent types, éditeurs : Informal proceedings of Third Workshop on Foundations of Object-Oriented Languages (FOOL 3), 1999.

H. John, An n log n algorithm for minimizing states in a finite automaton, Theory of machines and computations (Proc. Internat. Sympos, pp.189-196, 1971.

J. Bart and R. Jan, A tutorial on (co)algebras and (co)induction, EATCS Bulletin, vol.62, pp.62-222, 1997.

K. Nils and I. Michael, SCHWARTZBACH : Graph types, Proc. 20th ACM POPL, pp.196-205, 1993.

L. François and P. Christine, Programming with streams in Coq -a case study : the sieve of Eratosthenes, BARENDREGT et NIPKOW [8], pp.191-212

L. Xavier, A formally verified compiler back-end. CoRR, abs/0902, 2009.

L. Dorel, G. Eugen-ioan, C. Georgiana, and R. Grigore, Circ : a behavioral verification tool based on circular coinduction, KURZ et al. [51], pp.433-442

L. Dorel, R. Grigore, M. Ugo, and H. Magne, Circ : a circular coinductive prover, Till MOSSA, pp.372-378, 2007.

M. Ralph, Tarski's fixed-point theorem and lambda calculi with monotone inductive types. Synthese, pp.107-129, 2002.

M. Conor and M. James, The view from the left, J. Funct. Program, vol.14, issue.1, pp.69-111, 2004.

N. Keiko and U. Tarmo, Resumptions, weak bisimilarity and big-step semantics for while with interactive i/o : an exercise in mixed induction-coinduction, Luca ACETO et Pawel SOBOCINSKI, pp.57-75, 2010.

N. Keiko, U. Tarmo, and B. Marc, A proof pearl with the fan theorem and bar induction -walking through infinite trees with mixed induction and coinduction, Hongseok YANG, éditeur : APLAS, volume 7078 de LNCS, pp.353-368

N. Wolfgang and W. Markus, Object-oriented verification based on record subtyping in higher-order logic, Theorem Proving in Higher Order Logics, 1998.

N. Tobias, P. Lawrence, W. Markus, /. Isabelle, and . Hol, A Proof Assistant for Higher-Order Logic. LNCS 2283, 2002.

N. Milad, Coinductive field of exact real numbers and general corecursion, Electr. Notes Theor. Comput. Sci, vol.164, issue.1, pp.121-139, 2006.

N. Milad, Coalgebraic reasoning in Coq : bisimulation and the lambda-coiteration scheme, BERARDI et al. [11], pp.272-288

P. Christine, Inductive definitions in the system Coq -rules and properties, BEZEM et GROOTE [17], pp.328-345

P. Christine, Circuits as streams in Coq : verification of a sequential multiplier, éditeurs : TYPES, volume 1158 de Lecture Notes in Computer Science, pp.216-230, 1995.

P. Celia and M. Ralph, Coinductive graph representation : the problem of embedded lists, Rachid ECHAHED, Annegret HABEL et Mohamed MOSBAH, éditeurs : Graph Computation Models, 2010.

P. Celia and M. Ralph, Coinductive graph representation : the problem of embedded lists, ECEASST, pp.39-2011

P. Celia and M. Ralph, Formalisation en Coq, 2012.

P. Celia and M. Ralph, Permutations in Coinductive Graph Representation, Dirk PATTINSON et Lutz SCHRÖDER, éditeurs : Coalgebraic Methods in Computer Science, 2012.

P. Detlef, S. Robin, and S. Ambuj, Minimizing finite automata with graph programs, ECEASST, pp.39-2011

P. Iman, V. Antonio, G. Jeff, and P. Alfonso, Proofs-as-model-transformations, éditeurs : International Conference on Model Transformation, pp.214-228, 2008.

P. Rawle, G. Neil, and M. Conor, Proving properties about lists using containers, Lecture Notes in Computer Science, vol.4989, pp.97-112, 2008.

R. Grigore and L. Dorel, Circular coinduction : a proof theoretical foundation, KURZ et al. [51], pp.127-144

A. Ben and . Sijtsma, On the productivity of recursive list definitions, ACM Trans. Program. Lang. Syst, vol.11, issue.4, pp.633-649, 1989.

S. Matthieu, Coq 8.2 Reference Manual, chapitre User defined equalities and relations . INRIA TypiCal, 2008.

. Ssreflect, http://www.msr-inria.inria.fr/Projects/math-components

T. Alfred, A lattice-theoretical fixpoint theorem and its applications, Pacific Journal of Mathematics, vol.5, issue.2, pp.285-309, 1955.

U. Tarmo and V. Varmo, Least and greatest fixed points in intuitionistic natural deduction, Theoretical Computer Science, vol.272, pp.315-339, 2002.

G. C. David, H. Pitt, D. E. Ryde-heard, D. Peter, A. M. Pitts et al., WRAITH : A note on categorical datatypes, Lecture Notes in Computer Science, vol.389, pp.118-127