public override INotifyExpression <T> Reduce() { if (Test.CanBeConstant) { if (Test.Value) { return(True.Reduce()); } else { return(False.Reduce()); } } else { if (True.CanBeConstant && False.CanBeConstant && object.Equals(True.Value, False.Value)) { return(new ObservableConstant <T>(True.Value)); } else { return(this); } } }