さらなる例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/07/06 20:05 UTC 版)
リー群でない群、したがって多様体の構造を持たない群の中で、例は p 進整数のなす加法群 Zp やそれから構成されるものである。実は任意の射有限群はコンパクト群である。これはガロワ群がコンパクト群であることを意味し、無限次の代数拡大の理論にとって基本的な事実である。 ポントリャーギン双対性により可換コンパクト群の例がたくさん与えられる。これらは可換離散群と双対である。
※この「さらなる例」の解説は、「コンパクト群」の解説の一部です。
「さらなる例」を含む「コンパクト群」の記事については、「コンパクト群」の概要を参照ください。
さらなる例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/01 16:28 UTC 版)
体 k 上の有限次元ベクトル空間のアーベル圏では、2つのベクトル空間が同値であることと、それらが同じ次元であることは同値であり、従って、ベクトル空間 V に対し同値類は K 0 ( V e c t f i n ) {\displaystyle K_{0}(\mathrm {Vect} _{\mathrm {fin} })} の中で [ V ] = [ k dim ( V ) ] {\displaystyle [V]=[k^{{\mbox{dim}}(V)}]} である。さらに、完全系列 0 → k l → k m → k n → 0 {\displaystyle 0\to k^{l}\to k^{m}\to k^{n}\to 0} に対して、m = l + n であるので、 [ k l + n ] = [ k l ] + [ k n ] = ( l + n ) [ k ] {\displaystyle [k^{l+n}]=[k^{l}]+[k^{n}]=(l+n)[k]} となる。従って、 [ V ] = dim ( V ) [ k ] {\displaystyle [V]=\operatorname {dim} (V)[k]} に対し、グロタンディーク群 K 0 ( V e c t f i n ) {\displaystyle K_{0}(\mathrm {Vect} _{\mathrm {fin} })} は Z と同型であり、[k] により生成される。結局、有限次元ベクトル空間 V* の鎖複体に対し、 [ V ∗ ] = χ ( V ∗ ) [ k ] {\displaystyle [V^{*}]=\chi (V^{*})[k]} であり、ここに χ {\displaystyle \chi } は、 χ ( V ∗ ) = ∑ i ( − 1 ) i dim V = ∑ i ( − 1 ) i dim H i ( V ∗ ) {\displaystyle \chi (V^{*})=\sum _{i}(-1)^{i}\operatorname {dim} V=\sum _{i}(-1)^{i}\operatorname {dim} H^{i}(V^{*})} により定義される標準的オイラー特性数である。 環付き空間 ( X , O X ) {\displaystyle (X,{\mathcal {O}}_{X})} に対して、X 上のすべての局所自由層からなる圏 A {\displaystyle {\mathcal {A}}} を考えることができる。すると K0(X) はこの完全圏のグロタンディーク群として定義され、再びこれは関手を与える。 環付き空間 ( X , O X ) {\displaystyle (X,{\mathcal {O}}_{X})} に対し、圏 A {\displaystyle {\mathcal {A}}} を X 上のすべての連接層の圏として再定義する。このことは、ネター環 R 上の有限生成加群の圏である A {\displaystyle {\mathcal {A}}} の特別の場合(環付き空間がアフィンスキームの場合)を含んでいる。どちらの場合も、 A {\displaystyle {\mathcal {A}}} はアーベル圏であり、前提的に、完全圏であるので、上の構成が適用される。 R がある体上の有限次元代数である場合には、(有限生成加群の短完全列によって定義された)グロタンディーク群 G0(R) と(有限生成射影加群の直和によって定義された) K0(R) は一致する。実は、これらの群は単純 R-加群の同型類によって生成された自由アーベル群に同型である。 環や環付き空間には他にもグロタンディーク群 G0 が存在し、有益なこともある。圏が環付き空間のすべての準連接層の圏として選択された場合は、アフィンスキームでのある環 R 上の全ての加群の圏へ還元される。G0 は函手ではないが、しかし、重要な情報を持っている。 (有界)導来圏は三角圏であるので、導来圏のグロタンディーク群が存在する。このことは、たとえば表現論に応用を持っている。非有界な圏に対しては、グロタンディーク群は消滅する。複素有限次元の正の次数付き代数の導来圏に対し、非有界な導来圏の中に、そのグロタンディーク群が q-進完備な A のグロタンディーク群を含む部分圏が存在する。
※この「さらなる例」の解説は、「グロタンディーク群」の解説の一部です。
「さらなる例」を含む「グロタンディーク群」の記事については、「グロタンディーク群」の概要を参照ください。
さらなる例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/26 23:57 UTC 版)
以下のコードにある関数 f も g もリエントラントではない。 int g_var = 1;int f(){ g_var = g_var + 2; return g_var;}int g(){ return f() + 2;} 上記のコードで、f はグローバル変数 g_var に依存している。したがって、2つのプロセス(スレッド)が f を実行すると、g_var に同時並行的にアクセスし、結果はタイミングに依存することになる。したがって、f はリエントラントではない。その f を呼び出している g もリエントラントではない。 これらを若干変更したリエントラントである版を以下に示す: int f(int i){ return i + 2;}int g(int i){ return f(i) + 2;} 新しい版では、グローバル変数 g_var は使われていない。引数を渡して、それに基づいて処理を行って結果を返す。共有される可能性のあるオブジェクトにはアクセスしないようになっている。その代わり、呼出し側が前回の戻り値を引数として渡してやらなければならない。このように、リエントラントなサブルーチンでは、必要な静的データは呼出し側が管理しなければならない。 次のPthreadsを使ったC言語のコードでは、関数functionはスレッドセーフだが、リエントラント(非同期シグナル安全)ではない。Pthreadsのミューテックス関数がリエントラント(非同期シグナル安全)であることは保証されないからである。 void function(pthread_mutex_t mutex){ pthread_mutex_lock(mutex); /* ... */ /* 何らかの処理 */ /* ... */ pthread_mutex_unlock(mutex);} この function は複数のスレッドから呼び出されても全く問題はない。しかし、pthread_mutex_init()によるミューテックスの初期化時にPTHREAD_MUTEX_NORMALを設定した属性を使用していて、リエントラントな割り込みハンドラがこの関数を呼び出す場合、2つ目の割り込みがこの関数実行中に発生すると、二度目の呼び出しはミューテックスを獲得できず、永久に停止(デッドロック)する。割り込みサービスでは他の割り込みをディセーブルするので、システム全体がハングアップすることになる。 デッドロックを回避するには、ミューテックス初期化時に、同一スレッドによる複数回のロックを許可するPTHREAD_MUTEX_RECURSIVEを設定した属性を使用する必要がある。ただし、PTHREAD_MUTEX_RECURSIVEを設定したからといって、pthread_mutex_lock()およびpthread_mutex_unlock()が非同期シグナル安全になるとは限らない。なお、ミューテックス初期化時にPTHREAD_MUTEX_INITIALIZERを使用すると、PTHREAD_MUTEX_DEFAULTを設定した既定の属性が使用されることになり、デッドロックに関しては未定義動作となる。 一方、Microsoft WindowsのEnterCriticalSection()関数は、同一スレッドからの複数回呼び出しはブロッキングなしで実行される。ただし非同期シグナル安全性や再入可能性に関する言及や保証はない。
※この「さらなる例」の解説は、「リエントラント」の解説の一部です。
「さらなる例」を含む「リエントラント」の記事については、「リエントラント」の概要を参照ください。
- さらなる例のページへのリンク