*** [01] <{t001} --> [opened]>!
*** [02] <{t001} --> door>.
*** [03] <(&/,<(*,Self,{t002}) --> hold>,<(*,Self,{t001}) --> at>,(^open,{t001})) =/> <{t001} --> [opened]>>. 
*** [04] <(*, {t002}, {t001}) --> key-of>.
*** [05] <(&|,(^pick,{t002}),<(*,Self,{t002}) --> reachable>) =/> <(*,Self,{t002}) --> hold>>.
*** [06] <(&|, <(*, #x, #y(#x)) --> on>, <(*, Self, #y(#x)) --> at>) =|> <(*, Self, #x) --> reachable>>.
*** [07] <(*, {t002}, {t003}) --> on>. :|: 
*** [08] <{t003} --> desk>.
*** [09] <(^go-to,#1) =/> <(*,Self,#1) --> at>>. 

********** [01 + 03 -> 10]: 
  IN: <{t001} --> [opened]>!
  IN: <(&/,<(*,Self,{t002}) --> hold>,<(*,Self,{t001}) --> at>,(^open,{t001}))=/><{t001} --> [opened]>>.
23
 OUT: (&/,<(*,Self,{t002}) --> hold>,<(*,Self,{t001}) --> at>,(^open,{t001}))! %1.00;0.81%

********** [10 -> 11]:
  IN: (&/,<(*,Self,{t002}) --> hold>,<(*,Self,{t001}) --> at>,(^open,{t001}))!
5
 OUT: <(*,Self,{t002}) --> hold>! %1.00;0.45%

********** [11 + 05 -> 12]:
  IN: <(*,Self,{t002}) --> hold>! 
  IN: <(&/,<(*,Self,{t002}) --> reachable>,(^pick,{t002}))=/><(*,Self,{t002}) --> hold>>. 
5
 OUT: (&/,<(*,Self,{t002}) --> reachable>,(^pick,{t002}))! %1.00;0.81%

********** [12 -> 13]:
  IN: (&/,<(*,Self,{t002}) --> reachable>,(^pick,{t002}))!
13
 OUT: <(*,Self,{t002}) --> reachable>! %1.00;0.45%

********** [13 + 06 -> 14]:
  IN: <(*,Self,{t002}) --> reachable>! 
  IN: <(&|,<(*,#1,#2(#1)) --> on>,<(*,Self,#2(#1)) --> at>)=|><(*,Self,#1) --> reachable>>.
16
 OUT: (&|,<(*,{t002},#1()) --> on>,<(*,Self,#1()) --> at>)! %1.00;0.81% 

********** [07 + 14 -> 15]:
  IN: <(*,{t002},{t003}) --> on>. :|: 
  IN: (&|,<(*,{t002},#1()) --> on>,<(*,Self,#1()) --> at>)! 
25
 OUT: <(*,Self,{t003}) --> at>! %1.00;0.81% 

********** [15 + 09 -> 16]:
  IN: <(*,Self,{t003}) --> at>!
  IN: <(^go-to,#1)=/><(*,Self,#1) --> at>>.
19
 OUT: (^go-to,{t003})! %1.00;0.81% 

********** [16 -> 17]
  IN: (^go-to,{t003})! %1.00;0.90% {0 : 1} 
1
***EXECUTE: ^go-to({t003})
 OUT: (^go-to,{t003}). :|: %1.00;0.90%

********** [17 + 09 -> 18]
  IN: (^go-to,{t003}). :|: 
  IN: <(^go-to,#1)=/><(*,Self,#1) --> at>>. 
22
 OUT: <Self --> (/,at,_,{t003})>. :\: %1.00;0.81% 

********** [18 -> 19]
  IN: <Self --> (/,at,_,{t003})>. :\:
6
 OUT: <{t003} --> (/,at,Self,_)>. :\: %1.00;0.90% 

********** [07 -> 20]
  IN: <(*,{t002},{t003}) --> on>. :|:
6

 OUT: <{t003} --> (/,on,{t002},_)>. :\: %1.00;0.90% 

********** [19 + 20 -> 21]
  IN: <{t003} --> (/,at,Self,_)>. :\:
  IN: <{t003} --> (/,on,{t002},_)>. :\:
2
 OUT: (&|,<#1() --> (/,on,{t002},_)>,<#1() --> (/,at,Self,_)>). :\: %1.00;0.81%

********** [21 -> 22]
  IN: (&|,<#1() --> (/,on,{t002},_)>,<#1() --> (/,at,Self,_)>). :\:
8
 OUT: (&|,<#1() --> (/,at,Self,_)>,<(*,{t002},#1()) --> on>). :\: %1.00;0.90%

********** [22 -> 23]
  IN: (&|,<#1() --> (/,at,Self,_)>,<(*,{t002},#1()) --> on>). :\:
4
 OUT: (&|,<(*,{t002},#1()) --> on>,<(*,Self,#1()) --> at>). :\: %1.00;0.90%

********** [23 + 06 -> 24]
  IN: (&|,<(*,{t002},#1()) --> on>,<(*,Self,#1()) --> at>). :|: 
  IN: <(&|,<(*,#1,#2(#1)) --> on>,<(*,Self,#2(#1)) --> at>) =|> <(*,Self,#1) --> reachable>>.
1
 OUT: <(*,Self,{t002}) --> reachable>. :\: %1.00;0.81%

********** [24 + 12 -> 25]
  IN: <(*,Self,{t002}) --> reachable>. :|: 
  IN: (&/,<(*,Self,{t002}) --> reachable>,(^pick,{t002}))! 
6
 OUT: (^pick,{t002})! %1.00;0.81%

********** [25 -> 26]
  IN: (^pick,{t002})! %1.00;0.90% {0 : 1} 
1
***EXECUTE: ^pick({t002})

 OUT: (^pick,{t002}). :|: %1.00;0.90%

********** [24 + 05 -> 27]
  IN: <(*,Self,{t002}) --> reachable>. :|:
  IN: <(&/,<(*,Self,{t002}) --> reachable>,(^pick,{t002}))=/><(*,Self,{t002}) --> hold>>.
1
 OUT: <(^pick,{t002})=/><(*,Self,{t002}) --> hold>>. :\: %1.00;0.81%

********** [26 + 27 -> 28]
  IN: (^pick,{t002}). :\: 
  IN: <(^pick,{t002})=/><(*,Self,{t002}) --> hold>>. :\: 
1
 OUT: <(*,Self,{t002}) --> hold>. :\: %1.00;0.81%

********** [28 + 10 -> 29]
  IN: <(*,Self,{t002}) --> hold>. :|:  
  IN: (&/,<(*,Self,{t002}) --> hold>,<(*,Self,{t001}) --> at>,(^open,{t001}))! 
7
 OUT: (&/,<(*,Self,{t001}) --> at>,(^open,{t001}))! %1.00;0.81%

********** [03 + 28 -> 30]
  IN: <(&/,<(*,Self,{t002}) --> hold>,<(*,Self,{t001}) --> at>,(^open,{t001}))=/><{t001} --> [opened]>>. %1.00;0.90% {0 : 1} 
  IN: <(*,Self,{t002}) --> hold>. :|: 
2
 OUT: <(&/,<(*,Self,{t001}) --> at>,(^open,{t001}))=/><{t001} --> [opened]>>. :\: %1.00;0.81%

********** [29 -> 31]
  IN: (&/,<(*,Self,{t001}) --> at>,(^open,{t001}))! 
13
 OUT: <(*,Self,{t001}) --> at>! %1.00;0.45%

********** [31 + 09 -> 32]
  IN: <(*,Self,{t001}) --> at>!
  IN: <(^go-to,#1)=/><(*,Self,#1) --> at>>.
19
 OUT: (^go-to,{t001})! %1.00;0.81%

********** [32 -> 33]
  IN: (^go-to,{t001})!  
1
***EXECUTE: ^go-to({t001})

 OUT: (^go-to,{t001}). :|: %1.00;0.90%

********** [33 + 09 -> 34]
  IN: (^go-to,{t001}). :\: 
  IN: <(^go-to,#1)=/><(*,Self,#1) --> at>>. 
12
 OUT: <(*,Self,{t001}) --> at>. :\: %1.00;0.43%

********** [34 + 30 -> 35]
  IN: <(*,Self,{t001}) --> at>. :|: 
  IN: <(&/,<(*,Self,{t001}) --> at>,(^open,{t001}))=/><{t001} --> [opened]>>. :|:
3
 OUT: <(^open,{t001})=/><{t001} --> [opened]>>. :\: %1.00;0.81%

********** [34 + 29 -> 36]
  IN: <(*,Self,{t001}) --> at>. :|:
  IN: (&/,<(*,Self,{t001}) --> at>,(^open,{t001}))! 
6
 OUT: (^open,{t001})! %1.00;0.81%

********** [36 -> 37]
  IN: (^open,{t001})!
1
***EXECUTE: ^open({t001})

 OUT: (^open,{t001}). :|: %1.00;0.90%

********** [35 + 37 -> 38]
  IN: <(^open,{t001})=/><{t001} --> [opened]>>. :|: 
  IN: (^open,{t001}). :|:
1
 OUT: <{t001} --> [opened]>. :|: %1.00;0.81%
