Metamath Proof Explorer


Theorem grpoass

Description: A group operation is associative. (Contributed by NM, 10-Oct-2006) (New usage is discouraged.)

Ref Expression
Hypothesis grpfo.1 ⊢ 𝑋 = ran 𝐺
Assertion grpoass ( ( 𝐺 ∈ GrpOp ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑋 ∧ 𝐶 ∈ 𝑋 ) ) → ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝐶 ) = ( 𝐴 𝐺 ( 𝐵 𝐺 𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 grpfo.1 ⊢ 𝑋 = ran 𝐺
2 1 isgrpo ⊢ ( 𝐺 ∈ GrpOp → ( 𝐺 ∈ GrpOp ↔ ( 𝐺 : ( 𝑋 × 𝑋 ) ⟶ 𝑋 ∧ ∀ 𝑥 ∈ 𝑋 ∀ 𝑦 ∈ 𝑋 ∀ 𝑧 ∈ 𝑋 ( ( 𝑥 𝐺 𝑦 ) 𝐺 𝑧 ) = ( 𝑥 𝐺 ( 𝑦 𝐺 𝑧 ) ) ∧ ∃ 𝑢 ∈ 𝑋 ∀ 𝑥 ∈ 𝑋 ( ( 𝑢 𝐺 𝑥 ) = 𝑥 ∧ ∃ 𝑦 ∈ 𝑋 ( 𝑦 𝐺 𝑥 ) = 𝑢 ) ) ) )
3 2 ibi ⊢ ( 𝐺 ∈ GrpOp → ( 𝐺 : ( 𝑋 × 𝑋 ) ⟶ 𝑋 ∧ ∀ 𝑥 ∈ 𝑋 ∀ 𝑦 ∈ 𝑋 ∀ 𝑧 ∈ 𝑋 ( ( 𝑥 𝐺 𝑦 ) 𝐺 𝑧 ) = ( 𝑥 𝐺 ( 𝑦 𝐺 𝑧 ) ) ∧ ∃ 𝑢 ∈ 𝑋 ∀ 𝑥 ∈ 𝑋 ( ( 𝑢 𝐺 𝑥 ) = 𝑥 ∧ ∃ 𝑦 ∈ 𝑋 ( 𝑦 𝐺 𝑥 ) = 𝑢 ) ) )
4 3 simp2d ⊢ ( 𝐺 ∈ GrpOp → ∀ 𝑥 ∈ 𝑋 ∀ 𝑦 ∈ 𝑋 ∀ 𝑧 ∈ 𝑋 ( ( 𝑥 𝐺 𝑦 ) 𝐺 𝑧 ) = ( 𝑥 𝐺 ( 𝑦 𝐺 𝑧 ) ) )
5 oveq1 ⊢ ( 𝑥 = 𝐴 → ( 𝑥 𝐺 𝑦 ) = ( 𝐴 𝐺 𝑦 ) )
6 5 oveq1d ⊢ ( 𝑥 = 𝐴 → ( ( 𝑥 𝐺 𝑦 ) 𝐺 𝑧 ) = ( ( 𝐴 𝐺 𝑦 ) 𝐺 𝑧 ) )
7 oveq1 ⊢ ( 𝑥 = 𝐴 → ( 𝑥 𝐺 ( 𝑦 𝐺 𝑧 ) ) = ( 𝐴 𝐺 ( 𝑦 𝐺 𝑧 ) ) )
8 6 7 eqeq12d ⊢ ( 𝑥 = 𝐴 → ( ( ( 𝑥 𝐺 𝑦 ) 𝐺 𝑧 ) = ( 𝑥 𝐺 ( 𝑦 𝐺 𝑧 ) ) ↔ ( ( 𝐴 𝐺 𝑦 ) 𝐺 𝑧 ) = ( 𝐴 𝐺 ( 𝑦 𝐺 𝑧 ) ) ) )
9 oveq2 ⊢ ( 𝑦 = 𝐵 → ( 𝐴 𝐺 𝑦 ) = ( 𝐴 𝐺 𝐵 ) )
10 9 oveq1d ⊢ ( 𝑦 = 𝐵 → ( ( 𝐴 𝐺 𝑦 ) 𝐺 𝑧 ) = ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝑧 ) )
11 oveq1 ⊢ ( 𝑦 = 𝐵 → ( 𝑦 𝐺 𝑧 ) = ( 𝐵 𝐺 𝑧 ) )
12 11 oveq2d ⊢ ( 𝑦 = 𝐵 → ( 𝐴 𝐺 ( 𝑦 𝐺 𝑧 ) ) = ( 𝐴 𝐺 ( 𝐵 𝐺 𝑧 ) ) )
13 10 12 eqeq12d ⊢ ( 𝑦 = 𝐵 → ( ( ( 𝐴 𝐺 𝑦 ) 𝐺 𝑧 ) = ( 𝐴 𝐺 ( 𝑦 𝐺 𝑧 ) ) ↔ ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝑧 ) = ( 𝐴 𝐺 ( 𝐵 𝐺 𝑧 ) ) ) )
14 oveq2 ⊢ ( 𝑧 = 𝐶 → ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝑧 ) = ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝐶 ) )
15 oveq2 ⊢ ( 𝑧 = 𝐶 → ( 𝐵 𝐺 𝑧 ) = ( 𝐵 𝐺 𝐶 ) )
16 15 oveq2d ⊢ ( 𝑧 = 𝐶 → ( 𝐴 𝐺 ( 𝐵 𝐺 𝑧 ) ) = ( 𝐴 𝐺 ( 𝐵 𝐺 𝐶 ) ) )
17 14 16 eqeq12d ⊢ ( 𝑧 = 𝐶 → ( ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝑧 ) = ( 𝐴 𝐺 ( 𝐵 𝐺 𝑧 ) ) ↔ ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝐶 ) = ( 𝐴 𝐺 ( 𝐵 𝐺 𝐶 ) ) ) )
18 8 13 17 rspc3v ⊢ ( ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑋 ∧ 𝐶 ∈ 𝑋 ) → ( ∀ 𝑥 ∈ 𝑋 ∀ 𝑦 ∈ 𝑋 ∀ 𝑧 ∈ 𝑋 ( ( 𝑥 𝐺 𝑦 ) 𝐺 𝑧 ) = ( 𝑥 𝐺 ( 𝑦 𝐺 𝑧 ) ) → ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝐶 ) = ( 𝐴 𝐺 ( 𝐵 𝐺 𝐶 ) ) ) )
19 4 18 mpan9 ⊢ ( ( 𝐺 ∈ GrpOp ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑋 ∧ 𝐶 ∈ 𝑋 ) ) → ( ( 𝐴 𝐺 𝐵 ) 𝐺 𝐶 ) = ( 𝐴 𝐺 ( 𝐵 𝐺 𝐶 ) ) )