Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2048066.2048113acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Product lines of theorems

Published: 22 October 2011 Publication History

Abstract

Mechanized proof assistants are powerful verification tools, but proof development can be difficult and time-consuming. When verifying a family of related programs, the effort can be reduced by proof reuse. In this paper, we show how to engineer product lines with theorems and proofs built from feature modules. Each module contains proof fragments which are composed together to build a complete proof of correctness for each product. We consider a product line of programming languages, where each variant includes metatheory proofs verifying the correctness of its semantic definitions. This approach has been realized in the Coq proof assistant, with the proofs of each feature independently certifiable by Coq. These proofs are composed for each language variant, with Coq mechanically verifying that the composite proofs are correct. As validation, we formalize a core calculus for Java in Coq which can be extended with any combination of casts, interfaces, or generics.

References

[1]
Paul Bassett. Frame-based software engineering. IEEE Software, 4(4), 1987.
[2]
D. Batory and E. Borger. Modularizing theorems for software product lines: The jbook case study. Journal of Universal Computer Science, 14(12):2059--2082, 2008.
[3]
D. Batory, Rich Cardone, and Y. Smaragdakis. Object-oriented frameworks and product-lines. In SPLC, 2000.
[4]
D. Batory, J. Kim, and P. Hofner. Feature interactions, products, and composition. In GPCE, 2011.
[5]
D. Batory, J.N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE TSE, 30, June 2004.
[6]
Don Batory. Feature models, grammars, and propositional formulas. Software Product Lines, pages 7--20, 2005.
[7]
Don Batory, Rich Cardone, and Yannis Smaragdakis. Object-oriented framework and product lines. In SPLC, pages 227--247, 2000.
[8]
Yves Bertot and Pierre Casteran. Interactive Theorem Proving and Program Development. Springer-Verlag, Berlin, 2004.
[9]
Olivier Boite. Proof reuse with extended inductive types. In Theorem Proving in Higher Order Logics, pages 50--65, 2004.
[10]
Adam Chlipala. A verified compiler for an impure functional language. In POPL 2010, January 2010.
[11]
David Delahaye. A tactic language for the system coq. In Proceedings of Logic for Programming and Automated Reasoning (LPAR), Reunion Island, volume 1955 of LNCS}, pages 85--95. Springer, 2000.
[12]
Feature oriented programming. http://en.wikipedia.org/wiki/Feature_Oriented_Programming, 2008.
[13]
Georges Gonthier. In Deepak Kapur, editor, Computer Mathematics, chapter The Four Colour Theorem: Engineering of a Formal Proof, pages 333--333. Springer-Verlag, Berlin, Heidelberg, 2008.
[14]
Atsushi Igarashi, Benjamin C. Pierce, and Philip Wadler. Featherweight java: a minimal core calculus for java and gj. ACM Trans. Program. Lang. Syst., 23(3):396--450, 2001.
[15]
K.C. Kang. Private Correspondence, 2005.
[16]
Xavier Leroy. Formal verification of a realistic compiler. Commun. ACM, 52:107--115, July 2009.
[17]
Michael Y. Levin and Benjamin C. Pierce. Tinkertype: A language for playing with formal systems. Journal of Functional Programming, 13(2), March 2003. A preliminary version appeared as an invited paper at the Logical Frameworks and Metalanguages Workshop (LFM), June 2000.
[18]
M. D. McIlroy. Mass-produced software components. Proc. NATO Conf. on Software Engineering, Garmisch, Germany. 1968.
[19]
R. Monson-Haefel. Enterprise Java Beans. O'Reilly, 3rd edition, 2001.
[20]
Peter D. Mosses. Modular structural operational semantics. J. Log. Algebr. Program.}, 60--61:195--228, 2004.
[21]
Anne Mulhern. Proof weaving. In Proceedings of the First Informal ACM SIGPLAN Workshop on Mechanizing Metatheory, September 2006.
[22]
J. Neighbors. The draco approach to constructing software from reusable components. IEEE TSE, September 1984.
[23]
D.L. Parnas. On the design and development of program families. IEEE TSE, SE-2(1):1 -- 9, March 1976.
[24]
Benjamin C. Pierce. Types and Programming Languages. MIT Press, 2002.
[25]
Y. Smaragdakis and D. Batory. Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM, December 2001.
[26]
Yannis Smaragdakis and Don Batory. Implementing reusable object-oriented components. In the 5th Int. Conf. on Software Reuse (ICSR 98), pages 36--45. Society Press, 1998.
[27]
Robert Stark, Joachim Schmid, and Egon Borger. Java and the java virtual machine - definition, verification, validation, 2001.
[28]
Rok Strnisa, Peter Sewell, and Matthew J. Parkinson. The {Java} module system: core design and semantic definition. In OOPSLA, pages 499--514, 2007.
[29]
T. Thum, I. Schaefer, M. Kuhlemann, and S. Apel. Proof composition for deductive verification of software product lines. In Software Testing, Verification and Validation Workshop. (ICSTW) 2011}, pages 270--277, March 2011.
[30]
Michael VanHilst and David Notkin. Decoupling change from design. SIGSOFT Softw. Eng. Notes}, 21:58--69, October 1996.

