diff options
author | Matthieu Sozeau <mattam@mattam.org> | 2014-06-17 11:18:10 +0200 |
---|---|---|
committer | Matthieu Sozeau <mattam@mattam.org> | 2014-06-17 15:42:14 +0200 |
commit | b8834d66013b38cef247507f312bb081de04da27 (patch) | |
tree | 13bf7e5c58c160eac0dafa6d36e9f7a9ad6745e9 /test-suite/bugs/closed/HoTT_coq_063.v | |
parent | 0091c528cb1b0171215a6ef5a47f26763a4edc09 (diff) |
Existing Class now works with universe polymorphism. Fixes HoTT bug #063
Diffstat (limited to 'test-suite/bugs/closed/HoTT_coq_063.v')
-rw-r--r-- | test-suite/bugs/closed/HoTT_coq_063.v | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test-suite/bugs/closed/HoTT_coq_063.v b/test-suite/bugs/closed/HoTT_coq_063.v new file mode 100644 index 000000000..777f6483d --- /dev/null +++ b/test-suite/bugs/closed/HoTT_coq_063.v @@ -0,0 +1,34 @@ +Set Universe Polymorphism. +Module A. + Inductive paths A (x : A) : A -> Type := idpath : paths A x x. + + Notation "x = y" := (paths _ x y). + + Inductive IsTrunc : nat -> Type -> Type := + | BuildContr : forall A (center : A) (contr : forall y, center = y), IsTrunc 0 A + | trunc_S : forall A n, (forall x y : A, IsTrunc n (x = y)) -> IsTrunc (S n) A. + + Existing Class IsTrunc. + + + Instance is_trunc_unit : IsTrunc 0 unit. + Proof. apply BuildContr with (center:=tt). now intros []. Defined. + + Check (_ : IsTrunc 0 unit). +End A. + +Module B. + Fixpoint IsTrunc (n : nat) (A : Type) : Type := + match n with + | O => True + | S _ => False + end. + + Existing Class IsTrunc. + + Instance is_trunc_unit : IsTrunc 0 unit. + Proof. exact I. Defined. + + Check (_ : IsTrunc 0 unit). + Fail Definition foo := (_ : IsTrunc 1 unit). +End B. |