-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.agda
151 lines (85 loc) · 2.86 KB
/
README.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
------------------------------------------------------------------------
-- A formalisation of one variant of the language χ, along with a
-- number of properties
--
-- Nils Anders Danielsson
------------------------------------------------------------------------
-- A description of the language χ, as well as some of the definitions
-- and proofs used in this development, can be found in "The language
-- χ" by Bengt Nordström (edited by me):
--
-- * https://chalmers.instructure.com/courses/20908/file_contents/course%20files/reading/The_language_chi.pdf
--
-- See also the following lecture slides:
--
-- * https://chalmers.instructure.com/courses/20908/file_contents/course%20files/lectures/L4.pdf
-- * https://chalmers.instructure.com/courses/20908/file_contents/course%20files/lectures/L5.pdf
-- * https://chalmers.instructure.com/courses/20908/file_contents/course%20files/lectures/L6.pdf
module README where
-- Atoms.
import Atom
-- Various constants.
import Constants
-- A specification of the language χ.
import Chi
-- Some cancellation lemmas.
import Cancellation
-- The semantics is deterministic.
import Deterministic
-- Values.
import Values
-- "Reasoning" combinators.
import Reasoning
-- The abstract syntax is a set, and the semantics is propositional.
import Propositional
-- Compatibility lemmas.
import Compatibility
-- Some lemmas and definitions related to substitution.
import Substitution
-- Definitions of "free in" and "closed", along with some properties.
import Free-variables
-- Alpha-equivalence.
import Alpha-equivalence
-- Encoders and decoders.
import Coding
-- Encoder and decoder instances.
import Coding.Instances
-- Encoder and decoder instances for Atom.χ-ℕ-atoms.
import Coding.Instances.Nat
-- The "not the code of" operator ⌞_⌟.
import Not-the-code-of
-- A tactic that can "remove" applications of substitutions to closed
-- expressions.
import Free-variables.Remove-substs
-- A definition of the size of an operational semantics derivation,
-- along with some properties.
import Derivation-size
-- The "terminates" relation.
import Termination
-- Some χ program combinators.
import Combinators
-- A definition of the size of an expression, along with some
-- properties.
import Expression-size
-- The rec construction can be encoded using λ-terms.
import Recursion-without-rec
-- Some aspects of the semantics are decidable.
import Decidable
-- Partial functions, computability.
import Computability
-- Computable Agda functions.
import Computable-function
-- Internal coding.
import Internal-coding
-- Internal substitution.
import Internal-substitution
-- Internal lookup.
import Internal-lookup
-- A self-interpreter.
import Self-interpreter
-- The halting problem.
import Halting-problem
-- Rice's theorem.
import Rices-theorem
-- Some results related to pointwise equality.
import Pointwise-equality