comparison equalizer.agda @ 209:4e138cc953f3

equalizer difinition
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 02 Sep 2013 21:59:37 +0900
parents a1e5d2a3d3bd
children 51c57efe89b9
comparison
equal deleted inserted replaced
208:a1e5d2a3d3bd 209:4e138cc953f3
19 module equalizer { c₁ c₂ ℓ : Level} { A : Category c₁ c₂ ℓ } where 19 module equalizer { c₁ c₂ ℓ : Level} { A : Category c₁ c₂ ℓ } where
20 20
21 open import HomReasoning 21 open import HomReasoning
22 open import cat-utility 22 open import cat-utility
23 23
24 record Equalizer { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) {a b : Obj A} (f g : Hom A a b) : Set (ℓ ⊔ (c₁ ⊔ c₂)) where 24 record Equalizer { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) {c a b : Obj A} (f g : Hom A a b) : Set (ℓ ⊔ (c₁ ⊔ c₂)) where
25 field 25 field
26 equalizer : {c d : Obj A} (e : Hom A c a) (h : Hom A d a) → Hom A d c 26 e : Hom A c a
27 equalize : {c d : Obj A} (e : Hom A c a) (h : Hom A d a) → 27 ef=eg : A [ A [ f o e ] ≈ A [ g o e ] ]
28 A [ A [ A [ f o e ] o equalizer e h ] ≈ A [ g o h ] ] 28 k : {d : Obj A} (h : Hom A d a) → A [ A [ f o h ] ≈ A [ g o h ] ] → Hom A d c
29 uniqueness : {c d : Obj A} (e : Hom A c a) (h : Hom A d a) ( k : Hom A d c ) → 29 ke=h : {d : Obj A} → ∀ {h : Hom A d a} → (eq : A [ A [ f o h ] ≈ A [ g o h ] ] ) → A [ A [ e o k {d} h eq ] ≈ h ]
30 A [ A [ A [ f o e ] o k ] ≈ A [ g o h ] ] → A [ equalizer e h ≈ k ] 30 uniqueness : {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 [ e o k' ] ≈ h ] →
31 A [ k {d} h eq ≈ k' ]
32 equalizer : Hom A c a
33 equalizer = e
31 34
32 record EqEqualizer { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) {a b : Obj A} (f g : Hom A a b) : Set (ℓ ⊔ (c₁ ⊔ c₂)) where 35 record EqEqualizer { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) {c a b : Obj A} (f g : Hom A a b) : Set (ℓ ⊔ (c₁ ⊔ c₂)) where
33 field 36 field
34 α : {e a b : Obj A} → (f : Hom A a b) → (g : Hom A a b ) → Hom A e a 37 α : {e a : Obj A } → (f : Hom A a b) → (g : Hom A a b ) → Hom A e a
35 γ : {c d e a b : Obj A} → (f : Hom A a b) → (g : Hom A a b ) → (h : Hom A d a ) → Hom A c e 38 γ : {d e a b : Obj A} → (f : Hom A a b) → (g : Hom A a b ) → (h : Hom A d a ) → Hom A c e
36 δ : {e a b : Obj A} → (f : Hom A a b) → Hom A a e 39 δ : {a b : Obj A} → (f : Hom A a b) → Hom A a c
37 b1 : {e : Obj A} → A [ A [ f o α {e} f g ] ≈ A [ g o α {e} f g ] ] 40 b1 : {e : Obj A } → A [ A [ f o α {e} {a} f g ] ≈ A [ g o α {e} {a} f g ] ]
38 b2 : {c d : Obj A } → {h : Hom A d a } → A [ A [ α {c} f g o γ {c} f g h ] ≈ A [ h o α (A [ f o h ]) (A [ g o h ]) ] ] 41 b2 : {e d : Obj A } → {h : Hom A d a } → A [ A [ α {e} f g o γ f g h ] ≈ A [ h o α {c} (A [ f o h ]) (A [ g o h ]) ] ]
39 b3 : {e : Obj A} → A [ A [ α {e} f f o δ {e} f ] ≈ id1 A a ] 42 b3 : {e : Obj A} → A [ A [ α f f o δ f ] ≈ id1 A a ]
40 -- b4 : {c d : Obj A } {k : Hom A c a} → A [ β f g ( A [ α f g o k ] ) ≈ k ] 43 -- b4 : {c d : Obj A } {k : Hom A c a} → A [ β f g ( A [ α f g o k ] ) ≈ k ]
41 b4 : {c d : Obj A } {k : Hom A c a} → A [ A [ γ f g ( A [ α f g o k ] ) o δ {c} (A [ f o A [ α f g o k ] ] ) ] ≈ k ] 44 b4 : {d : Obj A } {k : Hom A d c} → A [ A [ γ f g ( A [ α f g o k ] ) o δ (A [ f o A [ α f g o k ] ] ) ] ≈ k ]
42 -- A [ α f g o β f g h ] ≈ h 45 -- A [ α f g o β f g h ] ≈ h
43 β : { d e a b : Obj A} → (f : Hom A a b) → (g : Hom A a b ) → (h : Hom A d a ) → Hom A d e 46 β : { d e a b : Obj A} → (f : Hom A a b) → (g : Hom A a b ) → (h : Hom A d a ) → Hom A d e
44 β {d} f g h = A [ γ f g h o δ {d} (A [ f o h ]) ] 47 β {d} f g h = A [ γ f g h o δ {d} (A [ f o h ]) ]
45 48
46 lemma-equ1 : { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) {a b : Obj A} (f g : Hom A a b) → Equalizer A f g → EqEqualizer A f g 49 open Equalizer
47 lemma-equ1 A {a} {b} f g eqa = record { 50 open EqEqualizer
48 α = {!!} ; 51
49 γ = {!!} ; 52 lemma-equ1 : { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) {a b c : Obj A} (f g : Hom A a b) → Equalizer A {c} f g → EqEqualizer A {c} f g
50 δ = {!!} ; 53 lemma-equ1 A {a} {b} {c} f g eqa = record {
54 α = λ {e'} {a} f g → ? ; -- e' -> c c -> a, Hom A e' a
55 γ = λ {d} {e} {a} {b} f g h → {!!} ; -- Hom A c e
56 δ = λ {a} {b} f → {!!} ; -- Hom A a c
51 b1 = {!!} ; 57 b1 = {!!} ;
52 b2 = {!!} ; 58 b2 = {!!} ;
53 b3 = {!!} ; 59 b3 = {!!} ;
54 b4 = {!!} 60 b4 = {!!}
55 } 61 }