Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Solving String Constraints with Lengths by Stabilization" #189

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions data/desc.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
A Graded Modal Dependent Type Theory with a Universe and Erasure, Formalized
Abel, Andreas, et al. “A Graded Modal Dependent Type Theory with a Universe and Erasure, Formalized.” Proceedings of the ACM on Programming Languages, vol. 7, no. ICFP, Aug. 2023, pp. 920–54. Crossref, https://doi.org/10.1145/3607862.
We present a graded modal type theory, a dependent type theory with grades that can be used to enforce various properties of the code. The theory has Π-types, weak and strong Σ-types, natural numbers, an empty type, and a universe, and we also extend the theory with a unit type and graded Σ-types. The theory is parameterized by a modality, a kind of partially ordered semiring, whose elements (grades) are used to track the usage of variables in terms and types. Different modalities are possible. We focus mainly on quantitative properties, in particular erasure: with the erasure modality one can mark function arguments as erasable. The theory is fully formalized in Agda. The formalization, which uses a syntactic Kripke logical relation at its core and is based on earlier work, establishes major meta-theoretic properties such as subject reduction, consistency, normalization, and decidability of definitional equality. We also prove a substitution theorem for grade assignment, and preservation of grades under reduction. Furthermore we study an extraction function that translates terms to an untyped λ-calculus and removes erasable content, in particular function arguments with the “erasable” grade. For a certain class of modalities we prove that extraction is sound, in the sense that programs of natural number type have the same value before and after extraction. Soundness of extraction holds also for open programs, as long as all variables in the context are erasable, the context is consistent, and erased matches are not allowed for weak Σ-types.
Solving String Constraints with Lengths by Stabilization
Chen, Yu-Fang, et al. “Solving String Constraints with Lengths by Stabilization.” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA2, Oct. 2023, pp. 2112–41. Crossref, https://doi.org/10.1145/3622872.
We present a new algorithm for solving string constraints. The algorithm builds upon a recent method for solving word equations and regular constraints that interprets string variables as languages rather than strings and, consequently, mitigates the combinatorial explosion that plagues other approaches. We extend the approach to handle linear integer arithmetic length constraints by combination with a known principle of equation alignment and splitting, and by extension to other common types of string constraints, yielding a fully-fledged string solver. The ability of the framework to handle unrestricted disequalities even extends one of the largest decidable classes of string constraints, the chain-free fragment. We integrate our algorithm into a DPLL-based SMT solver. The performance of our implementation is competitive and even significantly better than state-of-the-art string solvers on several established benchmarks obtained from applications in verification of string programs.
3 changes: 2 additions & 1 deletion data/history.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ https://doi.org/10.1145/3622870
https://doi.org/10.1145/3656456
https://doi.org/10.1145/3622828
https://doi.org/10.1145/3632882
https://doi.org/10.1145/3607862
https://doi.org/10.1145/3607862
https://doi.org/10.1145/3622872
2 changes: 1 addition & 1 deletion data/next.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
https://doi.org/10.1145/3607862
https://doi.org/10.1145/3622872
3 changes: 2 additions & 1 deletion data/past.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
https://doi.org/10.1145/3656456
https://doi.org/10.1145/3622828
https://doi.org/10.1145/3632882
https://doi.org/10.1145/3607862
https://doi.org/10.1145/3607862
https://doi.org/10.1145/3622872
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Our tools for paper selection: [plgroup on Github](https://github.com/the-au-for
| 2. | September 6 | Simple Reference Immutability for System F <: |
| 3. | September 13 | Polymorphic Type Inference for Dynamic Languages |
| 4. | September 20 | A Graded Modal Dependent Type Theory with a Universe and Erasure, Formalized |
| 5. | September 27 | Paper 5 discussion |
| 5. | September 27 | Solving String Constraints with Lengths by Stabilization |
| 6. | October 4 | Paper 6 discussion |
| 7. | October 11 | Paper 7 discussion |
| 8. | October 18 | Paper 8 discussion |
Expand Down
3 changes: 2 additions & 1 deletion docs/papers.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
1. Kellison, Ariel E., and Justin Hsu. “Numerical Fuzz: A Type System for Rounding Error Analysis.” Proceedings of the ACM on Programming Languages, vol. 8, no. PLDI, June 2024, pp. 1954–78. Crossref, <a href='https://doi.org/10.1145/3656456' target='_blank'>https://doi.org/10.1145/3656456</a>.
2. Lee, Edward, and Ondřej Lhoták. “Simple Reference Immutability for System F &lt;:” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA2, Oct. 2023, pp. 857–81. Crossref, <a href='https://doi.org/10.1145/3622828' target='_blank'>https://doi.org/10.1145/3622828</a>.
3. Castagna, Giuseppe, et al. “Polymorphic Type Inference for Dynamic Languages.” Proceedings of the ACM on Programming Languages, vol. 8, no. POPL, Jan. 2024, pp. 1179–210. Crossref, <a href='https://doi.org/10.1145/3632882' target='_blank'>https://doi.org/10.1145/3632882</a>.
4. Abel, Andreas, et al. “A Graded Modal Dependent Type Theory with a Universe and Erasure, Formalized.” Proceedings of the ACM on Programming Languages, vol. 7, no. ICFP, Aug. 2023, pp. 920–54. Crossref, <a href='https://doi.org/10.1145/3607862' target='_blank'>https://doi.org/10.1145/3607862</a>.
4. Abel, Andreas, et al. “A Graded Modal Dependent Type Theory with a Universe and Erasure, Formalized.” Proceedings of the ACM on Programming Languages, vol. 7, no. ICFP, Aug. 2023, pp. 920–54. Crossref, <a href='https://doi.org/10.1145/3607862' target='_blank'>https://doi.org/10.1145/3607862</a>.
5. Chen, Yu-Fang, et al. “Solving String Constraints with Lengths by Stabilization.” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA2, Oct. 2023, pp. 2112–41. Crossref, <a href='https://doi.org/10.1145/3622872' target='_blank'>https://doi.org/10.1145/3622872</a>.