Metamath Proof Explorer


Theorem joinval

Description: Join value. Since both sides evaluate to (/) when they don't exist, for convenience we drop the { X , Y } e. dom U requirement. (Contributed by NM, 9-Sep-2018)

Ref Expression
Hypotheses joindef.u
|- U = ( lub ` K )
joindef.j
|- .\/ = ( join ` K )
joindef.k
|- ( ph -> K e. V )
joindef.x
|- ( ph -> X e. W )
joindef.y
|- ( ph -> Y e. Z )
Assertion joinval
|- ( ph -> ( X .\/ Y ) = ( U ` { X , Y } ) )

Proof

Step Hyp Ref Expression
1 joindef.u
 |-  U = ( lub ` K )
2 joindef.j
 |-  .\/ = ( join ` K )
3 joindef.k
 |-  ( ph -> K e. V )
4 joindef.x
 |-  ( ph -> X e. W )
5 joindef.y
 |-  ( ph -> Y e. Z )
6 1 2 joinfval2
 |-  ( K e. V -> .\/ = { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } )
7 3 6 syl
 |-  ( ph -> .\/ = { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } )
8 7 oveqd
 |-  ( ph -> ( X .\/ Y ) = ( X { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } Y ) )
9 8 adantr
 |-  ( ( ph /\ { X , Y } e. dom U ) -> ( X .\/ Y ) = ( X { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } Y ) )
10 simpr
 |-  ( ( ph /\ { X , Y } e. dom U ) -> { X , Y } e. dom U )
11 eqidd
 |-  ( ( ph /\ { X , Y } e. dom U ) -> ( U ` { X , Y } ) = ( U ` { X , Y } ) )
12 fvexd
 |-  ( ph -> ( U ` { X , Y } ) e. _V )
13 preq12
 |-  ( ( x = X /\ y = Y ) -> { x , y } = { X , Y } )
14 13 eleq1d
 |-  ( ( x = X /\ y = Y ) -> ( { x , y } e. dom U <-> { X , Y } e. dom U ) )
15 14 3adant3
 |-  ( ( x = X /\ y = Y /\ z = ( U ` { X , Y } ) ) -> ( { x , y } e. dom U <-> { X , Y } e. dom U ) )
16 simp3
 |-  ( ( x = X /\ y = Y /\ z = ( U ` { X , Y } ) ) -> z = ( U ` { X , Y } ) )
17 13 fveq2d
 |-  ( ( x = X /\ y = Y ) -> ( U ` { x , y } ) = ( U ` { X , Y } ) )
18 17 3adant3
 |-  ( ( x = X /\ y = Y /\ z = ( U ` { X , Y } ) ) -> ( U ` { x , y } ) = ( U ` { X , Y } ) )
19 16 18 eqeq12d
 |-  ( ( x = X /\ y = Y /\ z = ( U ` { X , Y } ) ) -> ( z = ( U ` { x , y } ) <-> ( U ` { X , Y } ) = ( U ` { X , Y } ) ) )
20 15 19 anbi12d
 |-  ( ( x = X /\ y = Y /\ z = ( U ` { X , Y } ) ) -> ( ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) <-> ( { X , Y } e. dom U /\ ( U ` { X , Y } ) = ( U ` { X , Y } ) ) ) )
21 moeq
 |-  E* z z = ( U ` { x , y } )
22 21 moani
 |-  E* z ( { x , y } e. dom U /\ z = ( U ` { x , y } ) )
23 eqid
 |-  { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } = { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) }
24 20 22 23 ovigg
 |-  ( ( X e. W /\ Y e. Z /\ ( U ` { X , Y } ) e. _V ) -> ( ( { X , Y } e. dom U /\ ( U ` { X , Y } ) = ( U ` { X , Y } ) ) -> ( X { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } Y ) = ( U ` { X , Y } ) ) )
25 4 5 12 24 syl3anc
 |-  ( ph -> ( ( { X , Y } e. dom U /\ ( U ` { X , Y } ) = ( U ` { X , Y } ) ) -> ( X { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } Y ) = ( U ` { X , Y } ) ) )
26 25 adantr
 |-  ( ( ph /\ { X , Y } e. dom U ) -> ( ( { X , Y } e. dom U /\ ( U ` { X , Y } ) = ( U ` { X , Y } ) ) -> ( X { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } Y ) = ( U ` { X , Y } ) ) )
27 10 11 26 mp2and
 |-  ( ( ph /\ { X , Y } e. dom U ) -> ( X { <. <. x , y >. , z >. | ( { x , y } e. dom U /\ z = ( U ` { x , y } ) ) } Y ) = ( U ` { X , Y } ) )
28 9 27 eqtrd
 |-  ( ( ph /\ { X , Y } e. dom U ) -> ( X .\/ Y ) = ( U ` { X , Y } ) )
29 1 2 3 4 5 joindef
 |-  ( ph -> ( <. X , Y >. e. dom .\/ <-> { X , Y } e. dom U ) )
30 29 notbid
 |-  ( ph -> ( -. <. X , Y >. e. dom .\/ <-> -. { X , Y } e. dom U ) )
31 df-ov
 |-  ( X .\/ Y ) = ( .\/ ` <. X , Y >. )
32 ndmfv
 |-  ( -. <. X , Y >. e. dom .\/ -> ( .\/ ` <. X , Y >. ) = (/) )
33 31 32 eqtrid
 |-  ( -. <. X , Y >. e. dom .\/ -> ( X .\/ Y ) = (/) )
34 30 33 syl6bir
 |-  ( ph -> ( -. { X , Y } e. dom U -> ( X .\/ Y ) = (/) ) )
35 34 imp
 |-  ( ( ph /\ -. { X , Y } e. dom U ) -> ( X .\/ Y ) = (/) )
36 ndmfv
 |-  ( -. { X , Y } e. dom U -> ( U ` { X , Y } ) = (/) )
37 36 adantl
 |-  ( ( ph /\ -. { X , Y } e. dom U ) -> ( U ` { X , Y } ) = (/) )
38 35 37 eqtr4d
 |-  ( ( ph /\ -. { X , Y } e. dom U ) -> ( X .\/ Y ) = ( U ` { X , Y } ) )
39 28 38 pm2.61dan
 |-  ( ph -> ( X .\/ Y ) = ( U ` { X , Y } ) )