@Override public Formule substitue(Substitution s) { Formule nFg = fg.substitue(s); Formule nFd = fd.substitue(s); return new Ou(nFg, nFd); }
@Override public Formule entrerDisjonctions() { if (fg.contientEt()) return fg.oudroite(fd.entrerDisjonctions()); if (fd.contientEt()) return fd.entrerDisjonctions().ougauche(fd); return this; }
@Override public Set<String> variablesLibres() { HashSet<String> h = new HashSet<String>(); h.addAll(fg.variablesLibres()); h.addAll(fd.variablesLibres()); return h; }
@Override public Formule oudroite(Formule g) { return fd.oudroite(fg.oudroite(g)); }
@Override public Formule ougauche(Formule d) { return fg.ougauche(fd.ougauche(d)); }
@Override public boolean contientEt() { return fg.contientEt() || fd.contientEt(); }
@Override public Formule entrerNegations() { return new Ou(fg.entrerNegations(), fd.entrerNegations()); }
@Override public String toString() { return String.format("(%s ∨ %s)", fg.toString(), fd.toString()); }