In NNF, the negation operator is only applied to variables.
var a = new LVar("a")
var b = new LVar("b")
assert (a&b).nnf.to_s == "(a & b)"
assert (~(a&b)).nnf.to_s == "(~a | ~b)"Subclasses implement it recursively.
	# The negation normal form (NNF).
	#
	# In NNF, the negation operator is only applied to variables.
	#
	# ~~~
	# var a = new LVar("a")
	# var b = new LVar("b")
	# assert (a&b).nnf.to_s == "(a & b)"
	# assert (~(a&b)).nnf.to_s == "(~a | ~b)"
	# ~~~
	#
	# Subclasses implement it recursively.
	fun nnf: LExpr do return self
					lib/logic/lexpr.nit:153,2--165,30