This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: An inverse in the category of sets is the converse operation. (Contributed by Mario Carneiro, 3-Jan-2017)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | setcmon.c | ⊢ 𝐶 = ( SetCat ‘ 𝑈 ) | |
| setcmon.u | ⊢ ( 𝜑 → 𝑈 ∈ 𝑉 ) | ||
| setcmon.x | ⊢ ( 𝜑 → 𝑋 ∈ 𝑈 ) | ||
| setcmon.y | ⊢ ( 𝜑 → 𝑌 ∈ 𝑈 ) | ||
| setcinv.n | ⊢ 𝑁 = ( Inv ‘ 𝐶 ) | ||
| Assertion | setcinv | ⊢ ( 𝜑 → ( 𝐹 ( 𝑋 𝑁 𝑌 ) 𝐺 ↔ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | setcmon.c | ⊢ 𝐶 = ( SetCat ‘ 𝑈 ) | |
| 2 | setcmon.u | ⊢ ( 𝜑 → 𝑈 ∈ 𝑉 ) | |
| 3 | setcmon.x | ⊢ ( 𝜑 → 𝑋 ∈ 𝑈 ) | |
| 4 | setcmon.y | ⊢ ( 𝜑 → 𝑌 ∈ 𝑈 ) | |
| 5 | setcinv.n | ⊢ 𝑁 = ( Inv ‘ 𝐶 ) | |
| 6 | eqid | ⊢ ( Base ‘ 𝐶 ) = ( Base ‘ 𝐶 ) | |
| 7 | 1 | setccat | ⊢ ( 𝑈 ∈ 𝑉 → 𝐶 ∈ Cat ) |
| 8 | 2 7 | syl | ⊢ ( 𝜑 → 𝐶 ∈ Cat ) |
| 9 | 1 2 | setcbas | ⊢ ( 𝜑 → 𝑈 = ( Base ‘ 𝐶 ) ) |
| 10 | 3 9 | eleqtrd | ⊢ ( 𝜑 → 𝑋 ∈ ( Base ‘ 𝐶 ) ) |
| 11 | 4 9 | eleqtrd | ⊢ ( 𝜑 → 𝑌 ∈ ( Base ‘ 𝐶 ) ) |
| 12 | eqid | ⊢ ( Sect ‘ 𝐶 ) = ( Sect ‘ 𝐶 ) | |
| 13 | 6 5 8 10 11 12 | isinv | ⊢ ( 𝜑 → ( 𝐹 ( 𝑋 𝑁 𝑌 ) 𝐺 ↔ ( 𝐹 ( 𝑋 ( Sect ‘ 𝐶 ) 𝑌 ) 𝐺 ∧ 𝐺 ( 𝑌 ( Sect ‘ 𝐶 ) 𝑋 ) 𝐹 ) ) ) |
| 14 | 1 2 3 4 12 | setcsect | ⊢ ( 𝜑 → ( 𝐹 ( 𝑋 ( Sect ‘ 𝐶 ) 𝑌 ) 𝐺 ↔ ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ∧ ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) ) ) |
| 15 | df-3an | ⊢ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ∧ ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) ↔ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) ) | |
| 16 | 14 15 | bitrdi | ⊢ ( 𝜑 → ( 𝐹 ( 𝑋 ( Sect ‘ 𝐶 ) 𝑌 ) 𝐺 ↔ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) ) ) |
| 17 | 1 2 4 3 12 | setcsect | ⊢ ( 𝜑 → ( 𝐺 ( 𝑌 ( Sect ‘ 𝐶 ) 𝑋 ) 𝐹 ↔ ( 𝐺 : 𝑌 ⟶ 𝑋 ∧ 𝐹 : 𝑋 ⟶ 𝑌 ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ) |
| 18 | 3ancoma | ⊢ ( ( 𝐺 : 𝑌 ⟶ 𝑋 ∧ 𝐹 : 𝑋 ⟶ 𝑌 ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ↔ ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) | |
| 19 | df-3an | ⊢ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ↔ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) | |
| 20 | 18 19 | bitri | ⊢ ( ( 𝐺 : 𝑌 ⟶ 𝑋 ∧ 𝐹 : 𝑋 ⟶ 𝑌 ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ↔ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) |
| 21 | 17 20 | bitrdi | ⊢ ( 𝜑 → ( 𝐺 ( 𝑌 ( Sect ‘ 𝐶 ) 𝑋 ) 𝐹 ↔ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ) |
| 22 | 16 21 | anbi12d | ⊢ ( 𝜑 → ( ( 𝐹 ( 𝑋 ( Sect ‘ 𝐶 ) 𝑌 ) 𝐺 ∧ 𝐺 ( 𝑌 ( Sect ‘ 𝐶 ) 𝑋 ) 𝐹 ) ↔ ( ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) ∧ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ) ) |
| 23 | anandi | ⊢ ( ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ↔ ( ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) ∧ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ) | |
| 24 | 22 23 | bitr4di | ⊢ ( 𝜑 → ( ( 𝐹 ( 𝑋 ( Sect ‘ 𝐶 ) 𝑌 ) 𝐺 ∧ 𝐺 ( 𝑌 ( Sect ‘ 𝐶 ) 𝑋 ) 𝐹 ) ↔ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ) ) |
| 25 | fcof1o | ⊢ ( ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ∧ ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) ) → ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ ◡ 𝐹 = 𝐺 ) ) | |
| 26 | eqcom | ⊢ ( ◡ 𝐹 = 𝐺 ↔ 𝐺 = ◡ 𝐹 ) | |
| 27 | 26 | anbi2i | ⊢ ( ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ ◡ 𝐹 = 𝐺 ) ↔ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) |
| 28 | 25 27 | sylib | ⊢ ( ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ∧ ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) ) → ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) |
| 29 | 28 | ancom2s | ⊢ ( ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) → ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) |
| 30 | 29 | adantl | ⊢ ( ( 𝜑 ∧ ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ) → ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) |
| 31 | f1of | ⊢ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 → 𝐹 : 𝑋 ⟶ 𝑌 ) | |
| 32 | 31 | ad2antrl | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → 𝐹 : 𝑋 ⟶ 𝑌 ) |
| 33 | f1ocnv | ⊢ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 → ◡ 𝐹 : 𝑌 –1-1-onto→ 𝑋 ) | |
| 34 | 33 | ad2antrl | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ◡ 𝐹 : 𝑌 –1-1-onto→ 𝑋 ) |
| 35 | f1oeq1 | ⊢ ( 𝐺 = ◡ 𝐹 → ( 𝐺 : 𝑌 –1-1-onto→ 𝑋 ↔ ◡ 𝐹 : 𝑌 –1-1-onto→ 𝑋 ) ) | |
| 36 | 35 | ad2antll | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( 𝐺 : 𝑌 –1-1-onto→ 𝑋 ↔ ◡ 𝐹 : 𝑌 –1-1-onto→ 𝑋 ) ) |
| 37 | 34 36 | mpbird | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → 𝐺 : 𝑌 –1-1-onto→ 𝑋 ) |
| 38 | f1of | ⊢ ( 𝐺 : 𝑌 –1-1-onto→ 𝑋 → 𝐺 : 𝑌 ⟶ 𝑋 ) | |
| 39 | 37 38 | syl | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → 𝐺 : 𝑌 ⟶ 𝑋 ) |
| 40 | simprr | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → 𝐺 = ◡ 𝐹 ) | |
| 41 | 40 | coeq1d | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( 𝐺 ∘ 𝐹 ) = ( ◡ 𝐹 ∘ 𝐹 ) ) |
| 42 | f1ococnv1 | ⊢ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 → ( ◡ 𝐹 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) | |
| 43 | 42 | ad2antrl | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( ◡ 𝐹 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) |
| 44 | 41 43 | eqtrd | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ) |
| 45 | 40 | coeq2d | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( 𝐹 ∘ 𝐺 ) = ( 𝐹 ∘ ◡ 𝐹 ) ) |
| 46 | f1ococnv2 | ⊢ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 → ( 𝐹 ∘ ◡ 𝐹 ) = ( I ↾ 𝑌 ) ) | |
| 47 | 46 | ad2antrl | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( 𝐹 ∘ ◡ 𝐹 ) = ( I ↾ 𝑌 ) ) |
| 48 | 45 47 | eqtrd | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) |
| 49 | 44 48 | jca | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) |
| 50 | 32 39 49 | jca31 | ⊢ ( ( 𝜑 ∧ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) → ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ) |
| 51 | 30 50 | impbida | ⊢ ( 𝜑 → ( ( ( 𝐹 : 𝑋 ⟶ 𝑌 ∧ 𝐺 : 𝑌 ⟶ 𝑋 ) ∧ ( ( 𝐺 ∘ 𝐹 ) = ( I ↾ 𝑋 ) ∧ ( 𝐹 ∘ 𝐺 ) = ( I ↾ 𝑌 ) ) ) ↔ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) ) |
| 52 | 13 24 51 | 3bitrd | ⊢ ( 𝜑 → ( 𝐹 ( 𝑋 𝑁 𝑌 ) 𝐺 ↔ ( 𝐹 : 𝑋 –1-1-onto→ 𝑌 ∧ 𝐺 = ◡ 𝐹 ) ) ) |