mirror of https://github.com/nmvdw/HITs-Examples
Finished proof of extensionality
This commit is contained in:
parent
954c273ddf
commit
01e4cb982f
|
@ -437,15 +437,11 @@ hrecursion X; try (intros ; apply set_path2).
|
||||||
rewrite <- Q.
|
rewrite <- Q.
|
||||||
Admitted.
|
Admitted.
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
Theorem union_isIn (X Y : FSet A) (a : A) : isIn a (U X Y) = orb (isIn a X) (isIn a Y).
|
Theorem union_isIn (X Y : FSet A) (a : A) : isIn a (U X Y) = orb (isIn a X) (isIn a Y).
|
||||||
Proof.
|
Proof.
|
||||||
reflexivity.
|
reflexivity.
|
||||||
Defined.
|
Defined.
|
||||||
|
|
||||||
|
|
||||||
=======
|
|
||||||
|
|
||||||
(* Properties about subset relation. *)
|
(* Properties about subset relation. *)
|
||||||
Lemma subset_union `{Funext} (X Y : FSet A) :
|
Lemma subset_union `{Funext} (X Y : FSet A) :
|
||||||
subset X Y = true -> U X Y = Y.
|
subset X Y = true -> U X Y = Y.
|
||||||
|
@ -588,6 +584,24 @@ Proof.
|
||||||
intros; intro; intros; apply set_path2.
|
intros; intro; intros; apply set_path2.
|
||||||
Defined.
|
Defined.
|
||||||
|
|
||||||
|
Lemma HPropEquiv (X Y : Type) (P : IsHProp X) (Q : IsHProp Y) :
|
||||||
|
(X <-> Y) -> (X <~> Y).
|
||||||
|
Proof.
|
||||||
|
intros [f g].
|
||||||
|
simple refine (BuildEquiv _ _ _ _).
|
||||||
|
apply f.
|
||||||
|
simple refine (BuildIsEquiv _ _ _ _ _ _ _).
|
||||||
|
- apply g.
|
||||||
|
- unfold Sect.
|
||||||
|
intro x.
|
||||||
|
apply Q.
|
||||||
|
- unfold Sect.
|
||||||
|
intro x.
|
||||||
|
apply P.
|
||||||
|
- intros.
|
||||||
|
apply set_path2.
|
||||||
|
Defined.
|
||||||
|
|
||||||
Theorem fset_ext `{Funext} (X Y : FSet A) :
|
Theorem fset_ext `{Funext} (X Y : FSet A) :
|
||||||
X = Y <~> (forall (a : A), isIn a X = isIn a Y).
|
X = Y <~> (forall (a : A), isIn a X = isIn a Y).
|
||||||
Proof.
|
Proof.
|
||||||
|
@ -595,8 +609,24 @@ Proof.
|
||||||
transitivity
|
transitivity
|
||||||
((forall a, isIn a Y = true -> isIn a X = true)
|
((forall a, isIn a Y = true -> isIn a X = true)
|
||||||
*(forall a, isIn a X = true -> isIn a Y = true)).
|
*(forall a, isIn a X = true -> isIn a Y = true)).
|
||||||
- eapply equiv_functor_prod'. admit. admit.
|
|
||||||
- eapply equiv_functor_prod'.
|
- eapply equiv_functor_prod'.
|
||||||
|
apply HPropEquiv.
|
||||||
|
exact _.
|
||||||
|
exact _.
|
||||||
|
split ; apply subset_isIn.
|
||||||
|
apply HPropEquiv.
|
||||||
|
exact _.
|
||||||
|
exact _.
|
||||||
|
split ; apply subset_isIn.
|
||||||
|
- eapply equiv_functor_prod'.
|
||||||
|
apply HPropEquiv.
|
||||||
|
exact _.
|
||||||
|
exact _.
|
||||||
|
split ; apply subset_isIn.
|
||||||
|
apply HPropEquiv.
|
||||||
|
exact _.
|
||||||
|
exact _.
|
||||||
|
split ; apply subset_isIn.'.
|
||||||
Admitted.
|
Admitted.
|
||||||
|
|
||||||
End properties.
|
End properties.
|
||||||
|
|
Loading…
Reference in New Issue