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
> This file is intended to be both the artifact's README file, as well as the "artifact documentation" for submission.
8
-
> We occasionally add notes like this for information that is relevant only during the review process but not for the broader audience of the artifact in the future.
9
-
> In particular, the artifact remains private as of now, to ensure our anonymity to research track PC until our conditionally accepted paper is fully accepted.
10
-
> Once our paper is accepted, we will make our artifact publicly available on Github under an open source license and will archive it on Zenodo.
11
-
> (When doing so, we will remove all "Note to the OOPSLA Artifact Reviewers" sections from this README.)
12
-
13
-
> Note to the OOSPLA Artifact Reviewers:
14
-
> This is a source code and proof artifact.
15
-
> In our paper, we present theoretical and non-empirical research.
16
-
> Our artifact formalizes the theoretical results but hence does not produce or analyze any empirical data.
17
-
18
-
> Note to the OOPSLA Artifact Reviewers:
19
-
> Some links in this document only work from within the repository because these links are relative, pointing to specific files or directories which are unavailable when reading this documentation as a standalone file.
20
-
> We hence recommend opening the README.md in the submitted zip file in a program with Markdown support (e.g., VS Code).
21
-
22
-
> Note to the OOPSLA Artifact Reviewers:
23
-
> **We apply for _all_ badges**: **Artifacts Evaluated Functional+Reusable** as well as **Results Validated: Results Reproduced**.
24
-
> (We plan to get the **Artifact Available** badge later on from the publisher as mentioned in the Call for Artifacts).
25
-
>
26
-
> Functional: As explained throughout this README (in particular in our setup instructions and Reusability Guide below), our artifact is
27
-
> (1) documented as explained in the section "Documentation" below
28
-
> (2) consistent as explained in the section "Notes on Mechanized Proofs" and in particular its subsection "Paper-to-Library Correspondence",
29
-
> (3) complete as explained in the "Paper-to-Library Correspondence" subsection as well, and
30
-
> (4) exercisable in terms of a demo (section "Compiling and Running the Demo").
31
-
>
32
-
> Reusable: Our "Reusability Guide" below motivates this badge in detail. In particular, we provide
33
-
> a documented code base,
34
-
> tutorials with exercises for getting to know the library,
35
-
> instructions for changing the demo,
36
-
> instructions for reusing the library in other Agda projects,
37
-
> and detailed documentation on paper<->artifact correspondence.
38
-
>
39
-
> Results Reproduced: We formalized **all** definitions, theorems, and proofs from our paper in this Agda library.
40
-
> Therefore, this library verifies all claims in our paper.
41
-
> Our "Notes on Mechanized Proofs" gives detailed information on our paper-to-artifact correspondence including a table that documents where and how every definition, theorem, or proof is formalized in Agda.
42
-
> Moreover, our demo replays the round-trip running example of translating a configurable sandwich to the various languages (Section 3) using our compilers (Section 5).
43
-
44
6
This is the supplementary Agda library, called Vatras, for our paper _On the Expressive Power of Languages for Static Variability_ conditionally accepted at Object-Oriented Programming, Systems, Languages & Applications 2024 (OOPSLA 2024).
45
7
46
8
This library formalizes all results in our paper:
@@ -49,8 +11,6 @@ This library formalizes all results in our paper:
49
11
- The library implements our formal framework for language comparisons, including necessary data structures, theorems, and proofs (**Section 4**).
50
12
- This library contains all theorems and proofs to establish the map of variability languages we find by comparing the languages from our survey with our framework (**Section 5**).
51
13
52
-
> Note to the OOPSLA Artifact Reviewers: At the time of submission, there were some proofs in our paper that are not marked as formalized in Agda (proof is not marked with a star ★). However, we finished all remaining proofs, so all theorems and proofs from the paper are formalized in Agda by now.
53
-
54
14
Additionally, our library comes with a small demo.
55
15
When run in a terminal, our demo will show a translation roundtrip, showcasing the circle of compilers developed for identifying the map of variability languages (Section 5).
56
16
@@ -70,7 +30,6 @@ We tested our setup on Manjaro, NixOS, Windows Subsystem for Linux (WSL2), and w
70
30
71
31
### Setup
72
32
Clone the library and its submodules to a directory of your choice:
73
-
> Note to the OOPSLA Artifact Reviewers: You must skip this step. This step is here for future users once the repository is published on Github. Instead, you should download the zip file we submitted.
| Section 1 | contribution: a map of languages ||[src/Translation/LanguageMap.lagda.md](src/Translation/LanguageMap.lagda.md)||
@@ -405,11 +358,6 @@ This generalization allows us to also formalize variability languages that
405
358
(2) are independent of the variant type, such as [clone and own](src/Lang/VariantList.lagda.md) (Section 5.2 in the paper).
406
359
- Also generalizing over the annotation language `F : 𝔽` was rather easy in the paper (Section 3.3) but requires to carry around that `𝔽` explicitly in Agda in definitions and theorems a lot.
407
360
408
-
> Note to the OOPSLA Artifact Reviewers:
409
-
> During formalization, we noticed that the proof of VariantList ≽ FST is easier than Sound(FST) and 2CC ≽ FST.
410
-
> Hence, we prove VariantList ≽ FST, conclude 2CC ≽ FST using transitivity and follow Sound(FST) from 2CC ≽ FST.
411
-
> We intend to adapt the proof in the paper to the formalized proof.
412
-
413
361
#### Frameworks and Dependencies
414
362
415
363
Except for the Agda standard-library, this library has no dependencies, as explained in the setup instructions above.
0 commit comments