Plus.agda 415 B

1234567891011121314151617181920212223242526
  1. module Plus where
  2. data Nat : Set where
  3. zero : Nat
  4. suc : Nat -> Nat
  5. infixr 40 _+_
  6. infix 10 _==_
  7. _+_ : Nat -> Nat -> Nat
  8. zero + m = m
  9. suc n + m = suc (n + m)
  10. data _==_ (x, y : Nat) : Set where
  11. -- ...
  12. postulate
  13. refl : {n : Nat} -> n == n
  14. cong : (f : Nat -> Nat){n, m : Nat} -> n == m -> f n == f m
  15. plusZero : {n : Nat} -> n + zero == n
  16. plusZero {zero} = refl
  17. plusZero {suc n} = cong suc plusZero