A Study in the Functions of Programming Methodology: Specifications, Institutions, Charters and Parchments

The theory of institutions formalizes the intuitive notion of a "logical system." Institutions were introduced (1) to support as much computer science as possible independently of the underlying logical system, (2) to facilitate the transfer of results (and artifacts such as theorem provers) from one logical system to another, and (3) to permit combining a number of different logical systems. In particular, programming-in-the-large (in the style of the Clear specification language) is available for any specification or "logical" programming language based upon a suitable institution. Available features include generic modules, module hierarchies, "data constraints" (for data abstraction), and "multiplex" institutions (for combining multiple logical systems). The basic components of an institution are: a category of signatures (which generally provide symbols for constructing sentences); a set (or category) of Σ-sentences for each signature Σ; a category (or set) of Σ-models for each Σ; and a Σ-satisfaction relation, between Σ-sentences and Σ-models, for each Σ. The intuition of the basic axiom for institutions is that truth (i.e., satisfaction) is invariant under change of notation. This paper enriches institutions with sentence morphisms to model proofs, and uses this to explicate the notion of a logical programming language.

[1]  Susanna Ginali,et al.  A Categorical Approach to General Systems , 1978 .

[2]  Joseph A. Goguen,et al.  Institutions : abstract model theory for computer science , 1985 .

[3]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

[4]  Donald Sannella,et al.  On Observational Equivalence and Algebraic Specification , 1985, TAPSOFT, Vol.1.

[5]  K. J. Barwise,et al.  Axioms for abstract model theory , 1974 .

[6]  Brian H. Mayoh,et al.  Galleries and Institutions , 1985 .

[7]  Joseph A. Goguen,et al.  The Semantics of CLEAR, A Specification Language , 1979, Abstract Software Specifications.

[8]  J. A. Goguen,et al.  Completeness of many-sorted equational logic , 1981, SIGP.

[9]  Christoph Beierle,et al.  Implementation Specifications , 1984, ADT.

[10]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[11]  José Meseguer,et al.  Equational Programming (A Study in Executable Algebraic Formal Specification). , 1986 .

[12]  Joseph A. Goguen,et al.  Putting Theories Together to Make Specifications , 1977, IJCAI.

[13]  S. Lane Categories for the Working Mathematician , 1971 .

[14]  Andrzej Tarlecki,et al.  Free Constructions in Algebraic Institutions , 1984, MFCS.

[15]  Joseph A. Goguen,et al.  Semantics of computation , 1974, Category Theory Applied to Computation and Control.

[16]  José Meseguer,et al.  EQLOG: Equality, Types, and Generic Modules For Logic Programming , 1986, Logic Programming: Functions, Relations, and Equations.

[17]  Horst Reichel Structural induction on partial algebras , 1984 .

[18]  José Meseguer,et al.  Equality, Types, Modules, and (Why not ?) Generics for Logic Programming , 1984, J. Log. Program..

[19]  Joseph A. Goguen,et al.  Initial Algebra Semantics and Continuous Algebras , 1977, J. ACM.

[20]  R. Adams Proceedings , 1947 .

[21]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[22]  Joseph A. Goguen,et al.  Mathematical Representation of Hierarchically Organized Systems , 1970 .

[23]  Joseph A. Goguen,et al.  Some Fundamental Algebraic Tools for the Semantics of Computation. Part 1: Comma Categories, Colimits, Signatures and Theories , 1984, Theor. Comput. Sci..

[24]  Donald Sannella,et al.  Building Specifications in an Arbitrary Institution , 1984, Semantics of Data Types.

[25]  S. Maclane,et al.  Categories for the Working Mathematician , 1971 .

[26]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[27]  Dines Bjørner,et al.  The Vienna Development Method: The Meta-Language , 1978, Lecture Notes in Computer Science.

[28]  Journal of the Association for Computing Machinery , 1961, Nature.