Up
Go up to Question 2

Solution

  1. Finish the axiomatization for the sink in the same manner as the axiomatization for the bath.
    pressurised(p3) <-  on(t1) & pressurised(p1).
    wet(sink) <- on(t3) & pressurised(p3).
    flow(d3) <- wet(sink) & unplugged(sink).
    flow(d1) <- flow(d3).
    
  2. Axiomatize how the floor is wet if the sink overflows or the bath overflows. They overflow if the plug is in and water is flowing in. You may invent new predicates as long as you give their intended interpretation.

    Here is the minimal set of clauses:

    wet(floor) <- wet(sink) & plugged(sink).
    wet(floor) <- wet(bath) & plugged(bath).
    
  3. Suppose there is a hot water system is installed to the left of tap t1. This has another tap in the pipe leading into it, and supplies hot water to the shower and the sink (there are seperate hot and cold water taps for each). Add this to your axiomatization. Give the denotation for all constants and predicate symbols you invent.

    The denotation is given in the following diagram:

    The Plumbing Domain with hot water
     

    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).
    
The file plumbing2.pl contains a full axiomatization.
David Poole

Up