EDBT 2026 Demo / reviewers in the wild / expert
Nikos Gorogiannis
dblp:86/4535
· DBLP profile ↗
20ranked-venue papers
9as 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 · 9 · 2 first-author · 1 since 2021Theory of computation · 7 · 3 first-authorArtificial intelligence and machine learning · 6 · 4 first-authorGraphics, computer vision, multimedia, augmented reality and games · 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.
| Software engineering, system software, and programming languages
5 papers |
Program analysis · 40% Concurrent programming · 35% Program verification · 18% | |
| Theoretical computer science
2 papers |
Automated reasoning and model checking · 100% | |
| Artificial intelligence
1 paper |
Knowledge representation and reasoning · 100% |
Topics — the 18 heaviest of 19, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
1.2 | 3 | 2021 | A Compositional Deadlock Detector for Android Java · ASE 2021 A true positives theorem for a static race detector · Proc. ACM Program. Lang. 2019 RacerD: compositional static race detection · Proc. ACM Program. Lang. 2018 |
Concurrent programming › concurrency bug detection
data race detection |
0.7 | 2 | 2019 | A true positives theorem for a static race detector · Proc. ACM Program. Lang. 2019 RacerD: compositional static race detection · Proc. ACM Program. Lang. 2018 |
Concurrent programming › concurrency bugs › deadlock
deadlock analysis |
0.5 | 1 | 2021 | A Compositional Deadlock Detector for Android Java · ASE 2021 |
Program analysis › static analysis › interprocedural analysis
compositional analysis |
0.3 | 1 | 2018 | RacerD: compositional static race detection · Proc. ACM Program. Lang. 2018 |
Software maintenance and evolution › release engineering
continuous integration |
0.3 | 1 | 2018 | RacerD: compositional static race detection · Proc. ACM Program. Lang. 2018 |
Program analysis › static analysis
interprocedural analysis |
0.3 | 1 | 2018 | RacerD: compositional static race detection · Proc. ACM Program. Lang. 2018 |
Program verification › static verification
symbolic verification |
0.3 | 1 | 2017 | A Novel Symbolic Approach to Verifying Epistemic Properties of Programs · IJCAI 2017 |
Automated reasoning and model checking
satisfiability modulo theories |
0.3 | 1 | 2017 | A Novel Symbolic Approach to Verifying Epistemic Properties of Programs · IJCAI 2017 |
Program verification
model checking |
0.2 | 1 | 2016 | Model checking for symbolic-heap separation logic with inductive predicates · POPL 2016 |
Program verification › program logic
separation logic |
0.2 | 1 | 2016 | Model checking for symbolic-heap separation logic with inductive predicates · POPL 2016 |
Automated reasoning and model checking
decidability and complexity of verification |
0.2 | 1 | 2016 | Model checking for symbolic-heap separation logic with inductive predicates · POPL 2016 |
Concurrent programming
concurrency bugs |
0.1 | 1 | 2021 | A Compositional Deadlock Detector for Android Java · ASE 2021 |
Concurrent programming › concurrency bugs
deadlock |
0.1 | 1 | 2021 | A Compositional Deadlock Detector for Android Java · ASE 2021 |
Knowledge, reasoning and agents › Knowledge representation and reasoning › argumentation
abstract argumentation |
0.1 | 1 | 2011 | Instantiating abstract argumentation with classical logic arguments: Postulates and properties · Artif. Intell. 2011 |
Knowledge, reasoning and agents › Knowledge representation and reasoning
argumentation |
0.1 | 1 | 2011 | Instantiating abstract argumentation with classical logic arguments: Postulates and properties · Artif. Intell. 2011 |
Knowledge, reasoning and agents › Knowledge representation and reasoning › argumentation
logic-based argumentation |
0.1 | 1 | 2011 | Instantiating abstract argumentation with classical logic arguments: Postulates and properties · Artif. Intell. 2011 |
Concurrent programming › concurrency bugs
data races |
0.1 | 1 | 2019 | A true positives theorem for a static race detector · Proc. ACM Program. Lang. 2019 |
Program verification › dynamic verification
runtime verification |
0.1 | 1 | 2016 | Model checking for symbolic-heap separation logic with inductive predicates · POPL 2016 |
Methods — techniques the papers use, named apart from their topics
symbolic model checking · 0.9first-order satisfiability · 0.9model checking · 0.5fixed-point algorithm · 0.5critical pairs · 0.5compositional analysis · 0.5abstract interpretation · 0.5static analysis · 0.4logical relations · 0.4static program analysis · 0.3classical logic · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | A Compositional Deadlock Detector for Android JavaabstractWe develop a static deadlock analysis for commercial Android Java applications, of sizes in the tens of millions of LoC, under active development at Facebook. The analysis runs primarily at code-review time, on only the modified code and its dependents; we aim at reporting to developers in under 15 minutes.To detect deadlocks in this setting, we first model the real language as an abstract language with balanced re-entrant locks, nondeterministic iteration and branching, and non-recursive procedure calls. We show that the existence of a deadlock in this abstract language is equivalent to a certain condition over the sets of critical pairs of each program thread; these record, for all possible executions of the thread, which locks are currently held at the point when a fresh lock is acquired. Since the critical pairs of any program thread is finite and computable, the deadlock detection problem for our language is decidable, and in NP.We then leverage these results to develop an open-source implementation of our analysis adapted to deal with real Java code. The core of the implementation is an algorithm which computes critical pairs in a compositional, abstract interpretation style, running in quasi-exponential time. Our analyser is built in the Infer verification framework and has been in industrial deployment for over two years; it has seen over two hundred fixed deadlock reports with a report fix rate of ~54%. James Brotherston, Paul Brunet, Nikos Gorogiannis, Max I. Kanovich |
ASE | 3 |
| 2019 | SL-COMP: Competition of Solvers for Separation LogicabstractSL-COMP aims at bringing together researchers interested on improving the state of the art of the automated deduction methods for Separation Logic (SL). The event took place twice until now and collected more than 1K problems for different fragments of SL. The input format of problems is based on the SMT-LIB format and therefore fully typed; only one new command is added to SMT-LIB’s list, the command for the declaration of the heap’s type. The SMT-LIB theory of SL comes with ten logics, some of them being combinations of SL with linear arithmetics. The competition’s divisions are defined by the logic fragment, the kind of decision problem (satisfiability or entailment) and the presence of quantifiers. Until now, SL-COMP has been run on the StarExec platform, where the benchmark set and the binaries of participant solvers are freely available. The benchmark set is also available with the competition’s documentation on a public repository in GitHub. Mihaela Sighireanu, Juan Antonio Navarro Pérez, Andrey Rybalchenko, Nikos Gorogiannis, Radu Iosif, Andrew Reynolds 0001, Cristina Serban, Jens Pagel, Christoph Matheja, Thomas Noll 0001, Florian Zuleger, Wei-Ngan Chin, Quang Loc Le, Quang-Trung Ta, Ton Chanh Le, Thanh-Toan Nguyen, Siau-Cheng Khoo, Michal Cyprian, Adam Rogalewicz, Tomás Vojnar, Constantin Enea, Ondrej Lengál, Zhilin Wu |
TACAS (3) | 4 |
| 2019 | A true positives theorem for a static race detectorabstractRacerD is a static race detector that has been proven to be effective in engineering practice: it has seen thousands of data races fixed by developers before reaching production, and has supported the migration of Facebook's Android app rendering infrastructure from a single-threaded to a multi-threaded architecture. We prove a True Positives Theorem stating that, under certain assumptions, an idealized theoretical version of the analysis never reports a false positive. We also provide an empirical evaluation of an implementation of this analysis, versus the original RacerD. The theorem was motivated in the first case by the desire to understand the observation from production that RacerD was providing remarkably accurate signal to developers, and then the theorem guided further analyzer design decisions. Technically, our result can be seen as saying that the analysis computes an under-approximation of an over-approximation, which is the reverse of the more usual (over of under) situation in static analysis. Until now, static analyzers that are effective in practice but unsound have often been regarded as ad hoc; in contrast, we suggest that, in the future, theorems of this variety might be generally useful in understanding, justifying and designing effective static analyses for bug catching. Nikos Gorogiannis, Peter W. O'Hearn, Ilya Sergey |
Proc. ACM Program. Lang. | 1 |
| 2018 | RacerD: compositional static race detectionabstractAutomatic static detection of data races is one of the most basic problems in reasoning about concurrency. We present RacerD—a static program analysis for detecting data races in Java programs which is fast, can scale to large code, and has proven effective in an industrial software engineering scenario. To our knowledge, RacerD is the first inter-procedural, compositional data race detector which has been shown to have non-trivial precision and impact. Due to its compositionality, it can analyze code changes quickly, and this allows it to perform continuous reasoning about a large, rapidly changing codebase as part of deployment within a continuous integration ecosystem. In contrast to previous static race detectors, its design favors reporting high-confidence bugs over ensuring their absence. RacerD has been in deployment for over a year at Facebook, where it has flagged over 2500 issues that have been fixed by developers before reaching production. It has been important in enabling the development of new code as well as fixing old code: it helped support conversion of part of the main Facebook Android app from a single-threaded to a multi-threaded architecture. In this paper we describe RacerD’s design, implementation, deployment and impact. Sam Blackshear, Nikos Gorogiannis, Peter W. O'Hearn, Ilya Sergey |
Proc. ACM Program. Lang. | 2 |
| 2017 | Biabduction (and Related Problems) in Array Separation Logic
James Brotherston, Nikos Gorogiannis, Max I. Kanovich |
CADE | 2 |
| 2017 | A Novel Symbolic Approach to Verifying Epistemic Properties of ProgramsabstractWe introduce a framework for the symbolic verification of epistemic properties of programs expressed in a class of general-purpose programming languages. To this end, we reduce the verification problem to that of satisfiability of first-order formulae in appropriate theories. We prove the correctness of our reduction and we validate our proposal by applying it to two examples: the dining cryptographers problem and the ThreeBallot voting protocol. We put forward an implementation using existing solvers, and report experimental results showing that the approach can perform better than state-of-the-art symbolic model checkers for temporal-epistemic logic. Nikos Gorogiannis, Franco Raimondi, Ioana Boureanu |
IJCAI | 1 |
| 2017 | vIRONy: A Tool for Analysis and Verification of ECA Rules in Intelligent EnvironmentsabstractIntelligent Environments (IE) are a very active area of research and a number of applications are currently being deployed in domains ranging from smart home to e-health and autonomous vehicles. In a number of cases, IE operate together with (or to support) humans, and it is therefore fundamental that IE are thoroughly verified. In this paper we present how a set of techniques and tools developed for the verification of software code can be employed in the verification of IE described by means of event-condition-action rules. In particular, we reduce the problem of verifying key properties of these rules to satisfiability and termination problems that can be addressed using state-of-the-art SMT solvers and program analysers. We introduce a tool called vIRONy that implements these techniques and we validate our approach against a number of case studies from the literature. Claudia Vannucchi, Michelangelo Diamanti, Gianmarco Mazzante, Diletta Cacciagrano, Flavio Corradini, Rosario Culmone, Nikos Gorogiannis, Leonardo Mostarda, Franco Raimondi |
Intelligent Environments | 7 |
| 2016 | Model checking for symbolic-heap separation logic with inductive predicatesabstractWe investigate the *model checking* problem for symbolic-heap separation logic with user-defined inductive predicates, i.e., the problem of checking that a given stack-heap memory state satisfies a given formula in this language, as arises e.g. in software testing or runtime verification. First, we show that the problem is *decidable*; specifically, we present a bottom-up fixed point algorithm that decides the problem and runs in exponential time in the size of the problem instance. Second, we show that, while model checking for the full language is EXPTIME-complete, the problem becomes NP-complete or PTIME-solvable when we impose natural syntactic restrictions on the schemata defining the inductive predicates. We additionally present NP and PTIME algorithms for these restricted fragments. Finally, we report on the experimental performance of our procedures on a variety of specifications extracted from programs, exercising multiple combinations of syntactic restrictions. James Brotherston, Nikos Gorogiannis, Max I. Kanovich, Reuben N. S. Rowe |
POPL | 2 |
| 2015 | Disproving Inductive Entailments in Separation Logic via Base Pair Approximation
James Brotherston, Nikos Gorogiannis |
TABLEAUX | 2 |
| 2014 | Foundations for Decision Problems in Separation Logic with General Inductive Predicates
Timos Antonopoulos, Nikos Gorogiannis, Christoph Haase, Max I. Kanovich, Joël Ouaknine |
FoSSaCS | 2 |
| 2014 | Cyclic Abduction of Inductively Defined Safety and Termination Preconditions
James Brotherston, Nikos Gorogiannis |
SAS | 2 |
| 2012 | A Generic Cyclic Theorem Prover
James Brotherston, Nikos Gorogiannis, Rasmus Lerchedahl Petersen |
APLAS | 2 |
| 2011 | The Complexity of Abduction for Separated Heap Abstractions
Nikos Gorogiannis, Max I. Kanovich, Peter W. O'Hearn |
SAS | 1 |
| 2011 | Instantiating abstract argumentation with classical logic arguments: Postulates and properties
Nikos Gorogiannis, Anthony Hunter |
Artif. Intell. | 1 |
| 2010 | The Complexity of the Warranted Formula Problem in Propositional ArgumentationabstractThe notion of warrant or justification is one of the central concepts in formal models of argumentation. The dialectical definition of warrant is expressed in terms of recursive defeat: an argument is warranted if each of its counter-arguments is itself defeated by a warranted counter-argument. However, few complexity results exist on checking whether an argument is warranted in the context of deductive models of argumentation, i.e. models where an argument is a deduction of a claim from a set of premises using some logic. We investigate the computational complexity of checking whether a claim is warranted in propositional argumentation under two natural definitions of warrant and show that it is PSPACE-complete in both cases. Robin Hirsch, Nikos Gorogiannis |
J. Log. Comput. | 2 |
| 2009 | An argument-based approach to reasoning with clinical knowledge
Nikos Gorogiannis, Anthony Hunter, Matthew Williams 0001 |
Int. J. Approx. Reason. | 1 |
| 2008 | Implementing semantic merging operators using binary decision diagrams
Nikos Gorogiannis, Anthony Hunter |
Int. J. Approx. Reason. | 1 |
| 2007 | Minimal refinements of specifications in model and termporal logicsabstractresearch-article Free Access Share on Minimal refinements of specifications in model and termporal logics Authors: Nikos Gorogiannis School of Computing, University of the West of England, BS 16 1QY, Bristol, UK School of Computing, University of the West of England, BS 16 1QY, Bristol, UKView Profile , Mark Ryan School of Computer Science, University of Birmingham, B15 2TT, Birmingham, UK School of Computer Science, University of Birmingham, B15 2TT, Birmingham, UKView Profile Authors Info & Claims Formal Aspects of ComputingVolume 19Issue 1pp 35–62https://doi.org/10.1007/s00165-006-0014-3Published:01 March 2007Publication History 0citation13DownloadsMetricsTotal Citations0Total Downloads13Last 12 Months8Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Nikos Gorogiannis, Mark Ryan 0001 |
Formal Aspects Comput. | 1 |
| 2007 | Minimal refinements of specifications in modal and temporal logics
Nikos Gorogiannis, Mark Ryan 0001 |
Formal Aspects Comput. | 1 |
| 2007 | Minimal refinements of specifications in modal and temporal logicsabstractIn both scenarios we seek to produce a refinement of a system.Refinement (see e.g.[AL91]) can be viewed as behaviour-containment; if A and B are two systems, then A refines B iff behaviours(A) ⊆ behaviours(B).We will be using transition systems to represent designs of systems (and from now on we will use the terms system and model interchangeably), and as such, an appropriate notion of behaviour is the computation tree.Correspondingly, the set of behaviours exhibited by a transition system is the set of computation trees that results from the unravelling of the transition system.More specific definitions will be given in the following section.In both examples, a refinement of a design is sought.However, refining a system yields an implementation, or a more 'concrete' version of it, but not necessarily a useful one: depending on the formalism used, it is frequently the case that trivial models exist that refine almost every other model.For example, in the case of the database access control system, it is true that an empty transition system does not allow any behaviours at all and, therefore, refines the original one; it is hardly a useful one though.In other words, we are interested in refining the original model but only so much as is necessary in order to satisfy a given guiding property.In this way, behaviours of the original system are only sacrificed if necessary.Thus, instead of just looking for designs that refine the initial one and satisfy the new requirement, we will use refinement to order the designs.We are led, then, to the concept of minimal refinement.Minimal refinement can be used whenever the designer has a model of a system that already circumscribes the allowed behaviours of the system.Then, a new property can be applied and a new design obtained, that satisfies the new requirement, refines the initial design and exhibits as many of its behaviours as possible.A corollary of this is that by using minimal refinement we get automatic preservation of safety properties.The contributions of this paper lie, firstly, in the introduction of the notion of minimal refinement as a method for the stepwise addition of requirements in a model.Secondly, we investigate and prove results concerning several issues around minimal refinement such as the soundness and decidability of algorithms for computing minimal refinements.In what follows we will define this process and study its theoretical and applied aspects.We will focus on representations of designs based on transition systems, and on modal and temporal logics as languages for expressing requirements.We begin by introducing the theoretical background in Sect. 2.Then, we will proceed to formalise these intuitions and define minimal refinement in a precise way in Sect.3. In the same section, the problems that arise from our definition are discussed, and specific technical questions aiming at resolving those problems are specified.These questions are investigated in the context of modal logic in Sect. 4. In the aim of addressing expressiveness issues related to modal logic, we further develop the investigation of these questions into the realm of temporal logic in Sect. 5. Finally, we conclude and summarise the possible avenues for extending the work presented in this paper, in Sect.6.The definitions behind minimal refinement and part of the results presented in Sect. 4 have appeared in [GR02].The results presented in Sect. 5 have appeared in [Gor03]. Preliminaries General backgroundBefore discussing specific logics, we will approach the subject from a higher level.Therefore, let L and M be sets, corresponding to the set of formulae and the set of models of a logic.Let, also, | ⊆ M × L be a satisfaction relation.The class of models that satisfies a formula φ will be denoted by mod(φ).Let ⊆ M × M be a preorder (i.e., a transitive and reflexive relation) on models.The strict counterpart of , denoted by < is defined by the condition M < N iff M N and N M. Given a set S ⊆ M, the minimisation operator is defined in the usual way, min (S) {M ∈ S | ∀ N ∈ S, N < M}.As noted in the introduction, we will be looking at an operation of the form of min (mod(φ)).This operation resembles one often found in the areas known as theory (or belief) change (see, e.g., [Gro88, Dal88, KM89, KM91]) and non-monotonic reasoning (e.g, [KLM90, BMP97, BEF93]), among others.The shared intuition is that, when given a property φ in some logic, instead of selecting all the structures that satisfy φ (mod(φ)) we employ some extra-logical information and treat some models inside mod(φ) in a preferential way.This information takes frequently the form of a relation over models and is usually called a preference relation.Minimal refinements of specifications in modal and temporal logics 419 Modal logicIn Sect.4, we will generally work with a finite set A of propositional variables.The modal language L K of the logic K m on A with m modalities is defined inductively; if p ∈ A then p ∈ L K ; if φ and ψ are in L K then so are ¬ φ and φ ∧ ψ; if φ ∈ L K then 3 i φ ∈ L K for all 1 i m.The usual propositional abbreviations apply as well as the modal 2 i ≡ ¬ 3 i ¬ .The axiomatisation of K m follows. P.Any propositional tautology is an axiom.K. Any formula of the form 2 i (φ → ψ) → (2 i φ → 2 i ψ) with 1 i m is an axiom.Its rules of inference are: MP.Modus ponens: if φ and φ → ψ, then ψ.Nec.Necessitation: if φ, then 2 i φ, for all 1 i m.The logic of K m is defined to be the smallest subset of L K that contains all the instances of the above axioms and is closed under the two rules of inference.The fact that a formula φ ∈ L K is in is denoted by φ.If T is a set of sentences and φ a sentence, then φ is deducible from T , written T φ, if there exists a number n 0 and sentences ψ 1 , . . ., ψ n ∈ T such that ψ 1 ∧ • • • ∧ ψ n → φ.The set T is called consistent if T ⊥ and inconsistent otherwise.The most popular semantics for modal logics is through Kripke models. Nikos Gorogiannis, Mark Ryan 0001 |
Formal Aspects Comput. | 1 |