Complexity Information Flow in a Multi-threaded Imperative Language
Jean-Yves Marion (INRIA Lorraine - LORIA), Romain P\'echoux (INRIA, Lorraine - LORIA)

TL;DR
This paper introduces a type system for analyzing the time complexity of multi-threaded imperative programs with shared memory, establishing conditions for polynomial time execution and characterizing polynomial time functions.
Contribution
It presents the first type system-based characterization of polynomial time multi-threaded programs, based on data tiering and information flow regulation.
Findings
Safe multi-threaded programs run in polynomial time under certain termination conditions.
The type system characterizes the set of polynomial time functions.
It links data tiering with implicit computational complexity.
Abstract
We propose a type system to analyze the time consumed by multi-threaded imperative programs with a shared global memory, which delineates a class of safe multi-threaded programs. We demonstrate that a safe multi-threaded program runs in polynomial time if (i) it is strongly terminating wrt a non-deterministic scheduling policy or (ii) it terminates wrt a deterministic and quiet scheduling policy. As a consequence, we also characterize the set of polynomial time functions. The type system presented is based on the fundamental notion of data tiering, which is central in implicit computational complexity. It regulates the information flow in a computation. This aspect is interesting in that the type system bears a resemblance to typed based information flow analysis and notions of non-interference. As far as we know, this is the first characterization by a type system of polynomial time…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
