Admitted a bunch of lemmas to avoid universe inconsistentcies. These
will disappear with Coq 8.5 and the trunk branch has a version that
compiles under trunk as a sanity check.