packages feed

MiniAgda-0.2022.3.11: test/succeed/EvenOdd.ma

-- 2010-08-28 mutual data types

mutual {

  data Even : Set
  { ev0 : Even
  ; evS : Odd -> Even
  }

  data Odd : Set
  { oddS : Even -> Odd
  }

}

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

mutual {

  fun evenToNat : Even -> Nat
  { evenToNat ev0 = zero
  ; evenToNat (evS o) = suc (oddToNat o)
  }

  fun oddToNat : Odd -> Nat
  { oddToNat (oddS e) = suc (evenToNat e)
  }
}