
p!a!b!v!nil&p!b!a!v!nil&p?v?p?v?nil&a?a?a?a?nil&b?b?b?b?nil ===> X.

	p
=> a!b!v!nil&p!b!a!v!nil&v?p?v?nil&a?a?a?a?nil&b?b?b?b?nil
	a
=> b!v!nil&p!b!a!v!nil&v?p?v?nil&a?a?a?nil&b?b?b?b?nil
	b
=> v!nil&p!b!a!v!nil&v?p?v?nil&a?a?a?nil&b?b?b?nil
	v
=> nil&p!b!a!v!nil&p?v?nil&a?a?a?nil&b?b?b?nil
	p
=> nil&b!a!v!nil&v?nil&a?a?a?nil&b?b?b?nil
	b
=> nil&a!v!nil&v?nil&a?a?a?nil&b?b?nil
	a
=> nil&v!nil&v?nil&a?a?nil&b?b?nil
	v
=> nil&nil&nil&a?a?nil&b?b?nil

X = (nil&nil&nil&a?a?nil&b?b?nil) ? ;

	p
=> p!a!b!v!nil&b!a!v!nil&v?p?v?nil&a?a?a?a?nil&b?b?b?b?nil
	b
=> p!a!b!v!nil&a!v!nil&v?p?v?nil&a?a?a?a?nil&b?b?b?nil
	a
=> p!a!b!v!nil&v!nil&v?p?v?nil&a?a?a?nil&b?b?b?nil
	v
=> p!a!b!v!nil&nil&p?v?nil&a?a?a?nil&b?b?b?nil
	p
=> a!b!v!nil&nil&v?nil&a?a?a?nil&b?b?b?nil
	a
=> b!v!nil&nil&v?nil&a?a?nil&b?b?b?nil
	b
=> v!nil&nil&v?nil&a?a?nil&b?b?nil
	v
=> nil&nil&nil&a?a?nil&b?b?nil

X = (nil&nil&nil&a?a?nil&b?b?nil) ? ;

no


(a?[r]>r![] & a?[r]>r![] & a?[r]>r![])
	& a![b] & (b?[]>nil)
	& a![c] & (c?[]>nil) ===> X.

eg
	a![c]
=> (c![]&a?[c]>c![]&a?[c]>c![])&a![b]&(b?[]>nil)&nil&c?[]>nil
	c![]
=> (nil&a?[c]>c![]&a?[c]>c![])&a![b]&(b?[]>nil)&nil&nil
	a![b]
=> (nil&b![]&a?[b]>b![])&nil&(b?[]>nil)&nil&nil
	b![]
=> (nil&nil&a?[b]>b![])&nil&nil&nil&nil


run sem&printer&client(r1)&client(r2).

sem&printer&client(r1)&client(r2)
	v![]
=> (nil&p?*[]>v![])&printer&client(r1)&print![r2]&r2?[]>print![r2]&r2?[]>p![]
	print![r2]
=> (nil&p?*[]>v![])&((print?*[r]>r![])&r2![])&client(r1)&nil&r2?[]>print![r2]&r2?[]>p![]
	r2![]
=> (nil&p?*[]>v![])&((print?*[r]>r![])&nil)&client(r1)&nil&print![r2]&r2?[]>p![]
	print![r2]
=> (nil&p?*[]>v![])&(((print?*[r]>r![])&r2![])&nil)&client(r1)&nil&nil&r2?[]>p![]
	r2![]
=> (nil&p?*[]>v![])&(((print?*[r]>r![])&nil)&nil)&client(r1)&nil&nil&p![]
	p![]
=> (nil&(p?*[]>v![])&v![])&(((print?*[r]>r![])&nil)&nil)&client(r1)&nil&nil&nil
	v![]
=> (nil&(p?*[]>v![])&nil)&(((print?*[r]>r![])&nil)&nil)&(print![r1]&r1?[]>print![r1]&r1?[]>p![])&nil&nil&nil
	print![r1]
=> (nil&(p?*[]>v![])&nil)&((((print?*[r]>r![])&r1![])&nil)&nil)&(nil&r1?[]>print![r1]&r1?[]>p![])&nil&nil&nil
	r1![]
=> (nil&(p?*[]>v![])&nil)&((((print?*[r]>r![])&nil)&nil)&nil)&(nil&print![r1]&r1?[]>p![])&nil&nil&nil
	print![r1]
=> (nil&(p?*[]>v![])&nil)&(((((print?*[r]>r![])&r1![])&nil)&nil)&nil)&(nil&nil&r1?[]>p![])&nil&nil&nil
	r1![]
=> (nil&(p?*[]>v![])&nil)&(((((print?*[r]>r![])&nil)&nil)&nil)&nil)&(nil&nil&p![])&nil&nil&nil
	p![]
=> (nil&((p?*[]>v![])&v![])&nil)&(((((print?*[r]>r![])&nil)&nil)&nil)&nil)&(nil&nil&nil)&nil&nil&nil

