DepthK: A k-Induction Verifier Based on Invariant Inference for C Programs

(Competition Contribution)
  • Williame Rocha
  • Herbert Rocha
  • Hussama Ismail
  • Lucas Cordeiro
  • Bernd Fischer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10206)


DepthK is a software verification tool that employs a proof by induction algorithm that combines k-induction with invariant inference. In order to efficiently and effectively verify and falsify safety properties in C programs, DepthK infers program invariants using polyhedral constraints. Experimental results show that our approach can handle a wide variety of safety properties in several intricate verification tasks.


  1. 1.
    Cordeiro, L., Fischer, B.: Verifying multi-threaded software using SMT-based context-bounded model checking. In: ICSE, pp. 331–340 (2011)Google Scholar
  2. 2.
    Cordeiro, L., Fischer, B., Marques-Silva, J.: SMT-based bounded model checking for embedded ANSI-C software. In: ASE, pp. 137–148 (2009)Google Scholar
  3. 3.
    Morse, J., Cordeiro, L., Nicole, D., Fischer, B.: Handling unbounded loops with ESBMC 1.20. In: Piterman, N., Smolka, S.A. (eds.) TACAS 2013. LNCS, vol. 7795, pp. 619–622. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-36742-7_47 CrossRefGoogle Scholar
  4. 4.
    Gadelha, M.Y.R., Ismail, H.I., Cordeiro, L.C.: Handling loops in bounded model checking of C programs via k-induction. STTT (to appear)Google Scholar
  5. 5.
    Rocha, H., Ismail, H., Cordeiro, L.C., Barreto, R.S.: Model checking embedded C software using k-induction and invariants. In: SBESC, pp. 90–95 (2015)Google Scholar
  6. 6.
    Beyer, D., Keremoglu, M.E.: CPAchecker: a tool for configurable software verification. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 184–190. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-22110-1_16 CrossRefGoogle Scholar
  7. 7.
    Heizmann, M., Dietsch, D., Greitschus, M., Leike, J., Musa, B., Schätzle, C., Podelski, A.: Ultimate automizer with two-track proofs. In: Chechik, M., Raskin, J.-F. (eds.) TACAS 2016. LNCS, vol. 9636, pp. 950–953. Springer, Heidelberg (2016). doi: 10.1007/978-3-662-49674-9_68 CrossRefGoogle Scholar
  8. 8.
    Henry, J., Monniaux, D., Moy, M.: PAGAI: a path sensitive static analyser. Electron. Notes Theor. Comput. Sci. 289, 15–25 (2012)CrossRefGoogle Scholar
  9. 9.
    PIPS: Automatic parallelizer and code transformation framework (2013).
  10. 10.
    Maisonneuve, V., Hermant, O., Irigoin, F.: Computing invariants with transformers: experimental scalability and accuracy. In: NSAD, vol. 307, pp. 17–31 (2014)Google Scholar
  11. 11.
    Morse, J., Ramalho, M., Cordeiro, L., Nicole, D., Fischer, B.: ESBMC 1.22 - (competition contribution). In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014. LNCS, vol. 8413, pp. 405–407. Springer, Heidelberg (2014). doi: 10.1007/978-3-642-54862-8_31 CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany 2017

Authors and Affiliations

  • Williame Rocha
    • 1
  • Herbert Rocha
    • 2
  • Hussama Ismail
    • 1
  • Lucas Cordeiro
    • 1
    • 3
  • Bernd Fischer
    • 4
  1. 1.Electronic and Information Research CenterFederal University of AmazonasManausBrazil
  2. 2.Department of Computer ScienceFederal University of RoraimaBoa VistaBrazil
  3. 3.Department of Computer ScienceUniversity of OxfordOxfordUK
  4. 4.Division of Computer ScienceUniversity of StellenboschStellenboschSouth Africa

Personalised recommendations