add abstraction lemma