Formal Reasoning Using an Iterative Approach with an Integrated Web IDE
Nabil M. Kabbani (Clemson University), Daniel Welch (Clemson, University), Caleb Priester (Clemson University), Stephen Schaub (Clemson, University), Blair Durkee (Clemson University), Yu-Shan Sun (Clemson, University), Murali Sitaraman (Clemson University)

TL;DR
This paper discusses an integrated Web IDE that supports iterative formal reasoning and verification of software correctness, demonstrating its effectiveness in educational settings with real student examples.
Contribution
It introduces a Web IDE with a push-button verifier that facilitates iterative formal reasoning and verification in teaching software correctness.
Findings
The IDE supports iterative reasoning with human-readable verification conditions.
Students successfully use the IDE to develop and refine formal specifications.
The approach enhances understanding of formal methods in a classroom environment.
Abstract
This paper summarizes our experience in communicating the elements of reasoning about correctness, and the central role of formal specifications in reasoning about modular, component-based software using a language and an integrated Web IDE designed for the purpose. Our experience in using such an IDE, supported by a 'push-button' verifying compiler in a classroom setting, reveals the highly iterative process learners use to arrive at suitably specified, automatically provable code. We explain how the IDE facilitates reasoning at each step of this process by providing human readable verification conditions (VCs) and feedback from an integrated prover that clearly indicates unprovable VCs to help identify obstacles to completing proofs. The paper discusses the IDE's usage in verified software development using several examples drawn from actual classroom lectures and student assignments…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
