Metamath Proof Explorer


Theorem fntpg

Description: Function with a domain of three different values. (Contributed by Alexander van der Vekens, 5-Dec-2017)

Ref Expression
Assertion fntpg ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } Fn { 𝑋 , 𝑌 , 𝑍 } )

Proof

Step Hyp Ref Expression
1 funtpg ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → Fun { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } )
2 dmsnopg ( 𝐴𝐹 → dom { ⟨ 𝑋 , 𝐴 ⟩ } = { 𝑋 } )
3 2 3ad2ant1 ( ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) → dom { ⟨ 𝑋 , 𝐴 ⟩ } = { 𝑋 } )
4 dmsnopg ( 𝐵𝐺 → dom { ⟨ 𝑌 , 𝐵 ⟩ } = { 𝑌 } )
5 4 3ad2ant2 ( ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) → dom { ⟨ 𝑌 , 𝐵 ⟩ } = { 𝑌 } )
6 3 5 jca ( ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) → ( dom { ⟨ 𝑋 , 𝐴 ⟩ } = { 𝑋 } ∧ dom { ⟨ 𝑌 , 𝐵 ⟩ } = { 𝑌 } ) )
7 6 3ad2ant2 ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → ( dom { ⟨ 𝑋 , 𝐴 ⟩ } = { 𝑋 } ∧ dom { ⟨ 𝑌 , 𝐵 ⟩ } = { 𝑌 } ) )
8 uneq12 ( ( dom { ⟨ 𝑋 , 𝐴 ⟩ } = { 𝑋 } ∧ dom { ⟨ 𝑌 , 𝐵 ⟩ } = { 𝑌 } ) → ( dom { ⟨ 𝑋 , 𝐴 ⟩ } ∪ dom { ⟨ 𝑌 , 𝐵 ⟩ } ) = ( { 𝑋 } ∪ { 𝑌 } ) )
9 7 8 syl ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → ( dom { ⟨ 𝑋 , 𝐴 ⟩ } ∪ dom { ⟨ 𝑌 , 𝐵 ⟩ } ) = ( { 𝑋 } ∪ { 𝑌 } ) )
10 df-pr { 𝑋 , 𝑌 } = ( { 𝑋 } ∪ { 𝑌 } )
11 9 10 eqtr4di ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → ( dom { ⟨ 𝑋 , 𝐴 ⟩ } ∪ dom { ⟨ 𝑌 , 𝐵 ⟩ } ) = { 𝑋 , 𝑌 } )
12 df-pr { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } = ( { ⟨ 𝑋 , 𝐴 ⟩ } ∪ { ⟨ 𝑌 , 𝐵 ⟩ } )
13 12 dmeqi dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } = dom ( { ⟨ 𝑋 , 𝐴 ⟩ } ∪ { ⟨ 𝑌 , 𝐵 ⟩ } )
14 13 eqeq1i ( dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } = { 𝑋 , 𝑌 } ↔ dom ( { ⟨ 𝑋 , 𝐴 ⟩ } ∪ { ⟨ 𝑌 , 𝐵 ⟩ } ) = { 𝑋 , 𝑌 } )
15 dmun dom ( { ⟨ 𝑋 , 𝐴 ⟩ } ∪ { ⟨ 𝑌 , 𝐵 ⟩ } ) = ( dom { ⟨ 𝑋 , 𝐴 ⟩ } ∪ dom { ⟨ 𝑌 , 𝐵 ⟩ } )
16 15 eqeq1i ( dom ( { ⟨ 𝑋 , 𝐴 ⟩ } ∪ { ⟨ 𝑌 , 𝐵 ⟩ } ) = { 𝑋 , 𝑌 } ↔ ( dom { ⟨ 𝑋 , 𝐴 ⟩ } ∪ dom { ⟨ 𝑌 , 𝐵 ⟩ } ) = { 𝑋 , 𝑌 } )
17 14 16 bitri ( dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } = { 𝑋 , 𝑌 } ↔ ( dom { ⟨ 𝑋 , 𝐴 ⟩ } ∪ dom { ⟨ 𝑌 , 𝐵 ⟩ } ) = { 𝑋 , 𝑌 } )
18 11 17 sylibr ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } = { 𝑋 , 𝑌 } )
19 dmsnopg ( 𝐶𝐻 → dom { ⟨ 𝑍 , 𝐶 ⟩ } = { 𝑍 } )
20 19 3ad2ant3 ( ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) → dom { ⟨ 𝑍 , 𝐶 ⟩ } = { 𝑍 } )
21 20 3ad2ant2 ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → dom { ⟨ 𝑍 , 𝐶 ⟩ } = { 𝑍 } )
22 18 21 uneq12d ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → ( dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } ∪ dom { ⟨ 𝑍 , 𝐶 ⟩ } ) = ( { 𝑋 , 𝑌 } ∪ { 𝑍 } ) )
23 df-tp { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } = ( { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } ∪ { ⟨ 𝑍 , 𝐶 ⟩ } )
24 23 dmeqi dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } = dom ( { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } ∪ { ⟨ 𝑍 , 𝐶 ⟩ } )
25 dmun dom ( { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } ∪ { ⟨ 𝑍 , 𝐶 ⟩ } ) = ( dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } ∪ dom { ⟨ 𝑍 , 𝐶 ⟩ } )
26 24 25 eqtri dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } = ( dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ } ∪ dom { ⟨ 𝑍 , 𝐶 ⟩ } )
27 df-tp { 𝑋 , 𝑌 , 𝑍 } = ( { 𝑋 , 𝑌 } ∪ { 𝑍 } )
28 22 26 27 3eqtr4g ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } = { 𝑋 , 𝑌 , 𝑍 } )
29 df-fn ( { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } Fn { 𝑋 , 𝑌 , 𝑍 } ↔ ( Fun { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } ∧ dom { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } = { 𝑋 , 𝑌 , 𝑍 } ) )
30 1 28 29 sylanbrc ( ( ( 𝑋𝑈𝑌𝑉𝑍𝑊 ) ∧ ( 𝐴𝐹𝐵𝐺𝐶𝐻 ) ∧ ( 𝑋𝑌𝑋𝑍𝑌𝑍 ) ) → { ⟨ 𝑋 , 𝐴 ⟩ , ⟨ 𝑌 , 𝐵 ⟩ , ⟨ 𝑍 , 𝐶 ⟩ } Fn { 𝑋 , 𝑌 , 𝑍 } )