The design and implementation of an interactive proof editor