changeset 1100:56c88ca85d07

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 30 Jan 2022 20:40:19 +0900
parents 321f0fef54c2
children f485f725b2d3
files src/Polynominal.agda src/ToposIL.agda src/freyd2.agda src/yoneda.agda
diffstat 4 files changed, 41 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/src/Polynominal.agda	Sat Jul 31 06:58:48 2021 +0900
+++ b/src/Polynominal.agda	Sun Jan 30 20:40:19 2022 +0900
@@ -34,7 +34,12 @@
   -- from page. 51
   --
 
+  open Functor
   open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 
+  open import Relation.Binary.PropositionalEquality hiding ( [_] ; resp ) renaming ( sym to ≡sym )
+
+  data _H≈_ {a b c d : Obj A } ( x : Hom A a b ) (y : Hom A c d ) : Set ( c₁  ⊔  c₂ ⊔ ℓ) where
+     feq : a ≡ c → b ≡ d → (z : Hom A a b) → z ≅ y → A [ x ≈ z ] → x H≈ y
 
   data  φ  {a ⊤ : Obj A } ( x : Hom A ⊤ a ) : {b c : Obj A } → Hom A b c → Set ( c₁  ⊔  c₂ ⊔ ℓ) where
      i   : {b c : Obj A} (k : Hom A b c ) →  φ x k   
@@ -76,11 +81,33 @@
   -- 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 ∙ π' ) ≈ π 
