Skip to content

Commit 116275c

Browse files
a lot of ugly code
1 parent 54daf36 commit 116275c

34 files changed

+1308
-660
lines changed

CartesianClosed.agda

-53
This file was deleted.

Category.agda

-87
This file was deleted.

Category/CartesianClosed.agda

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
{-# OPTIONS --type-in-type #-}
2+
module Rosetta.Category.CartesianClosed where
3+
open import Rosetta.Category.Core
4+
5+
record Op✓ {ob : Set} (hom : ob ob Set) : Set where
6+
infixr 6 _×_
7+
infixl 7 _^_
8+
infix 7 ƛ_
9+
field
10+
𝟙 : ob
11+
_×_ : ob ob ob
12+
_^_ : ob ob ob
13+
14+
! : {X} hom X 𝟙
15+
π₁ : {A B} hom (A × B) A
16+
π₂ : {A B} hom (A × B) B
17+
⟨_,_⟩ : {A B X} hom X A hom X B hom X (A × B)
18+
ε : {A B} hom (B ^ A × A) B
19+
ƛ_ : {A B X} hom (X × A) B hom X (B ^ A)
20+
21+
!₍_₎ : X hom X 𝟙
22+
!₍ X ₎ = !
23+
24+
π₁₍_,_₎ : A B hom (A × B) A
25+
π₁₍ A , B ₎ = π₁
26+
27+
π₂₍_,_₎ : A B hom (A × B) B
28+
π₂₍ A , B ₎ = π₂
29+
30+
ε₍_,_₎ : A B hom (B ^ A × A) B
31+
ε₍ A , B ₎ = ε
32+
33+
module Functorial ⦃ _ : Op hom ⦄ where
34+
infixr 6 _×₁_
35+
_×₁_ : {A₁ A₂ B₁ B₂} hom A₁ B₁ hom A₂ B₂ hom (A₁ × A₂) (B₁ × B₂)
36+
f₁ ×₁ f₂ = ⟨ f₁ ∘ π₁ , f₂ ∘ π₂ ⟩
37+
38+
_^₁_ : B {A₁ A₂} hom A₂ A₁ hom (B ^ A₁) (B ^ A₂)
39+
B ^₁ f = ƛ (ε ∘ id ×₁ f)
40+
41+
open Functorial public
42+
43+
open Op✓ ⦃...⦄ public hiding (𝟙; _×_; _^_)
44+
45+
{-# DISPLAY Op✓.! _ = ! #-}
46+
{-# DISPLAY Op✓.π₁ _ = π₁ #-}
47+
{-# DISPLAY Op✓.π₂ _ = π₂ #-}
48+
{-# DISPLAY Op✓.⟨_,_⟩ _ = ⟨_,_⟩ #-}
49+
{-# DISPLAY Op✓.ε _ = ε #-}
50+
{-# DISPLAY Op✓.ƛ_ _ = ƛ_ #-}
51+
{-# DISPLAY Op✓._×₁_ _ = _×₁_ #-}
52+
{-# DISPLAY Op✓._^₁_ _ = _^₁_ #-}
53+
54+
record CartesianClosed (𝓒 : Category) : Set where
55+
field
56+
⦃ op✓ ⦄ : Op✓ (𝓒 ∣_⟶_)
57+
58+
open Op✓ op✓ using (𝟙; _×_; _^_)
59+
60+
field
61+
.!-universal : {X} {⁇ : 𝓒 ∣ X ⟶ 𝟙}
62+
𝓒 ∣ ⁇ ∼ !
63+
.⟨,⟩-cong₂ : {A B X} {f₁ f₂ : 𝓒 ∣ X ⟶ A} {g₁ g₂ : 𝓒 ∣ X ⟶ B}
64+
𝓒 ∣ f₁ ∼ f₂
65+
𝓒 ∣ g₁ ∼ g₂
66+
𝓒 ∣ ⟨ f₁ , g₁ ⟩ ∼ ⟨ f₂ , g₂ ⟩
67+
.⟨,⟩-commute₁ : {A B X} {f : 𝓒 ∣ X ⟶ A} {g : 𝓒 ∣ X ⟶ B}
68+
𝓒 ∣ π₁ ∘ ⟨ f , g ⟩ ∼ f
69+
.⟨,⟩-commute₂ : {A B X} {f : 𝓒 ∣ X ⟶ A} {g : 𝓒 ∣ X ⟶ B}
70+
𝓒 ∣ π₂ ∘ ⟨ f , g ⟩ ∼ g
71+
.⟨,⟩-universal : {A B X} {f : 𝓒 ∣ X ⟶ A} {g : 𝓒 ∣ X ⟶ B} {⁇ : 𝓒 ∣ X ⟶ A × B}
72+
𝓒 ∣ π₁ ∘ ⁇ ∼ f
73+
𝓒 ∣ π₂ ∘ ⁇ ∼ g
74+
𝓒 ∣ ⁇ ∼ ⟨ f , g ⟩
75+
.ƛ-cong : {A B X} {f₁ f₂ : 𝓒 ∣ X × A ⟶ B}
76+
𝓒 ∣ f₁ ∼ f₂
77+
𝓒 ∣ ƛ f₁ ∼ ƛ f₂
78+
.ƛ-commute : {A B X} {f : 𝓒 ∣ X × A ⟶ B}
79+
𝓒 ∣ ε ∘ ƛ f ×₁ id ∼ f
80+
.ƛ-universal : {A B X} {f : 𝓒 ∣ X × A ⟶ B} {⁇ : 𝓒 ∣ X ⟶ B ^ A}
81+
𝓒 ∣ ε ∘ ⁇ ×₁ id ∼ f
82+
𝓒 ∣ ⁇ ∼ ƛ f
83+
84+
open CartesianClosed public

0 commit comments

Comments
 (0)