Skip to main content

Safety Transformations: Sound and Complete?

  • Conference paper
Computer Safety, Reliability, and Security (SAFECOMP 2013)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8153))

Included in the following conference series:

Abstract

Safety transformations transform unsafe original software into safe software that, in contrast to the unsafe version, detects if its execution was incorrect due to execution errors. Especially transformations based on arithmetic codes such as an AN- or ANB-code apply complex and error-prone transformations, while at the same time aiming for safety- or mission-critical applications. Testing and error injection are used so far to ensure correctness and error detection capabilities. But both are incomplete and might miss errors that change functionality or reduce error detection rates. Our research provides tools for a complete analysis of AN-encoding safety transformations. This paper presents our analysis tools and results for the AN-encoded operations. While we were able to demonstrate functional correctness, we discovered bugs that prevent propagation of errors almost completely for AN-encoded divisions and reduce propagation significantly for logical bitwise operations.

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. Ahrendt, W., Baar, T., Beckert, B., Bubel, R., Giese, M., Hähnle, R., Menzel, W., Mostowski, W., Roth, A., Schlager, S., Schmitt, P.H.: The KeY Tool. Software and System Modeling 4, 32–54 (2005)

    Article  Google Scholar 

  2. Ahrendt, W., Beckert, B., Hähnle, R., Rümmer, P., Schmitt, P.H.: Verifying Object-Oriented Programs with KeY: A Tutorial. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709, pp. 70–101. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  3. Avizienis, A.: Arithmetic Error Codes: Cost and Effectiveness Studies for Application in Digital System Design. In: IEEE Transactions on Computers, pp. 1322–1331 (1971)

    Google Scholar 

  4. Babic, D., Hu, A.J.: Calysto: scalable and precise extended static checking. In: Proceedings of the 30th International Conference on Software Engineering, ICSE 2008, pp. 211–220. ACM, New York (2008)

    Google Scholar 

  5. Borkar, S.: Designing Reliable Systems from Unreliable Components: The Challenges of Transistor Variability and Degradation. IEEE Micro. 25(6), 10–16 (2005)

    Article  Google Scholar 

  6. Brummayer, R., Biere, A.: Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 174–177. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  7. Chang, J., Reis, G.A., August, D.I.: Automatic Instruction-Level Software-Only Recovery. In: Proceedings of the International Conference on Dependable Systems and Networks (DSN), pp. 83–92. IEEE Computer Society, Washington, DC (2006)

    Chapter  Google Scholar 

  8. Clarke, E.M., Kroning, D., Lerda, F.: A Tool for Checking ANSI-C Programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  9. de Moura, L., Bjørner, N.S.: Z3: An Efficient SMT Solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  10. Griggio, A.: A Practical Approach to Satisfiability Modulo Linear Integer Arithmetic. Journal on Satisfiability, Boolean Modeling and Computation (JSAT) 8, 1–27 (2012)

    MathSciNet  Google Scholar 

  11. Larsson, D., Hähnle, R.: Symbolic Fault Injection. In: 4th International Verification Workshop in connection with CADE-21, Bremen, Germany, pp. 85–103 (2007)

    Google Scholar 

  12. Lattner, C., Adve, V.: LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In: Proceedings of the International Symposium on Code Generation and Optimization (CGO), p. 75. IEEE Computer Society, Washington, DC (2004)

    Google Scholar 

  13. Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52, 107–115 (2009)

    Article  Google Scholar 

  14. The MathWorks. Code Verification and Run-Time Error Detection Through Abstract Interpretation. Technical report, The MathWorks (2012)

    Google Scholar 

  15. Merz, F., Falke, S., Sinz, C.: LLBMC: bounded model checking of C and C++ programs using a compiler IR. In: Joshi, R., Müller, P., Podelski, A. (eds.) VSTTE 2012. LNCS, vol. 7152, pp. 146–161. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  16. Pattabiraman, K., Nakka, N., Kalbarczyk, Z., Iyer, R.: SymPLFIED: Symbolic program-level fault injection and error detection framework. In: IEEE International Conference on Dependable Systems and Networks With FTCS and DCC, DSN 2008, pp. 472–481 (June 2008)

    Google Scholar 

  17. Reis, G.A., Chang, J., August, D.I., Cohn, R., Mukherjee, S.S.: Configurable Transient Fault Detection via Dynamic Binary Translation. In: Proceedings of the 2nd Workshop on Architectural Reliability (2006)

    Google Scholar 

  18. Reis, G.A., Chang, J., Vachharajani, N., Rangan, R., August, D.I.: SWIFT: Software Implemented Fault Tolerance. In: Proceedings of the International Symposium on Code Generation and Optimization (CGO), pp. 243–254. IEEE Computer Society, Washington, DC (2005)

    Chapter  Google Scholar 

  19. Schiffel, U., Schmitt, A., Süßkraut, M., Fetzer, C.: ANB- and aNBDmem-encoding: Detecting hardware errors in software. In: Schoitsch, E. (ed.) SAFECOMP 2010. LNCS, vol. 6351, pp. 169–182. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  20. Schiffel, U., Schmitt, A., Süßkraut, M., Fetzer, C.: Software-Implemented Hardware Error Detection: Costs and Gains. In: The Third International Conference on Dependability, DEPEND 2010 (2010)

    Google Scholar 

  21. Fetzer, C., Schiffel, U., Süßkraut, M.: AN-encoding compiler: Building safety-critical systems with commodity hardware. In: Buth, B., Rabe, G., Seyfarth, T. (eds.) SAFECOMP 2009. LNCS, vol. 5775, pp. 283–296. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  22. Seelemann, M.: Evaluation of Predicate-Complete Test Coverage and Symbolic Execution for Software Testing and Verification. Master’s thesis, Technische Universität Dresden (2010)

    Google Scholar 

  23. Svenningsson, R., Eriksson, H., Vinter, J., Törngren, M.: Generic fault modelling for fault injection. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 287–296. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  24. Wappler, U., Fetzer, C.: Hardware Failure Virtualization Via Software Encoded Processing. In: 5th IEEE International Conference on Industrial Informatics, INDIN 2007 (2007)

    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

Schiffel, U. (2013). Safety Transformations: Sound and Complete?. In: Bitsch, F., Guiochet, J., Kaâniche, M. (eds) Computer Safety, Reliability, and Security. SAFECOMP 2013. Lecture Notes in Computer Science, vol 8153. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40793-2_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-40793-2_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-40792-5

  • Online ISBN: 978-3-642-40793-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics