Profile cover photo
Profile photo
Masahiro Sakai
799 followers
799 followers
About
Posts

Post has attachment
Interpolants as Classifiers
線形算術の論理式A∧Bのクレイグ補間となる線形算術論理式を求めるために、AとBからサンプリングした点を使ってSVMで分離平面を求める話で、言われてみれば当たり前だけど、面白かった。

プログラム解析への応用を考えると典型的にはAとBはinfeasibleであるtraceの前半と後半を論理式で表現したものだけど、Aからのサンプリングに関してはソルバで解かずとも、単にランダム生成した入力から普通に実行することもできて、非線形性などソルバが苦手なものが入っても大丈夫。

また、線形分離できない場合にも、例えばBの点を1個ずつAから分離するようなinterpolantを求めて連言をとる、みたいなことをすれば、連言や選言の形をしたinterpolantを求めたりもできる。

https://theory.stanford.edu/~aiken/publications/papers/cav12a.pdf
https://link.springer.com/chapter/10.1007/978-3-642-31424-7_11
Add a comment...

Post has attachment
半年くらい積読してた Closure Conversion as CoYoneda http://prl.ccs.neu.edu/blog/2017/08/28/closure-conversion-as-coyoneda/ を読んだ。

CoYonedaを知らなくて、勝手に米田の補題の反変版と共変版がYoneda,CoYonedaなのかと思い込んでいたら違って、endとcoendの双対だったという(汗)。

以前に Notions of Computation as Monoids を読んで https://plus.google.com/+MasahiroSakai/posts/Y5ZeY5bmcw6 、end/coendはなんだか理解した気でいたが、結局忘れてて、また復習することに……この記事も非常に分かりやすくて助かった。

あと、 Notions of Computation as Monoids でも出てきた Day Convolution に関して分離論理(separation logic)の意味論に使われてると書いてあって、へーと思った。 リンクが切れているけれど
Robert Atkey. Substructural Simple Type Theories for Separation and In-place Update. PhD Thesis, University of Edinburgh. 2006.
https://bentnib.org/thesis.html
の話っぽい。
Add a comment...

Post has attachment
今日はアローラの姿のライチュウとレジロックをゲット。 あと、昨日アローラの姿のサンドが卵から孵った。 #PokemonGo
PhotoPhotoPhoto
2018/08/18
3 Photos - View album
Add a comment...

Post has attachment
text-icu の Data.Text.ICU.Convert http://hackage.haskell.org/package/text-icu-0.7.0.1/docs/Data-Text-ICU-Convert.html のメインの関数はstrictなTextとByteStrictを変換する fromUnicode :: Converter -> Text -> ByteString と toUnicode :: Converter -> ByteString -> Text だけど、このインターフェースだと状態を扱えないので、lazyなTextとByteStringを変換したりできないような…… ? #Haskell
Add a comment...

iconv(3) では、inbufをNULLにすることで状態のフラッシュを行う機能があり、ストリームの終端ではこれが実行されることが期待されている。

https://manpages.debian.org/stretch/manpages-dev/iconv.3
> In each series of calls to iconv(), the last should be one with inbuf or *inbuf equal to NULL, in order to flush out any partially converted input.

しかし、 GHC.IO.Encoding http://hackage.haskell.org/package/base-4.11.1.0/docs/GHC-IO-Encoding.html にはこれに相当するAPIが存在しない。 結果として、例えば以下のようなコードを実行すると、末尾に出力されるべきエスケープシーケンスが出力されないままになってしまう……

enc <- mkTextEncoding "iso-2022-jp"
withFile "hoge.txt" WriteMode $ \h -> hSetEncoding h enc >> hPutStr h "こんにちは世界"

まあ、iso-2022-jpの末尾のエスケープシーケンスの欠落くらいだと大した問題ではないかもだけど、もっと本質的な情報が欠落してしまうようなケースって実際にはないのかな……?

#Haskell
Add a comment...

Post has attachment
当たり前だけど、 unsafeInterleaveIO を使って処理を遅延すると bracket 系の関数でリソースを開放できなくなるんだなぁ。 #Haskell

処理が実行されなくてもリソース開放処理が実行されるようにしようと思うと、ファイナライザを使うことになるけれど、 http://hackage.haskell.org/package/base-4.11.1.0/docs/System-Mem-Weak.html によると Haskell の通常の値に対するファイナライザは非常にfragileとのことで、専用関数を持つ方を使うのが良さそうだが、ファイナライザを紐づけしつつ、touch的な関数で寿命を簡単確実に保証できる良い選択肢はどれだろう?

とりあえず、 Foreign.Concurrent.newForeignPtr nullPtr f して、touchForeignPtr で寿命を保証する感じにしたが……
Add a comment...

Post has attachment
スペシャルレイドとイーブイのコミュニティデイ。 ミュウツーの二体目、イーブイの色違い3体、レジスチル一体をゲット。 #PokemonGo

こないだ初のスペシャルレイドでミュウツーをゲットした https://plus.google.com/+MasahiroSakai/posts/aFaGZE2vdH9 と思ったが、あまり経たないうちにまたスペシャルレイドパスをもらってミュウツーげっと。 その前までは全然もらえてなかったのに謎だ…… 🤔

イーブイの色違い3体のうち2体を進化させたら、ブースターとサンダースに。 エーフィーかブラッキーにならないかなぁと期待してたけど残念。 調べてみたら、相棒にして10km歩いた状態で進化させないとエーフィーやブラッキーには進化しないのね。知らなかった…… 😵

レジスチルはレイドへの登場が8月16日までで、自分は一応一体ゲットしてたけれど、まだゲットできてなかった妻がゲットできてよかった🎉
PhotoPhotoPhotoPhotoPhoto
2018/08/11
5 Photos - View album
Add a comment...

Post has attachment
昨日の『フリーザー・デイ』と『コミュニティ・デイ』(ゼニガメ大量発生)の収穫は
・フリーザー4体 (うち色違い1体)
・ゼニガメ色違い3体
・サングラスをかけたゼニガメ3体 (うち色違い1体)
という感じ。 #PokemonGo

色違いのゼニガメは最初は色が薄いだけかと思ったら、甲羅の色も緑なんだな。
Photo
Photo
2018/08/05
2 Photos - View album
Add a comment...

Post has attachment
ついに #Moves http://www.moves-app.com/ が終了してしまった……
乗り換え先としては Gyroscope https://gyrosco.pe/ が良いのかしら? Movesからのインポート機能 https://gyrosco.pe/moves-importer/ もあるみたい。
Add a comment...

Post has attachment
ついに念願のミュウツーをゲット。 これがkazuさんが昔言ってた「Mew 2 の逆襲」の元ネタか…… #PokemonGo
Photo
Add a comment...
Wait while more posts are being loaded