This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.

Metamath Proof Explorer


Theorem coass

Description: Associative law for class composition. Theorem 27 of Suppes p. 64. Also Exercise 21 of Enderton p. 53. Interestingly, this law holds for any classes whatsoever, not just functions or even relations. (Contributed by NM, 27-Jan-1997)

Ref Expression
Assertion coass
|- ( ( A o. B ) o. C ) = ( A o. ( B o. C ) )

Proof

Step Hyp Ref Expression
1 relco
 |-  Rel ( ( A o. B ) o. C )
2 relco
 |-  Rel ( A o. ( B o. C ) )
3 excom
 |-  ( E. z E. w ( x C z /\ ( z B w /\ w A y ) ) <-> E. w E. z ( x C z /\ ( z B w /\ w A y ) ) )
4 anass
 |-  ( ( ( x C z /\ z B w ) /\ w A y ) <-> ( x C z /\ ( z B w /\ w A y ) ) )
5 4 2exbii
 |-  ( E. w E. z ( ( x C z /\ z B w ) /\ w A y ) <-> E. w E. z ( x C z /\ ( z B w /\ w A y ) ) )
6 3 5 bitr4i
 |-  ( E. z E. w ( x C z /\ ( z B w /\ w A y ) ) <-> E. w E. z ( ( x C z /\ z B w ) /\ w A y ) )
7 vex
 |-  z e. _V
8 vex
 |-  y e. _V
9 7 8 brco
 |-  ( z ( A o. B ) y <-> E. w ( z B w /\ w A y ) )
10 9 anbi2i
 |-  ( ( x C z /\ z ( A o. B ) y ) <-> ( x C z /\ E. w ( z B w /\ w A y ) ) )
11 10 exbii
 |-  ( E. z ( x C z /\ z ( A o. B ) y ) <-> E. z ( x C z /\ E. w ( z B w /\ w A y ) ) )
12 vex
 |-  x e. _V
13 12 8 opelco
 |-  ( <. x , y >. e. ( ( A o. B ) o. C ) <-> E. z ( x C z /\ z ( A o. B ) y ) )
14 exdistr
 |-  ( E. z E. w ( x C z /\ ( z B w /\ w A y ) ) <-> E. z ( x C z /\ E. w ( z B w /\ w A y ) ) )
15 11 13 14 3bitr4i
 |-  ( <. x , y >. e. ( ( A o. B ) o. C ) <-> E. z E. w ( x C z /\ ( z B w /\ w A y ) ) )
16 vex
 |-  w e. _V
17 12 16 brco
 |-  ( x ( B o. C ) w <-> E. z ( x C z /\ z B w ) )
18 17 anbi1i
 |-  ( ( x ( B o. C ) w /\ w A y ) <-> ( E. z ( x C z /\ z B w ) /\ w A y ) )
19 18 exbii
 |-  ( E. w ( x ( B o. C ) w /\ w A y ) <-> E. w ( E. z ( x C z /\ z B w ) /\ w A y ) )
20 12 8 opelco
 |-  ( <. x , y >. e. ( A o. ( B o. C ) ) <-> E. w ( x ( B o. C ) w /\ w A y ) )
21 19.41v
 |-  ( E. z ( ( x C z /\ z B w ) /\ w A y ) <-> ( E. z ( x C z /\ z B w ) /\ w A y ) )
22 21 exbii
 |-  ( E. w E. z ( ( x C z /\ z B w ) /\ w A y ) <-> E. w ( E. z ( x C z /\ z B w ) /\ w A y ) )
23 19 20 22 3bitr4i
 |-  ( <. x , y >. e. ( A o. ( B o. C ) ) <-> E. w E. z ( ( x C z /\ z B w ) /\ w A y ) )
24 6 15 23 3bitr4i
 |-  ( <. x , y >. e. ( ( A o. B ) o. C ) <-> <. x , y >. e. ( A o. ( B o. C ) ) )
25 1 2 24 eqrelriiv
 |-  ( ( A o. B ) o. C ) = ( A o. ( B o. C ) )