You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: paper/paper.md
+29-30Lines changed: 29 additions & 30 deletions
Original file line number
Diff line number
Diff line change
@@ -11,77 +11,77 @@ authors:
11
11
corresponding: true
12
12
affiliation: 1
13
13
- name: Danielsson, Nils Anders
14
-
affliation: 11
14
+
affliation: 2
15
15
- name: Allais, Guillaume
16
16
orcid: 0000-0002-4091-657X
17
-
affiliation: 2
17
+
affiliation: 3
18
18
- name: McKinna, James
19
19
orcid: 0000-0001-6745-2560
20
20
affiliation: 4
21
21
- name: Abel, Andreas
22
22
orcid: 0000-0003-0420-4492
23
-
affiliation: 11
23
+
affiliation: 2
24
24
- name: van Doorn, Nathan
25
25
orcid: 0009-0009-0598-3663
26
26
affiliation: 5
27
27
- name: Wood, James
28
28
orcid: 0000-0002-8080-3350
29
-
affiliation: 13
29
+
affiliation: 6
30
30
- name: Norell, Ulf
31
31
orcid: 0000-0003-2999-0637
32
-
affiliation: 11
32
+
affiliation: 2
33
33
- name: Kidney, Donnacha Oisín
34
34
orcid: 0000-0003-4952-7359
35
-
affiliation: 9
35
+
affiliation: 7
36
36
- name: Meshveliani, Sergei
37
37
orcid: 0000-0002-4224-6178
38
-
affiliation: 10
38
+
affiliation: 8
39
39
- name: Carette, Jacques
40
40
orcid: 0000-0001-8993-9804
41
-
affiliation: 3
41
+
affiliation: 9
42
42
- name: Rice, Alex
43
43
orcid: 0000-0002-2698-5122
44
-
affiliation: 7
44
+
affiliation: 10
45
45
- name: Hu, Jason Z. S.
46
46
orcid: 0000-0001-6710-6262
47
-
affiliation: 6
47
+
affiliation: 11
48
48
- name: Xia, Li-yiao
49
49
orcid: 0000-0003-2673-4400
50
-
affiliation: 8
50
+
affiliation: 12
51
51
- name: You, Shu-Hung
52
-
affliation: 12
52
+
affliation: 13
53
53
- name: Mullanix, Reed
54
54
orcid: 0000-0002-7970-4961
55
-
affiliation: 3
55
+
affiliation: 9
56
56
- name: Kokke, Wen
57
57
orcid: 0000-0002-1662-0381
58
-
affiliation: 7
58
+
affiliation: 10
59
59
affiliations:
60
60
- name: University of Western Australia, Australia
61
61
index: 1
62
-
- name: University of Strathclyde, United Kingdom
62
+
- name: University of Gothenburg and Chalmers University of Technology, Sweden
63
63
index: 2
64
-
- name: McMaster University, Canada
64
+
- name: University of Strathclyde, United Kingdom
65
65
index: 3
66
66
- name: Heriot-Watt University, United Kingdom
67
67
index: 4
68
68
- name: Independent Software Developer
69
69
index: 5
70
-
- name: Amazon, USA
70
+
- name: Huawei Technologies Research & Development, United Kingdom
71
71
index: 6
72
-
- name: University of Edinburgh, United Kingdom
72
+
- name: Imperial College London, United Kingdom
73
73
index: 7
74
-
- name: INRIA, France
74
+
- name: Russian Academy of Sciences, Russia
75
75
index: 8
76
-
- name: Imperial College London, United Kingdom
76
+
- name: McMaster University, Canada
77
77
index: 9
78
-
- name: Russian Academy of Sciences, Russia
78
+
- name: University of Edinburgh, United Kingdom
79
79
index: 10
80
-
- name: University of Gothenburg and Chalmers University of Technology, Sweden
80
+
- name: Amazon, USA
81
81
index: 11
82
-
- name: Northwestern University, USA
82
+
- name: INRIA, France
83
83
index: 12
84
-
- name : Huawei Technologies Research & Development, United Kingdom
84
+
- name : Northwestern University, USA
85
85
index: 13
86
86
date: 24 September 2024
87
87
bibliography: paper.bib
@@ -93,10 +93,9 @@ Agda [@agda2024manual] is a dependently-typed functional
93
93
language that serves both as a traditional programming language
94
94
and as an interactive theorem prover (ITP).
95
95
In other words, its type system is expressive enough to formulate
96
-
complex formal requirements, and its compiler lets users interactively
97
-
build programs guaranteed to meet these specifications.
96
+
complex formal requirements as types, and its compiler allows users to interactively build terms and check that they satisfy these requirements.
98
97
Through the Curry-Howard lens [@DBLP:journals/cacm/Wadler15],
99
-
these types and programs can be seen respectively as theorem
98
+
these types and terms can be seen respectively as theorem
100
99
statements and proofs.
101
100
102
101
This paper presents the Agda standard library [@agda-stdlib-v2.0], hereafter referred to as `agda-stdlib`, which provides definitions intended to be helpful for users to develop Agda programs and proofs.
@@ -115,7 +114,7 @@ This lack of basic data types increases the need for a standard library when com
115
114
116
115
Second, Agda users often seek to prove that programs constructed using data types in the standard library are "correct."
117
116
Constructing the proof that a function obeys a specification (e.g. that a sorting function outputs a permutation of the original list in non-decreasing order) typically requires far more effort, both in terms of lines of code and in developer time, than writing the original operation.
118
-
By frequently providing proofs of correctness for the operations it defines, the standard library saves users significant time during proof development.
117
+
By providing proofs of correctness for the operations it defines, the standard library saves users significant time during proof development.
119
118
120
119
# Impact
121
120
@@ -137,7 +136,7 @@ In the list below we present a selection of such projects:
137
136
The library has also been used as a test bed for the design of co-inductive data types in Agda itself, as evidenced by the three different notions of co-inductive data present in the library.
138
137
139
138
On occasion, the development of `agda-stdlib` has also had a synergistic relationship with that of Agda itself, prompting the implementation of several new language features, which we now discuss.
140
-
Firstly, Agda is a research compiler supporting a wide range of not necessarily inter-compatible language extensions via command line options.
139
+
Firstly, Agda is a research compiler supporting a wide range of possibly incompatible language extensions via command line options.
141
140
Examples include `--cubical` (changing the underlying type theory to cubical type theory [@DBLP:journals/jfp/VezzosiMA21]),
142
141
`--with-K` (adding support for Streicher's axiom K [@streicher1993investigations], a reasoning principle incompatible with the `--cubical`-enabled type theory),
143
142
or `--safe` (an ITP-oriented option enforcing that nothing is postulated and disabling parts of the FFI mechanism).
@@ -147,7 +146,7 @@ To enable this, in 2019 Agda's language options were categorised as "infective",
147
146
Once used in a module, an "infective" option will impact all the import*ing* modules; these are typically for theory-changing options like `--cubical` or `--with-K`.
148
147
On the contrary, "coinfective" options affect the import*ed* modules; these are typically for options adding extra safety checks like `--safe`.
149
148
This categorisation enables libraries to integrate safe Agda code with code that uses unsafe operating system calls, while maintaining the safety guarantees of the former.
150
-
Secondly, the development of `agda-stdlib`motivated adding the ability to attach custom messages to definitions, which are then displayed by the compiler when the definitions are used.
149
+
Another feature motivated by the development of `agda-stdlib`is the ability to attach custom messages to definitions, which are then displayed by the compiler when the definitions are used.
151
150
This enabled the implementation of deprecation warnings, which makes it easier for end-users to evolve their code alongside new versions of `agda-stdlib`.
0 commit comments