Jason (jcreed) wrote,

Aha, found a fine little idiom for getting arbitrary unification equations to arise from twelf's type reconstruction algorithm. I don't know why I never had to figure this out before. Should probably toss it on the wiki at some point.

Anyway, using it, I can write the following signature, which causes twelf to go into an infinite loop. I'm basically certain it's in unification, not the later abstraction phase where a known termination bug was located.
o : type.
f : o -> o.
eq : (o -> o -> o) -> (o -> o -> o) -> type.
refl : eq M M.
c :     eq ([a] [b] X a) ([a] [b] f (Y (Z b)))
     -> eq ([a] [b] Y a) ([a] [b] X (Z b))
     -> type. 
test : c refl refl.
Tags: idiom, math, technique, twelf, unification

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded