EDBT 2026 Demo / reviewers in the wild / expert
Nick Giannarakis
dblp:165/5440
· DBLP profile ↗
7ranked-venue papers
3as first author
1since 2021 · last 2021
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 6 · 3 first-author · 1 since 2021Security and privacy · 1Theory of computation · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer networks
2 papers |
Network management and operations · 87% Datacenter networks · 13% | |
| Software engineering, system software, and programming languages
3 papers |
Concurrent programming · 64% Program verification · 36% | |
| Network and information security
2 papers |
Cryptographic primitives and cryptanalysis · 64% Systems and software security · 36% |
Topics — the 16 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Network management and operations
network verification |
0.8 | 2 | 2020 | NV: an intermediate language for verification of network control planes · PLDI 2020 Efficient Verification of Network Fault Tolerance via Counterexample-Guided Refinement · CAV (2) 2019 |
Network management and operations › network verification
control plane verification |
0.4 | 1 | 2020 | NV: an intermediate language for verification of network control planes · PLDI 2020 |
Network management and operations › network configuration
network configuration analysis |
0.4 | 1 | 2020 | NV: an intermediate language for verification of network control planes · PLDI 2020 |
Datacenter networks
data center network topology |
0.4 | 1 | 2019 | Efficient Verification of Network Fault Tolerance via Counterexample-Guided Refinement · CAV (2) 2019 |
Network management and operations › network verification
fault tolerance verification |
0.4 | 1 | 2019 | Efficient Verification of Network Fault Tolerance via Counterexample-Guided Refinement · CAV (2) 2019 |
Cryptographic primitives and cryptanalysis › authenticated encryption
AES-GCM |
0.4 | 1 | 2019 | A verified, efficient embedding of a verifiable assembly language · Proc. ACM Program. Lang. 2019 |
Cryptographic primitives and cryptanalysis
authenticated encryption |
0.4 | 1 | 2019 | A verified, efficient embedding of a verifiable assembly language · Proc. ACM Program. Lang. 2019 |
Program verification › code-level verification
machine code verification |
0.4 | 1 | 2019 | A verified, efficient embedding of a verifiable assembly language · Proc. ACM Program. Lang. 2019 |
Concurrent programming › memory models › weak memory models
c11 memory model |
0.2 | 1 | 2016 | Taming release-acquire consistency · POPL 2016 |
Concurrent programming
memory models |
0.2 | 1 | 2016 | Taming release-acquire consistency · POPL 2016 |
Concurrent programming › memory models › weak memory models
release-acquire semantics |
0.2 | 1 | 2016 | Taming release-acquire consistency · POPL 2016 |
Concurrent programming
synchronization |
0.2 | 1 | 2016 | Taming release-acquire consistency · POPL 2016 |
Systems and software security › memory safety
control-flow integrity |
0.2 | 1 | 2015 | Micro-Policies: Formally Verified, Tag-Based Security Monitors · IEEE Symposium on Security and Privacy 2015 |
Program verification › decision procedure
satisfiability modulo theories |
0.1 | 1 | 2019 | A verified, efficient embedding of a verifiable assembly language · Proc. ACM Program. Lang. 2019 |
Automated reasoning and model checking › abstraction refinement
counterexample-guided abstraction refinement |
0.1 | 1 | 2019 | Efficient Verification of Network Fault Tolerance via Counterexample-Guided Refinement · CAV (2) 2019 |
Program verification › refinement
refinement proof |
0.1 | 1 | 2015 | Micro-Policies: Formally Verified, Tag-Based Security Monitors · IEEE Symposium on Security and Privacy 2015 |
Methods — techniques the papers use, named apart from their topics
proof by reflection · 0.8network symmetry reduction · 0.8network abstraction · 0.8dependent types · 0.8counterexample-guided abstraction refinement · 0.8SMT solving · 0.8symbolic machine · 0.4refinement proof · 0.4formal verification · 0.4intermediate language design · 0.4operational semantics · 0.2compilation scheme · 0.2axiomatic model · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | ProbNV: probabilistic verification of network control planesabstractProbNV is a new framework for probabilistic network control plane verification that strikes a balance between generality and scalability. ProbNV is general enough to encode a wide range of features from the most common protocols (eBGP and OSPF) and yet scalable enough to handle challenging properties, such as probabilistic all-failures analysis of medium-sized networks with 100-200 devices. When there are a small, bounded number of failures, networks with up to 500 devices may be verified in seconds. ProbNV operates by translating raw CISCO configurations into a probabilistic and functional programming language designed for network verification. This language comes equipped with a novel type system that characterizes the sort of representation to be used for each data structure: concrete for the usual representation of values; symbolic for a BDD-based representation of sets of values; and multi-value for an MTBDD-based representation of values that depend upon symbolics. Careful use of these varying representations speeds execution of symbolic simulation of network models. The MTBDD-based representations are also used to calculate probabilistic properties of network models once symbolic simulation is complete. We implement the language and evaluate its performance on benchmarks constructed from real network topologies and synthesized routing policies. Nick Giannarakis, Alexandra Silva 0001, David Walker 0001 |
Proc. ACM Program. Lang. | 1 |
| 2020 | NV: an intermediate language for verification of network control planesabstractNetwork misconfiguration has caused a raft of high-profile outages over the past decade, spurring researchers to develop a variety of network analysis and verification tools. Unfortunately, developing and maintaining such tools is an enormous challenge due to the complexity of network configuration languages. Inspired by work on intermediate languages for verification such as Boogie and Why3, we develop NV, an intermediate language for verification of network control planes. NV carefully walks the line between expressiveness and tractability, making it possible to build models for a practical subset of real protocols and their configurations, and also facilitate rapid development of tools that outperform state-of-the-art simulators (seconds vs minutes) and verifiers (often 10x faster). Furthermore, we show that it is possible to develop novel analyses just by writing new NV programs. In particular, we implement a new fault-tolerance analysis that scales to far larger networks than existing tools. Nick Giannarakis, Devon Loehr, Ryan Beckett, David Walker 0001 |
PLDI | 1 |
| 2019 | Efficient Verification of Network Fault Tolerance via Counterexample-Guided RefinementabstractWe show how to verify that large data center networks satisfy key properties such as all-pairs reachability under a bounded number of faults. To scale the analysis, we develop algorithms that identify network symmetries and compute small abstract networks from large concrete ones. Using counter-example guided abstraction refinement, we successively refine the computed abstractions until the given property may be verified. The soundness of our approach relies on a novel notion of network approximation: routing paths in the concrete network are not precisely simulated by those in the abstract network but are guaranteed to be “at least as good.” We implement our algorithms in a tool called Origami and use them to verify reachability under faults for standard data center topologies. We find that Origami computes abstract networks with 1–3 orders of magnitude fewer edges, which makes it possible to verify large networks that are out of reach of existing techniques. Nick Giannarakis, Ryan Beckett, Ratul Mahajan, David Walker 0001 |
CAV (2) | 1 |
| 2019 | Meta-F ^\star : Proof Automation with SMT, Tactics, and MetaprogramsabstractWe introduce Meta-F $$^{\star }$$ , a tactics and metaprogramming framework for the F $$^\star $$ program verifier. The main novelty of Meta-F $$^\star $$ is allowing the use of tactics and metaprogramming to discharge assertions not solvable by SMT, or to just simplify them into well-behaved SMT fragments. Plus, Meta-F $$^\star $$ can be used to generate verified code automatically. Meta-F $$^\star $$ is implemented as an F $$^\star $$ effect, which, given the powerful effect system of F $$^{\star }$$ , heavily increases code reuse and even enables the lightweight verification of metaprograms. Metaprograms can be either interpreted, or compiled to efficient native code that can be dynamically loaded into the F $$^\star $$ type-checker and can interoperate with interpreted code. Evaluation on realistic case studies shows that Meta-F $$^\star $$ provides substantial gains in proof development, efficiency, and robustness. Guido Martínez, Danel Ahman, Victor Dumitrescu, Nick Giannarakis, Chris Hawblitzel, Catalin Hritcu, Monal Narasimhamurthy, Zoe Paraskevopoulou, Clément Pit-Claudel, Jonathan Protzenko, Tahina Ramananandro, Aseem Rastogi, Nikhil Swamy |
ESOP | 4 |
| 2019 | A verified, efficient embedding of a verifiable assembly languageabstractHigh-performance cryptographic libraries often mix code written in a high-level language with code written in assembly. To support formally verifying the correctness and security of such hybrid programs, this paper presents an embedding of a subset of x64 assembly language in F* that allows efficient verification of both assembly and its interoperation with C code generated from F*. The key idea is to use the computational power of a dependent type system's type checker to run a verified verification-condition generator during type checking. This allows the embedding to customize the verification condition sent by the type checker to an SMT solver. By combining our proof-by-reflection style with SMT solving, we demonstrate improved automation for proving the correctness of assembly-language code. This approach has allowed us to complete the first-ever proof of correctness of an optimized implementation of AES-GCM, a cryptographic routine used by 90% of secure Internet traffic. Aymeric Fromherz, Nick Giannarakis, Chris Hawblitzel, Bryan Parno, Aseem Rastogi, Nikhil Swamy |
Proc. ACM Program. Lang. | 2 |
| 2016 | Taming release-acquire consistencyabstractWe introduce a strengthening of the release-acquire fragment of the C11 memory model that (i) forbids dubious behaviors that are not observed in any implementation; (ii) supports fence instructions that restore sequential consistency; and (iii) admits an equivalent intuitive operational semantics based on point-to-point communication. This strengthening has no additional implementation cost: it allows the same local optimizations as C11 release and acquire accesses, and has exactly the same compilation schemes to the x86-TSO and Power architectures. In fact, the compilation to Power is complete with respect to a recent axiomatic model of Power; that is, the compiled program exhibits exactly the same behaviors as the source one. Moreover, we provide criteria for placing enough fence instructions to ensure sequential consistency, and apply them to an efficient RCU implementation. Ori Lahav 0001, Nick Giannarakis, Viktor Vafeiadis |
POPL | 2 |
| 2015 | Micro-Policies: Formally Verified, Tag-Based Security MonitorsabstractRecent advances in hardware design have demonstrated mechanisms allowing a wide range of low-level security policies (or micro-policies) to be expressed using rules on metadata tags. We propose a methodology for defining and reasoning about such tag-based reference monitors in terms of a high-level "symbolic machine" and we use this methodology to define and formally verify micro-policies for dynamic sealing, compartmentalization, control-flow integrity, and memory safety, in addition, we show how to use the tagging mechanism to protect its own integrity. For each micro-policy, we prove by refinement that the symbolic machine instantiated with the policy's rules embodies a high-level specification characterizing a useful security property. Last, we show how the symbolic machine itself can be implemented in terms of a hardware rule cache and a software controller. Arthur Azevedo de Amorim, Maxime Dénès, Nick Giannarakis, Catalin Hritcu, Benjamin C. Pierce, Antal Spector-Zabusky, Andrew P. Tolmach |
IEEE Symposium on Security and Privacy | 3 |