Metamath Proof Explorer


Theorem xpscf

Description: Equivalent condition for the pair function to be a proper function on A . (Contributed by Mario Carneiro, 20-Aug-2015)

Ref Expression
Assertion xpscf
|- ( { <. (/) , X >. , <. 1o , Y >. } : 2o --> A <-> ( X e. A /\ Y e. A ) )

Proof

Step Hyp Ref Expression
1 ifid
 |-  if ( k = (/) , A , A ) = A
2 1 eleq2i
 |-  ( ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) <-> ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. A )
3 2 ralbii
 |-  ( A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) <-> A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. A )
4 3 anbi2i
 |-  ( ( { <. (/) , X >. , <. 1o , Y >. } Fn 2o /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) ) <-> ( { <. (/) , X >. , <. 1o , Y >. } Fn 2o /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. A ) )
5 df-3an
 |-  ( ( { <. (/) , X >. , <. 1o , Y >. } e. _V /\ { <. (/) , X >. , <. 1o , Y >. } Fn 2o /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) ) <-> ( ( { <. (/) , X >. , <. 1o , Y >. } e. _V /\ { <. (/) , X >. , <. 1o , Y >. } Fn 2o ) /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) ) )
6 elixp2
 |-  ( { <. (/) , X >. , <. 1o , Y >. } e. X_ k e. 2o if ( k = (/) , A , A ) <-> ( { <. (/) , X >. , <. 1o , Y >. } e. _V /\ { <. (/) , X >. , <. 1o , Y >. } Fn 2o /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) ) )
7 2onn
 |-  2o e. _om
8 fnex
 |-  ( ( { <. (/) , X >. , <. 1o , Y >. } Fn 2o /\ 2o e. _om ) -> { <. (/) , X >. , <. 1o , Y >. } e. _V )
9 7 8 mpan2
 |-  ( { <. (/) , X >. , <. 1o , Y >. } Fn 2o -> { <. (/) , X >. , <. 1o , Y >. } e. _V )
10 9 pm4.71ri
 |-  ( { <. (/) , X >. , <. 1o , Y >. } Fn 2o <-> ( { <. (/) , X >. , <. 1o , Y >. } e. _V /\ { <. (/) , X >. , <. 1o , Y >. } Fn 2o ) )
11 10 anbi1i
 |-  ( ( { <. (/) , X >. , <. 1o , Y >. } Fn 2o /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) ) <-> ( ( { <. (/) , X >. , <. 1o , Y >. } e. _V /\ { <. (/) , X >. , <. 1o , Y >. } Fn 2o ) /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) ) )
12 5 6 11 3bitr4i
 |-  ( { <. (/) , X >. , <. 1o , Y >. } e. X_ k e. 2o if ( k = (/) , A , A ) <-> ( { <. (/) , X >. , <. 1o , Y >. } Fn 2o /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. if ( k = (/) , A , A ) ) )
13 ffnfv
 |-  ( { <. (/) , X >. , <. 1o , Y >. } : 2o --> A <-> ( { <. (/) , X >. , <. 1o , Y >. } Fn 2o /\ A. k e. 2o ( { <. (/) , X >. , <. 1o , Y >. } ` k ) e. A ) )
14 4 12 13 3bitr4i
 |-  ( { <. (/) , X >. , <. 1o , Y >. } e. X_ k e. 2o if ( k = (/) , A , A ) <-> { <. (/) , X >. , <. 1o , Y >. } : 2o --> A )
15 xpsfrnel2
 |-  ( { <. (/) , X >. , <. 1o , Y >. } e. X_ k e. 2o if ( k = (/) , A , A ) <-> ( X e. A /\ Y e. A ) )
16 14 15 bitr3i
 |-  ( { <. (/) , X >. , <. 1o , Y >. } : 2o --> A <-> ( X e. A /\ Y e. A ) )