%%%
%%% Authors:
%%%   Tobias Mueller <tmueller@ps.uni-sb.de>
%%%   Joerg Wuertz <wuertz@de.ibm.com>
%%%
%%% Copyright:
%%%   Tobias Mueller, 1998
%%%   Joerg Wuert, 1997
%%%
%%% Last change:
%%%   $Date: 1999/01/21 09:55:48 $ by $Author: schulte $
%%%   $Revision: 1.3 $
%%%
%%% This file is part of Mozart, an implementation
%%% of Oz 3
%%%    http://www.mozart-oz.org
%%%
%%% See the file "LICENSE" or
%%%    http://www.mozart-oz.org/LICENSE.html
%%% for information on usage and redistribution
%%% of this file, and for a DISCLAIMER OF ALL
%%% WARRANTIES.
%%%

problem(
	 professors:
	    profs(
		   'Teacher1': inDays([monday tuesday wednesday])
		   'Teacher2'   : nil
		   'Teacher3'  : inDays([monday tuesday wednesday])
		   'Teacher4': weekInterval(11#00#16#15)
		   'Teacher5'  : inDays([monday tuesday wednesday])
		   'Teacher6'    : nil
		   'Teacher7'  : noT(inDays([monday]))
		   'Teacher8'  : fix(monday#8#15)
		   'Teacher9'   : nil
		   'Teacher10'     : inDays([monday tuesday])
		   'Teacher11': nil
		   'Teacher12' : oR(dayInterval(monday   # 8#00#12#00)
				   dayInterval(tuesday  # 8#00#12#00)
				   dayInterval(wednesday#13#00#16#15))
		   'Teacher13' : nil
		   'Teacher14'    : noT(inDays([monday wednesday]))
		   'Teacher15': inDays([monday tuesday wednesday])
		   'Teacher16'     : nil
		   'Teacher17' : nil
		   'Teacher18'    : nil
		   'Teacher19': weekInterval(12#45#16#15)
		   'Teacher20': nil
		   'Teacher21'	: nil
		   'Teacher22'	: nil
		   'Teacher23': nil
		   'Teacher24'	: nil
		   'Teacher25'	: nil
		   'Teacher26'	: nil
		   'Teacher27': nil
		   'Teacher28'	: nil
		   'Teacher29': nil
		   'Teacher30'	: nil
		   'Teacher31'	: nil
		   'Teacher32'	: nil
		   'Teacher33'	: nil
		   'Teacher34': nil
		 )

	 lectures:
	    lectures(second:
			semester( vm:
				     [
				       l(name:'2.1' dur:6 size:big 
					 professor:'Teacher1')
				       l(name:'2.2' dur:6 size:other
					 professor:'Teacher2')
				       l(name:'2.3' dur:6 size:other
					 professor:'Teacher3')
				     ]
				  v4:
				     [
				       l(name:'2.4.1' dur: 6 size:small
					 professor:'Teacher1')
				       l(name:'2.4.2' dur: 6 size:small
					 professor:'Teacher4')
				     ]
				  v5:
				     [
				       l(name:'2.5.1' dur: 6 size:small
					 professor:'Teacher5')
				       l(name:'2.5.2' dur: 6 size:small
					 professor:'Teacher3')
				     ]
				  v6:
				     [
				       l(name:'2.6' dur: 3 size:big
					 professor:'Teacher6'
					 constraints: fix(friday#8#15))
				     ]
				  v7:
				     [
				       l(name:'2.7' dur: 3 size:big
					constraints: fix(thursday#10#15)
					 professor:'Teacher7')
				     ]
				  v8:
				     [
				       l(name:'2.8.1' dur: 6 size:small
					 professor:'Teacher7')
				       l(name:'2.8.2' dur: 6 size:small
					 professor:'Teacher7')
				     ]
				  v9:
				     [
				       l(name:'2.9' dur: 6 size:big
					 professor:'Teacher8')
				     ]
				  v10:
				     [
				       l(name:'2.10.1' dur: 3 size:big
					 professor:'Teacher9')
				       l(name:'2.10.2' dur: 3 size:other
					 professor:'Teacher10')
				       l(name:'2.10.3' dur: 3 size:other
					 professor:'Teacher11')
				     ] 
				  v13:
				     [
				       l(name:'2.13.1' dur: 6 size:small
					 professor:'Teacher12')
				       l(name:'2.13.2' dur: 6 size:small
					 professor:'Teacher13')
				     ]
				  v14:
				     [
				       l(name:'2.14.1' dur: 6 size:tiny
					 professor:'Teacher14')
				       l(name:'2.14.2' dur: 6 size:tiny
					 professor:'Teacher14')
				     ]
				  v15:
				     [
				       l(name:'2.15.1' dur: 6 size:tiny
					 professor:'Teacher10')
				       l(name:'2.15.2' dur: 6 size:tiny
					 professor:'Teacher5')
				       l(name:'2.15.3' dur: 6 size:tiny
					 professor:'Teacher2')
				       l(name:'2.15.4' dur: 6 size:tiny
					 professor:'Teacher3')
				     ]
				)
		     fourth:
			semester( v1:	    
				     [
				       l(name:'4.1' dur: 6 size: big
					 professor:'Teacher5')
				     ]
				  v2:
				     [
				       l(name:'4.2.1' dur: 6 size: small
					 professor:'Teacher15')
				       l(name:'4.2.2' dur: 6 size: small
					 professor:'Teacher15')
				     ]
				  v3:
				     [
				       l(name:'4.3.1' dur: 3 size: small
					 professor:'Teacher1')
				       l(name:'4.3.2' dur: 3 size: small
					 professor:'Teacher1')
				     ]
				  v4:
				     [
				       l(name:'4.4.1' dur: 6 size: small
					 professor:'Teacher16')
				       l(name:'4.4.2' dur: 6 size: small
					 professor:'Teacher3')
				     ]
				  v5:
				     [
				       l(name:'4.5.1' dur: 6 size: small
					 professor:'Teacher7')
				       l(name:'4.5.2' dur: 6 size: small
					 professor:'Teacher7')
				     ]
				  v6:
				     [
				       l(name:'4.6' dur: 3 size: big
					 professor:'Teacher7')
				     ]
				  v7:
				     [
				       l(name:'4.7.1' dur: 6 size: small
					 professor:'Teacher17')
				       l(name:'4.7.2' dur: 6 size: small
					 professor:'Teacher17')
				     ]
				  v8:
				     [
				       l(name:'4.8.1' dur: 6 size: tiny
					 professor:'Teacher18')
				       l(name:'4.8.2' dur: 6 size: tiny
					 professor:'Teacher2')
				       l(name:'4.8.3' dur: 6 size: tiny
					 professor:'Teacher19')
				       l(name:'4.8.4' dur: 6 size: tiny
					 professor:'Teacher11')
				     ]
				  v10:
				     [
				       l(name:'4.10.1' dur: 6 size: small
					 professor:'Teacher1')
				       l(name:'4.10.2' dur: 6 size: small
					 professor:'Teacher1')
				     ]
				  v11:
				     [
				       l(name:'4.11' dur: 6 size: small
					 professor:'Teacher20')
				     ]
				  v12:
				     [
				       l(name:'4.12.1' dur: 6 size: small
					 professor:'Teacher14')
				       l(name:'4.12.2' dur: 6 size: small
					 professor:'Teacher14')
				     ]
				)
		     sixth:
			semester(
				  v2:
				     [
				       l(name:'6.2.1' dur: 6 size: small
					 professor:'Teacher16'
					 constraints:
					    dayInterval(wednesday#13#00#14#00))
				       l(name:'6.2.2' dur: 6 size: small
					 professor:'Teacher2'
					 constraints:
					    dayInterval(wednesday#13#00#14#00))
				       l(name:'6.2.3' dur: 6 size: small
					 professor:'Teacher26')
				     ]
				  v5:
				     [
				       l(name:'6.5' dur: 6 size: small
					 professor:'Teacher21')
				     ]
				  v6:
				     [
				       l(name:'6.6' dur: 6 size: small
					 professor:'Teacher7')
				     ]
				)
		     eighth:
			semester(
				  v1:
				     [
				       l(name:'8.1' dur: 6 size: big
					 professor:'Teacher1')
				     ]
				  v2:
				     [
				       l(name:'8.2' dur: 6 size: small
					 professor:'Teacher7')
				     ]
				  v3:
				     [
				       l(name:'8.3' dur: 6 size: small
					 professor:'Teacher3')
				     ]
				  v4:
				     [
				       l(name:'8.4' dur: 6 size: small
					 professor:'Teacher17')
				     ]
				  v5:
				     [
				       l(name:'8.5' dur: 6 size: small
					 professor:'Teacher23')
				     ]
				  v6:
				     [
				       l(name:'8.6' dur: 3 size: small
					 professor:'Teacher22')
				     ]
				  v7:
				     % l(name:'8.7.1' dur: 6 size: small
				     %   professor:'Hamm')
				  [
				    l(name:'8.7.2' dur: 6 size: tiny
				      professor:'Teacher2')
				  ]
				  v8:
				     [
				       l(name:'8.8' dur: 6 size: small
					 professor:'Teacher24')
				     ]
				  v9:
				     [
				       l(name:'8.9' dur: 6 size: big
					 professor:'Teacher28')
				     ]
				  v10:
				     [
				       l(name:'8.10' dur: 6 size: small
					 professor:'Teacher14')
				     ]
				  v11:
				     [
				       l(name:'8.11.1' dur: 3 size: tiny
					 professor:'Teacher11'
					 constraints:fix(tuesday#8#15))
				       l(name:'8.11.2' dur: 3 size: other
					 professor:'Teacher2'
					constraints:fix(tuesday#8#15))
				     ]
				  v12:
				     [
				       l(name:'8.12.1' dur: 6 size: tiny
					 professor:'Teacher2'
					 constraints:fix(tuesday#9#15))
				       l(name:'8.12.2' dur: 6 size: other
					 professor:'Teacher11'
					 constraints:fix(tuesday#9#15))
				     ]
				  v13:
				     [
				       l(name:'8.13.1' dur: 6 size: tiny
					 professor:'Teacher6')
				       l(name:'8.13.2' dur: 6 size: tiny
					 professor:'Teacher2'
					 constraints:fix(tuesday#11#15))
				       l(name:'8.13.3' dur: 6 size: other
					 professor:'Teacher11'
					 constraints:fix(tuesday#11#15))
				     ]
				  v14:
				     [
				       l(name:'8.14.1' dur: 3 size: tiny
					 professor:'Teacher9')
				       l(name:'8.14.2' dur: 3 size: tiny
					 professor:'Teacher27'
					 constraints:fix(tuesday#8#15))
				       l(name:'8.14.3' dur: 3 size: other
					 professor:'Teacher29'
					 constraints:fix(tuesday#8#15))
				     ]
				  v15:
				     [
				       l(name:'8.15.1' dur: 6 size: tiny
					 professor:'Teacher9'
					 constraints:fix(tuesday#9#15))
				       l(name:'8.15.2' dur: 6 size: other
					 professor:'Teacher27'
					 constraints:fix(tuesday#9#15))
				     ]
				  v16:
				     [
				       l(name:'8.16.1' dur: 6 size: tiny
					 professor:'Teacher9'
					 constraints:fix(tuesday#11#15))
				       l(name:'8.16.2' dur: 6 size: other
					 professor:'Teacher27'
					 constraints:fix(tuesday#11#15))
				       l(name:'8.16.3' dur: 6 size: tiny
					 professor:'Teacher29')
				     ]
				  v17:
				     [
				       l(name:'8.17.1' dur: 3 size: small
					 professor:'Teacher7')
				       l(name:'8.17.2' dur: 3 size: small
					 professor:'Teacher5'
					 constraints:fix(tuesday#8#15))
				       l(name:'8.17.3' dur: 3 size: other
					 professor:'Teacher3'
					 constraints:fix(tuesday#8#15))
				     ]
				  v18:
				     [
				       l(name:'8.18.1' dur: 6 size: small
					 professor:'Teacher5'
					 constraints:fix(tuesday#9#15))
				       l(name:'8.18.2' dur: 6 size: other
					 professor:'Teacher3'
					 constraints:fix(tuesday#9#15))
				     ]
				  v19:
				     [
				       l(name:'8.19.1' dur: 6 size: small
					 professor:'Teacher7')
				       l(name:'8.19.2' dur: 6 size: other
					 professor:'Teacher5'
					 constraints:fix(tuesday#11#15))
				       l(name:'8.19.3' dur: 6 size: small
					 professor:'Teacher3'
					 constraints:fix(tuesday#11#15))
				     ]
				)
		     medien:
			lectures(
				  v1:
				     [
				       l(name:'M.1' dur: 3 size: other
					 professor:'Teacher30'
					 constraints:fix(tuesday#14#00))
				     ]
				  v8:
				     [
				       l(name:'M.8' dur: 3 size: other
					 professor:'Teacher31'
					 constraints:fix(thursday#16#00))
				     ]
				)
		     fac:
			lectures(
				  v1:
				     [
				       l(name:'F.1' dur: 3 size: small
					 professor:'Teacher5'
					 constraints:fix(monday#16#00))
				     ]
				  v2:
				     [
				       l(name:'F.2.1' dur: 6 size: small
					 professor:'Teacher32')
				       l(name:'F.2.2' dur: 6 size: small
					 professor:'Teacher32')
				     ]
				  v3:
				     [
				       l(name:'F.3' dur: 6 size: small
					 professor:'Teacher12')
				     ]
				  v4:
				     [
				       l(name:'F.4' dur: 6 size: small
					 professor:'Teacher12')
				     ]
				  %% Gitarre is during lunch: omitted here
				  v6:
				     [
				       l(name:'F.6' dur: 6 size: small
					 professor:'Teacher9')
				     ]
				  %% Erlebnis during weekend :-}
				  v10:
				     [
				       l(name:'F.10' dur: 6 size: other
					 professor:'Teacher25')
				     ]
				)
)) 
