update parser combinators
use tabs in proof layout