Class Equiv A := equiv: A -> A -> Prop.
#[export] Hint Mode Equiv ! : typeclass_instances.
Class Lookup (K A M : Type) := lookup: K -> M -> option A.
#[export] Hint Mode Lookup ! - - : typeclass_instances.
#[export] Hint Mode Lookup - - ! : typeclass_instances.
Parameter list_equiv : forall A, Equiv A -> Equiv (list A). Parameter option_equiv : forall A, Equiv A -> Equiv (option A). Parameter list_lookup : forall A, Lookup nat A (list A).
Set Typeclasses Debug. (* fails *) Lemma list_equiv_lookup {A} `{Equiv A} (l k : list A) :
equiv l k <-> forall i, equiv (lookup i l) (lookup i k). Admitted. (* ?Equiv : "Equiv (option ?A)"
?Lookup : "Lookup ?K ?A (list A)"
?Lookup0 : "Lookup ?K ?A (list A)"
*)
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.