I think you are trying to say a "but" operator is equivalent "not and" operator and that !(A->B) is equivalent to "but".
I am assuming that "!" symbolizes the negation operator and "->" symbolized the if-then ( or implies ) operator.

Yet ...

P | Q | P and Q | !(P and Q) |

T | T | T | F |

T | F | F | T |

F | T | F | T |

F | F | F | T |

So I would say "A and !B"is not equivalent to "!(A -> B)" and I wouldn't say "A but B" <=> "A and !B", but I could just be misunderstanding your notation. :)

As far a what a but operator is I would say it should be equivalent to the "Boolean And" operator.
And is not needed in a programming language. The word "but" is used in commonly to emphasis
that an assumption is false. Example ...

If a student where to errorously assume that multiplaction is
the same as addition the student might state ...
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 and 1 * 1 = 2
... which we know to be false. The student's teacher would say ...
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 but 1 * 1 != 2
... to correct the student.
This is the same as
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 and 1 * 1 != 2
T and T and T and T is TRUE
It is not equal to
1 + 1 = 2 and 2 + 2 = 4 and 2 * 2 = 4 and not (1 * 1 != 2)
T and T and T and F is FALSE

But merely gives emphasis to the fact that the student's assumption is false.

Janitored by davido: removed excess spaces within pre tags that caused horizontal scrolling.

Plankton: 1% Evil, 99% Hot Gas. |

Comment onRe^4: A "but" operator.