2017-06-07 2 views
2

Ich habe gerade Idris v.1.0 installiert und führe den Beispielcode aus dem Proof section von Rosetta Code Stück für Stück aus. Alles funktioniert gut bis zum folgenden Fragment, das die erzeugt Das Schlüsselwort 'class' ist veraltet. Verwenden Sie stattdessen "Schnittstelle". Fehler.Fehlermeldung: "Klasse" ist veraltet, Quelle enthält keine Klasse

-- 3.1, Prove that the addition of any two even numbers is even. 

evensPlus1 : {a : MyNat} -> {b : MyNat} -> (EvNat a) -> (EvNat b) -> (EvNat (a :+ b)) 
evensPlus1 ea eb = ?proof31 

Es gibt kein einziges Stück "Klasse" in der Quelle. Was könnte hinter diesem Problem stehen?

+0

Das Entfernen der Anmerkungen hat das anfängliche Problem gelöst. Ich bekomme immer noch eine Fehlermeldung (Beweis 3.1/congS wird nicht akzeptiert), aber das scheint eine andere Sache zu sein; Wahrscheinlich wurde der Rosetta-Code für eine frühere Idris-Version geschrieben. Danke für die Hilfe, Anton. –

Antwort

1

Das sind nur Warnungen. Die -Anmerkungen sind in thisveraltet Kapitel des Handbuchs beschrieben. Sie können sie sicher löschen und den Beweis beenden, z. wie folgt:

evensPlus1 : (EvNat a) -> (EvNat b) -> (EvNat (a :+ b)) 
evensPlus1 EvO eb = eb 
evensPlus1 (EvSS y) eb = EvSS (evensPlus1 y eb) 

congS : {a : MyNat} -> {b : MyNat} -> (a = b) -> (S a = S b) 
congS Refl = Refl 
+0

Alles ist gut, danke. Refl wurde im Rosetta-Code als Refl geschrieben. –

Verwandte Themen