探検
How to do Math in programming
2024/03/24(日) 23:10:41.69ID:p5jI7jhC
量化してるからだよ
2024/03/25(月) 00:03:34.00ID:q4vXpy6m
数学者だって、自分の専門分野の数学をすべて論理学と集合論の公理から演繹したわけじゃないだろう
すでに理解したことやよく知られた事実は認めて問題を解いているはずだ
そういう柔軟性がほしい
つまり、認めてもいい仮説はその場その場で手軽に導入できるような言語設計がいい
その上で、そこから機械的に導けることの証明や、定義から直接わかる具体例の計算などを半自動でしてほしい
もちろん、コンピュータにやらせる以上、曖昧さのない構文は必要だろうが
def continuous_at(f: Real -> Real, a: Dom(f)) = forall({e: Real | e > 0},
exists({d: Real | d > 0},
forall({x: Dom(f)},
implies(abs(x - a) < d, abs(f(x) - f(a)) < e)
)
)
)
これよりもさらに手短に、見た目ももっと見易く
すでに理解したことやよく知られた事実は認めて問題を解いているはずだ
そういう柔軟性がほしい
つまり、認めてもいい仮説はその場その場で手軽に導入できるような言語設計がいい
その上で、そこから機械的に導けることの証明や、定義から直接わかる具体例の計算などを半自動でしてほしい
もちろん、コンピュータにやらせる以上、曖昧さのない構文は必要だろうが
def continuous_at(f: Real -> Real, a: Dom(f)) = forall({e: Real | e > 0},
exists({d: Real | d > 0},
forall({x: Dom(f)},
implies(abs(x - a) < d, abs(f(x) - f(a)) < e)
)
)
)
これよりもさらに手短に、見た目ももっと見易く
2024/03/25(月) 01:17:03.24ID:YF7A8RJG
たとえば>>9のcomtinuous_atなんかも、一度書いたはいいけど実際に使うとなると、使うたびに、fの定義域が実数全体じゃない場合みたいな微妙な調整が必要になるんだよね
人間が考えたら時間がかかるような部分をコンピュータに助けてほしいのに、どうしても「知りたいのはそこじゃない」って部分に時間をかけなきゃいけない
人間が考えたら時間がかかるような部分をコンピュータに助けてほしいのに、どうしても「知りたいのはそこじゃない」って部分に時間をかけなきゃいけない
2024/03/25(月) 08:46:28.85ID:e2d3VFLD
かと言って最初から一般的に対応しようとすると、典型的なケースで必要以上に多くの記述をしなきゃならんだろうね
2024/03/25(月) 08:59:06.31ID:e2d3VFLD
継承とかいう欠陥だらけのサブタイピングのしくみは、証明に置き換わってもいい
つまり、厳密にis aであることを証明しなければ継承できない
&ポリモーフィックな関数は型の共通部分で動作が一致することを証明しなければ定義できない
そうすれば誰も使わなくなるか、使える能力のある奴だけが使うようになる
つまり、厳密にis aであることを証明しなければ継承できない
&ポリモーフィックな関数は型の共通部分で動作が一致することを証明しなければ定義できない
そうすれば誰も使わなくなるか、使える能力のある奴だけが使うようになる
2024/03/25(月) 11:24:25.60ID:tzV2+lCA
>>9
量化した変数や条件式の評価は遅延させなきゃいかんから、コールバック地獄みたいになるのね
量化した変数や条件式の評価は遅延させなきゃいかんから、コールバック地獄みたいになるのね
2024/03/25(月) 18:53:28.86ID:gEcAWv1u
証明を書き下すのが手間なのもあるが、数学のオブジェクトをプログラムで扱えるよう定義するのも相当手間だろうね
行列式→行列式を計算するのは簡単だが、置換を使って定義するのはめんどくさそう。置換群を先に定義しなければならない
リーマン積分→区間幅の最大値が0に収束するようなリーマン和の列すべてを考えなければいけない。
商空間で辺に沿って同一視した曲面とかもめんどくさそう。
行列式→行列式を計算するのは簡単だが、置換を使って定義するのはめんどくさそう。置換群を先に定義しなければならない
リーマン積分→区間幅の最大値が0に収束するようなリーマン和の列すべてを考えなければいけない。
商空間で辺に沿って同一視した曲面とかもめんどくさそう。
2024/03/26(火) 01:22:14.15ID:D7UVXJYK
2024/04/01(月) 00:51:33.03ID:1WSos/bD
>>14
数学を表現するための概念のサブセットも選ばないといけない
現代数学が公理的集合論で記述されることは誰でも知ってるけど、具体的な対象(たとえば実数など)を扱う時に、それが∅から始めてZFCで構成可能かどうかなんてことを意識している人はいない
おそらく多倍長整数と浮動小数点数くらいはあったほうがいい
数学を表現するための概念のサブセットも選ばないといけない
現代数学が公理的集合論で記述されることは誰でも知ってるけど、具体的な対象(たとえば実数など)を扱う時に、それが∅から始めてZFCで構成可能かどうかなんてことを意識している人はいない
おそらく多倍長整数と浮動小数点数くらいはあったほうがいい
2024/04/01(月) 00:58:01.06ID:1WSos/bD
あと、近年のスクリプト言語における型チェッカやJITコンパイラなどと同様に、
言語は同じでも、プログラミングをする処理系と、証明をする処理系をわけたほうがいいと思う
同じだと、たとえば自然数の2を、数値として評価するか、「0の後者の後者」のように展開するか、プログラマが書き分けないといけない
言語は同じでも、プログラミングをする処理系と、証明をする処理系をわけたほうがいいと思う
同じだと、たとえば自然数の2を、数値として評価するか、「0の後者の後者」のように展開するか、プログラマが書き分けないといけない
2024/04/08(月) 20:17:45.51ID:lvukj15+
パターンマッチングの構文もかなり柔軟じゃないと書きづらいだろうね
複素関数をf = u + ivと分解するとか、V^nの既定v_1, ..., v_nを取るとか、そういうのが頻繁にある
複素関数をf = u + ivと分解するとか、V^nの既定v_1, ..., v_nを取るとか、そういうのが頻繁にある
2024/04/08(月) 21:50:38.81ID:azze6O2m
2024/04/11(木) 19:11:04.51ID:0/pdO5wD
埋め込みによって元の空間とその像を同一視するとか、
解析接続によって部分領域上定義された正則関数を複素平面全体の関数とみなすとか、
そういうのはどうやるんだろうな
解析接続によって部分領域上定義された正則関数を複素平面全体の関数とみなすとか、
そういうのはどうやるんだろうな
2024/04/11(木) 22:05:12.71ID:M3s07OXs
穴を掘って埋める、平安京エイリアン
2024/04/12(金) 07:06:54.14ID:mV7jaryD
LeanとIdrisはどちらが良い?
2024/04/12(金) 08:41:58.82ID:dWqcXhet
∅への写像は定義域が∅のときのみ存在するから
p→∅がpの否定を表すのね
p→∅がpの否定を表すのね
2024/04/12(金) 09:44:04.06ID:sBlCiCbm
背理法って、Falseをreturnしたら全部示されるんじゃないの
2024/04/12(金) 11:38:22.83ID:VfOiBAdh
>>24
False型の値を返すと、Falseが証明される
False型の値はない(FalseはType型の値)ので、真の命題からは返すことはできない
唯一返すことができるのは、仮定もFalseである場合のみ
これはXから∅への写像の集合
∅^X := {f: X -> ∅}
が、X = ∅のときのみ元を1個持ち、その他の時は空集合であることに対応
False型の値を返すと、Falseが証明される
False型の値はない(FalseはType型の値)ので、真の命題からは返すことはできない
唯一返すことができるのは、仮定もFalseである場合のみ
これはXから∅への写像の集合
∅^X := {f: X -> ∅}
が、X = ∅のときのみ元を1個持ち、その他の時は空集合であることに対応
2024/04/12(金) 12:30:58.16ID:Kw0ACNUt
boolean main()
{returnFALSE);};
{returnFALSE);};
2024/04/12(金) 12:47:01.19ID:trEYbdGK
「∅を返す」と「a∈∅となるaを返す」の違いがわからないのか?
2024/04/12(金) 15:02:42.13ID:/hR1sMGb
>>26
ここのFalseはブーリアン型ではない
ここのFalseはブーリアン型ではない
2024/04/19(金) 11:16:47.49ID:fuxAiCc1
何がしたいのかよくわからんけど、計算に時間がかかっていいなら色々と自動化できるんじゃね
プログラミング言語で細かく指示するのは欲しい結果以外の計算をはぶくためでもあるからな
そしてユーザーが欲しがる結果を言語を設計する時点で特定することはできない
プログラミング言語で細かく指示するのは欲しい結果以外の計算をはぶくためでもあるからな
そしてユーザーが欲しがる結果を言語を設計する時点で特定することはできない
2024/04/19(金) 12:06:54.47ID:0YEF9E1Q
2024/04/19(金) 12:59:19.99ID:wsMDWrIu
その平凡なアイデア思いついたのお前が初めてだと思うか?
2024/04/19(金) 13:58:03.23ID:3z6RQVPy
「自分が初めて思いついた」という話題はどこから出てきたの?
2024/06/10(月) 22:10:57.74ID:TCmEQru+
>>9
同意
同意
2025/04/27(日) 16:18:53.10ID:rRExk4WB
日本語と英語と同じスレがあるのか
重複だからどっちか削除汁
重複だからどっちか削除汁
レスを投稿する
ニュース
- こども家庭庁、2026年から“独身税”を開始、年収200万なら年4200円、年収400万なら年7800円 [お断り★]
- 山里亮太、フィリピンに子ども食堂を建設 「偽善者」「日本の子どもを助けるべき」の声があっても活動を続ける理由 [Anonymous★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★3 [Hitzeschleier★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 ★4 [少考さん★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 [少考さん★]
- 【芸能】粗品 「間違ったお笑いの常識が放送されている」「テレビ見てる素人って、笑い声でしか面白いかどうか判断できない。可哀想」 [冬月記者★]
- 他サポ2025-302
- 【NJPW】新日本プロレスワールド part.2431
- 阪神競馬5回4日目 阪神JF
- 第80回甲子園ボウル 立命館大学 vs 関西学院大学★1
- 第80回甲子園ボウル 立命館大学 vs 関西学院大学★2
- 中山競馬5回4日目その2カペラエス
- 中国、日本人メンバーがいるK-POPアイドルの行事を中止 [329271814]
- 【高市与党】維新に大爆弾ネタが大阪の自民党府議から投下される [115996789]
- 【悲報】すまん何で日本ってこんなに反『中国』が増えたんだ?ネトウヨどころかそこらの一般人レベルでもゴロゴロいる [483447288]
- あ、出ちゃう、イクッ😫💦🏡
- 【悲報】日本人の「旅行離れ」が深刻化。愛国者は今すぐ旅行に行け! [834922174]
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪★6
