  Consider the representations of an algebraic group G. In general, polynomial
invariant functions may fail to separate orbits. The invariant subring may not
be finitely generated, or the number and complexity of the generators may grow
rapidly with the size of the representation. We instead study "constructible"
functions defined by straight line programs in the polynomial ring, with a new
"quasi-inverse" that computes the inverse of a function where defined. We write
straight line programs defining constructible functions that separate the
orbits of G. The number of these programs and their length have polynomial
bounds in the parameters of the representation.
