rework definition of const_tyargs, and fix for base_term_assums

split out some helpful functions: generic_type and type_instance

make base_term_assums use the generic type of a constant rather than the
instantiated
make term_assums return a list without duplicates
attempt implementation of instance_cert
define termsem_prop