Module mtc:bool Builds on mtc:shared_declarations e ::= ... | trueE | falseE | ifThenElse(e, e, e) v ::= ... | trueVal | falseVal ty ::= ... | boolTy --------------------- [T-True] typeOf G trueE boolTy ---------------------- [T-False] typeOf G falseE boolTy typeOf G C boolTy typeOf G T Ty typeOf G F Ty ------------------------------- [T-IfThenElse] typeOf G ifThenElse(C, T, F) Ty -------------------- [E-True] eval G trueE trueVal ---------------------- [E-False] eval G falseE falseVal eval G C trueVal eval G T V ---------------------------- [E-IfThenElse-True] eval G ifThenElse(C, T, F) V eval G C falseVal eval G F V ---------------------------- [E-IfThenElse-False] eval G ifThenElse(C, T, F) V ------------------------ [VT-True] valueType trueVal boolTy ------------------------- [VT-False] valueType falseVal boolTy evalStep C C1 ------------------------------------------------- [ES-If-Step] evalStep ifThenElse(C, T, F) ifThenElse(C1, T, F) ---------------------------------- [ES-If-True] evalStep ifThenElse(trueE, T, F) T ----------------------------------- [ES-If-False] evalStep ifThenElse(falseE, T, F) F ----------- [V-True] value trueE ------------ [V-False] value falseE --------------------- [S-True] subst X R trueE trueE ----------------------- [S-False] subst X R falseE falseE subst X R C C1 subst X R T T1 subst X R F F1 ---------------------------------------------------- [S-If] subst X R ifThenElse(C, T, F) ifThenElse(C1, T1, F1) ------------------ [C-BoolTy-True] canon boolTy trueE ------------------- [T-BoolTy-False] canon boolTy falseE -------------------- [Proj-True] |{e}- trueE ~~> nilE --------------------- [Proj-False] |{e}- falseE ~~> nilE ---------------------------------- [Proj-IfThenElse] |{e}- ifThenElse(C, T, F) ~~> nilE ---------------------- [Proj-TrueVal] |{v}- trueVal ~~> nilV ----------------------- [Proj-FalseVal] |{v}- falseVal ~~> nilV ----------------------- [Proj-BoolTy] |{ty}- boolTy ~~> nilTy
Click on a command or tactic to see a detailed view of its use.
Module mtc:bool. Prove mtc:shared_declarations:type_preservation. [Show Proof] Prove mtc:shared_declarations:value_evalStep_false. [Show Proof] Prove mtc:shared_declarations:subst_unique. [Show Proof] Prove mtc:shared_declarations:evalStep_unique. [Show Proof] Prove mtc:shared_declarations:ty_lookup. [Show Proof] Prove mtc:shared_declarations:subst_preservation. [Show Proof] Prove mtc:shared_declarations:evalStep_type_preservation. [Show Proof] Prove mtc:shared_declarations:canonical_form. [Show Proof] Prove mtc:shared_declarations:subst_is. [Show Proof] Prove mtc:shared_declarations:evalStep_is. [Show Proof] Prove mtc:shared_declarations:subst_total. [Show Proof] Prove mtc:shared_declarations:progress. [Show Proof]