File: bug_14441.v

package info (click to toggle)
coq-doc 8.16.1-1
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm
  • size: 42,788 kB
  • sloc: ml: 219,673; sh: 4,035; python: 3,372; ansic: 2,529; makefile: 728; lisp: 279; javascript: 87; xml: 24; sed: 2
file content (29 lines) | stat: -rw-r--r-- 807 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Require Import Utf8 Relation_Definitions.

Class Equiv A := equiv: relation A.
Hint Mode Equiv ! : typeclass_instances.

Class Lookup (K A M : Type) := lookup: K → M → option A.
Hint Mode Lookup ! - - : typeclass_instances.
Hint Mode Lookup - - ! : typeclass_instances.

Parameter list_equiv : ∀ A, Equiv A → Equiv (list A).
Parameter option_equiv : ∀ A, Equiv A → Equiv (option A).
Parameter list_lookup : ∀ A, Lookup nat A (list A).

Existing Instance list_equiv.
Existing Instance option_equiv.
Existing Instance list_lookup.

Set Typeclasses Debug.
(* fails *)
Lemma list_equiv_lookup {A} `{Equiv A} (l k : list A) :
  equiv l k ↔ ∀ 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)"
*)