Metamath Proof Explorer


Theorem tfsconcatun

Description: The concatenation of two transfinite series is a union of functions. (Contributed by RP, 23-Feb-2025)

Ref Expression
Hypothesis tfsconcat.op + = ( 𝑎 ∈ V , 𝑏 ∈ V ↦ ( 𝑎 ∪ { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( dom 𝑎 +o dom 𝑏 ) ∖ dom 𝑎 ) ∧ ∃ 𝑧 ∈ dom 𝑏 ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ∧ 𝑦 = ( 𝑏𝑧 ) ) ) } ) )
Assertion tfsconcatun ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → ( 𝐴 + 𝐵 ) = ( 𝐴 ∪ { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∧ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) } ) )

Proof

Step Hyp Ref Expression
1 tfsconcat.op + = ( 𝑎 ∈ V , 𝑏 ∈ V ↦ ( 𝑎 ∪ { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( dom 𝑎 +o dom 𝑏 ) ∖ dom 𝑎 ) ∧ ∃ 𝑧 ∈ dom 𝑏 ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ∧ 𝑦 = ( 𝑏𝑧 ) ) ) } ) )
2 1 a1i ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → + = ( 𝑎 ∈ V , 𝑏 ∈ V ↦ ( 𝑎 ∪ { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( dom 𝑎 +o dom 𝑏 ) ∖ dom 𝑎 ) ∧ ∃ 𝑧 ∈ dom 𝑏 ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ∧ 𝑦 = ( 𝑏𝑧 ) ) ) } ) ) )
3 simprl ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → 𝑎 = 𝐴 )
4 dmeq ( 𝑎 = 𝐴 → dom 𝑎 = dom 𝐴 )
5 4 adantr ( ( 𝑎 = 𝐴𝑏 = 𝐵 ) → dom 𝑎 = dom 𝐴 )
6 fndm ( 𝐴 Fn 𝐶 → dom 𝐴 = 𝐶 )
7 6 adantr ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) → dom 𝐴 = 𝐶 )
8 7 adantr ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → dom 𝐴 = 𝐶 )
9 5 8 sylan9eqr ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → dom 𝑎 = 𝐶 )
10 dmeq ( 𝑏 = 𝐵 → dom 𝑏 = dom 𝐵 )
11 10 adantl ( ( 𝑎 = 𝐴𝑏 = 𝐵 ) → dom 𝑏 = dom 𝐵 )
12 fndm ( 𝐵 Fn 𝐷 → dom 𝐵 = 𝐷 )
13 12 adantl ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) → dom 𝐵 = 𝐷 )
14 13 adantr ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → dom 𝐵 = 𝐷 )
15 11 14 sylan9eqr ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → dom 𝑏 = 𝐷 )
16 9 15 oveq12d ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( dom 𝑎 +o dom 𝑏 ) = ( 𝐶 +o 𝐷 ) )
17 16 9 difeq12d ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( ( dom 𝑎 +o dom 𝑏 ) ∖ dom 𝑎 ) = ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) )
18 17 eleq2d ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( 𝑥 ∈ ( ( dom 𝑎 +o dom 𝑏 ) ∖ dom 𝑎 ) ↔ 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ) )
19 9 oveq1d ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( dom 𝑎 +o 𝑧 ) = ( 𝐶 +o 𝑧 ) )
20 19 eqeq2d ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ↔ 𝑥 = ( 𝐶 +o 𝑧 ) ) )
21 fveq1 ( 𝑏 = 𝐵 → ( 𝑏𝑧 ) = ( 𝐵𝑧 ) )
22 21 eqeq2d ( 𝑏 = 𝐵 → ( 𝑦 = ( 𝑏𝑧 ) ↔ 𝑦 = ( 𝐵𝑧 ) ) )
23 22 adantl ( ( 𝑎 = 𝐴𝑏 = 𝐵 ) → ( 𝑦 = ( 𝑏𝑧 ) ↔ 𝑦 = ( 𝐵𝑧 ) ) )
24 23 adantl ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( 𝑦 = ( 𝑏𝑧 ) ↔ 𝑦 = ( 𝐵𝑧 ) ) )
25 20 24 anbi12d ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ∧ 𝑦 = ( 𝑏𝑧 ) ) ↔ ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) )
26 15 25 rexeqbidv ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( ∃ 𝑧 ∈ dom 𝑏 ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ∧ 𝑦 = ( 𝑏𝑧 ) ) ↔ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) )
27 18 26 anbi12d ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( ( 𝑥 ∈ ( ( dom 𝑎 +o dom 𝑏 ) ∖ dom 𝑎 ) ∧ ∃ 𝑧 ∈ dom 𝑏 ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ∧ 𝑦 = ( 𝑏𝑧 ) ) ) ↔ ( 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∧ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) ) )
28 27 opabbidv ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( dom 𝑎 +o dom 𝑏 ) ∖ dom 𝑎 ) ∧ ∃ 𝑧 ∈ dom 𝑏 ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ∧ 𝑦 = ( 𝑏𝑧 ) ) ) } = { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∧ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) } )
29 3 28 uneq12d ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ ( 𝑎 = 𝐴𝑏 = 𝐵 ) ) → ( 𝑎 ∪ { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( dom 𝑎 +o dom 𝑏 ) ∖ dom 𝑎 ) ∧ ∃ 𝑧 ∈ dom 𝑏 ( 𝑥 = ( dom 𝑎 +o 𝑧 ) ∧ 𝑦 = ( 𝑏𝑧 ) ) ) } ) = ( 𝐴 ∪ { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∧ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) } ) )
30 fnex ( ( 𝐴 Fn 𝐶𝐶 ∈ On ) → 𝐴 ∈ V )
31 30 ad2ant2r ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → 𝐴 ∈ V )
32 fnex ( ( 𝐵 Fn 𝐷𝐷 ∈ On ) → 𝐵 ∈ V )
33 32 ad2ant2l ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → 𝐵 ∈ V )
34 oacl ( ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) → ( 𝐶 +o 𝐷 ) ∈ On )
35 34 difexd ( ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) → ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∈ V )
36 35 adantl ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∈ V )
37 simplrl ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ) → 𝐶 ∈ On )
38 simplrr ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ) → 𝐷 ∈ On )
39 simpr ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ) → 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) )
40 tfsconcatlem ( ( 𝐶 ∈ On ∧ 𝐷 ∈ On ∧ 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ) → ∃! 𝑦𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) )
41 37 38 39 40 syl3anc ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ) → ∃! 𝑦𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) )
42 euabex ( ∃! 𝑦𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) → { 𝑦 ∣ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) } ∈ V )
43 41 42 syl ( ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) ∧ 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ) → { 𝑦 ∣ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) } ∈ V )
44 36 43 opabex3d ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∧ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) } ∈ V )
45 31 44 unexd ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → ( 𝐴 ∪ { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∧ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) } ) ∈ V )
46 2 29 31 33 45 ovmpod ( ( ( 𝐴 Fn 𝐶𝐵 Fn 𝐷 ) ∧ ( 𝐶 ∈ On ∧ 𝐷 ∈ On ) ) → ( 𝐴 + 𝐵 ) = ( 𝐴 ∪ { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥 ∈ ( ( 𝐶 +o 𝐷 ) ∖ 𝐶 ) ∧ ∃ 𝑧𝐷 ( 𝑥 = ( 𝐶 +o 𝑧 ) ∧ 𝑦 = ( 𝐵𝑧 ) ) ) } ) )