Alphabet

+:[proc × proc] ⟶ proc
*:[proc × proc] ⟶ proc
delta:proc
sigma:[data → proc] ⟶ proc

Variables

X:proc
Y:proc
Z:proc
D:data
P:data → proc
Q:data → proc

Rules

+(X, X)X
*(+(X, Y), Z)+(*(X, Z), *(Y, Z))
*(*(X, Y), Z)*(X, *(Y, Z))
+(X, delta)X
*(delta, X)delta
sigmad:data.X)X
+(sigmad:data.P · d), P · D)sigmad:data.P · d)
sigmad:data.+(P · d, Q · d))+(sigmad:data.P · d), sigmad:data.Q · d))
*(sigmad:data.P · d), X)sigmad:data.*(P · d, X))