Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1181775.1181789acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Interpolation for data structures

Published: 05 November 2006 Publication History

Abstract

Interpolation based automatic abstraction is a powerful and robust technique for the automated analysis of hardware and software systems. Its use has however been limited to control-dominated applications because of a lack of algorithms for computing interpolants for data structures used in software programs. We present efficient procedures to construct interpolants for the theories of arrays, sets, and multisets using the reduction approach for obtaining decision procedures for complex data structures. The approach taken is that of reducing the theories of such data structures to the theories of equality and linear arithmetic for which efficient interpolating decision procedures exist. This enables interpolation based techniques to be applied to proving properties of programs that manipulate these data structures.

References

[1]
W. Ackermann. Solvable Cases of the Decision Problem. North-Holland, 1954.
[2]
T. Ball and S.K. Rajamani. The SLAM project: debugging system software via static analysis. In POPL 02, pages 1--3. ACM, 2002.
[3]
S. Chaki, E.M. Clarke, A. Groce, S. Jha, and H. Veith. Modular verification of software components in C. IEEE TSE, 30(6):388--402, 2004.
[4]
D.G. Clarke, J. Noble, and J.M. Potter. Simple ownership types for object containment. In ECOOP 01, pages 53--76.
[5]
E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In CAV 00, LNCS 1855, pages 154--169. Springer, 2000.
[6]
W. Craig. Linear reasoning: A new form of the Herbrand-Gentzen theorem. J. Symbolic Logic, 22(3):250--268, 1957.
[7]
D. Detlefs, G. Nelson, and J.B. Saxe. Simplify: a theorem prover for program checking. J. ACM, 52(3):365--473, 2005.
[8]
P.J. Downey. Undeciability of Presburger arithmetic with a single monadic predicate letter. Technical Report 18-72, Havard University, 1972.
[9]
M.C. Fitting. First-Order Logic and Automated Theorem Proving. Springer, 1996.
[10]
C. Flanagan, K.R.M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for Java. In PLDI 02, pages 234--245. ACM, 2002.
[11]
S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In CAV 97, LNCS 1254, pages 72--83. Springer, 1997.
[12]
Y. Gurevich. The decision problem for standard classes. J. Symbolic Logic, 41(2), 1976.
[13]
J. Guttag. The specification and applicatons to programming of abstract data types. PhD thesis, University of Toronto, 1975.
[14]
T.A. Henzinger, R. Jhala, R. Majumdar, and K.L. McMillan. Abstractions from proofs. In POPL 04, pages 232--244. ACM, 2004.
[15]
T.A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL 02, pages 58--70. ACM, 2002.
[16]
C.A.R. Hoare. Proof of correctness of data representations. Acta Inf., 1:271--281, 1972.
[17]
R. Jhala and K.L. McMillan. Interpolant-based transition relation approximation. In CAV 05, LNCS 3576, pages 39--51. Springer, 2005.
[18]
R. Jhala and K.L. McMillan. A practical and complete approach to predicate abstraction. In TACAS 06. Springer, 2006.
[19]
D. Kapur and H. Zhang. An overview of rewrite rule laboratory (RRL). J. Computer and Mathematics with applications, 14(2):91--114, 1995.
[20]
Deepak Kapur and Calogero G. Zarba. A reduction approach to decision procedures. 2005.
[21]
V. Kuncak and M. Rinard. The first-order theory of sets with cardinality constraints is decidable. Technical Report CSAIL 958, MIT, 2004.
[22]
P. Lam, V. Kuncak, and M.C. Rinard. Hob: A tool for verifying data structure consistency. In CC 05, pages 237--241, 2005.
[23]
B. Liskov and S. Zilles. Programming with abstract data types. In Symp. very high level programming languages. 1974.
[24]
A. Mal'cev. Axiomatizable classes of locally free algebras of certain types. Sibirsk. Mat. Zh., 3:729--743, 1962.
[25]
K.L. McMillan. Interpolation and SAT-based model checking In CAV 03, LNCS 2725, pages 1--13. Springer, 2003.
[26]
K.L. McMillan. An interpolating theorem prover. Theoretical Computer Science, 345:101--121, 2005.
[27]
S. McPeak and G.C. Necula. Data structure specifications via local equality axioms. In CAV 05, LNCS 3576, pages 476--490. Springer, 2005.
[28]
P.W. O'Hearn, H. Yang, and J.C. Reynolds. Separation and information hiding. In POPL 04. ACM, 2004.
[29]
D.C. Oppen. Reasoning about recursively defined data structures. J. ACM, 27(3):403--411, 1980.
[30]
M. Parkinson and G. Bierman. Separation logic and abstraction. In POPL 05. ACM, 2005.
[31]
D.L. Parnas. The secret history of information hiding. In Software pioneers: contributions to software engineering. Springer, 2002.
[32]
M. Presburger. Über die Vollständigkeit eines gewissen Systems der Arithmetik ganzer Zahlen, in welchen die Addition als einzige Operation hervortritt. In Comptes Rendus du Premier Congrès des Mathématicienes des Pays Slaves, pages 92--101, 1929.
[33]
S. Sagiv, T.W. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM TOPLAS, 24(3):217--298, 2002.
[34]
A. Stump, C.W. Barret, D.L. Dill, and J. Levitt. A decision procedure for an extensional theory of arrays. In LICS 01, pages 29--37. IEEE, 2001.
[35]
A. Stump, C.W. Barrett, and D.L. Dill. Cvc: A cooperating validity checker. In CAV 02, LNCS 2404, pages 500--504. Springer, 2002.
[36]
G. Takeuti. Proof Theory. North-Holland, 1987.
[37]
A. Tarski. A Decision Method for Elementary Algebra and Geometry. University of California Press, 1951.
[38]
A. M. Turing. On computable numbers, with an application to the Entscheidungsproblem. Proc. London Math. Society, 42:230--265, 1936.
[39]
V. Weispfenning. The complexity of linear problems in fields. J. Symbolic Computation, 5(1/2):3--27, 1988.
[40]
C.G. Zarba. Combining multisets with integers. In CADE 02, LNCS 2392, pages 363--376. Springer, 2002.
[41]
C.G. Zarba. A quantifier elimination algorithm for a fragment of set theory involving the cardinality operator. In International Workshop on Unification, 2004.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGSOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
November 2006
298 pages
ISBN:1595934685
DOI:10.1145/1181775
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: 05 November 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CEGAR
  2. data structure verification
  3. interpolation

