started work on defining a CwF
This commit is contained in:
parent
f1644f56c7
commit
710bdc21c2
|
@ -1,11 +1,57 @@
|
||||||
# Category with family
|
---
|
||||||
|
references:
|
||||||
|
- type: article-journal
|
||||||
|
id: abd2008
|
||||||
|
editor:
|
||||||
|
- family: Jacques Carrigue
|
||||||
|
- family: Manuel V. Hermengildo
|
||||||
|
author:
|
||||||
|
- family: Andreas Abel
|
||||||
|
- family: Thierry Coquand
|
||||||
|
- family: Peter Dybjer
|
||||||
|
issued:
|
||||||
|
date-parts:
|
||||||
|
- - 2008
|
||||||
|
title: 'On the Algebraic Foundation of Proof Assistants for Intuitionistic Type Theory'
|
||||||
|
journal: "Lecture Notes in Computer Science"
|
||||||
|
volume: 4989
|
||||||
|
url: http://link.springer.com/10.1007/978-3-540-78969-7_2
|
||||||
|
page: 3-13
|
||||||
|
language: en-GB
|
||||||
|
|
||||||
|
citation-style: ieee
|
||||||
|
---
|
||||||
```
|
```
|
||||||
module CwF where
|
|
||||||
|
|
||||||
open import Cat.Prelude
|
open import Cat.Prelude
|
||||||
|
open import Fams
|
||||||
|
|
||||||
|
module CwF where
|
||||||
```
|
```
|
||||||
|
<!---
|
||||||
|
TODO: write more about what a CwF actually is and how one should think abut it.
|
||||||
|
--->
|
||||||
|
# Categories with families
|
||||||
|
|
||||||
|
This file defines a CwF, as well as type formers for pi types, sigma types, identity types and universes. Here CwFs are defined as a GAT (generalised algebraic theory), as is presented in a paper by Abel, Coquand and Dybjer. [@abd2008]
|
||||||
|
|
||||||
|
A CwF is a category $\mathcal C$ equipped with a functor $\mathcal F : \mathcal C \to \mathcal Fam$, fufilling the rules of the GAT.
|
||||||
|
|
||||||
```
|
```
|
||||||
open import Fams
|
record CwF (o h f : Level) : Type (lsuc (o ⊔ h ⊔ f)) where
|
||||||
|
field
|
||||||
|
𝓒 : Precategory o h
|
||||||
|
𝓕 : Functor 𝓒 (Fams f)
|
||||||
|
```
|
||||||
|
|
||||||
|
Two functions, $Ty$ and $Tm$ are defined, respectively giving the set of syntactic types, and terms in a context.
|
||||||
|
```
|
||||||
|
open Precategory
|
||||||
|
open Functor
|
||||||
|
|
||||||
|
Ty : 𝓒 .Ob → Set f
|
||||||
|
Ty Γ = 𝓕 .F₀ Γ .fst
|
||||||
|
|
||||||
|
Tr : (Γ : 𝓒 .Ob) → ∣ Ty Γ ∣ → Set f
|
||||||
|
Tr Γ σ = 𝓕 .F₀ Γ .snd σ
|
||||||
|
|
||||||
```
|
```
|
|
@ -3,7 +3,9 @@ open import Cat.Prelude
|
||||||
|
|
||||||
module Fams where
|
module Fams where
|
||||||
```
|
```
|
||||||
# The category of families (of sets)
|
# The category of families of sets
|
||||||
|
|
||||||
|
This file defines the category $\mathcal Fam$ of families of sets.
|
||||||
|
|
||||||
Given a universe level there is a category $\mathcal Fam$ of the families of sets of that level.
|
Given a universe level there is a category $\mathcal Fam$ of the families of sets of that level.
|
||||||
```
|
```
|
||||||
|
@ -37,7 +39,7 @@ Composition follows from regular function composition for $(f \circ g)^0$, and f
|
||||||
(Fams o ∘ (f⁰ , f¹)) (g⁰ , g¹) .snd b x = f¹ (g⁰ b) (g¹ b x)
|
(Fams o ∘ (f⁰ , f¹)) (g⁰ , g¹) .snd b x = f¹ (g⁰ b) (g¹ b x)
|
||||||
```
|
```
|
||||||
|
|
||||||
This computes nicely.
|
Since composition is defined using regular function composition it computes nicely.
|
||||||
```
|
```
|
||||||
Fams o .idr f = refl
|
Fams o .idr f = refl
|
||||||
Fams o .idl f = refl
|
Fams o .idl f = refl
|
||||||
|
|
Loading…
Reference in New Issue
Block a user