HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem omass 4211
Description: Multiplication of ordinal numbers is associative. Theorem 8.26 of [TakeutiZaring] p. 65.
Assertion
Ref Expression
omass |- ((A e. On /\ B e. On /\ C e. On) -> ((A .o B) .o C) = (A .o (B .o C)))

Proof of Theorem omass
StepHypRef Expression
1 opreq2 3969 . . . . . 6 |- (x = (/) -> ((A .o B) .o x) = ((A .o B) .o (/)))
2 opreq2 3969 . . . . . . 7 |- (x = (/) -> (B .o x) = (B .o (/)))
32opreq2d 3976 . . . . . 6 |- (x = (/) -> (A .o (B .o x)) = (A .o (B .o (/))))
41, 3eqeq12d 1489 . . . . 5 |- (x = (/) -> (((A .o B) .o x) = (A .o (B .o x)) <-> ((A .o B) .o (/)) = (A .o (B .o (/)))))
5 opreq2 3969 . . . . . 6 |- (x = y -> ((A .o B) .o x) = ((A .o B) .o y))
6 opreq2 3969 . . . . . . 7 |- (x = y -> (B .o x) = (B .o y))
76opreq2d 3976 . . . . . 6 |- (x = y -> (A .o (B .o x)) = (A .o (B .o y)))
85, 7eqeq12d 1489 . . . . 5 |- (x = y -> (((A .o B) .o x) = (A .o (B .o x)) <-> ((A .o B) .o y) = (A .o (B .o y))))
9 opreq2 3969 . . . . . 6 |- (x = suc y -> ((A .o B) .o x) = ((A .o B) .o suc y))
10 opreq2 3969 . . . . . . 7 |- (x = suc y -> (B .o x) = (B .o suc y))
1110opreq2d 3976 . . . . . 6 |- (x = suc y -> (A .o (B .o x)) = (A .o (B .o suc y)))
129, 11eqeq12d 1489 . . . . 5 |- (x = suc y -> (((A .o B) .o x) = (A .o (B .o x)) <-> ((A .o B) .o suc y) = (A .o (B .o suc y))))
13 opreq2 3969 . . . . . 6 |- (x = C -> ((A .o B) .o x) = ((A .o B) .o C))
14 opreq2 3969 . . . . . . 7 |- (x = C -> (B .o x) = (B .o C))
1514opreq2d 3976 . . . . . 6 |- (x = C -> (A .o (B .o x)) = (A .o (B .o C)))
1613, 15eqeq12d 1489 . . . . 5 |- (x = C -> (((A .o B) .o x) = (A .o (B .o x)) <-> ((A .o B) .o C) = (A .o (B .o C))))
17 omcl 4171 . . . . . . 7 |- ((A e. On /\ B e. On) -> (A .o B) e. On)
18 om0 4156 . . . . . . 7 |- ((A .o B) e. On -> ((A .o B) .o (/)) = (/))
1917, 18syl 10 . . . . . 6 |- ((A e. On /\ B e. On) -> ((A .o B) .o (/)) = (/))
20 om0 4156 . . . . . . . 8 |- (B e. On -> (B .o (/)) = (/))
2120opreq2d 3976 . . . . . . 7 |- (B e. On -> (A .o (B .o (/))) = (A .o (/)))
22 om0 4156 . . . . . . 7 |- (A e. On -> (A .o (/)) = (/))
2321, 22sylan9eqr 1529 . . . . . 6 |- ((A e. On /\ B e. On) -> (A .o (B .o (/))) = (/))
2419, 23eqtr4d 1510 . . . . 5 |- ((A e. On /\ B e. On) -> ((A .o B) .o (/)) = (A .o (B .o (/))))
25 omsuc 4165 . . . . . . . . . . . 12 |- (((A .o B) e. On /\ y e. On) -> ((A .o B) .o suc y) = (((A .o B) .o y) +o (A .o B)))
2625, 17sylan 448 . . . . . . . . . . 11 |- (((A e. On /\ B e. On) /\ y e. On) -> ((A .o B) .o suc y) = (((A .o B) .o y) +o (A .o B)))
27263impa 828 . . . . . . . . . 10 |- ((A e. On /\ B e. On /\ y e. On) -> ((A .o B) .o suc y) = (((A .o B) .o y) +o (A .o B)))
28 omsuc 4165 . . . . . . . . . . . . 13 |- ((B e. On /\ y e. On) -> (B .o suc y) = ((B .o y) +o B))
29283adant1 797 . . . . . . . . . . . 12 |- ((A e. On /\ B e. On /\ y e. On) -> (B .o suc y) = ((B .o y) +o B))
3029opreq2d 3976 . . . . . . . . . . 11 |- ((A e. On /\ B e. On /\ y e. On) -> (A .o (B .o suc y)) = (A .o ((B .o y) +o B)))
31 odi 4210 . . . . . . . . . . . . . . . . 17 |- ((A e. On /\ (B .o y) e. On /\ B e. On) -> (A .o ((B .o y) +o B)) = ((A .o (B .o y)) +o (A .o B)))
32 omcl 4171 . . . . . . . . . . . . . . . . 17 |- ((B e. On /\ y e. On) -> (B .o y) e. On)
3331, 32syl3an2 860 . . . . . . . . . . . . . . . 16 |- ((A e. On /\ (B e. On /\ y e. On) /\ B e. On) -> (A .o ((B .o y) +o B)) = ((A .o (B .o y)) +o (A .o B)))
34333exp 832 . . . . . . . . . . . . . . 15 |- (A e. On -> ((B e. On /\ y e. On) -> (B e. On -> (A .o ((B .o y) +o B)) = ((A .o (B .o y)) +o (A .o B)))))
3534exp3a 375 . . . . . . . . . . . . . 14 |- (A e. On -> (B e. On -> (y e. On -> (B e. On -> (A .o ((B .o y) +o B)) = ((A .o (B .o y)) +o (A .o B))))))
3635com34 36 . . . . . . . . . . . . 13 |- (A e. On -> (B e. On -> (B e. On -> (y e. On -> (A .o ((B .o y) +o B)) = ((A .o (B .o y)) +o (A .o B))))))
3736pm2.43d 65 . . . . . . . . . . . 12 |- (A e. On -> (B e. On -> (y e. On -> (A .o ((B .o y) +o B)) = ((A .o (B .o y)) +o (A .o B)))))
38373imp 827 . . . . . . . . . . 11 |- ((A e. On /\ B e. On /\ y e. On) -> (A .o ((B .o y) +o B)) = ((A .o (B .o y)) +o (A .o B)))
3930, 38eqtrd 1507 . . . . . . . . . 10 |- ((A e. On /\ B e. On /\ y e. On) -> (A .o (B .o suc y)) = ((A .o (B .o y)) +o (A .o B)))
4027, 39eqeq12d 1489 . . . . . . . . 9 |- ((A e. On /\ B e. On /\ y e. On) -> (((A .o B) .o suc y) = (A .o (B .o suc y)) <-> (((A .o B) .o y) +o (A .o B)) = ((A .o (B .o y)) +o (A .o B))))
41 opreq1 3968 . . . . . . . . 9 |- (((A .o B) .o y) = (A .o (B .o y)) -> (((A .o B) .o y) +o (A .o B)) = ((A .o (B .o y)) +o (A .o B)))
4240, 41syl5bir 210 . . . . . . . 8 |- ((A e. On /\ B e. On /\ y e. On) -> (((A .o B) .o y) = (A .o (B .o y)) -> ((A .o B) .o suc y) = (A .o (B .o suc y))))
43423exp 832 . . . . . . 7 |- (A e. On -> (B e. On -> (y e. On -> (((A .o B) .o y) = (A .o (B .o y)) -> ((A .o B) .o suc y) = (A .o (B .o suc y))))))
4443com3r 35 . . . . . 6 |- (y e. On -> (A e. On -> (B e. On -> (((A .o B) .o y) = (A .o (B .o y)) -> ((A .o B) .o suc y) = (A .o (B .o suc y))))))
4544imp3a 361 . . . . 5 |- (y e. On -> ((A e. On /\ B e. On) -> (((A .o B) .o y) = (A .o (B .o y)) -> ((A .o B) .o suc y) = (A .o (B .o suc y)))))
46 visset 1813 . . . . . . . . . . . . . . 15 |- x e. V
47 omlim 4168 . . . . . . . . . . . . . . 15 |- (((A .o B) e. On /\ (x e. V /\ Lim x)) -> ((A .o B) .o x) = U_y e. x ((A .o B) .o y))
4846, 47mpanr1 709 . . . . . . . . . . . . . 14 |- (((A .o B) e. On /\ Lim x) -> ((A .o B) .o x) = U_y e. x ((A .o B) .o y))
4917ancoms 436 . . . . . . . . . . . . . 14 |- ((B e. On /\ A e. On) -> (A .o B) e. On)
5048, 49sylan 448 . . . . . . . . . . . . 13 |- (((B e. On /\ A e. On) /\ Lim x) -> ((A .o B) .o x) = U_y e. x ((A .o B) .o y))
5150an1rs 489 . . . . . . . . . . . 12 |- (((B e. On /\ Lim x) /\ A e. On) -> ((A .o B) .o x) = U_y e. x ((A .o B) .o y))
5251ad2antrr 404 . . . . . . . . . . 11 |- (((((B e. On /\ Lim x) /\ A e. On) /\ (/) e. B) /\ A.y e. x ((A .o B) .o y) = (A .o (B .o y))) -> ((A .o B) .o x) = U_y e. x ((A .o B) .o y))
53 iuneq2 2578 . . . . . . . . . . . 12 |- (A.y e. x ((A .o B) .o y) = (A .o (B .o y)) -> U_y e. x ((A .o B) .o