Qualifiers

  • Article

Conference

SIGSOFT06/FSE-14
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Nonlinear Craig Interpolant Generation Over Unbounded Domains by Separating Semialgebraic SetsFormal Methods10.1007/978-3-031-71162-6_5(92-110)Online publication date: 9-Sep-2024
  • (2024)Model Completeness for Rational TreesAutomated Reasoning10.1007/978-3-031-63498-7_16(265-283)Online publication date: 1-Jul-2024
  • (2023)Complete First-Order Reasoning for Properties of Functional ProgramsProceedings of the ACM on Programming Languages10.1145/36228357:OOPSLA2(1063-1092)Online publication date: 16-Oct-2023
  • (2023)Interpolation Results for Arrays with Length and MaxDiffACM Transactions on Computational Logic10.1145/358716124:4(1-33)Online publication date: 9-Jun-2023
  • (2022)Interpolation and Uniform Interpolation in Quantifier-Free Fragments of Combined First-Order TheoriesMathematics10.3390/math1003046110:3(461)Online publication date: 31-Jan-2022
  • (2021)Beyond the elementary representations of program invariants over algebraic data typesProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454055(451-465)Online publication date: 19-Jun-2021
  • (2021)Interpolating bit-vector formulas using uninterpreted predicates and Presburger arithmeticFormal Methods in System Design10.1007/s10703-021-00372-6Online publication date: 12-May-2021
  • (2021)Interpolation and Model Checking for Nonlinear ArithmeticComputer Aided Verification10.1007/978-3-030-81688-9_13(266-288)Online publication date: 15-Jul-2021
  • (2021)Interpolation and Amalgamation for Arrays with MaxDiffFoundations of Software Science and Computation Structures10.1007/978-3-030-71995-1_14(268-288)Online publication date: 23-Mar-2021
  • (2021)Reasoning in the Theory of Heap: Satisfiability and InterpolationLogic-Based Program Synthesis and Transformation10.1007/978-3-030-68446-4_9(173-191)Online publication date: 13-Feb-2021
  • 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