+       xf :  {a b c : Obj A } → ( x : Hom A 1 a ) → {f : Hom A b c } → ( fp  : φ {a} x f ) →  A [ k x (i f) ≈ k x fp ]
+       -- ( x ∙ π' ) ≈ π 
   --   
   --   this is justified equality f ≈ g in A[x] is used in f ∙ < x , id1 A _> ≈  f ∙ < x , id1 A _>
   --   ( x ∙ π' ) ∙ < x , id1 A _ > ≈ π ∙ < x , id1 A _ >
 
+
+  --
+  -- Subcategory of A without x
+  --
+  -- Since A is CCC, ∀ f : Hom A b c ,  φ x {b} {c} (FMap F f) is an arrow of CCC A.
+  --
+
+  --
+  -- If no x in SA (Subcategory of CCC A), we may have xf.
+  --
+  record SA  {a ⊤ : Obj A } ( x : Hom A ⊤ a ) : Set ( suc c₁  ⊔  suc c₂ ⊔ suc ℓ) where
+     field
+       F : Functor A A
+       CF : CCCFunctor A A C C F
+       FObj-iso : (x : Obj A) → FObj F x ≡ x
+       without-x : {b c : Obj A} → (f : Hom A b c) → ¬ ( FMap F f H≈ x  )
+
+  xf-in-SA : {a ⊤ : Obj A } ( x : Hom A ⊤ a ) → (sa : SA x) → 
+       {b c : Obj A } → {f : Hom A b c } → ( fp  : φ {a} x (FMap (SA.F sa) f) ) →  Set ℓ
+  xf-in-SA {a} {⊤} x sa {b} {c} {f} fp = A [ k x (i (FMap (SA.F sa) f)) ≈ k x fp ]
+
   -- since we have A[x] now, we can proceed the proof on p.64 in some possible future
 
   --
@@ -144,6 +171,7 @@
                ( (f ∙ π')  ∙  < π ∙ π , < π' ∙  π , π' > > ) *  ≈⟨ *-cong ( car ( ki x _ fp )) ⟩
                ( k x fp ∙  < π ∙ π , < π' ∙  π , π' > > ) *  ≈⟨⟩
                k x (v fp )  ∎  
+
   k-cong : {a b c : Obj A}  → (f g :  Poly a c b )
         → A [ Poly.f f ≈ Poly.f g ] → A [ k (Poly.x f) (Poly.phi f)   ≈ k (Poly.x g) (Poly.phi g) ]
   k-cong {a} {b} {c} f g f=f = begin
--- a/src/ToposIL.agda	Sat Jul 31 06:58:48 2021 +0900
+++ b/src/ToposIL.agda	Sun Jan 30 20:40:19 2022 +0900
@@ -153,7 +153,7 @@
         tt :  (q : Poly a  (Topos.Ω t) b ) → A [ char t (equalizer (Ker t (Poly.f q))) (eMonic A (Ker t (Poly.f q)))  ≈  Poly.f q ]
         tt q = IsTopos.char-uniqueness (Topos.isTopos t) {b} {a} 
 
-  module IL1 (Ω : Obj A) (⊤ : Hom A 1 Ω) (P  : Obj A → Obj A) (il : InternalLanguage  Ω ⊤ P) (t : Topos A c) where
+  module IL1 (Ω : Obj A) (⊤ : Hom A 1 Ω) (P  : Obj A → Obj A) (il : InternalLanguage  Ω ⊤ P)  where
      open InternalLanguage il
      il00 : {a : Obj A}  (p : Poly a  Ω 1 )  → p  ⊢ p
      il00 {a}  p h eq = eq
--- a/src/freyd2.agda	Sat Jul 31 06:58:48 2021 +0900
+++ b/src/freyd2.agda	Sun Jan 30 20:40:19 2022 +0900
@@ -19,7 +19,7 @@
 --    U ⋍ Hom (a,-)
 --
 
-open import Relation.Binary.PropositionalEquality hiding ( [_] ; sym )
+open import Relation.Binary.PropositionalEquality hiding ( [_] ; sym ; resp )
 
 -- A is localy small
 postulate ≡←≈ :  { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ )  {a b : Obj A } { x y : Hom A a b } →  (x≈y : A [ x ≈ y  ]) → x ≡ y
--- a/src/yoneda.agda	Sat Jul 31 06:58:48 2021 +0900
+++ b/src/yoneda.agda	Sun Jan 30 20:40:19 2022 +0900
@@ -349,9 +349,7 @@
      Sets [ g o  FMap F (sur s (id1 Sets _)) ]  ≈⟨ eq ⟩
      Sets [ h o  FMap F (sur s (id1 Sets _)) ]  ≈⟨ cdr (surjective s (id1 Sets _) ) ⟩
      Sets [ h o id1  Sets _ ]  ≈⟨ idR ⟩
-     h ∎ 
-  where
-     open ≈-Reasoning Sets
+     h ∎ where open ≈-Reasoning Sets
      -- sj : B [ FMap F ( CatSurjective.sur s (FMap F (f g h))) ≈ FMap F (f g h) ]
      -- sj  = CatSurjective.surjective s (FMap F (f g h)) 
 
@@ -376,10 +374,7 @@
          Sets [ TMap h _  o (λ z → A [ sur Yoneda-surjective (id1 SetsAop _) o z ] ) ] ≈⟨  cdr (surjective Yoneda-surjective (id1 SetsAop _)) ⟩
          Sets [ TMap h _  o id1  Sets _ ] ≈⟨ idR ⟩
          TMap h _
-         ∎ where
-             open ≈-Reasoning Sets
-             s : CatSurjective A SetsAop YonedaFunctor 
-             s = Yoneda-surjective 
+         ∎ where open ≈-Reasoning Sets
 
 --- How to prove it? from smallness?
 
@@ -395,16 +390,18 @@
 
 open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 
 
+--
+-- if Hom A a a ≡ Hom A a b, b must be a cod of id1 A a, so a ≡ b
+--
 postulate  -- ?
      ylem0 : {a b : Obj A } → Hom A a a ≡ Hom A a b → a ≡ b
 
+-- Obj : Set c₂
+-- Hom : Obj → Obj → Set c₂
+-- cod : {A B : Obj} → Hom A B → Obj
+-- cod {a} {b} _ = b
+
 Yoneda-full-embed : {a b : Obj A } → FObj YonedaFunctor a ≡ FObj YonedaFunctor b → a ≡ b
 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 = {!!}