public override IAsciiBasePropositionalOperator Negate() { var and = new AndPropositionalOperator(_argumentManager); and.Instantiate(GetChilds()); return(and); }
public override IAsciiBasePropositionalOperator ToAndOrNot() { var and = new AndPropositionalOperator(_argumentManager); and.Instantiate(GetChilds().Select(x => x.ToAndOrNot()).ToArray()); return(and); }
public override IAsciiBasePropositionalOperator Negate() { var and = new AndPropositionalOperator(_argumentManager); and.Instantiate(new [] { SurroundWithNot(GetChilds()[0]), SurroundWithNot(GetChilds()[1]) }); return(and); }
public override IAsciiBasePropositionalOperator ToAndOrNot() { var impl1 = new IfThenPropositionalOperator(_argumentManager); impl1.Instantiate(GetChilds().Select(x => x.ToAndOrNot()).ToArray()); var impl2 = new IfThenPropositionalOperator(_argumentManager); impl2.Instantiate(GetChilds().Select(x => x.ToAndOrNot()).Reverse().ToArray()); var and = new AndPropositionalOperator(_argumentManager); and.Instantiate(new [] { impl1.ToAndOrNot(), impl2.ToAndOrNot() }); return(and); }