This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Group inverses cancel in a group action. (Contributed by Jeff Hankins, 11-Aug-2009) (Revised by Mario Carneiro, 13-Jan-2015)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | galcan.1 | ⊢ 𝑋 = ( Base ‘ 𝐺 ) | |
| gacan.2 | ⊢ 𝑁 = ( invg ‘ 𝐺 ) | ||
| Assertion | gacan | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝐴 ⊕ 𝐵 ) = 𝐶 ↔ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) = 𝐵 ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | galcan.1 | ⊢ 𝑋 = ( Base ‘ 𝐺 ) | |
| 2 | gacan.2 | ⊢ 𝑁 = ( invg ‘ 𝐺 ) | |
| 3 | gagrp | ⊢ ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) → 𝐺 ∈ Grp ) | |
| 4 | 3 | adantr | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → 𝐺 ∈ Grp ) |
| 5 | simpr1 | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → 𝐴 ∈ 𝑋 ) | |
| 6 | eqid | ⊢ ( +g ‘ 𝐺 ) = ( +g ‘ 𝐺 ) | |
| 7 | eqid | ⊢ ( 0g ‘ 𝐺 ) = ( 0g ‘ 𝐺 ) | |
| 8 | 1 6 7 2 | grprinv | ⊢ ( ( 𝐺 ∈ Grp ∧ 𝐴 ∈ 𝑋 ) → ( 𝐴 ( +g ‘ 𝐺 ) ( 𝑁 ‘ 𝐴 ) ) = ( 0g ‘ 𝐺 ) ) |
| 9 | 4 5 8 | syl2anc | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( 𝐴 ( +g ‘ 𝐺 ) ( 𝑁 ‘ 𝐴 ) ) = ( 0g ‘ 𝐺 ) ) |
| 10 | 9 | oveq1d | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝐴 ( +g ‘ 𝐺 ) ( 𝑁 ‘ 𝐴 ) ) ⊕ 𝐶 ) = ( ( 0g ‘ 𝐺 ) ⊕ 𝐶 ) ) |
| 11 | simpl | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ) | |
| 12 | 1 2 | grpinvcl | ⊢ ( ( 𝐺 ∈ Grp ∧ 𝐴 ∈ 𝑋 ) → ( 𝑁 ‘ 𝐴 ) ∈ 𝑋 ) |
| 13 | 4 5 12 | syl2anc | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( 𝑁 ‘ 𝐴 ) ∈ 𝑋 ) |
| 14 | simpr3 | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → 𝐶 ∈ 𝑌 ) | |
| 15 | 1 6 | gaass | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ ( 𝑁 ‘ 𝐴 ) ∈ 𝑋 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝐴 ( +g ‘ 𝐺 ) ( 𝑁 ‘ 𝐴 ) ) ⊕ 𝐶 ) = ( 𝐴 ⊕ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) ) |
| 16 | 11 5 13 14 15 | syl13anc | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝐴 ( +g ‘ 𝐺 ) ( 𝑁 ‘ 𝐴 ) ) ⊕ 𝐶 ) = ( 𝐴 ⊕ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) ) |
| 17 | 7 | gagrpid | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ 𝐶 ∈ 𝑌 ) → ( ( 0g ‘ 𝐺 ) ⊕ 𝐶 ) = 𝐶 ) |
| 18 | 11 14 17 | syl2anc | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 0g ‘ 𝐺 ) ⊕ 𝐶 ) = 𝐶 ) |
| 19 | 10 16 18 | 3eqtr3d | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( 𝐴 ⊕ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) = 𝐶 ) |
| 20 | 19 | eqeq2d | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝐴 ⊕ 𝐵 ) = ( 𝐴 ⊕ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) ↔ ( 𝐴 ⊕ 𝐵 ) = 𝐶 ) ) |
| 21 | simpr2 | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → 𝐵 ∈ 𝑌 ) | |
| 22 | 1 | gaf | ⊢ ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) → ⊕ : ( 𝑋 × 𝑌 ) ⟶ 𝑌 ) |
| 23 | 22 | adantr | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ⊕ : ( 𝑋 × 𝑌 ) ⟶ 𝑌 ) |
| 24 | 23 13 14 | fovcdmd | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ∈ 𝑌 ) |
| 25 | 1 | galcan | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ∈ 𝑌 ) ) → ( ( 𝐴 ⊕ 𝐵 ) = ( 𝐴 ⊕ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) ↔ 𝐵 = ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) ) |
| 26 | 11 5 21 24 25 | syl13anc | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝐴 ⊕ 𝐵 ) = ( 𝐴 ⊕ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) ↔ 𝐵 = ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) ) |
| 27 | 20 26 | bitr3d | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝐴 ⊕ 𝐵 ) = 𝐶 ↔ 𝐵 = ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ) ) |
| 28 | eqcom | ⊢ ( 𝐵 = ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) ↔ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) = 𝐵 ) | |
| 29 | 27 28 | bitrdi | ⊢ ( ( ⊕ ∈ ( 𝐺 GrpAct 𝑌 ) ∧ ( 𝐴 ∈ 𝑋 ∧ 𝐵 ∈ 𝑌 ∧ 𝐶 ∈ 𝑌 ) ) → ( ( 𝐴 ⊕ 𝐵 ) = 𝐶 ↔ ( ( 𝑁 ‘ 𝐴 ) ⊕ 𝐶 ) = 𝐵 ) ) |