-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathEverything.agda
155 lines (100 loc) · 3.51 KB
/
Everything.agda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
------------------------------------------------------------------------
-- Second-order abstract syntax
--
-- Formalisation of second-order abstract syntax with variable binding.
------------------------------------------------------------------------
module Everything where
-- Public exports of modules and definitions used throughout the library.
import SOAS.Common
-- Abstract categorical definitions of carrier categories with extra structure,
-- and associated free constructions.
import SOAS.Construction.Free
import SOAS.Construction.Structure
-- Skew monoidal and closed structure
import SOAS.Construction.Skew.SkewClosed
-- Add sorting to categories, and prove that various categorical
-- structure (CCC, monoidal, etc.) are preserved.
import SOAS.Sorting
-- Definition of simple contexts as lists of sorts.
import SOAS.Context
-- The sorted family of variables and generalised context maps
import SOAS.Variable
-- | Context maps as renamings, substitutions and category morphisms
-- Context map combinators
import SOAS.ContextMaps.Combinators
-- Category of contexts and renamings
import SOAS.ContextMaps.CategoryOfRenamings
-- Inductive context maps
import SOAS.ContextMaps.Inductive
-- Common properties of context maps
import SOAS.ContextMaps.Properties
-- | Families
-- Definition of the category of sorted families
import SOAS.Families.Core
-- Isomorphism between sorted families
import SOAS.Families.Isomorphism
-- Bi-Cartesian closed and linear monoidal closed structure of families
import SOAS.Families.BCCC
import SOAS.Families.Linear
-- Context extension endofunctor
import SOAS.Families.Delta
-- Inductive construction of families
import SOAS.Families.Build
-- | Abstract constructions
-- Box modality
import SOAS.Abstract.Box
-- □-coalgebra on families – renaming structure
import SOAS.Abstract.Coalgebra
-- Internal hom of families
import SOAS.Abstract.Hom
-- Closed monoid in families – substitution structure
import SOAS.Abstract.Monoid
-- Exponential strength
import SOAS.Abstract.ExpStrength
-- | Constructions built upon coalgebras
-- Coalgebraic maps 𝒳 ⇾ 〖𝒫 , 𝒴〗
import SOAS.Coalgebraic.Map
-- Lifting and strength
import SOAS.Coalgebraic.Lift
import SOAS.Coalgebraic.Strength
-- Monoids compatible with coalgebra structure
import SOAS.Coalgebraic.Monoid
-- | Metatheory for a second-order binding signature
-- Binding algebras
import SOAS.Metatheory.Algebra
-- Algebras with variables and metavariables
import SOAS.Metatheory.SynAlgebra
-- Signature monoids
import SOAS.Metatheory.Monoid
-- Initial-algebra semantics
import SOAS.Metatheory.Semantics
-- Parametrised interpretations
import SOAS.Metatheory.Traversal
-- Renaming structure by initiality
import SOAS.Metatheory.Renaming
-- Coalgebraic maps by initiality
import SOAS.Metatheory.Coalgebraic
-- Substitution structure by initiality
import SOAS.Metatheory.Substitution
-- Free monoid structure
import SOAS.Metatheory.FreeMonoid
-- Syntactic structure
import SOAS.Metatheory.Syntax
-- | Second-order structure
-- Metasubstitution
import SOAS.Metatheory.SecondOrder.Metasubstitution
-- Unit of metasubstitution
import SOAS.Metatheory.SecondOrder.Unit
-- Equational theory
import SOAS.Metatheory.SecondOrder.Equality
-- | Term syntax of a second-order signature
-- Argument representation
import SOAS.Syntax.Arguments
-- Second-order binding signature
import SOAS.Syntax.Signature
-- Shorthand notation
import SOAS.Syntax.Shorthands
-- Signature construction
import SOAS.Syntax.Build
-- First-order term syntax
import SOAS.Syntax.Term