public override Sentence visitBinarySentence(ComplexSentence s, object arg) { Sentence result = null; if (s.isImplicationSentence()) { // Eliminate =>, replacing α => β // with ~α | β Sentence alpha = s.getSimplerSentence(0).accept(this, arg); Sentence beta = s.getSimplerSentence(1).accept(this, arg); Sentence notAlpha = new ComplexSentence(Connective.NOT, alpha); result = new ComplexSentence(Connective.OR, notAlpha, beta); } else { result = base.visitBinarySentence(s, arg); } return(result); }