Lightweight Feature Java (LFJ) is a subset of Java extended with support for features.
It was designed to study the problem of safe composition
of software product lines. LFJ is based on
Lightweight Java, an imperative fragment of Java.
The syntax and semantics of LFJ have been formalized in the
Coq proof assistant. The soundness of the LFJ type system has also been verified in Coq.
With the acceptance of our paper at FSE, I've updated the proof scripts to work with Coq 8.2 and cleaned
them up the process.
Old Source Files
|
lj.v
|
Syntax and semantics of Lightweight Java.
|
|
lj_sound.v
|
Soundness of Lightweight Java's type system.
|
|
lj_constr_sound.v
|
Constraint-based type system for Lightweight Java and proof of its soundness.
|
|
lfj.v
|
Syntax and semantics of Lightweight Feature Java.
|
|
lfj_sound.v
|
Soundness of type system for Lightweight Feature Java.
|