\(i\)を階数とする。型\(\mathord {\textnormal {\textsf {GroupStr}}}(i):\mathcal {U}(\mathord {\textnormal {\textsf {succ}}}(i))\)を次のレコード型と定義する。
- -\(\mathord {\textnormal {\textsf {Carrier}}}:\mathcal {U}(i)\)
- -\(\mathord {\textnormal {\textsf {unit}}}:\mathord {\textnormal {\textsf {Carrier}}}\)
- -\(\mathord {\textnormal {\textsf {mul}}}:\mathord {\textnormal {\textsf {Carrier}}}\to \mathord {\textnormal {\textsf {Carrier}}}\to \mathord {\textnormal {\textsf {Carrier}}}\)
- -\(\mathord {\textnormal {\textsf {inv}}}:\mathord {\textnormal {\textsf {Carrier}}}\to \mathord {\textnormal {\textsf {Carrier}}}\)
- -\(\_:\mathord {\textnormal {\textsf {IsSet}}}(G.\mathord {\textnormal {\textsf {Carrier}}})\)
- -\(\_:\prod _{x:G.\mathord {\textnormal {\textsf {Carrier}}}}G.(\mathord {\textnormal {\textsf {mul}}}(G.\mathord {\textnormal {\textsf {unit}}},x))=x\)
- -\(\_:\prod _{x:G.\mathord {\textnormal {\textsf {Carrier}}}}G.\mathord {\textnormal {\textsf {mul}}}(x,G.\mathord {\textnormal {\textsf {unit}}})=x\)
- -\(\_:\prod _{x_{1},x_{2},x_{3}:G.\mathord {\textnormal {\textsf {Carrier}}}}G.\mathord {\textnormal {\textsf {mul}}}(G.\mathord {\textnormal {\textsf {mul}}}(x_{1},x_{2}),x_{3})=G.\mathord {\textnormal {\textsf {mul}}}(x_{1},G.\mathord {\textnormal {\textsf {mul}}}(x_{3},x_{3}))\)
- -\(\_:\prod _{x:G.\mathord {\textnormal {\textsf {Carrier}}}}G.\mathord {\textnormal {\textsf {mul}}}(G.\mathord {\textnormal {\textsf {inv}}}(x),x)=G.\mathord {\textnormal {\textsf {unit}}}\)
- -\(\_:\prod _{x:G.\mathord {\textnormal {\textsf {Carrier}}}}G.\mathord {\textnormal {\textsf {mul}}}(x,G.\mathord {\textnormal {\textsf {inv}}}(x))=G.\mathord {\textnormal {\textsf {unit}}}\)
- -\(f:(\mathord {\textnormal {\textsf {proj}}}_{1}(A)).\mathord {\textnormal {\textsf {Carrier}}}\simeq (\mathord {\textnormal {\textsf {proj}}}_{1}(B)).\mathord {\textnormal {\textsf {Carrier}}}\)
- -\(\_:f((\mathord {\textnormal {\textsf {proj}}}_{1}(A)).\mathord {\textnormal {\textsf {unit}}})=(\mathord {\textnormal {\textsf {proj}}}_{1}(B)).\mathord {\textnormal {\textsf {unit}}}\)
- -\(\_:\prod _{x_{1},x_{2}}f((\mathord {\textnormal {\textsf {proj}}}_{1}(A)).\mathord {\textnormal {\textsf {mul}}}(x_{1},x_{2}))=(\mathord {\textnormal {\textsf {proj}}}_{1}(B)).\mathord {\textnormal {\textsf {mul}}}(f(x_{1}),f(x_{2}))\)
- -\(\_:\prod _{x}f((\mathord {\textnormal {\textsf {proj}}}_{1}(A)).\mathord {\textnormal {\textsf {inv}}}(x))=(\mathord {\textnormal {\textsf {proj}}}_{1}(B)).\mathord {\textnormal {\textsf {inv}}}(f(x))\)
ちなみに、群の間の乗法を保つ関数は単位元と逆元も保つことを示せるので、群同型の型は次のレコード型とも同値である。
- -\(f:(\mathord {\textnormal {\textsf {proj}}}_{1}(A)).\mathord {\textnormal {\textsf {Carrier}}}\simeq (\mathord {\textnormal {\textsf {proj}}}_{1}(B)).\mathord {\textnormal {\textsf {Carrier}}}\)
- -\(\_:\prod _{x_{1},x_{2}}f((\mathord {\textnormal {\textsf {proj}}}_{1}(A)).\mathord {\textnormal {\textsf {mul}}}(x_{1},x_{2}))=(\mathord {\textnormal {\textsf {proj}}}_{1}(B)).\mathord {\textnormal {\textsf {mul}}}(f(x_{1}),f(x_{2}))\)