Exploiting constraint-like data characterizations in query optimization
SIGMOD '01 Proceedings of the 2001 ACM SIGMOD international conference on Management of data
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
A Generic Algebra for Data Collections Based on Constructive Logic
AMAST '95 Proceedings of the 4th International Conference on Algebraic Methodology and Software Technology
System Description: ARA - An Automatic Theorem Prover for Relation Algebras
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
Introduction to Database Systems
Introduction to Database Systems
Journal of Functional Programming
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Polymorphism and separation in hoare type theory
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Fundamentals of Database Systems (5th Edition)
Fundamentals of Database Systems (5th Edition)
A semantics for concurrent separation logic
Theoretical Computer Science
Resources, concurrency, and local reasoning
Theoretical Computer Science
Data management for internet-scale single-sign-on
WORLDS'06 Proceedings of the 3rd conference on USENIX Workshop on Real, Large Distributed Systems - Volume 3
Program-ing finger trees in Coq
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Ynot: dependent types for imperative programs
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Reasoning about B+ Trees with Operational Semantics and Separation Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards type-theoretic semantics for transactional concurrency
Proceedings of the 4th international workshop on Types in language design and implementation
Effective interactive proofs for higher-order imperative programs
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Mechanized verification with sharing
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Language-based verification will change the world
Proceedings of the FSE/SDP workshop on Future of software engineering research
Integrating types and specifications for secure software development
MMM-ACNS'10 Proceedings of the 5th international conference on Mathematical methods, models and architectures for computer network security
Verifying stateful programs with substructural state and hoare types
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Maintaining database integrity with refinement types
Proceedings of the 25th European conference on Object-oriented programming
A simple abstraction for complex concurrent indexes
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Verification of B+ trees: an experiment combining shape analysis and interactive theorem proving
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Mechanizing the metatheory of mini-XQuery
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Establishing browser security guarantees through formal shim verification
Security'12 Proceedings of the 21st USENIX conference on Security symposium
Proof-producing synthesis of ML from higher-order logic
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Machine-verified network controllers
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Local Reasoning for Global Invariants, Part II: Dynamic Boundaries
Journal of the ACM (JACM)
A type-theoretical approach for ontologies: The case of roles
Applied Ontology
Hi-index | 0.00 |
We report on our experience implementing a lightweight, fully verified relational database management system (RDBMS). The functional specification of RDBMS behavior, RDBMS implementation, and proof that the implementation meets the specification are all written and verified in Coq. Our contributions include: (1) a complete specification of the relational algebra in Coq; (2) an efficient realization of that model (B+ trees) implemented with the Ynot extension to Coq; and (3) a set of simple query optimizations proven to respect both semantics and run-time cost. In addition to describing the design and implementation of these artifacts, we highlight the challenges we encountered formalizing them, including the choice of representation for finite relations of typed tuples and the challenges of reasoning about data structures with complex sharing. Our experience shows that though many challenges remain, building fully-verified systems software in Coq is within reach.