Ich fange gerade an zu spielen mit Idris und Theorem Beweisen im Allgemeinen. Ich kann den meisten Beispielen von Beweisen für grundlegende Fakten im Internet folgen, also wollte ich etwas Eigenes ausprobieren. Also, ich will einen Beweis Begriff für die folgende grundlegende Eigenschaft der Karte schreiben:Karte beweisen id = id in idris?
map : (a -> b) -> List a -> List b
prf : map id = id
Intuitiv kann ich mich vorstellen, wie der Beweis funktionieren soll: Nehmen Ihnen eine beliebige Liste l und analysiert die Möglichkeiten für Karte ID l. Wenn ich leer bin, ist es offensichtlich; Wenn l nicht leer ist, basiert es auf dem Konzept, dass die Funktionsanwendung die Gleichheit erhält. Also, ich kann etwas tun:
prf' : (l : List a) -> map id l = id l
Es ist wie eine ist für alle Aussage. Wie kann ich daraus einen Beweis für die Gleichheit der Funktionen machen?
@BrianMcKenna: Sie beschreiben, wie man 'prf' beweist, was das OP bereits gesagt hat, dass er schreiben kann. In seiner Frage geht es darum, 'prf' zu extensionaler Gleichheit zu heben. – Cactus