Mercurial > hg > Papers > 2020 > ryokka-master
view paper/src/Reasoning.agda.replaced @ 19:046b2b20d6c7 default tip
fix
author | ryokka |
---|---|
date | Mon, 09 Mar 2020 11:25:49 +0900 |
parents | c7acb9211784 |
children |
line wrap: on
line source
open import Relation.Binary.PropositionalEquality open import nat open import nat_add open @$\equiv$@-Reasoning module nat_add_sym_reasoning where addToRight : (n m : Nat) @$\rightarrow$@ S (n + m) @$\equiv$@ n + (S m) addToRight O m = refl addToRight (S n) m = cong S (addToRight n m) addSym : (n m : Nat) @$\rightarrow$@ n + m @$\equiv$@ m + n addSym O O = refl addSym O (S m) = cong S (addSym O m) addSym (S n) O = cong S (addSym n O) addSym (S n) (S m) = begin (S n) + (S m) @$\equiv$@@$\langle$@ refl @$\rangle$@ S (n + S m) @$\equiv$@@$\langle$@ cong S (addSym n (S m)) @$\rangle$@ S ((S m) + n) @$\equiv$@@$\langle$@ addToRight (S m) n @$\rangle$@ S (m + S n) @$\equiv$@@$\langle$@ refl @$\rangle$@ (S m) + (S n) @$\blacksquare$@