A Bottom-up Semantics for Constructive Negation