Float Classの `-' メソッドを上手く再定義出来ない

ginzanomamaさんのブログは更新が多くて勉強になるので好きです。
昨日更新されたrubyの演算子を再定義するとFloatがなんか変 - みんなのちからになりたいという記事が面白かったので僕も試してみました。

class Float
  ['+', '-', '*', '/'].each do |num|
    define_method(num) do |other|
      "SUCCESS"
    end
  end
end


以下僕のデバッグ(pがあると読みづらいので意図的に消しています)

x = 1.0
y = 1.0

x + y
#=> "SUCCESS"

x - y
#=> 0.0

x - y.to_i
#=> "SUCCESS"

あれれ?

x - y.to_s
#=> "SUCCESS"

x - y.class
#=> "SUCCESS"

x - "success"
#=> "SUCCESS"

x - y.to_f
#=> 0.0

小数点同士の引き算の場合のみ、再定義したはずの`-'メソッドが呼び出されないようですね。
ということは、Floatの`-'メソッドはFloatのサブクラスで定義されていたりするんですかね?

Floatの`-'メソッドが再定義出来ない演算子に指定されている可能性も考えましたが......ううむ.......。
帰宅したらもう一度考えてみます

追記
数時間後