diff --git a/1FundamentalGroup/Quest2.agda b/1FundamentalGroup/Quest2.agda index 76777aa..d1778a6 100644 --- a/1FundamentalGroup/Quest2.agda +++ b/1FundamentalGroup/Quest2.agda @@ -2,6 +2,10 @@ module 1FundamentalGroup.Quest2 where open import 1FundamentalGroup.Preambles.P2 + + + + data _⊔_ (A B : Type) : Type where inl : A → A ⊔ B diff --git a/1FundamentalGroup/Quest2Solutions.agda b/1FundamentalGroup/Quest2Solutions.agda index 2e7ba12..eb6bdc8 100644 --- a/1FundamentalGroup/Quest2Solutions.agda +++ b/1FundamentalGroup/Quest2Solutions.agda @@ -2,6 +2,15 @@ module 1FundamentalGroup.Quest2Solutions where open import 1FundamentalGroup.Preambles.P2 +isSet→LoopSpace≡⊤ : {A : Type} (x : A) → isSet A → (x ≡ x) ≡ ⊤ +isSet→LoopSpace≡⊤ x h = isoToPath (iso (λ p → tt) inv rightInv (λ p → h x x refl p)) where + + inv : ⊤ → x ≡ x + inv tt = refl + + rightInv : section (λ p → tt) inv + rightInv tt = refl + data _⊔_ (A B : Type) : Type where @@ -90,22 +99,12 @@ isSet⊔NoConfusion hA hB (inr x) (inr y) = hB x y ⊔NoConfusionSelf (inl x) = refl ⊔NoConfusionSelf (inr x) = refl -Path≅⊔NoConfusion' : (x y : A ⊔ B) → (x ≡ y) ≅ ⊔NoConfusion x y -Path≅⊔NoConfusion' x y = iso (fun _ _) ({!!}) ({!!}) ({!!}) where +disjoint : (x : A) (y : B) → inl x ≡ inr y → ⊥ +disjoint x y p = endPt bundle p tt where - -- if you case on x and y you would have to show that inl and inr are injective - -- J avoids this, but leads to needing J and JRefl for showing section and retract - fun : (x y : A ⊔ B) → (x ≡ y) → ⊔NoConfusion x y - fun x y = J (λ y₂ x₂ → ⊔NoConfusion x y₂) (⊔NoConfusionSelf x) - - inv : (x y : A ⊔ B) → ⊔NoConfusion x y → x ≡ y - inv (inl x) (inl y) p = cong inl p - inv (inr x) (inr y) p = cong inr p - - rightInv : (x y : A ⊔ B) → section (fun x y) (inv x y) - rightInv {A} {B} (inl x) (inl x₁) = J ((λ y' p → fun {A} {B} (inl x) (inl y') (inv (inl x) (inl y') p) ≡ p)) {!!} - rightInv {A} {B} (inl x) (inr x₁) = {!!} - rightInv {A} {B} (inr x) y = {!!} + bundle : A ⊔ B → Type + bundle (inl x) = ⊤ + bundle (inr x) = ⊥ Path≅⊔NoConfusion : (x y : A ⊔ B) → (x ≡ y) ≅ ⊔NoConfusion x y Path≅⊔NoConfusion x y = iso (fun _ _) (inv _ _) (rightInv _ _) (leftInv _ _) where diff --git a/1FundamentalGroup/Shelf/questExtras.agda b/1FundamentalGroup/Shelf/questExtras.agda index 8eb7d95..d1b09aa 100644 --- a/1FundamentalGroup/Shelf/questExtras.agda +++ b/1FundamentalGroup/Shelf/questExtras.agda @@ -1,8 +1,15 @@ -¬isSetS¹ : isSet S¹ → ⊥ -¬isSetS¹ = {!!} +module 1FundamentalGroup.Shelf.questExtras where -¬isPropS¹ : isProp S¹ → ⊥ -¬isPropS¹ = {!!} +open import Cubical.Foundations.Prelude +open import Cubical.HITs.S1 +open import Cubical.Data.Empty +open import 1FundamentalGroup.Quest0Solutions + +-- ¬isSetS¹ : isSet S¹ → ⊥ +-- ¬isSetS¹ = {!!} + +-- ¬isPropS¹ : isProp S¹ → ⊥ +-- ¬isPropS¹ = {!!} -------------solutions------ ¬isSetS¹ : isSet S¹ → ⊥ @@ -10,3 +17,110 @@ ¬isPropS¹ : isProp S¹ → ⊥ ¬isPropS¹ h = ¬isSetS¹ (isProp→isSet h) + + +------------J exercises---------------- + +private + variable + A B : Type + +Cong : {x y : A} (f : A → B) → x ≡ y → f x ≡ f y +Cong {A} {B} {x} f = J (λ y p → f x ≡ f y) refl + +Sym : {x y : A} → x ≡ y → y ≡ x +Sym {A} {x} = J (λ y1 p → y1 ≡ x) refl + +SymRefl : {x : A} → Sym {A} {x} {x} (refl) ≡ refl +SymRefl {A} {x} = JRefl (λ y1 p → y1 ≡ x) refl + +Trans : {x y z : A} → x ≡ y → y ≡ z → x ≡ z +Trans {x = x} {z = z} = J (λ y1 p → y1 ≡ z → x ≡ z) λ q → q + +_⋆_ = Trans -- input \* + +TransRefl : {x y : A} → Trans {A} {x} {x} {y} refl ≡ λ q → q +TransRefl {x = x} {y = y} = JRefl ((λ y1 p → y1 ≡ y → x ≡ y)) λ q → q + +refl⋆refl : {x : A} → refl {_} {A} {x} ⋆ refl ≡ refl +refl⋆refl = Cong (λ f → f refl) TransRefl + +⋆refl : {x y : A} (p : x ≡ y) → Trans p refl ≡ p +⋆refl {A} {x} {y} = J (λ y p → Trans p refl ≡ p) refl⋆refl + +refl⋆ : {A : Type} {x y : A} (p : x ≡ y) → refl ⋆ p ≡ p +refl⋆ = J (λ y p → refl ⋆ p ≡ p) refl⋆refl + + +⋆Sym : {A : Type} {x y : A} (p : x ≡ y) → p ⋆ Sym p ≡ refl +⋆Sym = J (λ y p → p ⋆ Sym p ≡ refl) + ( + refl ⋆ Sym refl + ≡⟨ cong (λ p → refl ⋆ p) SymRefl ⟩ + refl ⋆ refl + ≡⟨ refl⋆refl ⟩ + refl ∎ + ) + + +Sym⋆ : {A : Type} {x y : A} (p : x ≡ y) → (Sym p) ⋆ p ≡ refl +Sym⋆ = J (λ y p → (Sym p) ⋆ p ≡ refl) + ( + (Sym refl) ⋆ refl + ≡⟨ cong (λ p → p ⋆ refl) SymRefl ⟩ + refl ⋆ refl + ≡⟨ refl⋆refl ⟩ + refl ∎ + ) + +Assoc : {A : Type} {w x : A} (p : w ≡ x) {y z : A} (q : x ≡ y) (r : y ≡ z) + → (p ⋆ q) ⋆ r ≡ p ⋆ (q ⋆ r) +Assoc {A} = J + -- casing on p + (λ x p → {y z : A} (q : x ≡ y) (r : y ≡ z) → (p ⋆ q) ⋆ r ≡ p ⋆ (q ⋆ r)) + -- reduce to showing when p = refl + λ q r → ((refl ⋆ q) ⋆ r) + ≡⟨ cong (λ p' → p' ⋆ r) (refl⋆ q) ⟩ + (q ⋆ r) + ≡⟨ Sym (refl⋆ (q ⋆ r)) ⟩ + (refl ⋆ (q ⋆ r)) ∎ + + +-------------original------------------- + + +-- ∙refl : {A : Type} {x y : A} (p : x ≡ y) → p ∙ refl ≡ p +-- ∙refl = J (λ y p → p ∙ refl ≡ p) refl∙refl + +-- refl∙ : {A : Type} {x y : A} (p : x ≡ y) → refl ∙ p ≡ p +-- refl∙ = J (λ y p → refl ∙ p ≡ p) refl∙refl + +-- ∙sym : {A : Type} {x y : A} (p : x ≡ y) → p ∙ sym p ≡ refl +-- ∙sym = J (λ y p → p ∙ sym p ≡ refl) +-- ( +-- refl ∙ sym refl +-- ≡⟨ cong (λ p → refl ∙ p) symRefl ⟩ +-- refl ∙ refl +-- ≡⟨ refl∙refl ⟩ +-- refl ∎) + +-- sym∙ : {A : Type} {x y : A} (p : x ≡ y) → (sym p) ∙ p ≡ refl +-- sym∙ = J (λ y p → (sym p) ∙ p ≡ refl) +-- ( +-- (sym refl) ∙ refl +-- ≡⟨ cong (λ p → p ∙ refl) symRefl ⟩ +-- refl ∙ refl +-- ≡⟨ refl∙refl ⟩ +-- refl ∎) + +-- assoc : {A : Type} {w x : A} (p : w ≡ x) {y z : A} (q : x ≡ y) (r : y ≡ z) +-- → (p ∙ q) ∙ r ≡ p ∙ (q ∙ r) +-- assoc {A} = J +-- -- casing on p +-- (λ x p → {y z : A} (q : x ≡ y) (r : y ≡ z) → (p ∙ q) ∙ r ≡ p ∙ (q ∙ r)) +-- -- reduce to showing when p = refl +-- λ q r → (refl ∙ q) ∙ r +-- ≡⟨ cong (λ p' → p' ∙ r) (refl∙ q) ⟩ +-- q ∙ r +-- ≡⟨ sym (refl∙ (q ∙ r)) ⟩ +-- refl ∙ q ∙ r ∎ diff --git a/_build/2.6.2/agda/1FundamentalGroup/Quest2Solutions.agdai b/_build/2.6.2/agda/1FundamentalGroup/Quest2Solutions.agdai index 6f6bf2a..493a92d 100644 Binary files a/_build/2.6.2/agda/1FundamentalGroup/Quest2Solutions.agdai and b/_build/2.6.2/agda/1FundamentalGroup/Quest2Solutions.agdai differ diff --git a/_build/2.6.2/agda/1FundamentalGroup/Shelf/questExtras.agdai b/_build/2.6.2/agda/1FundamentalGroup/Shelf/questExtras.agdai new file mode 100644 index 0000000..34e056c Binary files /dev/null and b/_build/2.6.2/agda/1FundamentalGroup/Shelf/questExtras.agdai differ