E 'possibile dimostrare che una funzione è idempotente?

12

È possibile utilizzare tipi statici o dipendenti per dimostrare che una funzione è idempotente?

Ho cercato su Google e vari posti su StackOverflow / StackExchange per la risposta senza fortuna. Il più vicino che ho trovato è stata questa conversazione su Idris: link

Sfortunatamente, questa discussione mi ha un po 'sopraffatto.

    
posta bmaddy 26.09.2016 - 22:15
fonte

1 risposta

3

Per alcune funzioni lo è. Soprattutto quando conosci la funzione; -)

Se intendi con la tua domanda "c'è un algoritmo per decidere automaticamente se una funzione arbitraria è idempotente o meno", la risposta è no, a causa dei teoremi già citati nei commenti. Tuttavia, per specifiche classi di funzioni, si può, in teoria, decidere molto facilmente se la funzione è idempotente o meno. Ad esempio, se la funzione è pura (significa: senza effetti collaterali), e si sa che restituisce sempre un valore in una quantità limitata di tempo per ogni dato input, allora l'idempotenza può essere decisa semplicemente provando se f(f(x))=f(x) per qualsiasi possibile input x alla funzione. Non che questo sarà molto efficiente, potrebbe funzionare fino alla fine dell'universo.

Quindi se questa non è la risposta che stavi cercando, scrivi una domanda migliore, al momento non è chiaro quale sia esattamente quello che stai cercando.

    
risposta data 28.09.2016 - 08:41
fonte

Leggi altre domande sui tag