Skip to main content

On Module-Based Abstraction and Repair of Behavioral Programs

  • Conference paper
Logic for Programming, Artificial Intelligence, and Reasoning (LPAR 2013)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8312))

Abstract

The number of states a program has tends to grow exponentially in the size of the code. This phenomenon, known as state explosion, hinders the verification and repair of large programs. A key technique for coping with state explosion is using abstractions, where one substitutes a program’s state graph with smaller over-approximations thereof. We show how module-based abstraction-refinement strategies can be applied to the verification of programs written in the recently proposed framework of Behavioral Programming. Further, we demonstrate how — by using a sought-after repair as a means of refining existing abstractions — these techniques can improve the scalability of existing program repair algorithms. Our findings are supported by a proof-of-concept tool.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. BPC: Behavioral Programming in C  + + , http://www.wisdom.weizmann.ac.il/~bprogram/bpc/

  2. Supplementral material, http://www.wisdom.weizmann.ac.il/~bprogram/bpc/module_based_abstraction/

  3. Alur, R., Henzinger, T.A., Kupferman, O.: Alternating-Time Temporal Logic. Journal of the ACM 49(5), 672–713 (2002)

    Article  MathSciNet  Google Scholar 

  4. Amla, N., McMillan, K.L.: Combining Abstraction Refinement and SAT-Based Model Checking. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 405–419. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  5. Arcuri, A., Yao, X.: A Novel Co-evolutionary Approach to Automatic Software Bug Fixing. In: Proc. 10th IEEE Congress on Evolutionary Computation (CEC), pp. 162–168 (2008)

    Google Scholar 

  6. Baier, C., Katoen, J.-P.: Principles of Model Checking. The MIT Press (2008)

    Google Scholar 

  7. Ball, T., Rajamani, S.K.: Automatically Validating Temporal Safety Properties of Interfaces. In: Dwyer, M.B. (ed.) SPIN 2001. LNCS, vol. 2057, pp. 103–122. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  8. Chaki, S., Clarke, E., Groce, A., Jha, S., Veith, H.: Modular Verification of Software Components in C. IEEE Transactions on Software Engineering, 385–395 (2004)

    Google Scholar 

  9. Clarke, E., Groce, A., Ouaknine, J., Strichman, O., Yorav, K.: Efficient Verification of Sequential and Concurrent C Programs. Formal Methods in System Design 25(2-3), 129–166 (2004)

    MATH  Google Scholar 

  10. Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided Abstraction Refinement. In: Proc. 12th Int. Conf. on Computer Aided Verification (CAV), pp. 154–169 (2000)

    Google Scholar 

  11. Clarke, E., Grumberg, O., Long, D.E.: Model Checking and Abstraction. In: Proc. 19th. Symposium on Principles of Programming Languages (POPL), pp. 343–354 (1992)

    Google Scholar 

  12. Damm, W., Harel, D.: LSCs: Breathing Life into Message Sequence Charts. J. on Formal Methods in System Design 19(1), 45–80 (2001)

    Article  MATH  Google Scholar 

  13. de Alfaro, L., Roy, P.: Solving Games via Three-Valued Abstraction Refinement. In: Caires, L., Vasconcelos, V.T. (eds.) CONCUR 2007. LNCS, vol. 4703, pp. 74–89. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  14. Griesmayer, A., Staber, S., Bloem, R.: Automated fault localization for c programs. In: Proc. 18th Int. Conf. on Computer Aided Verification (CAV), pp. 82–99 (2006)

    Google Scholar 

  15. Harel, D., Katz, G., Marron, A., Weiss, G.: Non-Intrusive Repair of Reactive Programs. In: Proc. 17th IEEE Int. Conf. on Engineering of Complex Computer Systems (ICECCS), pp. 3–12 (2012)

    Google Scholar 

  16. Harel, D., Marelly, R.: Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer (2003)

    Google Scholar 

  17. Harel, D., Marron, A., Weiss, G.: Behavioral Programming. Communications of the ACM 55(7), 90–100 (2012)

    Article  Google Scholar 

  18. Henzinger, T.A., Jhala, R., Majumdar, R.: Counterexample-guided Control. In: Baeten, J.C.M., Lenstra, J.K., Parrow, J., Woeginger, G.J. (eds.) ICALP 2003. LNCS, vol. 2719, pp. 886–902. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  19. Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Software Verification with BLAST. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol. 2648, pp. 235–239. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  20. Jobstmann, B., Griesmayer, A., Bloem, R.: Program Repair as a Game. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 226–238. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  21. Könighofer, R., Bloem, R.: Repair with On-The-Fly Program Analysis. In: Biere, A., Nahir, A., Vos, T. (eds.) HVC. LNCS, vol. 7857, pp. 56–71. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  22. McMillan, K.L., Zuck, L.D.: Abstract Counterexamples for Non-disjunctive Abstractions. In: Bournez, O., Potapov, I. (eds.) RP 2009. LNCS, vol. 5797, pp. 176–188. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  23. Ramadge, P., Wonham, W.: Supervisory Control of a Class of Discrete Event Processes. SIAM J. on Control and Optimization 25(1), 206–230 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  24. Staber, S., Jobstmann, B., Bloem, R.: Diagnosis is Repair. In: Proc. 16th Int. Workshop on Principles of Diagnosis (DX), pp. 169–174 (2005)

    Google Scholar 

  25. Weimer, W., Forrest, S., Le Goues, C., Nguyen, T.: Automatic Program Repair with Evolutionary Computation. Communications of the ACM 53, 109–116 (2010)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Katz, G. (2013). On Module-Based Abstraction and Repair of Behavioral Programs. In: McMillan, K., Middeldorp, A., Voronkov, A. (eds) Logic for Programming, Artificial Intelligence, and Reasoning. LPAR 2013. Lecture Notes in Computer Science, vol 8312. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45221-5_35

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-45221-5_35

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-45220-8

  • Online ISBN: 978-3-642-45221-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics