annotate src/idF.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: 949
diff changeset
1 {-# OPTIONS --cubical-compatible --safe #-}
45de2b31bf02 add original library and fix for safe mode
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 949
diff changeset
2
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 module idF where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 open import Category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 open import HomReasoning
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 identityFunctor : ∀{c₁ c₂ ℓ} {C : Category c₁ c₂ ℓ} → Functor C C
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 identityFunctor {C = C} = record {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 FObj = λ x → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 ; FMap = λ x → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 ; isFunctor = isFunctor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 isFunctor : ∀{c₁ c₂ ℓ} {C : Category c₁ c₂ ℓ} → IsFunctor C C (λ x → x) (λ x → x)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 isFunctor {C = C} =
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 record { ≈-cong = Lemma1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 ; identity = Lemma2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 ; distr = Lemma3
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 FMap : {a b : Obj C} -> Hom C a b -> Hom C a b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 FMap = λ x → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 FObj : Obj C -> Obj C
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 FObj = λ x → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 Lemma1 : {A B : Obj C} {f g : Hom C A B} → C [ f ≈ g ] → C [ FMap f ≈ FMap g ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 Lemma1 {a} {b} {f} {g} f≈g = let open ≈-Reasoning C in
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 FMap f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 ≈⟨ f≈g ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 g
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 FMap g
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 Lemma2 : {A : Obj C} → C [ (FMap {A} {A} (Id {_} {_} {_} {C} A)) ≈ (Id {_} {_} {_} {C} (FObj A)) ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 Lemma2 {A} = let open ≈-Reasoning C in
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 (FMap {A} {A} (Id {_} {_} {_} {C} A))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 (Id {_} {_} {_} {C} (FObj A))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 Lemma3 : {a b c : Obj C} {f : Hom C a b} {g : Hom C b c}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 → C [ FMap (C [ g o f ]) ≈ (C [ FMap g o FMap f ] )]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 Lemma3 {a} {b} {c} {f} {g} = let open ≈-Reasoning C in
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 FMap ( g o f )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 g o f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 FMap g o FMap f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57