### Abstract

The usual monad laws can directly be used as rewrite rules for Isabelle’s simplifier to normalise monadic HOL terms and decide equivalences. In a commutative monad, however, the commutativity law is a higher-order permutative rewrite rule that makes the simplifier loop. This AFP entry implements a simproc that normalises monadic expressions in commutative monads using ordered rewriting. The simproc can also permute computations across control operators like if and case.

### License

BSD License

### Topics

- Tools
- Computer science/Functional programming
- Logic/Rewriting

### Session Monad_Normalisation

- Monad_Normalisation
- Monad_Normalisation_Test

### Used by

- Approximate Model Counting
- Skip Lists
- Randomised Binary Search Trees
- CryptHOL

## Cite

×

Monad_Normalisation-AFP

    @article{Monad_Normalisation-AFP,
      author  = {Joshua Schneider and Manuel Eberl and Andreas Lochbihler},
      title   = {Monad normalisation},
      journal = {Archive of Formal Proofs},
      month   = {May},
      year    = {2017},
      note    = {\url{https://isa-afp.org/entries/Monad_Normalisation.html},
                 Formal proof development},
      ISSN    = {2150-914x},
    }

Download

## Download

× Download latest

Older releases:

- Sep 13, 2023 : Isabelle2023
- Oct 27, 2022 : Isabelle2022
- Dec 14, 2021 : Isabelle2021-1
- Feb 23, 2021 : Isabelle2021
- Apr 20, 2020 : Isabelle2020
- Jun 11, 2019 : Isabelle2019
- Aug 16, 2018 : Isabelle2018
- Oct 10, 2017 : Isabelle2017
- May 11, 2017 : Isabelle2016-1