03.07.2020 Views

2018-annual-report

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Program Analysis

and Verification

23

Our research on Program Analysis and Verification advances

the theoretical underpinnings and the practical tools that

help programmers show, by means of a mathematical

proof, that their software executes as intended in terms

of functionality, efficiency, and resource consumption.

Establishing correctness of a program is essential in many

existing and emerging industrial domains where a program

malfunction may have serious negative consequences.

Examples include safety-critical avionics and automotive

software, embedded and mobile software that must perform

within given resource bounds, and electronic currencies

and smart contracts, which are essentially a form

of programmable money.

In addition to being practically important, proving that

software is correct is a source of some of the deepest,

most challenging, but also most beautiful scientific and

mathematical questions. Here are some of the topics on

which IMDEA researchers currently work, and are worldwide

leaders.

Verification of concurrent and distributed systems

Formal languages and systems for specification,

interactive, and automated proofs

• Expressive, dependent and higher-order type systems

(liquid types, type theories, proof assistants, Coq, Agda).

• Behavioral types (monads, comonads, Hoare types, session

types) .

• SAT and SMT solvers.

Algorithms and efficent deductive methods for

software verification

• Sofware model checking, parametrized model checking,

automatic abstraction refinement.

• Decision procedures for complex data-types.

• Automata theory and formal languages.

Static analysis and abstract interpretation

• Analysis and verification of software resource consumption

(e.g., energy bounds for programs).

• Compile- and run-time assertion checking.

• Automatic refinement of abstract domains.

annual report

20

• Spatial, temporal, and relational program logics (Hoare

logics, separation logic, logics for temporal hyperproperties,

logics for information flow security, LTL, CTL).

• Consistency criteria (linearizability, serializability, quiescent

linearizability, eventual consistency).

• Weak memory models.

• Consensus algorithms.

• Blockchain and smart contracts.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!