view systemT/systemT.agda @ 26:d503a73186ce

Split cbc type definition using product
author atton <atton@cr.ie.u-ryukyu.ac.jp>
date Fri, 23 Dec 2016 02:50:03 +0000
parents fe247f476ecb
children
line wrap: on
line source

module systemT where

data Bool : Set where
  T : Bool
  F : Bool

data Int : Set where
  O : Int
  S : Int -> Int

R : {U : Set} -> U -> (U -> (Int -> U)) -> Int -> U
R u v O = u
R u v (S t) = v (R u v t) t

D : {U : Set} -> U -> U -> Bool -> U
D u v F = v
D u v T = u