Title: Pop-Refinement
Author: Alessandro Coglio
Submission date: 2014-07-03
Abstract: Pop-refinement is an approach to stepwise refinement, carried out inside an interactive theorem prover by constructing a monotonically decreasing sequence of predicates over deeply embedded target programs. The sequence starts with a predicate that characterizes the possible implementations, and ends with a predicate that characterizes a unique program in explicit syntactic form. Pop-refinement enables more requirements (e.g. program-level and non-functional) to be captured in the initial specification and preserved through refinement. Security requirements expressed as hyperproperties (i.e. predicates over sets of traces) are always preserved by pop-refinement, unlike the popular notion of refinement as trace set inclusion. Two simple examples in Isabelle/HOL are presented, featuring program-level requirements, non-functional requirements, and hyperproperties.
  author  = {Alessandro Coglio},
  title   = {Pop-Refinement},
  journal = {Archive of Formal Proofs},
  month   = jul,
  year    = 2014,
  note    = {\url{http://isa-afp.org/entries/Pop_Refinement.shtml},
            Formal proof development},
  ISSN    = {2150-914x},
License: BSD License