[POPLmark] Twelf question
Randy Pollack
rap at inf.ed.ac.uk
Tue May 17 16:25:54 EDT 2005
Consider the following Twelf script:
tp : type. %name tp T.
top : tp.
assm : tp -> tp -> type.
var : tp -> type.
%block rblock : some {t:tp}
block {x:tp} {d: assm x t} {v:var x}.
assm_var : assm T _ -> var T -> type.
%mode assm_var +X1 -X2.
%worlds (rblock) (assm_var _ _).
%total {} (assm_var _ _).
Twelf gives an error message:
Coverage error --- missing cases:
{T1:tp} {#rblock:{x:tp} {d:assm x T1} {v:var x}} {X1:var #rblock_x}
|- assm_var #rblock_d X1.
I guess it means `since you allow a block containing "assm x T1" you
are required to produce a proof of "var x"'. How can I express that I
want Twelf to use the proof "var x" from the same block?
Randy
More information about the Poplmark
mailing list