mirror of https://github.com/nmvdw/HITs-Examples
Simplified independence proof
This commit is contained in:
parent
40e1f45cfa
commit
dfd590724b
|
@ -43,18 +43,11 @@ Section isIn.
|
||||||
Context `{Univalence}.
|
Context `{Univalence}.
|
||||||
Context {HS : closedSingleton C} {HIn : forall X, C X -> forall a, Decidable (X a)}.
|
Context {HS : closedSingleton C} {HIn : forall X, C X -> forall a, Decidable (X a)}.
|
||||||
|
|
||||||
Theorem decidable_A_isIn : forall a b : A, Decidable (Trunc (-1) (b = a)).
|
Theorem decidable_A_isIn (a b : A) : Decidable (Trunc (-1) (b = a)).
|
||||||
Proof.
|
Proof.
|
||||||
intros.
|
destruct (HIn {|a|} (HS a) b).
|
||||||
unfold Decidable, closedSingleton in *.
|
- apply (inl t).
|
||||||
pose (HIn {|a|} (HS a) b).
|
- refine (inr(fun p => _)).
|
||||||
destruct s.
|
|
||||||
- unfold singleton in t.
|
|
||||||
left.
|
|
||||||
apply t.
|
|
||||||
- right.
|
|
||||||
intro p.
|
|
||||||
unfold singleton in n.
|
|
||||||
strip_truncations.
|
strip_truncations.
|
||||||
contradiction (n (tr p)).
|
contradiction (n (tr p)).
|
||||||
Defined.
|
Defined.
|
||||||
|
@ -78,24 +71,17 @@ Section intersect.
|
||||||
{HI : closedIntersection C} {HE : closedEmpty C}
|
{HI : closedIntersection C} {HE : closedEmpty C}
|
||||||
{HS : closedSingleton C} {HDE : hasDecidableEmpty C}.
|
{HS : closedSingleton C} {HDE : hasDecidableEmpty C}.
|
||||||
|
|
||||||
Theorem decidable_A_intersect : forall a b : A, Decidable (Trunc (-1) (b = a)).
|
Theorem decidable_A_intersect (a b : A) : Decidable (Trunc (-1) (b = a)).
|
||||||
Proof.
|
Proof.
|
||||||
intros.
|
unfold Decidable.
|
||||||
unfold Decidable, closedEmpty, closedIntersection, closedSingleton, hasDecidableEmpty in *.
|
|
||||||
pose (HI {|a|} {|b|} (HS a) (HS b)) as IntAB.
|
pose (HI {|a|} {|b|} (HS a) (HS b)) as IntAB.
|
||||||
pose (HDE ({|a|} ∪ {|b|}) IntAB) as IntE.
|
pose (HDE ({|a|} ∪ {|b|}) IntAB) as IntE.
|
||||||
refine (@Trunc_rec _ _ _ _ _ IntE) ; intros [p | p] ; unfold min_fun, singleton in p.
|
refine (Trunc_rec _ IntE) ; intros [p | p].
|
||||||
- right.
|
- refine (inr(fun q => _)).
|
||||||
intro q.
|
|
||||||
strip_truncations.
|
strip_truncations.
|
||||||
rewrite q in p.
|
refine (transport (fun Z => a ∈ Z) p (tr idpath, tr q^)).
|
||||||
enough (a ∈ ∅) as X.
|
|
||||||
{ apply X. }
|
|
||||||
rewrite <- p.
|
|
||||||
cbn.
|
|
||||||
split ; apply (tr idpath).
|
|
||||||
- strip_truncations.
|
- strip_truncations.
|
||||||
destruct p as [a0 [t1 t2]].
|
destruct p as [? [t1 t2]].
|
||||||
strip_truncations.
|
strip_truncations.
|
||||||
apply (inl (tr (t2^ @ t1))).
|
apply (inl (tr (t2^ @ t1))).
|
||||||
Defined.
|
Defined.
|
||||||
|
|
Loading…
Reference in New Issue