2009
DOI: 10.1007/s10817-009-9120-2
|View full text |Cite
|
Sign up to set email alerts
|

Formal Verification of C Systems Code

Abstract: Systems code is almost universally written in the C programming language or a variant. C has a very low level of type and memory abstraction and formal reasoning about C systems code requires a memory model that is able to capture the semantics of C pointers and types. At the same time, proof-based verification demands abstraction, in particular from the aliasing and frame problems. In this paper we present a study in the mechanisation of two proof abstractions for pointer program verification in the Isabelle/… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
3
0

Year Published

2009
2009
2023
2023

Publication Types

Select...
5
1

Relationship

0
6

Authors

Journals

citations
Cited by 22 publications
(3 citation statements)
references
References 41 publications
0
3
0
Order By: Relevance
“…The CompCert C memory model [26], CH 2 O memory model [24], and Tuch's C memory model [38] are C memory models formalised in a theorem prover, each focusing on different aspects of verification. Our model mostly draws inspiration from these models, extending such work to support CHERI-C programs.…”
Section: Related Workmentioning
confidence: 99%
“…The CompCert C memory model [26], CH 2 O memory model [24], and Tuch's C memory model [38] are C memory models formalised in a theorem prover, each focusing on different aspects of verification. Our model mostly draws inspiration from these models, extending such work to support CHERI-C programs.…”
Section: Related Workmentioning
confidence: 99%
“…Definition ProtocolVersion ∶= struct { ( " major " , uint8 ) ; ( " minor " , uint8 ) }. Definition Random ∶= struct { ( " gmt_unix_time " , uint32 ) ; ( " random_bytes " , opaque [ 28 ])}. Definition SessionID ∶= opaque < .. 32 > 1.…”
Section: Dealing With Dependent Records In Packet Formatsmentioning
confidence: 99%
“…application to a memory allocator [28]. A trusted C-to-HOL translation is responsible for encoding C types as Isabelle/HOL records together with lemmas [28, §5.3]; padding is encoded in the form of extra fields [28, p.140].…”
Section: Related Workmentioning
confidence: 99%