Coder Social home page Coder Social logo

lattice-mtl's Introduction

lattice-mtl

A Verified Online Monitor for Metric Temporal Logic with Quantitative Semantics (Extended Version)

@InProceedings{ChattopadhyayM20,
  author="Chattopadhyay, Agnishom
      and Mamouras, Konstantinos",
  editor="Deshmukh, Jyotirmoy
      and Ni{\v{c}}kovi{\'{c}}, Dejan",
  title="A Verified Online Monitor for Metric Temporal Logic with Quantitative Semantics",
  booktitle="Runtime Verification",
  year="2020",
  publisher="Springer International Publishing",
  address="Cham",
  pages="383--403",
}

Usage as a library

To use this as a library, see the instructions in extracted/README.md

Extraction

The Extracted Code can be found in extracted/LatticeMtl.ml with some examples of usage in extracted/Examples.ml. To re-run the extraction (and verification) process:

cd src/
make Makefile.coq
make

The current version of the proof was checked using Coq 8.12.1.

Organization of the Proof

The toMonitor : Formula -> Monitor is defined in Monitor/ToMonitor.v. The semantics of the formulae are available in Semantics/InfRobustness.v and the main theorem, toMonitor_correctness can be found in Monitor/ToMonitor.v.

Below is a brief discussion of the organization of the proof:

  • Lemmas/: Various useful auxilary functions. Relevant lemmas.
  • NonEmptyList/: Type of non-empty lists.
  • Algebra/:
    • Algebra/Monoid.v: Definition of Monoids. Extending monoid operations to finite lists.
    • Algebra/Lattice.v: Lattices. Bounded, Distributive Lattices. Order Theoretic Properties of Lattices.
  • Syntax/:
    • Syntax/Formula.v: Syntax of Past-time MTL formulas. Some syntactic sugar.
    • Syntax/Normal.v: Definition of and conversion into normal forms. The resulting formulae only contain certain constructs
  • Semantics/:
    • Semantics/InfRobustness.v: Semantics of MTL formulas on infinite traces.
    • Semantics/Robustness.v: Semantics on non-empty lists (defined via their extension to infinite traces).
    • Semantics/SimpleProperties.v: Simple properties of some degenerate MTL formulas.
    • Semantics/Incremental.v: Incremental derivations of semantic values. Used to construct the monitors.
    • Semantics/SinceRewrite.v: Translating S_[0,a] to S and Sometime_[0,a].
    • Semantics/Equivalences.v: Other MTL identities.
    • Semantics/NormalizeCorrect.v: Correctness of the normal forms.
  • Monitor/
    • Monitor/Mealy.v: Mealy Machines. Denotations. Composition. Unbounded Aggregation.
    • Monitor/Queue.v: Queue. Implementation of Sometime_[n,n]
    • Monitor/AggQueue.v: Sliding window aggregation. Implementation of Sometime_[0,n].
    • Monitor/Monitor.v: Definition of Monitors. implements relation. Combinators for building blocks.
    • Monitor/ToMonitor.v: Translating Formulas to Monitors. Proof of Correctness.
  • Extract/: Extraction to OCaml.

lattice-mtl's People

Contributors

agnishom avatar

Stargazers

 avatar  avatar april avatar Anton Trunov avatar  avatar Orestis Melkonian avatar

Watchers

James Cloos avatar  avatar  avatar Lingkun avatar Zhifu Wang avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.