From f13fcc91aac71f0c8fad557a7450170b264f15f7 Mon Sep 17 00:00:00 2001 From: Robbert Krebbers <mail@robbertkrebbers.nl> Date: Tue, 17 Nov 2015 18:24:37 +0100 Subject: [PATCH] Inhabited now lives in Type rather than Prop. --- theories/base.v | 2 +- theories/finite.v | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/theories/base.v b/theories/base.v index a94511d4..36af265f 100644 --- a/theories/base.v +++ b/theories/base.v @@ -129,7 +129,7 @@ Arguments decide _ {_}. (** ** Inhabited types *) (** This type class collects types that are inhabited. *) -Class Inhabited (A : Type) : Prop := populate { _ : A }. +Class Inhabited (A : Type) : Type := populate { inhabitant : A }. Arguments populate {_} _. Instance unit_inhabited: Inhabited unit := populate (). diff --git a/theories/finite.v b/theories/finite.v index 78240011..fed9dd3f 100644 --- a/theories/finite.v +++ b/theories/finite.v @@ -69,7 +69,7 @@ Proof. Qed. Lemma finite_inhabited A `{finA: Finite A} : 0 < card A → Inhabited A. Proof. - unfold card. destruct finA as [[|x ?] ??]; simpl; auto with lia. + unfold card; intros. destruct finA as [[|x ?] ??]; simpl in *; [exfalso;lia|]. constructor; exact x. Qed. Lemma finite_injective_contains `{finA: Finite A} `{finB: Finite B} (f: A → B) -- GitLab