@online{rustlang22, title = {Rust Programming Language}, author = {Rust Team}, url = {https://rust-lang.org}, date = {2022-01-25}, urldate = {2022-01-25} } @online{lean22, title = {Lean Theorem Prover}, author = {Leo de Moura and Sebastian Ullrich and Dany Fabian}, url = {https://leanprover.github.io/}, date = {2022-01-26}, urldate = {2022-01-26} } @online{z322, title = {Z3 Theorem Prover}, author = {Microsoft}, url = {https://github.com/Z3Prover}, date = {2022-01-26}, urldate = {2022-01-26} } @online{liquid22, title = {LiquidHaskell}, author = {UCSD Progsys}, url = {https://ucsd-progsys.github.io/liquidhaskell-blog/}, date = {2022-01-26}, urldate = {2022-01-26} } @online{haskell22, title = {Haskell}, author = {Haskell.org}, url = {https://www.haskell.org/}, date = {2022-01-26}, urldate = {2022-01-26} } @online{ats22, title = {The ATS Programming Language}, author = {Hongwei Xi}, url = {http://www.ats-lang.org/}, date = {2022-01-26}, urldate = {2022-01-26} } @online{clippy22, title = {Clippy}, author = {Clippy Team}, url = {https://github.com/rust-lang/rust-clippy}, date = {2022-02-04}, urldate = {2022-02-04} } @online{expand22, title = {Cargo Expand}, author = {David Tolnay}, url = {https://github.com/dtolnay/cargo-expand }, date = {2022-02-04}, urldate = {2022-02-04} } @online{tutisani22, title = {Why TDD is Faster than Unit Testing}, author = {Tengiz Tutisani}, url = {https://www.tutisani.com/software-architecture/why-tdd-is-faster-than-unit-testing.html}, urldate = {2202-02-04} } @online{rustdoc22, title = {The rustdoc book}, author = {Rust Team}, url = {https://doc.rust-lang.org/rustdoc/}, urldate = {2202-02-04} } @online{mdbook22, title = {mdBook Docmentation}, author = {Rust Team}, url = {https://rust-lang.github.io/mdBook/}, urldate = {2202-02-04} } @online{rustbelt22, title = {RustBelt}, author = {Project RustBelt}, url = {https://plv.mpi-sws.org/rustbelt/}, date = {2022-01-26}, urldate = {2022-01-26} } @online{emc22, title = {European Metrology Cloud}, author = {Physikalisch-Technische Bundesanstalt}, url = {metrologycloud.eu}, date = {2022-01-26}, urldate = {2022-01-26} } @online{refinement22, title = {Refinement}, author = {Brady Dean}, url = {https://github.com/2bdkid/refinement}, date = {2022-01-26}, urldate = {2022-01-26} } @online{proptest22, title = {Proptest Book}, author = {Jason Lingle}, url = {https://altsysrq.github.io/proptest-book/}, date = {2022-01-26}, urldate = {2022-01-26} } @online{rustproof22, title = {RustProof}, author = {Rust-Proof}, url = {https://github.com/Rust-Proof/rustproof}, date = {2022-01-26}, urldate = {2022-01-26} } @article{flanagan06, author = {Cormac Flanagan and Stephen N. Freund and Aaron Tomb}, title = {Hybrid Types, Invariants, and Refinments For Imperative Objects}, journal = {FOOL/WOOD Workshop}, year = {2006}, url = {https://users.soe.ucsc.edu/~cormac/papers/fool06.pdf}, urldate = {2022-01-26} } @article{lehmann17, author = {Nico Lehmann and Éric Tanter}, title = {Gradual Refinement Types}, journal = {POPL’17}, year = {2017}, url = {https://pleiad.cl/papers/2017/lehmannTanter-popl2017.pdf}, urldate = {2022-01-26} } @article{thomas19, title = {A proactive approach to more secure code}, organization = {Microsoft Security Response Center}, author = {Gavin Thomas}, url = {https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/}, date = {2019-07-16}, urldate = {2022-01-25} } @article{weiss21, author = {Aaron Weiss and Olek Gierczak and Daniel Patterson and Amal Ahmed}, title = {Oxide: The Essence of Rust}, year = {2021}, url = {https://arxiv.org/pdf/1903.00982.pdf}, urldate = {2022-01-26} } @article{kan20, author = {Shuanglong Kan and Zhe Chen and Davin Saán and Shang-Wei Lin and Yang Liu}, title = {An Executable Operational Semantics for Rust with the Formaliztion of Ownership and Borrowing}, year = {2020}, url = {https://arxiv.org/pdf/1804.07608.pdf}, urldate = {2022-01-26} } @mastersthesis{ullrich16, author = {Sebastian Ullrich}, title = {Simple Verification of Rust Programs via Functional Purification}, school = {Karlsruhe Institute of Technology}, year = {2016}, url = {https://pp.ipd.kit.edu/uploads/publikationen/ullrich16masterarbeit.pdf}, urldate = {2022-01-26} } @mastersthesis{kooi21, author = {Xiu Hong Kooi}, title = {Refinement Types in Real-World Programming}, school = {University pf Cambridge}, year = 2021, url = {https://kooixiuhong.com/static/media/acs-dissertation.e8569509.pdf}, urldate = {2022-02-07} } @article{vekris16, author = {Panagiotis Vekris and Bejamin Cosman and Ranjit Jhala}, title = {Refinement Types for TypeScript}, year = {2016}, url = {https://goto.ucsd.edu/~pvekris/docs/pldi16.pdf}, urldate = {2022-02-07} } @article{reed15, author = {Eric Reed}, title = {Patina: A Formalization of the Rust Programming Language}, year = {2015}, url = {https://dada.cs.washington.edu/research/tr/2015/03/UW-CSE-15-03-02.pdf}, urldate = {2022-02-07} } @techreport{prusti19, author = {V. Astrauskas and P. Müller and F. Poli and A. J. Summers}, title = {Leveraging Rust Types for Modular Specification and Verification}, institution = {ETH Zurich}, year = {2019}, doi = {10.3929/ethz-b-000311092} } @inproceedings{mueller16, author = {P. Müller and M. Schwerhoff and A. J. Summers}, title = {Viper: A Verification Infrastructure for Permission-Based Reasoning}, booktitle = {Verification, Model Checking, and Abstract Interpretation (VMCAI)}, editor = {B. Jobstmann and K. R. M. Leino}, year = {2016}, publisher = {Springer-Verlag}, series = {LNCS}, pages = {41-62}, volume = {9583} } @article{rondon08, author = {Partrick M. Rondon and Ming Kawaguci and Ranjit Jhala}, title = {Liquid Types}, doi = {10.1145/1375581.1375602}, year = {2008}, eventtitle = {PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation}, pages = {159-169} } @report{olson16, author = {Scott Olson}, school = {University of Saskatchewan}, title = {Miri: An interpreter for Rust’s mid-level intermediate representation}, url = {https://solson.me/miri-report.pdf} } @online{matsakis18, author = {Niko Matsakis}, title = {An alias-based formulation of the borro checker}, date = {2018-04-27}, url = {https://smallcultfollowing.com/babysteps/blog/2018/04/27/an-alias-based-formulation-of-the-borrow-checker/#fnref:covariant}, urldate = {2022-02-17} } @misc{enwiki:1064721744, author = {{Wikipedia contributors}}, title = {Datalog --- {Wikipedia}{,} The Free Encyclopedia}, year = {2022}, howpublished = {\url{https://en.wikipedia.org/w/index.php?title=Datalog&oldid=1064721744}}, note = {[Online; accessed 17-February-2022]} } @article{pearce2021lightweight, title = {A lightweight formalism for reference lifetimes and borrowing in Rust}, author = {Pearce, David J}, journal = {ACM Transactions on Programming Languages and Systems (TOPLAS)}, volume = {43}, number = {1}, pages = {1--73}, year = {2021}, publisher = {ACM New York, NY, USA} }