Metamath Proof Explorer


Theorem dfco2a

Description: Generalization of dfco2 , where C can have any value between dom A i^i ran B and _V . (Contributed by NM, 21-Dec-2008) (Proof shortened by Andrew Salmon, 27-Aug-2011)

Ref Expression
Assertion dfco2a ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 → ( 𝐴𝐵 ) = 𝑥𝐶 ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) )

Proof

Step Hyp Ref Expression
1 dfco2 ( 𝐴𝐵 ) = 𝑥 ∈ V ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) )
2 vex 𝑧 ∈ V
3 2 eliniseg ( 𝑥 ∈ V → ( 𝑧 ∈ ( 𝐵 “ { 𝑥 } ) ↔ 𝑧 𝐵 𝑥 ) )
4 3 elv ( 𝑧 ∈ ( 𝐵 “ { 𝑥 } ) ↔ 𝑧 𝐵 𝑥 )
5 vex 𝑥 ∈ V
6 2 5 brelrn ( 𝑧 𝐵 𝑥𝑥 ∈ ran 𝐵 )
7 4 6 sylbi ( 𝑧 ∈ ( 𝐵 “ { 𝑥 } ) → 𝑥 ∈ ran 𝐵 )
8 vex 𝑤 ∈ V
9 5 8 elimasn ( 𝑤 ∈ ( 𝐴 “ { 𝑥 } ) ↔ ⟨ 𝑥 , 𝑤 ⟩ ∈ 𝐴 )
10 5 8 opeldm ( ⟨ 𝑥 , 𝑤 ⟩ ∈ 𝐴𝑥 ∈ dom 𝐴 )
11 9 10 sylbi ( 𝑤 ∈ ( 𝐴 “ { 𝑥 } ) → 𝑥 ∈ dom 𝐴 )
12 7 11 anim12ci ( ( 𝑧 ∈ ( 𝐵 “ { 𝑥 } ) ∧ 𝑤 ∈ ( 𝐴 “ { 𝑥 } ) ) → ( 𝑥 ∈ dom 𝐴𝑥 ∈ ran 𝐵 ) )
13 12 adantl ( ( 𝑦 = ⟨ 𝑧 , 𝑤 ⟩ ∧ ( 𝑧 ∈ ( 𝐵 “ { 𝑥 } ) ∧ 𝑤 ∈ ( 𝐴 “ { 𝑥 } ) ) ) → ( 𝑥 ∈ dom 𝐴𝑥 ∈ ran 𝐵 ) )
14 13 exlimivv ( ∃ 𝑧𝑤 ( 𝑦 = ⟨ 𝑧 , 𝑤 ⟩ ∧ ( 𝑧 ∈ ( 𝐵 “ { 𝑥 } ) ∧ 𝑤 ∈ ( 𝐴 “ { 𝑥 } ) ) ) → ( 𝑥 ∈ dom 𝐴𝑥 ∈ ran 𝐵 ) )
15 elxp ( 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ ∃ 𝑧𝑤 ( 𝑦 = ⟨ 𝑧 , 𝑤 ⟩ ∧ ( 𝑧 ∈ ( 𝐵 “ { 𝑥 } ) ∧ 𝑤 ∈ ( 𝐴 “ { 𝑥 } ) ) ) )
16 elin ( 𝑥 ∈ ( dom 𝐴 ∩ ran 𝐵 ) ↔ ( 𝑥 ∈ dom 𝐴𝑥 ∈ ran 𝐵 ) )
17 14 15 16 3imtr4i ( 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) → 𝑥 ∈ ( dom 𝐴 ∩ ran 𝐵 ) )
18 ssel ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 → ( 𝑥 ∈ ( dom 𝐴 ∩ ran 𝐵 ) → 𝑥𝐶 ) )
19 17 18 syl5 ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 → ( 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) → 𝑥𝐶 ) )
20 19 pm4.71rd ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 → ( 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ ( 𝑥𝐶𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ) ) )
21 20 exbidv ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 → ( ∃ 𝑥 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ ∃ 𝑥 ( 𝑥𝐶𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ) ) )
22 rexv ( ∃ 𝑥 ∈ V 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ ∃ 𝑥 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) )
23 df-rex ( ∃ 𝑥𝐶 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ ∃ 𝑥 ( 𝑥𝐶𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ) )
24 21 22 23 3bitr4g ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 → ( ∃ 𝑥 ∈ V 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ ∃ 𝑥𝐶 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ) )
25 eliun ( 𝑦 𝑥 ∈ V ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ ∃ 𝑥 ∈ V 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) )
26 eliun ( 𝑦 𝑥𝐶 ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ ∃ 𝑥𝐶 𝑦 ∈ ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) )
27 24 25 26 3bitr4g ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 → ( 𝑦 𝑥 ∈ V ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ↔ 𝑦 𝑥𝐶 ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) ) )
28 27 eqrdv ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 𝑥 ∈ V ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) = 𝑥𝐶 ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) )
29 1 28 eqtrid ( ( dom 𝐴 ∩ ran 𝐵 ) ⊆ 𝐶 → ( 𝐴𝐵 ) = 𝑥𝐶 ( ( 𝐵 “ { 𝑥 } ) × ( 𝐴 “ { 𝑥 } ) ) )