Metamath Proof Explorer


Theorem 2arymaptfo

Description: The mapping of binary (endo)functions is a function onto the set of binary operations. (Contributed by AV, 23-May-2024)

Ref Expression
Hypothesis 2arymaptf.h ⊢ H = h ∈ 2 -aryF X ⟼ x ∈ X , y ∈ X ⟼ h ⁡ 0 x 1 y
Assertion 2arymaptfo ⊢ X ∈ V → H : 2 -aryF X ⟶ onto X X × X

Proof

Step Hyp Ref Expression
1 2arymaptf.h ⊢ H = h ∈ 2 -aryF X ⟼ x ∈ X , y ∈ X ⟼ h ⁡ 0 x 1 y
2 1 2arymaptf ⊢ X ∈ V → H : 2 -aryF X ⟶ X X × X
3 elmapi ⊢ f ∈ X X × X → f : X × X ⟶ X
4 eqid ⊢ a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
5 4 2arympt ⊢ X ∈ V ∧ f : X × X ⟶ X → a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 ∈ 2 -aryF X
6 3 5 sylan2 ⊢ X ∈ V ∧ f ∈ X X × X → a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 ∈ 2 -aryF X
7 fveq2 ⊢ g = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 → H ⁡ g = H ⁡ a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
8 7 eqeq2d ⊢ g = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 → f = H ⁡ g ↔ f = H ⁡ a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
9 8 adantl ⊢ X ∈ V ∧ f ∈ X X × X ∧ g = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 → f = H ⁡ g ↔ f = H ⁡ a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
10 elmapfn ⊢ f ∈ X X × X → f Fn X × X
11 10 adantl ⊢ X ∈ V ∧ f ∈ X X × X → f Fn X × X
12 fnov ⊢ f Fn X × X ↔ f = x ∈ X , y ∈ X ⟼ x f y
13 11 12 sylib ⊢ X ∈ V ∧ f ∈ X X × X → f = x ∈ X , y ∈ X ⟼ x f y
14 simp1r ⊢ X ∈ V ∧ f ∈ X X × X ∧ h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 ∧ x ∈ X ∧ y ∈ X → h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
15 fveq1 ⊢ a = 0 x 1 y → a ⁡ 0 = 0 x 1 y ⁡ 0
16 0ne1 ⊢ 0 ≠ 1
17 c0ex ⊢ 0 ∈ V
18 vex ⊢ x ∈ V
19 17 18 fvpr1 ⊢ 0 ≠ 1 → 0 x 1 y ⁡ 0 = x
20 16 19 ax-mp ⊢ 0 x 1 y ⁡ 0 = x
21 15 20 eqtrdi ⊢ a = 0 x 1 y → a ⁡ 0 = x
22 fveq1 ⊢ a = 0 x 1 y → a ⁡ 1 = 0 x 1 y ⁡ 1
23 1ex ⊢ 1 ∈ V
24 vex ⊢ y ∈ V
25 23 24 fvpr2 ⊢ 0 ≠ 1 → 0 x 1 y ⁡ 1 = y
26 16 25 ax-mp ⊢ 0 x 1 y ⁡ 1 = y
27 22 26 eqtrdi ⊢ a = 0 x 1 y → a ⁡ 1 = y
28 21 27 oveq12d ⊢ a = 0 x 1 y → a ⁡ 0 f a ⁡ 1 = x f y
29 28 adantl ⊢ X ∈ V ∧ f ∈ X X × X ∧ h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 ∧ x ∈ X ∧ y ∈ X ∧ a = 0 x 1 y → a ⁡ 0 f a ⁡ 1 = x f y
30 17 23 pm3.2i ⊢ 0 ∈ V ∧ 1 ∈ V
31 fprg ⊢ 0 ∈ V ∧ 1 ∈ V ∧ x ∈ X ∧ y ∈ X ∧ 0 ≠ 1 → 0 x 1 y : 0 1 ⟶ x y
32 30 16 31 mp3an13 ⊢ x ∈ X ∧ y ∈ X → 0 x 1 y : 0 1 ⟶ x y
33 32 3adant1 ⊢ X ∈ V ∧ x ∈ X ∧ y ∈ X → 0 x 1 y : 0 1 ⟶ x y
34 prssi ⊢ x ∈ X ∧ y ∈ X → x y ⊆ X
35 34 3adant1 ⊢ X ∈ V ∧ x ∈ X ∧ y ∈ X → x y ⊆ X
36 33 35 fssd ⊢ X ∈ V ∧ x ∈ X ∧ y ∈ X → 0 x 1 y : 0 1 ⟶ X
37 simp1 ⊢ X ∈ V ∧ x ∈ X ∧ y ∈ X → X ∈ V
38 prex ⊢ 0 1 ∈ V
39 38 a1i ⊢ X ∈ V ∧ x ∈ X ∧ y ∈ X → 0 1 ∈ V
40 37 39 elmapd ⊢ X ∈ V ∧ x ∈ X ∧ y ∈ X → 0 x 1 y ∈ X 0 1 ↔ 0 x 1 y : 0 1 ⟶ X
41 36 40 mpbird ⊢ X ∈ V ∧ x ∈ X ∧ y ∈ X → 0 x 1 y ∈ X 0 1
42 41 3adant1r ⊢ X ∈ V ∧ f ∈ X X × X ∧ x ∈ X ∧ y ∈ X → 0 x 1 y ∈ X 0 1
43 42 3adant1r ⊢ X ∈ V ∧ f ∈ X X × X ∧ h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 ∧ x ∈ X ∧ y ∈ X → 0 x 1 y ∈ X 0 1
44 ovexd ⊢ X ∈ V ∧ f ∈ X X × X ∧ h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 ∧ x ∈ X ∧ y ∈ X → x f y ∈ V
45 nfv ⊢ Ⅎ a X ∈ V ∧ f ∈ X X × X
46 nfmpt1 ⊢ Ⅎ _ a a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
47 46 nfeq2 ⊢ Ⅎ a h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
48 45 47 nfan ⊢ Ⅎ a X ∈ V ∧ f ∈ X X × X ∧ h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
49 nfv ⊢ Ⅎ a x ∈ X
50 nfv ⊢ Ⅎ a y ∈ X
51 48 49 50 nf3an ⊢ Ⅎ a X ∈ V ∧ f ∈ X X × X ∧ h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 ∧ x ∈ X ∧ y ∈ X
52 nfcv ⊢ Ⅎ _ a 0 x 1 y
53 nfcv ⊢ Ⅎ _ a x f y
54 14 29 43 44 51 52 53 fvmptdf ⊢ X ∈ V ∧ f ∈ X X × X ∧ h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 ∧ x ∈ X ∧ y ∈ X → h ⁡ 0 x 1 y = x f y
55 54 mpoeq3dva ⊢ X ∈ V ∧ f ∈ X X × X ∧ h = a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 → x ∈ X , y ∈ X ⟼ h ⁡ 0 x 1 y = x ∈ X , y ∈ X ⟼ x f y
56 mpoexga ⊢ X ∈ V ∧ X ∈ V → x ∈ X , y ∈ X ⟼ x f y ∈ V
57 56 anidms ⊢ X ∈ V → x ∈ X , y ∈ X ⟼ x f y ∈ V
58 57 adantr ⊢ X ∈ V ∧ f ∈ X X × X → x ∈ X , y ∈ X ⟼ x f y ∈ V
59 1 55 6 58 fvmptd2 ⊢ X ∈ V ∧ f ∈ X X × X → H ⁡ a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1 = x ∈ X , y ∈ X ⟼ x f y
60 13 59 eqtr4d ⊢ X ∈ V ∧ f ∈ X X × X → f = H ⁡ a ∈ X 0 1 ⟼ a ⁡ 0 f a ⁡ 1
61 6 9 60 rspcedvd ⊢ X ∈ V ∧ f ∈ X X × X → ∃ g ∈ 2 -aryF X f = H ⁡ g
62 61 ralrimiva ⊢ X ∈ V → ∀ f ∈ X X × X ∃ g ∈ 2 -aryF X f = H ⁡ g
63 dffo3 ⊢ H : 2 -aryF X ⟶ onto X X × X ↔ H : 2 -aryF X ⟶ X X × X ∧ ∀ f ∈ X X × X ∃ g ∈ 2 -aryF X f = H ⁡ g
64 2 62 63 sylanbrc ⊢ X ∈ V → H : 2 -aryF X ⟶ onto X X × X