packages feed

MiniAgda-0.2014.1.9: test/fail/Tm.err

MiniAgda by Andreas Abel and Karl Mehltretter
--- opening "Tm.ma" ---
--- scope checking ---
--- type checking ---
type  Stream : ++(A : Set) -> - Size -> Set
term  Stream.cons : .[A : Set] -> .[i : Size] -> ^(head : A) -> ^(tail : Stream A i) -> < Stream.cons i head tail : Stream A $i >
term  head : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> A
{ head [A] [i] (Stream.cons [.i] #head #tail) = #head
}
term  tail : .[A : Set] -> .[i : Size] -> (cons : Stream A $i) -> Stream A i
{ tail [A] [i] (Stream.cons [.i] #head #tail) = #tail
}
term  iterate : .[A : Set] -> (step : A -> A) -> (start : A) -> .[i : Size] -> Stream A i
{ iterate [A] step start $[i < #] = Stream.cons [i] start (iterate [A] step (step start) [i])
}
type  Tm : Set
term  Tm.abs : ^(y0 : ^ Tm -> Tm) -> < Tm.abs y0 : Tm >
term  Tm.app : ^(y0 : Tm) -> ^(y1 : Tm) -> < Tm.app y0 y1 : Tm >
warning: ignoring error: polarity check ++ <= - failed
warning: ignoring error: polarity check ++ <= + failed
term  sapp : ^ Tm -> Tm
{ sapp x = Tm.app x x
}
term  delta : Tm
term  delta = Tm.abs (\ x -> sapp x)
term  omega : Tm
term  omega = Tm.app delta delta
term  step : Tm -> Tm
error during typechecking:
step
/// clause 3
/// right hand side
/// checkExpr 1 |- abs (\ x -> step (f x)) : Tm
/// checkForced fromList [(f,0)] |- abs (\ x -> step (f x)) : Tm
/// checkApp (^(y0 : (^Tm::() -> Tm)::()) -> < Tm.abs y0 : Tm >) eliminated by \ x -> step (f x)
/// checkExpr 1 |- \ x -> step (f x) : ^ Tm -> Tm
/// checkForced fromList [(f,0)] |- \ x -> step (f x) : ^ Tm -> Tm
/// new x : Tm
/// checkExpr 2 |- step (f x) : Tm
/// inferExpr' step (f x)
/// checkApp (Tm -> Tm) eliminated by f x
/// inferExpr' f x
/// checkApp (^Tm::() -> Tm) eliminated by x
/// inferExpr' x
/// inferExpr: variable x : Tm may not occur
/// , because of polarity
/// polarity check ^ <= * failed