Ich bin ein neuer Benutzer für Coq. Ich habe einige Funktionen definiert:Fehler bei der Verwendung von Let-Destruct für Tupel in Coq
Definition p (a : nat) := (a + 1, a + 2, a + 3).
Definition q :=
let (s, r, t) := p 1 in
s + r + t.
Definition q' :=
match p 1 with
| (s, r, t) => s + r + t
end.
Ich versuche, das Ergebnis von p in eine Tupel-Darstellung zu zerstören. Allerdings beschwert sich Coqc auf q:
Error: Destructing let on this type expects 2 variables.
während q 'die Kompilierung bestehen kann. Wenn ich p ändere, um ein Paar (a + 1, a + 2) zurückzugeben, funktionieren die entsprechenden q und q 'beide gut.
Warum lässt die Zerstörung nur Paare zu? Oder habe ich irgendeinen Syntaxfehler gemacht? Ich habe mit Coq Handbuch überprüft, aber keine Ahnung gefunden.
Vielen Dank!
Vielen Dank! Also sollte das 3-gliedrige Tupel als auf dem ersten Mitglied des Paares wieder zerstörend angesehen werden, dann muss ich 'Zitat' verwenden? – xywang
Ja, das ist es! –