changeset 1097:321f0fef54c2

add Todo
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 31 Jul 2021 06:58:48 +0900
parents f6d976d26c5a
children 0484477868fe 56c88ca85d07
files Todo.md src/CCC.agda src/yoneda.agda
diffstat 3 files changed, 78 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Todo.md	Sat Jul 31 06:58:48 2021 +0900
@@ -0,0 +1,50 @@
+Todo
+====
+
+CCCGraph.agda            
+---
+CCC generated from Graph (iconmplete) p.55
+
+   cat-graph-univ :  {c₁ : Level} → UniversalMapping (Grph {c₁} {c₁}) (CAT {c₁ } {c₁} {c₁}) forgetful.UC 
+   ccc-graph-univ :  {c₁ : Level} → UniversalMapping (Grph {c₁} {c₁}) (Cart {c₁ } {c₁} {c₁}) forgetful.UX 
+
+Polynominal.agda         
+---
+Polynominal Category and functional completeness
+
+  -- an assuption needed in k x phi ≈ k x phi'
+  --   k x (i x) ≈ k x ii  
+  postulate 
+       xf :  {a b c : Obj A } → ( x : Hom A 1 a ) → {z : Hom A b c } → ( y  : φ {a} x z ) → ( x ∙ π' ) ≈ π 
+
+  define Polynominal Category as a graph generated one
+  define Polynominal Category as a coMonad
+
+Topos
+---
+
+   ToposEx.agda             Topos Exercise (incomplete)                p.141
+   ToposIL.agda             Topos Internal Language (incomplete)       p.143
+   ToposSub.agda            Topos Subobject classifier (incomplete)
+
+equalizer.agda           
+---
+Equalizer example p.21
+
+Bourroni equations gives an Equalizer
+
+   postulate 
+     uniqueness1 : {d : Obj A} →  ∀ {h : Hom A d a} →  {eq : A [ A [ f  o  h ] ≈ A [ g  o h ] ] } →  {k' : Hom A d c } →
+        A [ A [ (α bur f g ) o k' ] ≈ h ] → A [ k1 {d} h eq  ≈ k' ]
+
+system-f.agda
+---
+
+   very incomplete, because this is a meta circular interpreter of Agda
+
+yoneda.agda              
+---
+Yoneda Functor p.11
+
+     ylem0 : {a b : Obj A } → Hom A a a ≡ Hom A a b → a ≡ b
+
--- a/src/CCC.agda	Wed May 19 09:00:25 2021 +0900
+++ b/src/CCC.agda	Sat Jul 31 06:58:48 2021 +0900
@@ -230,14 +230,19 @@
 -- Sub Object Classifier as Topos
 -- pull back on
 --
+--  m ∙ f ≈ m ∙ g → f ≈ g
+--
 --     iso          ○ b
---  e ⇐====⇒  b -----------→ 1         m ∙ f ≈ m ∙ g → f ≈ g
+--  e ⇐====⇒  b -----------→ 1 
 --  |         |              |
 --  |       m |              | ⊤
---  |         ↓    char m    ↓    Ker h = Equalizer (char m mono)  (⊤ ∙ ○ a )
---  + ------→ a -----------→ Ω        m = Equalizer (char m mono)  (⊤ ∙ ○ a )
+--  |         ↓    char m    ↓    
+--  + ------→ a -----------→ Ω  
 --     ker h        h
 --
+--     Ker h = Equalizer (char m mono)  (⊤ ∙ ○ a )
+--     m = Equalizer (char m mono)  (⊤ ∙ ○ a )
+--
 --  if m is an equalizer, there is an iso between e and b as k, and if we have the iso, m becomes an equalizer.
 --    equalizer.equalizerIso : {a b c : Obj A} → (f g : Hom A a b ) → (equ : Equalizer A f g )
 --      → (m :  Hom A c a) → ( ker-iso : IsoL A m (equalizer equ) ) → IsEqualizer A m f g
@@ -251,10 +256,9 @@
          ker-m : {a b : Obj A} → (m : Hom A b a ) → (mono : Mono A m) → IsEqualizer A m (char m mono) (A [ ⊤ o (CCC.○ c a) ])
          char-uniqueness  : {a b : Obj A } {h : Hom A a Ω}  
              → A [ char (equalizer (Ker h)) (record { isMono = λ f g → monic (Ker h)}) ≈ h ]
-         -- char-iso :  {a a' b : Obj A} → (p : Hom A a b ) (q : Hom A a' b ) → (mp : Mono A p) →(mq : Mono A q) →
-         --        Iso A a a'  → A [ char p mp  ≈ char q mq ]
          char-iso :  {a a' b : Obj A} → (p : Hom A a b ) (q : Hom A a' b ) → (mp : Mono A p) →(mq : Mono A q) →
                 (i : Iso A a a' ) → A [ p ≈ A [ q o Iso.≅→ i ] ]  → A [ char p mp  ≈ char q mq ]
+         -- this means, char m is unique among all equalizers of h and ○  a
      char-cong  : {a b : Obj A } { m m' :  Hom A b a } { mono : Mono A m } { mono' : Mono A m' }
              → A [ m  ≈  m'  ] → A [ char m mono ≈ char m' mono'  ]
      char-cong {a} {b} {m} {m'} {mo} {mo'} m=m' = char-iso m m' mo mo' (≡-iso A _) ( begin 
--- a/src/yoneda.agda	Wed May 19 09:00:25 2021 +0900
+++ b/src/yoneda.agda	Sat Jul 31 06:58:48 2021 +0900
@@ -15,9 +15,7 @@
 open import HomReasoning
 open import Relation.Binary.Core
 open import Relation.Binary
-open import Relation.Binary.PropositionalEquality hiding ( [_] ; sym )
-
-
+open import Relation.Binary.PropositionalEquality hiding ( [_] ; resp ) renaming ( sym to ≡sym )
 
 -- Contravariant Functor : op A → Sets  ( Obj of Sets^{A^op} )
 --   Obj and Hom of Sets^A^op
@@ -386,14 +384,27 @@
 --- How to prove it? from smallness?
 
 data _~_   {a b : Obj A} (f : Hom A a b)
-     : ∀{x y : Obj A} → Hom A x y → Set (suc (c₁ ⊔ c₂ ⊔ ℓ)) where
-  refl : {g : Hom A a b} → (eqv : A [ f ≈ g ]) →  f ~ g
+      : ∀{x y : Obj A} → Hom A x y → Set (suc (c₁ ⊔ c₂ ⊔ ℓ)) where
+   ~refl : {g : Hom A a b} → (eqv : A [ f ≈ g ]) →  f ~ g
+
+≃→b=b : {a b a' b' : Obj A }
+      → ( f : Hom A a b )
+      → ( g : Hom A a' b' )
+      → f ~ g → b ≡ b'
+≃→b=b f g (~refl eqv) = refl
+
+open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 
 
 postulate  -- ?
-     eqObj1 : {a b a' b' : Obj A } → Hom A a b ≡ Hom A a' b' → b ≡ b'
+     ylem0 : {a b : Obj A } → Hom A a a ≡ Hom A a b → a ≡ b
 
 Yoneda-full-embed : {a b : Obj A } → FObj YonedaFunctor a ≡ FObj YonedaFunctor b → a ≡ b
-Yoneda-full-embed {a} {b} eq = eqObj1 ylem1 where
+Yoneda-full-embed {a} {b} eq = ylem0 ylem1 where
      ylem1 : Hom A a a ≡ Hom A a b
      ylem1 = cong (λ k → FObj k a) eq
-
+     f : Hom A a b
+     f = subst (λ k → k ) ylem1 (id1 A a)
+     -- f1 : id1 A a ≅ f
+     -- f1 = {!!}
+     -- f2 : id1 A a ≅ f → Category.cod A (id1 A a) ≡  Category.cod A f
+     -- f2 = {!!}