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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
Require Import TestSuite.admit.
Set Implicit Arguments.
Generalizable All Variables.
Polymorphic Record SpecializedCategory (obj : Type) := Build_SpecializedCategory' {
Object :> _ := obj;
Morphism' : obj -> obj -> Type;
Identity' : forall o, Morphism' o o;
Compose' : forall s d d', Morphism' d d' -> Morphism' s d -> Morphism' s d'
}.
Polymorphic Definition TypeCat : @SpecializedCategory Type
:= (@Build_SpecializedCategory' Type
(fun s d => s -> d)
(fun _ => (fun x => x))
(fun _ _ _ f g => (fun x => f (g x)))).
Inductive GraphIndex := GraphIndexSource | GraphIndexTarget.
Polymorphic Definition GraphIndexingCategory : @SpecializedCategory GraphIndex.
Admitted.
Module success.
#[universes(polymorphic)]
Section SpecializedFunctor.
Set Universe Polymorphism.
Context `(C : @SpecializedCategory objC).
Context `(D : @SpecializedCategory objD).
Unset Universe Polymorphism.
Polymorphic Record SpecializedFunctor
:= {
ObjectOf' : objC -> objD;
MorphismOf' : forall s d, C.(Morphism') s d -> D.(Morphism') (ObjectOf' s) (ObjectOf' d)
}.
End SpecializedFunctor.
Polymorphic Definition UnderlyingGraph : SpecializedFunctor GraphIndexingCategory TypeCat.
Admitted.
End success.
Module success2.
#[universes(polymorphic)]
Section SpecializedFunctor.
Polymorphic Context `(C : @SpecializedCategory objC).
Polymorphic Context `(D : @SpecializedCategory objD).
Polymorphic Record SpecializedFunctor
:= {
ObjectOf' : objC -> objD;
MorphismOf' : forall s d, C.(Morphism') s d -> D.(Morphism') (ObjectOf' s) (ObjectOf' d)
}.
End SpecializedFunctor.
Set Printing Universes.
Polymorphic Definition UnderlyingGraph : SpecializedFunctor GraphIndexingCategory TypeCat.
(* Toplevel input, characters 73-94:
Error:
The term "GraphIndexingCategory (* Top.563 *)" has type
"SpecializedCategory (* Top.563 Set *) GraphIndex"
while it is expected to have type
"SpecializedCategory (* Top.550 Top.551 *) ?7"
(Universe inconsistency: Cannot enforce Set = Top.551)). *)
admit.
Defined.
End success2.
|