A Diagrammatic Algebra for Program Logics
<|reference_start|>A Diagrammatic Algebra for Program Logics: Tape diagrams provide a convenient notation for arrows of rig categories, i.e., categories equipped with two monoidal products, $\oplus$ and $\otimes$, where $\otimes$ distributes over $\oplus $. In this work, we extend tape diagrams with traces over $\oplus$ 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 $\otimes$ is a cartesian bicategory, while the one provided by $\oplus$ 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.<|reference_end|>
@article{bonchi2024a,
    title={A Diagrammatic Algebra for Program Logics},
    author={Filippo Bonchi, Alessandro Di Giorgio, Elena Di Lavore},
    journal={arXiv preprint arXiv:2410.03561},
    year={2024},
    archivePrefix={arXiv},
    eprint={2410.03561},
    primaryClass={cs.LO}
}