Mercurial > hg > Papers > 2020 > soto-midterm
diff src/Reasoning.agda.replaced @ 1:73127e0ab57c
(none)
author | soto@cr.ie.u-ryukyu.ac.jp |
---|---|
date | Tue, 08 Sep 2020 18:38:08 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Reasoning.agda.replaced Tue Sep 08 18:38:08 2020 +0900 @@ -0,0 +1,21 @@ +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$@