File: bug_5501.v

package info (click to toggle)
coq 8.20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 44,116 kB
  • sloc: ml: 234,160; sh: 4,301; python: 3,270; ansic: 2,644; makefile: 882; lisp: 172; javascript: 63; xml: 24; sed: 2
file content (23 lines) | stat: -rw-r--r-- 503 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
Set Universe Polymorphism.

Record Pred@{A} :=
  { car :> Type@{A}
  ; P : car -> Prop
  }.

Class All@{A} (A : Pred@{A}) :=
  { proof : forall (a : A), P A a
  }.

Record Pred_All@{A} : Type :=
  { P' :> Pred@{A}
  ; P'_All : All P'
  }.

Global Instance Pred_All_instance (A : Pred_All) : All A := P'_All A.

Definition Pred_All_proof {A : Pred_All} (a : A) : P A a.
Proof.
Fail solve[auto using proof]. (* Do not implicitly rely on TC resolution *)
solve[auto using proof, Pred_All_instance].
Abort.