What is "mathematics in programming?"
Some well-known facts in mathematics are difficult to prove using a computer.
For example, the Leibniz series
1 - 1/3 + 1/5 - 1/7 + ...
is exactly equal to π/4, but calculating this series directly is impossible because it requires infinite computation.
However, from the theorems of analysis, this equality can be shown. Thus, if all these theorems are formulated in terms of logic symbols, the proof is reduced to a finite algorithm.
Some might say that a "proof assistant" or "theorem prover" would make this possible.
However, the language of proof assistants is too complicated to describe proofs of non-fundamental theorems, so proof assistants are used only to check proofs that have already been solved.
This is far from doing mathematics.
My question is where do mathematical ideas come from and whether programming can help yield them?
探検
How to do Math in programming
2024/03/21(木) 09:41:43.97ID:85WuJ+Bw
2024/03/21(木) 10:47:44.36ID:8aAFTiSh
fuck your asshole
2024/03/21(木) 11:56:07.97ID:etpddAIY
Theorem Proving in Lean 4 日本語訳
https://aconite-ac.github.io/theorem_proving_in_lean4_ja/title_page.html
定理証明なら、今はCoqよりこっちなんかな
https://aconite-ac.github.io/theorem_proving_in_lean4_ja/title_page.html
定理証明なら、今はCoqよりこっちなんかな
2024/03/21(木) 12:07:26.54ID:etpddAIY
依存型を使った定理証明入門
https://zenn.dev/blackenedgold/books/introduction-to-idris/viewer/theorem-prooving
定理証明の流れは
命題を型に変換する
型がnon-emptyであることを示す
なので、実行時に型チェックすれば動的型付け言語でも証明はできるわけか
ただ、全称型とか存在型とかをどうやって表すのかがわからない
https://zenn.dev/blackenedgold/books/introduction-to-idris/viewer/theorem-prooving
定理証明の流れは
命題を型に変換する
型がnon-emptyであることを示す
なので、実行時に型チェックすれば動的型付け言語でも証明はできるわけか
ただ、全称型とか存在型とかをどうやって表すのかがわからない
2024/03/21(木) 23:49:19.66ID:qInfXZgz
より直感的なシンタックスと、命題のインタフェースを簡単に変換できる機能がほしいな
2024/03/23(土) 09:58:52.52ID:vizf8omG
命題 → 型
偽 → ∅
not A → Hom(A, ∅)
真→ not ∅
AかつB → 直積A×B
AまたはB → 直和A⊕B
AならばB
= not A または B
= (not A)⊕B
= Hom(A, ∅)⊕B
~ Hom(A, B) ※ 真偽が一致する
偽 → ∅
not A → Hom(A, ∅)
真→ not ∅
AかつB → 直積A×B
AまたはB → 直和A⊕B
AならばB
= not A または B
= (not A)⊕B
= Hom(A, ∅)⊕B
~ Hom(A, B) ※ 真偽が一致する
2024/03/24(日) 22:31:53.90ID:XQMIeHSx
プログラムはバイト列にコンパイルされるから、すべてのプログラムは高々可算個になるのだが、なぜ非可算集合をふくむ論理を扱えるんだ?
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)
)
)
)
これよりもさらに手短に、見た目ももっと見易く
レスを投稿する
ニュース
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化 過去10年間に使用のメールアドレスや電話番号等も [Hitzeschleier★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★3 [Hitzeschleier★]
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” [ぐれ★]
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎます」★2 [冬月記者★]
- 【速報】年収の壁の自民案判明、26年は168万円 [蚤の市★]
