refactor(builtin/sum): use new 'have' expression to formalize sum-types

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(builtin/sum): use new 'have' expression to formalize optional-types

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>