Metamath Proof Explorer


Theorem ackbij2

Description: The Ackermann bijection, part 2: hereditarily finite sets can be represented by recursive binary notation. (Contributed by Stefan O'Rear, 18-Nov-2014) Restate using the defined HF symbol. (Revised by Eric Schmidt, 24-Sep-2026)

Ref Expression
Hypotheses ackbij.f ⊢ F = x ∈ 𝒫 ω ∩ Fin ⟼ card ⁡ ⋃ y ∈ x y × 𝒫 y
ackbij.g ⊢ G = x ∈ V ⟼ y ∈ 𝒫 dom ⁡ x ⟼ F ⁡ x y
ackbij.h ⊢ H = ⋃ rec ⁡ G ∅ ω
Assertion ackbij2 Could not format assertion : No typesetting found for |- H : HF -1-1-onto-> _om with typecode |-

Proof

Step Hyp Ref Expression
1 ackbij.f ⊢ F = x ∈ 𝒫 ω ∩ Fin ⟼ card ⁡ ⋃ y ∈ x y × 𝒫 y
2 ackbij.g ⊢ G = x ∈ V ⟼ y ∈ 𝒫 dom ⁡ x ⟼ F ⁡ x y
3 ackbij.h ⊢ H = ⋃ rec ⁡ G ∅ ω
4 fveq2 ⊢ a = b → rec ⁡ G ∅ ⁡ a = rec ⁡ G ∅ ⁡ b
5 fvex ⊢ rec ⁡ G ∅ ⁡ a ∈ V
6 4 5 f1iun ⊢ ∀ a ∈ ω rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 ω ∧ ∀ b ∈ ω rec ⁡ G ∅ ⁡ a ⊆ rec ⁡ G ∅ ⁡ b ∨ rec ⁡ G ∅ ⁡ b ⊆ rec ⁡ G ∅ ⁡ a → ⋃ a ∈ ω rec ⁡ G ∅ ⁡ a : ⋃ a ∈ ω R1 ⁡ a ⟶ 1-1 ω
7 1 2 ackbij2lem2 ⊢ a ∈ ω → rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 onto card ⁡ R1 ⁡ a
8 f1of1 ⊢ rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 onto card ⁡ R1 ⁡ a → rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 card ⁡ R1 ⁡ a
9 7 8 syl ⊢ a ∈ ω → rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 card ⁡ R1 ⁡ a
10 ordom ⊢ Ord ⁡ ω
11 r1fin ⊢ a ∈ ω → R1 ⁡ a ∈ Fin
12 ficardom ⊢ R1 ⁡ a ∈ Fin → card ⁡ R1 ⁡ a ∈ ω
13 11 12 syl ⊢ a ∈ ω → card ⁡ R1 ⁡ a ∈ ω
14 ordelss ⊢ Ord ⁡ ω ∧ card ⁡ R1 ⁡ a ∈ ω → card ⁡ R1 ⁡ a ⊆ ω
15 10 13 14 sylancr ⊢ a ∈ ω → card ⁡ R1 ⁡ a ⊆ ω
16 f1ss ⊢ rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 card ⁡ R1 ⁡ a ∧ card ⁡ R1 ⁡ a ⊆ ω → rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 ω
17 9 15 16 syl2anc ⊢ a ∈ ω → rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 ω
18 nnord ⊢ a ∈ ω → Ord ⁡ a
19 nnord ⊢ b ∈ ω → Ord ⁡ b
20 ordtri2or2 ⊢ Ord ⁡ a ∧ Ord ⁡ b → a ⊆ b ∨ b ⊆ a
21 18 19 20 syl2an ⊢ a ∈ ω ∧ b ∈ ω → a ⊆ b ∨ b ⊆ a
22 1 2 ackbij2lem4 ⊢ b ∈ ω ∧ a ∈ ω ∧ a ⊆ b → rec ⁡ G ∅ ⁡ a ⊆ rec ⁡ G ∅ ⁡ b
23 22 ex ⊢ b ∈ ω ∧ a ∈ ω → a ⊆ b → rec ⁡ G ∅ ⁡ a ⊆ rec ⁡ G ∅ ⁡ b
24 23 ancoms ⊢ a ∈ ω ∧ b ∈ ω → a ⊆ b → rec ⁡ G ∅ ⁡ a ⊆ rec ⁡ G ∅ ⁡ b
25 1 2 ackbij2lem4 ⊢ a ∈ ω ∧ b ∈ ω ∧ b ⊆ a → rec ⁡ G ∅ ⁡ b ⊆ rec ⁡ G ∅ ⁡ a
26 25 ex ⊢ a ∈ ω ∧ b ∈ ω → b ⊆ a → rec ⁡ G ∅ ⁡ b ⊆ rec ⁡ G ∅ ⁡ a
27 24 26 orim12d ⊢ a ∈ ω ∧ b ∈ ω → a ⊆ b ∨ b ⊆ a → rec ⁡ G ∅ ⁡ a ⊆ rec ⁡ G ∅ ⁡ b ∨ rec ⁡ G ∅ ⁡ b ⊆ rec ⁡ G ∅ ⁡ a
28 21 27 mpd ⊢ a ∈ ω ∧ b ∈ ω → rec ⁡ G ∅ ⁡ a ⊆ rec ⁡ G ∅ ⁡ b ∨ rec ⁡ G ∅ ⁡ b ⊆ rec ⁡ G ∅ ⁡ a
29 28 ralrimiva ⊢ a ∈ ω → ∀ b ∈ ω rec ⁡ G ∅ ⁡ a ⊆ rec ⁡ G ∅ ⁡ b ∨ rec ⁡ G ∅ ⁡ b ⊆ rec ⁡ G ∅ ⁡ a
30 17 29 jca ⊢ a ∈ ω → rec ⁡ G ∅ ⁡ a : R1 ⁡ a ⟶ 1-1 ω ∧ ∀ b ∈ ω rec ⁡ G ∅ ⁡ a ⊆ rec ⁡ G ∅ ⁡ b ∨ rec ⁡ G ∅ ⁡ b ⊆ rec ⁡ G ∅ ⁡ a
31 6 30 mprg ⊢ ⋃ a ∈ ω rec ⁡ G ∅ ⁡ a : ⋃ a ∈ ω R1 ⁡ a ⟶ 1-1 ω
32 rdgfun ⊢ Fun ⁡ rec ⁡ G ∅
33 funiunfv ⊢ Fun ⁡ rec ⁡ G ∅ → ⋃ a ∈ ω rec ⁡ G ∅ ⁡ a = ⋃ rec ⁡ G ∅ ω
34 33 eqcomd ⊢ Fun ⁡ rec ⁡ G ∅ → ⋃ rec ⁡ G ∅ ω = ⋃ a ∈ ω rec ⁡ G ∅ ⁡ a
35 f1eq1 Could not format ( U. ( rec ( G , (/) ) " _om ) = U_ a e. _om ( rec ( G , (/) ) ` a ) -> ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : HF -1-1-> _om ) ) : No typesetting found for |- ( U. ( rec ( G , (/) ) " _om ) = U_ a e. _om ( rec ( G , (/) ) ` a ) -> ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : HF -1-1-> _om ) ) with typecode |-
36 32 34 35 mp2b Could not format ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : HF -1-1-> _om ) : No typesetting found for |- ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : HF -1-1-> _om ) with typecode |-
37 r1fun ⊢ Fun ⁡ R1
38 funiunfv ⊢ Fun ⁡ R1 → ⋃ a ∈ ω R1 ⁡ a = ⋃ R1 ω
39 df-hf Could not format HF = U. ( R1 " _om ) : No typesetting found for |- HF = U. ( R1 " _om ) with typecode |-
40 38 39 eqtr4di Could not format ( Fun R1 -> U_ a e. _om ( R1 ` a ) = HF ) : No typesetting found for |- ( Fun R1 -> U_ a e. _om ( R1 ` a ) = HF ) with typecode |-
41 f1eq2 Could not format ( U_ a e. _om ( R1 ` a ) = HF -> ( U_ a e. _om ( rec ( G , (/) ) ` a ) : U_ a e. _om ( R1 ` a ) -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : HF -1-1-> _om ) ) : No typesetting found for |- ( U_ a e. _om ( R1 ` a ) = HF -> ( U_ a e. _om ( rec ( G , (/) ) ` a ) : U_ a e. _om ( R1 ` a ) -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : HF -1-1-> _om ) ) with typecode |-
42 37 40 41 mp2b Could not format ( U_ a e. _om ( rec ( G , (/) ) ` a ) : U_ a e. _om ( R1 ` a ) -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : HF -1-1-> _om ) : No typesetting found for |- ( U_ a e. _om ( rec ( G , (/) ) ` a ) : U_ a e. _om ( R1 ` a ) -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : HF -1-1-> _om ) with typecode |-
43 36 42 bitr4i Could not format ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : U_ a e. _om ( R1 ` a ) -1-1-> _om ) : No typesetting found for |- ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om <-> U_ a e. _om ( rec ( G , (/) ) ` a ) : U_ a e. _om ( R1 ` a ) -1-1-> _om ) with typecode |-
44 31 43 mpbir Could not format U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om : No typesetting found for |- U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om with typecode |-
45 rnuni ⊢ ran ⁡ ⋃ rec ⁡ G ∅ ω = ⋃ a ∈ rec ⁡ G ∅ ω ran ⁡ a
46 eliun ⊢ b ∈ ⋃ a ∈ rec ⁡ G ∅ ω ran ⁡ a ↔ ∃ a ∈ rec ⁡ G ∅ ω b ∈ ran ⁡ a
47 df-rex ⊢ ∃ a ∈ rec ⁡ G ∅ ω b ∈ ran ⁡ a ↔ ∃ a a ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ a
48 funfn ⊢ Fun ⁡ rec ⁡ G ∅ ↔ rec ⁡ G ∅ Fn dom ⁡ rec ⁡ G ∅
49 32 48 mpbi ⊢ rec ⁡ G ∅ Fn dom ⁡ rec ⁡ G ∅
50 rdgdmlim ⊢ Lim ⁡ dom ⁡ rec ⁡ G ∅
51 limomss ⊢ Lim ⁡ dom ⁡ rec ⁡ G ∅ → ω ⊆ dom ⁡ rec ⁡ G ∅
52 50 51 ax-mp ⊢ ω ⊆ dom ⁡ rec ⁡ G ∅
53 fvelimab ⊢ rec ⁡ G ∅ Fn dom ⁡ rec ⁡ G ∅ ∧ ω ⊆ dom ⁡ rec ⁡ G ∅ → a ∈ rec ⁡ G ∅ ω ↔ ∃ c ∈ ω rec ⁡ G ∅ ⁡ c = a
54 49 52 53 mp2an ⊢ a ∈ rec ⁡ G ∅ ω ↔ ∃ c ∈ ω rec ⁡ G ∅ ⁡ c = a
55 1 2 ackbij2lem2 ⊢ c ∈ ω → rec ⁡ G ∅ ⁡ c : R1 ⁡ c ⟶ 1-1 onto card ⁡ R1 ⁡ c
56 f1ofo ⊢ rec ⁡ G ∅ ⁡ c : R1 ⁡ c ⟶ 1-1 onto card ⁡ R1 ⁡ c → rec ⁡ G ∅ ⁡ c : R1 ⁡ c ⟶ onto card ⁡ R1 ⁡ c
57 forn ⊢ rec ⁡ G ∅ ⁡ c : R1 ⁡ c ⟶ onto card ⁡ R1 ⁡ c → ran ⁡ rec ⁡ G ∅ ⁡ c = card ⁡ R1 ⁡ c
58 55 56 57 3syl ⊢ c ∈ ω → ran ⁡ rec ⁡ G ∅ ⁡ c = card ⁡ R1 ⁡ c
59 r1fin ⊢ c ∈ ω → R1 ⁡ c ∈ Fin
60 ficardom ⊢ R1 ⁡ c ∈ Fin → card ⁡ R1 ⁡ c ∈ ω
61 59 60 syl ⊢ c ∈ ω → card ⁡ R1 ⁡ c ∈ ω
62 ordelss ⊢ Ord ⁡ ω ∧ card ⁡ R1 ⁡ c ∈ ω → card ⁡ R1 ⁡ c ⊆ ω
63 10 61 62 sylancr ⊢ c ∈ ω → card ⁡ R1 ⁡ c ⊆ ω
64 58 63 eqsstrd ⊢ c ∈ ω → ran ⁡ rec ⁡ G ∅ ⁡ c ⊆ ω
65 rneq ⊢ rec ⁡ G ∅ ⁡ c = a → ran ⁡ rec ⁡ G ∅ ⁡ c = ran ⁡ a
66 65 sseq1d ⊢ rec ⁡ G ∅ ⁡ c = a → ran ⁡ rec ⁡ G ∅ ⁡ c ⊆ ω ↔ ran ⁡ a ⊆ ω
67 64 66 syl5ibcom ⊢ c ∈ ω → rec ⁡ G ∅ ⁡ c = a → ran ⁡ a ⊆ ω
68 67 rexlimiv ⊢ ∃ c ∈ ω rec ⁡ G ∅ ⁡ c = a → ran ⁡ a ⊆ ω
69 54 68 sylbi ⊢ a ∈ rec ⁡ G ∅ ω → ran ⁡ a ⊆ ω
70 69 sselda ⊢ a ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ a → b ∈ ω
71 70 exlimiv ⊢ ∃ a a ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ a → b ∈ ω
72 peano2 ⊢ b ∈ ω → suc ⁡ b ∈ ω
73 fnfvima ⊢ rec ⁡ G ∅ Fn dom ⁡ rec ⁡ G ∅ ∧ ω ⊆ dom ⁡ rec ⁡ G ∅ ∧ suc ⁡ b ∈ ω → rec ⁡ G ∅ ⁡ suc ⁡ b ∈ rec ⁡ G ∅ ω
74 49 52 72 73 mp3an12i ⊢ b ∈ ω → rec ⁡ G ∅ ⁡ suc ⁡ b ∈ rec ⁡ G ∅ ω
75 vex ⊢ b ∈ V
76 cardnn ⊢ suc ⁡ b ∈ ω → card ⁡ suc ⁡ b = suc ⁡ b
77 fvex ⊢ R1 ⁡ suc ⁡ b ∈ V
78 r1dmlim ⊢ Lim ⁡ dom ⁡ R1
79 limomss ⊢ Lim ⁡ dom ⁡ R1 → ω ⊆ dom ⁡ R1
80 78 79 ax-mp ⊢ ω ⊆ dom ⁡ R1
81 80 sseli ⊢ suc ⁡ b ∈ ω → suc ⁡ b ∈ dom ⁡ R1
82 onssr1 ⊢ suc ⁡ b ∈ dom ⁡ R1 → suc ⁡ b ⊆ R1 ⁡ suc ⁡ b
83 81 82 syl ⊢ suc ⁡ b ∈ ω → suc ⁡ b ⊆ R1 ⁡ suc ⁡ b
84 ssdomg ⊢ R1 ⁡ suc ⁡ b ∈ V → suc ⁡ b ⊆ R1 ⁡ suc ⁡ b → suc ⁡ b ≼ R1 ⁡ suc ⁡ b
85 77 83 84 mpsyl ⊢ suc ⁡ b ∈ ω → suc ⁡ b ≼ R1 ⁡ suc ⁡ b
86 nnon ⊢ suc ⁡ b ∈ ω → suc ⁡ b ∈ On
87 onenon ⊢ suc ⁡ b ∈ On → suc ⁡ b ∈ dom ⁡ card
88 86 87 syl ⊢ suc ⁡ b ∈ ω → suc ⁡ b ∈ dom ⁡ card
89 r1fin ⊢ suc ⁡ b ∈ ω → R1 ⁡ suc ⁡ b ∈ Fin
90 finnum ⊢ R1 ⁡ suc ⁡ b ∈ Fin → R1 ⁡ suc ⁡ b ∈ dom ⁡ card
91 89 90 syl ⊢ suc ⁡ b ∈ ω → R1 ⁡ suc ⁡ b ∈ dom ⁡ card
92 carddom2 ⊢ suc ⁡ b ∈ dom ⁡ card ∧ R1 ⁡ suc ⁡ b ∈ dom ⁡ card → card ⁡ suc ⁡ b ⊆ card ⁡ R1 ⁡ suc ⁡ b ↔ suc ⁡ b ≼ R1 ⁡ suc ⁡ b
93 88 91 92 syl2anc ⊢ suc ⁡ b ∈ ω → card ⁡ suc ⁡ b ⊆ card ⁡ R1 ⁡ suc ⁡ b ↔ suc ⁡ b ≼ R1 ⁡ suc ⁡ b
94 85 93 mpbird ⊢ suc ⁡ b ∈ ω → card ⁡ suc ⁡ b ⊆ card ⁡ R1 ⁡ suc ⁡ b
95 76 94 eqsstrrd ⊢ suc ⁡ b ∈ ω → suc ⁡ b ⊆ card ⁡ R1 ⁡ suc ⁡ b
96 72 95 syl ⊢ b ∈ ω → suc ⁡ b ⊆ card ⁡ R1 ⁡ suc ⁡ b
97 sucssel ⊢ b ∈ V → suc ⁡ b ⊆ card ⁡ R1 ⁡ suc ⁡ b → b ∈ card ⁡ R1 ⁡ suc ⁡ b
98 75 96 97 mpsyl ⊢ b ∈ ω → b ∈ card ⁡ R1 ⁡ suc ⁡ b
99 1 2 ackbij2lem2 ⊢ suc ⁡ b ∈ ω → rec ⁡ G ∅ ⁡ suc ⁡ b : R1 ⁡ suc ⁡ b ⟶ 1-1 onto card ⁡ R1 ⁡ suc ⁡ b
100 f1ofo ⊢ rec ⁡ G ∅ ⁡ suc ⁡ b : R1 ⁡ suc ⁡ b ⟶ 1-1 onto card ⁡ R1 ⁡ suc ⁡ b → rec ⁡ G ∅ ⁡ suc ⁡ b : R1 ⁡ suc ⁡ b ⟶ onto card ⁡ R1 ⁡ suc ⁡ b
101 forn ⊢ rec ⁡ G ∅ ⁡ suc ⁡ b : R1 ⁡ suc ⁡ b ⟶ onto card ⁡ R1 ⁡ suc ⁡ b → ran ⁡ rec ⁡ G ∅ ⁡ suc ⁡ b = card ⁡ R1 ⁡ suc ⁡ b
102 72 99 100 101 4syl ⊢ b ∈ ω → ran ⁡ rec ⁡ G ∅ ⁡ suc ⁡ b = card ⁡ R1 ⁡ suc ⁡ b
103 98 102 eleqtrrd ⊢ b ∈ ω → b ∈ ran ⁡ rec ⁡ G ∅ ⁡ suc ⁡ b
104 fvex ⊢ rec ⁡ G ∅ ⁡ suc ⁡ b ∈ V
105 eleq1 ⊢ a = rec ⁡ G ∅ ⁡ suc ⁡ b → a ∈ rec ⁡ G ∅ ω ↔ rec ⁡ G ∅ ⁡ suc ⁡ b ∈ rec ⁡ G ∅ ω
106 rneq ⊢ a = rec ⁡ G ∅ ⁡ suc ⁡ b → ran ⁡ a = ran ⁡ rec ⁡ G ∅ ⁡ suc ⁡ b
107 106 eleq2d ⊢ a = rec ⁡ G ∅ ⁡ suc ⁡ b → b ∈ ran ⁡ a ↔ b ∈ ran ⁡ rec ⁡ G ∅ ⁡ suc ⁡ b
108 105 107 anbi12d ⊢ a = rec ⁡ G ∅ ⁡ suc ⁡ b → a ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ a ↔ rec ⁡ G ∅ ⁡ suc ⁡ b ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ rec ⁡ G ∅ ⁡ suc ⁡ b
109 104 108 spcev ⊢ rec ⁡ G ∅ ⁡ suc ⁡ b ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ rec ⁡ G ∅ ⁡ suc ⁡ b → ∃ a a ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ a
110 74 103 109 syl2anc ⊢ b ∈ ω → ∃ a a ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ a
111 71 110 impbii ⊢ ∃ a a ∈ rec ⁡ G ∅ ω ∧ b ∈ ran ⁡ a ↔ b ∈ ω
112 46 47 111 3bitri ⊢ b ∈ ⋃ a ∈ rec ⁡ G ∅ ω ran ⁡ a ↔ b ∈ ω
113 112 eqriv ⊢ ⋃ a ∈ rec ⁡ G ∅ ω ran ⁡ a = ω
114 45 113 eqtri ⊢ ran ⁡ ⋃ rec ⁡ G ∅ ω = ω
115 dff1o5 Could not format ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-onto-> _om <-> ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om /\ ran U. ( rec ( G , (/) ) " _om ) = _om ) ) : No typesetting found for |- ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-onto-> _om <-> ( U. ( rec ( G , (/) ) " _om ) : HF -1-1-> _om /\ ran U. ( rec ( G , (/) ) " _om ) = _om ) ) with typecode |-
116 44 114 115 mpbir2an Could not format U. ( rec ( G , (/) ) " _om ) : HF -1-1-onto-> _om : No typesetting found for |- U. ( rec ( G , (/) ) " _om ) : HF -1-1-onto-> _om with typecode |-
117 f1oeq1 Could not format ( H = U. ( rec ( G , (/) ) " _om ) -> ( H : HF -1-1-onto-> _om <-> U. ( rec ( G , (/) ) " _om ) : HF -1-1-onto-> _om ) ) : No typesetting found for |- ( H = U. ( rec ( G , (/) ) " _om ) -> ( H : HF -1-1-onto-> _om <-> U. ( rec ( G , (/) ) " _om ) : HF -1-1-onto-> _om ) ) with typecode |-
118 3 117 ax-mp Could not format ( H : HF -1-1-onto-> _om <-> U. ( rec ( G , (/) ) " _om ) : HF -1-1-onto-> _om ) : No typesetting found for |- ( H : HF -1-1-onto-> _om <-> U. ( rec ( G , (/) ) " _om ) : HF -1-1-onto-> _om ) with typecode |-
119 116 118 mpbir Could not format H : HF -1-1-onto-> _om : No typesetting found for |- H : HF -1-1-onto-> _om with typecode |-