MiniAgda-0.2014.1.9: test/fail/huetHullotReverse.err
MiniAgda by Andreas Abel and Karl Mehltretter
--- opening "huetHullotReverse.ma" ---
--- scope checking ---
--- type checking ---
type Enum : Set
term Enum.aa : < Enum.aa : Enum >
term Enum.bb : < Enum.bb : Enum >
term Enum.cc : < Enum.cc : Enum >
type List : ^(A : Set) -> Set
term List.nil : .[A : Set] -> < List.nil : List A >
term List.cons : .[A : Set] -> ^(y0 : A) -> ^(y1 : List A) -> < List.cons y0 y1 : List A >
term list : List Enum
term list = List.cons Enum.aa (List.cons Enum.bb (List.cons Enum.cc List.nil))
term rev : .[A : Set] -> List A -> List A
term rev1 : .[A : Set] -> A -> List A -> A
term rev2 : .[A : Set] -> A -> List A -> List A
{ rev [A] List.nil = List.nil
; rev [A] (List.cons x xs) = List.cons (rev1 [A] x xs) (rev2 [A] x xs)
}
{ rev1 [A] a List.nil = a
; rev1 [A] a (List.cons x xs) = rev1 [A] x xs
}
{ rev2 [A] a List.nil = List.nil
; rev2 [A] a (List.cons x xs) = rev [A] (List.cons a (rev [A] (rev2 [A] x xs)))
}
error during typechecking:
Termination check for mutual block [rev,rev1,rev2] fails for [rev,rev2]