関数の一般的に有用なプロパティの多くには、簡潔な名前が付いています。たとえば、結合性、交換性、推移性などです。
これらのプロパティなどの簡略定義を提供するQuickCheckで使用するライブラリを作成しています。
私が質問しているのは、単項関数の冪等性です。関数 f はべき等 iif ∀x です。fx == f (fx)。
このプロパティには興味深い一般化があり、同様に簡潔な名前を見つけるのに苦労しています。名前を提案することで人々の名前の選択に偏りが生じるのを避けるために、名前を P とし、次の定義を提供します。
関数 f は g iif ∀x に関して P 特性を持ちます。fx == f (gx)。これは、冪等性を P に関して再定義することにより、冪等性の一般化として見ることができます。関数 f は、それ自体に関して P プロパティを持っている場合、冪等性です。
これが有用なプロパティであることを確認するには、多くの一般的な最適化を実装するために使用できる書き換えルールを正当化することを観察してください。これは、 g が何らかの正規化関数である場合に発生することがよくありますが、常に発生するわけではありません。いくつかの例:
length(f のすべての選択に対して)に関して P です。mapf- CNFへの変換は、 DNFへの変換に関して P です(逆も同様です) 。
- NFC を形成するためのUnicode 正規化は、NFD を形成するための正規化に関して P です (逆も同様です)。
minimumnubに関して P
この物件の名前は?