packages feed

MiniAgda-0.2014.1.9: test/fail/omegaInst1.ma

-- 2012-02-06  Make sure not to violate < - Constraints by going through infty
-- (not finished)

fun fix : [F : Size -> Set]
          (phi : [i <= #] (f : [j < i] -> F j) -> F i)
          [i <= #] -> |i| -> F i
{ fix F phi i = phi i (fix F phi)
}

cofun Bot : +(i : Size) -> Set
{ Bot i = [j < i] & Bot j
}

cofun Top : -(i : Size) -> Set
{ Top i = [j < i] -> Top j
}

let out [i : Size] (r :  Top $i) : Top i
  = \ j -> r $j j

let inn [i : Size] (t : Top i) : Top $i
  = \ j -> t

let bad [F : Size -> Set] [i <= #] (f : [j < $i] -> F j) : F i
  = f i

let test [F : Size -> Set] = fix F (bad F)