Advertisement

Representing and Reasoning with Operational Semantics

  • Dale Miller
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4130)

Abstract

The operational semantics of programming and specification languages is often presented via inference rules and these can generally be mapped into logic programming-like clauses. Such logical encodings of operational semantics can be surprisingly declarative if one uses logics that directly account for term-level bindings and for resources, such as are found in linear logic. Traditional theorem proving techniques, such as unification and backtracking search, can then be applied to animate operational semantic specifications. Of course, one wishes to go a step further than animation: using logic to encode computation should facilitate formal reasoning directly with semantic specifications. We outline an approach to reasoning about logic specifications that involves viewing logic specifications as theories in an object-logic and then using a meta-logic to reason about properties of those object-logic theories. We motivate the principal design goals of a particular meta-logic that has been built for that purpose.

Keywords

Inference Rule Logic Programming Operational Semantic Linear Logic Proof Theory 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Andreoli, J.-M.: Logic programming with focusing proofs in linear logic. J. of Logic and Computation 2(3), 297–347 (1992)MATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Aydemir, B.E., Bohannon, A., Fairbairn, M., Foster, J.N., Pierce, B.C., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., Zdancewic, S.: Mechanized metatheory for the masses: The PoplMark challenge. In: Theorem Proving in Higher Order Logics: 18th International Conference, pp. 50–65. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Boreale, M., Nicola, R.D.: A symbolic semantics for the π-calculus. Information and Computation 126(1), 34–52 (1996)MATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Borras, P., Clément, D., Despeyroux, T., Incerpi, J., Kahn, G., Lang, B., Pascual, V.: Centaur: the system. In: Proceedings of SIGSOFT 1988: Third Annual Symposium on Software Development Environments (SDE3), Boston (1988)Google Scholar
  5. 5.
    Bruijn, N.: Lambda calculus notation with namefree formulas involving symbols that represent reference transforming mappings. Indag. Math. 40(3), 348–356 (1979)Google Scholar
  6. 6.
    Church, A.: A formulation of the simple theory of types. J.of Symbolic Logic 5, 56–68 (1940)MATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Clark, K.L.: Negation as failure. In: Gallaire, J., Minker, J. (eds.) Logic and Data Bases, pp. 293–322. Plenum Press, New York (1978)Google Scholar
  8. 8.
    Constable, R.L., et al.: Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Englewood Cliffs (1986)Google Scholar
  9. 9.
    Coquand, T., Huet, G.: The calculus of constructions. Information and Computation 76(2/3), 95–120 (1988)MATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Despeyroux, J., Felty, A., Hirschowitz, A.: Higher-order abstract syntax in Coq. In: Second International Conference on Typed Lambda Calculi and Applications, pp. 124–138 (April 1995)Google Scholar
  11. 11.
    Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax with variable binding. Formal Aspects of Computing 13, 341–363 (2001)CrossRefGoogle Scholar
  12. 12.
    Gentzen, G.: Investigations into logical deductions. In: Szabo, M.E. (ed.) The Collected Papers of Gerhard Gentzen, pp. 68–131. North-Holland, Amsterdam (1969)Google Scholar
  13. 13.
    Girard, J.-Y.: A fixpoint theorem in linear logic. An email posting to the mailing list linear@cs.stanford.edu (February 1992)Google Scholar
  14. 14.
    Gordon, M.: HOL: A machine oriented formulation of higher-order logic. Technical Report 68, University of Cambridge (July 1985)Google Scholar
  15. 15.
    Groote, J.F., Vaandrager, F.: Structured operational semantics and bisimulation as a congruence. Information and Computation 100, 202–260 (1992)MATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Hallnäs, L., Schroeder-Heister, P.: A proof-theoretic approach to logic programming. II. Programs as definitions. J. of Logic and Computation 1(5), 635–660 (1991)MATHCrossRefGoogle Scholar
  17. 17.
    Hennessy, M., Lin, H.: Symbolic bisimulations. Theoretical Computer Science 138(2), 353–389 (1995)MATHCrossRefMathSciNetGoogle Scholar
  18. 18.
    Hofmann, M.: Semantical analysis of higher-order abstract syntax. In: 14th Symp. on Logic in Computer Science, pp. 204–213. IEEE Computer Society Press, Los Alamitos (1999)Google Scholar
  19. 19.
    Howe, D.J.: Proving congruence of bisimulation in functional programming languages. Information and Computation 124(2), 103–112 (1996)MATHCrossRefMathSciNetGoogle Scholar
  20. 20.
    Huet, G., Lang, B.: Proving and applying program transformations expressed with second-order patterns. Acta Informatica 11, 31–55 (1978)MATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Jaffar, J., Lassez, J.-L.: Constraint logic programming. In: Proceedings of the 14th ACM Symposium on the Principles of Programming Languages (1987)Google Scholar
  22. 22.
    Kiniry, J.R., Chalin, P., Hurlin, C.: Integrating static checking and interactive verification: Supporting multiple theories and provers in verification. In: VSTTE 2005, Proceedings of Verified Software: Theories, Tools, Experiements, Zurich, Switzerland (October 2005)Google Scholar
  23. 23.
    Martin-Löf, P.: Constructive mathematics and computer programming. In: Sixth International Congress for Logic, Methodology, and Philosophy of Science, pp. 153–175. North-Holland, Amsterdam (1982)CrossRefGoogle Scholar
  24. 24.
    McDowell, R., Miller, D.: A logic for reasoning with higher-order abstract syntax. In: Winskel, G. (ed.) 12th Symp. on Logic in Computer Science, Warsaw, Poland, July 1997, pp. 434–445. IEEE Computer Society Press, Los Alamitos (1997)Google Scholar
  25. 25.
    McDowell, R., Miller, D.: Cut-elimination for a logic with definitions and induction. Theoretical Computer Science 232, 91–119 (2000)MATHCrossRefMathSciNetGoogle Scholar
  26. 26.
    McDowell, R., Miller, D.: Reasoning with higher-order abstract syntax in a logical framework. ACM Trans. on Computational Logic 3(1), 80–136 (2002)CrossRefMathSciNetGoogle Scholar
  27. 27.
    McDowell, R., Miller, D., Palamidessi, C.: Encoding transition systems in sequent calculus. Theoretical Computer Science 294(3), 411–437 (2003)MATHCrossRefMathSciNetGoogle Scholar
  28. 28.
    Miller, D.: A logic programming language with lambda-abstraction, function variables, and simple unification. J. of Logic and Computation 1(4), 497–536 (1991)MATHCrossRefGoogle Scholar
  29. 29.
    Miller, D.: Abstract syntax for variable binders: An overview. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 239–253. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  30. 30.
    Miller, D.: Bindings, mobility of bindings, and the \(\nabla\)-quantifier. In: Marcinkowski, J., Tarlecki, A. (eds.) CSL 2004. LNCS, vol. 3210, p. 24. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  31. 31.
    Miller, D.: Overview of linear logic programming. In: Ehrhard, T., Girard, J.-Y., Ruet, P., Scott, P. (eds.) Linear Logic in Computer Science. London Mathematical Society Lecture Note, vol. 316, pp. 119–150. Cambridge University Press, Cambridge (2004)CrossRefGoogle Scholar
  32. 32.
    Miller, D., Nadathur, G.: A logic programming approach to manipulating formulas and programs. In: Haridi, S. (ed.) IEEE Symposium on Logic Programming, San Francisco, pp. 379–388 (September 1987)Google Scholar
  33. 33.
    Miller, D., Nadathur, G., Pfenning, F., Scedrov, A.: Uniform proofs as a foundation for logic programming. Annals of Pure and Applied Logic 51, 125–157 (1991)MATHCrossRefMathSciNetGoogle Scholar
  34. 34.
    Miller, D., Palamidessi, C.: Foundational aspects of syntax. ACM Computing Surveys, 31 (September 1999)Google Scholar
  35. 35.
    Miller, D., Tiu, A.: A proof theory for generic judgments: An extended abstract. In: 18th Symp. on Logic in Computer Science, June 2003, pp. 118–127. IEEE, Los Alamitos (2003)Google Scholar
  36. 36.
    Miller, D., Tiu, A.: A proof theory for generic judgments. ACM Trans. on Computational Logic 6(4), 749–783 (2005)CrossRefMathSciNetGoogle Scholar
  37. 37.
    Milner, R.: Communication and Concurrency. Prentice-Hall International, Englewood Cliffs (1989)MATHGoogle Scholar
  38. 38.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, Part II. In: Information and Computation, pp. 41–77 (1992)Google Scholar
  39. 39.
    Momigliano, A., Tiu, A.: Induction and co-induction in sequent calculus. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 293–308. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  40. 40.
    Nadathur, G., Miller, D.: An Overview of λProlog. In: Fifth International Logic Programming Conference, August 1988, pp. 810–827. MIT Press, Cambridge (1988)Google Scholar
  41. 41.
    Nadathur, G., Miller, D.: Higher-order Horn clauses. Journal of the ACM 37(4), 777–814 (1990)MATHCrossRefMathSciNetGoogle Scholar
  42. 42.
    Nadathur, G., Mitchell, D.J.: System description: Teyjus—a compiler and abstract machine based implementation of Lambda Prolog. In: Ganzinger, H. (ed.) Proceedings of the 16th International Conference on Automated Deduction, Trento, Italy, July 1999, pp. 287–291. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  43. 43.
    Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)MATHCrossRefGoogle Scholar
  44. 44.
    Owre, S., Rushby, J.M., Shankar, N.: PVS: A prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992)Google Scholar
  45. 45.
    Paulson, L.: Compiler Generation from Denotational Semantics. In: Lorho, B. (ed.) Methods and Tools for Compiler Construction, pp. 219–250. Cambridge University Press, Cambridge (1984)Google Scholar
  46. 46.
    Paulson, L.C., Grąbczewski, K.: Mechanizing set theory: Cardinal arithmetic and the axiom of choice. J. of Automated Deduction 17(3), 291–323 (1996)MATHGoogle Scholar
  47. 47.
    Pfenning, F., Elliott, C.: Higher-order abstract syntax. In: Proceedings of the ACM-SIGPLAN Conference on Programming Language Design and Implementation, June 1988, pp. 199–208. ACM Press, New York (1988)Google Scholar
  48. 48.
    Pfenning, F., Schürmann, C.: System description: Twelf — A meta-logical framework for deductive systems. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 202–206. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  49. 49.
    Sangiorgi, D.: A theory of bisimulation for the π-calculus. Acta Informatica 33(1), 69–97 (1996)CrossRefMathSciNetGoogle Scholar
  50. 50.
    Schroeder-Heister, P.: Rules of definitional reflection. In: Vardi, M. (ed.) Eighth Annual Symposium on Logic in Computer Science, June 1993, pp. 222–232. IEEE Computer Society Press, IEEE (1993)CrossRefGoogle Scholar
  51. 51.
    Schürmann, C., Pfenning, F.: A coverage checking algorithm for LF. In: Basin, D., Wolff, B. (eds.) TPHOLs 2003. LNCS, vol. 2758, pp. 120–135. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  52. 52.
    Tiu, A.: A Logical Framework for Reasoning about Logical Specifications. PhD thesis, Pennsylvania State University (May 2004)Google Scholar
  53. 53.
    Tiu, A.: Model checking for π-calculus using proof search. In: Abadi, M., de Alfaro, L. (eds.) CONCUR 2005. LNCS, vol. 3653, pp. 36–50. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  54. 54.
    Tiu, A., Miller, D.: A proof search specification of the π-calculus. In: 3rd Workshop on the Foundations of Global Ubiquitous Computing, September 2004, vol. 138, pp. 79–101 (2004)Google Scholar
  55. 55.
    Tiu, A., Nadathur, G., Miller, D.: Mixing finite success and finite failure in an automated prover. In: Proceedings of ESHOL 2005: Empirically Successful Automated Reasoning in Higher-Order Logics, December 2005, pp. 79–98 (2005)Google Scholar
  56. 56.
    Ziegler, A., Miller, D., Palamidessi, C.: A congruence format for name-passing calculi. In: Proceedings of SOS 2005: Structural Operational Semantics, Lisbon, Portugal, July 2005. Electronic Notes in Theoretical Computer Science, Elsevier Science B.V, Amsterdam (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Dale Miller
    • 1
  1. 1.INRIA & LIX, École Polytechnique 

Personalised recommendations