Qual è il nome di questa generalizzazione di idempotence?
-
27-10-2019 - |
Domanda
Un sacco di proprietà comunemente utili di funzioni hanno nomi concisi. Ad esempio, associatività , commutativa , transitività , ecc.
sto facendo una libreria per l'utilizzo con QuickCheck che fornisce le definizioni stenografici di queste proprietà e gli altri .
Quello che ho una domanda circa è idempotence di funzioni unari. Una funzione f è idempotente IIF Ux. f x == f (f x).
C'è una generalizzazione interessante di questa proprietà per la quale mi sto lottando per trovare un nome simile concisa. Per evitare la polarizzazione delle scelte di nomi popoli suggerendo uno, io chiamerò che P e fornire la seguente definizione:
Una funzione f ha la proprietà P rispetto alla g iif Ux. f x == f (g x). Possiamo vedere questo come una generalizzazione di idempotence ridefinendo idempotence in termini di funzione P. A f è idempotente iif ha la proprietà P rispetto a sé stesso.
Per vedere che questa è una proprietà utile osservare che giustifica una regola di riscrittura che può essere utilizzato per attuare una serie di ottimizzazioni comuni. Questo spesso, ma non sempre si pone quando g è una qualche funzione canonica. Alcuni esempi:
-
length
IS P rispetto allamap
f
(per tutte le scelte di f) - CNF è P rispetto alla conversione in DNF (e viceversa)
- normalizzazione Unicode per formare NFC è P rispetto alla normalizzazione per formare NFD (e viceversa)
-
minimum
IS P rispetto alla nocciolo
Cosa vorresti chiamare questa proprietà?
Soluzione
One can say that map f
is length
-preserving, or that length
is invariant under map f
ing. So how about:
- g is f-preserving.
- f is invariant under (applying) g.