Module soundX:let
Builds on soundX:host
tm ::= ...
| let(string, tm, tm)
typeOf Ctx T1 Ty
----------------------------------------------------- [Proj-Let]
Ctx |{tm}- let(X, T1, T2) ~~> app(abs(X, Ty, T2), T1)
typeOf Ctx T1 Ty1
typeOf (X, Ty1)::Ctx T2 Ty2
----------------------------- [T-Let]
typeOf Ctx let(X, T1, T2) Ty2
Click on a command or tactic to see a detailed view of its use.
Module soundX:let. Prove_Constraint soundX:host:proj_ty_is. Prove soundX:host:type_is. [Show Proof] Prove_Constraint soundX:host:proj_is. [Show Proof] Prove soundX:host:type_unique. [Show Proof] Prove soundX:host:ty_lookup. [Show Proof] Prove_Constraint soundX:host:proj_ty_unique. Prove_Constraint soundX:host:proj_tm_unique. [Show Proof] Prove soundX:host:desugar_ty_exists. Prove soundX:host:desugar_ty_rel. [Show Proof]