Closure Induction in a Z-Like Language

Simply-typed set-theoretic languages such as Z and B are widely used for program and system specifications. The main technique for reasoning about such specifications is induction. However, while partiality is an important concept in these languages, many standard approaches to automating induction proofs rely on the totality of all occurring functions. Reinterpreting the second author's recently proposed induction technique for partial functional programs, we introduce in this paper the new principle of "closure induction" for reasoning about the inductive properties of partial functions in simply-typed set-theoretic languages. In particular, closure induction allows us to prove partial correctness, that is, to prove those instances of conjectures for which designated partial functions are explicitly defined.

[1]  Bernhard Gramlich,et al.  On Notions of Inductive Validity for First-Oder Equational Clauses , 1994, CADE.

[2]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[3]  R D Arthan Undeenedness in Z: Issues for Speciication and Proof , 1996 .

[4]  Jürgen Giesl,et al.  Termination Analysis by Inductive Evaluation , 1998, CADE.

[5]  Jürgen Giesl,et al.  Termination Analysis for Functional Programs , 1998 .

[6]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[7]  G. Birkhoff,et al.  On the Structure of Abstract Algebras , 1935 .

[8]  J. Michael Spivey,et al.  Z Notation - a reference manual (2. ed.) , 1992, Prentice Hall International Series in Computer Science.

[9]  Cliff B. Jones,et al.  Partial Functions and Logics: A Warning , 1995, Inf. Process. Lett..

[10]  Deepak Kapur,et al.  Constructors can be Partial too , 1997 .

[11]  Christoph Walther,et al.  Mathematical induction , 1994, Handbook of Logic in Artificial Intelligence and Logic Programming.

[12]  Frank van Harmelen,et al.  Rippling: A Heuristic for Guiding Inductive Proofs , 1993, Artif. Intell..

[13]  Bernhard Gramlich,et al.  Abstract Relations between Restricted Termination and Confluence Properties of Rewrite Systems , 1995, Fundam. Informaticae.

[14]  Jürgen Giesl,et al.  Approximating the Domains of Functional and Imperative Programs , 1999, Sci. Comput. Program..

[15]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[16]  David A. Duffy On partial-function application in Z , 1998, FM-Trends 1998.

[17]  Samuel H. Valentine,et al.  On Mutually Recursive Free Types in Z , 2000, ZB.

[18]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

[19]  Samuel H. Valentine Inconsistency and Undefinedness in Z - A Practical Guide , 1998, ZUM.

[20]  Deepak Kapur,et al.  A Mechanizable Induction Principle for Equational Specifications , 1988, CADE.