add negation normal form implementation
more documentation