2019
DOI: 10.1007/978-3-030-17184-1_2
|View full text |Cite
|
Sign up to set email alerts
|

Meta-F $$^\star $$ : Proof Automation with SMT, Tactics, and Metaprograms

Abstract: We introduce Meta-F , a tactics and metaprogramming framework for the F program verifier. The main novelty of Meta-F is allowing the use of tactics and metaprogramming to discharge assertions not solvable by SMT, or to just simplify them into well-behaved SMT fragments. Plus, Meta-F can be used to generate verified code automatically. Meta-F is implemented as an F effect, which, given the powerful effect system of F , heavily increases code reuse and even enables the lightweight verification of metaprograms. M… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
10
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
3
3
2

Relationship

2
6

Authors

Journals

citations
Cited by 22 publications
(10 citation statements)
references
References 61 publications
0
10
0
Order By: Relevance
“…To aid language creators in writing down and carrying out proofs about structural semantics, many tools exist. [26][27][28] Coq, 27 for example, is an interactive proof assistant. The tool allows language designers to write a mathematically rigorous definition of their language.…”
Section: Semantics Engineering Toolsmentioning
confidence: 99%
“…To aid language creators in writing down and carrying out proofs about structural semantics, many tools exist. [26][27][28] Coq, 27 for example, is an interactive proof assistant. The tool allows language designers to write a mathematically rigorous definition of their language.…”
Section: Semantics Engineering Toolsmentioning
confidence: 99%
“…This section defines lattices and abstract domains. Such structures are a natural fit for typeclasses [12], which allow for ad hoc polymorphism. In our case, it means that we can have one abstraction for lattices for instance, and then instantiate this abstraction with implementations for, say, sets of integers, then intervals, etc.…”
Section: Abstract Domainsmentioning
confidence: 99%
“…Meta-F ★ is a recent extension of F ★ [26] that allows the programmer to script the F ★ compiler using user-written F ★ programs, an approach known as elaborator reflection and pioneered by Lean [17] and Idris [15]. Meta-F ★ offers, by design, a safe API for term manipulation, meaning it re-checks the results of meta-program execution: if a meta-program attempts to synthesize an ill-typed term, F ★ aborts.…”
Section: Scaling Cryptographic Verificationmentioning
confidence: 99%
“…Tactics are not part of the trusted computing base ( §2); unlike, say, MTac2 [23], Meta-F ★ [26] does not allow the user to prove properties about tactics, trading provable correctness for ease-of-use and programmer productivity.…”
Section: Usability Of Tacticsmentioning
confidence: 99%