A Diagrammatic Algebra for Program Logics
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.
Turn this paper into a full lesson
ArcXiv compiles a staged curriculum from this paper: 8-12 lessons across beginner → advanced, synthesised section guides, visuals, flashcards, a quiz, exercises, and on-demand deep dives per section. Grounded in the abstract, never invented.