Mercurial > hg > Members > kono > Proof > category
changeset 811:2de0358ea10a
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 27 Apr 2019 07:09:35 +0900 |
parents | 084dc5e170f8 |
children | 4ff300e1e98c |
files | CCChom.agda discrete.agda |
diffstat | 2 files changed, 73 insertions(+), 71 deletions(-) [+] |
line wrap: on
line diff
--- a/CCChom.agda Fri Apr 26 22:53:57 2019 +0900 +++ b/CCChom.agda Sat Apr 27 07:09:35 2019 +0900 @@ -618,8 +618,10 @@ open SM -- positive intutionistic calculus + PL : (G : SM) → Graph + PL G = record { vertex = Objs {graph G} ; edge = Arrow {graph G}} DX : (G : SM) → Category Level.zero Level.zero Level.zero - DX G = GraphtoCat ( record { vertex = Objs {graph G} ; edge = Arrow {graph G}} ) + DX G = GraphtoCat (PL G) -- open import Category.Sets -- postulate extensionality : { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) → Relation.Binary.PropositionalEquality.Extensionality c₂ c₂ @@ -631,86 +633,85 @@ fobj ⊤ = One' fmap : {G : SM} { a b : Obj (DX G) } → Hom (DX G) a b → fobj {G} a → fobj {G} b fmap {G} {a} {a} (id a) = λ z → z - fmap {G} {a} {(atom b)} (next {a} {c} (arrow x) f) = λ z → smap G x ( k z ) where - k : fobj a → fobj {G} c - k z = fmap f z + fmap {G} {a} {(atom b)} (next {a} {c} (arrow x) f) = λ (z : fobj a) → smap G x ( fmap f z ) fmap {G} {a} {⊤} (next (○ b) f) = λ _ → OneObj' - fmap {G} {a} {b} (next {a} {b ∧ y} {b} π f) = λ z → proj₁ ( k z ) where - k : fobj a → fobj b /\ fobj y - k z = fmap f z - fmap {G} {a} {b} (next {.a} {x ∧ b} π' f) = λ z → proj₂ ( k z ) where - k : fobj a → fobj x /\ fobj b - k z = fmap f z - fmap {G} {a} {b} (next {.a} {(x <= y) ∧ y} {.b} ε f) = λ z → ( proj₁ (k z))( proj₂ (k z)) where - k : fobj a → (fobj y → fobj x) /\ fobj y - k z = fmap f z + fmap {G} {a} {b} (next {a} {.b ∧ y} {b} π f) = λ z → proj₁ ( fmap {G} {a} {b ∧ y} f z ) + fmap {G} {a} {b} (next {.a} {x ∧ .b} {.b} π' f) = λ z → proj₂ ( fmap f z ) where + fmap {G} {a} {b} (next {.a} {(x <= y) ∧ y} {.b} ε f) = λ z → ( proj₁ (fmap f z))( proj₂ (fmap f z)) CS : (G : SM ) → Functor (DX G) (Sets {Level.zero}) FObj (CS G) a = fobj a FMap (CS G) {a} {b} f = fmap {G} {a} {b} f isFunctor (CS G) = isf where _++_ = Category._o_ (DX G) - distrCS : {a b c : Obj (DX G)} { f : Hom (DX G) a b } { g : Hom (DX G) b c } → Sets [ fmap ((DX G) [ g o f ]) ≈ Sets [ fmap g o fmap f ] ] - distrCS {a} {.a} {.a} {id a} {id .a} = refl - distrCS {a} {.a} {c} {id a} {next x g} = begin - fmap (DX G [ next x g o Chain.id a ]) - ≈⟨⟩ - fmap ( next x ( g ++ (Chain.id a))) - ≈⟨ extensionality Sets ( λ y → cong ( λ k → fmap ( next x k ) y ) (idR1 (DX G)) ) ⟩ - fmap ( next x g ) - ≈↑⟨ refl ⟩ - Sets [ fmap (next x g) o fmap (Chain.id a) ] - ∎ where open ≈-Reasoning Sets - distrCS {a} {b} {b} {f} {id b} = refl - distrCS {a} {b} {atom z} {f} {next {.b} {atom y} {atom z} (arrow x) g} = begin - fmap (DX G [ next (arrow x) g o f ]) - ≈⟨⟩ - fmap ( next (arrow x) (g ++ f ) ) - ≈⟨⟩ - ( λ y → smap G x ( fmap (g ++ f) y ) ) - ≈⟨ extensionality Sets ( λ y → ( cong ( λ k → smap G x (k y) ) distrCS )) ⟩ - (λ z → fmap (next (arrow x) g) ( fmap f z )) - ≈⟨⟩ - (Sets [ fmap (next (arrow x) g) o fmap f ]) - ∎ where open ≈-Reasoning Sets - distrCS {a} {b} {.⊤} {f} {next (○ a₁) g} = begin - fmap (DX G [ next (○ a₁) g o f ]) - ≈⟨⟩ - Sets [ fmap (next (○ a₁) g) o fmap f ] - ∎ where open ≈-Reasoning Sets - distrCS {a} {b} {c} {f} {next {.b} {.c ∧ x} {.c} π g} = begin - fmap (DX G [ next π g o f ]) - ≈⟨⟩ - fmap (next π (g ++ f)) - ≈⟨ extensionality Sets ( λ z → (cong ( λ k → k z) refl )) ⟩ - ( λ z → proj₁ (fmap (g ++ f) z)) - ≈⟨ extensionality Sets ( λ z → cong ( λ k → proj₁ (k z) ) distrCS ) ⟩ - Sets [ fmap (next π g) o fmap f ] - ∎ where open ≈-Reasoning Sets - distrCS {a} {b} {c} {f} {next π' g} = begin - fmap (DX G [ next π' g o f ]) - ≈⟨⟩ - fmap (next π' (g ++ f)) - ≈⟨ extensionality Sets ( λ z → (cong ( λ k → k z) refl )) ⟩ - ( λ z → proj₂ (fmap (g ++ f) z)) - ≈⟨ extensionality Sets ( λ z → cong ( λ k → proj₂ (k z) ) distrCS ) ⟩ - Sets [ fmap (next π' g) o fmap f ] - ∎ where open ≈-Reasoning Sets - distrCS {a} {b} {c} {f} {next ε g} = begin - fmap (DX G [ next ε g o f ] ) - ≈⟨⟩ - fmap (next ε (g ++ f)) - ≈⟨ extensionality Sets ( λ z → (cong ( λ k → k z) refl )) ⟩ - ( λ z → proj₁ (fmap (g ++ f) z) ( proj₂ (fmap (g ++ f) z) )) - ≈⟨ extensionality Sets ( λ z → cong ( λ k → proj₁ (k z) ( proj₂ (k z)) ) distrCS ) ⟩ - ( λ x → fmap (next ε g) (fmap f x) ) - ≈⟨⟩ - Sets [ fmap (next ε g) o fmap f ] - ∎ where open ≈-Reasoning Sets + ++idR = IsCategory.identityR ( Category.isCategory ( DX G ) ) + distr : {a b c : Obj (DX G)} { f : Hom (DX G) a b } { g : Hom (DX G) b c } → (z : fobj {G} a ) → fmap (g ++ f) z ≡ fmap g (fmap f z) + distr {a} {.a} {.a} {id a} {id .a} z = refl + distr {a} {.a} {c} {id a} {next x g} z = begin + fmap (DX G [ next x g o Chain.id a ]) z + ≡⟨⟩ + fmap ( next x ( g ++ (Chain.id a))) z + ≡⟨ cong ( λ k → fmap ( next x k ) z ) ++idR ⟩ + fmap ( next x g ) z + ≡⟨ refl ⟩ + ( Sets [ fmap (next x g) o fmap (Chain.id a) ] ) z + ∎ where open ≡-Reasoning + distr {a} {b} {b} {f} {id b} z = refl + distr {a} {b} {atom z} {f} {next {.b} {atom y} {atom z} (arrow x) g} w = begin + fmap (DX G [ next (arrow x) g o f ]) w + ≡⟨⟩ + fmap ( next (arrow x) (g ++ f ) ) w + ≡⟨⟩ + smap G x ( fmap (g ++ f) w ) + ≡⟨ cong ( λ k → smap G x k ) (distr {a} {b} {atom y} {f} {g} w) ⟩ + smap G x (fmap g (fmap f w)) + ≡⟨⟩ + fmap (next (arrow x) g) ( fmap f w ) + ≡⟨⟩ + (Sets [ fmap (next (arrow x) g) o fmap f ]) w + ∎ where open ≡-Reasoning + distr {a} {b} {.⊤} {f} {next (○ a₁) g} z = begin + fmap (DX G [ next (○ a₁) g o f ]) z + ≡⟨⟩ + (Sets [ fmap (next (○ a₁) g) o fmap f ]) z + ∎ where open ≡-Reasoning + distr {a} {b} {c} {f} {next {.b} {.c ∧ x} {.c} π g} z = begin + fmap (DX G [ next π g o f ]) z + ≡⟨⟩ + fmap {G} {a} {c} (next {PL G} {a} {c ∧ x} {c} π ( g ++ f)) z + ≡⟨ {!!} ⟩ + proj₁ ( fmap {G} {a} {c ∧ x} (g ++ f ) z ) + ≡⟨ cong ( λ k → proj₁ k ) ( distr {a} {b} {(c ∧ x)} {f} {g} z ) ⟩ + proj₁ ( fmap g ( fmap f z )) + ≡⟨ {!!} ⟩ + (Sets [ fmap (next π g) o fmap f ]) z + ∎ where open ≡-Reasoning + distr {a} {b} {c} {f} {next π' g} z = begin + fmap (DX G [ next π' g o f ]) z + ≡⟨⟩ + fmap (next π' (g ++ f)) z + ≡⟨ {!!} ⟩ + proj₂ (fmap (g ++ f) z) + ≡⟨ {!!} ⟩ + ( Sets [ fmap (next π' g) o fmap f ] ) z + ∎ where open ≡-Reasoning + distr {a} {b} {c} {f} {next {b} {(c <= x) ∧ x} {c} ε g} z = begin + fmap (DX G [ next ε g o f ] ) z + ≡⟨⟩ + fmap (next ε (g ++ f)) z + ≡⟨ {!!} ⟩ + proj₁ (fmap (g ++ f) z) ( proj₂ (fmap (g ++ f) z) ) + ≡⟨ cong ( λ k → proj₁ k ( proj₂ k)) (distr {a} {b} {(c <= x) ∧ x} {f} {g} z) ⟩ + proj₁ (fmap g (fmap f z)) ( proj₂ (fmap g (fmap f z))) + ≡⟨ {!!} ⟩ + fmap (next ε g) (fmap f z) + ≡⟨⟩ + ( Sets [ fmap (next ε g) o fmap f ] ) z + ∎ where open ≡-Reasoning isf : IsFunctor (DX G) Sets fobj fmap IsFunctor.identity isf = extensionality Sets ( λ x → refl ) IsFunctor.≈-cong isf refl = refl - IsFunctor.distr isf {a} {b} {c} {g} {f} = distrCS {a} {b} {c} {g} {f} + IsFunctor.distr isf {a} {b} {c} {g} {f} = extensionality Sets ( λ z → distr {a} {b} {c} {g} {f} z ) <_,_> : { G : SM } → {a b c : Objs {graph G}} → Arrow c a → Arrow c b → Hom Sets (FObj (CS G) c ) (FObj (CS G) (a ∧ b) ) <_,_> {G} {a} {b} {c} f g = λ z → ( (FMap (CS G) ( next f (id c))) z , FMap (CS G) (next g (id c)) z )
--- a/discrete.agda Fri Apr 26 22:53:57 2019 +0900 +++ b/discrete.agda Sat Apr 27 07:09:35 2019 +0900 @@ -22,6 +22,7 @@ _・_ : { G : Graph} {a b c : Graph.vertex G } (f : Chain {G} b c ) → (g : Chain {G} a b) → Chain {G} a c id _ ・ f = f (next x f) ・ g = next x ( f ・ g ) + -- _・_ {G} {a} {b} {c} (next {b} {d} {c} x f) g = next {G} {a} {d} {c} x ( f ・ g ) GraphtoCat : (G : Graph ) → Category Level.zero Level.zero Level.zero GraphtoCat G = record {