% File: problem-base
% $Name:  $

%%%%%%%%%%%%%%%%%%       Problem Module       %%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%     Initial Situation    %%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%        COMMON PART       %%%%%%%%%%%%%%%%%%%% 

% Initially, the Helium tanks are pressurized. 
% h(pressurized_by(X,X),0) is true iff tank X is pressurized by X  
% at time 0. 
 
h(pressurized_by(ffh,ffh),0). 
h(pressurized_by(foh,foh),0). 
h(pressurized_by(lfh,lfh),0). 
h(pressurized_by(loh,loh),0). 
h(pressurized_by(rfh,rfh),0). 
h(pressurized_by(roh,roh),0). 

 
% All switches are normally in state GPC initially. 
% h(in_state(D,S),0) is true iff device D is in state S at time 0. 

h(in_state(Sw,gpc),0) :- of_type(Sw,v_switch), 
                         not nh(in_state(Sw,gpc),0).

 
% Valves are all normally closed initially. 

h(in_state(V,closed),0) :- of_type(V,valve),
                           not  h(in_state(V,open),0). 
 
% Except the dummy valves which are always open.

stuck(V,open) :- dummy_valve(V).
