diff --git a/codego/aussagenlogik/recursion/recursion_nnf.go b/codego/aussagenlogik/recursion/recursion_nnf.go index d613fd5..73acd42 100644 --- a/codego/aussagenlogik/recursion/recursion_nnf.go +++ b/codego/aussagenlogik/recursion/recursion_nnf.go @@ -64,9 +64,20 @@ func NNF(fml formulae.Formula) formulae.Formula { } } else if fml.IsImplication() { return formulae.FormulaPair{ - Pos: formulae.Implies(prevPos[0], prevPos[1]), + Pos: formulae.Disjunction2(prevNeg[0], prevPos[1]), Neg: formulae.Conjunction2(prevPos[0], prevNeg[1]), } + } else if fml.IsDoubleImplication() { + return formulae.FormulaPair{ + Pos: formulae.Conjunction2( + formulae.Disjunction2(prevNeg[0], prevPos[1]), + formulae.Disjunction2(prevNeg[1], prevPos[0]), + ), + Neg: formulae.Disjunction2( + formulae.Conjunction2(prevPos[0], prevNeg[1]), + formulae.Conjunction2(prevPos[1], prevNeg[0]), + ), + } } else { panic("Could not evaluate expression!") }