Please read Chapter 15 in your textbook.
Please do the following problems
Please do the following problems:
Adding T-SUB drastically changes a type system, especially the canonical forms lemmas. You are provided with proof of type soundness for the simply-typed lambda calculus with records. You need to change the proofs to add subtyping.
The skeleton file for this homework, not only includes records and the proof of soundness but also the subtyping relation. You need to do several things:
Prove soundness of subtyping with references, using the rule on page 198. (I don't recommend this--I haven't done it myself.)
The textbook gives three different ways in which records can be subtyped. Can you find a widely used programming language that accepts all three? Describe four widely used languages that have something approximating records and indicate which of the subtyping rules apply, and explain how.