Descriptive and Relative Completeness of Logics for Higher-Order Functions

  • Kohei Honda
  • Martin Berger
  • Nobuko Yoshida
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4052)


This paper establishes a strong completeness property of compositional program logics for pure and imperative higher-order functions introduced in [18, 16, 17, 19, 3]. This property, called descriptive completeness, says that for each program there is an assertion fully describing the program’s behaviour up to the standard observational semantics. This formula is inductively calculable from the program text alone. As a consequence we obtain the first relative completeness result for compositional logics of pure and imperative call-by-value higher-order functions in the full type hierarchy.


Program Logic Relative Completeness Total Correctness Partial Correctness Evaluation Formula 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Comon, H., Jurski, Y.: Higher-order matching and tree automata. In: Nielsen, M. (ed.) Computer Science Logic. 11th International Workshop, CSL’97, Annual Conference of the EACSL, Aarhus, Denmark, August 23-29, 1997. LNCS, vol. 1414, pp. 157–176. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  2. 2.
    A prototype implementation of an algorithm deriving characteristic formulae (October 2005),
  3. 3.
    Berger, M., Honda, K., Yoshida, N.: A logical analysis of aliasing for higher-order imperative functions. In: ICFP 2005, pp. 280–293 (2005)Google Scholar
  4. 4.
    Blass, A., Gurevich, Y.: The Underlying Logic of Hoare Logic. In: Current Trends in Theoretical Computer Science, pp. 409–436 (2001)Google Scholar
  5. 5.
    Clarke, E.M.: The characterization problem for Hoare logics. In: Proc. Royal Society meeting on Mathematical logic and programming languages, pp. 89–106 (1985)Google Scholar
  6. 6.
    Cook, S.A.: Soundness and completeness of an axiom system for program verification. SIAM J. Comput. 7(1), 70–90 (1978)MATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order. In: CUP (1990)Google Scholar
  8. 8.
    de Bakker, J.W.: Mathematical Theory of Program Correctness, Upper Saddle River, NJ, USA. Prentice-Hall, Englewood Cliffs (1980)MATHGoogle Scholar
  9. 9.
    Detlefs, D., Nelson, G., Saxe, J.B.: Simplify: a theorem prover for program checking. J. ACM 52(3), 365–473 (2005)CrossRefMathSciNetGoogle Scholar
  10. 10.
    Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)MATHGoogle Scholar
  11. 11.
    Floyd, R.W.: Assigning meaning to programs. In: Symp. in Applied Math., vol. 19 (1967)Google Scholar
  12. 12.
    Gorelick, G.: A complete axiomatic system for proving assertions about recursive and non-recursive programs. Technical Report 75, Univ. of Toronto (1975)Google Scholar
  13. 13.
    Graf, S., Sifakis, J.: A Modal Characterization of Observational Congruence on Finite Terms of CCS. In: Paredaens, J. (ed.) ICALP 1984. LNCS, vol. 172, pp. 222–234. Springer, Heidelberg (1984)Google Scholar
  14. 14.
    Gunter, C.A.: Semantics of Programming Languages. MIT Press, Cambridge (1995)Google Scholar
  15. 15.
    Halpern, J.Y.: A good Hoare axiom system for an ALGOL-like language. In: 11th POPL, pp. 262–271. ACM Press, New York (1984)Google Scholar
  16. 16.
    Honda, K.: From process logic to program logic. In: ICFP 2004, pp. 163–174. ACM Press, New York (2004)CrossRefGoogle Scholar
  17. 17.
    Honda, K.: From process logic to program logic (full version of [16]),Typescript, 52 pages (November 2004), Available at:
  18. 18.
    Honda, K., Yoshida, N.: A compositional logic for polymorphic higher-order functions. In: PPDP 2004, pp. 191–202. ACM, New York (2004)CrossRefGoogle Scholar
  19. 19.
    Honda, K., Yoshida, N., Berger, M.: An observationally complete program logic for imperative higher-order functions. In: LICS 2005, pp. 270–279 (2005)Google Scholar
  20. 20.
    King, J.C.: A program verifier. In: IFIP Congress (1), pp. 234–249 (1971)Google Scholar
  21. 21.
    Kleymann, T.: Hoare logic and auxiliary variables. Technical report, University of Edinburgh, LFCS ECS-LFCS-98-399 (October 1998)Google Scholar
  22. 22.
    Leivant, D.: Logical and mathematical reasoning about imperative programs: preliminary report. In: Proc. POPL1985, pp. 132–140 (1985)Google Scholar
  23. 23.
    Leivant, D.: Partial Correctness Assertions Provable in Dynamic Logics. In: Walukiewicz, I. (ed.) FOSSACS 2004. LNCS, vol. 2987, pp. 304–317. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  24. 24.
    Mendelson, E.: Introduction to Mathematical Logic. Wadsworth Inc (1987)Google Scholar
  25. 25.
    Olderog, E.-R.: Sound and Complete Hoare-like Calculi Based on Copy Rules. Acta Inf 16, 161–197 (1981)MATHMathSciNetGoogle Scholar
  26. 26.
    Owicki, S., Lamport, L.: Proving liveness properties of concurrent programs. ACM Trans. Program. Lang. Syst. 4(3), 455–495 (1982)MATHCrossRefGoogle Scholar
  27. 27.
    Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)Google Scholar
  28. 28.
    Plotkin, G.D., Stirling, C.: A framework for intuitionistic modal logics. In: Theor. Aspects of Reasoning about Knowledge, pp. 399–406. Morgan Kaufmann, San Francisco (1986)Google Scholar
  29. 29.
    Smyth, M.: Power domains and predicate transformers: A topological view. In: Díaz, J. (ed.) ICALP 1983. LNCS, vol. 154, pp. 662–675. Springer, Heidelberg (1983)CrossRefGoogle Scholar
  30. 30.
    Sokołowski, S.: Axioms for total correctness. Acta Inf. 9, 61–71 (1977)MATHGoogle Scholar
  31. 31.
    Steffen, B.: Characteristic formulae. In: Ronchi Della Rocca, S., Ausiello, G., Dezani-Ciancaglini, M. (eds.) ICALP 1989. LNCS, vol. 372, pp. 723–732. Springer, Heidelberg (1989)CrossRefGoogle Scholar
  32. 32.
    Steffen, B., Ingólfsdóttir, A.: Characteristic formulae for processes with divergence. Inf. Comput. 110(1), 149–163 (1994), doi:10.1006/inco.1994.1028MATHCrossRefGoogle Scholar
  33. 33.
    von Oheimb, D.: Hoare logic for mutual recursion and local variables. In: Pandu Rangan, C., Raman, V., Ramanujam, R. (eds.) FST TCS 1999. LNCS, vol. 1738, pp. 168–180. Springer, Heidelberg (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Kohei Honda
    • 1
  • Martin Berger
    • 1
  • Nobuko Yoshida
    • 2
  1. 1.Department of Computer Science, Queen MaryUniversity of London 
  2. 2.Department of ComputingImperial College London 

Personalised recommendations