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

Theorem omass 4269
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 4027 . . . . . 6 |- (x = (/) -> ((A .o B) .o x) = ((A .o B) .o (/)))
2 opreq2 4027 . . . . . . 7 |- (x = (/) -> (B .o x) = (B .o (/)))
32opreq2d 4034 . . . . . 6 |- (x = (/) -> (A .o (B .o x)) = (A .o (B .o (/))))
41, 3eqeq12d 1536 . . . . 5 |- (x = (/) -> (((A .o B) .o x) = (A .o (B .o x)) <-> ((A .o B) .o (/)) = (A .o (B .o (/)))))
5 opreq2 4027 . . . . . 6 |- (x = y -> ((A .o B) .o x) = ((A .o B) .o y))
6 opreq2 4027 . . . . . . 7 |- (x = y -> (B .o x) = (B .o y))
76opreq2d 4034 . . . . . 6 |- (x = y -> (A .o (B .o x)) = (A .o (B .o y)))
85, 7eqeq12d 1536 . . . . 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 4027 . . . . . 6 |- (x = suc y -> ((A .o B) .o x) = ((A .o B) .o suc y))
10 opreq2 4027 . . . . . . 7 |- (x = suc y -> (B .o x) = (B .o suc y))
1110opreq2d 4034 . . . . . 6 |- (x = suc y -> (A .o (B .o x)) = (A .o (B .o suc y)))
129, 11eqeq12d 1536 . . . . 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 4027 . . . . . 6 |- (x = C -> ((A .o B) .o x) = ((A .o B) .o C))
14 opreq2 4027 . . . . . . 7 |- (x = C -> (B .o x) = (B .o C))
1514opreq2d 4034 . . . . . 6 |- (x = C -> (A .o (B .o x)) = (A .o (B .o C)))
1613, 15eqeq12d 1536 . . . . 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 4229 . . . . . . 7 |- ((A e. On /\ B e. On) -> (A .o B) e. On)
18 om0 4214 . . . . . . 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 4214 . . . . . . . 8 |- (B e. On -> (B .o (/)) = (/))
2120opreq2d 4034 . . . . . . 7 |- (B e. On -> (A .o (B .o (/))) = (A .o (/)))
22 om0 4214 . . . . . . 7 |- (A e. On -> (A .o (/)) = (/))
2321, 22sylan9eqr 1576 . . . . . 6 |- ((A e. On /\ B e. On) -> (A .o (B .o (/))) = (/))
2419, 23eqtr4d 1557 . . . . 5 |- ((A e. On /\ B e. On) -> ((A .o B) .o (/)) = (A .o (B .o (/))))
25 omsuc 4223 . . . . . . . . . . . 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 459 . . . . . . . . . . 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 840 . . . . . . . . . 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 4223 . . . . . . . . . . . . 13 |- ((B e. On /\ y e. On) -> (B .o suc y) = ((B .o y) +o B))
29283adant1 809 . . . . . . . . . . . 12 |- ((A e. On /\ B e. On /\ y e. On) -> (B .o suc y) = ((B .o y) +o B))
3029opreq2d 4034 . . . . . . . . . . 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 4268 . . . . . . . . . . . . . . . . 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 4229 . . . . . . . . . . . . . . . . 17 |- ((B e. On /\ y e. On) -> (B .o y) e. On)
3331, 32syl3an2 872 . . . . . . . . . . . . . . . 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 844 . . . . . . . . . . . . . . 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 383 . . . . . . . . . . . . . 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 66 . . . . . . . . . . . 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 839 . . . . . . . . . . 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 1554 . . . . . . . . . 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 1536 . . . . . . . . 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 4026 . . . . . . . . 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 217 . . . . . . . 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 844 . . . . . . 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 368 . . . . 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 1860 . . . . . . . . . . . . . . 15 |- x e. V
47 omlim 4226 . . . . . . . . . . . . . . 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 721 . . . . . . . . . . . . . 14 |- (((A .o B) e. On /\ Lim x) -> ((A .o B) .o x) = U_y e. x ((A .o B) .o y))
4917ancoms 447 . . . . . . . . . . . . . 14 |- ((B e. On /\ A e. On) -> (A .o B) e. On)
5048, 49sylan 459 . . . . . . . . . . . . 13 |- (((B e. On /\ A e. On) /\ Lim x) -> ((A .o B) .o x) = U_y e. x ((A .o B) .o y))
5150an1rs 500 . . . . . . . . . . . 12 |- (((B e. On /\ Lim x) /\ A e. On) -> ((A .o B) .o x) = U_y e. x ((A .o B) .o y))
5251ad2antrr 413 . . . . . . . . . . 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 2632 . . . . . . . . . . . 12 |- (A.y e. x ((A .o B) .o y) = (A .o (B .o y)) -> U_y e. x ((A .o B) .o