トップ «前の日記(2005-02-23) 最新 次の日記(2005-02-26)» 月表示 編集

日々の流転


2005-02-24 [長年日記]

λ. Almost homomorphisms

横山さんの日記を読んでいて、Almost homomorphism が分からなかったので、ググってみた。Optimizing Compositions of Scans and Reductions in Parallel Program Derivation とかを見ると、どうやら h をhomomorphism、πを射影として、π∘h と書けるもののようだ。

[追記] 横山さんの日記に出てきたのは、モノイドに関する homomorphisms と almost-homomorphisms 。

[追記] 横山さんによると「やはり、homomorphism と合成するのは射影関数とは限らなそうです」とのこと。

λ. Mutumorphisms

almost homomorphisms と関係がありそうなので、ついでに mutumorphisms についてもググってみた。これは以下のような形で書ける関数族 { fi : μF → Ai }i∈I のことのようだ*1

fi: μF → Ai
fi = φi ∘ Fh ∘ inF-1

φi: F(∏j∈I Aj) → Ai
φi = ...

h: μF → ∏i∈I Ai
h = <fi>i∈I

この定義から h = (| <φi>i∈I |)F かつ fi = πi ∘ h であることが直ちに言えるので、fi はF代数に関する almost homomorphism であり、catamorphism の almost- なので、almost-cata とも呼ばれる。

almost-cata の典型的な例は paramorphisms とその一般化である zygomorphisms。

*1 Universal property として定義するには?

λ. almost-catamorphism

f を cata とするとき,

accept . f      -- accept は fst, snd, (\ (x,y) -> x + y) など

なるほど。解説ありがとうございます。しかし、そうなると今度は accept として許される関数のクラスが気になります。comcatamorphisms *1 は全て almost-catamorphism と呼べるのだろうか?