annotate src/HomReasoning.agda @ 1124:f683d96fbc93 default tip

safe fix done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 07 Jul 2024 22:28:50 +0900
parents 45de2b31bf02
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1110
45de2b31bf02 add original library and fix for safe mode
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
1 {-# OPTIONS --cubical-compatible --safe #-}
56
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
2 module HomReasoning where
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 -- Shinji KONO <kono@ie.u-ryukyu.ac.jp>
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 open import Level
1110
45de2b31bf02 add original library and fix for safe mode
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
7 open import Category
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 module ≈-Reasoning {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) where
949
ac53803b3b2a reorganization for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 948
diff changeset
10 open import Relation.Binary
1110
45de2b31bf02 add original library and fix for safe mode
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1106
diff changeset
11 open Functor
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 _o_ : {a b c : Obj A } ( x : Hom A a b ) ( y : Hom A c a ) → Hom A c b
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 x o y = A [ x o y ]
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 _≈_ : {a b : Obj A } → Rel (Hom A a b) ℓ
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 x ≈ y = A [ x ≈ y ]
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 infixr 9 _o_
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 infix 4 _≈_
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 refl-hom : {a b : Obj A } { x : Hom A a b } → x ≈ x
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 refl-hom = IsEquivalence.refl (IsCategory.isEquivalence ( Category.isCategory A ))
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 trans-hom : {a b : Obj A } { x y z : Hom A a b } →
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 x ≈ y → y ≈ z → x ≈ z
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 trans-hom b c = ( IsEquivalence.trans (IsCategory.isEquivalence ( Category.isCategory A ))) b c
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 -- some short cuts
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 car : {a b c : Obj A } {x y : Hom A a b } { f : Hom A c a } →
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 x ≈ y → ( x o f ) ≈ ( y o f )
787
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
33 car eq = ( IsCategory.o-resp-≈ ( Category.isCategory A )) ( refl-hom ) eq
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
34
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
35 car1 : { c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) {a b c : Obj A } {x y : Hom A a b } { f : Hom A c a } →
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
36 A [ x ≈ y ] → A [ A [ x o f ] ≈ A [ y o f ] ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
37 car1 A eq = ( IsCategory.o-resp-≈ ( Category.isCategory A )) ( IsEquivalence.refl (IsCategory.isEquivalence ( Category.isCategory A )) ) eq
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 cdr : {a b c : Obj A } {x y : Hom A a b } { f : Hom A b c } →
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 x ≈ y → f o x ≈ f o y
787
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
41 cdr eq = ( IsCategory.o-resp-≈ ( Category.isCategory A )) eq (refl-hom )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
42
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
43 cdr1 : { c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) {a b c : Obj A } {x y : Hom A a b } { f : Hom A b c } →
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
44 A [ x ≈ y ] → A [ A [ f o x ] ≈ A [ f o y ] ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 781
diff changeset
45 cdr1 A eq = ( IsCategory.o-resp-≈ ( Category.isCategory A )) eq (IsEquivalence.refl (IsCategory.isEquivalence ( Category.isCategory A )) )
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 id : (a : Obj A ) → Hom A a a
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 id a = (Id {_} {_} {_} {A} a)
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
479
a5034bdf6f38 Comma Category with A B C
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 460
diff changeset
50 idL : {a b : Obj A } { f : Hom A a b } → id b o f ≈ f
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 idL = IsCategory.identityL (Category.isCategory A)
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 idR : {a b : Obj A } { f : Hom A a b } → f o id a ≈ f
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 idR = IsCategory.identityR (Category.isCategory A)
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 sym : {a b : Obj A } { f g : Hom A a b } → f ≈ g → g ≈ f
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 sym = IsEquivalence.sym (IsCategory.isEquivalence (Category.isCategory A))
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58
455
55a9b6177ed4 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 420
diff changeset
59 sym-hom = sym
55a9b6177ed4 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 420
diff changeset
60
299
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
61 -- working on another cateogry
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
62 idL1 : { c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) {a b : Obj A } { f : Hom A b a } → A [ A [ Id {_} {_} {_} {A} a o f ] ≈ f ]
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
63 idL1 A = IsCategory.identityL (Category.isCategory A)
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
64
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
65 idR1 : { c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) {a b : Obj A } { f : Hom A a b } → A [ A [ f o Id {_} {_} {_} {A} a ] ≈ f ]
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
66 idR1 A = IsCategory.identityR (Category.isCategory A)
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
67
781
340708e8d54f fix for 2.5.4.2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
68 open import Relation.Binary.PropositionalEquality using ( _≡_ )
693
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 606
diff changeset
69 ≈←≡ : {a b : Obj A } { x y : Hom A a b } → (x≈y : x ≡ y ) → x ≈ y
781
340708e8d54f fix for 2.5.4.2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
70 ≈←≡ _≡_.refl = refl-hom
75
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
71
693
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 606
diff changeset
72 -- Ho← to prove this?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 606
diff changeset
73 -- ≡←≈ : {a b : Obj A } { x y : Hom A a b } → (x≈y : x ≈ y ) → x ≡ y
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 606
diff changeset
74 -- ≡←≈ x≈y = irr x≈y
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 606
diff changeset
75
75
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
76 ≡-cong : { c₁′ c₂′ ℓ′ : Level} {B : Category c₁′ c₂′ ℓ′} {x y : Obj B } { a b : Hom B x y } {x' y' : Obj A } →
420
3e44951b9bdb refl in free-monoid trouble
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 299
diff changeset
77 (f : Hom B x y → Hom A x' y' ) → a ≡ b → f a ≈ f b
781
340708e8d54f fix for 2.5.4.2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
78 ≡-cong f _≡_.refl = ≈←≡ _≡_.refl
75
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
79
67
e75436075bf0 cong-hom ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 66
diff changeset
80 -- cong-≈ : { c₁′ c₂′ ℓ′ : Level} {B : Category c₁′ c₂′ ℓ′} {x y : Obj B } { a b : Hom B x y } {x' y' : Obj A } →
e75436075bf0 cong-hom ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 66
diff changeset
81 -- B [ a ≈ b ] → (f : Hom B x y → Hom A x' y' ) → f a ≈ f b
75
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
82 -- cong-≈ eq f = {!!}
67
e75436075bf0 cong-hom ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 66
diff changeset
83
69
84a150c980ce generalized distr and assco1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 67
diff changeset
84 assoc : {a b c d : Obj A } {f : Hom A c d} {g : Hom A b c} {h : Hom A a b}
299
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
85 → f o ( g o h ) ≈ ( f o g ) o h
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 assoc = IsCategory.associative (Category.isCategory A)
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87
299
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
88 -- working on another cateogry
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
89 assoc1 : { c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) {a b c d : Obj A } {f : Hom A c d} {g : Hom A b c} {h : Hom A a b}
69
84a150c980ce generalized distr and assco1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 67
diff changeset
90 → A [ A [ f o ( A [ g o h ] ) ] ≈ A [ ( A [ f o g ] ) o h ] ]
299
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
91 assoc1 A = IsCategory.associative (Category.isCategory A)
69
84a150c980ce generalized distr and assco1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 67
diff changeset
92
84a150c980ce generalized distr and assco1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 67
diff changeset
93 distr : { c₁ c₂ ℓ : Level} {A : Category c₁ c₂ ℓ}
84a150c980ce generalized distr and assco1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 67
diff changeset
94 { c₁′ c₂′ ℓ′ : Level} {D : Category c₁′ c₂′ ℓ′} (T : Functor D A) → {a b c : Obj D} {g : Hom D b c} { f : Hom D a b }
84a150c980ce generalized distr and assco1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 67
diff changeset
95 → A [ FMap T ( D [ g o f ] ) ≈ A [ FMap T g o FMap T f ] ]
75
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
96 distr T = IsFunctor.distr ( isFunctor T )
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
97
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
98 resp : {a b c : Obj A} {f g : Hom A a b} {h i : Hom A b c} → f ≈ g → h ≈ i → (h o f) ≈ (i o g)
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
99 resp = IsCategory.o-resp-≈ (Category.isCategory A)
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
100
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
101 fcong : { c₁ c₂ ℓ : Level} {C : Category c₁ c₂ ℓ}
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
102 { c₁′ c₂′ ℓ′ : Level} {D : Category c₁′ c₂′ ℓ′} {a b : Obj C} {f g : Hom C a b} → (T : Functor C D) → C [ f ≈ g ] → D [ FMap T f ≈ FMap T g ]
8e665152c306 Comparison Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
103 fcong T = IsFunctor.≈-cong (isFunctor T)
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104
606
92eb707498c7 fix for new agda
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
105 infix 3 _∎
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 infixr 2 _≈⟨_⟩_ _≈⟨⟩_
168
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 152
diff changeset
107 infixr 2 _≈↑⟨_⟩_
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 infix 1 begin_
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 ------ If we have this, for example, as an axiom of a category, we can use ≡-Reasoning directly
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 -- ≈-to-≡ : {a b : Obj A } { x y : Hom A a b } → A [ x ≈ y ] → x ≡ y
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 -- ≈-to-≡ refl-hom = refl
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 data _IsRelatedTo_ { a b : Obj A } ( x y : Hom A a b ) :
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 Set (suc (c₁ ⊔ c₂ ⊔ ℓ )) where
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 relTo : (x≈y : x ≈ y ) → x IsRelatedTo y
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 begin_ : { a b : Obj A } { x y : Hom A a b } →
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 x IsRelatedTo y → x ≈ y
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 begin relTo x≈y = x≈y
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 _≈⟨_⟩_ : { a b : Obj A } ( x : Hom A a b ) → { y z : Hom A a b } →
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 x ≈ y → y IsRelatedTo z → x IsRelatedTo z
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 _ ≈⟨ x≈y ⟩ relTo y≈z = relTo (trans-hom x≈y y≈z)
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
168
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 152
diff changeset
126 _≈↑⟨_⟩_ : { a b : Obj A } ( x : Hom A a b ) → { y z : Hom A a b } →
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 152
diff changeset
127 y ≈ x → y IsRelatedTo z → x IsRelatedTo z
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 152
diff changeset
128 _ ≈↑⟨ y≈x ⟩ relTo y≈z = relTo (trans-hom ( sym y≈x ) y≈z)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 152
diff changeset
129
31
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 _≈⟨⟩_ : { a b : Obj A } ( x : Hom A a b ) → { y : Hom A a b } → x IsRelatedTo y → x IsRelatedTo y
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 _ ≈⟨⟩ x∼y = x∼y
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 _∎ : { a b : Obj A } ( x : Hom A a b ) → x IsRelatedTo x
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 _∎ _ = relTo refl-hom
17b8bafebad7 add universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135
948
dca4b29553cb mp-flatten
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 787
diff changeset
136
1106
270f0ba65b88 unify yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 949
diff changeset
137 -- examples
56
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
138
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
139 Lemma61 : {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) →
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
140 { a : Obj A } ( b : Obj A ) →
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
141 ( f : Hom A a b )
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
142 → A [ A [ (Id {_} {_} {_} {A} b) o f ] ≈ f ]
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
143 Lemma61 c b g = -- IsCategory.identityL (Category.isCategory c)
606
92eb707498c7 fix for new agda
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
144 let open ≈-Reasoning (c) in begin
92eb707498c7 fix for new agda
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 479
diff changeset
145 c [ ( Id {_} {_} {_} {c} b ) o g ]
56
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
146 ≈⟨ IsCategory.identityL (Category.isCategory c) ⟩
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
147 g
83ff8d48fdca add unitility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
148
253
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
149
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
150 Lemma62 : {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) →
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
151 { a b : Obj A } →
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
152 ( f g : Hom A a b )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
153 → A [ A [ (Id {_} {_} {_} {A} b) o f ] ≈ A [ (Id {_} {_} {_} {A} b) o g ] ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
154 → A [ g ≈ f ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
155 Lemma62 A {a} {b} f g 1g=1f = let open ≈-Reasoning A in
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
156 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
157 g
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
158 ≈↑⟨ idL ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
159 id b o g
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
160 ≈↑⟨ 1g=1f ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
161 id b o f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
162 ≈⟨ idL ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
163 f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 168
diff changeset
164