Weak axiom of revealed preference and choice coherence - how to show they are equivalent

$B$ and $B'$ are elements of the family of subsets of $X$

WARP
For every pair $x,y \in B \cap B'$ and if $x \in c(B)$ , then if $y \in c(B'), x$ must $\in c(B').$

Choice Coherence
For very pair $x,y \in B \cap B'$ and if $x \in c(B)$ and $y \notin c(B)$, then $y$ must $\notin c(B').$

Are these two equivalent. If yes, how can we prove it?

-
you should attempt to prove it by your own means or at least show effort, this seems to be a homework question. – user157623 Jun 1 '15 at 13:50

Yes, they are equivalent. Here is a formal proof by contradiction.

WARP $\Rightarrow$ Choice coherence

Suppose that WARP holds but that choice coherence is not true. There exists $B,B'$, $x,y \in B \cap B'$ such that $x \in c(B)$, $y \notin c(B)$ and $y \in c(B')$.

But WARP applied to the conditions $y \in c(B')$ and $x \in c(B)$ implies $y \in c(B)$. This is a contradiction.

Choice coherence $\Rightarrow$ WARP

Suppose now that choice coherence is true but that WARP is falsified. There exists $B,B'$, $x,y \in B \cap B'$ such that $x \in c(B), y \in c(B')$ and $x \notin c(B')$.

But choice coherence applied to the conditions $y \in c(B')$, $x \notin c(B')$ yields $x \notin c(B)$. This is a contradiction.

-
Thank you for the proof! – subrat Jun 1 '15 at 7:48
This seems to have been a homework question. – denesp Jun 1 '15 at 7:57
No, This was due to the different versions of the definitions in MWG and Kreps. Former mentions it as weak axiom of revealed preference while Kreps calls it choice coherence. I just wanted to be sure of my understanding that economically they both mean the same. Doing self study for now, would be nice if people can point to some good sources to actually practice and build up on these concepts. – subrat Jun 2 '15 at 16:36

The new Kreps is clearer about it! Choice coherence and WARP are contrapositives.

Starting from choice coherence, write the contrapositive as:

For all x,y in B and B',

y in C(B') => not { [x in C(B)] and [y not in C(B)]}

which is equivalent to

y in C(B') => [x not in C(B)] or [y in C(B)]

So if x is in C(B), then y must be in C(B).

-