give up on pigeonhole_principle for now
did proof objects