A Diagrammatic Algebra for Program Logics
arXiv:2410.03561
Abstract
Tape diagrams provide a convenient notation for arrows of rig categories, i.e., categories equipped with two monoidal products, and , where distributes over . In this work, we extend tape diagrams with traces over in order to deal with iteration in imperative programming languages. More precisely, we introduce Kleene-Cartesian bicategories, namely rig categories where the monoidal structure provided by is a cartesian bicategory, while the one provided by is what we name a Kleene bicategory. We show that the associated language of tape diagrams is expressive enough to deal with imperative programs and the corresponding laws provide a proof system that is at least as powerful as the one of Hoare logic.
arXiv admin note: text overlap with arXiv:2210.09950