Co-induction Simply - Automatic Co-inductive Proofs in a Program Verifier

Published: 01 Jan 2014, Last Modified: 25 Jan 2025FM 2014EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: This paper shows that an SMT-based program verifier can support reasoning about co-induction—handling infinite data structures, lazy function calls, and user-defined properties defined as greatest fix-points, as well as letting users write co-inductive proofs. Moreover, the support can be packaged to provide a simple user experience. The paper describes the features for co-induction in the language and verifier Dafny, defines their translation into input for a first-order SMT solver, and reports on some encouraging initial experience.
Loading