Module lambda_calculus:pair
Builds on lambda_calculus:host
e ::= ...
| pair(e, e)
| fst(e)
| snd(e)
---------------------------------------------------- [Proj-Pair]
|{e}- pair(T1, T2) ~~>
app(
app(
abs("A", abs("B", abs("S",
app(app(var("S"), var("A")), var("B"))))),
T1),
T2)
------------------------------------------ [Proj-Fst]
|{e}- fst(T) ~~>
app(T, abs("A", abs("B", var("A"))))
------------------------------------------ [Proj-Snd]
|{e}- snd(T) ~~>
app(T, abs("A", abs("B", var("B"))))
{eval
app(
app(
abs("A", abs("B", abs("S",
app(app(var("S"), var("A")), var("B"))))),
T1),
T2) V}
---------------------------------------------------- [E-Pair]
eval pair(T1, T2) V
eval app(T, abs("A", abs("B", var("A")))) V
------------------------------------------- [E-Fst]
eval fst(T) V
eval app(T, abs("A", abs("B", var("B")))) V
------------------------------------------- [E-Snd]
eval snd(T) V
subst X R T1 S1
subst X R T2 S2
---------------------------------------------------- [S-Pair]
{subst X R pair(T1, T2)
app(
app(
abs("A", abs("B", abs("S",
app(app(var("S"), var("A")), var("B"))))),
S1),
S2)}
subst X R T S
------------------------------------------ [S-Fst]
{subst X R fst(T)
app(S, abs("A", abs("B",var("A"))))}
subst X R T S
------------------------------------------ [S-Snd]
{subst X R snd(T)
app(S, abs("A", abs("B",var("B"))))}
Click on a command or tactic to see a detailed view of its use.
Module lambda_calculus:pair. 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]