circ t(n)->[
cond n<->var a=0+n/var a=t(n>)
a
]
circ s(n)->[
cond n->var b=~((~(t(n)))>)/var b=0
cond (~n)<->var c=s(b)+0/var c=b+1
c
]
circ o(n)->[
cond n->var d=~((~(t(n)))>)/var d=0
cond (~n)<->var e=d+0/var e=o(d)+1
e
]
circ p(a,b)->[
var f=a
cond b->var f=p(s(f),o(b))/var f=f
f
]
circ u(a,b)->[
var g=a
cond b->var g=u(o(g),o(b))/var g=g
g
]
circ m(a,b)->[
var h=a
cond b->var h=p(m(a,o(b)),a)/var h=u(h,a)
h
]
circ q(a)->m(a,a)