Cited By

View all
  • (2022)A conceptual framework for safe object initialization: a principled and mechanized soundness proof of the Celsius modelProceedings of the ACM on Programming Languages10.1145/35633146:OOPSLA2(729-757)Online publication date: 31-Oct-2022
  • (2021)Delta-based verification of software product familiesProceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3486609.3487200(69-82)Online publication date: 17-Oct-2021
  • (2020)Who Carries the Burden of Modularity?Leveraging Applications of Formal Methods, Verification and Validation: Verification Principles10.1007/978-3-030-61362-4_1(3-21)Online publication date: 29-Oct-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
October 2011
1104 pages
ISBN:9781450309400
DOI:10.1145/2048066
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 10
    OOPSLA '11
    October 2011
    1063 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2076021
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 October 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. feature-orientation
  2. mechanized metatheory
  3. product line verification

Qualifiers

  • Research-article

Conference

SPLASH '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)3
Reflects downloads up to 18 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2022)A conceptual framework for safe object initialization: a principled and mechanized soundness proof of the Celsius modelProceedings of the ACM on Programming Languages10.1145/35633146:OOPSLA2(729-757)Online publication date: 31-Oct-2022
  • (2021)Delta-based verification of software product familiesProceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3486609.3487200(69-82)Online publication date: 17-Oct-2021
  • (2020)Who Carries the Burden of Modularity?Leveraging Applications of Formal Methods, Verification and Validation: Verification Principles10.1007/978-3-030-61362-4_1(3-21)Online publication date: 29-Oct-2020
  • (2019)Reusable specification templates for defining dynamic semantics of DSLsSoftware and Systems Modeling (SoSyM)10.1007/s10270-017-0590-018:1(691-720)Online publication date: 1-Feb-2019
  • (2017)Intrinsically-typed definitional interpreters for imperative languagesProceedings of the ACM on Programming Languages10.1145/31581042:POPL(1-34)Online publication date: 27-Dec-2017
  • (2016)Programmable semantic fragments: the design and implementation of typyACM SIGPLAN Notices10.1145/3093335.299324552:3(81-92)Online publication date: 20-Oct-2016
  • (2016)Programmable semantic fragments: the design and implementation of typyProceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/2993236.2993245(81-92)Online publication date: 20-Oct-2016
  • (2016)A Flexible SoC and Its Methodology for Parser-Based ApplicationsACM Transactions on Reconfigurable Technology and Systems10.1145/293937910:1(1-23)Online publication date: 24-Sep-2016
  • (2016)Supervisory Controller Synthesis for Product Lines Using CIF 3Leveraging Applications of Formal Methods, Verification and Validation: Foundational Techniques10.1007/978-3-319-47166-2_59(856-873)Online publication date: 5-Oct-2016
  • (2015)Towards correct-by-construction product variants of a software product line: GFML, a formal language for feature modulesElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.182.4182(44-55)Online publication date: 12-Apr-2015
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media