Principles and Pragmatics of Subtyping in PVS

PVS (Prototype Verification System) is a mechanized framework for formal specification and interactive proof development. The PVS specification language is based on higher-order logic enriched with features such as predicate subtypes, dependent types, recursive datatypes, and parametric theories. Subtyping is a central concept in the PVS type system. PVS admits the definition of subtypes corresponding to nonzero integers, prime numbers, injective maps, order-preserving maps, and even empty subtypes. We examine the principles underlying the PVS subtype mechanism and its implementation and use.

[1]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

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

[3]  Cliff B. Jones,et al.  On the Usability of Logics which Handle Partial Functions , 1991 .

[4]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[5]  J. Heijenoort Begriffsschrift, a formula language, modeled upon that of arithmetic, for pure thought GOTTLOB FREGE(1879) , 1970 .

[6]  Natarajan Shankar,et al.  Subtypes for Specifications: Predicate Subtyping in PVS , 1998, IEEE Trans. Software Eng..

[7]  Amy P. Felty,et al.  The Coq proof assistant user's guide : version 5.6 , 1990 .

[8]  Leslie Lamport,et al.  Should your specification language be typed , 1999, TOPL.

[9]  Cliff B. Jones,et al.  Systematic software development using VDM (2. ed.) , 1990, Prentice Hall International Series in Computer Science.

[10]  Peter D. Mosses CASL: A Guided Tour of Its Design , 1998, WADT.

[11]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[12]  Owre Sam,et al.  Abstract Datatypes in PVS , 1997 .

[13]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

[14]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[15]  Shankar Natarajan,et al.  The Formal Semantics of PVS , 1999 .

[16]  Marieke Huisman,et al.  A Comparison of PVS and Isabelle/HOL , 1998, TPHOLs.

[17]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[18]  William Judson LeVeque Elementary Theory of Numbers , 1990 .