Metamath Proof Explorer


Theorem fnmpoovd

Description: A function with a Cartesian product as domain is a mapping with two arguments defined by its operation values. (Contributed by AV, 20-Feb-2019) (Revised by AV, 3-Jul-2022)

Ref Expression
Hypotheses fnmpoovd.m ( 𝜑𝑀 Fn ( 𝐴 × 𝐵 ) )
fnmpoovd.s ( ( 𝑖 = 𝑎𝑗 = 𝑏 ) → 𝐷 = 𝐶 )
fnmpoovd.d ( ( 𝜑𝑖𝐴𝑗𝐵 ) → 𝐷𝑈 )
fnmpoovd.c ( ( 𝜑𝑎𝐴𝑏𝐵 ) → 𝐶𝑉 )
Assertion fnmpoovd ( 𝜑 → ( 𝑀 = ( 𝑎𝐴 , 𝑏𝐵𝐶 ) ↔ ∀ 𝑖𝐴𝑗𝐵 ( 𝑖 𝑀 𝑗 ) = 𝐷 ) )

Proof

Step Hyp Ref Expression
1 fnmpoovd.m ( 𝜑𝑀 Fn ( 𝐴 × 𝐵 ) )
2 fnmpoovd.s ( ( 𝑖 = 𝑎𝑗 = 𝑏 ) → 𝐷 = 𝐶 )
3 fnmpoovd.d ( ( 𝜑𝑖𝐴𝑗𝐵 ) → 𝐷𝑈 )
4 fnmpoovd.c ( ( 𝜑𝑎𝐴𝑏𝐵 ) → 𝐶𝑉 )
5 4 3expb ( ( 𝜑 ∧ ( 𝑎𝐴𝑏𝐵 ) ) → 𝐶𝑉 )
6 5 ralrimivva ( 𝜑 → ∀ 𝑎𝐴𝑏𝐵 𝐶𝑉 )
7 eqid ( 𝑎𝐴 , 𝑏𝐵𝐶 ) = ( 𝑎𝐴 , 𝑏𝐵𝐶 )
8 7 fnmpo ( ∀ 𝑎𝐴𝑏𝐵 𝐶𝑉 → ( 𝑎𝐴 , 𝑏𝐵𝐶 ) Fn ( 𝐴 × 𝐵 ) )
9 6 8 syl ( 𝜑 → ( 𝑎𝐴 , 𝑏𝐵𝐶 ) Fn ( 𝐴 × 𝐵 ) )
10 eqfnov2 ( ( 𝑀 Fn ( 𝐴 × 𝐵 ) ∧ ( 𝑎𝐴 , 𝑏𝐵𝐶 ) Fn ( 𝐴 × 𝐵 ) ) → ( 𝑀 = ( 𝑎𝐴 , 𝑏𝐵𝐶 ) ↔ ∀ 𝑖𝐴𝑗𝐵 ( 𝑖 𝑀 𝑗 ) = ( 𝑖 ( 𝑎𝐴 , 𝑏𝐵𝐶 ) 𝑗 ) ) )
11 1 9 10 syl2anc ( 𝜑 → ( 𝑀 = ( 𝑎𝐴 , 𝑏𝐵𝐶 ) ↔ ∀ 𝑖𝐴𝑗𝐵 ( 𝑖 𝑀 𝑗 ) = ( 𝑖 ( 𝑎𝐴 , 𝑏𝐵𝐶 ) 𝑗 ) ) )
12 nfcv 𝑎 𝐷
13 nfcv 𝑏 𝐷
14 nfcv 𝑖 𝐶
15 nfcv 𝑗 𝐶
16 12 13 14 15 2 cbvmpo ( 𝑖𝐴 , 𝑗𝐵𝐷 ) = ( 𝑎𝐴 , 𝑏𝐵𝐶 )
17 16 eqcomi ( 𝑎𝐴 , 𝑏𝐵𝐶 ) = ( 𝑖𝐴 , 𝑗𝐵𝐷 )
18 17 a1i ( 𝜑 → ( 𝑎𝐴 , 𝑏𝐵𝐶 ) = ( 𝑖𝐴 , 𝑗𝐵𝐷 ) )
19 18 oveqd ( 𝜑 → ( 𝑖 ( 𝑎𝐴 , 𝑏𝐵𝐶 ) 𝑗 ) = ( 𝑖 ( 𝑖𝐴 , 𝑗𝐵𝐷 ) 𝑗 ) )
20 19 eqeq2d ( 𝜑 → ( ( 𝑖 𝑀 𝑗 ) = ( 𝑖 ( 𝑎𝐴 , 𝑏𝐵𝐶 ) 𝑗 ) ↔ ( 𝑖 𝑀 𝑗 ) = ( 𝑖 ( 𝑖𝐴 , 𝑗𝐵𝐷 ) 𝑗 ) ) )
21 20 2ralbidv ( 𝜑 → ( ∀ 𝑖𝐴𝑗𝐵 ( 𝑖 𝑀 𝑗 ) = ( 𝑖 ( 𝑎𝐴 , 𝑏𝐵𝐶 ) 𝑗 ) ↔ ∀ 𝑖𝐴𝑗𝐵 ( 𝑖 𝑀 𝑗 ) = ( 𝑖 ( 𝑖𝐴 , 𝑗𝐵𝐷 ) 𝑗 ) ) )
22 simprl ( ( 𝜑 ∧ ( 𝑖𝐴𝑗𝐵 ) ) → 𝑖𝐴 )
23 simprr ( ( 𝜑 ∧ ( 𝑖𝐴𝑗𝐵 ) ) → 𝑗𝐵 )
24 3 3expb ( ( 𝜑 ∧ ( 𝑖𝐴𝑗𝐵 ) ) → 𝐷𝑈 )
25 eqid ( 𝑖𝐴 , 𝑗𝐵𝐷 ) = ( 𝑖𝐴 , 𝑗𝐵𝐷 )
26 25 ovmpt4g ( ( 𝑖𝐴𝑗𝐵𝐷𝑈 ) → ( 𝑖 ( 𝑖𝐴 , 𝑗𝐵𝐷 ) 𝑗 ) = 𝐷 )
27 22 23 24 26 syl3anc ( ( 𝜑 ∧ ( 𝑖𝐴𝑗𝐵 ) ) → ( 𝑖 ( 𝑖𝐴 , 𝑗𝐵𝐷 ) 𝑗 ) = 𝐷 )
28 27 eqeq2d ( ( 𝜑 ∧ ( 𝑖𝐴𝑗𝐵 ) ) → ( ( 𝑖 𝑀 𝑗 ) = ( 𝑖 ( 𝑖𝐴 , 𝑗𝐵𝐷 ) 𝑗 ) ↔ ( 𝑖 𝑀 𝑗 ) = 𝐷 ) )
29 28 2ralbidva ( 𝜑 → ( ∀ 𝑖𝐴𝑗𝐵 ( 𝑖 𝑀 𝑗 ) = ( 𝑖 ( 𝑖𝐴 , 𝑗𝐵𝐷 ) 𝑗 ) ↔ ∀ 𝑖𝐴𝑗𝐵 ( 𝑖 𝑀 𝑗 ) = 𝐷 ) )
30 11 21 29 3bitrd ( 𝜑 → ( 𝑀 = ( 𝑎𝐴 , 𝑏𝐵𝐶 ) ↔ ∀ 𝑖𝐴𝑗𝐵 ( 𝑖 𝑀 𝑗 ) = 𝐷 ) )