kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

2018-04-01から1ヶ月間の記事一覧

J-Bobを作ってみよう(1) quote、if

J-Bobといっても証明する方じゃなくて j-bob-lang.scmで定義される方のやつです 証明する方のJ-Bobが動いて各種証明ができるレベルを目標とします 定理証明手習い、終わりのつもりだったんですけどこんなこと書いてあったの思い出しまして 読者のみなさんも…

考え方(の考え方)を教える(のって難しい)

今日はムスメがあっちむいてホイでずーっと勝負がつかなかったの、とか言うのでしめしめこれはチャンス、と思ってすかさずあっちむいてホイで10回やっても勝負がつかない確率ってどれくらいだと思う?と聞いてみました 頭の中では3/4の10乗だから3の10乗÷4の…

定理証明手習い(99) しゅくだい(7)

わからん わかるのは、自分の定義したreverseでは常に(reverse (reverse x))がxに なるとは限らない、ということだけ あらかじめxを最後まで見て'()で終わっているかを確認して、っていうことは できるかもしれないけどそこまでするものかよくわからない そ…

定理証明手習い(98) しゅくだい(6)

(if (equal res '()) ...を使おう 前提がついてないとこれができなくて詰む ((E A A 1 1 2) (equal-if res '())) ((E A A 1 2) (equal-if res '())) ((E E A A 1 1 2) (equal-if res '())) ((E E A A 1 2) (equal-if res '())) ↓ (if (atom x) 't (if (atom …

定理証明手習い(97) しゅくだい(5)

最初の主張 (if (atom x) (if (equal res '()) (if (atom x) 't (equal (reverse2 (reverse2 x res) res) x)) 't) (if (if (equal (cons (car x) res) '()) (if (atom (cdr x)) 't (equal (reverse2 (reverse2 (cdr x) (cons (car x) res)) (cons (car x) re…

仏教を勉強してみる

今Eテレの100分de名著で法華経やってますね100分で名著ではお経が読み物としてときどき取り上げられてます お経が読み物ってどういうこと?って思う人が多いんじゃないでしょうか私もそう思ってましたお経は呪文じゃありません読めば意味がわかる文章なんで…

定理証明手習い(96) しゅくだい(4)

reverse/reverseの証明に戻ってここからです (if (atom x) 't (equal (if (atom (reverse2 x '())) (reverse2 x '()) (reverse2 (reverse2 x '()) '())) x)) (atom x)でなければ(if (atom (reverse2 x '()))が成り立つことはない、が証明されたので ((E 1 Q)…

定理証明手習い(94) しゅくだい(3)

(atom x)でなければ(if (atom (reverse2 x '()))が成り立つことはない、を証明します (J-Bob/prove (defun.reverse) '(((dethm atom/reverse2 (x res) (if (atom x) 't (equal (atom (reverse2 x res)) 'nil))) (reverse2 x res) ; ← ここ!これ!きっと! …

定理証明手習い(94) しゅくだい(2)

行き詰まり気味なのでまず確実に進捗できそうなところを済ませます (defun defun.reverse2 () (J-Bob/define (prelude) '(((defun reverse2 (x res) (if (atom x) res (reverse2 (cdr x) (cons (car x) res)))) (size x) ((Q) (natp/size x)) (() (if-true (…

定理証明手習い (93) しゅくだい

「(reverse (reverse x))がどんなリストについてもxになるか」…(略)…読者への宿題にしておきます。 付録Cやってるあいだに証明も忘れかけてる気がするのでちょうどいいおさらい 最初は、これを証明すればいいかな、と思ったんですけどね

定理証明手習い (91) おさらい(1)

さすがに間が空きすぎて、始めのうち何をやってたか忘れてるような気がするのでおさらい ほんとは最初にざっとみてこれくらい把握しておくんだろうなあ はじめに、とか 帰納法を使うことで再帰的な関数についての事実を明らかにする方法を知る 入力の可能性…

定理証明手習い (92) おさらい(2)

5 何回も何回も何回も考えよう 定理の証明 洞察:内側から外側へと書き換えるべし Ifの持ち上げ 洞察:Ifを外側へ 洞察:いつも心に定理を

定理証明手習い (90) J-Bob/define

J-Bob/defineを定義していきます rewrite/proveは再利用 その後も、'tを返すか定義のリストに証明された定義を付け足すかくらいなので それほど大きな違いはありません

フリクションボールスリムビズにサラサ替芯を入れる

この間、手帳用の筆記用具を万年筆からボールペンに変えました手帳のサイズに合うもので、そこそこいい感じのものを探してフリクションボールスリムビズに 1000円のわりにはまずまずの高級感があっていい感じなんですがどうもインクが乾きがち書き始めがかす…

定理証明手習い (89) J-Bob/prove

(rewrite/prove defs def seed steps) 関数定義なら全域性の主張、 定理なら帰納法の主張を証明します 違うのは種から主張をつくるところだけかな rewrite/prove+1 (defs pf e) そこまでの証明が終わっていれば次の証明を行う rewrite/prove+ (defs pfs) 複…

定理証明手習い (88) J-Bob/step

(rewrite/step defs claim step) claimをstepで書き換える equality/defで組み込み関数を置き換えるとき、defには組み込み関数の 「定義」では(当然ながら)なく、関数名が単に入っていました どっかでわざわざ組み込み関数かどうかを判断して渡してるのか…

美容師さんについて徒然

先日、1000円のカット屋に言ってきましたもうずいぶん昔から1000円とか1500円のとこしかいってませんそんなにこだわりはないので ただ、1000円クラスになるとちょっと、ただのオッサンオバサンにしか見えないような美容師さんの割合が増える気がします腕前と…

定理証明手習い (87) equality/def

パターンに分けてequality/pathを呼びます (defun equality/def (claim path app def) claim 主張 path フォーカスへのパス app 関数適用 def 定義

定理証明手習い (86) follow-premsの復習とequality/path

(app-of-equal e) equalの適用か (equality focus a b) focusを書き換えられる式 (equality/equation focus concl-inst) 帰結でフォーカスを書き換える conclはきっとconclusionでDethmの法則でいうところの帰結のこと 次の場合、置き換えた結果であるbody(e…

『一九八四年』

ずーっと昔から、そのうち読もうと思ってて去年辺りからまた話題になって気になってたんですがKindleで99円の邦訳が出てることに気づいてやっと読みました 一九八四年 作者: ジョージ・オーウェル 出版社/メーカー: オープンシェルフパブリッシング 発売日: …

定理証明手習い (85) 演算子の適用

(rands args) argsのクォートをはがす (eval-op app) 組み込み演算子を適用する apply-opはタグなしの値を受け取るようになっているので、randsではがしてから 渡します 逆に言うと、組み込み演算子を適用できるのはクォートされた値のみ 変数には適用できな…

定理証明手習い (84) 演算子

(unary-op rator rand) (組み込みの)単項演算子の演算を行う (binary-op rator rand1 rand2) (組み込みの)二項演算子の演算を行う (apply-op rator rands) (組み込みの)演算子の演算を行う rator、なんだかわかった・・・ opeが省略されてたのか そり…

定理証明手習い (83) Dethmの法則?

具体的な形になった定理をつかう前に、follow-premsで延滞をチェックする必要があります。このチェックにより、等しいことが証明可能な2つの式を表す具体的な帰結が、等式として得られます。 わかったようなわからないような (equal (car (cons 'a 'b)) 'a)…

定理証明手習い (82) 式の置き換え

(find-focus-at-direction dir e) 式eの、dirで指定された部分式 dirがeの適切な位置を示しているかはまったく気にしてない模様 'Qって指定されたけどそもそもeはifじゃないとか '3って指定されたけど引数が2個しかないとか そういうの

定理証明手習い (81) 帰納法の構成

前回は全域性の主張の構成 今回は帰納法の構成 後ろから読んでいく (defun induction/claim (defs seed def) seedが種、defが定理の定義 (if (equal seed 'nil) (dethm.body def) 種が'nilなら定理の本体を返す (induction/defun (app.args seed) (dethm.bod…

定理証明手習い (80) 全域性の主張作り

(defun totality/< (meas formals app) (app-c '< (list2 (sub-e formals (app.args app) meas) meas))) 名前からすると全域性に関する何か measは尺度のことかな measの仮引数にappの引数をあてはめたものが measよりも小さい、という式を作っている 尺度が…

定理証明手習い (79) exprs-recsとそういえば

exprs-recs 式のリストから再帰的な関数適用を抽出する expr-recs 式から再帰的な関数適用を抽出する 変数なら数えない クォートなら数えない ifならQ、A、E部の関数適用を抽出 関数適用で名前が一致したらそれ自身+引数に含まれる関数適用を抽出 名前が一…

定理証明手習い (78) sub-var 〜 sub-e

やっと形式チェックではない処理 (sub-var vars args var) 変数に対応する引数 vars 変数のリスト args 引数のリスト var 変数 (sub-es vars args es) (複数の)式の置き換え (sub-e vars args e) (単独の)式の置き換え ここも複数の式を置き換える関数を…

ZenPadにSIM

ZenPadにSIM挿しましたMineoのDコースこれが3回線め あんまり真面目に検討して選んだわけではなくて、今Mineo使ってて特に不満もないからというだけ

定理証明手習い (77) list2-or-more? 〜 proofs?

list2-or-more? リストの要素が2個以上か proof? 証明かどうか 証明である、とは?