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]