Soundness proofs for the DSD type system

نویسنده

  • Robert Grabowski
چکیده

This paper presents the soundness proofs for the type system of the Dynamic Security Domains (DSD) language. Unless otherwise noted, the identifiers and indices used in the proofs directly refer the respective identifiers and indices used in the operational semantics and the typing rules. Also, σ and (s, h) shall refer to the same program state, equally σ1 = (s1, h1), σ′ = (s′, h′), etc. 1 Expression typing soundness In the following, we simplify notion and ignore the class information of objects. That is, given a heap h and a location a, h(a) shall refer directly to the field valuation. First, we observe an equality between the evaluation of a qualified field type (which is a label) and the interpretation of a field type of the same object. The lemma follows from their definitions. Lemma 1. In any state σ, it holds Jftπ(f)Kσ = Jft(f)KJπKσ . The following lemma states that the expression typing rules are sound. Lemma 2. If Γ ` e : `, then for all states σ and σ′ and all partial bijections β and domains k such that σ ∼β σ′, J`Kσ ≤ k implies JeKσ ∼β JeKσ′ . Proof. By induction over e. • e = n or e = > or e = ⊥. Then e is a constant and JeKσ ∼β JeKσ′ holds. • e = x. Then ` = Γ(x). If JΓ(x)Ks ≤ k, then by definition s(x) ∼β s′(x), hence JxKσ ∼β JxKσ′ . • e = π.f . Γ ` π : `π and ` = ftπ(f) t `π. Since J`Kσ ≤ k, we get J`πKσ ≤ k and by induction JπKσ ∼β JπKσ′ . We define a = JπKσ and a′ = JπKσ′ . From a ∼β a′ follows h(a) ∼β h′(a′). With lemma 1, we know Jft(f)Ka = Jftπ(f)Kσ, which is lower than k since J`Kσ ≤ k. With the definition of object equivalence, we have h(a)(f) ∼β h′(a′)(f) and thus Jπ.fKσ ∼β Jπ.fKσ′ .

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Using Vampire in Soundness Proofs of Type Systems

Type systems for programming languages shall detect type errors in programs before runtime. To ensure that a type system meets this requirement, its soundness must be formally verified. We aim at automating soundness proofs of type systems to facilitate the development of sound type systems for domain-specific languages. Soundness proofs for type systems typically require induction. However, ma...

متن کامل

From F to DOT: Type Soundness Proofs with Definitional Interpreters

Scala’s type system unifies aspects of ML modules, object-oriented, and functional programming. The Dependent Object Types (DOT) family of calculi has been proposed as a new theoretic foundation for Scala and similar expressive languages. Unfortunately, it is not clear how DOT relates to well-studied type systems from the literature, and type soundness has only been established for very restric...

متن کامل

Automating Proof Steps of Progress Proofs: Comparing Vampire and Dafny

Developing provably sound type systems is a non-trivial task which, as of today, typically requires expert skills in formal methods and a considerable amount of time. Our Veritas [3] project aims at providing support for the development of soundness proofs of type systems and efficient type checker implementations from type system specifications. To this end, we investigate how to best automate...

متن کامل

A Theory of Featherweight Java in Isabelle/HOL

We formalize the type system, small-step operational semantics, and type soundness proof for Featherweight Java [1], a simple object calculus, in Isabelle/HOL [2].

متن کامل

Lightweight Polymorphic Effects - Proofs

This technical report presents the full proofs for the type preservation and effect soundness theorems of the type system presented in the article “Lightweight Polymorphic Effects”.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009