はてなキーワード: 有界とは
定義:Hの分割 {Ai}iεI が存在し、SO(3)の部分群 G が存在して、
1. H = ∪iεI Ai
2. Ai ∩ Aj = ∅ for i ≠ j
3. ∃g1, g2, ..., gn ε G such that ∪k=1n gk(∪iεI1 Ai) = H and ∪k=1n gk(∪iεI2 Ai) = H
ここで、I1 ∪ I2 = I かつ I1 ∩ I2 = ∅
事象の地平面上の量子状態を密度作用素 ρ ε B(H) で表現する。
S(ρ) = -Tr(ρ log ρ)
AdS/CFT対応に基づき、バルク空間の重力理論と境界のCFTの間の同型を考える:
Zgravity[φ0] = ZCFT[J]
I[H] = ∫H √h d³x I(x)
ここで、hはHの誘導計量、I(x)は局所的な情報密度である。
I[H] = I[∪iεI1 Ai] + I[∪iεI2 Ai]
が成り立つ。
プランクスケールでの量子効果を考慮するため、非可換幾何学を導入する。
H上の座標演算子 X̂i に対して:
[X̂i, X̂j] = iθij
limε→0 |I[H] - (I[∪iεI1 Ai] + I[∪iεI2 Ai])| ≤ Cε
ここで、εはプランク長に関連するカットオフパラメータ、Cは定数である。
このモデルは、バナッハ=タルスキーのパラドックスとブラックホールの情報量問題を統合している。
量子効果と非可換幾何学の導入により、情報の保存と量子重力理論との整合性を保ちつつ、事象の地平面上の情報量を記述することが可能となる。
このアプローチは、量子重力理論と情報理論の融合に新たな視座を提供し、ブラックホール情報パラドックスの解決に向けた理論的基盤を提供する。
複素数体上の楕円曲線 E と、そのミラー対称である双対楕円曲線 Eᐟ を考える。このとき、E のフクヤ圏 𝓕(E) は、Eᐟ の連接層の有界導来圏 𝔇ᵇ(𝐶𝑜ℎ(Eᐟ)) と三角圏として同値である。
𝓕(E) ≃ 𝔇ᵇ(𝐶𝑜ℎ(Eᐟ))
証明:
1. 交点の特定: L₀ と L₁ が E 上で交わる点の集合を 𝑃 = L₀ ∩ L₁ とする。
2. 生成元の設定: フロアーコホモロジー群の生成元は、各交点 𝑝 ∈ 𝑃 に対応する形式的なシンプレクティック・チェーンである。
3. 次数の計算: 各交点 𝑝 の次数 𝑑𝑒𝑔(𝑝) は、マスロフ指標やラグランジアンの相対的な位置関係から決定される。
4. 微分の定義: フロアー微分 𝑑 は、擬正則ストリップの数え上げによって定義されるが、楕円曲線上では擬正則ディスクが存在しないため、微分は消える(𝑑 = 0)。
5. コホモロジー群の計算: よって、𝐻𝐹ⁱ((L₀, ∇₀), (L₁, ∇₁)) は生成元の自由加群となる。
𝐻𝑜𝑚ⁱ(𝓔, 𝓕) = 𝐸𝑥𝑡ⁱ(𝓔, 𝓕)
Φ(L, ∇) = 𝑝₂*(𝑝₁*(𝓛ₗ) ⊗ 𝓟)
ここで、𝑝₁: E × Eᐟ → E、𝑝₂: E × Eᐟ → Eᐟ は射影であり、𝓛ₗ は L に対応するラインバンドルである。
- L₀ と L₁ の交点 𝑝 ∈ 𝑃 に対し、そのフロアーコホモロジー群は生成元 [𝑝] で張られる。
- 次数 𝑑𝑒𝑔([𝑝]) は、ラグランジアンの相対的な位相データとモノドロミーから決定される。
2. Ext 群の計算:
- Φ(L₀, ∇₀) = 𝓛₀、Φ(L₁, ∇₁) = 𝓛₁ とすると、Ext 群は
𝐸𝑥𝑡ⁱ(𝓛₀, 𝓛₁) ≅
{ ℂ, 𝑖 = 0, 1
0, 𝑖 ≠ 0, 1 }
3. 対応の確立: フロアーコホモロジー群 𝐻𝐹ⁱ((L₀, ∇₀), (L₁, ∇₁)) と Ext 群 𝐸𝑥𝑡ⁱ(𝓛₀, 𝓛₁) は次数ごとに一致する。
超弦理論を数学的に抽象化するために、場の理論を高次圏(∞-圏)の関手として定式化する。
𝒵: 𝐵𝑜𝑟𝑑ₙᵒʳ → 𝒞ᵒᵗⁿ
ここで、𝒞ᵒᵗⁿ は対称モノイダル (∞, n)-圏(例:鎖複体の圏、導来圏など)。
超弦理論におけるフィールドのモジュライ空間を、導来代数幾何の枠組みで記述する。
BV形式はゲージ対称性と量子化を扱うためにホモトピー代数を使用する。
Δ exp(𝑖/ℏ 𝑆) = 0
ミラー対称性はシンプレクティック幾何学と複素幾何学を関連付ける。
𝓕(𝑋) ≃ 𝐷ᵇ(𝒞𝑜ʰ(𝑌))
以上の数学的構造を用いて、超弦理論における重要な定理である「ホモロジカル・ミラー対称性の定理」を証明する。
ミラー対称なカラビ・ヤウ多様体 𝑋 と 𝑌 があるとき、𝑋 のフクヤ圏 𝓕(𝑋) は 𝑌 の連接層の有界導来圏 𝐷ᵇ(𝒞𝑜ʰ(𝑌)) と三角圏として同値である。
𝓕(𝑋) ≅ 𝐷ᵇ(𝒞𝑜ʰ(𝑌))
1. フクヤ圏の構築:
- 対象:𝑋 上のラグランジアン部分多様体 𝐿 で、適切な条件(例えば、スピン構造やマスロフ指数の消失)を満たすもの。
- 射:ラグランジアン間のフロアーコホモロジー群 𝐻𝐹*(𝐿₀, 𝐿₁)。
2. 導来圏の構築:
- 射:Ext群 𝐻𝐨𝐦*(𝒜, 𝐵) = Ext*(𝒜, 𝐵)。
- 合成:連接層の射の合成。
- ファンクターの構成:ラグランジアン部分多様体から連接層への対応を定義する関手 𝐹: 𝓕(𝑋) → 𝐷ᵇ(𝒞𝑜ʰ(𝑌)) を構築する。
- 構造の保存:この関手が 𝐴∞ 構造や三角圏の構造を保存することを示す。
- 物理的対応:𝑋 上の 𝐴-モデルと 𝑌 上の 𝐵-モデルの物理的計算が一致することを利用。
- Gromov–Witten 不変量と周期:𝑋 の種数ゼロのグロモフ–ウィッテン不変量が、𝑌 上のホロモルフィック 3-形式の周期の計算と対応する。
5. 数学的厳密性:
- シンプレクティック幾何学の結果:ラグランジアン部分多様体のフロアーコホモロジーの性質を利用。
- 代数幾何学の結果:連接層の導来圏の性質、特にセール双対性やベクトル束の完全性を利用。
結論:
以上により、フクヤ圏と導来圏の間の同値性が確立され、ホモロジカル・ミラー対称性の定理が証明される。
ラグランジアン部分多様体 𝐿₀, 𝐿₁ に対し、フロアー境界演算子 ∂ を用いてコホモロジーを定義:
∂² = 0
𝐻𝐹*(𝐿₀, 𝐿₁) = ker ∂ / im ∂
∑ₖ₌₁ⁿ ∑ᵢ₌₁ⁿ₋ₖ₊₁ (-1)ᵉ 𝑚ₙ₋ₖ₊₁(𝑎₁, …, 𝑎ᵢ₋₁, 𝑚ₖ(𝑎ᵢ, …, 𝑎ᵢ₊ₖ₋₁), 𝑎ᵢ₊ₖ, …, 𝑎ₙ) = 0
Extⁱ(𝒜, 𝐵) ⊗ Extʲ(𝐵, 𝒞) → Extⁱ⁺ʲ(𝒜, 𝒞)
幾何学的ラングランズ・プログラムと M 理論・超弦理論の関係を、抽象数学を用いて厳密に数理モデル化する。
まず、以下のデータを考える。
- このスタックはアルティンスタックであり、代数幾何学的な手法で扱われる。
- 𝑋 上の ᴸ𝐺-局所系(つまり、平坦 ᴸ𝐺-束)の同型類全体のスタック。
- これは、基本群 π₁(𝑋) の表現のモジュライスタックと同一視できる。
幾何学的ラングランズ予想は、以下のような圏の同値を主張する。
𝐷ᵇ\_ℎₒₗ(𝐵𝑢𝑛\_𝐺(𝑋)) ≃ 𝐷ᵇ\_𝑐ₒₕ(𝐿𝑜𝑐\_{ᴸ𝐺}(𝑋))
ここで、
この同値は、フーリエ–ムカイ変換に類似した核関手を用いて構成されると予想されている。
核関手 𝒫 を 𝐵𝑢𝑛\_𝐺(𝑋) × 𝐿𝑜𝑐\_{ᴸ𝐺}(𝑋) 上の適切な対象として定義し、それにより関手
Φ\_𝒫: 𝐷ᵇ\_ℎₒₗ(𝐵𝑢𝑛\_𝐺(𝑋)) → 𝐷ᵇ\_𝑐ₒₕ(𝐿𝑜𝑐\_{ᴸ𝐺}(𝑋))
Φ\_𝒫(ℱ) = 𝑅𝑝₂ₓ(𝑝₁∗ ℱ ⊗ᴸ 𝒫)
ここで、
𝑝₁: 𝐵𝑢𝑛\_𝐺(𝑋) × 𝐿𝑜𝑐\_{ᴸ𝐺}(𝑋) → 𝐵𝑢𝑛\_𝐺(𝑋), 𝑝₂: 𝐵𝑢𝑛\_𝐺(𝑋) × 𝐿𝑜𝑐\_{ᴸ𝐺}(𝑋) → 𝐿𝑜𝑐\_{ᴸ𝐺}(𝑋)
問題点は、この核 𝒫 を具体的に構成することが難しく、これが幾何学的ラングランズ予想の核心的な課題となっている。
ヒッチン写像を導入する。
ℎ: ℳₕ(𝐺) → 𝒜 = ⨁ᵢ₌₁ʳ 𝐻⁰(𝑋, Ωₓᶦᵈⁱ)
ここで、ℳₕ(𝐺) は 𝐺-ヒッグス束のモジュライ空間、ᶦᵈⁱ は 𝐺 の基本不変式の次数。
完全可積分系: ヒッチンファイブレーション ℎ は完全可積分系を定義し、そのリウヴィル可積分性がモジュライ空間のシンプレクティック構造と関係する。
Kontsevich のホモロジカルミラー対称性予想に基づく。
𝐷ᵇ\_𝑐ₒₕ(ℳₕ(𝐺)) ≃ 𝐷ᵖⁱ 𝐹ᵘₖ(ℳₕ(ᴸ𝐺))
ここで、
- 𝐷ᵇ\_𝑐ₒₕ は連接層の有界導来圏。
- 𝐷ᵖⁱ 𝐹ᵘₖ はフカヤ圏のコンパクト対象からなる導来圏。
この同値は、ヒッチンファイブレーションを介してシンプレクティック幾何と複素幾何の間の双対性を示唆する。
𝐷ᵇ(𝐹ₗₐₜ\_𝐺(𝑋)) ≃ 𝐷ᵇ(𝐻ᵢ₉₉ₛ\_𝐺(𝑋))
ここで、
- 𝐹ₗₐₜ\_𝐺(𝑋) は 𝑋 上の平坦 𝐺-束のモジュライスタック。
- 𝐻ᵢ₉₉ₛ\_𝐺(𝑋) は 𝑋 上の 𝐺-ヒッグス束のモジュライスタック。
作用素:
M 理論におけるブレーンの配置:
- ℝ¹,³ は 4 次元の時空。
- Σ は曲線 𝑋。
Lurie の高次圏論:
幾何学的ラングランズ・プログラムと M 理論・超弦理論の関係は、以下の数学的構造を通じてモデル化される。
これらの数学的構造を組み合わせることで、幾何学的ラングランズ・プログラムと M 理論・超弦理論の関係性をモデル化できる。
2. 波動関数がシュレーディンガー方程式に従って時間発展する。
Hilb は次の性質を持つ。
- (S ∘ T)† = T† ∘ S†
- (T†)† = T
- id_H† = id_H
- (T ⊗ S)† = T† ⊗ S†
- 評価射: eval_H: H* ⊗ H → ℂ
- 共評価射: coeval_H: ℂ → H ⊗ H*
- (id_H ⊗ eval_H) ∘ (coeval_H ⊗ id_H) = id_H
- (eval_H ⊗ id_H*) ∘ (id_H* ⊗ coeval_H) = id_H*
⟨φ|ψ⟩ = (φ† ∘ ψ): ℂ → ℂ
⟨A⟩ψ = (ψ† ∘ A ∘ ψ): ℂ → ℂ
U(t) = exp(-iHt/ħ): H → H
- 射: t₁ → t₂ は t₂ - t₁ ∈ ℝ
- 射の対応: F(t₁ → t₂) = U(t₂ - t₁)
ψ(t₂) = U(t₂ - t₁) ∘ ψ(t₁)
U(t₃ - t₁) = U(t₃ - t₂) ∘ U(t₂ - t₁)
H_total = H_BH ⊗ H_rad
U_total(t): H_total → H_total
- U_total(t) はユニタリ射。
E(ρ_in) = Tr_H_BH (U_total ρ_in ⊗ ρ_BH U_total†)
- Tr_H_BH: H_BH 上の部分トレース
- 存在定理: 任意の完全正なトレース保存マップ E は、あるヒルベルト空間 K とユニタリ作用素 V: H_in → H_out ⊗ K を用いて表現できる。
E(ρ) = Tr_K (V ρ V†)
- バルクの圏 Hilb_bulk: ブラックホール内部の物理を記述。
- 境界の圏 Hilb_boundary: 境界上の物理を記述。
- G は忠実かつ充満なモノイドダガー関手であり、情報の完全な写像を保証。
- バルク: F_bulk: Time → Hilb_bulk
- 境界: F_boundary: Time → Hilb_boundary
- 各時刻 t に対し、η_t: F_bulk(t) → G(F_boundary(t)) は同型射。
η_t₂ ∘ U_bulk(t₂ - t₁) = G(U_boundary(t₂ - t₁)) ∘ η_t₁
- これにより、バルクと境界での時間発展が対応し、情報が失われないことを示す。
量子力学を圏論的に定式化し、ユニタリなダガー対称モノイド圏として表現した。ブラックホール情報パラドックスは、全体系のユニタリ性とホログラフィー原理を圏論的に導入することで解決された。具体的には、ブラックホール内部と境界理論の間に忠実かつ充満な関手と自然変換を構成し、情報が圏全体で保存されることを示した。
M理論の幾何学を最も抽象的かつ厳密に記述するには、圏論的アプローチが不可欠でござる。
M理論の幾何学的構造は、三角圏の枠組みで捉えることができるのでござる。特に、カラビ・ヤウ多様体 X の導来圏 D⁰(Coh(X)) が中心的役割を果たすのでござる。
定義:D⁰(Coh(X)) は連接層の有界導来圏であり、以下の性質を持つのでござる:
1. 対象:連接層の複体
この圏上で、Fourier-向井変換 Φ: D⁰(Coh(X)) → D⁰(Coh(X̂)) が定義され、これがミラー対称性の数学的基礎となるのでござる。
2. 各対の対象 X,Y に対する次数付きベクトル空間 hom𝒜(X,Y)
3. 次数 2-n の演算 mₙ: hom𝒜(Xₙ₋₁,Xₙ) ⊗ ⋯ ⊗ hom𝒜(X₀,X₁) → hom𝒜(X₀,Xₙ)
これらは以下のA∞関係式を満たすのでござる:
∑ᵣ₊ₛ₊ₜ₌ₙ (-1)ʳ⁺ˢᵗ mᵣ₊₁₊ₜ(1⊗ʳ ⊗ mₛ ⊗ 1⊗ᵗ) = 0
この構造は、Fukaya圏の基礎となり、シンプレクティック幾何学とM理論を結びつけるのでござる。
M理論の完全な幾何学的記述には、高次圏論、特に(∞,1)-圏が必要でござる。
定義:(∞,1)-圏 C は以下の要素で構成されるのでござる:
2. 各対の対象 x,y に対する写像空間 MapC(x,y)(これも∞-グルーポイド)
3. 合成則 MapC(y,z) × MapC(x,y) → MapC(x,z)(これはホモトピー整合的)
この構造により、M理論における高次ゲージ変換や高次対称性を厳密に扱うことが可能になるのでござる。
M理論の幾何学は、導来代数幾何学の枠組みでより深く理解できるのでござる。
定義:導来スタック X は、以下の関手として定義されるのでござる:
X: CAlg𝔻 → sSet
ここで、CAlg𝔻 は単体的可換環の∞-圏、sSet は単体的集合の∞-圏でござる。
この枠組みにおいて、M理論のモジュライ空間は導来スタックとして記述され、その特異性や高次構造を厳密に扱うことが可能になるのでござる。
M理論の幾何学的側面は、量子コホモロジー環 QH*(X) を通じて深く理解されるのでござる。
定義:QH*(X) = H*(X) ⊗ ℂ[[q]] で、積構造は以下で与えられるのでござる:
α *q β = ∑A∈H₂(X,ℤ) (α *A β) qᴬ
ここで、*A はGromov-Witten不変量によって定義される積でござる:
α *A β = ∑γ ⟨α, β, γ∨⟩₀,₃,A γ
(H, ⟨·|·⟩)を可分なヒルベルト空間とし、B(H)をH上の有界線形作用素の集合とする。
S(H) = {ρ ∈ B(H) : ρ ≥ 0, Tr(ρ) = 1}を密度作用素の集合とする。A ⊂ B(H)を自己共役作用素の部分代数とし、これを観測量の集合とする。
ユニタリ群{Ut}t∈ℝを考え、シュレーディンガー方程式を以下のように表現する:
S(H)上にトレース距離を導入し、位相空間(S(H), τ)を定義する。
A上にC*-代数の構造を導入し、局所的な部分代数の族{A(O)}O⊂ℝ⁴を定義する。ここでOは時空の開集合である。
A(O1)とA(O2)が可換であるとき、O1とO2は因果的に独立であると定義する。これにより、ℝ⁴上に因果構造を導入する。
状態ρ ∈ S(H)に対し、関数dρ : A × A → ℝ+を以下のように定義する:
dρ(A, B) = √Tr(ρ[A-B]²)
この関数から、ℝ⁴上の擬リーマン計量gμνを再構成する手続きを定義する。
(ℝ⁴, gμν)を基底時空とし、これに対して商位相を導入することで、等価類の空間M = ℝ⁴/∼を定義する。Mを創発した時空多様体とみなす。
写像Φ : S(H) → Mを構成し、量子状態と時空点の対応を定義する。
シュレーディンガー方程式による時間発展ρ(t) = Ut ρ Ut*が、M上の滑らかな曲線γ(t) = Φ(ρ(t))に対応することを示す。
コンピュータ・サイエンスで取り組まれている問題の一覧を紹介しよう。
本稿では、和田秀樹氏らが提唱している暗記数学というものについて述べます。
受験数学の方法論には「暗記数学」と「暗記数学以外」の二派があるようですが、これは暗記数学が正しいです。後者の話に耳を傾けるのは時間の無駄です。
まず、読者との認識を合わせるために、暗記数学に関するよくある誤解と、それに対する事実を述べます。
暗記数学は、数学の知識を有機的な繋がりを伴って理解するための勉強法です。公式や解法を覚える勉強法ではありません。「暗記」という語は、「ひらめき」とか「才能」などの対比として用いられているのであり、歴史の年号のような丸暗記を意味するわけではありません。このことは、和田秀樹氏の著書でも繰り返し述べられています。
類似の誤解として、
などがあります。これらは事実に反します。むしろ、大学の理学部や工学部で行わていれる数学教育は暗記数学です。実際、たとえば数学科のセミナーや大学院入試の口頭試問などでは、本稿で述べるような内容が非常に重視されます。また、ほとんどの数学者は暗記数学に賛同しています。たまに自他共に認める「変人」がいて、そういう人が反対しているくらいです。大学教育の関係者でない人が思い込みで異を唱えても、これが事実だとしか言いようがありません。
嘘だと思うならば、岩波書店から出ている「新・数学の学び方」を読んで下さい。著者のほとんどが、本稿に書いてあるように「具体例を考えること」「証明の細部をきちんと補うこと」を推奨しています。この本の著者は全員、国際的に著名な業績のある数学者です。
そもそも、暗記数学は別に和田秀樹氏が最初に生み出したわけではなく、多くの教育機関で昔から行われてきたオーソドックスな勉強法です。和田秀樹氏らは、その実践例のひとつを提案しているに過ぎません。
暗記数学の要点を述べます。これらは別に数学の勉強に限ったことではなく、他の科目の勉強でも、社会に出て自分の考えや調べたことを報告する上でも重要なことです。
一番目は、従来数学で重要なものが「ひらめき」や「才能」だと思われてきたことへのアンチテーゼです。実際には、少なくとも高校数学程度であれば、特別な才能など無くとも多くの人は習得できます。そのための方法論も存在し、昔から多くの教育機関で行われています。逆に、「"才能"を伸ばす勉強法」などと謳われるもので効果があると実証されたものは存在しません。
大学入試に限って言えば、入試問題は大学で研究活動をする上で重要な知識や考え方が身についているのかを問うているのであって、決していたずらな難問を出して「頭の柔らかさ」を試したり、「天才」を見出そうとしているわけではありません。
二番目はいわゆる「解法暗記」です。なぜ実例が重要なのかと言えば、数学に限らず、具体的な経験と結びついていない知識は理解することが極めて困難だからです。たとえば、
などを、初学者が読んで理解することは到底不可能です。数学においても、たとえば二次関数の定義だけからその最大・最小値問題の解法を思いついたり、ベクトルの内積の定義や線形性等の性質だけを習ってそれを幾何学の問題に応用することは、非常に難しいです。したがって、それらの基本的な概念や性質が、具体的な問題の中でどのように活用されるのかを理解する必要があります。
これは、将棋における定跡や手筋に似ています。駒の動かし方を覚えただけで将棋が強くなる人はまず居らず、実戦で勝つには、ルールからは直ちには明らかでない駒の活用法を身につける必要があります。数学において教科書を読んだばかりの段階と言うのは、将棋で言えば駒の動かし方を覚えた段階のようなものです。将棋で勝つために定跡や手筋を身につける必要があるのと同様、数学を理解するためにも豊富な実例を通じて概念や定理の使い方を理解する必要があります。そして、将棋において初心者が独自に定跡を思いつくことがほぼ不可能なのと同様、数学の初学者が有益な実例を見出すことも難しいです。したがって、教科書や入試問題に採用された教育効果の高い題材を通じて、数学概念の意味や論証の仕方などを深く学ぶべきです。
そして、これは受験数学だけでなく、大学以降の数学を学ぶ際にも極めて重要なことです。特に、大学以降の数学は抽象的な概念が中心になるため、ほとんどの大学教員は、学生が具体的な実例を通じて理解できているかを重視します。たとえば、数学科のセミナーや大学院入試の口頭試問などでは、以下のような質問が頻繁になされます。
教科書や解答例の記述で分からない部分は、調べたり他人に聞いたりして、完全に理解すべきです。自分の理解が絶対的に正しいと確信し、それに関して何を聞かれても答えられる状態にならなければいけません。
たとえば、以下のようなことは常に意識し、理解できているかどうか自問すべきです。
ほとんどの人はまず「自分は数学が分かっていない」ということを正確に認識すべきです。これは別に、「数学の非常に深い部分に精通せよ」という意味ではありません。上に書いたような「定義が何で、定理の仮定と結論が何で、文中の主張を導くために何の定理を使ったのか」といったごく当たり前のことを、多くの人が素通りしていると言うことです。
まず、用語や記号の定義が分からないのは論外です。たとえば、極大値と最大値の違いが分かっていないとか、総和記号Σ でn = 2とか3とかの場合に具体的に式を書き下せないのは、理解できていないということなのですから、調べたり他人に聞いたりする必要があります。
また、本文中に直接書いていないことや、「明らか」などと書いてあることについても、どのような性質を用いて導いたのか正確に理解する必要があります。たとえば、
などと書いてあったら、これは
という一般的な定理を暗に使っていることを見抜けなければいけません。上の命題はpが素数でなければ成り立ちません。たとえば、l = 1, m = n = 2として、4l = mnを考えれば、mもnも4で割り切れません。他にも、
は正しいですが、逆は一般的には成り立ちません。nとmが互いに素ならば成り立ちます。それをきちんと証明できるか。できなければ当然、調べたり他人に聞いたりする必要があります。
l'Hôpitalの定理なども、もし使うのであれば、その仮定を満たしていることをきちんと確かめる必要があります。
さらに、単に解法を覚えたり当て嵌めたりするのではなく、「なぜその方法で解けるのか」「どうしてそのような式変形をするのか」という原理や意図を理解しなければいけません。たとえば、「微分で極値が求まる理屈は分からない(或いは、分からないという自覚さえない)が、極値問題だからとりあえず微分してみる」というような勉強は良くありません。
そして、教科書の一節や問題の解答を理解できたと思ったら、本を見ずにそれらを再現してみます。これは「解き方を覚える」と言うことではなく、上に書いたようなことがすべて有機的な繋がりを持って理解できているか確かめると言うことです。
はじめの内はスラスラとは出来ないと思います。そういう時は、覚えていない部分を思い出したり、本を見て覚え直すのではなく、以下のようなことを自分で考えてみます。
こういうことを十分に考えた上で本を読み直せば、ひとつひとつの定義や定理、式変形などの意味が見えてきます。また、問題を解くときは答えを見る前に自分で解答を試みることが好ましいです。その方が、自分が何が分かっていて何が分かっていないのかが明確になるからです。
以上のことは、別に数学の勉強に限った話ではありません。社会に出て自分の考えや調べたことを報告する時などでも同様です。たとえば、近年の労働法や道路交通法の改正について説明することになったとしましょう。その時、そこに出てくる用語の意味が分からないとか、具体的にどういう行為か違法(or合法)になったのか・罰則は何か、と言ったことが説明できなければ、責任ある仕事をしているとは見なされないでしょう。
a = (a_n)をCauchy列とする。
まず、aが有界であることを示す。aはCauchy列であるから、あるNが存在して、n, m≧Nとなるすべてのn, mに対して、|a_n - a_m| < 1となるようにできる。したがって、n ≧ Nならば
|a_n| ≦ |a_N| + |a_n - a_N| < |a_N| + 1。
よって、M = max {|a_1|, |a_2|, ..., |a_N|, |a_N| + 1} とおけば、すべてのnに対して、|a_n| ≦ Mとなる。したがって、aは有界である。
aは有界だから、Bolzano-Weierstrassの定理より、aには収束する部分列が存在する。その1つをa' = (a_(n_i))とし、lim[i→∞] a_(n_i) = Aとする。aがAに収束することを示す。
正の数εを任意に取る。
a'はAに収束するので、あるN_1が存在して、n_i ≧ N_1ならば、|a_(n_i) - A| < ε/2となる。
一方、aはCauchy列なので、あるN_2が存在して、n, m ≧ N_2ならば、|a_n - a_m| < ε/2となる。
N = max {N_1, N_2}とおくと、n_i ≧ Nとなるn_iが存在して、n ≧ Nならば、
|a_n - A| ≦ |a_n - a_(n_i)| + |a_(n_i) - A| < ε
一方は正しい数学の文章である。もしかしたら間違っているかも知れないが、少なくとも数学的に正しいか間違っているかが判定できる。
もう一方は完全に出鱈目な文章である。数学的に何の意味もない支離滅裂なものである。
本稿を通して、kは代数閉体とする。
i: [x: y] → [x^2: xy: y^2]
を考える。iの像は、ℙ^2の閉部分スキーム
Proj(k[X, Y, Z]/(Y^2 - XZ))
と同型であり、iはℙ^1のℙ^2への埋め込みになっている。ℙ^2の可逆層O_{ℙ^2}(1)のiによる引き戻しi^*(O_{ℙ^2}(1))は、ℙ^1の可逆層O_{ℙ^1}(2)である。つまり、O_{ℙ^1}(2)はℙ^1のℙ^2への埋め込みを定める。
与えられたスキームが射影空間に埋め込めるかどうかは、代数幾何学において重要な問題である。以下、可逆層と射影空間への射の関係について述べる。
定義:
Xをスキームとし、FをO_X加群の層とする。Fが大域切断で生成されるとは、{s_i∈H^0(X, F)}_{i∈I}が存在して、任意の点x∈Xに対して、ストークF_xがO_{X,x}加群としてs_{i,x}で生成されることである。
Xをk上のスキーム、LをX上の可逆層で大域切断で生成されるものとする。d + 1 = dim(H^0(X, L))とし、s_0, ..., s_dをH^0(X, L)の生成元とする。このとき、Xからk上の射影空間ℙ^dへの射fが
f: x → [s_0(x): ...: s_d(x)]
により定まり、ℙ^dの可逆層O_{ℙ^d}(1)のfによる引き戻しf^*(O_{ℙ^d}(1))はLになっている。この射が埋め込みになるとき、Lをベリーアンプルという。生成元の取り方に寄らない定義を述べると、以下のようになる。
定義:
Xをk上のスキーム、LをX上の可逆層とする。Lがベリーアンプルであるとは、k上の射影空間ℙ^dと埋め込みi: X → ℙ^dが存在して、L~i^*(O_{ℙ^d}(1))となることである。
例として、ℂ上の楕円曲線(種数1の非特異射影曲線)Eを考える。閉点p∈Eと自然数n≧1に対して、因子pに付随する可逆層O_{E}(np)={f∈K(E)| np + (f)≧0}を考える。Riemann-Rochの定理より、
dim(O_{E}(np)) - dim(O_{E}(K - np)) = deg(np) + 1 - g = n
∴ dim(O_{E}(np)) = n + dim(O_{E}(K - np))
であり、楕円曲線上の正則微分形式は零点も極も持たないから、すべてのnに対してdeg(K - np)<0であり、よってdim(O_{E}(K - np))=0。
∴ dim(O_{E}(np)) = n
n = 1の場合、O_{E}(p)はベリーアンプルではない。n = 2の場合も、よく知られたように楕円曲線は射影直線には埋め込めないから、O_{E}(2p)もベリーアンプルではない。n≧3のとき、実はO_{E}(np)はベリーアンプルになる。
この例のように、Lはベリーアンプルではないが、自身との積を取って大域切断を増やしてやるとベリーアンプルになることがある。その場合、次元の高い射影空間に埋め込める。
定義:
Xをk上のスキーム、LをX上の可逆層とする。十分大きなnに対して、L^⊗nがベリーアンプルとなるとき、Lをアンプルであるという。
与えられた可逆層がアンプルであるか判定するのは、一般的に難しい問題である。アンプルかどうかの判定法としては、Cartan-Serre-Grothendieckによるコホモロジーを用いるものと、Nakai-Moishezonによる交点数を用いるものが有名である。
定理(Cartan-Serre-Grothendieck):
XをNoether環上固有なスキーム、LをX上の可逆層とする。Lがアンプルであるためには、X上の任意の連接層Fに対して、自然数n(F)が存在して、
i≧1、n≧n(F)ならば、H^i(X, F⊗L^⊗n) = 0
定理(Nakai-Moishezon):
Xをk上固有なスキーム、DをX上のCartier因子とする。可逆層O_{X}(D)がアンプルであるためには、Xの任意の1次元以上の既約部分多様体Yに対して、
D^dim(Y).Y>0
kを体とし、Xをk上の代数多様体とする。Xに対して、環E(X)が以下のように定まる。E(X)は
E(X) = E_0⊕E_1⊕E_2⊕...
と分解し、各E_dはXのd次元部分多様体のホモトピー同値類からなるk上のベクトル空間であり、d次元部分多様体Yとe次元部分多様体Zに対して、[Y]∈E_d, [Z]∈E_eの積は、代数多様体の積の同値類[Y×Z]∈E_{d+e}である。この積は代表元Y, Zの取り方によらず定まる。各E_dの元のことを、d次元のサイクルと呼ぶ。
このE(X)をXのEuclid環という。Euclid環の名称は、Euclidによる最大公約数を求めるアルゴリズムに由来する。すなわち、任意のサイクル[Y], [Z]∈E(X) ([Z]≠0)に対して、あるサイクル[Q], [R]∈E(X)が一意的に存在して、
・[Y] = [Q×Z] + [R]
・dim(R)<dim(Z)
が成り立つためである。ここで、[R] = 0となるとき、[Z]は[Y]の因子であるという。
dim(X) = nとする。d≧n+1を含むE_dを上述の積の定義により定める。すなわち、任意のサイクルz∈E_dは、Xのd次元部分多様体Zが存在してz = [Z]となっているか、d = e + fをみたすe, fと、[E]∈E_e、[F]∈E_fが存在して、z = [E×F]となっている。後者のように低次元のサイクルの積として得られないサイクルを、単純サイクルまたは新サイクルという。
このとき、k上の代数多様体X_∞で、任意の[Z]∈E(X)に対して、[X_∞×Z] = [X_∞]、[X_∞∩Z] = [Z]∈E(X)となるものが存在する。このX_∞をXの普遍代数多様体と呼び、E~(X) = E((X))⊕k[X_∞]をE(X)の完備化または完備Euclid環という(ただし、E((X)) = {Σ[d=0,∞]z_d| z_d∈E_d})。完備Euclid環の著しい性質は、Fourier級数展開ができることである。
定理:
各dに対して、単純サイクルからなる基底{b_{d, 1}, ..., b_{d, n(d)}}⊂E_dが存在して、任意のf∈E~(X)は
f = Σ[d=0,∞]Σ[k=1,n(d)]a_{d, k}b_{d, k}
と表される。ただし、a_{d, k}はHilbert-Poincaré内積(f = [Z], b_{d, k})=∫_{b}ω^d_{X_∞}∧[Z]で与えられるkの元である。
Xとしてk上の代数群、つまり代数多様体であり群でもあるものを考える。このとき、Xの群法則はX×XからXへの有理写像になるから、完備Euclid環上の線形作用素を誘導する。この作用素に関しては、次の定理が重要である。
定理(Hilbert):
Xがコンパクトな代数群であれば、完備Euclid環に誘導された線形作用素は有界作用素である。
以下の定理は、スペクトル分解により単純サイクルによる基底が得られることを主要している。
定理(Hilbert):
Xの点列(x_n)は以下をみたすとき、Cauchy列であるという。
任意のε > 0に対して、ある自然数Nが存在して、n, m ≧ Nならば、d(x_n, x_m) < ε。
収束する点列はCauchy列である。実際、lim[n→∞] x_n = x ならば、任意のε/2>0に対して、ある自然数Nが存在して、n>Nならば|x - x_n|<εとなるので、任意のε>0に対して、n, m>Nならば|x_n - x_m|≦|x - x_n| + |x -.x_m|<ε。
逆に、Xの任意のCachy列がXの点に収束するとき、Xは完備であるという。
(x_n)を実数のCauchy列とする。
まず、(x_n)は有界である。実際、ε>0に対して、Nが存在して、n>Nならば|x_n - x_N|<εなので、任意のiに対して、|x_i|≦max{|x_1|, |x_2|, ..., |x_N|, |x_N|+ε}である。
Bolzano-Weierstrassの定理より、有界な実数列は収束する部分列を含むので、自然数列n_1<n_2<...<n_i<...と実数xが存在して、lim[i→∞] x_(n_i) = xとなる。
xが(x_n)の極限である。lim[i→∞] x_(n_i) = xより、任意のε/2>0に対して、ある自然数Iが存在して、i>Iならば|x-x_(n_i)|<ε/2。(x_n)がCauchy列であることより、任意のε/2に対して、ある自然数Nが存在して、n, m>Nならば|x_n - x_m|<ε/2。この2つより、任意のε>0に対して、n>max{I, N}ならば、|x - x_n|≦|x - x_(n_n)| + |x_(n_n) - x_n|<ε。□
√2に収束する数列(1, 1.4, 1.41, ...)はCauchy列だが、Qの元に収束しない。
f_n(x)を以下で定める。
xが有理数で、xを既約分数a/bに表したとき、bがn!の約数ならば、f_n(x) = 1。それ以外は、f_n(x) = 0。
各f_nは有限個の点で1になる以外0なので、Riemann積分可能で、∫|f_n(x)|dx = 0。
しかし、その(各点収束)極限は、xが有理数のとき1、無理数のとき0となる関数であり、これはRiemann積分不可能。(有理数の稠密性から、区間の細分をどれだけ細かくとっても、各区間に1を取る点と0を取る点がそれぞれ存在するため、Riemann和が収束しない)
そういうことはいずれは、(数学科なら)いざとなったら分かるレベルにならないといかんが、大学一年生がやって実りあるものとは思えない。
理学系にいくにせよ工学系にいくにせよ、教養の数学でやるべきなのは、高校の微分積分の復習をしつつ、
のような基本的な結果をしっかり理解して使えるようになることじゃないだろうか。
こういうものを示すのには実数の連続性を厳密に定式化しなければいけないが、一年生相手にわざわざ「デデキント切断に順序構造を導入して」などとやらずとも、
というワイエルシュトラスの定理を認めれば十分である。これはデテキント切断による実数の特徴付けと同値であり、他の命題を示す際にも扱いやすく、直感的にも理解できる。
思うに、あらゆることを厳密にやるのが大学数学の「伝統」や「洗礼」などと言った価値観を持っている人が多い気がする。もちろん、それは一面では正しいし、高校数学までは曖昧だった部分がはっきりすることに喜びを感じる学生もいるだろう。しかし、たいていの学生は、数学が嫌いになるんじゃないだろうか。
第1章 プログラミング概念入門 1.1 計算器 1.2 変数 1.3 関数 1.4 リスト 1.5 リストについての関数 1.6 プログラムの正しさ 1.7 計算量 1.8 遅延計算 1.9 高階プログラミング 1.10 並列性 1.11 データフロー 1.12 明示的状態 1.13 オブジェクト 1.14 クラス 1.15 非決定性と時間 1.16 原子性 1.17 ここからどこへ行くのか? 1.18 練習問題 第1部 一般的計算モデル 第2章 宣言的計算モデル 2.1 実用的プログラミング言語の定義 2.1.1 言語の構文 2.1.2 言語の意味 2.2 単一代入格納域 2.2.1 宣言的変数 2.2.2 値格納域 2.2.3 値生成 2.2.4 変数識別子 2.2.5 識別子を使う値生成 2.2.6 部分値 2.2.7 変数の,変数への束縛 2.2.8 データフロー変数 2.3 核言語 2.3.1 構文 2.3.2 値と型 2.3.3 基本型 2.3.4 レコードと手続き 2.3.5 基本操作 2.4 核言語の意味 2.4.1 基本概念 2.4.2 抽象マシン 2.4.3 待機不能な文 2.4.4 待機可能な文 2.4.5 基本概念再訪 2.5 メモリ管理 2.5.1 末尾呼び出し最適化 2.5.2 メモリライフサイクル 2.5.3 ガーベッジコレクション 2.5.4 ガーベッジコレクションは魔術ではない 2.5.5 Mozartのガーベッジコレクタ 2.6 核言語から実用的言語へ 2.6.1 構文上の便宜 2.6.2 関数(fun文) 2.6.3 対話的インターフェース(declare文) 2.7 例外 2.7.1 動機と基本概念 2.7.2 例外を持つ宣言的モデル 2.7.3 親言語の構文 2.7.4 システム例外 2.8 進んだ話題 2.8.1 関数型プログラミング言語 2.8.2 単一化と内含(entailment) 2.8.3 動的型付けと静的型付け 2.9 練習問題 第3章 宣言的プログラミング技法 3.1 宣言的とはどういうことか? 3.1.1 宣言的プログラムの分類 3.1.2 仕様記述言語 3.1.3 宣言的モデルにおいてコンポーネントを実装すること 3.2 反復計算 3.2.1 一般的図式 3.2.2 数についての反復 3.2.3 局所的手続きを使うこと 3.2.4 一般的図式から制御抽象へ 3.3 再帰計算 3.3.1 スタックの大きさの増加 3.3.2 代入ベースの抽象マシン 3.3.3 再帰計算を反復計算に変換すること 3.4 再帰を用いるプログラミング 3.4.1 型の記法 3.4.2 リストについてのプログラミング 3.4.3 アキュムレータ 3.4.4 差分リスト 3.4.5 キュー 3.4.6 木 3.4.7 木を描画すること 3.4.8 構文解析 3.5 時間効率と空間効率 3.5.1 実行時間 3.5.2 メモリ使用量 3.5.3 償却的計算量 3.5.4 性能についての考察 3.6 高階プログラミング 3.6.1 基本操作 3.6.2 ループ抽象 3.6.3 ループの言語的支援 3.6.4 データ駆動技法 3.6.5 明示的遅延計算 3.6.6 カリー化 3.7 抽象データ型 3.7.1 宣言的スタック 3.7.2 宣言的辞書 3.7.3 単語出現頻度アプリケーション 3.7.4 安全な抽象データ型 3.7.5 安全な型を備えた宣言的モデル 3.7.6 安全な宣言的辞書 3.7.7 資格とセキュリティ 3.8 宣言的でない必要物 3.8.1 ファイルを伴うテキスト入出力 3.8.2 グラフィカルユーザインタフェースを伴うテキスト入出力 3.8.3 ファイルとの状態なしデータI/O 3.9 小規模プログラム設計 3.9.1 設計方法 3.9.2 プログラム設計の例 3.9.3 ソフトウェアコンポーネント 3.9.4 スタンドアロンプログラムの例 3.10 練習問題 第4章 宣言的並列性 4.1 データ駆動並列モデル 4.1.1 基本概念 4.1.2 スレッドの意味 4.1.3 実行列 4.1.4 宣言的並列性とは何か? 4.2 スレッドプログラミングの基本的技法 4.2.1 スレッドを生成すること 4.2.2 スレッドとブラウザ 4.2.3 スレッドを使うデータフロー計算 4.2.4 スレッドのスケジューリング 4.2.5 協調的並列性と競合的並列性 4.2.6 スレッド操作 4.3 ストリーム 4.3.1 基本的生産者/消費者 4.3.2 変換器とパイプライン 4.3.3 資源を管理し,処理能力を改善すること 4.3.4 ストリームオブジェクト 4.3.5 ディジタル論理のシミュレーション 4.4 宣言的並列モデルを直接使うこと 4.4.1 順序決定並列性 4.4.2 コルーチン 4.4.3 並列的合成 4.5 遅延実行 4.5.1 要求駆動並列モデル 4.5.2 宣言的計算モデル 4.5.3 遅延ストリーム 4.5.4 有界バッファ 4.5.5 ファイルを遅延的に読み込むこと 4.5.6 ハミング問題 4.5.7 遅延リスト操作 4.5.8 永続的キューとアルゴリズム設計 4.5.9 リスト内包表記 4.6 甘いリアルタイムプログラミング 4.6.1 基本操作 4.6.2 ティッキング(ticking) 4.7 Haskell言語 4.7.1 計算モデル 4.7.2 遅延計算 4.7.3 カリー化 4.7.4 多態型 4.7.5 型クラス 4.8 宣言的プログラムの限界と拡張 4.8.1 効率性 4.8.2 モジュラ性 4.8.3 非決定性 4.8.4 現実世界 4.8.5 正しいモデルを選ぶこと 4.8.6 拡張されたモデル 4.8.7 異なるモデルを一緒に使うこと 4.9 進んだ話題 4.9.1 例外を持つ宣言的並列モデル 4.9.2 さらに遅延実行について 4.9.3 通信チャンネルとしてのデータフロー変数 4.9.4 さらに同期について 4.9.5 データフロー変数の有用性 4.10 歴史に関する注記 4.11 練習問題 第5章 メッセージ伝達並列性 5.1 メッセージ伝達並列モデル 5.1.1 ポート 5.1.2 ポートの意味 5.2 ポートオブジェクト 5.2.1 NewPortObject抽象 5.2.2 例 5.2.3 ポートオブジェクトに関する議論 5.3 簡単なメッセージプロトコル 5.3.1 RMI(遠隔メソッド起動) 5.3.2 非同期RMI 5.3.3 コールバックのあるRMI(スレッド使用) 5.3.4 コールバックのあるRMI(継続のためのレコード使用) 5.3.5 コールバックのあるRMI(継続のための手続き使用) 5.3.6 エラー報告 5.3.7 コールバックのある非同期RMI 5.3.8 二重コールバック 5.4 並列性のためのプログラム設計 5.4.1 並列コンポーネントを使うプログラミング 5.4.2 設計方法 5.4.3 並列性パターンとしての機能的構成要素 5.5 リフト制御システム 5.5.1 状態遷移図 5.5.2 実装 5.5.3 リフト制御システムの改良 5.6 メソッド伝達モデルを直接使用すること 5.6.1 1つのスレッドを共有する複数のポートオブジェクト 5.6.2 ポートを使う並列キュー 5.6.3 終点検出を行うスレッド抽象 5.6.4 直列依存関係の除去 5.7 Erlang言語 5.7.1 計算モデル 5.7.2 Erlangプログラミング入門 5.7.3 receive操作 5.8 進んだ話題 5.8.1 非決定性並列モデル 5.9 練習問題 第6章 明示的状態 6.1 状態とは何か? 6.1.1 暗黙的(宣言的)状態 6.1.2 明示的状態 6.2 状態とシステム構築 6.2.1 システムの性質 6.2.2 コンポーネントベースプログラミング 6.2.3 オブジェクト指向プログラミング 6.3 明示的状態を持つ宣言的モデル 6.3.1 セル 6.3.2 セルの意味 6.3.3 宣言的プログラミングとの関係 6.3.4 共有と同等 6.4 データ抽象 6.4.1 データ抽象を組織する8つの方法 6.4.2 スタックの変種 6.4.3 多態性 6.4.4 引数受け渡し 6.4.5 取り消し可能資格 6.5 状態ありコレクション 6.5.1 インデックス付きコレクション 6.5.2 インデックス付きコレクションを選ぶこと 6.5.3 その他のコレクション 6.6 状態に関する推論 6.6.1 不変表明 6.6.2 例 6.6.3 表明 6.6.4 証明規則 6.6.5 正常終了 6.7 大規模プログラムの設計 6.7.1 設計方法 6.7.2 階層的システム構造 6.7.3 保守性 6.7.4 将来の発展 6.7.5 さらに深く知るために 6.8 ケーススタディ 6.8.1 遷移的閉包 6.8.2 単語出現頻度(状態あり辞書を使用する) 6.8.3 乱数を生成すること 6.8.4 口コミシミュレーション 6.9 進んだ話題 6.9.1 状態ありプログラミングの限界 6.9.2 メモリ管理と外部参照 6.10 練習問題 第7章 オブジェクト指向プログラミング 7.1 継承 7.2 完全なデータ抽象としてのクラス 7.2.1 例 7.2.2 この例の意味 7.2.3 クラスとオブジェクトを定義すること 7.2.4 クラスメンバ 7.2.5 属性を初期化すること 7.2.6 第1級メッセージ 7.2.7 第1級の属性 7.2.8 プログラミング技法 7.3 漸増的データ抽象としてのクラス 7.3.1 継承グラフ 7.3.2 メソッドアクセス制御(静的束縛と動的束縛) 7.3.3 カプセル化制御 7.3.4 転嫁と委任 7.3.5 内省 7.4 継承を使うプログラミング 7.4.1 継承の正しい使い方 7.4.2 型に従って階層を構成すること 7.4.3 汎用クラス 7.4.4 多重継承 7.4.5 多重継承に関するおおざっぱな指針 7.4.6 クラス図の目的 7.4.7 デザインパターン 7.5 他の計算モデルとの関係 7.5.1 オブジェクトベースプログラミングとコンポーネントベースプログラミング 7.5.2 高階プログラミング 7.5.3 関数分解と型分解 7.5.4 すべてをオブジェクトにすべきか? 7.6 オブジェクトシステムを実装すること 7.6.1 抽象図 7.6.2 クラスを実装すること 7.6.3 オブジェクトの実装 7.6.4 継承の実装 7.7 Java言語(直列部分) 7.7.1 計算モデル 7.7.2 Javaプログラミング入門 7.8 能動的オブジェクト 7.8.1 例 7.8.2 NewActive抽象 7.8.3 フラウィウス・ヨセフスの問題 7.8.4 その他の能動的オブジェクト抽象 7.8.5 能動的オブジェクトを使うイベントマネージャ 7.9 練習問題 第8章 状態共有並列性 8.1 状態共有並列モデル 8.2 並列性を持つプログラミング 8.2.1 さまざまな手法の概観 8.2.2 状態共有並列モデルを直接使うこと 8.2.3 原子的アクションを使うプログラミング 8.2.4 さらに読むべき本 8.3 ロック 8.3.1 状態あり並列データ抽象を構築すること 8.3.2 タプル空間(Linda) 8.3.3 ロックを実装すること 8.4 モニタ 8.4.1 定義 8.4.2 有界バッファ 8.4.3 モニタを使うプログラミング 8.4.4 モニタを実装すること 8.4.5 モニタの別の意味 8.5 トランザクション 8.5.1 並列性制御 8.5.2 簡易トランザクションマネージャ 8.5.3 セルについてのトランザクション 8.5.4 セルについてのトランザクションを実装すること 8.5.5 トランザクションについてさらに 8.6 Java言語(並列部分) 8.6.1 ロック 8.6.2 モニタ 8.7 練習問題 第9章 関係プログラミング 9.1 関係計算モデル 9.1.1 choice文とfail文 9.1.2 探索木 9.1.3 カプセル化された 9.1.4 Solve関数 9.2 別の例 9.2.1 数値例 9.2.2 パズルとnクイーン問題 9.3 論理型プログラミングとの関係 9.3.1 論理と論理型プログラミング 9.3.2 操作的意味と論理的意味 9.3.3 非決定性論理型プログラミング 9.3.4 純粋Prologとの関係 9.3.5 他のモデルにおける論理型プログラミング 9.4 自然言語構文解析 9.4.1 簡単な文法 9.4.2 この文法に従う構文解析 9.4.3 構文木を生成すること 9.4.4 限定記号を生成すること 9.4.5 パーサを走らせること 9.4.6 パーサを「逆向きに(backward)」走らせること 9.4.7 単一化文法 9.5 文法インタプリタ 9.5.1 簡単な文法 9.5.2 文法のコード化 9.5.3 文法インタプリタを走らせること 9.5.4 文法インタプリタを実装すること 9.6 データベース 9.6.1 関係を定義すること 9.6.2 関係を使って計算すること 9.6.3 関係を実装すること 9.7 Prolog言語 9.7.1 計算モデル 9.7.2 Prologプログラミング入門 9.7.3 Prologプログラムを関係プログラムに翻訳すること 9.8 練習問題 第2部 特殊化された計算モデル 第10章 グラフィカルユーザインタフェースプログラミング 10.1 宣言的/手続き的方法 10.2 宣言的/手続き的方法を使うこと 10.2.1 基本的ユーザインタフェースの要素 10.2.2 GUIを構築すること 10.2.3 宣言的座標 10.2.4 リサイズ時の宣言的振る舞い 10.2.5 ウィジェットの動的振る舞い 10.3 対話的学習ツールPrototyper 10.4 ケーススタディ 10.4.1 簡単なプログレスモニタ 10.4.2 簡単なカレンダウィジェット 10.4.3 ユーザインタフェースの動的生成 10.4.4 状況順応時計 10.5 GUIツールを実装すること 10.6 練習問題 第11章 分散プログラミング 11.1 分散システムの分類 11.2 分散モデル 11.3 宣言的データの分散 11.3.1 オープン分散と大域的ネーミング 11.3.2 宣言的データを共有すること 11.3.3 チケット配布 11.3.4 ストリーム通信 11.4 状態の分散 11.4.1 単純状態共有 11.4.2 分散字句的スコープ 11.5 ネットワークアウェアネス 11.6 共通分散プログラミングパターン 11.6.1 静的オブジェクトとモバイルオブジェクト 11.6.2 非同期的オブジェクトとデータフロー 11.6.3 サーバ 11.6.4 クローズド分散 11.7 分散プロトコル 11.7.1 言語実体 11.7.2 モバイル状態プロトコル 11.7.3 分散束縛プロトコル 11.7.4 メモリ管理 11.8 部分的失敗 11.8.1 失敗モデル 11.8.2 失敗処理の簡単な場合 11.8.3 回復可能サーバ 11.8.4 アクティブフォールトトレランス 11.9 セキュリティ 11.10 アプリケーションを構築すること 11.10.1 まずは集中,後に分散 11.10.2 部分的失敗に対処すること 11.10.3 分散コンポーネント 11.11 練習問題 第12章 制約プログラミング 12.1 伝播・探索法 12.1.1 基本的考え方 12.1.2 部分情報を使って計算すること 12.1.3 例 12.1.4 この例を実行すること 12.1.5 まとめ 12.2 プログラミング技法 12.2.1 覆面算 12.2.2 回文積再訪 12.3 制約ベース計算モデル 12.3.1 基本的制約と伝播子 12.3.2 計算空間の探索をプログラムすること 12.4 計算空間を定義し,使うこと 12.4.1 深さ優先探索エンジン 12.4.2 検索エンジンの実行例 12.4.3 計算空間の生成 12.4.4 空間の実行 12.4.5 制約の登録 12.4.6 並列的伝播 12.4.7 分配(探索準備) 12.4.8 空間の状態 12.4.9 空間のクローン 12.4.10 選択肢を先に任せること 12.4.11 空間をマージすること 12.4.12 空間失敗 12.4.13 空間に計算を注入すること 12.5 関係計算モデルを実装すること 12.5.1 choice文 12.5.2 Solve関数 12.6 練習問題 第3部 意味 第13章 言語意味 13.1 一般的計算モデル 13.1.1 格納域 13.1.2 単一代入(制約)格納域 13.1.3 抽象構文 13.1.4 構造的規則 13.1.5 直列実行と並列実行 13.1.6 抽象マシンの意味との比較 13.1.7 変数導入 13.1.8 同等性の強制(tell) 13.1.9 条件文(ask) 13.1.10 名前 13.1.11 手続き抽象 13.1.12 明示的状態 13.1.13 by-need同期 13.1.14 読み出し専用変数 13.1.15 例外処理 13.1.16 失敗値 13.1.17 変数置き換え 13.2 宣言的並列性 13.2.1 部分停止と全体停止 13.2.2 論理的同値 13.2.3 宣言的並列性の形式的定義 13.2.4 合流性 13.3 8つの計算モデル 13.4 よくある抽象の意味 13.5 歴史に関する注記 13.6 練習問題
> 周期関数が有界な区間の中に可算無限回敷き詰められているのだから、これを面だと主張しても良さそうに思える。
残念ながらこれで面は埋まりません。lim_{a\rightarrow\infty} sin ax (0 \leq x \leq 2\pi) のグラフに x = d (0 \leq d \leq 2\pi)で縦に線を引いてみてください。交点は1個だけでしょ?
正規の教育を受けていない中卒で、この内容はトンデモっぽいから詳しい人突っ込みよろしく。
区間 [0, 2PI] において、任意の a を x の係数とした sin ax は+1と-1の間の値をとる周期 a の正弦波の関数である事は周知の通りだが、例えば a を無限大にまで極限させてみるとどうなるだろうか。
具体的には、上述の例に於いて lim_[a → #N] の極限の条件を付け加えるのである。
ただし N は自然数全体の集合で、 #S は集合 S の濃度を示すとする。
適当な b (0 ≦ b ≦ 2PI) を選び、 sin b と同じ値が sin ax 中にいくつ現れるかを数えてみる。
[0, 2PI] sin ax (a in N) で sin b と一致する値をとる場所はsinの導関数が極大あるいは極小になる PI/4 と 3PI/4 であれば a 個、そうでない場合は 2a 個である。
lim_[a → #N] では区間 [0, 2PI] 内でその個数は #N と同じ値になる。
周期関数が有界な区間の中に可算無限回敷き詰められているのだから、これを面だと主張しても良さそうに思える。
実際、 lim_[a → #N] sin ax で x を適当な実数とすると、関数の値は [+1, -1] の範囲で特定不可ではあるが、任意に選んだ c (-1 ≦ c ≦ +1) というのは確かに存在する。
今日は体調が優れずこれ以上考えが及ばなかったのでここまでにしておくが、
など、考える余地はまだありそうだ。
また、この記事自体既存の考えに重複するものかもしれない。その場合は、無学な私にどの分野と被るかを具体的に教えてくれるとありがたい。