@termoshtt
最近学校で反復補題やったの使いたかっただけです
長いです
単純化して L を
3|123, 2|15 など n|(n文字の列)
の集合とする
L を文脈自由とすると
反復補題から定まる反復長 p がある
ここで
w = 100...0 (p個) | 00...0 (10^p 個)
とすると |w| >= p なので、ある分割
w = uvxyz
があって
※1 |vxy| <= p
※2 任意の i に対し uv^ixy^iz in L
が成り立つ
vxy が | を跨がないと、※2 を考えたとき | の左辺か右辺のどちらかが一方的に大きくなり ※2 を満たさないので、vxy は | を跨ぐ
| in x でないと、※2を考えたときに | が増えるので | in x
したがって
v = 00...0 (m 個)
y = 00...0 (n 個)
ここで
uv^2xy^2z = 100...0 (p + m個) | 00...0 (10^p + n 個)
※2 から uv^2xy^2z in L なので
10^(p + m) = 10^p + n
が満たされる、明らかに n は 10^p の倍数であるが、これは ※1 |vxy| <= p を満たさない
ゆえに L は文脈自由ではない
ですかね
一応文脈自由文法で表せないことの証明とか試してみます
数値リテラルを解釈するのはパースしてからの仕事みたいな気がしますね…(門外漢)
実行時エラーがない、聞こえがいいように聞こえるけど適当に運用するとエラー処理すべきところでしないなどの事象が発生するので気を付けなければいけない
こっちでは言及してなかった気がするからするんですが、#purescript の UI 構築ライブラリ #jelly を開発しています
https://github.com/yukikurage/purescript-jelly
SolidJS と似た感じで React の Hooks のように書けつつも、リアクティブな値を使って状態管理するものです
ちなみに避けられてる感があるのソースは、この前友達に #purescript のコードを見せたらキモッと言われたことです [参照]
これはこの前 でも言ったんですが言語って見た目大事で、#haskell #purescript は見た目で避けられてる感がある
くらげです。DTM したりプログラミングをしたりする
まれに絵を描く
関数型言語が好き (PureScript、 Haskell 等)
Web UI ふれーむわーく Purescript Jelly を開発しています( https://jelly.yukikurage.net )。
PureScript の日本語 Discord さーばーを作りました : https://discord.gg/eyF7fFxwua
東工大デジタル創作同好会 traP の代表 兼 サウンド班班長です