Abstract
We propose a revised constructive specification and a certified hierarchized linked implementation of combinatorial hypermaps using a general notion of orbit. Combinatorial hypermaps help to prove theorems in algebraic topology and to develop algorithms in computational geometry. Orbits unify the presentation at conceptual and concrete levels and reduce the proof effort. All the development is formalized and verified in the Coq proof assistant. The implementation is easily proved observationally equivalent to the specification and translated in C language. Our method is transferable to a great class of algebraic specifications implemented into complex data structures with hierarchized linear, circular or symmetric linked lists, and pointer arrays.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Bertot, Y., Casteran, P.: Interactive Theorem Proving and Program Development - Coq’Art: The Calculus of Inductive Constructions. Springer (2004)
Bertrand, Y., Dufourd, J.-F., Françon, J., Lienhardt, P.: Algebraic Specification and Development in Geometric Modeling. In: Gaudel, M.-C., Jouannaud, J.-P. (eds.) CAAP 1993, FASE 1993, and TAPSOFT 1993. LNCS, vol. 668, pp. 75–89. Springer, Heidelberg (1993)
Bornat, R.: Proving Pointer Programs in Hoare Logic. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 102–126. Springer, Heidelberg (2000)
Burstall, R.M.: Some Techniques for Proving Correctness of Programs which Alter Data Structures. Machine Intelligence 7, 23–50 (1972)
CEA-LIST and INRIA-Saclay-Proval Team. Frama-C Project (2013), http://frama-c.com/about.html
Chlipala, A.: Mostly-Automated Verification of Low-level Programs in Computational Separation Logic. In: Int. ACM Conf. PLDI 2011, pp. 234–245 (2011)
Conway, C.L., Barrett, C.: Verifying Low-Level Implementations of High-Level Datatypes. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 306–320. Springer, Heidelberg (2010)
Cori, R.: Un code pour les graphes planaires et ses applications. Soc. Math. de France, Astérisque 27 (1970)
Dufourd, J.-F.: Polyhedra genus theorem and Euler formula: A hypermap-formalized intuitionistic proof. Theor. Comp. Science 403(2-3), 133–159 (2008)
Dufourd, J.-F.: An Intuitionistic Proof of a Discrete Form of the Jordan Curve Theorem Formalized in Coq with Combinatorial Hypermaps. J. of Automated Reasoning 43(1), 19–51 (2009)
Dufourd, J.-F.: Hmap Specification and Implementation - On-line Coq Development (2013), http://dpt-info.u-strasbg.fr/~jfd/Hmap.tar.gz
Dufourd, J.-F.: Formal Study of Functional Orbits in Finite Domains. Submitted to TCS, 40 pages (2013)
Dufourd, J.-F.: Dérivation de l’Algorithme de Schorr-Waite par une Méthode Algébrique. In: JFLA 2012, INRIA, hal-00665909, Carnac, 15 p. (February 2012)
Dufourd, J.-F., Bertot, Y.: Formal Study of Plane Delaunay Triangulation. In: Kaufmann, M., Paulson, L.C. (eds.) ITP 2010. LNCS, vol. 6172, pp. 211–226. Springer, Heidelberg (2010)
Chlipala, A., et al.: Effective Interactive Proofs for Higher-Order Imperative programs. In: ICFP 2009, pp. 79–90 (2009)
Enea, C., Saveluc, V., Sighireanu, M.: Compositional Invariant Checking for Overlaid and Nested Linked Lists. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 129–148. Springer, Heidelberg (2013)
Berdine, J., Calcagno, C., Cook, B., Distefano, D., O’Hearn, P.W., Wies, T., Yang, H.: Shape Analysis for Composite Data Structures. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 178–192. Springer, Heidelberg (2007)
Marti, N., Affeldt, R.: Formal Verification of the Heap Manager of an Operating System Using Separation Logic. In: Liu, Z., Kleinberg, R.D. (eds.) ICFEM 2006. LNCS, vol. 4260, pp. 400–419. Springer, Heidelberg (2006)
Filliâtre, J.-C.: Verifying Two Lines of C with Why3: An exercise in program verification. In: Joshi, R., Müller, P., Podelski, A. (eds.) VSTTE 2012. LNCS, vol. 7152, pp. 83–97. Springer, Heidelberg (2012)
Gonthier, G.: Formal Proof - the Four Color Theorem. Notices of the AMS 55(11), 1382–1393 (2008)
Leroy, X., Blazy, S.: Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations. J. of Autom. Reas. 41(1), 1–31 (2008)
Malecha, G., Morrisett, G.: Mechanized Verification with sharing. In: Cavalcanti, A., Deharbe, D., Gaudel, M.-C., Woodcock, J. (eds.) ICTAC 2010. LNCS, vol. 6255, pp. 245–259. Springer, Heidelberg (2010)
Marché, C.: Towards Modular Algebraic Specifications for Pointer Programs: A Case Study. In: Comon-Lundh, H., Kirchner, C., Kirchner, H. (eds.) Jouannaud Festschrift. LNCS, vol. 4600, pp. 235–258. Springer, Heidelberg (2007)
Mehta, F., Nipkow, T.: Proving pointer programs in higher-order logic. Information and Computation 199(1-2), 200–227 (2005)
O’Hearn, P.W., Yang, H., Reynolds, J.C.: Separation and information hiding. ACM TOPLAS 31(3) (2009)
Reynolds, J.C.: Separation Logic: A Logic for Shared Mutable Data Structures. In: LICS 2002, pp. 55–74 (2002)
CGAL Team. Computational Geometry Algorithms Library Project, Chapter 27: Combinatorial Maps (2013), http://www.cgal.org
Wirsing, M.: Algebraic Specification. In: Handbook of TCS, vol. B. Elsevier/MIT Press (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Dufourd, JF. (2014). Hypermap Specification and Certified Linked Implementation Using Orbits. In: Klein, G., Gamboa, R. (eds) Interactive Theorem Proving. ITP 2014. Lecture Notes in Computer Science, vol 8558. Springer, Cham. https://doi.org/10.1007/978-3-319-08970-6_16
Download citation
DOI: https://doi.org/10.1007/978-3-319-08970-6_16
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-08969-0
Online ISBN: 978-3-319-08970-6
eBook Packages: Computer ScienceComputer Science (R0)