aboutsummaryrefslogtreecommitdiff
path: root/test-suite/bugs/closed/bug_10298.v
blob: ad4778cc36a6a76afda37f950c123fdf7e72120d (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
25
26
27
28
29
30
31
32
33
34
35
Set Implicit Arguments.

Generalizable Variables A.

Parameter val : Type.

Class Enc (A:Type) :=
  make_Enc { enc : A -> val }.

Global Instance Enc_dummy : Enc unit.
Admitted.

Definition FORM := forall A (EA:Enc A) (Q:A->Prop), Prop.

Axiom FORM_intro : forall F : FORM, F unit Enc_dummy (fun _ : unit => True).

Definition IDF (F:FORM) : FORM := F.

Parameter ID : forall (G:Prop), G -> G.

Parameter EID : forall A (EA:Enc A) (F:FORM) (Q:A->Prop),
  F _ _ Q ->
  F _ _ Q.

Lemma bla : forall F,
  (forall A (EA:Enc A), IDF F EA (fun (X:A) => True) -> True) ->
  True.
Proof.
  intros F M.
  notypeclasses refine (M _ _ _).
  notypeclasses refine (EID _ _ _ _).
  eapply (ID _).
  Unshelve.
  + apply FORM_intro.
Qed.