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

Theorem isgrp2i 8038
Description: An alternate way to show a group operation. Exercise 1 of [Herstein] p. 57.
Hypotheses
Ref Expression
isgrp2i.1 |- X e. V
isgrp2i.2 |- X =/= (/)
isgrp2i.3 |- G:(X X. X)-->X
isgrp2i.4 |- ((x e. X /\ y e. X /\ z e. X) -> ((xGy)Gz) = (xG(yGz)))
isgrp2i.5 |- ((x e. X /\ y e. X) -> E.z e. X (zGx) = y)
isgrp2i.6 |- ((x e. X /\ y e. X) -> E.z e. X (xGz) = y)
Assertion
Ref Expression
isgrp2i |- G e. Grp
Distinct variable groups:   x,y,z,G   x,X,y,z

Proof of Theorem isgrp2i
StepHypRef Expression
1 isgrp2i.3 . . 3 |- G:(X X. X)-->X
2 isgrp2i.4 . . . 4 |- ((x e. X /\ y e. X /\ z e. X) -> ((xGy)Gz) = (xG(yGz)))
32rgen3 1722 . . 3 |- A.x e. X A.y e. X A.z e. X ((xGy)Gz) = (xG(yGz))
4 isgrp2i.2 . . . . 5 |- X =/= (/)
5 ne0 2285 . . . . 5 |- (X =/= (/) <-> E.w w e. X)
64, 5mpbi 189 . . . 4 |- E.w w e. X
7 eleq1 1532 . . . . . . . . . . 11 |- (x = w -> (x e. X <-> w e. X))
87anbi1d 616 . . . . . . . . . 10 |- (x = w -> ((x e. X /\ w e. X) <-> (w e. X /\ w e. X)))
9 opreq2 3964 . . . . . . . . . . . 12 |- (x = w -> (zGx) = (zGw))
109eqeq1d 1481 . . . . . . . . . . 11 |- (x = w -> ((zGx) = w <-> (zGw) = w))
1110rexbidv 1662 . . . . . . . . . 10 |- (x = w -> (E.z e. X (zGx) = w <-> E.z e. X (zGw) = w))
128, 11imbi12d 625 . . . . . . . . 9 |- (x = w -> (((x e. X /\ w e. X) -> E.z e. X (zGx) = w) <-> ((w e. X /\ w e. X) -> E.z e. X (zGw) = w)))
13 eleq1 1532 . . . . . . . . . . . 12 |- (y = w -> (y e. X <-> w e. X))
1413anbi2d 615 . . . . . . . . . . 11 |- (y = w -> ((x e. X /\ y e. X) <-> (x e. X /\ w e. X)))
15 eqeq2 1482 . . . . . . . . . . . 12 |- (y = w -> ((zGx) = y <-> (zGx) = w))
1615rexbidv 1662 . . . . . . . . . . 11 |- (y = w -> (E.z e. X (zGx) = y <-> E.z e. X (zGx) = w))
1714, 16imbi12d 625 . . . . . . . . . 10 |- (y = w -> (((x e. X /\ y e. X) -> E.z e. X (zGx) = y) <-> ((x e. X /\ w e. X) -> E.z e. X (zGx) = w)))
18 isgrp2i.5 . . . . . . . . . 10 |- ((x e. X /\ y e. X) -> E.z e. X (zGx) = y)
1917, 18chvarv 1326 . . . . . . . . 9 |- ((x e. X /\ w e. X) -> E.z e. X (zGx) = w)
2012, 19chvarv 1326 . . . . . . . 8 |- ((w e. X /\ w e. X) -> E.z e. X (zGw) = w)
2120anidms 434 . . . . . . 7 |- (w e. X -> E.z e. X (zGw) = w)
22 opreq1 3963 . . . . . . . . 9 |- (z = u -> (zGw) = (uGw))
2322eqeq1d 1481 . . . . . . . 8 |- (z = u -> ((zGw) = w <-> (uGw) = w))
2423cbvrexv 1798 . . . . . . 7 |- (E.z e. X (zGw) = w <-> E.u e. X (uGw) = w)
2521, 24sylib 198 . . . . . 6 |- (w e. X -> E.u e. X (uGw) = w)
26 opreq1 3963 . . . . . . . . . . . . . . . . . 18 |- (x = w -> (xGz) = (wGz))
2726eqeq1d 1481 . . . . . . . . . . . . . . . . 17 |- (x = w -> ((xGz) = y <-> (wGz) = y))
2827rexbidv 1662 . . . . . . . . . . . . . . . 16 |- (x = w -> (E.z e. X (xGz) = y <-> E.z e. X (wGz) = y))
29 eqeq2 1482 . . . . . . . . . . . . . . . . 17 |- (y = x -> ((wGz) = y <-> (wGz) = x))
3029rexbidv 1662 . . . . . . . . . . . . . . . 16 |- (y = x -> (E.z e. X (wGz) = y <-> E.z e. X (wGz) = x))
31 isgrp2i.6 . . . . . . . . . . . . . . . 16 |- ((x e. X /\ y e. X) -> E.z e. X (xGz) = y)
3228, 30, 31vtocl2ga 1850 . . . . . . . . . . . . . . 15 |- ((w e. X /\ x e. X) -> E.z e. X (wGz) = x)
33 opreq2 3964 . . . . . . . . . . . . . . . . 17 |- (z = v -> (wGz) = (wGv))
3433eqeq1d 1481 . . . . . . . . . . . . . . . 16 |- (z = v -> ((wGz) = x <-> (wGv) = x))
3534cbvrexv 1798 . . . . . . . . . . . . . . 15 |- (E.z e. X (wGz) = x <-> E.v e. X (wGv) = x)
3632, 35sylib 198 . . . . . . . . . . . . . 14 |- ((w e. X /\ x e. X) -> E.v e. X (wGv) = x)
3736adantlr 393 . . . . . . . . . . . . 13 |- (((w e. X /\ u e. X) /\ x e. X) -> E.v e. X (wGv) = x)
3837adantr 389 . . . . . . . . . . . 12 |- ((((w e. X /\ u e. X) /\ x e. X) /\ (uGw) = w) -> E.v e. X (wGv) = x)
39 eleq1 1532 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (x = u -> (x e. X <-> u e. X))
40393anbi1d 896 . . . . . . . . . . . . . . . . . . . . . . 23 |- (x = u -> ((x e. X /\ w e. X /\ v e. X) <-> (u e. X /\ w e. X /\ v e. X)))
41 opreq1 3963 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (x = u -> (xGw) = (uGw))
4241opreq1d 3970 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (x = u -> ((xGw)Gv) = ((uGw)Gv))
43 opreq1 3963 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (x = u -> (xG(wGv)) = (uG(wGv)))
4442, 43eqeq12d 1487 . . . . . . . . . . . . . . . . . . . . . . 23 |- (x = u -> (((xGw)Gv) = (xG(wGv)) <-> ((uGw)Gv) = (uG(wGv))))
4540, 44imbi12d 625 . . . . . . . . . . . . . . . . . . . . . 22 |- (x = u -> (((x e. X /\ w e. X /\ v e. X) -> ((xGw)Gv) = (xG(wGv))) <-> ((u e. X /\ w e. X /\ v e. X) -> ((uGw)Gv) = (uG(wGv)))))
46133anbi2d 897 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (y = w -> ((x e. X /\ y e. X /\ v e. X) <-> (x e. X /\ w e. X /\ v e. X)))
47 opreq2 3964 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (y = w -> (xGy) = (xGw))
4847opreq1d 3970 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (y = w -> ((xGy)Gv) = ((xGw)Gv))
49 opreq1 3963 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (y = w -> (yGv) = (wGv))
5049opreq2d 3971 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (y = w -> (xG(yGv)) = (xG(wGv)))
5148, 50eqeq12d 1487 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (y = w -> (((xGy)Gv) = (xG(yGv)) <-> ((xGw)Gv) = (xG(wGv))))
5246, 51imbi12d 625 . . . . . . . . . . . . . . . . . . . . . . 23 |- (y = w -> (((x e. X /\ y e. X /\ v e. X) -> ((xGy)Gv) = (xG(yGv))) <-> ((x e. X /\ w e. X /\ v e. X) -> ((xGw)Gv) = (xG(wGv)))))
53 eleq1 1532 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (z = v -> (z e. X <-> v e. X))
54533anbi3d 898 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (z = v -> ((x e. X /\ y e. X /\ z e. X) <-> (x e. X /\ y e. X /\ v e. X)))
55 opreq2 3964 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (z = v -> ((xGy)Gz) = ((xGy)Gv))
56 opreq2 3964 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- (z = v -> (yGz) = (yGv))
5756opreq2d 3971 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (z = v -> (xG(yGz)) = (xG(yGv)))
5855, 57eqeq12d 1487 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (z = v -> (((xGy)Gz) = (xG(yGz)) <-> ((xGy)Gv) = (xG(yGv))))
5954, 58imbi12d 625 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (z = v -> (((x e. X /\ y e. X /\ z e. X) -> ((xGy)Gz) = (xG(yGz))) <-> ((x e. X /\ y e. X /\ v e. X) -> ((xGy)Gv) = (xG(yGv)))))
6059, 2chvarv 1326 . . . . . . . . . . . . . . . . . . . . . . 23 |- ((x e. X /\ y e. X /\ v e. X) -> ((xGy)Gv) = (xG(yGv)))
6152, 60chvarv 1326 . . . . . . . . . . . . . . . . . . . . . 22 |- ((x e. X /\ w e. X /\ v e. X) -> ((xGw)Gv) = (xG(wGv)))
6245, 61chvarv 1326 . . . . . . . . . . . . . . . . . . . . 21 |- ((u e. X /\ w e. X /\ v e. X) -> ((uGw)Gv) = (uG(wGv)))
63623com12 836 . . . . . . . . . . . . . . . . . . . 20 |- ((w e. X /\ u e. X /\ v e. X) -> ((uGw)Gv) = (uG(wGv)))
64633expa 832 . . . . . . . . . . . . . . . . . . 19 |- (((w e. X /\ u e. X) /\ v e. X) -> ((uGw)Gv) = (uG(wGv)