Extensibella Example: lambda_calculus:bool

Language Specification

File: syntax.sos

[Reduce File] [Raw File]
Module lambda_calculus:bool

Builds on lambda_calculus:host

e ::= ...
    | trueE
    | falseE
    | if(e, e, e)

-------------------------------------------- [Proj-True]
|{e}- trueE ~~> abs("a", abs("b", var("a")))


--------------------------------------------- [Proj-False]
|{e}- falseE ~~> abs("a", abs("b", var("b")))


--------------------------------------------- [Proj-If]
|{e}- if(Cond, T, F) ~~> app(app(Cond, T), F)

File: eval.sos

[Reduce File] [Raw File]
Module lambda_calculus:bool

--------------------------------------- [E-True]
eval trueE abs("a", abs("b", var("a")))


---------------------------------------- [E-False]
eval falseE abs("a", abs("b", var("b")))


eval app(app(Cond, T), F) V
--------------------------- [E-If]
eval if(Cond, T, F) V



-------------------------------------------- [S-True]
subst X R trueE abs("a", abs("b", var("a")))


--------------------------------------------- [S-False]
subst X R falseE abs("a", abs("b", var("b")))


subst X R Cond CS
subst X R T TS
subst X R F FS
--------------------------------------------- [S-If]
subst X R if(Cond, T, F) app(app(CS, TS), FS)

Reasoning

[Show All Proofs] [Hide All Proofs] [Raw File]

Click on a command or tactic to see a detailed view of its use.

Module lambda_calculus:bool.


Prove_Constraint lambda_calculus:host:proj_is. [Show Proof]



Add_Proj_Rel lambda_calculus:host:is_e.

Prove_Ext_Ind lambda_calculus:host:is_e. [Show Proof]



Prove_Constraint lambda_calculus:host:proj_same. [Show Proof]



Prove lambda_calculus:host:subst_exists. [Show Proof]



Prove lambda_calculus:host:subst_is. [Show Proof]



Prove lambda_calculus:host:eval_is. [Show Proof]



Prove lambda_calculus:host:subst_unique. [Show Proof]



Prove lambda_calculus:host:eval_unique. [Show Proof]



Prove_Constraint lambda_calculus:host:proj_subst. [Show Proof]



Prove_Constraint lambda_calculus:host:proj_subst_same. [Show Proof]



Prove_Constraint lambda_calculus:host:proj_eval. [Show Proof]



Prove_Constraint lambda_calculus:host:proj_eval_same. [Show Proof]



Add_Ext_Size lambda_calculus:host:eval.
Add_Proj_Rel lambda_calculus:host:eval.

Prove_Ext_Ind lambda_calculus:host:eval. [Show Proof]


Back to example home