Downloads provided by UsageCounts
Property-based testing (PBT) is a powerful tool that is widely available in many modern programming languages. It has been used to reduce the effort required for formal software verification. We demonstrate how PBT can be used in conjunction with formal verification to incrementally gain greater assurance in code correctness by integrating PBT into the verification framework of Cogent---a programming language equipped with a certifying compiler for developing high-assurance systems components. Specifically, for PBT and formal verification to work in tandem, we structure the tests in a fashion that mirrors the refinement infrastructure that is often used in formal verification: the behaviour of the system under test is modelled by a functional correctness specification, which mimics that of the formal proof, and we test the refinement relation between the implementation and the specification. We exhibit the additional benefits that this mutualism brings to developers and demonstrate the techniques we used in this style of PBT, by studying two concrete examples.
SLE2022 Artefact
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
| views | 179 | |
| downloads | 3 |

Views provided by UsageCounts
Downloads provided by UsageCounts