try to fix semantics of defined types

require that there be semantics and a witness under every possible type
valuation, before giving semantics under any particular one...
this might be overkill, but it is probably at least correct.
now trying to reprove all the nice theorems i had about the semantics...