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 と呼べるのだろうか?