Refutational theorem proving using term-rewriting systems
Artificial Intelligence
The complexity of propositional linear temporal logics
Journal of the ACM (JACM)
Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Partial orders for parallel debugging
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Conditional rewriting logic as a unified model of concurrency
Selected papers of the Second Workshop on Concurrency and compositionality
Specification-based test oracles for reactive systems
ICSE '92 Proceedings of the 14th international conference on Software engineering
Temporal verification of reactive systems: safety
Temporal verification of reactive systems: safety
Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
A practical method for verifying event-driven software
Proceedings of the 21st international conference on Software engineering
A deadlock detection tool for concurrent Java programs
Software—Practice & Experience
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
Specification and proof in membership equational logic
Theoretical Computer Science - Trees in algebra and programming
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Formal Analysis of a Space-Craft Controller Using SPIN
IEEE Transactions on Software Engineering
Maude: specification and programming in rewriting logic
Theoretical Computer Science - Rewriting logic and its applications
An Improved Algorithm for the Membership Problem for Extended Regular Expressions
MFCS '02 Proceedings of the 27th International Symposium on Mathematical Foundations of Computer Science
Model-Checking Multi-threaded Distributed Java Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
The Temporal Rover and the ATG Rover
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Membership algebra as a logical framework for equational specification
WADT '97 Selected papers from the 12th International Workshop on Recent Trends in Algebraic Development Techniques
Synthesizing Monitors for Safety Properties
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Experiments in Theorem Proving and Model Checking for Protocol Verification
FME '96 Proceedings of the Third International Symposium of Formal Methods Europe on Industrial Benefit and Advances in Formal Methods
PET: An Interactive Software Testing Tool
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Boolean and Cartesian Abstraction for Model Checking C Programs
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Freedom, Weakness, and Determinism: From Linear-Time to Branching-Time
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
Automata-Based Verification of Temporal Properties on Running Programs
Proceedings of the 16th IEEE international conference on Automated software engineering
Monitoring Programs Using Rewriting
Proceedings of the 16th IEEE international conference on Automated software engineering
Synthesizing Dynamic Programming Algorithms fromLinear Temporal Logic Formulae
Synthesizing Dynamic Programming Algorithms fromLinear Temporal Logic Formulae
Testing Linear Temporal Logic Formulae on Finite Execution Traces
Testing Linear Temporal Logic Formulae on Finite Execution Traces
Runtime safety analysis of multithreaded programs
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Efficient monitoring of safety properties
International Journal on Software Tools for Technology Transfer (STTT) - Special section on tools and algorithms for the construction and analysis of systems
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Experiments with test case generation and runtime analysis
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
Testing extended regular language membership incrementally by rewriting
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Using LTL rewriting to improve the performance of model-checker based test-case generation
Proceedings of the 3rd international workshop on Advances in model-based testing
Validating Behavioral Component Interfaces in Rewriting Logic
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Verified Software: Theories, Tools, Experiments
ICESS '07 Proceedings of the 3rd international conference on Embedded Software and Systems
Synthesizing Monitors for Safety Properties: This Time with Calls and Returns
Runtime Verification
Design of Complex Cyber Physical Systems with Formalized Architectural Patterns
Software-Intensive Systems and New Computing Paradigms
Automatic processor customization for zero-overhead online software verification
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Invariant-driven specifications in Maude
Science of Computer Programming
Browser-Based Enforcement of Interface Contracts in Web Applications with BeepBeep
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Issues in using model checkers for test case generation
Journal of Systems and Software
A temporal logic-based planning and execution monitoring framework for unmanned aircraft systems
Autonomous Agents and Multi-Agent Systems
Using Maude to write and execute ODP information viewpoint specifications
Computer Standards & Interfaces
Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP
Electronic Notes in Theoretical Computer Science (ENTCS)
Validating Behavioral Component Interfaces in Rewriting Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
Runtime verification using a temporal description logic
FroCoS'09 Proceedings of the 7th international conference on Frontiers of combining systems
LTL Goal Specifications Revisited
Proceedings of the 2010 conference on ECAI 2010: 19th European Conference on Artificial Intelligence
A middleware architecture for safety critical ambient intelligence applications
ruSMART/NEW2AN'10 Proceedings of the Third conference on Smart Spaces and next generation wired, and 10th international conference on Wireless networking
Formal Specification and Verification of Ubiquitous and Pervasive Systems
ACM Transactions on Autonomous and Adaptive Systems (TAAS)
An effective sequential statistical test for probabilistic monitoring
Information and Software Technology
Compensation-aware runtime monitoring
RV'10 Proceedings of the First international conference on Runtime verification
Backward trace slicing for rewriting logic theories
CADE'11 Proceedings of the 23rd international conference on Automated deduction
Past time LTL runtime verification for microcontroller binary code
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
Policy auditing over incomplete logs: theory, implementation and applications
Proceedings of the 18th ACM conference on Computer and communications security
Allen linear (interval) temporal logic – translation to LTL and monitor synthesis
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Policy monitoring in first-order temporal logic
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Efficient monitoring of ω-languages
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Introduction to special section on formal methods in pervasive computing
ACM Transactions on Autonomous and Adaptive Systems (TAAS) - Special section on formal methods in pervasive computing, pervasive adaptation, and self-adaptive systems: Models and algorithms
Understanding and protecting privacy: formal semantics and principled audit mechanisms
ICISS'11 Proceedings of the 7th international conference on Information Systems Security
Datalog-Based program analysis with BES and RWL
Datalog'10 Proceedings of the First international conference on Datalog Reloaded
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Validating Behavioral Component Interfaces in Rewriting Logic
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Constructive finite trace analysis with linear temporal logic
TAP'12 Proceedings of the 6th international conference on Tests and Proofs
Safer asynchronous runtime monitoring using compensations
Formal Methods in System Design
Formal Modeling and Verification of Security Property in Handel C Program
International Journal of Secure Software Engineering
Privacy-preserving audit for broker-based health information exchange
Proceedings of the 4th ACM conference on Data and application security and privacy
Runtime verification of microcontroller binary code
Science of Computer Programming
Hi-index | 0.00 |
Techniques for efficiently evaluating future time Linear Temporal Logic (abbreviated LTL) formulae on finite execution traces are presented. While the standard models of LTL are infinite traces, finite traces appear naturally when testing and/or monitoring real applications that only run for limited time periods. A finite trace variant of LTL is formally defined, together with an immediate executable semantics which turns out to be quite inefficient if used directly, via rewriting, as a monitoring procedure. Then three algorithms are investigated. First, a simple synthesis algorithm for monitors based on dynamic programming is presented; despite the efficiency of the generated monitors, they unfortunately need to analyze the trace backwards, thus making them unusable in most practical situations. To circumvent this problem, two rewriting-based practical algorithms are further investigated, one using rewriting directly as a means for online monitoring, and the other using rewriting to generate automata-like monitors, called binary transition tree finite state machines (and abbreviated BTT-FSMs). Both rewriting algorithms are implemented in Maude, an executable specification language based on a very efficient implementation of term rewriting. The first rewriting algorithm essentially consists of a set of equations establishing an executable semantics of LTL, using a simple formula transforming approach. This algorithm is further improved to build automata on-the-fly via caching and reuse of rewrites (called memoization), resulting in a very efficient and small Maude program that can be used to monitor program executions. The second rewriting algorithm builds on the first one and synthesizes provably minimal BTT-FSMs from LTL formulae, which can then be used to analyze execution traces online without the need for a rewriting system. The presented work is part of an ambitious runtime verification and monitoring project at NASA Ames, called PathExplorer, and demonstrates that rewriting can be a tractable and attractive means for experimenting and implementing logics for program monitoring.