Abstract
This article surveys the state of the art of verifying standard textbook algorithms. We focus largely on the classic text by Cormen et al. Both correctness and running time complexity are considered.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
The Fermat test is called Pseudoprime in CLRS.
References
Archive of Formal Proofs. http://www.isa-afp.org
Abdulaziz, M., Mehlhorn, K., Nipkow, T.: Trustworthy graph algorithms (invited talk). In: Rossmanith, P., Heggernes, P., Katoen, J. (eds.) 44th International Symposium on Mathematical Foundations of Computer Science, MFCS 2019. LIPIcs, vol. 138, pp. 1:1–1:22. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2019). https://doi.org/10.4230/LIPIcs.MFCS.2019.1
Abrial, J.: The B-book - Assigning Programs to Meanings. Cambridge University Press (1996). https://doi.org/10.1017/CBO9780511624162
Abrial, J.-R., Cansell, D., Méry, D.: Formal derivation of spanning trees algorithms. In: Bert, D., Bowen, J.P., King, S., Waldén, M. (eds.) ZB 2003. LNCS, vol. 2651, pp. 457–476. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-44880-2_27
Adams, S.: Efficient sets - a balancing act. J. Funct. Program. 3(4), 553–561 (1993). https://doi.org/10.1017/S0956796800000885
Affeldt, R., Cohen, C., Rouhling, D.: Formalization techniques for asymptotic reasoning in classical analysis. J. Form. Reasoning 11(1), 43–76 (2018). https://doi.org/10.6092/issn.1972-5787/8124
Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Schmitt, P.H., Ulbrich, M. (eds.): Deductive Software Verification - The KeY Book - From Theory to Practice, LNCS, vol. 10001. Springer, Cham (2016), https://doi.org/10.1007/978-3-319-49812-6
Akbarpour, B., Tahar, S.: A methodology for the formal verification of FFT algorithms in HOL. In: Hu, A.J., Martin, A.K. (eds.) FMCAD 2004. LNCS, vol. 3312, pp. 37–51. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30494-4_4
Allamigeon, X., Katz, R.D.: A formalization of convex polyhedra based on the simplex method. In: Ayala-Rincón, M., Muñoz, C.A. (eds.) ITP 2017. LNCS, vol. 10499, pp. 28–45. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-66107-0_3
Alstrup, S., Thorup, M., Gørtz, I.L., Rauhe, T., Zwick, U.: Union-find with constant time deletions. ACM Trans. Algorithms 11(1), 6:1–6:28 (2014). https://doi.org/10.1145/2636922
Andersson, A.: Improving partial rebuilding by using simple balance criteria. In: Dehne, F., Sack, J.-R., Santoro, N. (eds.) WADS 1989. LNCS, vol. 382, pp. 393–402. Springer, Heidelberg (1989). https://doi.org/10.1007/3-540-51542-9_33
Appel, A.W.: Efficient verified red-black trees (2011). https://www.cs.princeton.edu/~appel/papers/redblack.pdf
Appel, A.W.: Verified Functional Algorithms, August 2018. https://softwarefoundations.cis.upenn.edu/vfa-current/index.html
Audebaud, P., Paulin-Mohring, C.: Proofs of randomized algorithms in Coq. Sci. Comput. Program. 74(8), 568–589 (2009). https://doi.org/10.1016/j.scico.2007.09.002
Avigad, J., Donnelly, K., Gray, D., Raff, P.: A formally verified proof of the prime number theorem. ACM Trans. Comput. Logic 9(1) (2007). https://doi.org/10.1145/1297658.1297660
Ballarin, C.: Fast Fourier Transform. Archive of Formal Proofs, October 2005. http://isa-afp.org/entries/FFT.html, Formal proof development
Bancerek, G., et al.: Mizar: state-of-the-art and beyond. In: Kerber, M., Carette, J., Kaliszyk, C., Rabe, F., Sorge, V. (eds.) CICM 2015. LNCS (LNAI), vol. 9150, pp. 261–279. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-20615-8_17
Barthe, G., Dupressoir, F., Grégoire, B., Kunz, C., Schmidt, B., Strub, P.-Y.: EasyCrypt: a tutorial. In: Aldini, A., Lopez, J., Martinelli, F. (eds.) FOSAD 2012-2013. LNCS, vol. 8604, pp. 146–166. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10082-1_6
Barthe, G., Espitau, T., Gaboardi, M., Grégoire, B., Hsu, J., Strub, P.-Y.: An assertion-based program logic for probabilistic programs. In: Ahmed, A. (ed.) ESOP 2018. LNCS, vol. 10801, pp. 117–144. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89884-1_5
Beckert, B., Schiffl, J., Schmitt, P.H., Ulbrich, M.: Proving JDK’s dual pivot quicksort correct. In: Paskevich and Wies [160], pp. 35–48, https://doi.org/10.1007/978-3-319-72308-2_3
Berger, U., Miyamoto, K., Schwichtenberg, H., Seisenberger, M.: Minlog - a tool for program extraction supporting algebras and coalgebras. In: Corradini, A., Klin, B., Cîrstea, C. (eds.) CALCO 2011. LNCS, vol. 6859, pp. 393–399. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22944-2_29
Berger, U., Schwichtenberg, H., Seisenberger, M.: The Warshall algorithm and Dickson’s lemma: two examples of realistic program extraction. J. Autom. Reasoning 26(2), 205–221 (2001). https://doi.org/10.1023/A:1026748613865
Berghofer, S.: Program extraction in simply-typed higher order logic. In: Geuvers, H., Wiedijk, F. (eds.) TYPES 2002. LNCS, vol. 2646, pp. 21–38. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-39185-1_2
Bertot, Y.: Formal verification of a geometry algorithm: a quest for abstract views and symmetry in coq proofs. In: Fischer, B., Uustalu, T. (eds.) ICTAC 2018. LNCS, vol. 11187, pp. 3–10. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-02508-3_1
Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development - Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. An EATCS Series, Springer, Cham (2004). https://doi.org/10.1007/978-3-662-07964-5
Besta, M., Stomp, F.A.: A complete mechanization of correctness of a string-preprocessing algorithm. Formal Methods Syst. Des. 27(1–2), 5–17 (2005). https://doi.org/10.1007/s10703-005-2243-0
Blanchette, J.C.: Proof pearl: Mechanizing the textbook proof of Huffman’s algorithm. J. Autom. Reasoning 43(1), 1–18 (2009). https://doi.org/10.1007/s10817-009-9116-y
Blum, N., Mehlhorn, K.: On the average number of rebalancing operations in weight-balanced trees. Theor. Comput. Sci. 11, 303–320 (1980). https://doi.org/10.1016/0304-3975(80)90018-3
Bobot, F.: Topological sorting (2014). http://toccata.lri.fr/gallery/topological_sorting.en.html, formal proof development
Bottesch, R., Haslbeck, M.W., Thiemann, R.: Verifying an incremental theory solver for linear arithmetic in Isabelle/HOL. In: Herzig, A., Popescu, A. (eds.) FroCoS 2019. LNCS (LNAI), vol. 11715, pp. 223–239. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-29007-8_13
Bove, A., Dybjer, P., Norell, U.: A brief overview of agda – a functional language with dependent types. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 73–78. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03359-9_6
Boyer, R.S., Moore, J S.: Proving theorems about LISP functions. In: Nilsson, N. (ed.) International Joint Conference on Artificial Intelligence. pp. 486–493. William Kaufmann (1973) http://ijcai.org/Proceedings/73/Papers/053.pdf
Boyer, R.S., Moore, J.S.: A fast string searching algorithm. Commun. ACM 20(10), 762–772 (1977). https://doi.org/10.1145/359842.359859
Boyer, R.S., Moore, J.S.: A computational logic handbook, Perspectives in Computing, vol. 23. Academic Press, New York (1979)
Boyer, R.S., Strother Moore, J.: Single-threaded objects in ACL2. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 9–27. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45587-6_3
Brodal, G.S., Okasaki, C.: Optimal purely functional priority queues. J. Funct. Program. 6(6), 839–857 (1996). https://doi.org/10.1017/S095679680000201X
Brun, C., Dufourd, J., Magaud, N.: Designing and proving correct a convex hull algorithm with hypermaps in Coq. Comput. Geom. 45(8), 436–457 (2012). https://doi.org/10.1016/j.comgeo.2010.06.006
Bulwahn, L., Krauss, A., Haftmann, F., Erkök, L., Matthews, J.: Imperative functional programming with Isabelle/HOL. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 134–149. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-71067-7_14
Capretta, V.: Certifying the fast Fourier transform with coq. In: Boulton, R.J., Jackson, P.B. (eds.) TPHOLs 2001. LNCS, vol. 2152, pp. 154–168. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-44755-5_12
Chan, H.L.J.: Primality testing is polynomial-time: a mechanised verification of the AKS algorithm. Ph.D. thesis, Australian National University (2019). https://openresearch-repository.anu.edu.au/bitstream/1885/177195/1/thesis.pdf
Charguéraud, A.: Program verification through characteristic formulae. In: Hudak, P., Weirich, S. (eds.) Proceeding of the 15th ACM SIGPLAN International Conference on Functional Programming. ICFP 2010, pp. 321–332. ACM (2010). https://doi.org/10.1145/1863543.1863590
Charguéraud, A., Pottier, F.: Machine-checked verification of the correctness and amortized complexity of an efficient union-find implementation. In: Urban, C., Zhang, X. (eds.) ITP 2015. LNCS, vol. 9236, pp. 137–153. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-22102-1_9
Charguéraud, A., Pottier, F.: Verifying the correctness and amortized complexity of a union-find implementation in separation logic with time credits. J. Autom. Reasoning 62(3), 331–365 (2019). https://doi.org/10.1007/s10817-017-9431-7
Chen, J.C.: Dijkstra’s shortest path algorithm. Formalized Mathematics 11(3), 237–247 (2003). http://fm.mizar.org/2003-11/pdf11-3/graphsp.pdf
Chen, R., Cohen, C., Lévy, J., Merz, S., Théry, L.: Formal proofs of Tarjan’s strongly connected components algorithm in Why3, Coq and Isabelle. In: Harrison, J., O’Leary, J., Tolmach, A. (eds.) 10th International Conference on Interactive Theorem Proving, ITP 2019. LIPIcs, vol. 141, pp. 13:1–13:19. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2019). https://doi.org/10.4230/LIPIcs.ITP.2019.13
Chen, R., Lévy, J.: A semi-automatic proof of strong connectivity. In: Paskevich and Wies [160], pp. 49–65. https://doi.org/10.1007/978-3-319-72308-2_4
Clochard, M.: Automatically verified implementation of data structures based on AVL trees. In: Giannakopoulou, D., Kroening, D. (eds.) VSTTE 2014. LNCS, vol. 8471, pp. 167–180. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-12154-3_11
Conchon, S., Filliâtre, J.: A persistent union-find data structure. In: Russo, C.V., Dreyer, D. (eds.) Workshop on ML, 2007. pp. 37–46. ACM (2007). https://doi.org/10.1145/1292535.1292541
Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 3rd Edition. MIT Press (2009). http://mitpress.mit.edu/books/introduction-algorithms
Danielsson, N.A.: Lightweight semiformal time complexity analysis for purely functional data structures. In: Necula, G.C., Wadler, P. (eds.) Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008. pp. 133–144. ACM (2008). https://doi.org/10.1145/1328438.1328457
Dénès, M., Mörtberg, A., Siles, V.: A refinement-based approach to computational algebra in Coq. In: Beringer, L., Felty, A. (eds.) ITP 2012. LNCS, vol. 7406, pp. 83–98. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-32347-8_7
Dross, C., Moy, Y.: Auto-active proof of red-black trees in SPARK. In: Barrett, C., Davies, M., Kahsai, T. (eds.) NFM 2017. LNCS, vol. 10227, pp. 68–83. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-57288-8_5
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). https://doi.org/10.1007/978-3-642-14052-5_16
Eberl, M.: Fisher-yates shuffle. Archive of Formal Proofs, September 2016. http://isa-afp.org/entries/Fisher_Yates.html, Formal proof development
Eberl, M.: Expected shape of random binary search trees. Archive of Formal Proofs, April 2017. http://isa-afp.org/entries/Random_BSTs.html, Formal proof development
Eberl, M.: Lower bound on comparison-based sorting algorithms. Archive of Formal Proofs, March 2017. http://isa-afp.org/entries/Comparison_Sort_Lower_Bound.html, Formal proof development
Eberl, M.: The median-of-medians selection algorithm. Archive of Formal Proofs, December 2017. http://isa-afp.org/entries/Median_Of_Medians_Selection.html, Formal proof development
Eberl, M.: The number of comparisons in quicksort. Archive of Formal Proofs, March 2017. http://isa-afp.org/entries/Quick_Sort_Cost.html, Formal proof development
Eberl, M.: Proving divide and conquer complexities in Isabelle/HOL. J. Autom. Reasoning 58(4), 483–508 (2017). https://doi.org/10.1007/s10817-016-9378-0
Eberl, M.: Verified real asymptotics in Isabelle/HOL. In: Proceedings of the International Symposium on Symbolic and Algebraic Computation. ISSAC 2019. ACM, New York (2019). https://doi.org/10.1145/3326229.3326240
Eberl, M., Haslbeck, M.W., Nipkow, T.: Verified analysis of random binary tree structures. In: J. Automated Reasoning (2020). https://doi.org/10.1007/s10817-020-09545-0
Edmonds, J.: Paths, trees, and flowers. Can. J. Math. 17, 44–467 (1965). https://doi.org/10.4153/CJM-1965-045-4
Ernst, G., Pfähler, J., Schellhorn, G., Haneberg, D., Reif, W.: KIV: overview and verifythis competition. Int. J. Softw. Tools Technol. Transf. 17(6), 677–694 (2015). https://doi.org/10.1007/s10009-014-0308-3
Ernst, G., Schellhorn, G., Reif, W.: Verification of B\(^{\text{+ }}\) trees by integration of shape analysis and interactive theorem proving. Software Syst. Model. 14(1), 27–44 (2015). https://doi.org/10.1007/s10270-013-0320-1
Esparza, J., Lammich, P., Neumann, R., Nipkow, T., Schimpf, A., Smaus, J.-G.: A fully verified executable LTL model checker. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 463–478. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39799-8_31
Eßmann, R., Nipkow, T., Robillard, S.: Verified approximation algorithms. In: Peltier and Sofronie-Stokkermans [163], pp. 291–306. https://doi.org/10.1007/978-3-030-51054-1_17
Filliâtre, J.C.: Knuth-Morris-Pratt string searching algorithm. http://toccata.lri.fr/gallery/kmp.en.html, formal proof development
Filliâtre, J.-C.: Proof of imperative programs in type theory. In: Altenkirch, T., Reus, B., Naraschewski, W. (eds.) TYPES 1998. LNCS, vol. 1657, pp. 78–92. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48167-2_6
Filliâtre, J.C.: Skew heaps (2014). http://toccata.lri.fr/gallery/skew_heaps.en.html, formal proof development
Filliâtre, J.C.: Purely applicative heaps implemented with Braun trees (2015). http://toccata.lri.fr/gallery/braun_trees.en.html, formal proof development
Filliâtre, J.C.: Binomial heaps (2016). http://toccata.lri.fr/gallery/binomial_heap.en.html, formal proof development
Filliâtre, J.C., Clochard, M.: Hash tables with linear probing (2014). http://toccata.lri.fr/gallery/linear_probing.en.html, formal proof development
Filliâtre, J.C., Clochard, M.: Warshall algorithm (2014), http://toccata.lri.fr/gallery/warshall_algorithm.en.html, formal proof development
Filliâtre, J.-C., Letouzey, P.: Functors for proofs and programs. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 370–384. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24725-8_26
Filliâtre, J.-C., Paskevich, A.: Why3 — where programs meet provers. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 125–128. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37036-6_8
Filliâtre, J., Paskevich, A., Stump, A.: The 2nd verified software competition: Experience report. In: Proceedings of the 1st International Workshop on Comparative Empirical Evaluation of Reasoning Systems, pp. 36–49 (2012). http://ceur-ws.org/Vol-873/papers/paper_6.pdf
Fredman, M.L., Sedgewick, R., Sleator, D.D., Tarjan, R.E.: The pairing heap: a new form of self-adjusting heap. Algorithmica 1(1), 111–129 (1986). https://doi.org/10.1007/BF01840439
Furia, C.A., Nordio, M., Polikarpova, N., Tschannen, J.: Autoproof: auto-active functional verification of object-oriented programs. Int. J. Softw. Tools Technol. Transf. 19(6), 697–716 (2017). https://doi.org/10.1007/s10009-016-0419-0
Gabow, H.N.: Path-based depth-first search for strong and biconnected components. Inf. Process. Lett. 74(3–4), 107–114 (2000). https://doi.org/10.1016/S0020-0190(00)00051-X
Gale, D., Shapley, L.S.: College admissions and the stability of marriage. Am. Math. Monthly 69(1), 9–15 (1962)
Galperin, I., Rivest, R.L.: Scapegoat trees. In: Ramachandran, V. (ed.) Proceedings of the Fourth Annual ACM/SIGACT-SIAM Symposium on Discrete Algorithms, pp. 165–174. ACM/SIAM (1993). http://dl.acm.org/citation.cfm?id=313559.313676
Gamboa, R.: The correctness of the fast Fourier transform: a structured proof in ACL2. Formal Methods Syst. Des. 20(1), 91–106 (2002)
Garillot, F., Gonthier, G., Mahboubi, A., Rideau, L.: Packaging mathematical structures. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 327–342. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03359-9_23
Giry, M.: A categorical approach to probability theory. In: Banaschewski, B. (ed.) Categorical Aspects of Topology and Analysis. LNM, vol. 915, pp. 68–85. Springer, Heidelberg (1982). https://doi.org/10.1007/BFb0092872
de Gouw, S., de Boer, F.S., Bubel, R., Hähnle, R., Rot, J., Steinhöfel, D.: Verifying OpenJDK’s sort method for generic collections. J. Autom. Reasoning 62(1), 93–126 (2019). https://doi.org/10.1007/s10817-017-9426-4
de Gouw, S., Rot, J., de Boer, F.S., Bubel, R., Hähnle, R.: OpenJDK’s Java.utils.Collection.sort() is broken: the good, the bad and the worst case. In: Kroening, D., Păsăreanu, C.S. (eds.) CAV 2015. LNCS, vol. 9206, pp. 273–289. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-21690-4_16
Guéneau, A., Charguéraud, A., Pottier, F.: A fistful of dollars: formalizing asymptotic complexity claims via deductive program verification. In: Ahmed, A. (ed.) ESOP 2018. LNCS, vol. 10801, pp. 533–560. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89884-1_19
Guibas, L.J., McCreight, E.M., Plass, M.F., Roberts, J.R.: A new representation for linear lists. In: Hopcroft, J.E., Friedman, E.P., Harrison, M.A. (eds.) Proceedings of the 9th Annual ACM Symposium on Theory of Computing, pp. 49–60. ACM (1977). https://doi.org/10.1145/800105.803395
Guttmann, W.: Relation-algebraic verification of Prim’s minimum spanning tree algorithm. In: Sampaio, A., Wang, F. (eds.) ICTAC 2016. LNCS, vol. 9965, pp. 51–68. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-46750-4_4
Guttmann, W.: An algebraic framework for minimum spanning tree problems. Theor. Comput. Sci. 744, 37–55 (2018). https://doi.org/10.1016/j.tcs.2018.04.012
Guttmann, W.: Verifying minimum spanning tree algorithms with stone relation algebras. J. Log. Algebraic Methods Program 101, 132–150 (2018). https://doi.org/10.1016/j.jlamp.2018.09.005
Hamid, N.A., Castleberry, C.: Formally certified stable marriages. In: Proceedings of the 48th Annual Southeast Regional Conference. ACM SE 2010. ACM (2010). https://doi.org/10.1145/1900008.1900056
Haslbeck, M.W., Eberl, M.: Skip lists. Archive of Formal Proofs, January 2020. http://isa-afp.org/entries/Skip_Lists.html, Formal proof development
Haslbeck, M.W., Eberl, M., Nipkow, T.: Treaps. Archive of Formal Proofs, February 2018. http://isa-afp.org/entries/Treaps.html, Formal proof development
Haslbeck, M.P.L., Lammich, P.: Refinement with time – refining the run-time of algorithms in Isabelle/HOL. In: Harrison, J., O’Leary, J., Tolmach, A. (eds.) Interactive Theorem Proving, ITP 2019. LIPIcs, vol. 141, pp. 20:1–20:18. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2019). https://doi.org/10.4230/LIPIcs.ITP.2019.20
Haslbeck, M.P.L., Lammich, P., Biendarra, J.: Kruskal’s algorithm for minimum spanning forest. Archive of Formal Proofs, February 2019. http://isa-afp.org/entries/Kruskal.html, Formal proof development
Haslbeck, M.P.L., Lammich, P., Biendarra, J.: Kruskal’s algorithm for minimum spanning forest. Arch. Formal Proofs 2019 (2019), https://www.isa-afp.org/entries/Kruskal.html
Haslbeck, M.P.L., Nipkow, T.: Verified analysis of list update algorithms. In: Lal, A., Akshay, S., Saurabh, S., Sen, S. (eds.) Foundations of Software Technology and Theoretical Computer Science, FSTTCS 2016. LIPIcs, vol. 65, pp. 49:1–49:15. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2016). https://doi.org/10.4230/LIPIcs.FSTTCS.2016.49, https://doi.org/10.4230/LIPIcs.FSTTCS.2016.49
Hellauer, F., Lammich, P.: The string search algorithm by knuth, morris and pratt. Archive of Formal Proofs, December 2017. http://isa-afp.org/entries/Knuth_Morris_Pratt.html, Formal proof development
Hiep, H.-D.A., Maathuis, O., Bian, J., de Boer, F.S., van Eekelen, M., de Gouw, S.: Verifying OpenJDK’s LinkedList using KeY. TACAS 2020. LNCS, vol. 12079, pp. 217–234. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-45237-7_13
Hinze, R., Paterson, R.: Finger trees: a simple general-purpose data structure. J. Funct. Program. 16(2), 197–217 (2006). https://doi.org/10.1017/S0956796805005769
Hirai, Y., Yamamoto, K.: Balancing weight-balanced trees. J. Funct. Program. 21(3), 287–307 (2011). https://doi.org/10.1017/S0956796811000104
Hoffmann, J.: Types with potential: polynomial resource bounds via automatic amortized analysis. Ph.D. thesis, Ludwig Maximilians University Munich (2011). http://edoc.ub.uni-muenchen.de/13955/
Hoffmann, J., Aehlig, K., Hofmann, M.: Multivariate amortized resource analysis. ACM Trans. Program. Lang. Syst. 34(3), 14:1–14:62 (2012). https://doi.org/10.1145/2362389.2362393
Hölzl, J.: Formalising semantics for expected running time of probabilistic programs. In: Blanchette, J.C., Merz, S. (eds.) ITP 2016. LNCS, vol. 9807, pp. 475–482. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-43144-4_30
Hölzl, J., Heller, A.: Three chapters of measure theory in Isabelle/HOL. In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds.) ITP 2011. LNCS, vol. 6898, pp. 135–151. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22863-6_12
Hölzl, J., Immler, F., Huffman, B.: Type classes and filters for mathematical analysis in Isabelle/HOL. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds.) ITP 2013. LNCS, vol. 7998, pp. 279–294. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39634-2_21
Hoogerwoord, R.R.: A logarithmic implementation of flexible arrays. In: Bird, R.S., Morgan, C.C., Woodcock, J.C.P. (eds.) MPC 1992. LNCS, vol. 669, pp. 191–207. Springer, Heidelberg (1993). https://doi.org/10.1007/3-540-56625-2_14
Hurd, J.: Verification of the Miller-Rabin probabilistic primality test. J. Log. Algebraic Methods Program. 56(1–2), 3–21 (2003). https://doi.org/10.1016/S1567-8326(02)00065-6
Kaminski, B.L., Katoen, J.-P., Matheja, C., Olmedo, F.: Weakest precondition reasoning for expected run–times of probabilistic programs. In: Thiemann, P. (ed.) ESOP 2016. LNCS, vol. 9632, pp. 364–389. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49498-1_15
Kaufmann, M., Moore, J.S., Manolios, P.: Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Norwell (2000)
Keinholz, J.: Matroids. Archive of Formal Proofs, November 2018. http://isa-afp.org/entries/Matroids.html, Formal proof development
Knuth, D.E.: Optimum binary search trees. Acta Inf. 1, 14–25 (1971). https://doi.org/10.1007/BF00264289
Lammich, P.: Automatic data refinement. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds.) ITP 2013. LNCS, vol. 7998, pp. 84–99. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39634-2_9
Lammich, P.: Verified efficient implementation of Gabow’s strongly connected component algorithm. In: Klein, G., Gamboa, R. (eds.) ITP 2014. LNCS, vol. 8558, pp. 325–340. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-08970-6_21
Lammich, P.: Refinement to Imperative/HOL. In: Urban and Zhang [191], pp. 253–269. https://doi.org/10.1007/978-3-319-22102-1_17
Lammich, P.: Refinement based verification of imperative data structures. In: Avigad, J., Chlipala, A. (eds.) Proceedings of the 5th ACM SIGPLAN Conference on Certified Programs and Proofs, pp. 27–36. ACM (2016). https://doi.org/10.1145/2854065.2854067
Lammich, P.: Generating verified LLVM from Isabelle/HOL. In: Harrison, J., O’Leary, J., Tolmach, A. (eds.) Interactive Theorem Proving, ITP 2019. LIPIcs, vol. 141, pp. 22:1–22:19. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2019). https://doi.org/10.4230/LIPIcs.ITP.2019.22
Lammich, P.: Refinement to imperative HOL. J. Autom. Reasoning 62(4), 481–503 (2019). https://doi.org/10.1007/s10817-017-9437-1
Lammich, P.: Efficient verified implementation of Introsort and Pdqsort. In: Peltier, N., Sofronie-Stokkermans, V. (eds.) IJCAR 2020. LNCS (LNAI), vol. 12167, pp. 307–323. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-51054-1_18
Lammich, P., Lochbihler, A.: The Isabelle collections framework. In: Kaufmann, M., Paulson, L.C. (eds.) ITP 2010. LNCS, vol. 6172, pp. 339–354. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-14052-5_24
Lammich, P., Meis, R.: A Separation Logic Framework for Imperative HOL. Archive of Formal Proofs, November 2012. http://isa-afp.org/entries/Separation_Logic_Imperative_HOL.html, Formal proof development
Lammich, P., Neumann, R.: A framework for verifying depth-first search algorithms. In: Leroy, X., Tiu, A. (eds.) Proceedings of the 2015 Conference on Certified Programs and Proofs. CPP 2015, pp. 137–146. ACM (2015). https://doi.org/10.1145/2676724.2693165
Lammich, P., Nipkow, T.: Proof pearl: purely functional, simple and efficient priority search trees and applications to Prim and Dijkstra. In: Harrison, J., O’Leary, J., Tolmach, A. (eds.) Interactive Theorem Proving, ITP 2019. LIPIcs, vol. 141, pp. 23:1–23:18. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2019). https://doi.org/10.4230/LIPIcs.ITP.2019.23
Lammich, P., Sefidgar, S.R.: Formalizing the Edmonds-Karp algorithm. In: Blanchette, J.C., Merz, S. (eds.) ITP 2016. LNCS, vol. 9807, pp. 219–234. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-43144-4_14
Lammich, P., Sefidgar, S.R.: Formalizing network flow algorithms: a refinement approach in Isabelle/HOL. J. Autom. Reasoning 62(2), 261–280 (2019). https://doi.org/10.1007/s10817-017-9442-4
Lammich, P., Tuerk, T.: Applying data refinement for monadic programs to Hopcroft’s algorithm. In: Beringer, L., Felty, A. (eds.) ITP 2012. LNCS, vol. 7406, pp. 166–182. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-32347-8_12
Lee, G.: Correctnesss of Ford-Fulkerson’s maximum flow algorithm. Formalized Math. 13(2), 305–314 (2005). http://fm.mizar.org/2005-13/pdf13-2/glib_005.pdf
Lee, G., Rudnicki, P.: Correctness of Dijkstra’s shortest path and Prim’s minimum spanning tree algorithms. Formal. Math. 13(2), 295–304 (2005). http://fm.mizar.org/2005-13/pdf13-2/glib_004.pdf
Leighton, T.: Notes on better master theorems for divide-and-conquer recurrences (MIT lecture notes) (1996), https://courses.csail.mit.edu/6.046/spring04/handouts/akrabazzi.pdf
Malecha, J.G., Morrisett, G., Shinnar, A., Wisnesky, R.: Toward a verified relational database management system. In: Hermenegildo, M.V., Palsberg, J. (eds.) Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2010, pp. 237–248. ACM (2010). https://doi.org/10.1145/1706299.1706329
Marić, F., Spasić, M., Thiemann, R.: An incremental simplex algorithm with unsatisfiable core generation. Archive of Formal Proofs, August 2018. http://isa-afp.org/entries/Simplex.html, Formal proof development
McCarthy, J., Fetscher, B., New, M., Feltey, D., Findler, R.B.: A coq library for internal verification of running-times. In: Kiselyov, O., King, A. (eds.) FLOPS 2016. LNCS, vol. 9613, pp. 144–162. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-29604-3_10
Meikle, L.I., Fleuriot, J.D.: Mechanical theorem proving in computational geometry. In: Hong, H., Wang, D. (eds.) ADG 2004. LNCS (LNAI), vol. 3763, pp. 1–18. Springer, Heidelberg (2006). https://doi.org/10.1007/11615798_1
Meis, R., Nielsen, F., Lammich, P.: Binomial heaps and skew binomial heaps. Archive of Formal Proofs, October 2010. http://isa-afp.org/entries/Binomial-Heaps.html, Formal proof development
Meyer, B.: Eiffel: The Language. Prentice-Hall (1991). http://www.eiffel.com/doc/#etl
Moore, J S., Martinez, M.: A mechanically checked proof of the correctness of the Boyer-Moore fast string searching algorithm. In: Broy, M., Sitou, W., Hoare, T. (eds.) Engineering Methods and Tools for Software Safety and Security, pp. 267–284. IOS Press (2009)
Moore, J.S., Zhang, Q.: Proof pearl: Dijkstra’s shortest path algorithm verified with ACL2. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 373–384. Springer, Heidelberg (2005). https://doi.org/10.1007/11541868_24
Motwani, R., Raghavan, P.: Randomized Algorithms. Cambridge University Press, Cambridge (1995)
Musser, D.R.: Introspective sorting and selection algorithms. Softw. Pract. Exp. 27(8), 983–993 (1997). https://doi.org/10.1002/(SICI)1097--024X(199708)27:8<983::AID-SPE117>3.0.CO;2-%23
Nanevski, A., Morrisett, G., Shinnar, A., Govereau, P., Birkedal, L.: Ynot: dependent types for imperative programs. In: Hook, J., Thiemann, P. (eds.) Proceeding of the 13th ACM SIGPLAN International Conference on Functional Programming, ICFP 2008. pp. 229–240. ACM (2008). https://doi.org/10.1145/1411204.1411237
Neumann, R.: CAVA – A Verified Model Checker. Ph.D. thesis, Technische Universität München (2017). http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:bvb:91-diss-20170616-1342881-1-9
Nievergelt, J., Reingold, E.M.: Binary search trees of bounded balance. In: Fischer, P.C., Zeiger, H.P., Ullman, J.D., Rosenberg, A.L. (eds.) Proceedings of the 4th Annual ACM Symposium on Theory of Computing, pp. 137–142. ACM (1972). https://doi.org/10.1145/800152.804906
Nievergelt, J., Reingold, E.M.: Binary search trees of bounded balance. SIAM J. Comput. 2(1), 33–43 (1973). https://doi.org/10.1137/0202005
Nipkow, T.: Amortized complexity verified. In: Urban and Zhang [191], pp. 310–324. https://doi.org/10.1007/978-3-319-22102-1_21
Nipkow, T.: Automatic functional correctness proofs for functional search trees. In: Blanchette, J.C., Merz, S. (eds.) ITP 2016. LNCS, vol. 9807, pp. 307–322. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-43144-4_19
Nipkow, T.: Verified root-balanced trees. In: Chang, B.E. (ed.) Programming Languages and Systems, APLAS 2017. LNCS, vol. 10695, pp. 255–272. Springer (2017). https://doi.org/10.1007/978-3-319-71237-6_13
Nipkow, T., Brinkop, H.: Amortized complexity verified. J. Autom. Reasoning 62(3), 367–391 (2019). https://doi.org/10.1007/s10817-018-9459-3
Nipkow, T., Dirix, S.: Weight-balanced trees. Archive of Formal Proofs, March 2018. http://isa-afp.org/entries/Weight_Balanced_Trees.html, Formal proof development
Nipkow, T., Klein, G.: Concrete Semantics - With Isabelle/HOL. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10542-0, http://www.concrete-semantics.org/
Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45949-9
Nipkow, T., Pusch, C.: AVL trees. Archive of Formal Proofs, March 2004. http://isa-afp.org/entries/AVL-Trees.html, Formal proof development
Nipkow, T., Sewell, T.: Proof pearl: Braun trees. In: Blanchette, J., Hritcu, C. (eds.) Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs, CPP 2020, pp. 18–31. ACM (2020). https://doi.org/10.1145/3372885.3373834
Nipkow, T., Somogyi, D.: Optimal binary search trees. Archive of Formal Proofs, May 2018. http://isa-afp.org/entries/Optimal_BST.html, Formal proof development
Nordhoff, B., Körner, S., Lammich, P.: Finger trees. Archive of Formal Proofs, October 2010. http://isa-afp.org/entries/Finger-Trees.html, Formal proof development
Nordhoff, B., Lammich, P.: Dijkstra’s shortest path algorithm. Archive of Formal Proofs, January 2012. http://isa-afp.org/entries/Dijkstra_Shortest_Path.html, Formal proof development
Owre, S., Shankar, N.: A brief overview of PVS. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 22–27. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-71067-7_5
Palomo-Lozano, F., Inmaculada Medina-Bulo, J.A.A.J.: Certification of matrix multiplication algorithms. In: Theorem Proving in Higher Order Logics, Supplemental Proceedings, TPHOLs 2001 (2001)
Parsert, J., Kaliszyk, C.: Linear programming. Archive of Formal Proofs, August 2019. http://isa-afp.org/entries/Linear_Programming.html, Formal proof development
Paskevich, A., Wies, T. (eds.): VSTTE 2017. LNCS, vol. 10712. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-72308-2
Paulin-Mohring, C.: Extraction de programmes dans le Calcul des Constructions. (Program Extraction in the Calculus of Constructions). Ph.D. thesis, Paris Diderot University, France (1989). https://tel.archives-ouvertes.fr/tel-00431825
Paulson, L.C.: ML for the Working Programmer, 2nd edn. Cambridge University Press, Cambridge (1996)
Peltier, N., Sofronie-Stokkermans, V. (eds.): IJCAR 2020. LNCS (LNAI), vol. 12167. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-51054-1
Pereira, M.: Pairing heaps (2016). http://toccata.lri.fr/gallery/pairing_heap.en.html, formal proof development
Petcher, A., Morrisett, G.: The foundational cryptography framework. In: Focardi, R., Myers, A. (eds.) POST 2015. LNCS, vol. 9036, pp. 53–72. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-46666-7_4
Pichardie, D., Bertot, Y.: Formalizing convex hull algorithms. In: Boulton, R.J., Jackson, P.B. (eds.) TPHOLs 2001. LNCS, vol. 2152, pp. 346–361. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-44755-5_24
Polikarpova, N., Tschannen, J., Furia, C.A.: A fully verified container library. In: Bjørner, N., de Boer, F. (eds.) FM 2015. LNCS, vol. 9109, pp. 414–434. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-19249-9_26
Polikarpova, N., Tschannen, J., Furia, C.A.: A fully verified container library. Formal Asp. Comput. 30(5), 495–523 (2018). https://doi.org/10.1007/s00165-017-0435-1
Pottier, F.: Depth-first search and strong connectivity in Coq. In: Journées Francophones des Langages Applicatifs (JFLA), January 2015. http://gallium.inria.fr/~fpottier/publis/fpottier-dfs-scc.pdf
Pottier, F.: Verifying a hash table and its iterators in higher-order separation logic. In: ACM SIGPLAN Conference on Certified Programs and Proofs (CPP), pp. 3–16, January 2017. https://doi.org/10.1145/3018610.3018624, http://gallium.inria.fr/~fpottier/publis/fpottier-hashtable.pdf
Pugh, W.: Skip lists: a probabilistic alternative to balanced trees. Commun. ACM 33(6), 668–676 (1990). https://doi.org/10.1145/78973.78977
Ralston, R.: ACL2-certified AVL trees. In: Eighth International Workshop on the ACL2 Theorem Prover and Its Applications. ACL2 2009, pp. 71–74. ACM (2009). https://doi.org/10.1145/1637837.1637848
Rau, M., Nipkow, T.: Verification of closest pair of points algorithms. In: Peltier and Sofronie-Stokkermans [163], pp. 341–357. https://doi.org/10.1007/978-3-030-51054-1_20
Rem, M., Braun, W.: A logarithmic implementation of flexible arrays (1983). memorandum MR83/4. Eindhoven University of Technology
Sagiv, S., Reps, T.W., Wilhelm, R.: Parametric shape analysis via 3-valued logic. ACM Trans. Program. Lang. Syst. 24(3), 217–298 (2002). https://doi.org/10.1145/514188.514190
Sakaguchi, K.: Program extraction for mutable arrays. In: Gallagher, J.P., Sulzmann, M. (eds.) FLOPS 2018. LNCS, vol. 10818, pp. 51–67. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-90686-7_4
Sedgewick, R., Wayne, K.: Algorithms, 4th Edition. Addison-Wesley, Upper Saddle River (2011)
Seidel, R., Aragon, C.R.: Randomized search trees. Algorithmica 16(4/5), 464–497 (1996). https://doi.org/10.1007/BF01940876
Sleator, D.D., Tarjan, R.E.: Self-adjusting binary search trees. J. ACM 32(3), 652–686 (1985). https://doi.org/10.1145/3828.3835
Sleator, D.D., Tarjan, R.E.: Self-adjusting heaps. SIAM J. Comput. 15(1), 52–69 (1986). https://doi.org/10.1137/0215004
Slind, K., Norrish, M.: A brief overview of HOL4. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 28–32. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-71067-7_6
Sozeau, M.: Program-ing finger trees in Coq. In: Hinze, R., Ramsey, N. (eds.) Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming. ICFP 2007, pp. 13–24. ACM (2007). https://doi.org/10.1145/1291220.1291156
Spasić, M., Marić, F.: Formalization of incremental simplex algorithm by stepwise refinement. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 434–449. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-32759-9_35
Stucke, I.: Reasoning about cardinalities of relations with applications supported by proof assistants. In: Höfner, P., Pous, D., Struth, G. (eds.) RAMICS 2017. LNCS, vol. 10226, pp. 290–306. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-57418-9_18
Stüwe, D., Eberl, M.: Probabilistic primality testing. Archive of Formal Proofs, February 2019. http://isa-afp.org/entries/Probabilistic_Prime_Tests.html, Formal proof development
Tarjan, R.E.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146–160 (1972). https://doi.org/10.1137/0201010
Tassarotti, J., Harper, R.: Verified tail bounds for randomized programs. In: Avigad, J., Mahboubi, A. (eds.) ITP 2018. LNCS, vol. 10895, pp. 560–578. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-94821-8_33
Tassarotti, J., Harper, R.: A separation logic for concurrent randomized programs. Proc. ACM Program. Lang. 3(POPL), 64:1–64:30 (2019). https://doi.org/10.1145/3290377
Théry, L.: Formalising Huffman’s algorithm. Research report, Università degli Studi dell’Aquila (2004) https://hal.archives-ouvertes.fr/hal-02149909
Toibazarov, E.: An ACL2 proof of the correctness of the preprocessing for a variant of the Boyer-Moore fast string searching algorithm. Honors thesis, Computer Science Dept., University of Texas at Austin (2013). see www.cs.utexas.edu/users/moore/publications/toibazarov-thesis.pdf
Urban, C., Zhang, X. (eds.): ITP 2015. LNCS, vol. 9236. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-22102-1
Vafeiadis, V.: Adjustable references. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds.) ITP 2013. LNCS, vol. 7998, pp. 328–337. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39634-2_24
van der Weegen, E., McKinna, J.: A machine-checked proof of the average-case complexity of quicksort in Coq. In: Berardi, S., Damiani, F., de’Liguoro, U. (eds.) TYPES 2008. LNCS, vol. 5497, pp. 256–271. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02444-3_16
Wimmer, S.: Formalized timed automata. In: Blanchette, J.C., Merz, S. (eds.) ITP 2016. LNCS, vol. 9807, pp. 425–440. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-43144-4_26
Wimmer, S.: Hidden Markov models. Archive of Formal Proofs, May 2018. http://isa-afp.org/entries/Hidden_Markov_Models.html, Formal proof development
Wimmer, S., Hu, S., Nipkow, T.: Verified Memoization and dynamic programming. In: Avigad, J., Mahboubi, A. (eds.) ITP 2018. LNCS, vol. 10895, pp. 579–596. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-94821-8_34
Wimmer, S., Lammich, P.: The Floyd-Warshall algorithm for shortest paths. Archive of Formal Proofs, May 2017. http://isa-afp.org/entries/Floyd_Warshall.html, Formal proof development
Wimmer, S., Lammich, P.: Verified model checking of timed automata. In: Beyer, D., Huisman, M. (eds.) TACAS 2018. LNCS, vol. 10805, pp. 61–78. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89960-2_4
Yao, F.F.: Efficient dynamic programming using quadrangle inequalities. In: Miller, R.E., Ginsburg, S., Burkhard, W.A., Lipton, R.J. (eds.) Proceedings of the 12th Annual ACM Symposium on Theory of Computing, pp. 429–435. ACM (1980). https://doi.org/10.1145/800141.804691
Zhan, B.: Efficient verification of imperative programs using Auto2. In: Beyer, D., Huisman, M. (eds.) TACAS 2018. LNCS, vol. 10805, pp. 23–40. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89960-2_2
Zhan, B., Haslbeck, M.P.L.: Verifying asymptotic time complexity of imperative programs in Isabelle. In: Galmiche, D., Schulz, S., Sebastiani, R. (eds.) IJCAR 2018. LNCS (LNAI), vol. 10900, pp. 532–548. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-94205-6_35
Acknowledgements
We thank Andrew Appel, Gilles Barthe, Arthur Charguéraud, Cyril Cohen, Gidon Ernst, Jean-Christophe Filliâtre, Walter Guttmann, Reiner Hähnle, Peter Lammich, J Moore, Joseph Tassarotti, Laurent Théry, René Thiemann and Simon Wimmer for their help in compiling this survey and Jasmin Blanchette for nitpicking.
This research is supported by DFG Koselleck grant NI 491/16-1.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Nipkow, T., Eberl, M., Haslbeck, M.P.L. (2020). Verified Textbook Algorithms. In: Hung, D.V., Sokolsky, O. (eds) Automated Technology for Verification and Analysis. ATVA 2020. Lecture Notes in Computer Science(), vol 12302. Springer, Cham. https://doi.org/10.1007/978-3-030-59152-6_2
Download citation
DOI: https://doi.org/10.1007/978-3-030-59152-6_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-59151-9
Online ISBN: 978-3-030-59152-6
eBook Packages: Computer ScienceComputer Science (R0)