packages feed

MiniAgda-0.2014.1.9: test/succeed/max.ma

data Nat : Set 
{ zero : Nat
; suc  : Nat -> Nat
}

data Bool : Set
{ true  : Bool
; false : Bool 
}

fun leq : Nat -> Nat -> Bool
{ leq zero n = true
; leq (suc m) zero = false
; leq (suc m) (suc n) = leq m n
}

fun maxN : Nat -> Nat -> Nat
{ maxN n m = case leq n m 
  { true -> m
  ; false -> n
  }
}

let one : Nat = suc zero
let two : Nat = suc one
eval let cmp : Bool = leq one two
eval let bla : Nat = maxN one two