summaryrefslogtreecommitdiff
path: root/test-suite/bugs/closed/HoTT_coq_098.v
blob: bdcd8ba97d86a58325bd72b7609c23cffc42be6f (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
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
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.
  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.
  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.