Jason (jcreed) wrote,
Jason
jcreed

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
Subscribe

  • (no subject)

    Something that's bugged me for a long time is this: How many paths, starting at the origin, taking N steps either up, down, left or right, end up at…

  • (no subject)

    Still sad that SAC seems to end up being as complicated as it is. Surely there's some deeper duality between…

  • (no subject)

    I had already been meaning to dig into JaneSt's "Incremental" library, which bills itself as a practical implementation (in ocaml) of the ideas in…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments