In dieser Aufgabe verwenden wir einige Preview Fetures aus Java 15.
Gegeben sei ein Datentyp für aussagenlogische Formeln.
package name.panitz.util;
public interface Logic{
static record Var(String n) implements Logic{}
static record Neg(Logic f) implements Logic{}
static record Implication(Logic l,Logic r) implements Logic{}
static record And(Logic l,Logic r) implements Logic{}
static record Or(Logic l,Logic r) implements Logic{}
}
Für die Abgabe und die bessere Lesbarkeit der Formeln wurde die Methode toString in der Lösungsvorlage überschrieben.
Ebenso wurden Methoden zur einfachen Konstruktion von Formeln hinzu gefügt.
Vervollständigen Sie die Methode, die in einer Formel alle Implikation umwandeln soll in eine Disjunktion nach der bekannten Umformung:
Hierzu müssen Sie rekursiv in alle Teilformeln von this
absteigen, also eine Rekursion auf die Teilformeln machen.