feat(builtin): add optional type

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(builtin/optional): prove dichotomy and induction theorems for optional types

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(tests/lean): adjust tests to reflect recent changes

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(builtin): add sum types

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