Do not export helpers in Fun

This commit is contained in:
Frederik Hanghøj Iversen 2018-03-20 16:50:03 +01:00
parent 629115661b
commit 31257a4d97
3 changed files with 46 additions and 42 deletions

View file

@ -69,54 +69,55 @@ module Fun {c c' d d' : Level} ( : Category c c') (𝔻 : C
open RawCategory RawFun open RawCategory RawFun
open Univalence (λ {A} {B} {f} isIdentity {A} {B} {f}) open Univalence (λ {A} {B} {f} isIdentity {A} {B} {f})
module _ {A B : Functor 𝔻} where private
module A = Functor A module _ {A B : Functor 𝔻} where
module B = Functor B module A = Functor A
module _ (p : A B) where module B = Functor B
omapP : A.omap B.omap module _ (p : A B) where
omapP i = Functor.omap (p i) omapP : A.omap B.omap
omapP i = Functor.omap (p i)
coerceAB : {X} 𝔻 [ A.omap X , A.omap X ] 𝔻 [ A.omap X , B.omap X ] coerceAB : {X} 𝔻 [ A.omap X , A.omap X ] 𝔻 [ A.omap X , B.omap X ]
coerceAB {X} = cong (λ φ 𝔻 [ A.omap X , φ X ]) omapP coerceAB {X} = cong (λ φ 𝔻 [ A.omap X , φ X ]) omapP
-- The transformation will be the identity on 𝔻. Such an arrow has the -- The transformation will be the identity on 𝔻. Such an arrow has the
-- type `A.omap A → A.omap A`. Which we can coerce to have the type -- type `A.omap A → A.omap A`. Which we can coerce to have the type
-- `A.omap → B.omap` since `A` and `B` are equal. -- `A.omap → B.omap` since `A` and `B` are equal.
coe𝟙 : Transformation A B coe𝟙 : Transformation A B
coe𝟙 X = coe coerceAB 𝔻.𝟙 coe𝟙 X = coe coerceAB 𝔻.𝟙
module _ {a b : .Object} (f : [ a , b ]) where module _ {a b : .Object} (f : [ a , b ]) where
nat' : 𝔻 [ coe𝟙 b A.fmap f ] 𝔻 [ B.fmap f coe𝟙 a ] nat' : 𝔻 [ coe𝟙 b A.fmap f ] 𝔻 [ B.fmap f coe𝟙 a ]
nat' = begin nat' = begin
(𝔻 [ coe𝟙 b A.fmap f ]) ≡⟨ {!!} (𝔻 [ coe𝟙 b A.fmap f ]) ≡⟨ {!!}
(𝔻 [ B.fmap f coe𝟙 a ]) (𝔻 [ B.fmap f coe𝟙 a ])
transs : (i : I) Transformation A (p i) transs : (i : I) Transformation A (p i)
transs = {!!} transs = {!!}
natt : (i : I) Natural A (p i) {!!} natt : (i : I) Natural A (p i) {!!}
natt = {!!} natt = {!!}
t : Natural A B coe𝟙 t : Natural A B coe𝟙
t = coe c (identityNatural A) t = coe c (identityNatural A)
where where
c : Natural A A (identityTrans A) Natural A B coe𝟙 c : Natural A A (identityTrans A) Natural A B coe𝟙
c = begin c = begin
Natural A A (identityTrans A) ≡⟨ (λ x {!natt ?!}) Natural A A (identityTrans A) ≡⟨ (λ x {!natt ?!})
Natural A B coe𝟙 Natural A B coe𝟙
-- cong (λ φ → {!Natural A A (identityTrans A)!}) {!!} -- cong (λ φ → {!Natural A A (identityTrans A)!}) {!!}
k : Natural A A (identityTrans A) Natural A B coe𝟙 k : Natural A A (identityTrans A) Natural A B coe𝟙
k n {a} {b} f = res k n {a} {b} f = res
where where
res : (𝔻 [ coe𝟙 b A.fmap f ]) (𝔻 [ B.fmap f coe𝟙 a ]) res : (𝔻 [ coe𝟙 b A.fmap f ]) (𝔻 [ B.fmap f coe𝟙 a ])
res = {!!} res = {!!}
nat : Natural A B coe𝟙 nat : Natural A B coe𝟙
nat = nat' nat = nat'
fromEq : NaturalTransformation A B fromEq : NaturalTransformation A B
fromEq = coe𝟙 , nat fromEq = coe𝟙 , nat
module _ {A B : Functor 𝔻} where module _ {A B : Functor 𝔻} where
obverse : A B A B obverse : A B A B

View file

@ -328,6 +328,8 @@ module _ { : Level} where
SetsHasProducts = record { product = product } SetsHasProducts = record { product = product }
module _ {a b : Level} ( : Category a b) where module _ {a b : Level} ( : Category a b) where
open Category
-- Covariant Presheaf -- Covariant Presheaf
Representable : Set (a lsuc b) Representable : Set (a lsuc b)
Representable = Functor (𝓢𝓮𝓽 b) Representable = Functor (𝓢𝓮𝓽 b)
@ -336,8 +338,6 @@ module _ {a b : Level} ( : Category a b) where
Presheaf : Set (a lsuc b) Presheaf : Set (a lsuc b)
Presheaf = Functor (opposite ) (𝓢𝓮𝓽 b) Presheaf = Functor (opposite ) (𝓢𝓮𝓽 b)
open Category
-- The "co-yoneda" embedding. -- The "co-yoneda" embedding.
representable : Category.Object Representable representable : Category.Object Representable
representable A = record representable A = record

View file

@ -28,9 +28,12 @@ module _ { : Level} { : Category } where
private private
𝓢 = Sets 𝓢 = Sets
open Fun (opposite ) 𝓢 open Fun (opposite ) 𝓢
presheaf = Cat.Categories.Sets.presheaf
module = Category module = Category
presheaf : .Object Presheaf
presheaf = Cat.Categories.Sets.presheaf
module _ {A B : .Object} (f : [ A , B ]) where module _ {A B : .Object} (f : [ A , B ]) where
fmap : Transformation (presheaf A) (presheaf B) fmap : Transformation (presheaf A) (presheaf B)
fmap C x = [ f x ] fmap C x = [ f x ]