Zero Divide を定義する

実数の世界で0で割ることはタブーとされている。
なぜなら

a ÷ 0 = x (aは任意の実数)

が成り立つ実数xが存在すると仮定するとき、

x × 0 = a

が矛盾してしまうからである。

ならば、いっそのこと実数でないもので定義してしまおう、というのが今回。
実数でないものというのは、例えば虚数みたいなものである。
先に言うが、定義してしまおうというだけで、役に立つ学問であるかはまた別の話。
下の式で定義の記号を使ってないけど、 私はとくべつ数学を研究してる人間ではないので、その辺は勘弁してね。

ここで、実数を0で割った数のことを零除数と呼び、
実数aに対する零除数をzd(a)と書くことにする。

  • zd(a) = a/0
  • zd(a) * 0 = a

これが根幹。
いきなり困った。a=0のときなんだか気持ち悪い。
とりあえずa=0のときは除いておこう。
以下(a,b≠0)。

  • zd(0) は未定義

  • zd(a) * 0 = a
  • zd(a) * b = zd(b) * a = zd(a*b)

  • zd(-a) = -zd(a)
  • zd(a) + zd(b) = zd(a+b)
  • zd(a) - zd(b) = zd(a-b)

  • zd(a) / 0 = zd(zd(a)) = zd2(a)
  • zd(a) * zd(b) = zd2(a*b)
  • zd(a) / zd(b) = a/b

  • zd0(a) = a
  • zdn(a) / 0 = zdn+1(a) [n=0,1,2,…]
  • zdn(a) * zdm(b) = zdn+m(a*b) [n,m=0,1,2,…]
  • zdn(a) / zdm(b) = zdn-m(a/b) [n,m=0,1,2,…][n≤m]

まあこんな感じだろうか。ちなみに演算子の*と+は実数同様、交換則が成り立ちます。
zdn(a) でn<0のときがうまく扱えないのが残念。
zdn(a) = 0 (n<0) ってしたくなるところなんだけど。
実際には、nが指数のように負数や分数とか、実数の範囲で扱えたらすばらしいんだけど。
これを見た頭のいい人、うまい方法があったら教えてちょ。
実は数学研究の世界では、当たり前の話だったりして。
しかしこのネタ、考えたはいいが、役に立つ場面が思い浮かばない。
30年後ぐらいのコンピュータの世界で使われたりしないかな。