Added decidable quantification

This commit is contained in:
Niels van der Weide 2017-09-22 19:42:25 +02:00
parent 2eace536c2
commit a0dbf4bfad
3 changed files with 31 additions and 2 deletions

View File

@ -25,4 +25,5 @@ misc/bad.v
misc/dec_lem.v
misc/ordered.v
misc/projective.v
misc/dec_kuratowski.v
misc/dec_kuratowski.v
misc/dec_fset.v

View File

@ -116,4 +116,18 @@ Section quantifiers.
Proof.
hinduction ; try (apply _) ; try (intros ; apply path_ishprop).
Defined.
End quantifiers.
End quantifiers.
Section simple_example.
Context `{Univalence}.
Definition P : nat -> hProp := fun n => BuildhProp(n = n).
Definition X : FSet nat := {|0|} {|1|}.
Definition simple_example : all P X.
Proof.
refine (from_squash (all P X)).
compute.
apply tt.
Defined.
End simple_example.

View File

@ -1,6 +1,20 @@
(** Some general prerequisities in homotopy type theory. *)
Require Import HoTT.
Definition squash (A : Type) `{Decidable A} : Type :=
match dec A with
| inl _ => Unit
| inr _ => Empty
end.
Definition from_squash (A : Type) `{Decidable A} {x : squash A} : A.
Proof.
unfold squash in *.
destruct (dec A).
- apply a.
- contradiction.
Defined.
Lemma ap_inl_path_sum_inl {A B} (x y : A) (p : inl x = inl y) :
ap inl (path_sum_inl B p) = p.
Proof.