はてなキーワード: calcとは
どんどん難しく、煩雑になってきている、
現代の車は、アクセルを踏みながらボタンを押さなきゃ始動しない
この時点で昔の倍のアクションである、メーカーのリスクヘッジはユーザーの手間に転嫁される
エアコンも、タッチパネルでメニューを開き、どの吹き出し口か選び、温度、設定を選ぶ
あるいはハンドルに無数のボタン、ダッシュボードのあちこちに意味不明なボタンが並び、隠れている
ネットに繋げれば世界中の無数の音楽が聴き放題なんだって、いや、ラジオでいいよ
パソコンでちょっとした四則演算をしようと立ち上げた、昔なら電卓だが、もはや卓上に電卓はない
アップデートが始まった、再起動され、パソコンはウイルススキャンとインデックスファイルの再構築をしている。
Win+R 「CLAC」で颯爽と起動する、前回使ったプログラマー形式なのでメニューから「標準」に切り替える
最近のWindowsのCalcはコンバーターなんて機能もあって、単位変換などもできるようだ、便利だね、一生使わんけど
市役所に行政手続に行ったら、電子申請しろと追い返された、紙で出せば2分の手続き
スマホでマイナカード、暗証番号?忘れた、探す、5分、マイナの暗証番号は三種類ある、どれだ、えいやっ、あたった
来所不要のDX行政改革、ウチから市役所チャリで10分なんすけどね、誰が便利になったんだろう
電車に乗ろうとしたら、なんや止まっている、駅にはなんの情報もない、
だが、鉄道会社のサイトのどこをみてもなんの情報もない、どこかメニューを辿らなきゃいけないのか、わからん
専用アプリをインストールしたら見えた、だが情報は抽象的で欠落
再開目処はいつか、原因はなにか?なんもわからん、設備トラブルだってよ
5分で治るのか、半日かかるのか、わからん、判断しようがない、駅員に聞いても「わからない」だってさ
専用アプリは、その後頻繁に通知を寄越すようになった、なんやすれば止められるんだろうが、それを調べるには、ググる、
解決方法が出てくる、スマホによってメニュー階層は異なる、情報が古いこともある
これ、ウチのババァできるのか?できんだろ、スマホの調子が悪いと、見てやったら開きっぱなしのブラウザタグが100超えてたぞ
専用アプリの通知は止まった、だが、アプリを開くたびに、オトクな旅の情報広告、消去ボタンは極小
これウチのババァ見えるか?絶対毎回クリックしてんだろ、んでCTR達成!てか
ここは地獄かよw
こういうのあるからLibreOffice Calcの方が使いやすいんだよなあ
background: red; max-height: calc(1.7rem * 1.5); overflow: clip;
みたいにして、スパムらしきものは「タイトルだけ」の表示にする方法。(気になる記事は ■ をクリックすれば本文も見られる)
それはさておき、気休めだけど、あの記事を公開してから17日間ほぼ全記事パトロールする中で、「人間の記事がうっかり非表示になっていた」事例は、記憶の限り1件だけ。それも、英文スパムの文章を部分的に引用した荒らしっぽい記事だったから、実質誤判定はゼロだと言える。
ただまあ、例えばトランプ大統領があの「簡易NGワードリスト」のどれかを使った重大発言をしたりしたら、それを引用した増田は(私が気付いて修正するまで)誤判定食らっちゃうかもしれないとは思う。そういう事例が増えるようなら、スパム判定に追加したリンク先URLドメイン判定を主軸にすべきかもしれないね。
LLM は「次の単語を予測しているだけ」で意味を理解していない──という指摘に反論してみる。
「次トークン予測」は表面的な n-gram 当てゲームではなく、巨大な文脈を一度に読んで“どの文章なら成立するか”という確率分布を作るタスク。Anthropic の可視化研究では、Claude が韻を踏む単語を前もって計画している内部回路が観測されている。
GPT-4 相当のモデルは司法試験や大学入試、AP Calc などで人間平均を超えるスコアを記録。これは暗記だけでなく意味・論理の運用ができないと無理。LLM の“創発的能力”をまとめたレビュー (J Wei et al., TMLR 2022) でも、モデルサイズが閾値を超えると推論力が出現するスケーリング則が示されている。
Anthropic の「AI Microscope」チームは、同じ質問を英・仏・中で与えても共通の概念特徴が活性化することを報告。モデル内部では単語列ではなく、言語非依存の意味空間で思考している証拠を示している。
Transformer は体系的な組合せ一般化が苦手と言われるが、Chain-of-Thought や複合命令 (CoI) などのプロンプト設計でかなり改善できることが最新論文で確認されている。
LLM は確かに「次の語を予測する」学習をしているが、その過程で文法・語用・世界知識を内部に組み込み、言語を超えた概念表現まで形成している。「予測タスク=理解ゼロ」と断じるのは、最新の実験データには合わない。
パソコン画面右上のアイコンで選ぶ表示スタイルを一番右の「ヘッドライン」表示にしといてな
/* ヘッドライン表示を切り詰める */ /* #container 指定でCSS優先度を上げる必要がある */ body[data-entrylist-layout="headline"] #container .entrylist-main{ padding-right: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents{ padding-left: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ position: static !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ top: 14px !important; } /* ヘッドライン表示にサムネイルを追加 */ body[data-entrylist-layout="headline"] #container .entrylist-contents-main{ display: grid; grid-template: "users body title" 28px "bookmark body domain" 20px / 60px 120px 1fr; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ grid-area: users; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users a span{ margin-right: 0; } body[data-entrylist-layout="headline"] #container .following-bookmarks-container{ grid-area: bookmark; position: absolute; left: 20px; bottom: 2.5px; } body[data-entrylist-layout="headline"] #container .entrylist-contents-body{ grid-area: body; } body[data-entrylist-layout="headline"] #container .entrylist-contents-title{ grid-area: title; z-index: 99; } body[data-entrylist-layout="headline"] #container .entrylist-contents-title > a{ margin-left: -120px; padding-left: 120px; margin-bottom: -28px; padding-bottom: 28px; width: 890px; white-space: nowrap; display: block; } body[data-entrylist-layout="headline"] #container .entrylist-contents-body{ display: block !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb{ position: static; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb span{ width: 100px; height: 50px; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb{ background: #f0f0f0; width: 100px; height: 50px; background-position: 50%; background-size: cover; border-radius: 4px; } /* 2行目に、総合ではドメイン(domain), サイト内一覧ではカテゴリと時刻(meta), マウスホバー時はいずれも概要文(description) */ body[data-entrylist-layout="headline"] #container .entrylist-contents-domain, body[data-entrylist-layout="headline"] #container .entrylist-contents-meta, body[data-entrylist-layout="headline"] #container .entrylist-contents-description{ grid-area: domain; display: block; opacity: 0; padding: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-meta > li{ vertical-align: top; } html[data-stable-request-url^="https://b.hatena.ne.jp/entrylist/"] body[data-entrylist-layout="headline"] #container .entrylist-contents-domain, html[data-stable-request-url^="https://b.hatena.ne.jp/site/"] body[data-entrylist-layout="headline"] #container .entrylist-contents-meta{ opacity: 1; } body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-domain img.favicon + span, body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-meta{ opacity: 0; } body[data-entrylist-layout="headline"] #container .entrylist-contents-description{ opacity: 0; position: absolute; top: calc(40px - 3px); left: calc(180px + 16px + .5em); height: 20px; line-height: 20px; color: #999; min-height: auto !important; padding-right: 0 !important; width: 890px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } html[data-stable-request-url^="https://b.hatena.ne.jp/site/"] body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-domain, body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-description{ opacity: 1; } /* 増田調整 */ body[data-entrylist-layout="headline"] #container a[href^="/entry/s/anond.hatelabo.jp/"] .entrylist-contents-thumb{ background-image: url('https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fproxy.goincop1.workers.dev%3A443%2Fhttps%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif'); } /* マウスホバー時にサムネも反応させる見た目調整 */ .entrylist-contents-title:hover ~ .entrylist-contents-body .entrylist-contents-thumb{ opacity: .90; }
いやわかる、MS OfficeとかAdobeは業界標準だしファイル互換でインポートとかも楽だ。
ただまぁその万人へ必須か?と言われたら圧倒的にそれが必須じゃない仕事をしている人のほうが多い。
何なら仕事じゃなくて趣味レベルであるならばなおさらMS OfficeとかAdobeとか業界標準ソフトウェアじゃなくても良くなっちゃう。
ということで、ありきたりなシェアウェア代替オープンソースソフトウェアのリストを作ってみた。
ド定番中のド定番、オープンソースのオフィススイートだ。
MS Officeじゃなくて良い人はLibreofficeかGoogleのクラウドのヤツを使ってる。
やはり主に使われるのはワープロソフトのWriterと表計算ソフトのCalcとプレゼンテーションソフトのImpressだが、MS Accessの代替として挙げられるBaseは厳密な意味で代替とはならないためMS Accessの代替を無料でゲットしてやろうと考える人が陥りがちの罠だ。
まぁただデータベースのフロントエンドソフトとしてBaseはそこそこ使えるので、MS Accessの代替として捉えるのではなく別種のデータベースフロントエンドソフトとして割り切れば想定されることの大半ができる。
MS Visioの代替としてDrawも挙げられがちだがMS Accessの場合と同様にDrawもVisioの厳密な代替とはならないので注意が必要だ。
Adobe Illastratorの代替として挙げられがちなオープンソースのベクターグラフィックスソフトウェア。
高機能なのだがIllastratorと比較すると恐ろしいほど使いにくいUIを持っており、折角の高機能へアクセスするにはどうしたら良いのかわからないと挫折する人が多く出る。いやなんでホントこんなUIなんだ。
ただ、諦めずクソUIに付き合っていると不思議なもので人間は慣れてしまい結構自由度高くベクターグラフィックスを生成できるようになる。
Adobe Illastratorには無い長所としてSVG規格へ厳密に従うという方針で開発されているため、Illastratorで生成したSVGをWebでそのまま使うとWebブラウザで謎の描画バグにWeb屋は悩まされるがInkscapeではそれが無い。描画バグが起きるとき製作者が間違った設定を行っているか、Webブラウザ側が使っている設定に未対応な場合がほとんど。
将来的にサポートする気はあるらしいが現状はアニメーションSVGに弱いのも残念でならない。どうしてもアニメーションSVGをやりたいのであればInkscapeで生成された静止画SVGをアニメーションSVG化することを想定しているaniGenというWebベースのエディタがあるので調べてみると良い。
Adobe Photoshopの代替として挙げられがちだが、元来Web用の画像を製作するためのラスターグラフィックスソフトウェアなのでRAW現像や写真を加工するためのソフトじゃないが、本家すらその辺のことを忘れたふりをしている。
画像編集や加工で求められる基本的な機能はほぼ網羅されているが、RAW現像に関しては標準状態のままではできず、最近のAdobeが搭載している人工知能を用いた機能もないのでクラシカルなラスターグラフィックスソフトウェアと表現することもできる。
GIMPとInkscapeが使えると大半の画像製作は何とかなってしまうため一部の情報技術者寄りのギークはPhotoshopやIllastratorは触ったこともなく使えないがGIMPとInkscapeは困らない程度には扱えるというデザイナーがツッコミ入れそうなおかしなスキルセットになっていることがある。
Adobe Lightroomの代替として挙げられがちなオープンソースのRAW現像ソフトウェア。
実はdcrawというRAW現像のためのオープンソースのライブラリのフロントエンドであり、GIMPでRAW現像するために活用されるUFrawも同様にdcrawのフロントエンドであるため中身は同じだったりする。オープンソースのRAW現像ソフトウェアはdcraw使いがち。
オープンソースソフトウェアでRAW現像を賄っている人はGIMPでUFrawを活用してRAW現像するよりもUI的に使いやすいのでRaw TherapeeでRAW現像でTIFFを出力しGIMPで微調整するような使い方をしている人が多い。
オープンソースの2D CADで以前はQcadと呼ばれていた。
一部の読者はJw_cadのJWWファイルを扱うことが可能という特徴を持っているというだけで興味を惹かれてしまうのではないか。
Jw_cadとは違ってWindowsやmacOS、各種Linuxディストリビューションで動くので2D CADデータをネット上の友人知人などとやり取りしたいときに向くんじゃなかろうか?ニコニコ技術部的な遊びとか、最近流行りのルール無用JCJCタイムアタックとかで。
オープンソースの3D CADで、近年は3Dプリンターあたりの需要でよく目にするようになった。
Autodesk AutoCADやFusion 360、Dassault Systèmes SolidWorksよりも草の根では広まっており日本語でのハウツー記事もオープンソースソフトウェアとしては比較的多い印象。
シミュレーション機能はシェアウェアと比較すると弱い傾向があるものの草の根でそこまで必要か?と言われたら悩む。無料でシミュレーションやりたいならOpenFOAMにでも流し込め。
オープンソースのお絵描きに特化したラスターグラフィックスソフトウェア。
歴史的経緯ではLinux界隈でのGUIツールキットの2大巨塔にGTKとQtがあり、GTKはGIMPを作り上げるために生まれたこともありGTK側には高度なラスターグラフィックスソフトウェアが存在していたがQt側には存在していなかった。そこでGIMPの対抗としてQtを用いたKritaの開発が進められたが次第にGIMP的な画像編集ソフトウェアよりもお絵描きに特化していき現在のような性格を帯びるようになった。
SYSTEMAX ペイントツールSAIやセルシス CLIP STUDIO PAINTからの影響が強く現れており、オープンソース界隈のSAIやクリスタなどと呼ばれることがある。クリスタがそうであるようにスマートデバイスへの対応も計られAndorid OS版やChrome OS版が存在する。
ただ日本の需要を敏感に拾えるクリスタなどと比較して漫画作成機能に関してKritaは弱いと言われることがあるものの、GIMPと同様に無料とは思えない機能が充実しているのもまた事実である。
オープンソースの3DCGアニメーションソフトウェアで、非常に多機能のため何故かAdobe After Effectsの代替として挙げられることもある。
YoutubeがBlenderのYoutubeチャンネルへ広告を載せろと迫ってBlender公式がそれを拒否してYoutubeから撤退したり、庵野秀明が率いる株式会社カラーが出資したことなどオープンソース界隈でも異彩な存在感を放っており日本国内でも非常に注目されているプロジェクトだ。
ただ、初期状態では独特なUIによる使い勝手が非常に悪くユーザーが自分で使いやすい配置を模索する必要があったりタイムラインが使いにくかったりと何故オープンソースソフトウェアはUIがクソになりがちなのか?という問題にぶち当たる。
オープンソースの2DG/3DCG兼用プログラミングIDE。つまりはUnityとかみたいなやつ。
MIT Licenseでロイヤリティーフリー、開発言語はC#もしくはC++、そしてPythonライクなGDScriptで、Unityみたいにマウスでポチポチしてオブジェクトへ色んな設定を決められるので「Unityみたいのでゲーム作りたいけど運良くヒットしたときにライセンス料がなぁ」と懸念している人に役立つ。
ちなみにWiiとニンテンドーDS用向けにリリースされたSEGAゲームタイトルのソニックカラーズのSwitchやPS4などのマルチプラットフォーム移植版ソニックカラーズ アルティメットはGodotを用いて移植されているので商用でも耐えうることはSEGAが証明している。あのSEGAがソニックでだ。
オープンソースな動画編集ソフトウェア。
様々な部分で動画ライブラリのFFmpegへ依存しているためFFmepgのフロントエンドソフトとしての性格も持つ。
この手の無料の動画編集ソフトは国内だとAviUtlや近年ではBlackmagic Design DaVinci Resolveが人気だけれど、海外のオープンソース界隈ではShotcutは比較的知名度が高い。
カラーグレーディングに関して不足のない機能を有しているので高度なトランジションを用いるというよりも色を追い込むような使い方が合っているだろう。
ていうかFFmpegのフロントエンドなのでFFmpegができることは理論上なんでもできる(理論上なので追加でコマンドを叩く必要があったりするけどね)。
オープンソースのレコーディングソフトウェア。旧名称はAudacityと言われるとご存じの方も多いハズ。プライバシー問題でAudacityからプロジェクトが分岐されTenacityとして再出発することとなった。
旧Audacityは開発の主な拠点がロシアを中心に行われていたという経緯があり、現在のウクライナ-ロシア戦争へ至る前の影響からか個人情報の収集をロシア企業が行うと発表され、それに反発したユーザーらによってプロジェクトが分岐しTenacityプロジェクトが立ち上がった。
Audacity自体はVSTプラグインが動作するなど非常に高機能なレコーディングソフトウェアであったがウクライナ-ロシアの騒動に巻き込まれたと言った感じだ。
Audacityから分岐したTenacityもそのまま高機能なレコーディングソフトウェアなのでこれからはTenacityを使ったほうが色々面倒が少ないだろう。
ProToolsの代替として挙げられがちなオープンソースのDAW。非常に高機能でDAWとして求められることの大半ができるものの、これもまた通例通り最近流行りの人工知能を用いた云々かんぬんは標準状態だとできない。
Ardourプロジェクトの立ち上げをし主要開発者であるポール・デービス氏はJACK Audio Connection Kitのプロジェクトの立ち上げをし主要開発者であるという事実を伝えると驚く人がいるかも知れない。LinuxとGitのリーナス・トーバルズ的な文脈だ。
オープンソース界のFL Studioと呼ばれることもあるDAW。ステップシーケンサーを中心に作曲するタイプのDAWで電子音楽が得意。LMMSという名称はLinux Multi Media Studioの略でLinuxに端を発してマルチプラットフォーム展開をしたDAW。
オープンソースのDAWにしては珍しく初期状態から多数のソフトウェアシンセサイザープラグインが用意されておりインストールした時点で遊び始めることができるものの、オープンソースの例に漏れずクソUIを持っており使いにくい。GIMPやBlenderもそうだが1990年代後半〜2000年代前半あたりに流行したMDI(Multiple Document Interface)を未だに引きずっているためクソUIになりがちなのだ。
ググると日本国内にも意外とユーザーは居て、DTMやりたいけど初期投資は低く抑えたいみたいなユーザーが選んでいる模様。そういう需要ならLMMSの他に基本無料で全機能が使えて一部のプリセットが有料のVitalっていうソフトウェアシンセサイザーも導入しておくと延々遊べるよ。
オープンソースなWebブラウザとして非常に有名な存在。
Google率いるChromium系Webブラウザに近年物凄く押されているものの独禁法を回避するためGoogleはMozillaへ出資しているという歪な構造を持つ。
Mozillaの運営が下手すぎて資金をドブに捨てることを繰り返しているためGekkoレンダリングエンジンに未来があるのかと一部の識者から不安がられている。
Firefoxは使いやすいのか?と言われたら、それはもう好みの問題としか返せないのだがカスタマイズ性は非常に高い。
今日NHKでボカロp特集やってたらしいから、おすすめのボカロ曲を紹介する
https://youtu.be/ABb9mdr43c4
・Just Be Friends (Dixi Flatlain)
https://nico.ms/sm7528841?ref=other_cap_off
・Calc. (ジミーサムp)
https://nico.ms/sm12050471?ref=other_cap_off
https://youtu.be/xgsFyVe2G-Y
https://nico.ms/sm27321745?ref=other_cap_off
・知らぬがイム(Noz. )
https://youtu.be/gSPztzNL2hQ
・Time is Moneeeeeeeeeey!!! (Inagi)
https://nico.ms/sm31682928?ref=other_cap_off
・色恋沙汰は全て作図で解決可能であることの証明(家の裏でマンボウが死んでるp)
https://youtu.be/yoHR8qwuqmY
・Badbye(koma’n)
https://nico.ms/sm13560654?ref=other_cap_off
だって弊社LibreOffice Calcで十分だからMicrosoft365契約してないし…
国別の100万人あたりのPCR件数と1000人あたりの死亡数でグラフ作ってみたけどPCRをたくさんしている国って何かいいことあったの?
バカだからこんな比較の仕方しかわからないし、英語を読み違えているかもしれないけど。
https://d.kuku.lu/e0885dab2
1.https://www.worldometers.info/coronavirus/#countriesのデータで100万人あたりの検査数(Test/1M pop)で件数が多い順にソートする。
2.コピーしてLibreOffice Calcに貼り付ける。
3.比較できるように100万人あたりの死亡数(Deaths/1M pop)に1000を乗じる。
4.縦棒と折れ線のグラフを作る。青の縦棒が1000人あたりの死亡数で赤の折れ線が100万人あたりの検査数。
死亡数が0のところはデータなしのところもある。
コラッツ予想の計算過程を出力するプログラム書いたんだけどもっと簡単に簡略して書く方法おしえてけろ
public class Calc{ public static void main(String[] args) { for(int i=2; i>0; i++) { int a = i; System.out.println("-----"+ a +"の場合-----"); while(a != 1) { if(a % 2 == 0) { System.out.println(a +" ÷ 2 = "+(a = a / 2)); }else{ System.out.println(a +" × 3 + 1 = "+(a = 3* a +1)); } } } } }
ずっと旧ページ使ってて、どうにも窮屈な感じがしたので。
.wrapper-container-inner { box-sizing: border-box; width: 100%; padding: 20px 20px 0; background-image: none; } #right-container { display: none; } #center-container { box-sizing: border-box; padding: 0 0 0 20px; width: calc(100% - 180px); }
右カラムは消した。
あくまで広くしただけ。
幅が広すぎる!って場合は最後の width: calc(100% - 180px); にある100%の値を調整すればいい。
はてなブログでありがちな事なのだけど、ブログに自分で作ったわけでもない出来合いの写真やイラストを貼るのが半ば義務であるかのように行われているじゃないですか。文章のテーマに関係ないわけじゃないけれど、読者から見たら全く読解の助けになってないやつ。あれって客寄せとか魔除けとか何か効果があるものなのだろうか?
そういうのがあると、どうせ内容のない文章なんだろうなと期待値が大幅に下がってしまうようになってきた。
逆にペイントで描いたような下手なポンチ絵やLibre Calc丸出しのグラフは期待値が上がる。自分で撮ってきた全く関係ない本日の日記的な写真ですら自分で撮ったなら評価は微増する。読ませたいなら無理に借り物の画像を載せないほうがいいんじゃないのと思う。
どこかで紹介されたときにサムネイルで釣れるから載せてるのだろうか。ちょっと開いてくれたら直帰されても構わないみたいな感じで。
魔除けのために貼っているのだと言うならまあ納得する。
CurrentControllerがミソ。
xls = XLOPEN("ファイル名", XL_OOOC) // Pro版でない場合はCreateOLEObjectに置き換えれば動くかも?
sheet = xls.CurrentController.ActiveSheet
sheet.getCellByPosition(0, 0).CharColor = "&H0000ff"
sheet.getCellByPosition(0, 0).CellBackColor = "&Hffff00"
http://hermione.s41.xrea.com/pukiwiki/index.php?OOoBasic%2FCalc
↑new
「対象を具体的に構成することによって証明可能ならば, 存在しないと仮定して云々ではなく, 実際に構成したほうがよい」あるいは「(最狭義の)背理法なしでいけるならそうすべきだ」(これらは別の主張である)という主張なら意味は通りますが. もっともこの種の議論も教育云々に属すので.
彼の意味の非背理法証明は古典論理に従う通常の証明であり構成的証明や直観主義的な証明などとは異なる. だから直観主義的型理論の証明からrealizerとしてプログラムと正当性証明を抽出する話とか, 直観主義論理の存在具体化性なんかの話とは全く関係がない.
「機械的に書き換え可能なら情報量は変わらないのでは」という簡単な突っ込みもできる. 幾らかの人達は「とはいえ計算数学なんかでは背理法に依らない証明を考えるのは意味があるのでは」といったことを述べているが
件の著書の内容紹介に【「背理法による証明」を、格段に情報量の多い「背理法によらない証明」に機械的に書き換えることができる】とある. これは, 彼の意味の背理法による/よらない証明と, 古典論理/非古典論理による証明, または非構成的/構成的証明, との対比を混同している.
---
「LKもcut-free LKも非背理法的ということではないのか. そうだとするとカット除去定理は背理法除去とは無関係ではないのか.」
他方で彼の著書では竹内・八杉『証明論入門』を引用してカット除去定理が背理法除去を一般化した定理だとも主張している. ここでひとつ反論ができるとすれば「sequent calc.も非背理法的な証明体系ではないか. 証明に現れるsequentは全てvalidではないか.」
---
他方で彼のいう非背理法証明というのはそういう状況が起こらない証明をいう. Hilbert流の証明体系では途中にprovableなformulaしか現れないことを想像せよ. したがって彼の数学としての主張は「自然演繹とHilbert流の体系は同値. よって背理法は除去できる」
実際efqを用いた証明ではefqの適用の直前に矛盾が導かれているはずだから「途中に正しくない主張が現れる」という状況に適合している.
だから彼の拒否する証明法は広義の背理法よりももう少し広いものと考えられる. 例えばex falso quodlibetがnonsenseな証明法だと捉えていることは彼のサイトの記述から明らか.
正確にいうと彼のいう背理法は「否定導入と最狭義の背理法」を合わせたもの. 背理法を拒否する根拠は「背理法を用いた証明では途中に正しくない主張が現れる」こと. 自然演繹の証明図は途中にunprovableなformulaが現れることを想像せよ.
また「背理法を用いて証明できるなら用いないでも出来る」というのは彼の言葉の定義では正しいので「直観主義論理が云々, 派生規則だから暗黙に背理法が使われてる云々」は反駁にならない.
「教育の話だろ」という人間には「教育論の補強に数学を濫用しているし, 数理論理学の教科書まで出版している」と反駁しましょう.「それでも教育的な価値は云々」という人間には「教育論として批判しているのではなく数学として批判しているのだ」と反論しましょう.
適切に批判しないと「(最狭義の)背理法なしでは(通常の述語論理の形式的体系において)証明できない命題があるなどという人間は(彼の意味では背理法なしでも証明できるので)数理論理学を理解していない初心者である」などと云われて, 傾げる首を切り取られてしまった人間が賛同するので
うーん、そこは JUnit の使い方でなんとでもなる。
1つのテストケース動かす度にテーブル作り直すとかありえないし。
テーブルは作り直さずとも、テーブルの中身を truncate でひっくり返して、事前データをブチ込み直すくらいならば平気。
某銀行系での例。マジ怒られそうだから、若干ボカして書くけど、
ひとつのテストメソッド TestXxxDAO.testRetrieveFooBar() は、XxxDAO.retrieveFooBar() メソッドについての複数のパターンのテストを全てやる事にする。そのテストメソッドの中で
というサイクルを繰り返す。テストデータや想定結果は、全て OpenOffice calc なんかを使って、視覚的に書いておく。その ods ファイルを読み、DB に突っ込み、想定結果と比較する処理は独自フレームワークとして用意。ods ファイルは、「こういうデータを準備して、こういう引数でメソッドを呼ぶと、こういう結果になりました」というテストのエビデンスにもなる。
insert 後に select とかってのが切り離して考えられない処理ならば、それはそういう 1 単位の挙動だ。俺なら例えば、XxxDAO.insertFoo()、XxxDAO.retrieveBar() を作ってテストした上で、そいつらを XxxLogic.doSomething() に押し込むね。そしてやはり上記のようなテストが出来る。
頭の中だけだと「それって現実的じゃなくね?」と思えるかも知れないけど、実際やってみるといい。テスト順なんか気にせずにやっつけてしまえるし、案外これで効率よく厳密なテストが出来る。それでもヘタクソな野郎は、テスト順に依存したテストを作りやがって、後でメンテする俺涙目みたいな事にもなるけど。
これでテストデータを作るのが死にそうなほど大変であれば、メソッドの粒度を見直すべきかも知れない、というセンサーにもなる。・・もっとも、XxxLogic.doSomething() などを処理順に纏めた XxxAction.action() なんかのテストともなれば、やっぱ大変なんだけども。