Skip to content

Commit 0ee0854

Browse files
committed
update introduction etc.
1 parent 6459a6e commit 0ee0854

11 files changed

Lines changed: 328 additions & 265 deletions

File tree

.github/readme.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
# Dissertation
22

33
[![Compile](https://github.com/nkrusch/thesis/actions/workflows/compile.yaml/badge.svg)](https://github.com/nkrusch/thesis/actions/workflows/compile.yaml)
4-
[![Status](https://img.shields.io/badge/review-FF5722?style=flat-square&logo=%20&logoColor=ffffff&label=Status&labelColor=333333)](https://github.com/nkrusch/dissertation/releases)
54

65
Repository to host, compile, and share my dissertation.
76

8-
### Formatting references
9-
7+
### Formatting guides
8+
109
* [Augusta University ETD Guides](https://guides.augusta.edu/etd)
1110
* [AU Dissertation Guide Booklet v.2024](https://augustauniversity.app.box.com/s/vj0ygpy8tvyqmsbae8y0qp9767ta7jb9)
1211
* [Dissertation template](https://github.com/aubertc/au_ccs_dissertation_template/) (LaTeX/markdown)
1312
* [Preparing Your Manuscript for Submission (ProQuest)](https://about.proquest.com/globalassets/proquest/files/pdf-files/preparing-your-manuscript.pdf)
1413

15-
### 📁 Repository Organization
14+
### Repository Organization
1615

1716
.
1817
├─ 🗀 .github/ : Automated workflows
@@ -31,15 +30,18 @@ Repository to host, compile, and share my dissertation.
3130
├─ Makefile : Build commands
3231
└─ * : Configuration files
3332

34-
### 🐳 Docker environment for compilation
33+
### Compilation with Docker
34+
35+
From the repository root, pull the latest [texlive-full][texlive] image, then launch the container.
36+
37+
export DOCKER_DEFAULT_PLATFORM=linux/amd64
38+
docker pull ghcr.io/xu-cheng/texlive-full:latest
39+
docker run -v "$(pwd):/dissertation" -it --rm ghcr.io/xu-cheng/texlive-full
40+
41+
Insider the container, compile the dissertation by running:
3542

36-
Pull latest [texlive-full image](https://github.com/xu-cheng/latex-docker/pkgs/container/texlive-full),
37-
then launch the container.
38-
Run the container from the root of this repository.
43+
cd dissertation && make
3944

40-
```
41-
docker pull ghcr.io/xu-cheng/texlive-full:latest
42-
docker run -v "$(pwd):/dissertation" -it --rm ghcr.io/xu-cheng/texlive-full
43-
```
45+
The output should be a `main.pdf` at the repository root.
4446

45-
Insider the container run `cd dissertation && make` to compile the dissertation.
47+
[texlive]: https://github.com/xu-cheng/latex-docker/pkgs/container/texlive-full

main.mst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
%% LaTeX2e file `main.mst'
22
%% generated by the `filecontents' environment
3-
%% from source `main' on 2025/06/24.
3+
%% from source `main' on 2025/06/25.
44
%%
55
headings_flag 1
66
heading_prefix "\{\\normalsize\\textbf\{"

references/references.bib

Lines changed: 60 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,9 @@ @article{brockschmidt2016
199199
number = {4},
200200
pages = {1--50},
201201
doi = {10.1145/2866575},
202-
issn = {1558-4593}
202+
issn = {1558-4593},
203+
articleno = {13},
204+
numpages = {50}
203205
}
204206
@article{chang2005,
205207
title = {{Inferring Object Invariants: Extended Abstract}},
@@ -490,6 +492,21 @@ @article{hainry2023
490492
doi = {10.1145/3571221},
491493
issn = {2475-1421}
492494
}
495+
@article{haselwarter2023,
496+
title = {{SSProve: A Foundational Framework for Modular Cryptographic Proofs in Coq}},
497+
author = {Haselwarter, Philipp G. and Rivas, Exequiel and Van Muylder, Antoine and Winterhalter, Th\'{e}o and Abate, Carmine and Sidorenco, Nikolaj and Hri\c{t}cu, C\u{a}t\u{a}lin and Maillard, Kenji and Spitters, Bas},
498+
year = {2023},
499+
month = {7},
500+
journal = {{ACM Transactions on Programming Languages and Systems}},
501+
publisher = {{ACM}},
502+
volume = {45},
503+
number = {3},
504+
doi = {10.1145/3594735},
505+
issn = {0164-0925},
506+
issue_date = {September 2023},
507+
articleno = {15},
508+
numpages = {61}
509+
}
493510
@article{hoare1969,
494511
title = {{An axiomatic basis for computer programming}},
495512
author = {Hoare, C. A. R.},
@@ -2410,7 +2427,8 @@ @misc{aws2024
24102427
author = {Byron Cook},
24112428
year = {2024},
24122429
url = {https://aws.amazon.com/blogs/security/an-unexpected-discovery-automated-reasoning-often-makes-systems-more-efficient-and-easier-to-maintain/},
2413-
note = {AWS Security Blog, 17 October 2024 (accessed: 2025-04-17)}
2430+
annote = {AWS Security Blog, 17 October 2024},
2431+
note = {Accessed: 2025-04-17},
24142432
}
24152433
@misc{casc,
24162434
title = {{The CADE ATP System Competition}},
@@ -2419,6 +2437,13 @@ @misc{casc
24192437
url = {https://tptp.org/CASC/},
24202438
note = {Accessed: 2025-04-15}
24212439
}
2440+
@misc{core,
2441+
title = {{ICORE Conference Portal}},
2442+
author = {{Computing Research and Education (CORE)}},
2443+
year = {2025},
2444+
url = {https://portal.core.edu.au/conf-ranks/},
2445+
note = {Accessed: 2025-06-25}
2446+
}
24222447
@misc{cinteger,
24232448
title = {{C Integer Programs}},
24242449
author = {{Termination Portal},},
@@ -2435,10 +2460,19 @@ @misc{crowdstrike
24352460
}
24362461
@misc{etaps2025,
24372462
title = {{Ina Schaefer on X-by-Construction}},
2438-
author = {{ETAPS} Blog},
2463+
author = {Benjamin Kaminski},
24392464
year = {2025},
2465+
month = {3},
24402466
url = {https://etaps.org/blog/031-ina-schaefer/},
2441-
note = {Published on 25 March 2025 (Accessed: 2025-04-27)}
2467+
note = {Accessed: 2025-04-27},
2468+
annote = {ETAPS Blog, Published on 25 March 2025 }
2469+
}
2470+
@misc{complexityzoo,
2471+
title = {{Complexity Zoo}},
2472+
author = {Scott Aaronson and Greg Kuperberg and Oliver Habryka},
2473+
year = {2025},
2474+
url = {https://complexityzoo.net/Complexity_Zoo},
2475+
note = {Accessed: 2025-06-25}
24422476
}
24432477
@misc{flores_experiments,
24442478
title = {{Experimental evaluation of Cost Analysis of Programs Based on the Refinement of Cost Relations}},
@@ -2452,7 +2486,8 @@ @misc{furia2014b
24522486
author = {Furia, Carlo A.},
24532487
year = {2014},
24542488
url = {https://se.inf.ethz.ch/courses/2014b_fall/sv/slides/06-AssertionInference.pdf},
2455-
note = {Lecture notes of Software Verification course, ETH Zürich, Fall 2014 (Accessed: 2025-04-19)}
2489+
note = {Accessed: 2025-04-19},
2490+
annote = {Lecture notes of Software Verification course, ETH Zürich, Fall 2014},
24562491
}
24572492
@misc{hundredtheorems,
24582493
title = {{Formalizing 100 Theorems}},
@@ -2467,46 +2502,52 @@ @misc{kristiansen2017
24672502
year = {2017},
24682503
month = {4},
24692504
url = {https://zenodo.org/records/15288399},
2470-
note = {Presentation slides at DICE-FOPARA 2017, Uppsala, Sweden (Accessed: 2025-01-06)}
2505+
note = {Accessed: 2025-01-06},
2506+
annote = {Presentation slides at DICE-FOPARA 2017, Uppsala, Sweden}
24712507
}
24722508
@misc{leino2010b,
24732509
title = {{Dafny An automatic program verifier for functional correctness}},
24742510
author = {Leino, K Rustan M},
24752511
year = {2010},
24762512
month = {4},
24772513
url = {https://www.microsoft.com/en-us/research/publication/dafny-automatic-program-verifier-functional-correctness/},
2478-
note = {Presentation slides of LPAR-16 on 27 April 2010 (Accessed: 2025-04-14)}
2514+
annote = {Presentation slides of LPAR-16, on 27 April 2010},
2515+
note = {Accessed: 2025-04-14},
24792516
}
24802517
@misc{moller2024,
24812518
title = {{Static Program Analysis}},
24822519
author = {Møller, Anders},
24832520
year = {2024},
24842521
month = {8},
24852522
url = {https://zenodo.org/records/15288399},
2486-
note = {Lecture notes from Marktoberdorf Summer School 2024, Herrsching am Ammersee, Germany (Accessed: 2025-02-08)}
2523+
annote = {Lecture notes from Marktoberdorf Summer School 2024, Herrsching am Ammersee, Germany},
2524+
note = {Accessed: 2025-02-08},
24872525
}
24882526
@misc{muller2024,
24892527
title = {{Ownership in program verification -- from separation logic to Rust and back}},
24902528
author = {Müller, Peter},
24912529
year = {2024},
24922530
month = {8},
24932531
url = {https://zenodo.org/records/15288399},
2494-
note = {Lecture notes from Marktoberdorf Summer School 2024, Herrsching am Ammersee, Germany (Accessed: 2025-04-19)}
2532+
note = {Accessed: 2025-04-19},
2533+
annote = {Lecture notes from Marktoberdorf Summer School 2024, Herrsching am Ammersee, Germany}
24952534
}
24962535
@misc{oak-slides,
24972536
title = {{Introduction to OpenMP Offload: Part I}},
24982537
author = {Pophale, Swaroop},
24992538
year = {2023},
25002539
url = {https://www.olcf.ornl.gov/wp-content/uploads/OpenMP_Introduction_to_Offload_Part1.pdf},
2501-
note = {OpenMP training series at the National Energy Research Scientific Computing Center (NERSC) (Accessed: 2025-03-08)}
2540+
note = {Accessed: 2025-03-08},
2541+
annote = {OpenMP training series at the National Energy Research Scientific Computing Center (NERSC)}
25022542
}
25032543
@misc{piessens2024,
25042544
title = {{Software security across abstraction layers}},
25052545
author = {Piessens, Frank},
25062546
year = {2024},
25072547
month = {8},
25082548
url = {https://zenodo.org/records/15288399},
2509-
note = {Lecture notes from Marktoberdorf Summer School 2024, Herrsching am Ammersee, Germany (Accessed: 2025-02-15)}
2549+
note = {Accessed: 2025-02-15},
2550+
annote = {Lecture notes from Marktoberdorf Summer School 2024, Herrsching am Ammersee, Germany}
25102551
}
25112552
@misc{rocq-community,
25122553
title = {{The Rocq Community}},
@@ -2521,15 +2562,17 @@ @misc{shankar2023
25212562
year = {2023},
25222563
month = {5},
25232564
url = {https://fm.csl.sri.com/SSFT23/speaklogicV12.pdf},
2524-
note = {Lecture notes from the Twelfth Summer School on Formal Techniques, Menlo College, California (Accessed: 2025-04-19)}
2565+
note = {Accessed: 2025-04-19},
2566+
annote = {Lecture notes from the Twelfth Summer School on Formal Techniques, Menlo College, California}
25252567
}
25262568
@misc{torlak2015,
25272569
title = {{Static Analysis}},
25282570
author = {Torlak, Emina},
25292571
year = {2015},
25302572
month = {5},
25312573
url = {https://courses.cs.washington.edu/courses/cse403/15sp/lectures/L19.pdf},
2532-
note = {Lecture notes from CSE 403: Software Engineering, Spring 2015 (Accessed: 2025-02-09)}
2574+
note = {Accessed: 2025-02-09},
2575+
annote = {Lecture notes from CSE 403: Software Engineering, Spring 2015}
25332576
}
25342577
@misc{usg2024,
25352578
title = {{Notice of Data Breach}},
@@ -2563,15 +2606,17 @@ @misc{zave2023
25632606
year = {2023},
25642607
month = {5},
25652608
url = {https://fm.csl.sri.com/SSFT23/aLecture1.pdf},
2566-
note = {Lecture notes from the Twelfth Summer School on Formal Techniques, Menlo College, California (Accessed: 2025-04-19)}
2609+
note = {Accessed: 2025-04-19},
2610+
annote = {Lecture notes from the Twelfth Summer School on Formal Techniques, Menlo College, California}
25672611
}
25682612
@misc{zave2023b,
25692613
title = {{No More Garbage In: Validating Formal Models - A Short Course (Reference)}},
25702614
author = {Zave, Pamela and Nelson, Tim},
25712615
year = {2023},
25722616
month = {5},
25732617
url = {https://fm.csl.sri.com/SSFT23/reference.pdf},
2574-
note = {Lecture notes from the Twelfth Summer School on Formal Techniques, Menlo College, California (Accessed: 2025-04-19)}
2618+
note = {Accessed: 2025-04-19},
2619+
annote = {Lecture notes from the Twelfth Summer School on Formal Techniques, Menlo College, California}
25752620
}
25762621
@phdthesis{carbonneaux2018,
25772622
title = {{Modular and Certified Resource-Bound Analyses}},

text/bg-formal.tex

Lines changed: 51 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -318,15 +318,6 @@ \subsubsection{The Rocq Theorem Prover}
318318
The successes of Rocq have also created abundant interest in dependent type theory;
319319
the core logic of Rocq~\cite{coquand1988}.
320320

321-
%\paragraph*{Logical foundations.}
322-
%All Rocq expressions, including logical claims, have a type describing what it computes.
323-
%Calculus of inductive constructions
324-
%a version of dependent type theory with a countable hierarchy of non-cumulative universes and inductive types.
325-
%By the Curry-Howard correspondence, Rocq can be seen at the same time as a pure functional programming language and a rich proof system.
326-
%For all formula there exists a proof of this formula in natural deduction if and only if there exists a term that has this formula as type.
327-
%Theorem statement \(\leftrightarrow\) Type
328-
%Proof \(\leftrightarrow\) Program
329-
330321
\paragraph*{Technical overview.}
331322
As a guiding example, consider simple proof in~\autoref{lst:rocq-basic}.
332323
The \pr|lemma| keywords starts a statement we wish to prove.
@@ -399,20 +390,50 @@ \subsubsection{The Rocq Theorem Prover}
399390
\toprule
400391
\textbf{Formalization target} & \textbf{Authors} \\
401392
\midrule
402-
\href{https://users.dimi.uniud.it/~ivan.scagnetto/pi-calculus.html}{\(\pi\)-calculus in (Co)inductive-type theory} & \textcite{honsell2001} \\
403-
\href{https://github.com/rocq-community/goedel}{Gödel-Rosser 1st incompleteness theorem} & \textcite{oconnor2005} \\
404-
Modal model of impredicative semantics & \textcite{appel2007} \\
405-
\href{https://github.com/rocq-community/fourcolor}{Four Color theorem}\smtabularnote{based on~\cite{robertson1997} and~\cite{appel1989}} & \textcite{gonthier2008} \\
406-
\href{https://github.com/AbsInt/CompCert}{Verified Optimizing C Compiler, CompCert}\index{CompCert}\smtabularnote{A verifying compiler is one of the grand challenges for computing research posed in~\textcite{hoare2003}}\smtabularnote{CompCert received the ACM Software System Award in 2021.} & \textcite{leroy2009} \\
407-
\href{https://gitlab.inria.fr/flocq/flocq}{Flocq: floating-point numbers} & \textcite{boldo2011} \\
408-
\href{http://plv.csail.mit.edu/bedrock/}{Bedrock: low-level programming library} & \textcite{chlipala2011} \\
409-
\href{https://github.com/davidnowak/bellantonicook}{Safe Recursion} -- \autoref{safe-rec} & \textcite{heraud2011} \\
410-
\href{https://github.com/ProjectiveGeometry/ProjectiveGeometry}{Desargues's theorem in projective geometry} & \textcite{magaud2012} \\
411-
\href{https://github.com/math-comp/odd-order}{Feit-Thompson's Odd Order theorem} & \textcite{gonthier2013} \\
412-
\href{https://github.com/HoTT/Coq-HoTT}{Homotopy Type Theory} & \textcite{bauer2017} \\
413-
\href{https://github.com/rocq-community/reglang}{Regular Language representations} & \textcite{doczkal2018} \\
414-
\href{https://github.com/DeepSpec/InteractionTrees}{Recursive and impure programs} & \textcite{xia2019} \\
415-
\href{https://github.com/uds-psl/coq-library-undecidability}{Undecidable Problems} & \textcite{forster2020b} \\
393+
\href{https://users.dimi.uniud.it/~ivan.scagnetto/pi-calculus.html}%
394+
{\ndx{\(\pi\)-calculus} in (Co)inductive-type theory}\index{coinduction} & \textcite{honsell2001}
395+
\\
396+
\href{https://github.com/rocq-community/goedel}%
397+
{\ndx{Gödel-Rosser incompleteness theorem}} & \textcite{oconnor2005}
398+
\\
399+
Modal model of impredicative semantics & \textcite{appel2007}
400+
\\
401+
\href{https://github.com/rocq-community/fourcolor}%
402+
{\ndx{Four Color theorem}}\smtabularnote{based on~\cite{robertson1997} and~\cite{appel1989}} & \textcite{gonthier2008}
403+
\\
404+
\href{https://github.com/AbsInt/CompCert}%
405+
{Verified Optimizing C Compiler, \ndx{CompCert}}%
406+
\smtabularnote{A verifying compiler is one of the grand challenges for computing research posed in~\textcite{hoare2003}}%
407+
\smtabularnote{CompCert received the ACM Software System Award in 2021.} & \textcite{leroy2009}
408+
\\
409+
\href{https://gitlab.inria.fr/flocq/flocq}%
410+
{\ndx{Flocq}: floating-point numbers} & \textcite{boldo2011}
411+
\\
412+
\href{http://plv.csail.mit.edu/bedrock/}%
413+
{\ndx{Bedrock}: low-level programming library} & \textcite{chlipala2011}
414+
\\
415+
\href{https://github.com/davidnowak/bellantonicook}%
416+
{Safe Recursion\index{safe recursion}} -- \autoref{safe-rec} & \textcite{heraud2011} \\
417+
\href{https://github.com/ProjectiveGeometry/ProjectiveGeometry}
418+
{\ndx{Desargues's theorem} in projective geometry} & \textcite{magaud2012}
419+
\\
420+
\href{https://github.com/math-comp/odd-order}%
421+
{Feit-Thompson's \ndx{Odd Order theorem}} & \textcite{gonthier2013}
422+
\\
423+
\href{https://github.com/HoTT/Coq-HoTT}%
424+
{\ndx{Homotopy Type Theory}} & \textcite{bauer2017}
425+
\\
426+
\href{https://github.com/rocq-community/reglang}%
427+
{Regular Language representations} & \textcite{doczkal2018}
428+
\\
429+
\href{https://github.com/DeepSpec/InteractionTrees}%
430+
{Interaction Trees: Recursive and impure programs} & \textcite{xia2019}
431+
\\
432+
\href{https://github.com/uds-psl/coq-library-undecidability}%
433+
{Undecidable\index{undecidability} Problems} & \textcite{forster2020b}
434+
\\
435+
\href{https://github.com/SSProve/ssprove}%
436+
{\ndx{SSProve}: modular cryptographic proofs} & \textcite{haselwarter2023} \\
416437
\bottomrule
417438
\end{NiceTabularX}
418439
\caption[The Rocq prover formalization results]{A small sample of results formalized with the Rocq prover.}
@@ -449,18 +470,18 @@ \subsubsection{Dafny: The Verification Aware Programming Language}
449470
\end{figure}
450471

451472
\paragraph*{Technical overview.}
452-
Dafny is a hybrid language, influenced by Java and C\#.
473+
Dafny is a hybrid language, influenced by \ndx{Java} and \ndx{C\#}.
453474
It has both functional and object-oriented features;
454-
including: curly-bracket block-style, (mathematical) functions, and inductive and co-inductive data types.
475+
including: curly-bracket block-style, (mathematical) functions, and inductive and co-inductive\index{coinduction} data types.
455476
The programming constructs include loops, \pr|if|-statements, arrays, classes and methods;
456477
variables, types, generics, lambdas, inheritance, \etc~\cite{dafnydoc}
457-
The real power of Dafny comes from the ability to annotate methods to specify their behavior.
458-
For verification tasks, the idea is to define specifications and write proofs aside the implementation, in deductive verification-style.
478+
The real power of \ndx{Dafny} comes from the ability to annotate methods to specify their behavior.
479+
For verification tasks, the idea is to define specifications and write proofs aside the implementation, in \ndx{deductive verification}-style.
459480
The built-in verification constructs include pre- and postconditions;
460-
loop invariants, termination metrics, lemmas, and ghost constructs\footnote{
481+
loop invariants, termination metrics, lemmas, and \ndx{ghost construct}s\footnote{
461482
A \emph{ghost} is any construct that is used for verification only; they are erased during compilation~\cite[p. 19]{leino2023}.}.
462-
This language design enables writing functionally-correct verified programs fully in Dafny~\cite{leino2023}.
463-
Dafny programs can be compiled to various target languages, like C\#, Java, and Go~\cite{dafnydoc}.
483+
This language design enables writing functionally-correct verified programs fully in \ndx{Dafny}~\cite{leino2023}.
484+
Dafny programs can be compiled to various target languages, like \ndx{C\#}, \ndx{Java}, and \ndx{Go}~\cite{dafnydoc}.
464485

465486
Dafny has an associated static program verifier.
466487
The role of the verifier is to check a program's specification constructs\footnote{These are Eiffel-like contracts from~\cite{meyer1988}.}.
@@ -896,9 +917,3 @@ \subsubsection{Connecting Formal Methods and ICC}
896917
Another perspective is to use ICC systems in assisting formal methods tools in program verification efforts.
897918
This is the motivating idea in the manuscript of~\autoref{sec:postcond}.
898919
The central idea is that inferred mwp-bounds can be used as postconditions in Dafny-style deductive verification.
899-
900-
%The third goal is to strengthen the hypothesis that implicit computational complexity is naturally suited to formal reasoning.
901-
%Classic complexity theory is predicated on machine models that are difficult to represent formally~\footnote{
902-
%For example, a formal model of TMs in~\textcite{forster2020} took five years to complete.}.
903-
%In contrast, the programming languages-based approach of implicit computational complexity makes formal reasoning more accessible.
904-
%The findings of this dissertation are sufficient to motivate and justify the effort for undertaking rigorous formalization projects.

0 commit comments

Comments
 (0)