Question: i n Types :: = nat | l i s t t ( 1 ) | a r r ( 1 ; 2 ) ein
Types :: nat ;
ein Exprs ::;;;
lam;
The statics and dynamics of this system extend that of eager System T with the following typing rules for the new constructors:
nill:listt
The dynamics for lists mirrors that for natural numbers:
nill is a value,
cons; is a value if both and are,
evaluation of the arguments of cons is lefttoright, and
evaluation of lrec; proceeds by first evaluating until it is a value either nill or cons ; and then
either producing or ; respectively.
You are also to define a bigstep dynamics for this system using the judgment that corresponds to the combination of and
val.
In all, the judgment constructors you need to declare in your sig file are of val, step, steps, and eval.
For this system, you are to define predicates using Define in the thm file isnat, islist, plus, times, cat, len, and rev reverse
For example, here are definitions for isnat and plus:
example, here is the theorem for plus:
Also for this system, you are to prove
Unicity of typing
Determinacy of step
Preservation
Progress
Equivalence of and and val.
along with all of the required lemmas.
To turn in your Homework assignment, zip together your three files hwsig, hw mod, and hw thm into a file hwzip, and upload this
one file on the Homework link on Canvas by the deadline.
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
