annotate idF.agda @ 809:0976d576f5f6

<_,_> as function on Sets
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 26 Apr 2019 21:24:12 +0900
parents 3249aaddc405
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 module idF where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 open import Category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 open import HomReasoning
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 identityFunctor : ∀{c₁ c₂ ℓ} {C : Category c₁ c₂ ℓ} → Functor C C
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 identityFunctor {C = C} = record {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 FObj = λ x → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 ; FMap = λ x → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 ; isFunctor = isFunctor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 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
14 isFunctor {C = C} =
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 record { ≈-cong = Lemma1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 ; identity = Lemma2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 ; distr = Lemma3
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 FMap : {a b : Obj C} -> Hom C a b -> Hom C a b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 FMap = λ x → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 FObj : Obj C -> Obj C
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 FObj = λ x → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 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
24 Lemma1 {a} {b} {f} {g} f≈g = let open ≈-Reasoning C in
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 FMap f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 ≈⟨ f≈g ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 g
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 FMap 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 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
35 Lemma2 {A} = let open ≈-Reasoning C in
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 (FMap {A} {A} (Id {_} {_} {_} {C} A))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 (Id {_} {_} {_} {C} (FObj 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 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
42 → C [ FMap (C [ g o f ]) ≈ (C [ FMap g o FMap f ] )]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 Lemma3 {a} {b} {c} {f} {g} = let open ≈-Reasoning C in
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 FMap ( g o f )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 ≈⟨⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 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 FMap g o FMap 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
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