pressurised(p3) <- on(t1) & pressurised(p1). wet(sink) <- on(t3) & pressurised(p3). flow(d3) <- wet(sink) & unplugged(sink). flow(d1) <- flow(d3).
Here is the minimal set of clauses:
wet(floor) <- wet(sink) & plugged(sink). wet(floor) <- wet(bath) & plugged(bath).
The denotation is given in the following diagram:
Here is the simplest axiomatization:
pressurised(hws) <- on(t4) & pressurised(p2). pressurised(p4) <- pressurised(hws). pressurised(p5) <- pressurised(hws). flow(shower) <- on(t5) & pressurised(p5). wet(sink) <- on(t6) & pressurised(p4).