view Paper/src/agda-term.agda.replaced @ 5:339fb67b4375

INIT rbt.agda
author soto <soto@cr.ie.u-ryukyu.ac.jp>
date Sun, 07 Nov 2021 00:51:16 +0900
parents c59202657321
children
line wrap: on
line source

module agda-term where

open import Data.Nat.Base
open import Relation.Binary.PropositionalEquality

+zero : {y : !$\mathbb{N}$!} !$\rightarrow$! y + zero !$\equiv$! y
+zero {zero} = refl
+zero {suc y} = cong (!$\lambda$! yy !$\rightarrow$! suc yy) (+zero {y})

+-suc : {x y : !$\mathbb{N}$!} !$\rightarrow$! x + suc y !$\equiv$! suc (x + y)
+-suc {zero} {y} = refl
+-suc {suc x} {y} = cong suc (+-suc {x} {y})

+-comm : (x y : !$\mathbb{N}$!) !$\rightarrow$! x + y !$\equiv$! y + x
+-comm zero y rewrite (+zero {y}) = refl
+-comm (suc x) y = let open !$\equiv$!-Reasoning in
  begin
  suc (x + y) !$\equiv$!!$\langle$!!$\rangle$!
  suc (x + y) !$\equiv$!!$\langle$! cong suc (+-comm x y) !$\rangle$!
  suc (y + x) !$\equiv$!!$\langle$! sym (+-suc {y} {x}) !$\rangle$!
  y + suc x !$\blacksquare$!

+-come : (x y : !$\mathbb{N}$!) !$\rightarrow$! x + y !$\equiv$! y + x
+-come zero y rewrite (+zero {y}) = refl
+-come (suc x) y
  rewrite (cong suc (+-come x y)) | sym (+-suc {y} {x}) = refl