Theorem proving with abstraction

Theorem proving with abstraction