Mathematical notation
数学において、ケネス・E・アイバーソンにちなんで名付けられたアイバーソン括弧は、クロネッカーのデルタ(命名規則x = yのアイバーソン括弧)を一般化した表記法である。これは、任意の命題をその命題に含まれる自由変数の関数に写像する。この関数は、命題が真となる変数の値に対して値1をとり、そうでない場合は値0をとるように定義される。これは通常、命題を角括弧で囲むことで示される。言い換えれば、ある命題のアイバーソン括弧は、その命題が真となる値の集合の指示関数である。![{\displaystyle [P]={\begin{cases}1&{\text{P{\text{が真の場合}\\0&{\text{それ以外の場合}\end{cases}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
アイバーソン括弧は、総和の指数に制限なく、大文字シグマ記法の使用を可能にします。つまり、整数 の任意の特性について、制限された和を制限のない形式 に書き直すことができます。この規則により、アイバーソン括弧が0となるkの値に対して を定義する必要はありません。つまり、 が定義されているかどうかに関わらず、加数は必ず 0 になります。


![{\displaystyle \sum _{k}f(k)\cdot [P(k)]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)

![{\displaystyle f(k)[{\textbf {false}}]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)

この表記法はもともとケネス・E・アイバーソンがプログラミング言語APLで導入したものの[1] [2]、括弧で囲まれた単一の関係演算子に制限されていました。一方、任意のステートメントへの一般化、角括弧への表記法の制限、および合計への適用は、括弧で囲まれた論理式の曖昧さを避けるためにドナルド・クヌースによって提唱されました。 [3]
プロパティ
アイバーソン括弧を含む算術、論理式、集合演算の間には直接的な対応関係があります。例えば、AとBを集合とし、とを整数の性質とすると、

![{\displaystyle {\begin{aligned}[][\,P\land Q\,]~&=~[\,P\,]\,[\,Q\,]~~;\\[1em][\,P\lor Q\,]~&=~[\,P\,]\;+\;[\,Q\,]\;-\;[\,P\,]\,[\,Q\,]~~;\\[1em][\,\neg \,P\,]~&=~1-[\,P\,]~~;\\[1em][\,P{\scriptstyle {\mathsf {\text{ XOR }}}}Q\,]~&=~{\Bigl |}\,[\,P\,]\;-\;[\,Q\,]\,{\Bigr |}~~;\\[1em][\,k\in A\,]\;+\;[\,k\in B\,]~&=~[\,k\in A\cup B\,]\;+\;[\,k\in A\cap B\,]~~;\\[1em][\,x\in A\cap B\,]~&=~[\,x\in A\,]\,[\,x\in B\,]~~;\\[1em][\,\forall \,m\ :\,P(k,m)\,]~&=~\prod _{m}\,[\,P(k,m)\,]~~;\\[1em][\,\exists \,m\ :\,P(k,m)\,]~&=~\min {\Bigl \{}\;1\,,\,\sum _{m}\,[\,P(k,m)\,]\;{\Bigr \}}=1\;-\;\prod _{m}\,[\,\neg \,P(k,m)\,]~~;\\[1em]\#{\Bigl \{}\;m\,{\Big |}\,P(k,m)\;{\Bigr \}}~&=~\sum _{m}\,[\,P(k,m)\,]~~.\end{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
例
この表記法を使用すると、合計 (または積分) の境界条件を別の要素として加数に移動できるため、合計演算子の周囲のスペースが解放されますが、さらに重要なことは、合計演算子を代数的に操作できることです。
二重カウントルール
アイバーソン括弧を使用して、よく知られた合計操作規則を機械的に導出します。![{\displaystyle {\begin{aligned}\sum _{k\in A}f(k)+\sum _{k\in B}f(k)&=\sum _{k}f(k)\,[k\in A]+\sum _{k}f(k)\,[k\in B]\\&=\sum _{k}f(k)\,([k\in A]+[k\in B])\\&=\sum _{k}f(k)\,([k\in A\cup B]+[k\in A\cap B])\\&=\sum _{k\in A\cup B}f(k)\ +\sum _{k\in A\cap B}f(k).\end{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
合計交換
よく知られている規則も同様に簡単に導き出されます。
![{\displaystyle {\begin{aligned}\sum _{j=1}^{n}\,\sum _{k=1}^{j}f(j,k)&=\sum _{j,k}f(j,k)\,[1\leq j\leq n]\,[1\leq k\leq j]\\&=\sum _{j,k}f(j,k)\,[1\leq k\leq j\leq n]\\&=\sum _{j,k}f(j,k)\,[1\leq k\leq n]\,[k\leq j\leq n]\\&=\sum _{k=1}^{n}\,\sum _{j=k}^{n}f(j,k).\end{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
カウント
例えば、nまでの正の整数でnと互いに素な整数の数を数えるオイラーのトーティエント関数は次のように表される。![{\displaystyle \varphi (n)=\sum _{i=1}^{n}[\gcd(i,n)=1],\qquad {\text{for }}n\in \mathbb {N} ^{+}.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
特殊なケースの簡素化
アイバーソン括弧のもう一つの用途は、特殊なケースを含む方程式を簡略化することです。例えば、次の式は
n > 1 の場合に有効ですが、1/2 n = 1の場合。すべての正の整数n(つまり、 が定義されているすべての値)に対して有効な恒等式を得るには、アイバーソン括弧を含む補正項を追加することができます。
![{\displaystyle \sum _{1\leq k\leq n \atop \gcd(k,n)=1}\!\!k={\frac {1}{2}}n{\Big (}\varphi (n)+[n=1]{\Big )}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
共通機能
多くの一般的な関数、特に自然な区分定義を持つ関数は、アイバーソン括弧を用いて表現できます。クロネッカーのデルタ表記は、等式を条件とする場合のアイバーソン表記の特殊なケースです。つまり、![{\displaystyle \delta _{ij}=[i=j].}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
集合 の指示関数( 、、または と表記されることが多い) は、集合の所属を条件とするアイバーソン括弧です。



![{\displaystyle \mathbf {I}_{A}(x)=[x\in A].}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
ヘヴィサイドのステップ関数、符号関数、[1]、絶対値関数もこの表記法で簡単に表すことができます。![{\displaystyle {\begin{aligned}H(x)&=[x\geq 0],\\\operatorname {sgn} (x)&=[x>0]-[x<0],\end{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
そして![{\displaystyle {\begin{aligned}|x|&=x[x>0]-x[x<0]\\&=x([x>0]-[x<0])\\&=x\cdot \operatorname {sgn} (x).\end{aligned}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
比較関数maxとmin(2つの引数のうち大きい方または小さい方を返す)は次の
ように記述できます。![{\displaystyle \max(x,y)=x[x>y]+y[x\leq y]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \min(x,y)=x[x\leq y]+y[x>y].}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
床関数と天井関数は、およびとして表すことができます
。ここで、合計のインデックスはすべての整数にわたると理解されます。![{\displaystyle \lfloor x\rfloor =\sum _{n}n\cdot [n\leq x<n+1]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \lceil x\rceil =\sum _{n}n\cdot [n-1<x\leq n],}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)

ランプ関数は次のように表される。![{\displaystyle R(x)=x\cdot [x\geq 0].}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
実数の三分法は次の恒等式と同等です。![{\displaystyle [a<b]+[a=b]+[a>b]=1.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
メビウス関数は次のような性質を持つ(そして再帰的に[4]のように定義できる)。![{\displaystyle \sum _{d|n}\mu (d)\ =\ [n=1].}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
1830 年代に、グーリエルモ・ダラ・ソマヤは現在では と表記されるものを という表現で表しました。また、についてはなどの変形も使用しました。[3] 1 つの共通規則( )に従うと、定義されている場合はそれらの量が等しくなります。つまり、 x > 0の場合は 1 、x = 0の場合は 0 、それ以外の場合は未定義です。
![{\displaystyle [x>0]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)

![{\displaystyle [0\leq x\leq a]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)


表記上のバリエーション
現在では標準となっている角括弧[ · ]と元々の丸括弧( · ) に加えて、黒板の太字括弧 (例: ⟦ · ⟧ )や、出版社の書体で使用可能なその他の珍しい形の括弧記号も使用され、欄外の注記が添えられています。
参照
参考文献