Pensieve header: Some foundational calculations for β-calculus.

SetDirectory["C:\\drorbn\\AcademicPensieve\\2012-04"];
<< betaCalculus.m

βSimplify=FullSimplify;
Unprotect[Log]; Log[E^x_] := x;
K[B[ω_, μ_]] := Module[{heads, ξs, nheads},
heads = hL[B[ω,μ]];
ξs = (D[μ, h[#]] /. t[s_] :>(Subscript[c, s]))& /@ heads;
nheads = MapThread[(h[#1]*Log[1+#2]/#2)&, {heads, ξs}];
βCollect[B[ω,μ] /. Thread[(h/@heads) -> nheads]]
];
J[B[ω_, μ_]] := Module[{heads, ηs, nheads},
heads = hL[B[ω,μ]];
ηs = (D[μ, h[#]] /. t[s_] :>(Subscript[c, s]))& /@ heads;
nheads = MapThread[(h[#1]*(Exp[#2]-1)/#2)&, {heads, ηs}];
βCollect[B[ω,μ] /. Thread[(h/@heads) -> nheads]]
];

{b=B[ω, α t[1]h[1]+ β t[1] h[2] + γ t[2]h[1] + δ t[2]h[2]],
b // J,
b // J // K,
b // K,
b // K // J
}

{b=B[ω, α t[1]h[1]+ β t[2] h[2]],
b // hm[1,2,1],
b // J,
b // J // hm[1,2,1],
b // J // hm[1,2,1] // K
}

{b=B[ω, α t[1]h[1]+ β t[1] h[2] + γ t[2]h[1] + δ t[2]h[2]],
b // hm[1,2,1],
b // J,
b // J // hm[1,2,1],
b // J // hm[1,2,1] // K
}

{b=B[ω, α t[1]h[1]+ β t[1] h[2] + γ t[2]h[1] + δ t[2]h[2]],
b // thswap[1,1],
b // J // thswap[1,1] // K
}

{b=B[ω, α t[1]h[1]+ β t[1] h[2]+δ t[2]h[2]],
b // thswap[1,1],
b // J // thswap[1,1] // K
}

{b=B[ω, β t[1] h[2] + γ t[2]h[1]],
b // thswap[1,1],
b // J // thswap[1,1] // K
}

{b=B[ω, α t[1]h[0] + γ/(1+α (Subscript[c, 1])) t[2] h[1] + β t[1]h[2]],
b // hm[0,1,1],
b // hm[0,1,1] // thswap[1,1],
b // thswap[1,0],
b // thswap[1,0] // thswap[1,1],
b // thswap[1,0] // thswap[1,1] // hm[0,1,1]
}