This is a universe inconsistency. You might get slightly more details with Set Printing Universes.
. The type fill_me∑
axiom allows filling anyis defined in Preamble.v
to take its first argument as a type in in the universe UU
UU
. The type Hence ∑ A:UU, (A → empty)
does not live in UU
, for the same reason thattypecheck because UU
doesis not livea type in UU
. You can fix this error either by doing Unset Universe Checking
(the equivalent of UniMath's -type-in-type
flag that is globally passed), or, as you note, by puttingreplacing fill_meUU
with Type
. However, as empty
is in UU
and not a potentially largerstrictly smaller universe, for exampleyou cannot refine with Axiom fill_me : forall {Xtpair :_ Type},empty X._
without hitting the same universe inconsistency. Note that Unset Universe Checking
allows proofs of False
(but they are relatively hard to find, which is why UniMath gets away with ignoring universe checking). The more-confusing error message on refine
probably comes from mixing record types defined with -type-in-type
with code where universes are checked.