Sto appena iniziando a giocare con idris e teorema dimostrando in generale. Posso seguire la maggior parte degli esempi di prove di fatti di base su Internet, quindi ho voluto provare qualcosa di arbitrario per conto mio. Quindi, voglio scrivere un termine la prova per la seguente proprietà di base della mappa:Dimostrazione della mappa id = id in idris?
map : (a -> b) -> List a -> List b
prf : map id = id
Intuitivamente, posso immaginare come la prova dovrebbe funzionare: Prendere una lista L arbitraria e analizzare le possibilità di mappa id l. Quando sono vuoto, è ovvio; quando l è non vuoto si basa sul concetto che l'applicazione di funzione preserva l'uguaglianza. Quindi, posso fare qualcosa di simile:
prf' : (l : List a) -> map id l = id l
E 'come una dichiarazione per tutti. Come posso trasformarlo in una prova dell'uguaglianza delle funzioni coinvolte?
@BrianMcKenna: stai descrivendo come provare 'prf'' che l'OP ha già dichiarato di poter scrivere. La sua domanda riguarda probabilmente il sollevamento del "prf" all'uguaglianza estensionale. – Cactus