blob: 415a1b27dd2804beaecc4bfc0b986c47c8403166 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
(* Call of apply on <-> failed because of evars in elimination predicate *)
Class Patch (patch : Type) := {
commute : patch -> patch -> Prop
}.
Parameter flip : forall `{patchInstance : Patch patch}
{a b : patch},
commute a b <-> commute b a.
Lemma Foo : forall `{patchInstance : Patch patch}
{a b : patch},
(commute a b)
-> True.
Proof.
intros.
apply flip in H.
(* failed in well-formed arity check because elimination predicate of
iff in (@flip _ _ _ _) had normalized evars while the ones in the
type of (@flip _ _ _ _) itself had non-normalized evars *)
(* By the way, is the check necessary ? *)
|