cwm's logic is somehow failing with lists

I was trying to implement the lambda calculus in n3.

This is because as far as I can tell, it can be done.

However, I am getting internal cwm errors when trying to run it.

the file is http://www.w3.org/2000/10/swap/test/turing/lambda.n3

so.

[syosi@yosi turing]$ cwm 
http://www.w3.org/2000/10/swap/test/turing/lambda.n3 --think
#Processed by Id: cwm.py,v 1.167 2005/01/10 19:15:22 syosi Exp
        #    using base http://www.w3.org/2000/10/swap/test/turing/lambda.n3
            @@@  Not in existentials or variables but now bound: li71
        Traceback (most recent call last):
  File "/home/syosi/SWAP/cwm.py", line 652, in ?
    doCommand()
  File "/home/syosi/SWAP/cwm.py", line 563, in doCommand
    think(workingContext, mode=option_flags["think"])
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 62, in think
    return InferenceTask(knowledgeBase, ruleFormula, mode=mode, 
repeat=1).run()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 222, in run
    return self.runSmart()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 210, in 
runSmart
    total += cy.run()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 351, in run
    found = rule.once()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 443, in once
    total = query.resolve()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 587, in 
resolve
    return self.unify(self.queue, self.variables, self.existentials)
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 827, in unify
    bindings.copy(), nb, evidence = evidence + [reason])
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 827, in unify
    bindings.copy(), nb, evidence = evidence + [reason])
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 715, in unify
    existentials.remove(pair[0]) # Can't match anything anymore, need 
exact match
KeyError: li71


This is not what I expected. Note that that outlup is from cwm cvs, not 
cwm 1.0.

attached is the result of running cwm 
http://www.w3.org/2000/10/swap/test/turing/lambda.n3 --chatty=1000 
--think 2>&1 | cat > /tmp/cwm.log

I don't have time to analyze what is happening now. It's late.

Yosi
    think: rules from {12} added to {12} 
     New Inference task, rules from {12} 
        ----occuringIn:  {3} 
        ----occuringIn:  {li2 binds B} 
       New Rule R1 ============ looking for: 
            {{3}:: li2 rdf:type NeedsFindBinding} 
            {{3}:: E rdf:first li4} 
            {{3}:: E rdf:rest R} 
       => 
            {{li2 binds B}:: li2 binds B} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       R,E,X,B 
        also used in conclusion     E,X,B 
       Existentials in template     R 
      Found rule R1 for statement {{12}:: {3} implies {li2 binds B}}  
        ----occuringIn:  {3} 
        ----occuringIn:  {li7 rdf:type NeedsFindBinding} 
       New Rule R2 ============ looking for: 
            {{3}:: li2 rdf:type NeedsFindBinding} 
            {{3}:: E rdf:first li5} 
            {{3}:: E rdf:rest R} 
       => 
            {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       R,E,X,A,B 
        also used in conclusion     R,X 
       Existentials in template     A,E,B 
      Found rule R2 for statement {{12}:: {3} implies {li7 rdf:type NeedsFindBinding}}  
        ----occuringIn:  {li12 rdf:type NeedsEval} 
        ----occuringIn:  {li12 eval li15} 
       New Rule R3 ============ looking for: 
            {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 
       => 
            {{li12 eval li15}:: li12 eval li15} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       Y,X,E 
        also used in conclusion     E,X,Y 
       Existentials in template      
      Found rule R3 for statement {{12}:: {li12 rdf:type NeedsEval} implies {li12 eval li15}}  
        ----occuringIn:  {li2 rdf:type NeedsEval} 
        ----occuringIn:  {li2 rdf:type NeedsFindBinding} 
       New Rule R4 ============ looking for: 
            {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 
       => 
            {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       E,X 
        also used in conclusion     E,X 
       Existentials in template      
      Found rule R4 for statement {{12}:: {li2 rdf:type NeedsEval} implies {li2 rdf:type NeedsFindBinding}}  
        ----occuringIn:  {2} 
        ----occuringIn:  {li2 eval R} 
       New Rule R5 ============ looking for: 
            {{2}:: li2 rdf:type NeedsEval} 
            {{2}:: li2 binds R} 
       => 
            {{li2 eval R}:: li2 eval R} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       X,E,R 
        also used in conclusion     E,X,R 
       Existentials in template      
      Found rule R5 for statement {{12}:: {2} implies {li2 eval R}}  
        ----occuringIn:  {li17 rdf:type NeedsEval} 
        ----occuringIn:  {li17 eval li15} 
       New Rule R6 ============ looking for: 
            {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 
       => 
            {{li17 eval li15}:: li17 eval li15} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       X,Y,F,E 
        also used in conclusion     E,F,Y,X 
       Existentials in template      
      Found rule R6 for statement {{12}:: {li17 rdf:type NeedsEval} implies {li17 eval li15}}  
        ----occuringIn:  {li18 rdf:type NeedsEval} 
        ----occuringIn:  {2} 
       New Rule R7 ============ looking for: 
            {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 
       => 
            {{2}:: li19 rdf:type NeedsEval} 
            {{2}:: li20 rdf:type NeedsEval} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       B,A,E 
        also used in conclusion     A,E,B 
       Existentials in template      
      Found rule R7 for statement {{12}:: {li18 rdf:type NeedsEval} implies {2}}  
        ----occuringIn:  {3} 
        ----occuringIn:  {li21 rdf:type NeedsApply} 
       New Rule R8 ============ looking for: 
            {{3}:: li18 rdf:type NeedsEval} 
            {{3}:: li19 eval F} 
            {{3}:: li20 eval X} 
       => 
            {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       F,X,E,A,B 
        also used in conclusion     X,F 
       Existentials in template     A,E,B 
      Found rule R8 for statement {{12}:: {3} implies {li21 rdf:type NeedsApply}}  
        ----occuringIn:  {li23 rdf:type NeedsApply} 
        ----occuringIn:  {3} 
       New Rule R9 ============ looking for: 
            {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 
       => 
            {{3}:: _g_L89C6 rdf:first li24} 
            {{3}:: _g_L89C6 rdf:rest E} 
            {{3}:: li26 rdf:type NeedsEval} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       X,Y,A,E 
        also used in conclusion     X,A,Y,E 
       Existentials in template      
      Found rule R9 for statement {{12}:: {li23 rdf:type NeedsApply} implies {3}}  
        ----occuringIn:  {X rdf:type NeedsRun} 
        ----occuringIn:  {li28 rdf:type NeedsEval} 
       New Rule R10 ============ looking for: 
            {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 
       => 
            {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       X 
        also used in conclusion     X 
       Existentials in template      
      Found rule R10 for statement {{12}:: {X rdf:type NeedsRun} implies {li28 rdf:type NeedsEval}}  
        ----occuringIn:  {2} 
        ----occuringIn:  {X results R} 
       New Rule R11 ============ looking for: 
            {{2}:: li28 eval R} 
            {{2}:: X rdf:type NeedsRun} 
       => 
            {{X results R}:: X results R} 
       Universals declared in outer B,F,A,E,Y,X,R 
        mentioned in template       X,R 
        also used in conclusion     R,X 
       Existentials in template      
      Found rule R11 for statement {{12}:: {2} implies {X results R}}  
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 1 
      R1 can affect R5 because {{li2 binds B}:: li2 binds B} can trigger {{2}:: li2 binds R} 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{3}:: li20 eval X} 1 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 1 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 1 
      ...couldn't beccause of  {{li2 binds B}:: li2 binds B} {{2}:: X rdf:type NeedsRun} 1 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{2}:: li2 binds R} 1 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 1 
      R3 can affect R8 because {{li12 eval li15}:: li12 eval li15} can trigger {{3}:: li19 eval F} 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 1 
      ...couldn't beccause of  {{li12 eval li15}:: li12 eval li15} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 1 
      R3 can affect R11 because {{li12 eval li15}:: li12 eval li15} can trigger {{2}:: li28 eval R} 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{2}:: li2 binds R} 1 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 1 
      R5 can affect R8 because {{li2 eval R}:: li2 eval R} can trigger {{3}:: li19 eval F} 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 1 
      ...couldn't beccause of  {{li2 eval R}:: li2 eval R} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 1 
      R5 can affect R11 because {{li2 eval R}:: li2 eval R} can trigger {{2}:: li28 eval R} 
      R2 can affect R1 because {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} can trigger {{3}:: li2 rdf:type NeedsFindBinding} 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{2}:: li2 binds R} 1 
      R2* can affect R2* because {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} can trigger {{3}:: li2 rdf:type NeedsFindBinding} 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{3}:: li20 eval X} 1 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 3 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{li7 rdf:type NeedsFindBinding}:: li7 rdf:type NeedsFindBinding} {{2}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{2}:: li2 binds R} 1 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 1 
      R6 can affect R8 because {{li17 eval li15}:: li17 eval li15} can trigger {{3}:: li19 eval F} 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 1 
      ...couldn't beccause of  {{li17 eval li15}:: li17 eval li15} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 1 
      R6 can affect R11 because {{li17 eval li15}:: li17 eval li15} can trigger {{2}:: li28 eval R} 
      R4 can affect R1 because {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} can trigger {{3}:: li2 rdf:type NeedsFindBinding} 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{2}:: li2 binds R} 1 
      R4 can affect R2* because {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} can trigger {{3}:: li2 rdf:type NeedsFindBinding} 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{3}:: li20 eval X} 1 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 3 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{li2 rdf:type NeedsFindBinding}:: li2 rdf:type NeedsFindBinding} {{2}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{2}:: li2 binds R} 1 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 3 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{3}:: li20 eval X} 1 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 3 
      R8 can affect R9 because {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} can trigger {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{li21 rdf:type NeedsApply}:: li21 rdf:type NeedsApply} {{2}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{2}:: li19 rdf:type NeedsEval} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{2}:: li20 rdf:type NeedsEval} {{3}:: E rdf:rest R} 1 
      R7 can affect R3 because {{2}:: li19 rdf:type NeedsEval} can trigger {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 
      R7 can affect R5 because {{2}:: li19 rdf:type NeedsEval} can trigger {{2}:: li2 rdf:type NeedsEval} 
      ...couldn't beccause of  {{2}:: li19 rdf:type NeedsEval} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{2}:: li20 rdf:type NeedsEval} {{3}:: E rdf:rest R} 1 
      R7 can affect R6 because {{2}:: li19 rdf:type NeedsEval} can trigger {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 
      R7 can affect R4 because {{2}:: li19 rdf:type NeedsEval} can trigger {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 
      R7 can affect R8 because {{2}:: li19 rdf:type NeedsEval} can trigger {{3}:: li18 rdf:type NeedsEval} 
      R7* can affect R7* because {{2}:: li19 rdf:type NeedsEval} can trigger {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 
      ...couldn't beccause of  {{2}:: li19 rdf:type NeedsEval} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 3 
      ...couldn't beccause of  {{2}:: li20 rdf:type NeedsEval} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 3 
      ...couldn't beccause of  {{2}:: li19 rdf:type NeedsEval} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{2}:: li20 rdf:type NeedsEval} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{2}:: li19 rdf:type NeedsEval} {{2}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{2}:: li20 rdf:type NeedsEval} {{2}:: X rdf:type NeedsRun} 3 
      R9 can affect R1 because {{3}:: _g_L89C6 rdf:first li24} can trigger {{3}:: E rdf:first li4} 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 1 
      R9 can affect R3 because {{3}:: li26 rdf:type NeedsEval} can trigger {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{2}:: li2 binds R} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{2}:: li2 binds R} 1 
      R9 can affect R5 because {{3}:: li26 rdf:type NeedsEval} can trigger {{2}:: li2 rdf:type NeedsEval} 
      R9 can affect R2* because {{3}:: _g_L89C6 rdf:first li24} can trigger {{3}:: E rdf:first li5} 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 1 
      R9 can affect R6 because {{3}:: li26 rdf:type NeedsEval} can trigger {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 1 
      R9 can affect R4 because {{3}:: li26 rdf:type NeedsEval} can trigger {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{3}:: li20 eval X} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{3}:: li20 eval X} 1 
      R9 can affect R8 because {{3}:: li26 rdf:type NeedsEval} can trigger {{3}:: li18 rdf:type NeedsEval} 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 1 
      R9 can affect R7* because {{3}:: li26 rdf:type NeedsEval} can trigger {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 1 
      ...couldn't beccause of  {{3}:: li26 rdf:type NeedsEval} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 3 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 1 
      ...couldn't beccause of  {{3}:: li26 rdf:type NeedsEval} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:first li24} {{2}:: X rdf:type NeedsRun} 1 
      ...couldn't beccause of  {{3}:: _g_L89C6 rdf:rest E} {{2}:: X rdf:type NeedsRun} 1 
      ...couldn't beccause of  {{3}:: li26 rdf:type NeedsEval} {{2}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} {{3}:: E rdf:rest R} 1 
      R10 can affect R3 because {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} can trigger {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 
      R10 can affect R5 because {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} can trigger {{2}:: li2 rdf:type NeedsEval} 
      ...couldn't beccause of  {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} {{3}:: E rdf:rest R} 1 
      R10 can affect R6 because {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} can trigger {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 
      R10 can affect R4 because {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} can trigger {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 
      R10 can affect R8 because {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} can trigger {{3}:: li18 rdf:type NeedsEval} 
      R10 can affect R7* because {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} can trigger {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 
      ...couldn't beccause of  {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 3 
      ...couldn't beccause of  {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{li28 rdf:type NeedsEval}:: li28 rdf:type NeedsEval} {{2}:: X rdf:type NeedsRun} 3 
      ...couldn't beccause of  {{X results R}:: X results R} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{li12 rdf:type NeedsEval}:: li12 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{2}:: li2 binds R} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{3}:: E rdf:rest R} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{li17 rdf:type NeedsEval}:: li17 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{li2 rdf:type NeedsEval}:: li2 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{3}:: li20 eval X} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{li18 rdf:type NeedsEval}:: li18 rdf:type NeedsEval} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{li23 rdf:type NeedsApply}:: li23 rdf:type NeedsApply} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{X rdf:type NeedsRun}:: X rdf:type NeedsRun} 1 
      ...couldn't beccause of  {{X results R}:: X results R} {{2}:: X rdf:type NeedsRun} 1 
       Aff:  R1  R3  R5 R2*  R6  R4  R8 R7*  R9 R10 R11 
        R1:   -   -   -   X   -   X   -   -   X   -     
        R3:   -   -   -   -   -   -   -   X   X   X     
        R5:   X   -   -   -   -   -   -   X   X   X     
       R2*:   -   -   -   X   -   X   -   -   X   -     
        R6:   -   -   -   -   -   -   -   X   X   X     
        R4:   -   -   -   -   -   -   -   X   X   X     
        R8:   -   X   X   -   X   -   -   X   X   X     
       R7*:   -   -   -   -   -   -   -   X   X   X     
        R9:   -   -   -   -   -   -   X   -   -   -     
       R10:                                             
       R11:   -   X   X   -   X   -   -   -   -   -     
      R1 indirectly affects [R1, R2*, R3, R4, R5, R6, R7*, R8, R9, R11] and is affected by [R1, R2*, R3, R4, R5, R6, R7*, R8, R9, R10] 
      New cyclic: [R1, R2*, R3, R4, R5, R6, R7*, R8, R9] 
      New cyclic: [R10] 
      New cyclic: [R11] 
        partial topo: [[R11]] 
       partial topo: [[R1, R2*, R3, R4, R5, R6, R7*, R8, R9], [R11]] 
       partial topo: [[R10]] 
      In order:[[R10], [R1, R2*, R3, R4, R5, R6, R7*, R8, R9], [R11]] 
       
       Running cyclic system [R10] 
        Trying rule R10 =================== 
                {12} ::         X rdf:type NeedsRun.
 
         Query: created with 1 terms. (justone=0, wc={12}) 
                 {12} ::         X rdf:type NeedsRun.
 
             Smart in:  [{12}] 
                  rdf:type needs to run: set([]) 
                  X needs to run: set([X]) 
                  NeedsRun needs to run: set([]) 
          setup: 60) short=1, {12}(et([]) ::         X(et([X])? rdf:type(et([]) NeedsRun(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           60) short=1, {12}(et([]) ::         X(et([X])? rdf:type(et([]) NeedsRun(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           60) short=1, {12}(et([]) ::         X(et([X])? rdf:type(et([]) NeedsRun(et([]).
 
          Looking at  60) short=1, {12}(et([]) ::         X(et([X])? rdf:type(et([]) NeedsRun(et([]). 
          ...with vars(X) ExQuVars:() 
           Searching (S=60) 1 for  60) short=1, {12}(et([]) ::         X(et([X])? rdf:type(et([]) NeedsRun(et([]). 
           ...checking {{12}:: li38 rdf:type NeedsRun} 
           nb1 = {X: li38} 
           nb  = {} 
            ...searchDone, now   80) short=1, {12}(et([]) ::         X(et([X])? rdf:type(et([]) NeedsRun(et([]). 
          nbs=[({X: li38}, {{12}:: li38 rdf:type NeedsRun})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {X: li38}) 
            
               new binding:  X -> li38 
           QUERY MATCH COMPLETE with bindings: {X: li38} 
            Concluding tentatively...{X: li38} 
            Not duplicate: {X: li38} 
            Variables regenerated: universal set([]) existential: set([]) 
            Concluding DEFINITELY {li28 rdf:type NeedsEval}->{12}  X->li38  
              Substition of variables {X: li38, {li28 rdf:type NeedsEval}: {12}} in list li28 
              ...yields NEW li39 = [[[lambda, [x], x], [lambda, [y], [y, y]]], []] 
               SubstituteEquals list li39 with {} 
              Add statement (size before 127, 12 statements) to {12}:
 {li39 rdf:type NeedsEval} 
            Added 1, nominal size of store changed from 127 to 128. 
          Nested query returns 1 fo {X: li38} 
          Item state 80, returning total 1 
        Rule try generated 1 new statements 
       
       Running cyclic system [R1, R2*, R3, R4, R5, R6, R7*, R8, R9] 
        Trying rule R1 =================== 
                {13} ::       li2 rdf:type NeedsFindBinding.
        {13} ::         E rdf:first      li4.
        {13} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={13}) 
                 {13} ::       li2 rdf:type NeedsFindBinding.
        {13} ::         E rdf:first      li4.
        {13} ::         E rdf:rest        R.
 
             Smart in:  [{13}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
           ...searchDone, now   80) short=0, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          setup: 80) short=0, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
         match: abandoned, no way for  80) short=0, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
        Rule try generated 0 new statements 
       Rule R1 gave 0. Affects:[R5]. 
        Trying rule R2* =================== 
                {13} ::       li2 rdf:type NeedsFindBinding.
        {13} ::         E rdf:first      li5.
        {13} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={13}) 
                 {13} ::       li2 rdf:type NeedsFindBinding.
        {13} ::         E rdf:first      li5.
        {13} ::         E rdf:rest        R.
 
             Smart in:  [{13}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
           ...searchDone, now   80) short=0, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          setup: 80) short=0, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
         match: abandoned, no way for  80) short=0, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
        Rule try generated 0 new statements 
       Rule R2* gave 0. Affects:[R1, R2*]. 
        Trying rule R3 =================== 
                {13} ::      li12 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={13}) 
                 {13} ::      li12 rdf:type NeedsEval.
 
             Smart in:  [{13}] 
                  rdf:type needs to run: set([]) 
                  li12 needs to run: set([Y, X, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=1, {13}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=1, {13}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {13}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=1, {13}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(X,E,Y) ExQuVars:() 
           Searching (S=45) 1 for  45) short=1, {13}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{13}:: li39 rdf:type NeedsEval} 
            Unifying list [[lambda, [X], Y], E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E, Y]), so far={} 
             Unifying list [lambda, [X], Y] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([X, E, Y]), so far={} 
              Unifying symbol lambda with li31 vars=set([X, E, Y]), so far={} 
           Searching deep  45) short=1, {13}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=1, {13}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
            ...searchDone, now   80) short=1, {13}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[] 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R3 gave 0. Affects:[R8]. 
        Trying rule R4 =================== 
                {13} ::       li2 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={13}) 
                 {13} ::       li2 rdf:type NeedsEval.
 
             Smart in:  [{13}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=1, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=1, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=1, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(X,E) ExQuVars:() 
           Searching (S=45) 1 for  45) short=1, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{13}:: li39 rdf:type NeedsEval} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E]), so far={} 
             Unifying symbol X with li38 vars=set([X, E]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([E]), so far={X: li38} 
              Unifying symbol E with () vars=set([E]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=1, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=1, {13}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[({E: (), X: li38}, {{13}:: li39 rdf:type NeedsEval})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            
               new binding:  E -> () 
               new binding:  X -> li38 
           QUERY MATCH COMPLETE with bindings: {X: li38, E: ()} 
            Concluding tentatively...{X: li38, E: ()} 
            Not duplicate: {X: li38, E: ()} 
            Variables regenerated: universal set([]) existential: set([]) 
            Concluding DEFINITELY E->()  X->li38  {li2 rdf:type NeedsFindBinding}->{13}  
              Substition of variables {X: li38, E: (), {li2 rdf:type NeedsFindBinding}: {13}} in list li2 
              ...yields NEW li39 = [[[lambda, [x], x], [lambda, [y], [y, y]]], []] 
               SubstituteEquals list li39 with {} 
              Add statement (size before 128, 13 statements) to {13}:
 {li39 rdf:type NeedsFindBinding} 
            Added 1, nominal size of store changed from 128 to 129. 
          Nested query returns 1 fo {E: (), X: li38} 
          Item state 80, returning total 1 
        Rule try generated 1 new statements 
       Rule R4 gave 1. Affects:[R1, R2*]. 
       ...rescheduling R1 
       ...rescheduling R2* 
        Trying rule R5 =================== 
                {14} ::       li2 rdf:type NeedsEval.
        {14} ::       li2    binds        R.
 
         Query: created with 2 terms. (justone=0, wc={14}) 
                 {14} ::       li2 rdf:type NeedsEval.
        {14} ::       li2    binds        R.
 
             Smart in:  [{14}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=1, {14}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
                  binds needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  R needs to run: set([R]) 
           ...searchDone, now   80) short=0, {14}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
          setup: 80) short=0, {14}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
         match: abandoned, no way for  80) short=0, {14}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
        Rule try generated 0 new statements 
       Rule R5 gave 0. Affects:[R8]. 
        Trying rule R6 =================== 
                {14} ::      li17 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={14}) 
                 {14} ::      li17 rdf:type NeedsEval.
 
             Smart in:  [{14}] 
                  rdf:type needs to run: set([]) 
                  li17 needs to run: set([X, Y, F, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=1, {14}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=1, {14}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {14}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=1, {14}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(F,X,E,Y) ExQuVars:() 
           Searching (S=45) 1 for  45) short=1, {14}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{14}:: li39 rdf:type NeedsEval} 
            Unifying list [[function, X, Y, E], F] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X, E, Y]), so far={} 
             Unifying list [function, X, Y, E] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X, E, Y]), so far={} 
              Unifying symbol function with li31 vars=set([F, X, E, Y]), so far={} 
           Searching deep  45) short=1, {14}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=1, {14}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
            ...searchDone, now   80) short=1, {14}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[] 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R6 gave 0. Affects:[R8]. 
        Trying rule R7* =================== 
                {14} ::      li18 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={14}) 
                 {14} ::      li18 rdf:type NeedsEval.
 
             Smart in:  [{14}] 
                  rdf:type needs to run: set([]) 
                  li18 needs to run: set([B, A, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=1, {14}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=1, {14}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {14}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=1, {14}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(E,A,B) ExQuVars:() 
           Searching (S=45) 1 for  45) short=1, {14}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{14}:: li39 rdf:type NeedsEval} 
            Unifying list [[A, B], E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([E, A, B]), so far={} 
             Unifying list [A, B] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([E, A, B]), so far={} 
              Unifying symbol A with li31 vars=set([E, A, B]), so far={} 
              Unifying term MATCHED A to li31 
              Unifying list [B] with [[lambda, [y], [y, y]]] vars=set([E, B]), so far={A: li31} 
               Unifying symbol B with li36 vars=set([E, B]), so far={A: li31} 
               Unifying term MATCHED B to li36 
             Unifying list [E] with [[]] vars=set([E]), so far={B: li36, A: li31} 
              Unifying symbol E with () vars=set([E]), so far={B: li36, A: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=1, {14}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). result binding [({A: li31, E: (), B: li36}, None)] 
           nb1 = {A: li31, E: (), B: li36} 
           nb  = {} 
            ...searchDone, now   80) short=1, {14}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[({E: (), A: li31, B: li36}, {{14}:: li39 rdf:type NeedsEval})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), A: li31, B: li36}) 
            
               new binding:  E -> () 
               new binding:  A -> li31 
               new binding:  B -> li36 
           QUERY MATCH COMPLETE with bindings: {A: li31, E: (), B: li36} 
            Concluding tentatively...{A: li31, E: (), B: li36} 
            Not duplicate: {A: li31, E: (), B: li36} 
            Variables regenerated: universal set([]) existential: set([]) 
            Concluding DEFINITELY {2}->{14}  E->()  A->li31  B->li36  
              Substition of variables {E: (), {2}: {14}, A: li31, B: li36} in list li19 
              ...yields NEW li40 = [[lambda, [x], x], []] 
               SubstituteEquals list li40 with {} 
              Add statement (size before 129, 14 statements) to {14}:
 {li40 rdf:type NeedsEval} 
              Substition of variables {E: (), {2}: {15}, A: li31, B: li36} in list li20 
              ...yields NEW li41 = [[lambda, [y], [y, y]], []] 
               SubstituteEquals list li41 with {} 
              Add statement (size before 130, 15 statements) to {15}:
 {li41 rdf:type NeedsEval} 
            Added 2, nominal size of store changed from 129 to 131. 
          Nested query returns 2 fo {E: (), A: li31, B: li36} 
          Item state 80, returning total 2 
        Rule try generated 2 new statements 
       Rule R7* gave 2. Affects:[R3, R4, R5, R6, R7*, R8]. 
       ...rescheduling R3 
       ...rescheduling R4 
       ...rescheduling R5 
       ...rescheduling R6 
       ...rescheduling R7* 
        Trying rule R8 =================== 
                {16} ::      li18 rdf:type NeedsEval.
        {16} ::      li19     eval        F.
        {16} ::      li20     eval        X.
 
         Query: created with 3 terms. (justone=0, wc={16}) 
                 {16} ::      li18 rdf:type NeedsEval.
        {16} ::      li19     eval        F.
        {16} ::      li20     eval        X.
 
             Smart in:  [{16}] 
                  rdf:type needs to run: set([]) 
                  li18 needs to run: set([B, A, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=3, {16}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
                  eval needs to run: set([]) 
                  li19 needs to run: set([E, A]) 
                  F needs to run: set([F]) 
           ...searchDone, now   80) short=0, {16}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?. 
          setup: 80) short=0, {16}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?. 
         match: abandoned, no way for  80) short=0, {16}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?. 
        Rule try generated 0 new statements 
       Rule R8 gave 0. Affects:[R9]. 
        Trying rule R9 =================== 
                {16} ::      li23 rdf:type NeedsApply.
 
         Query: created with 1 terms. (justone=0, wc={16}) 
                 {16} ::      li23 rdf:type NeedsApply.
 
             Smart in:  [{16}] 
                  rdf:type needs to run: set([]) 
                  li23 needs to run: set([X, Y, A, E]) 
                  NeedsApply needs to run: set([]) 
           ...searchDone, now   80) short=0, {16}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]). 
          setup: 80) short=0, {16}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]). 
         match: abandoned, no way for  80) short=0, {16}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]). 
        Rule try generated 0 new statements 
       Rule R9 gave 0. Affects:[R1, R2*, R3, R4, R5, R6, R7*, R8]. 
        Trying rule R1 =================== 
                {16} ::       li2 rdf:type NeedsFindBinding.
        {16} ::         E rdf:first      li4.
        {16} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={16}) 
                 {16} ::       li2 rdf:type NeedsFindBinding.
        {16} ::         E rdf:first      li4.
        {16} ::         E rdf:rest        R.
 
             Smart in:  [{16}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
          setup: 45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
                  rdf:first needs to run: set([]) 
                  E needs to run: set([E]) 
                  li4 needs to run: set([B, X]) 
          setup: 50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
                  rdf:rest needs to run: set([]) 
                  E needs to run: set([E]) 
                  R needs to run: set([R]) 
          setup: 50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=50) 0 for  50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
            ...searchDone, now   30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=50) 0 for  50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
            ...searchDone, now   30) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 
          Looking at  45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=45) 1 for  45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
           ...checking {{16}:: li39 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li38 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li38} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          nbs=[({E: (), X: li38}, {{16}:: li39 rdf:type NeedsFindBinding})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li38 
             binding   30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {16}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li38} 
             Substition of variables {E: (), X: li38} in list li4 
             ...yields NEW li42 = [[[lambda, [x], x], [lambda, [y], [y, y]]], B] 
            ...bound becomes   65) short=7730, {16}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li38  E->() ; 2 new bindings:  E->()  X->li38  . 
            65) short=7730, {16}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {16}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?.
 
           Looking at  65) short=7730, {16}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {16}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li38} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R1 gave 0. Affects:[R5]. 
        Trying rule R2* =================== 
                {16} ::       li2 rdf:type NeedsFindBinding.
        {16} ::         E rdf:first      li5.
        {16} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={16}) 
                 {16} ::       li2 rdf:type NeedsFindBinding.
        {16} ::         E rdf:first      li5.
        {16} ::         E rdf:rest        R.
 
             Smart in:  [{16}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
          setup: 45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
                  rdf:first needs to run: set([]) 
                  E needs to run: set([E]) 
                  li5 needs to run: set([B, A]) 
          setup: 50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
                  rdf:rest needs to run: set([]) 
                  E needs to run: set([E]) 
                  R needs to run: set([R]) 
          setup: 50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=50) 0 for  50) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
            ...searchDone, now   30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=50) 0 for  50) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
            ...searchDone, now   30) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 
          Looking at  45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=45) 1 for  45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
           ...checking {{16}:: li39 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, R]), so far={} 
             Unifying symbol X with li38 vars=set([X, R]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([R]), so far={X: li38} 
              Unifying symbol E with () vars=set([R]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=1, {16}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          nbs=[({E: (), X: li38}, {{16}:: li39 rdf:type NeedsFindBinding})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li38 
             binding   30) short=0, {16}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {16}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {16}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {16}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           query iterating with 2 terms, 1 bindings:  X->li38 ; 2 new bindings:  E->()  X->li38  . 
            65) short=7730, {16}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {16}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?.
 
           Looking at  65) short=7730, {16}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           ...with vars(R) ExQuVars:(A,B) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {16}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li38} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R2* gave 0. Affects:[R1, R2*]. 
        Trying rule R3 =================== 
                {16} ::      li12 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={16}) 
                 {16} ::      li12 rdf:type NeedsEval.
 
             Smart in:  [{16}] 
                  rdf:type needs to run: set([]) 
                  li12 needs to run: set([Y, X, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(X,E,Y) ExQuVars:() 
           Searching (S=45) 3 for  45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{16}:: li39 rdf:type NeedsEval} 
            Unifying list [[lambda, [X], Y], E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E, Y]), so far={} 
             Unifying list [lambda, [X], Y] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([X, E, Y]), so far={} 
              Unifying symbol lambda with li31 vars=set([X, E, Y]), so far={} 
           Searching deep  45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{16}:: li40 rdf:type NeedsEval} 
            Unifying list [[lambda, [X], Y], E] with [[lambda, [x], x], []] vars=set([X, E, Y]), so far={} 
             Unifying list [lambda, [X], Y] with [lambda, [x], x] vars=set([X, E, Y]), so far={} 
              Unifying symbol lambda with lambda vars=set([X, E, Y]), so far={} 
              Unifying list [[X], Y] with [[x], x] vars=set([E, X, Y]), so far={} 
               Unifying list [X] with [x] vars=set([E, X, Y]), so far={} 
                Unifying symbol X with x vars=set([E, X, Y]), so far={} 
                Unifying term MATCHED X to x 
               Unifying list [Y] with [x] vars=set([E, Y]), so far={X: x} 
                Unifying symbol Y with x vars=set([E, Y]), so far={X: x} 
                Unifying term MATCHED Y to x 
             Unifying list [E] with [[]] vars=set([E]), so far={X: x, Y: x} 
              Unifying symbol E with () vars=set([E]), so far={X: x, Y: x} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). result binding [({Y: x, E: (), X: x}, None)] 
           nb1 = {Y: x, E: (), X: x} 
           nb  = {} 
           ...checking {{16}:: li41 rdf:type NeedsEval} 
            Unifying list [[lambda, [X], Y], E] with [[lambda, [y], [y, y]], []] vars=set([X, E, Y]), so far={} 
             Unifying list [lambda, [X], Y] with [lambda, [y], [y, y]] vars=set([X, E, Y]), so far={} 
              Unifying symbol lambda with lambda vars=set([X, E, Y]), so far={} 
              Unifying list [[X], Y] with [[y], [y, y]] vars=set([E, X, Y]), so far={} 
               Unifying list [X] with [y] vars=set([E, X, Y]), so far={} 
                Unifying symbol X with y vars=set([E, X, Y]), so far={} 
                Unifying term MATCHED X to y 
               Unifying list [Y] with [[y, y]] vars=set([E, Y]), so far={X: y} 
                Unifying symbol Y with li33 vars=set([E, Y]), so far={X: y} 
                Unifying term MATCHED Y to li33 
             Unifying list [E] with [[]] vars=set([E]), so far={X: y, Y: li33} 
              Unifying symbol E with () vars=set([E]), so far={X: y, Y: li33} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). result binding [({Y: li33, E: (), X: y}, None)] 
           nb1 = {Y: li33, E: (), X: y} 
           nb  = {} 
            ...searchDone, now   80) short=3, {16}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[({E: (), Y: x, X: x}, {{16}:: li40 rdf:type NeedsEval}), ({E: (), Y: li33, X: y}, {{16}:: li41 rdf:type NeedsEval})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), Y: x, X: x}) 
            
               new binding:  E -> () 
               new binding:  Y -> x 
               new binding:  X -> x 
           QUERY MATCH COMPLETE with bindings: {Y: x, E: (), X: x} 
            Concluding tentatively...{Y: x, E: (), X: x} 
            Not duplicate: {Y: x, E: (), X: x} 
            Variables regenerated: universal set([]) existential: set([]) 
            Concluding DEFINITELY E->()  Y->x  {li12 eval li15}->{16}  X->x  
                Substition of variables {Y: x, E: (), {li12 eval li15}: {16}, X: x} in list li8 
                ...yields NEW li29 = [x] 
               Substition of variables {Y: x, E: (), {li12 eval li15}: {16}, X: x} in list li11 
               ...yields NEW li31 = [lambda, [x], x] 
              Substition of variables {Y: x, E: (), {li12 eval li15}: {16}, X: x} in list li12 
              ...yields NEW li40 = [[lambda, [x], x], []] 
              Substition of variables {Y: x, E: (), {li12 eval li15}: {16}, X: x} in list li15 
              ...yields NEW li45 = [function, x, x, []] 
               SubstituteEquals list li40 with {} 
               SubstituteEquals list li45 with {} 
              Add statement (size before 131, 16 statements) to {16}:
 {li40 eval li45} 
            Added 1, nominal size of store changed from 131 to 132. 
          Nested query returns 1 fo {E: (), Y: x, X: x} 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), Y: li33, X: y}) 
            
               new binding:  E -> () 
               new binding:  Y -> li33 
               new binding:  X -> y 
           QUERY MATCH COMPLETE with bindings: {Y: li33, E: (), X: y} 
            Concluding tentatively...{Y: li33, E: (), X: y} 
            Not duplicate: {Y: li33, E: (), X: y} 
            Variables regenerated: universal set([]) existential: set([]) 
            Concluding DEFINITELY E->()  Y->li33  {li12 eval li15}->{17}  X->y  
                Substition of variables {Y: li33, E: (), {li12 eval li15}: {17}, X: y} in list li8 
                ...yields NEW li32 = [y] 
               Substition of variables {Y: li33, E: (), {li12 eval li15}: {17}, X: y} in list li11 
               ...yields NEW li36 = [lambda, [y], [y, y]] 
              Substition of variables {Y: li33, E: (), {li12 eval li15}: {17}, X: y} in list li12 
              ...yields NEW li41 = [[lambda, [y], [y, y]], []] 
              Substition of variables {Y: li33, E: (), {li12 eval li15}: {17}, X: y} in list li15 
              ...yields NEW li48 = [function, y, [y, y], []] 
               SubstituteEquals list li41 with {} 
               SubstituteEquals list li48 with {} 
              Add statement (size before 132, 17 statements) to {17}:
 {li41 eval li48} 
            Added 1, nominal size of store changed from 132 to 133. 
          Nested query returns 1 fo {E: (), Y: li33, X: y} 
          Item state 80, returning total 2 
        Rule try generated 2 new statements 
       Rule R3 gave 2. Affects:[R8]. 
       ...rescheduling R8 
        Trying rule R4 =================== 
                {18} ::       li2 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={18}) 
                 {18} ::       li2 rdf:type NeedsEval.
 
             Smart in:  [{18}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(X,E) ExQuVars:() 
           Searching (S=45) 3 for  45) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{18}:: li39 rdf:type NeedsEval} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E]), so far={} 
             Unifying symbol X with li38 vars=set([X, E]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([E]), so far={X: li38} 
              Unifying symbol E with () vars=set([E]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
           ...checking {{18}:: li40 rdf:type NeedsEval} 
            Unifying list [X, E] with [[lambda, [x], x], []] vars=set([X, E]), so far={} 
             Unifying symbol X with li31 vars=set([X, E]), so far={} 
             Unifying term MATCHED X to li31 
             Unifying list [E] with [[]] vars=set([E]), so far={X: li31} 
              Unifying symbol E with () vars=set([E]), so far={X: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). result binding [({X: li31, E: ()}, None)] 
           nb1 = {X: li31, E: ()} 
           nb  = {} 
           ...checking {{18}:: li41 rdf:type NeedsEval} 
            Unifying list [X, E] with [[lambda, [y], [y, y]], []] vars=set([X, E]), so far={} 
             Unifying symbol X with li36 vars=set([X, E]), so far={} 
             Unifying term MATCHED X to li36 
             Unifying list [E] with [[]] vars=set([E]), so far={X: li36} 
              Unifying symbol E with () vars=set([E]), so far={X: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). result binding [({X: li36, E: ()}, None)] 
           nb1 = {X: li36, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=3, {18}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[({E: (), X: li38}, {{18}:: li39 rdf:type NeedsEval}), ({E: (), X: li31}, {{18}:: li40 rdf:type NeedsEval}), ({E: (), X: li36}, {{18}:: li41 rdf:type NeedsEval})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            
               new binding:  E -> () 
               new binding:  X -> li38 
           QUERY MATCH COMPLETE with bindings: {X: li38, E: ()} 
            Concluding tentatively...{X: li38, E: ()} 
            @@ Duplicate result: {X: li38, E: ()} 
          Nested query returns 0 fo {E: (), X: li38} 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), X: li31}) 
            
               new binding:  E -> () 
               new binding:  X -> li31 
           QUERY MATCH COMPLETE with bindings: {X: li31, E: ()} 
            Concluding tentatively...{X: li31, E: ()} 
            Not duplicate: {X: li31, E: ()} 
            Variables regenerated: universal set([]) existential: set([]) 
            Concluding DEFINITELY E->()  X->li31  {li2 rdf:type NeedsFindBinding}->{18}  
              Substition of variables {X: li31, E: (), {li2 rdf:type NeedsFindBinding}: {18}} in list li2 
              ...yields NEW li40 = [[lambda, [x], x], []] 
               SubstituteEquals list li40 with {} 
              Add statement (size before 133, 18 statements) to {18}:
 {li40 rdf:type NeedsFindBinding} 
            Added 1, nominal size of store changed from 133 to 134. 
          Nested query returns 1 fo {E: (), X: li31} 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), X: li36}) 
            
               new binding:  E -> () 
               new binding:  X -> li36 
           QUERY MATCH COMPLETE with bindings: {X: li36, E: ()} 
            Concluding tentatively...{X: li36, E: ()} 
            Not duplicate: {X: li36, E: ()} 
            Variables regenerated: universal set([]) existential: set([]) 
            Concluding DEFINITELY E->()  X->li36  {li2 rdf:type NeedsFindBinding}->{19}  
              Substition of variables {X: li36, E: (), {li2 rdf:type NeedsFindBinding}: {19}} in list li2 
              ...yields NEW li41 = [[lambda, [y], [y, y]], []] 
               SubstituteEquals list li41 with {} 
              Add statement (size before 134, 19 statements) to {19}:
 {li41 rdf:type NeedsFindBinding} 
            Added 1, nominal size of store changed from 134 to 135. 
          Nested query returns 1 fo {E: (), X: li36} 
          Item state 80, returning total 2 
        Rule try generated 2 new statements 
       Rule R4 gave 2. Affects:[R1, R2*]. 
       ...rescheduling R1 
       ...rescheduling R2* 
        Trying rule R5 =================== 
                {20} ::       li2 rdf:type NeedsEval.
        {20} ::       li2    binds        R.
 
         Query: created with 2 terms. (justone=0, wc={20}) 
                 {20} ::       li2 rdf:type NeedsEval.
        {20} ::       li2    binds        R.
 
             Smart in:  [{20}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=3, {20}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
                  binds needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  R needs to run: set([R]) 
           ...searchDone, now   80) short=0, {20}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
          setup: 80) short=0, {20}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
         match: abandoned, no way for  80) short=0, {20}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
        Rule try generated 0 new statements 
       Rule R5 gave 0. Affects:[R8]. 
        Trying rule R6 =================== 
                {20} ::      li17 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={20}) 
                 {20} ::      li17 rdf:type NeedsEval.
 
             Smart in:  [{20}] 
                  rdf:type needs to run: set([]) 
                  li17 needs to run: set([X, Y, F, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(F,X,E,Y) ExQuVars:() 
           Searching (S=45) 3 for  45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{20}:: li39 rdf:type NeedsEval} 
            Unifying list [[function, X, Y, E], F] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X, E, Y]), so far={} 
             Unifying list [function, X, Y, E] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X, E, Y]), so far={} 
              Unifying symbol function with li31 vars=set([F, X, E, Y]), so far={} 
           Searching deep  45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{20}:: li40 rdf:type NeedsEval} 
            Unifying list [[function, X, Y, E], F] with [[lambda, [x], x], []] vars=set([F, X, E, Y]), so far={} 
             Unifying list [function, X, Y, E] with [lambda, [x], x] vars=set([F, X, E, Y]), so far={} 
              Unifying symbol function with lambda vars=set([F, X, E, Y]), so far={} 
           Searching deep  45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{20}:: li41 rdf:type NeedsEval} 
            Unifying list [[function, X, Y, E], F] with [[lambda, [y], [y, y]], []] vars=set([F, X, E, Y]), so far={} 
             Unifying list [function, X, Y, E] with [lambda, [y], [y, y]] vars=set([F, X, E, Y]), so far={} 
              Unifying symbol function with lambda vars=set([F, X, E, Y]), so far={} 
           Searching deep  45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
            ...searchDone, now   80) short=3, {20}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[] 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R6 gave 0. Affects:[R8]. 
        Trying rule R7* =================== 
                {20} ::      li18 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={20}) 
                 {20} ::      li18 rdf:type NeedsEval.
 
             Smart in:  [{20}] 
                  rdf:type needs to run: set([]) 
                  li18 needs to run: set([B, A, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(E,A,B) ExQuVars:() 
           Searching (S=45) 3 for  45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{20}:: li39 rdf:type NeedsEval} 
            Unifying list [[A, B], E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([E, A, B]), so far={} 
             Unifying list [A, B] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([E, A, B]), so far={} 
              Unifying symbol A with li31 vars=set([E, A, B]), so far={} 
              Unifying term MATCHED A to li31 
              Unifying list [B] with [[lambda, [y], [y, y]]] vars=set([E, B]), so far={A: li31} 
               Unifying symbol B with li36 vars=set([E, B]), so far={A: li31} 
               Unifying term MATCHED B to li36 
             Unifying list [E] with [[]] vars=set([E]), so far={B: li36, A: li31} 
              Unifying symbol E with () vars=set([E]), so far={B: li36, A: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). result binding [({A: li31, E: (), B: li36}, None)] 
           nb1 = {A: li31, E: (), B: li36} 
           nb  = {} 
           ...checking {{20}:: li40 rdf:type NeedsEval} 
            Unifying list [[A, B], E] with [[lambda, [x], x], []] vars=set([E, A, B]), so far={} 
             Unifying list [A, B] with [lambda, [x], x] vars=set([E, A, B]), so far={} 
              Unifying symbol A with lambda vars=set([E, A, B]), so far={} 
              Unifying term MATCHED A to lambda 
              Unifying list [B] with [[x], x] vars=set([E, B]), so far={A: lambda} 
               Unifying symbol B with li29 vars=set([E, B]), so far={A: lambda} 
               Unifying term MATCHED B to li29 
           Searching deep  45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{20}:: li41 rdf:type NeedsEval} 
            Unifying list [[A, B], E] with [[lambda, [y], [y, y]], []] vars=set([E, A, B]), so far={} 
             Unifying list [A, B] with [lambda, [y], [y, y]] vars=set([E, A, B]), so far={} 
              Unifying symbol A with lambda vars=set([E, A, B]), so far={} 
              Unifying term MATCHED A to lambda 
              Unifying list [B] with [[y], [y, y]] vars=set([E, B]), so far={A: lambda} 
               Unifying symbol B with li32 vars=set([E, B]), so far={A: lambda} 
               Unifying term MATCHED B to li32 
           Searching deep  45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
            ...searchDone, now   80) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[({E: (), A: li31, B: li36}, {{20}:: li39 rdf:type NeedsEval})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), A: li31, B: li36}) 
            
               new binding:  E -> () 
               new binding:  A -> li31 
               new binding:  B -> li36 
           QUERY MATCH COMPLETE with bindings: {A: li31, E: (), B: li36} 
            Concluding tentatively...{A: li31, E: (), B: li36} 
            @@ Duplicate result: {A: li31, E: (), B: li36} 
          Nested query returns 0 fo {E: (), A: li31, B: li36} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R7* gave 0. Affects:[R3, R4, R5, R6, R7*, R8]. 
        Trying rule R8 =================== 
                {20} ::      li18 rdf:type NeedsEval.
        {20} ::      li19     eval        F.
        {20} ::      li20     eval        X.
 
         Query: created with 3 terms. (justone=0, wc={20}) 
                 {20} ::      li18 rdf:type NeedsEval.
        {20} ::      li19     eval        F.
        {20} ::      li20     eval        X.
 
             Smart in:  [{20}] 
                  rdf:type needs to run: set([]) 
                  li18 needs to run: set([B, A, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
                  eval needs to run: set([]) 
                  li19 needs to run: set([E, A]) 
                  F needs to run: set([F]) 
          setup: 45) short=2, {20}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?. 
                  eval needs to run: set([]) 
                  li20 needs to run: set([E, B]) 
                  X needs to run: set([X]) 
          setup: 45) short=2, {20}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {20}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?.
 45) short=2, {20}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {20}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {20}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?.
 45) short=2, {20}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?.
 
          Looking at  45) short=2, {20}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. 
          ...with vars(F,X) ExQuVars:(E,A,B) 
           Searching (S=45) 2 for  45) short=2, {20}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. 
           ...checking {{20}:: li40 eval li45} 
            Unifying list [B, E] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
             Unifying symbol B with li31 vars=set([F, X]), so far={} 
             Unifying term MATCHED B to li31 
             Unifying list [E] with [[]] vars=set([X, F]), so far={B: li31} 
              Unifying symbol E with () vars=set([X, F]), so far={B: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=2, {20}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. result binding [({B: li31, E: ()}, None)] 
           nb1 = {B: li31, E: ()} 
           nb  = {} 
           nb1 = {X: li45} 
           nb  = {E: (), B: li31} 
           ...checking {{20}:: li41 eval li48} 
            Unifying list [B, E] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
             Unifying symbol B with li36 vars=set([F, X]), so far={} 
             Unifying term MATCHED B to li36 
             Unifying list [E] with [[]] vars=set([X, F]), so far={B: li36} 
              Unifying symbol E with () vars=set([X, F]), so far={B: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=2, {20}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. result binding [({B: li36, E: ()}, None)] 
           nb1 = {B: li36, E: ()} 
           nb  = {} 
           nb1 = {X: li48} 
           nb  = {E: (), B: li36} 
            ...searchDone, now   80) short=2, {20}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. 
          nbs=[({E: (), B: li31, X: li45}, {{20}:: li40 eval li45}), ({E: (), B: li36, X: li48}, {{20}:: li41 eval li48})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), B: li31, X: li45}) 
            45) short=3, {20}(et([]) ::      li18(et([A, B, E])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {20}(et([]) ::      li19(et([A, E])?     eval(et([])        F(et([F])?.
 
               new binding:  E -> () 
               new binding:  B -> li31 
               new binding:  X -> li45 
             binding   45) short=3, {20}(et([]) ::      li18(et([A, B, E])? rdf:type(et([]) NeedsEval(et([]). with {E: (), B: li31, X: li45} 
              Substition of variables {E: (), B: li31, X: li45} in list li5 
              ...yields NEW li50 = [A, [lambda, [x], x]] 
             Substition of variables {E: (), B: li31, X: li45} in list li18 
             ...yields NEW li51 = [[A, [lambda, [x], x]], []] 
            ...bound becomes   45) short=3, {20}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]). 
             binding   45) short=2, {20}(et([]) ::      li19(et([A, E])?     eval(et([])        F(et([F])?. with {E: (), B: li31, X: li45} 
             Substition of variables {E: (), B: li31, X: li45} in list li19 
             ...yields NEW li52 = [A, []] 
            ...bound becomes   45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           query iterating with 2 terms, 1 bindings:  X->li45 ; 3 new bindings:  E->()  B->li31  X->li45  . 
            45) short=3, {20}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?.
 
           Looking at  45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           ...with vars(F) ExQuVars:(A) 
            Searching (S=45) 2 for  45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
            ...checking {{20}:: li40 eval li45} 
             Unifying list [A, []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
              Unifying symbol A with li31 vars=set([F, X]), so far={} 
              Unifying term MATCHED A to li31 
              Unifying list [[]] with [[]] vars=set([X, F]), so far={A: li31} 
            Searching deep  45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. result binding [({A: li31}, None)] 
            nb1 = {A: li31} 
            nb  = {} 
            nb1 = {F: li45} 
            nb  = {A: li31} 
            ...checking {{20}:: li41 eval li48} 
             Unifying list [A, []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
              Unifying symbol A with li36 vars=set([F, X]), so far={} 
              Unifying term MATCHED A to li36 
              Unifying list [[]] with [[]] vars=set([X, F]), so far={A: li36} 
            Searching deep  45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. result binding [({A: li36}, None)] 
            nb1 = {A: li36} 
            nb  = {} 
            nb1 = {F: li48} 
            nb  = {A: li36} 
             ...searchDone, now   80) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           nbs=[({F: li45, A: li31}, {{20}:: li40 eval li45}), ({F: li48, A: li36}, {{20}:: li41 eval li48})] 
            QUERY2: called 1 terms, 1 bindings {X: li45}, (new: {F: li45, A: li31}) 
             45) short=3, {20}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]).
 
                new binding:  F -> li45 
                new binding:  A -> li31 
              binding   45) short=3, {20}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]). with {F: li45, A: li31} 
               Substition of variables {F: li45, A: li31} in list li50 
               ...yields NEW li53 = [[lambda, [x], x], [lambda, [x], x]] 
              Substition of variables {F: li45, A: li31} in list li51 
              ...yields NEW li54 = [[[lambda, [x], x], [lambda, [x], x]], []] 
             ...bound becomes   45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
            query iterating with 1 terms, 2 bindings:  F->li45  X->li45 ; 2 new bindings:  F->li45  A->li31  . 
             45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]).
 
            Looking at  45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
            ...with vars() ExQuVars:() 
             Searching (S=45) 3 for  45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{20}:: li39 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [x], x]], []] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [x], x]] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [[lambda, [x], x]] with [[lambda, [y], [y, y]]] vars=set([X, F]), so far={} 
                 Unifying list [lambda, [x], x] with [lambda, [y], [y, y]] vars=set([X, F]), so far={} 
                  Unifying symbol lambda with lambda vars=set([X, F]), so far={} 
                  Unifying list [[x], x] with [[y], [y, y]] vars=set([F, X]), so far={} 
                   Unifying list [x] with [y] vars=set([F, X]), so far={} 
                    Unifying symbol x with y vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{20}:: li40 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [x], x]], []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [x], x]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{20}:: li41 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [x], x]], []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [x], x]] with [lambda, [y], [y, y]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
              ...searchDone, now   80) short=3, {20}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
            nbs=[] 
            Item state 80, returning total 0 
           Nested query returns 0 fo {F: li45, A: li31} 
            QUERY2: called 1 terms, 1 bindings {X: li45}, (new: {F: li48, A: li36}) 
             45) short=3, {20}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]).
 
                new binding:  F -> li48 
                new binding:  A -> li36 
              binding   45) short=3, {20}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]). with {F: li48, A: li36} 
               Substition of variables {F: li48, A: li36} in list li50 
               ...yields NEW li55 = [[lambda, [y], [y, y]], [lambda, [x], x]] 
              Substition of variables {F: li48, A: li36} in list li51 
              ...yields NEW li56 = [[[lambda, [y], [y, y]], [lambda, [x], x]], []] 
             ...bound becomes   45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
            query iterating with 1 terms, 2 bindings:  F->li48  X->li45 ; 2 new bindings:  F->li48  A->li36  . 
             45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]).
 
            Looking at  45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
            ...with vars() ExQuVars:() 
             Searching (S=45) 3 for  45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{20}:: li39 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [x], x]], []] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [x], x]] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                 Unifying symbol lambda with lambda vars=set([F, X]), so far={} 
                 Unifying list [[y], [y, y]] with [[x], x] vars=set([X, F]), so far={} 
                  Unifying list [y] with [x] vars=set([X, F]), so far={} 
                   Unifying symbol y with x vars=set([X, F]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{20}:: li40 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [x], x]], []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [x], x]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{20}:: li41 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [x], x]], []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [x], x]] with [lambda, [y], [y, y]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
              ...searchDone, now   80) short=3, {20}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
            nbs=[] 
            Item state 80, returning total 0 
           Nested query returns 0 fo {F: li48, A: li36} 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), B: li31, X: li45} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), B: li36, X: li48}) 
            45) short=3, {20}(et([]) ::      li18(et([A, B, E])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {20}(et([]) ::      li19(et([A, E])?     eval(et([])        F(et([F])?.
 
               new binding:  E -> () 
               new binding:  B -> li36 
               new binding:  X -> li48 
             binding   45) short=3, {20}(et([]) ::      li18(et([A, B, E])? rdf:type(et([]) NeedsEval(et([]). with {E: (), B: li36, X: li48} 
              Substition of variables {E: (), B: li36, X: li48} in list li5 
              ...yields NEW li57 = [A, [lambda, [y], [y, y]]] 
             Substition of variables {E: (), B: li36, X: li48} in list li18 
             ...yields NEW li58 = [[A, [lambda, [y], [y, y]]], []] 
            ...bound becomes   45) short=3, {20}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]). 
             binding   45) short=2, {20}(et([]) ::      li19(et([A, E])?     eval(et([])        F(et([F])?. with {E: (), B: li36, X: li48} 
             Substition of variables {E: (), B: li36, X: li48} in list li19 
             ...yields NEW li52 = [A, []] 
            ...bound becomes   45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           query iterating with 2 terms, 1 bindings:  X->li48 ; 3 new bindings:  E->()  B->li36  X->li48  . 
            45) short=3, {20}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?.
 
           Looking at  45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           ...with vars(F) ExQuVars:(A) 
            Searching (S=45) 2 for  45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
            ...checking {{20}:: li40 eval li45} 
             Unifying list [A, []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
              Unifying symbol A with li31 vars=set([F, X]), so far={} 
              Unifying term MATCHED A to li31 
              Unifying list [[]] with [[]] vars=set([X, F]), so far={A: li31} 
            Searching deep  45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. result binding [({A: li31}, None)] 
            nb1 = {A: li31} 
            nb  = {} 
            nb1 = {F: li45} 
            nb  = {A: li31} 
            ...checking {{20}:: li41 eval li48} 
             Unifying list [A, []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
              Unifying symbol A with li36 vars=set([F, X]), so far={} 
              Unifying term MATCHED A to li36 
              Unifying list [[]] with [[]] vars=set([X, F]), so far={A: li36} 
            Searching deep  45) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. result binding [({A: li36}, None)] 
            nb1 = {A: li36} 
            nb  = {} 
            nb1 = {F: li48} 
            nb  = {A: li36} 
             ...searchDone, now   80) short=2, {20}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           nbs=[({F: li45, A: li31}, {{20}:: li40 eval li45}), ({F: li48, A: li36}, {{20}:: li41 eval li48})] 
            QUERY2: called 1 terms, 1 bindings {X: li48}, (new: {F: li45, A: li31}) 
             45) short=3, {20}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]).
 
                new binding:  F -> li45 
                new binding:  A -> li31 
              binding   45) short=3, {20}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]). with {F: li45, A: li31} 
               Substition of variables {F: li45, A: li31} in list li57 
               ...yields NEW li38 = [[lambda, [x], x], [lambda, [y], [y, y]]] 
              Substition of variables {F: li45, A: li31} in list li58 
              ...yields NEW li39 = [[[lambda, [x], x], [lambda, [y], [y, y]]], []] 
             ...bound becomes   45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
            query iterating with 1 terms, 2 bindings:  F->li45  X->li48 ; 2 new bindings:  F->li45  A->li31  . 
             45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]).
 
            Looking at  45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
            ...with vars() ExQuVars:() 
             Searching (S=45) 3 for  45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{20}:: li39 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [y], [y, y]]], []] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). result binding [({}, None)] 
             nb1 = {} 
             nb  = {} 
             ...checking {{20}:: li40 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [y], [y, y]]], []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [y], [y, y]]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{20}:: li41 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [y], [y, y]]], []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [y], [y, y]]] with [lambda, [y], [y, y]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
              ...searchDone, now   80) short=3, {20}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
            nbs=[({}, {{20}:: li39 rdf:type NeedsEval})] 
             QUERY2: called 0 terms, 2 bindings {X: li48, F: li45}, (new: {}) 
              
             QUERY MATCH COMPLETE with bindings: {X: li48, F: li45} 
              Concluding tentatively...{X: li48, F: li45} 
              Not duplicate: {X: li48, F: li45} 
              Variables regenerated: universal set([]) existential: set([]) 
              Concluding DEFINITELY F->li45  {li21 rdf:type NeedsApply}->{20}  X->li48  
                Substition of variables {{li21 rdf:type NeedsApply}: {20}, F: li45, X: li48} in list li21 
                ...yields NEW li60 = [[function, x, x, []], [function, y, [y, y], []]] 
                 SubstituteEquals list li60 with {} 
                Add statement (size before 135, 20 statements) to {20}:
 {li60 rdf:type NeedsApply} 
              Added 1, nominal size of store changed from 135 to 136. 
            Nested query returns 1 fo {} 
            Item state 80, returning total 1 
           Nested query returns 1 fo {F: li45, A: li31} 
            QUERY2: called 1 terms, 1 bindings {X: li48}, (new: {F: li48, A: li36}) 
             45) short=3, {21}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]).
 
                new binding:  F -> li48 
                new binding:  A -> li36 
              binding   45) short=3, {21}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]). with {F: li48, A: li36} 
               Substition of variables {F: li48, A: li36} in list li57 
               ...yields NEW li61 = [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] 
              Substition of variables {F: li48, A: li36} in list li58 
              ...yields NEW li62 = [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] 
             ...bound becomes   45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
            query iterating with 1 terms, 2 bindings:  F->li48  X->li48 ; 2 new bindings:  F->li48  A->li36  . 
             45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]).
 
            Looking at  45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
            ...with vars() ExQuVars:() 
             Searching (S=45) 3 for  45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{21}:: li39 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                 Unifying symbol lambda with lambda vars=set([F, X]), so far={} 
                 Unifying list [[y], [y, y]] with [[x], x] vars=set([X, F]), so far={} 
                  Unifying list [y] with [x] vars=set([X, F]), so far={} 
                   Unifying symbol y with x vars=set([X, F]), so far={} 
             Searching deep  45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{21}:: li40 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{21}:: li41 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] with [lambda, [y], [y, y]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
              ...searchDone, now   80) short=3, {21}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
            nbs=[] 
            Item state 80, returning total 0 
           Nested query returns 0 fo {F: li48, A: li36} 
           Item state 80, returning total 1 
          Nested query returns 1 fo {E: (), B: li36, X: li48} 
          Item state 80, returning total 1 
        Rule try generated 1 new statements 
       Rule R8 gave 1. Affects:[R9]. 
       ...rescheduling R9 
        Trying rule R1 =================== 
                {21} ::       li2 rdf:type NeedsFindBinding.
        {21} ::         E rdf:first      li4.
        {21} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={21}) 
                 {21} ::       li2 rdf:type NeedsFindBinding.
        {21} ::         E rdf:first      li4.
        {21} ::         E rdf:rest        R.
 
             Smart in:  [{21}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
          setup: 45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
                  rdf:first needs to run: set([]) 
                  E needs to run: set([E]) 
                  li4 needs to run: set([B, X]) 
          setup: 50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
                  rdf:rest needs to run: set([]) 
                  E needs to run: set([E]) 
                  R needs to run: set([R]) 
          setup: 50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=50) 0 for  50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
            ...searchDone, now   30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=50) 0 for  50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
            ...searchDone, now   30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 
          Looking at  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=45) 3 for  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
           ...checking {{21}:: li39 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li38 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li38} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
           ...checking {{21}:: li40 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [x], x], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li31 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li31 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li31} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li31, E: ()}, None)] 
           nb1 = {X: li31, E: ()} 
           nb  = {} 
           ...checking {{21}:: li41 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [y], [y, y]], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li36 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li36 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li36} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li36, E: ()}, None)] 
           nb1 = {X: li36, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          nbs=[({E: (), X: li38}, {{21}:: li39 rdf:type NeedsFindBinding}), ({E: (), X: li31}, {{21}:: li40 rdf:type NeedsFindBinding}), ({E: (), X: li36}, {{21}:: li41 rdf:type NeedsFindBinding})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li38 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li38} 
             Substition of variables {E: (), X: li38} in list li4 
             ...yields NEW li42 = [[[lambda, [x], x], [lambda, [y], [y, y]]], B] 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li38  E->() ; 2 new bindings:  E->()  X->li38  . 
            65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?.
 
           Looking at  65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li38} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li31}) 
            30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li31 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li31} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li31} 
             Substition of variables {E: (), X: li31} in list li4 
             ...yields NEW li63 = [[lambda, [x], x], B] 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li31  E->() ; 2 new bindings:  E->()  X->li31  . 
            65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?.
 
           Looking at  65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li31} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li36}) 
            30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li36 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li36} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li36} 
             Substition of variables {E: (), X: li36} in list li4 
             ...yields NEW li64 = [[lambda, [y], [y, y]], B] 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li36  E->() ; 2 new bindings:  E->()  X->li36  . 
            65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?.
 
           Looking at  65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li36} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R1 gave 0. Affects:[R5]. 
        Trying rule R2* =================== 
                {21} ::       li2 rdf:type NeedsFindBinding.
        {21} ::         E rdf:first      li5.
        {21} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={21}) 
                 {21} ::       li2 rdf:type NeedsFindBinding.
        {21} ::         E rdf:first      li5.
        {21} ::         E rdf:rest        R.
 
             Smart in:  [{21}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
          setup: 45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
                  rdf:first needs to run: set([]) 
                  E needs to run: set([E]) 
                  li5 needs to run: set([B, A]) 
          setup: 50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
                  rdf:rest needs to run: set([]) 
                  E needs to run: set([E]) 
                  R needs to run: set([R]) 
          setup: 50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=50) 0 for  50) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
            ...searchDone, now   30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=50) 0 for  50) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
            ...searchDone, now   30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 
          Looking at  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=45) 3 for  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
           ...checking {{21}:: li39 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, R]), so far={} 
             Unifying symbol X with li38 vars=set([X, R]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([R]), so far={X: li38} 
              Unifying symbol E with () vars=set([R]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
           ...checking {{21}:: li40 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [x], x], []] vars=set([X, R]), so far={} 
             Unifying symbol X with li31 vars=set([X, R]), so far={} 
             Unifying term MATCHED X to li31 
             Unifying list [E] with [[]] vars=set([R]), so far={X: li31} 
              Unifying symbol E with () vars=set([R]), so far={X: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li31, E: ()}, None)] 
           nb1 = {X: li31, E: ()} 
           nb  = {} 
           ...checking {{21}:: li41 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [y], [y, y]], []] vars=set([X, R]), so far={} 
             Unifying symbol X with li36 vars=set([X, R]), so far={} 
             Unifying term MATCHED X to li36 
             Unifying list [E] with [[]] vars=set([R]), so far={X: li36} 
              Unifying symbol E with () vars=set([R]), so far={X: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li36, E: ()}, None)] 
           nb1 = {X: li36, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=3, {21}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          nbs=[({E: (), X: li38}, {{21}:: li39 rdf:type NeedsFindBinding}), ({E: (), X: li31}, {{21}:: li40 rdf:type NeedsFindBinding}), ({E: (), X: li36}, {{21}:: li41 rdf:type NeedsFindBinding})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li38 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           query iterating with 2 terms, 1 bindings:  X->li38 ; 2 new bindings:  E->()  X->li38  . 
            65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?.
 
           Looking at  65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           ...with vars(R) ExQuVars:(A,B) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li38} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li31}) 
            30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li31 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li31} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?. with {E: (), X: li31} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           query iterating with 2 terms, 1 bindings:  X->li31 ; 2 new bindings:  E->()  X->li31  . 
            65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?.
 
           Looking at  65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           ...with vars(R) ExQuVars:(A,B) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li31} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li36}) 
            30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li36 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li36} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {21}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?. with {E: (), X: li36} 
            ...bound becomes   65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           query iterating with 2 terms, 1 bindings:  X->li36 ; 2 new bindings:  E->()  X->li36  . 
            65) short=7730, {21}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?.
 
           Looking at  65) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           ...with vars(R) ExQuVars:(A,B) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {21}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li36} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R2* gave 0. Affects:[R1, R2*]. 
        Trying rule R9 =================== 
                {21} ::      li23 rdf:type NeedsApply.
 
         Query: created with 1 terms. (justone=0, wc={21}) 
                 {21} ::      li23 rdf:type NeedsApply.
 
             Smart in:  [{21}] 
                  rdf:type needs to run: set([]) 
                  li23 needs to run: set([X, Y, A, E]) 
                  NeedsApply needs to run: set([]) 
          setup: 45) short=1, {21}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=1, {21}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=1, {21}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]).
 
          Looking at  45) short=1, {21}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]). 
          ...with vars(A,X,Y,E) ExQuVars:() 
           Searching (S=45) 1 for  45) short=1, {21}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]). 
           ...checking {{21}:: li60 rdf:type NeedsApply} 
            Unifying list [[function, X, Y, E], A] with [[function, x, x, []], [function, y, [y, y], []]] vars=set([A, X, Y, E]), so far={} 
             Unifying list [function, X, Y, E] with [function, x, x, []] vars=set([A, X, Y, E]), so far={} 
              Unifying symbol function with function vars=set([A, X, Y, E]), so far={} 
              Unifying list [X, Y, E] with [x, x, []] vars=set([X, A, Y, E]), so far={} 
               Unifying symbol X with x vars=set([X, A, Y, E]), so far={} 
               Unifying term MATCHED X to x 
               Unifying list [Y, E] with [x, []] vars=set([A, Y, E]), so far={X: x} 
                Unifying symbol Y with x vars=set([A, Y, E]), so far={X: x} 
                Unifying term MATCHED Y to x 
                Unifying list [E] with [[]] vars=set([A, E]), so far={Y: x, X: x} 
                 Unifying symbol E with () vars=set([A, E]), so far={Y: x, X: x} 
                 Unifying term MATCHED E to () 
             Unifying list [A] with [[function, y, [y, y], []]] vars=set([A]), so far={E: (), Y: x, X: x} 
              Unifying symbol A with li48 vars=set([A]), so far={E: (), Y: x, X: x} 
              Unifying term MATCHED A to li48 
           Searching deep  45) short=1, {21}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]). result binding [({Y: x, A: li48, X: x, E: ()}, None)] 
           nb1 = {Y: x, A: li48, X: x, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=1, {21}(et([]) ::      li23(et([X, Y, A, E])? rdf:type(et([]) NeedsApply(et([]). 
          nbs=[({A: li48, Y: x, X: x, E: ()}, {{21}:: li60 rdf:type NeedsApply})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {A: li48, Y: x, X: x, E: ()}) 
            
               new binding:  A -> li48 
               new binding:  Y -> x 
               new binding:  X -> x 
               new binding:  E -> () 
           QUERY MATCH COMPLETE with bindings: {Y: x, A: li48, X: x, E: ()} 
            Concluding tentatively...{Y: x, A: li48, X: x, E: ()} 
            Not duplicate: {Y: x, A: li48, X: x, E: ()} 
            Variables regenerated: universal set([]) existential: set([_g_L89C6]),exi _g_L89C6 -> _g26 
            Concluding DEFINITELY X->x  Y->x  {3}->{21}  A->li48  E->()  _g_L89C6->_g26  
              Declare existential: _g26 
              Substition of variables {{3}: {21}, A: li48, E: (), Y: x, X: x, _g_L89C6: _g26} in list li24 
              ...yields NEW li65 = [x, [function, y, [y, y], []]] 
               SubstituteEquals list li65 with {} 
              Add statement (size before 136, 21 statements) to {21}:
 {_g26 rdf:first li65} 
              Add statement (size before 137, 22 statements) to {22}:
 {_g26 rdf:rest ()} 
               removing {{22}:: _g26 rdf:first li65} 
               New list was _g26, now li66 = [[x, [function, y, [y, y], []]]] 
               ...New list newBindings {_g26: li66} 
                SubstituteEquals list li38 with {_g26: li66} 
                SubstituteEquals list li39 with {_g26: li66} 
                SubstituteEquals list li39 with {_g26: li66} 
                SubstituteEquals list li40 with {_g26: li66} 
                SubstituteEquals list li41 with {_g26: li66} 
                SubstituteEquals list li40 with {_g26: li66} 
                SubstituteEquals list li45 with {_g26: li66} 
                SubstituteEquals list li41 with {_g26: li66} 
                SubstituteEquals list li48 with {_g26: li66} 
                SubstituteEquals list li40 with {_g26: li66} 
                SubstituteEquals list li41 with {_g26: li66} 
                SubstituteEquals list li60 with {_g26: li66} 
               Substitions {} generated {} 
              Substition of variables {{3}: {21}, A: li48, E: (), Y: x, X: x, _g_L89C6: _g26} in list li26 
              ...yields NEW li68 = [x, _g26] 
               SubstituteEquals list li68 with {_g26: li66} 
               SubstitueEquals list CHANGED li68 -> li70 
              Add statement (size before 137, 21 statements) to {21}:
 {li70 rdf:type NeedsEval} 
                SubstituteEquals list li38 with {li68: li70} 
                SubstituteEquals list li39 with {li68: li70} 
                SubstituteEquals list li39 with {li68: li70} 
                SubstituteEquals list li40 with {li68: li70} 
                SubstituteEquals list li41 with {li68: li70} 
                SubstituteEquals list li40 with {li68: li70} 
                SubstituteEquals list li45 with {li68: li70} 
                SubstituteEquals list li41 with {li68: li70} 
                SubstituteEquals list li48 with {li68: li70} 
                SubstituteEquals list li40 with {li68: li70} 
                SubstituteEquals list li41 with {li68: li70} 
                SubstituteEquals list li60 with {li68: li70} 
               Substitions {} generated {} 
            Added 3, nominal size of store changed from 136 to 138. 
          Nested query returns 3 fo {A: li48, Y: x, X: x, E: ()} 
          Item state 80, returning total 3 
        Rule try generated 3 new statements 
       Rule R9 gave 3. Affects:[R1, R2*, R3, R4, R5, R6, R7*, R8]. 
       ...rescheduling R1 
       ...rescheduling R2* 
       ...rescheduling R3 
       ...rescheduling R4 
       ...rescheduling R5 
       ...rescheduling R6 
       ...rescheduling R7* 
       ...rescheduling R8 
        Trying rule R1 =================== 
                {22} ::       li2 rdf:type NeedsFindBinding.
        {22} ::         E rdf:first      li4.
        {22} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={22}) 
                 {22} ::       li2 rdf:type NeedsFindBinding.
        {22} ::         E rdf:first      li4.
        {22} ::         E rdf:rest        R.
 
             Smart in:  [{22}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
          setup: 45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
                  rdf:first needs to run: set([]) 
                  E needs to run: set([E]) 
                  li4 needs to run: set([B, X]) 
          setup: 50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
                  rdf:rest needs to run: set([]) 
                  E needs to run: set([E]) 
                  R needs to run: set([R]) 
          setup: 50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=50) 0 for  50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
            ...searchDone, now   30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=50) 0 for  50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
            ...searchDone, now   30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 
          Looking at  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=45) 3 for  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
           ...checking {{22}:: li39 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li38 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li38} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
           ...checking {{22}:: li40 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [x], x], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li31 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li31 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li31} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li31, E: ()}, None)] 
           nb1 = {X: li31, E: ()} 
           nb  = {} 
           ...checking {{22}:: li41 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [y], [y, y]], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li36 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li36 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li36} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li36, E: ()}, None)] 
           nb1 = {X: li36, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          nbs=[({E: (), X: li38}, {{22}:: li39 rdf:type NeedsFindBinding}), ({E: (), X: li31}, {{22}:: li40 rdf:type NeedsFindBinding}), ({E: (), X: li36}, {{22}:: li41 rdf:type NeedsFindBinding})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li38 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li38} 
             Substition of variables {E: (), X: li38} in list li4 
             ...yields NEW li42 = [[[lambda, [x], x], [lambda, [y], [y, y]]], B] 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li38  E->() ; 2 new bindings:  E->()  X->li38  . 
            65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?.
 
           Looking at  65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li38} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li31}) 
            30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li31 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li31} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li31} 
             Substition of variables {E: (), X: li31} in list li4 
             ...yields NEW li63 = [[lambda, [x], x], B] 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li31  E->() ; 2 new bindings:  E->()  X->li31  . 
            65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?.
 
           Looking at  65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li31} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li36}) 
            30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li36 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li36} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li36} 
             Substition of variables {E: (), X: li36} in list li4 
             ...yields NEW li64 = [[lambda, [y], [y, y]], B] 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li36  E->() ; 2 new bindings:  E->()  X->li36  . 
            65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?.
 
           Looking at  65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li36} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R1 gave 0. Affects:[R5]. 
        Trying rule R2* =================== 
                {22} ::       li2 rdf:type NeedsFindBinding.
        {22} ::         E rdf:first      li5.
        {22} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={22}) 
                 {22} ::       li2 rdf:type NeedsFindBinding.
        {22} ::         E rdf:first      li5.
        {22} ::         E rdf:rest        R.
 
             Smart in:  [{22}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
          setup: 45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
                  rdf:first needs to run: set([]) 
                  E needs to run: set([E]) 
                  li5 needs to run: set([B, A]) 
          setup: 50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
                  rdf:rest needs to run: set([]) 
                  E needs to run: set([E]) 
                  R needs to run: set([R]) 
          setup: 50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=50) 0 for  50) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
            ...searchDone, now   30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=50) 0 for  50) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
            ...searchDone, now   30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([B, A])?.
 
          Looking at  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          ...with vars(X,R) ExQuVars:(E,A,B) 
           Searching (S=45) 3 for  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
           ...checking {{22}:: li39 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, R]), so far={} 
             Unifying symbol X with li38 vars=set([X, R]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([R]), so far={X: li38} 
              Unifying symbol E with () vars=set([R]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
           ...checking {{22}:: li40 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [x], x], []] vars=set([X, R]), so far={} 
             Unifying symbol X with li31 vars=set([X, R]), so far={} 
             Unifying term MATCHED X to li31 
             Unifying list [E] with [[]] vars=set([R]), so far={X: li31} 
              Unifying symbol E with () vars=set([R]), so far={X: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li31, E: ()}, None)] 
           nb1 = {X: li31, E: ()} 
           nb  = {} 
           ...checking {{22}:: li41 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [y], [y, y]], []] vars=set([X, R]), so far={} 
             Unifying symbol X with li36 vars=set([X, R]), so far={} 
             Unifying term MATCHED X to li36 
             Unifying list [E] with [[]] vars=set([R]), so far={X: li36} 
              Unifying symbol E with () vars=set([R]), so far={X: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li36, E: ()}, None)] 
           nb1 = {X: li36, E: ()} 
           nb  = {} 
            ...searchDone, now   80) short=3, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          nbs=[({E: (), X: li38}, {{22}:: li39 rdf:type NeedsFindBinding}), ({E: (), X: li31}, {{22}:: li40 rdf:type NeedsFindBinding}), ({E: (), X: li36}, {{22}:: li41 rdf:type NeedsFindBinding})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li38 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           query iterating with 2 terms, 1 bindings:  X->li38 ; 2 new bindings:  E->()  X->li38  . 
            65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?.
 
           Looking at  65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           ...with vars(R) ExQuVars:(A,B) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li38} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li31}) 
            30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li31 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li31} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?. with {E: (), X: li31} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           query iterating with 2 terms, 1 bindings:  X->li31 ; 2 new bindings:  E->()  X->li31  . 
            65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?.
 
           Looking at  65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           ...with vars(R) ExQuVars:(A,B) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li31} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li36}) 
            30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li36 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li36} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {22}(et([]) ::         E(et([E])? rdf:first(et([])      li5(et([A, B])?. with {E: (), X: li36} 
            ...bound becomes   65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           query iterating with 2 terms, 1 bindings:  X->li36 ; 2 new bindings:  E->()  X->li36  . 
            65) short=7730, {22}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?.
 
           Looking at  65) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           ...with vars(R) ExQuVars:(A,B) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {22}(et([]) ::        ()(et([]) rdf:first(et([])      li5(et([A, B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li36} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R2* gave 0. Affects:[R1, R2*]. 
        Trying rule R3 =================== 
                {22} ::      li12 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={22}) 
                 {22} ::      li12 rdf:type NeedsEval.
 
             Smart in:  [{22}] 
                  rdf:type needs to run: set([]) 
                  li12 needs to run: set([Y, X, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(X,E,Y) ExQuVars:() 
           Searching (S=45) 4 for  45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{22}:: li39 rdf:type NeedsEval} 
            Unifying list [[lambda, [X], Y], E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E, Y]), so far={} 
             Unifying list [lambda, [X], Y] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([X, E, Y]), so far={} 
              Unifying symbol lambda with li31 vars=set([X, E, Y]), so far={} 
           Searching deep  45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{22}:: li40 rdf:type NeedsEval} 
            Unifying list [[lambda, [X], Y], E] with [[lambda, [x], x], []] vars=set([X, E, Y]), so far={} 
             Unifying list [lambda, [X], Y] with [lambda, [x], x] vars=set([X, E, Y]), so far={} 
              Unifying symbol lambda with lambda vars=set([X, E, Y]), so far={} 
              Unifying list [[X], Y] with [[x], x] vars=set([E, X, Y]), so far={} 
               Unifying list [X] with [x] vars=set([E, X, Y]), so far={} 
                Unifying symbol X with x vars=set([E, X, Y]), so far={} 
                Unifying term MATCHED X to x 
               Unifying list [Y] with [x] vars=set([E, Y]), so far={X: x} 
                Unifying symbol Y with x vars=set([E, Y]), so far={X: x} 
                Unifying term MATCHED Y to x 
             Unifying list [E] with [[]] vars=set([E]), so far={X: x, Y: x} 
              Unifying symbol E with () vars=set([E]), so far={X: x, Y: x} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). result binding [({Y: x, E: (), X: x}, None)] 
           nb1 = {Y: x, E: (), X: x} 
           nb  = {} 
           ...checking {{22}:: li41 rdf:type NeedsEval} 
            Unifying list [[lambda, [X], Y], E] with [[lambda, [y], [y, y]], []] vars=set([X, E, Y]), so far={} 
             Unifying list [lambda, [X], Y] with [lambda, [y], [y, y]] vars=set([X, E, Y]), so far={} 
              Unifying symbol lambda with lambda vars=set([X, E, Y]), so far={} 
              Unifying list [[X], Y] with [[y], [y, y]] vars=set([E, X, Y]), so far={} 
               Unifying list [X] with [y] vars=set([E, X, Y]), so far={} 
                Unifying symbol X with y vars=set([E, X, Y]), so far={} 
                Unifying term MATCHED X to y 
               Unifying list [Y] with [[y, y]] vars=set([E, Y]), so far={X: y} 
                Unifying symbol Y with li33 vars=set([E, Y]), so far={X: y} 
                Unifying term MATCHED Y to li33 
             Unifying list [E] with [[]] vars=set([E]), so far={X: y, Y: li33} 
              Unifying symbol E with () vars=set([E]), so far={X: y, Y: li33} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). result binding [({Y: li33, E: (), X: y}, None)] 
           nb1 = {Y: li33, E: (), X: y} 
           nb  = {} 
           ...checking {{22}:: li70 rdf:type NeedsEval} 
            Unifying list [[lambda, [X], Y], E] with [x, [[x, [function, y, [y, y], []]]]] vars=set([X, E, Y]), so far={} 
             Unifying list [lambda, [X], Y] with x vars=set([X, E, Y]), so far={} 
           Searching deep  45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
            ...searchDone, now   80) short=4, {22}(et([]) ::      li12(et([Y, X, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[({E: (), Y: x, X: x}, {{22}:: li40 rdf:type NeedsEval}), ({E: (), Y: li33, X: y}, {{22}:: li41 rdf:type NeedsEval})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), Y: x, X: x}) 
            
               new binding:  E -> () 
               new binding:  Y -> x 
               new binding:  X -> x 
           QUERY MATCH COMPLETE with bindings: {Y: x, E: (), X: x} 
            Concluding tentatively...{Y: x, E: (), X: x} 
            @@ Duplicate result: {Y: x, E: (), X: x} 
          Nested query returns 0 fo {E: (), Y: x, X: x} 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), Y: li33, X: y}) 
            
               new binding:  E -> () 
               new binding:  Y -> li33 
               new binding:  X -> y 
           QUERY MATCH COMPLETE with bindings: {Y: li33, E: (), X: y} 
            Concluding tentatively...{Y: li33, E: (), X: y} 
            @@ Duplicate result: {Y: li33, E: (), X: y} 
          Nested query returns 0 fo {E: (), Y: li33, X: y} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R3 gave 0. Affects:[R8]. 
        Trying rule R4 =================== 
                {22} ::       li2 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={22}) 
                 {22} ::       li2 rdf:type NeedsEval.
 
             Smart in:  [{22}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(X,E) ExQuVars:() 
           Searching (S=45) 4 for  45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{22}:: li39 rdf:type NeedsEval} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E]), so far={} 
             Unifying symbol X with li38 vars=set([X, E]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([E]), so far={X: li38} 
              Unifying symbol E with () vars=set([E]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
           ...checking {{22}:: li40 rdf:type NeedsEval} 
            Unifying list [X, E] with [[lambda, [x], x], []] vars=set([X, E]), so far={} 
             Unifying symbol X with li31 vars=set([X, E]), so far={} 
             Unifying term MATCHED X to li31 
             Unifying list [E] with [[]] vars=set([E]), so far={X: li31} 
              Unifying symbol E with () vars=set([E]), so far={X: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). result binding [({X: li31, E: ()}, None)] 
           nb1 = {X: li31, E: ()} 
           nb  = {} 
           ...checking {{22}:: li41 rdf:type NeedsEval} 
            Unifying list [X, E] with [[lambda, [y], [y, y]], []] vars=set([X, E]), so far={} 
             Unifying symbol X with li36 vars=set([X, E]), so far={} 
             Unifying term MATCHED X to li36 
             Unifying list [E] with [[]] vars=set([E]), so far={X: li36} 
              Unifying symbol E with () vars=set([E]), so far={X: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). result binding [({X: li36, E: ()}, None)] 
           nb1 = {X: li36, E: ()} 
           nb  = {} 
           ...checking {{22}:: li70 rdf:type NeedsEval} 
            Unifying list [X, E] with [x, [[x, [function, y, [y, y], []]]]] vars=set([X, E]), so far={} 
             Unifying symbol X with x vars=set([X, E]), so far={} 
             Unifying term MATCHED X to x 
             Unifying list [E] with [[[x, [function, y, [y, y], []]]]] vars=set([E]), so far={X: x} 
              Unifying symbol E with li66 vars=set([E]), so far={X: x} 
              Unifying term MATCHED E to li66 
           Searching deep  45) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). result binding [({X: x, E: li66}, None)] 
           nb1 = {X: x, E: li66} 
           nb  = {} 
            ...searchDone, now   80) short=4, {22}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[({E: (), X: li38}, {{22}:: li39 rdf:type NeedsEval}), ({E: (), X: li31}, {{22}:: li40 rdf:type NeedsEval}), ({E: (), X: li36}, {{22}:: li41 rdf:type NeedsEval}), ({E: li66, X: x}, {{22}:: li70 rdf:type NeedsEval})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            
               new binding:  E -> () 
               new binding:  X -> li38 
           QUERY MATCH COMPLETE with bindings: {X: li38, E: ()} 
            Concluding tentatively...{X: li38, E: ()} 
            @@ Duplicate result: {X: li38, E: ()} 
          Nested query returns 0 fo {E: (), X: li38} 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), X: li31}) 
            
               new binding:  E -> () 
               new binding:  X -> li31 
           QUERY MATCH COMPLETE with bindings: {X: li31, E: ()} 
            Concluding tentatively...{X: li31, E: ()} 
            @@ Duplicate result: {X: li31, E: ()} 
          Nested query returns 0 fo {E: (), X: li31} 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), X: li36}) 
            
               new binding:  E -> () 
               new binding:  X -> li36 
           QUERY MATCH COMPLETE with bindings: {X: li36, E: ()} 
            Concluding tentatively...{X: li36, E: ()} 
            @@ Duplicate result: {X: li36, E: ()} 
          Nested query returns 0 fo {E: (), X: li36} 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: li66, X: x}) 
            
               new binding:  E -> li66 
               new binding:  X -> x 
           QUERY MATCH COMPLETE with bindings: {X: x, E: li66} 
            Concluding tentatively...{X: x, E: li66} 
            Not duplicate: {X: x, E: li66} 
            Variables regenerated: universal set([]) existential: set([]) 
            Concluding DEFINITELY E->li66  X->x  {li2 rdf:type NeedsFindBinding}->{22}  
              Substition of variables {X: x, E: li66, {li2 rdf:type NeedsFindBinding}: {22}} in list li2 
              ...yields NEW li70 = [x, [[x, [function, y, [y, y], []]]]] 
               SubstituteEquals list li70 with {li68: li70, _g26: li66} 
              Add statement (size before 138, 22 statements) to {22}:
 {li70 rdf:type NeedsFindBinding} 
            Added 1, nominal size of store changed from 138 to 139. 
          Nested query returns 1 fo {E: li66, X: x} 
          Item state 80, returning total 1 
        Rule try generated 1 new statements 
       Rule R4 gave 1. Affects:[R1, R2*]. 
       ...rescheduling R1 
       ...rescheduling R2* 
        Trying rule R5 =================== 
                {23} ::       li2 rdf:type NeedsEval.
        {23} ::       li2    binds        R.
 
         Query: created with 2 terms. (justone=0, wc={23}) 
                 {23} ::       li2 rdf:type NeedsEval.
        {23} ::       li2    binds        R.
 
             Smart in:  [{23}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsEval(et([]). 
                  binds needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  R needs to run: set([R]) 
           ...searchDone, now   80) short=0, {23}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
          setup: 80) short=0, {23}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
         match: abandoned, no way for  80) short=0, {23}(et([]) ::       li2(et([E, X])?    binds(et([])        R(et([R])?. 
        Rule try generated 0 new statements 
       Rule R5 gave 0. Affects:[R8]. 
        Trying rule R6 =================== 
                {23} ::      li17 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={23}) 
                 {23} ::      li17 rdf:type NeedsEval.
 
             Smart in:  [{23}] 
                  rdf:type needs to run: set([]) 
                  li17 needs to run: set([X, Y, F, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(F,X,E,Y) ExQuVars:() 
           Searching (S=45) 4 for  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{23}:: li39 rdf:type NeedsEval} 
            Unifying list [[function, X, Y, E], F] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X, E, Y]), so far={} 
             Unifying list [function, X, Y, E] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X, E, Y]), so far={} 
              Unifying symbol function with li31 vars=set([F, X, E, Y]), so far={} 
           Searching deep  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{23}:: li40 rdf:type NeedsEval} 
            Unifying list [[function, X, Y, E], F] with [[lambda, [x], x], []] vars=set([F, X, E, Y]), so far={} 
             Unifying list [function, X, Y, E] with [lambda, [x], x] vars=set([F, X, E, Y]), so far={} 
              Unifying symbol function with lambda vars=set([F, X, E, Y]), so far={} 
           Searching deep  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{23}:: li41 rdf:type NeedsEval} 
            Unifying list [[function, X, Y, E], F] with [[lambda, [y], [y, y]], []] vars=set([F, X, E, Y]), so far={} 
             Unifying list [function, X, Y, E] with [lambda, [y], [y, y]] vars=set([F, X, E, Y]), so far={} 
              Unifying symbol function with lambda vars=set([F, X, E, Y]), so far={} 
           Searching deep  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{23}:: li70 rdf:type NeedsEval} 
            Unifying list [[function, X, Y, E], F] with [x, [[x, [function, y, [y, y], []]]]] vars=set([F, X, E, Y]), so far={} 
             Unifying list [function, X, Y, E] with x vars=set([F, X, E, Y]), so far={} 
           Searching deep  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
            ...searchDone, now   80) short=4, {23}(et([]) ::      li17(et([X, Y, F, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[] 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R6 gave 0. Affects:[R8]. 
        Trying rule R7* =================== 
                {23} ::      li18 rdf:type NeedsEval.
 
         Query: created with 1 terms. (justone=0, wc={23}) 
                 {23} ::      li18 rdf:type NeedsEval.
 
             Smart in:  [{23}] 
                  rdf:type needs to run: set([]) 
                  li18 needs to run: set([B, A, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          QUERY2: called 1 terms, 0 bindings {}, (new: {}) 
           45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 
          query iterating with 1 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 
          Looking at  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          ...with vars(E,A,B) ExQuVars:() 
           Searching (S=45) 4 for  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{23}:: li39 rdf:type NeedsEval} 
            Unifying list [[A, B], E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([E, A, B]), so far={} 
             Unifying list [A, B] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([E, A, B]), so far={} 
              Unifying symbol A with li31 vars=set([E, A, B]), so far={} 
              Unifying term MATCHED A to li31 
              Unifying list [B] with [[lambda, [y], [y, y]]] vars=set([E, B]), so far={A: li31} 
               Unifying symbol B with li36 vars=set([E, B]), so far={A: li31} 
               Unifying term MATCHED B to li36 
             Unifying list [E] with [[]] vars=set([E]), so far={B: li36, A: li31} 
              Unifying symbol E with () vars=set([E]), so far={B: li36, A: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). result binding [({A: li31, E: (), B: li36}, None)] 
           nb1 = {A: li31, E: (), B: li36} 
           nb  = {} 
           ...checking {{23}:: li40 rdf:type NeedsEval} 
            Unifying list [[A, B], E] with [[lambda, [x], x], []] vars=set([E, A, B]), so far={} 
             Unifying list [A, B] with [lambda, [x], x] vars=set([E, A, B]), so far={} 
              Unifying symbol A with lambda vars=set([E, A, B]), so far={} 
              Unifying term MATCHED A to lambda 
              Unifying list [B] with [[x], x] vars=set([E, B]), so far={A: lambda} 
               Unifying symbol B with li29 vars=set([E, B]), so far={A: lambda} 
               Unifying term MATCHED B to li29 
           Searching deep  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{23}:: li41 rdf:type NeedsEval} 
            Unifying list [[A, B], E] with [[lambda, [y], [y, y]], []] vars=set([E, A, B]), so far={} 
             Unifying list [A, B] with [lambda, [y], [y, y]] vars=set([E, A, B]), so far={} 
              Unifying symbol A with lambda vars=set([E, A, B]), so far={} 
              Unifying term MATCHED A to lambda 
              Unifying list [B] with [[y], [y, y]] vars=set([E, B]), so far={A: lambda} 
               Unifying symbol B with li32 vars=set([E, B]), so far={A: lambda} 
               Unifying term MATCHED B to li32 
           Searching deep  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
           ...checking {{23}:: li70 rdf:type NeedsEval} 
            Unifying list [[A, B], E] with [x, [[x, [function, y, [y, y], []]]]] vars=set([E, A, B]), so far={} 
             Unifying list [A, B] with x vars=set([E, A, B]), so far={} 
           Searching deep  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
           ......fail:  45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
            ...searchDone, now   80) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
          nbs=[({E: (), A: li31, B: li36}, {{23}:: li39 rdf:type NeedsEval})] 
           QUERY2: called 0 terms, 0 bindings {}, (new: {E: (), A: li31, B: li36}) 
            
               new binding:  E -> () 
               new binding:  A -> li31 
               new binding:  B -> li36 
           QUERY MATCH COMPLETE with bindings: {A: li31, E: (), B: li36} 
            Concluding tentatively...{A: li31, E: (), B: li36} 
            @@ Duplicate result: {A: li31, E: (), B: li36} 
          Nested query returns 0 fo {E: (), A: li31, B: li36} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R7* gave 0. Affects:[R3, R4, R5, R6, R7*, R8]. 
        Trying rule R8 =================== 
                {23} ::      li18 rdf:type NeedsEval.
        {23} ::      li19     eval        F.
        {23} ::      li20     eval        X.
 
         Query: created with 3 terms. (justone=0, wc={23}) 
                 {23} ::      li18 rdf:type NeedsEval.
        {23} ::      li19     eval        F.
        {23} ::      li20     eval        X.
 
             Smart in:  [{23}] 
                  rdf:type needs to run: set([]) 
                  li18 needs to run: set([B, A, E]) 
                  NeedsEval needs to run: set([]) 
          setup: 45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]). 
                  eval needs to run: set([]) 
                  li19 needs to run: set([E, A]) 
                  F needs to run: set([F]) 
          setup: 45) short=2, {23}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?. 
                  eval needs to run: set([]) 
                  li20 needs to run: set([E, B]) 
                  X needs to run: set([X]) 
          setup: 45) short=2, {23}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {23}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?.
 45) short=2, {23}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=4, {23}(et([]) ::      li18(et([B, A, E])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {23}(et([]) ::      li19(et([E, A])?     eval(et([])        F(et([F])?.
 45) short=2, {23}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?.
 
          Looking at  45) short=2, {23}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. 
          ...with vars(F,X) ExQuVars:(E,A,B) 
           Searching (S=45) 2 for  45) short=2, {23}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. 
           ...checking {{23}:: li40 eval li45} 
            Unifying list [B, E] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
             Unifying symbol B with li31 vars=set([F, X]), so far={} 
             Unifying term MATCHED B to li31 
             Unifying list [E] with [[]] vars=set([X, F]), so far={B: li31} 
              Unifying symbol E with () vars=set([X, F]), so far={B: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=2, {23}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. result binding [({B: li31, E: ()}, None)] 
           nb1 = {B: li31, E: ()} 
           nb  = {} 
           nb1 = {X: li45} 
           nb  = {E: (), B: li31} 
           ...checking {{23}:: li41 eval li48} 
            Unifying list [B, E] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
             Unifying symbol B with li36 vars=set([F, X]), so far={} 
             Unifying term MATCHED B to li36 
             Unifying list [E] with [[]] vars=set([X, F]), so far={B: li36} 
              Unifying symbol E with () vars=set([X, F]), so far={B: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=2, {23}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. result binding [({B: li36, E: ()}, None)] 
           nb1 = {B: li36, E: ()} 
           nb  = {} 
           nb1 = {X: li48} 
           nb  = {E: (), B: li36} 
            ...searchDone, now   80) short=2, {23}(et([]) ::      li20(et([E, B])?     eval(et([])        X(et([X])?. 
          nbs=[({E: (), B: li31, X: li45}, {{23}:: li40 eval li45}), ({E: (), B: li36, X: li48}, {{23}:: li41 eval li48})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), B: li31, X: li45}) 
            45) short=4, {23}(et([]) ::      li18(et([A, B, E])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {23}(et([]) ::      li19(et([A, E])?     eval(et([])        F(et([F])?.
 
               new binding:  E -> () 
               new binding:  B -> li31 
               new binding:  X -> li45 
             binding   45) short=4, {23}(et([]) ::      li18(et([A, B, E])? rdf:type(et([]) NeedsEval(et([]). with {E: (), B: li31, X: li45} 
              Substition of variables {E: (), B: li31, X: li45} in list li5 
              ...yields NEW li50 = [A, [lambda, [x], x]] 
             Substition of variables {E: (), B: li31, X: li45} in list li18 
             ...yields NEW li51 = [[A, [lambda, [x], x]], []] 
            ...bound becomes   45) short=4, {23}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]). 
             binding   45) short=2, {23}(et([]) ::      li19(et([A, E])?     eval(et([])        F(et([F])?. with {E: (), B: li31, X: li45} 
             Substition of variables {E: (), B: li31, X: li45} in list li19 
             ...yields NEW li52 = [A, []] 
            ...bound becomes   45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           query iterating with 2 terms, 1 bindings:  X->li45 ; 3 new bindings:  E->()  B->li31  X->li45  . 
            45) short=4, {23}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?.
 
           Looking at  45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           ...with vars(F) ExQuVars:(A) 
            Searching (S=45) 2 for  45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
            ...checking {{23}:: li40 eval li45} 
             Unifying list [A, []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
              Unifying symbol A with li31 vars=set([F, X]), so far={} 
              Unifying term MATCHED A to li31 
              Unifying list [[]] with [[]] vars=set([X, F]), so far={A: li31} 
            Searching deep  45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. result binding [({A: li31}, None)] 
            nb1 = {A: li31} 
            nb  = {} 
            nb1 = {F: li45} 
            nb  = {A: li31} 
            ...checking {{23}:: li41 eval li48} 
             Unifying list [A, []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
              Unifying symbol A with li36 vars=set([F, X]), so far={} 
              Unifying term MATCHED A to li36 
              Unifying list [[]] with [[]] vars=set([X, F]), so far={A: li36} 
            Searching deep  45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. result binding [({A: li36}, None)] 
            nb1 = {A: li36} 
            nb  = {} 
            nb1 = {F: li48} 
            nb  = {A: li36} 
             ...searchDone, now   80) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           nbs=[({F: li45, A: li31}, {{23}:: li40 eval li45}), ({F: li48, A: li36}, {{23}:: li41 eval li48})] 
            QUERY2: called 1 terms, 1 bindings {X: li45}, (new: {F: li45, A: li31}) 
             45) short=4, {23}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]).
 
                new binding:  F -> li45 
                new binding:  A -> li31 
              binding   45) short=4, {23}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]). with {F: li45, A: li31} 
               Substition of variables {F: li45, A: li31} in list li50 
               ...yields NEW li53 = [[lambda, [x], x], [lambda, [x], x]] 
              Substition of variables {F: li45, A: li31} in list li51 
              ...yields NEW li54 = [[[lambda, [x], x], [lambda, [x], x]], []] 
             ...bound becomes   45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
            query iterating with 1 terms, 2 bindings:  F->li45  X->li45 ; 2 new bindings:  F->li45  A->li31  . 
             45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]).
 
            Looking at  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
            ...with vars() ExQuVars:() 
             Searching (S=45) 4 for  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li39 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [x], x]], []] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [x], x]] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [[lambda, [x], x]] with [[lambda, [y], [y, y]]] vars=set([X, F]), so far={} 
                 Unifying list [lambda, [x], x] with [lambda, [y], [y, y]] vars=set([X, F]), so far={} 
                  Unifying symbol lambda with lambda vars=set([X, F]), so far={} 
                  Unifying list [[x], x] with [[y], [y, y]] vars=set([F, X]), so far={} 
                   Unifying list [x] with [y] vars=set([F, X]), so far={} 
                    Unifying symbol x with y vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li40 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [x], x]], []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [x], x]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li41 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [x], x]], []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [x], x]] with [lambda, [y], [y, y]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li70 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [x], x]], []] with [x, [[x, [function, y, [y, y], []]]]] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [x], x]] with x vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
              ...searchDone, now   80) short=4, {23}(et([]) ::      li54(et([])? rdf:type(et([]) NeedsEval(et([]). 
            nbs=[] 
            Item state 80, returning total 0 
           Nested query returns 0 fo {F: li45, A: li31} 
            QUERY2: called 1 terms, 1 bindings {X: li45}, (new: {F: li48, A: li36}) 
             45) short=4, {23}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]).
 
                new binding:  F -> li48 
                new binding:  A -> li36 
              binding   45) short=4, {23}(et([]) ::      li51(et([A])? rdf:type(et([]) NeedsEval(et([]). with {F: li48, A: li36} 
               Substition of variables {F: li48, A: li36} in list li50 
               ...yields NEW li55 = [[lambda, [y], [y, y]], [lambda, [x], x]] 
              Substition of variables {F: li48, A: li36} in list li51 
              ...yields NEW li56 = [[[lambda, [y], [y, y]], [lambda, [x], x]], []] 
             ...bound becomes   45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
            query iterating with 1 terms, 2 bindings:  F->li48  X->li45 ; 2 new bindings:  F->li48  A->li36  . 
             45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]).
 
            Looking at  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
            ...with vars() ExQuVars:() 
             Searching (S=45) 4 for  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li39 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [x], x]], []] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [x], x]] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                 Unifying symbol lambda with lambda vars=set([F, X]), so far={} 
                 Unifying list [[y], [y, y]] with [[x], x] vars=set([X, F]), so far={} 
                  Unifying list [y] with [x] vars=set([X, F]), so far={} 
                   Unifying symbol y with x vars=set([X, F]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li40 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [x], x]], []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [x], x]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li41 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [x], x]], []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [x], x]] with [lambda, [y], [y, y]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li70 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [x], x]], []] with [x, [[x, [function, y, [y, y], []]]]] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [x], x]] with x vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
              ...searchDone, now   80) short=4, {23}(et([]) ::      li56(et([])? rdf:type(et([]) NeedsEval(et([]). 
            nbs=[] 
            Item state 80, returning total 0 
           Nested query returns 0 fo {F: li48, A: li36} 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), B: li31, X: li45} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), B: li36, X: li48}) 
            45) short=4, {23}(et([]) ::      li18(et([A, B, E])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {23}(et([]) ::      li19(et([A, E])?     eval(et([])        F(et([F])?.
 
               new binding:  E -> () 
               new binding:  B -> li36 
               new binding:  X -> li48 
             binding   45) short=4, {23}(et([]) ::      li18(et([A, B, E])? rdf:type(et([]) NeedsEval(et([]). with {E: (), B: li36, X: li48} 
              Substition of variables {E: (), B: li36, X: li48} in list li5 
              ...yields NEW li57 = [A, [lambda, [y], [y, y]]] 
             Substition of variables {E: (), B: li36, X: li48} in list li18 
             ...yields NEW li58 = [[A, [lambda, [y], [y, y]]], []] 
            ...bound becomes   45) short=4, {23}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]). 
             binding   45) short=2, {23}(et([]) ::      li19(et([A, E])?     eval(et([])        F(et([F])?. with {E: (), B: li36, X: li48} 
             Substition of variables {E: (), B: li36, X: li48} in list li19 
             ...yields NEW li52 = [A, []] 
            ...bound becomes   45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           query iterating with 2 terms, 1 bindings:  X->li48 ; 3 new bindings:  E->()  B->li36  X->li48  . 
            45) short=4, {23}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]).
 45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?.
 
           Looking at  45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           ...with vars(F) ExQuVars:(A) 
            Searching (S=45) 2 for  45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
            ...checking {{23}:: li40 eval li45} 
             Unifying list [A, []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
              Unifying symbol A with li31 vars=set([F, X]), so far={} 
              Unifying term MATCHED A to li31 
              Unifying list [[]] with [[]] vars=set([X, F]), so far={A: li31} 
            Searching deep  45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. result binding [({A: li31}, None)] 
            nb1 = {A: li31} 
            nb  = {} 
            nb1 = {F: li45} 
            nb  = {A: li31} 
            ...checking {{23}:: li41 eval li48} 
             Unifying list [A, []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
              Unifying symbol A with li36 vars=set([F, X]), so far={} 
              Unifying term MATCHED A to li36 
              Unifying list [[]] with [[]] vars=set([X, F]), so far={A: li36} 
            Searching deep  45) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. result binding [({A: li36}, None)] 
            nb1 = {A: li36} 
            nb  = {} 
            nb1 = {F: li48} 
            nb  = {A: li36} 
             ...searchDone, now   80) short=2, {23}(et([]) ::      li52(et([A])?     eval(et([])        F(et([F])?. 
           nbs=[({F: li45, A: li31}, {{23}:: li40 eval li45}), ({F: li48, A: li36}, {{23}:: li41 eval li48})] 
            QUERY2: called 1 terms, 1 bindings {X: li48}, (new: {F: li45, A: li31}) 
             45) short=4, {23}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]).
 
                new binding:  F -> li45 
                new binding:  A -> li31 
              binding   45) short=4, {23}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]). with {F: li45, A: li31} 
               Substition of variables {F: li45, A: li31} in list li57 
               ...yields NEW li38 = [[lambda, [x], x], [lambda, [y], [y, y]]] 
              Substition of variables {F: li45, A: li31} in list li58 
              ...yields NEW li39 = [[[lambda, [x], x], [lambda, [y], [y, y]]], []] 
             ...bound becomes   45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
            query iterating with 1 terms, 2 bindings:  F->li45  X->li48 ; 2 new bindings:  F->li45  A->li31  . 
             45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]).
 
            Looking at  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
            ...with vars() ExQuVars:() 
             Searching (S=45) 4 for  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li39 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [y], [y, y]]], []] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). result binding [({}, None)] 
             nb1 = {} 
             nb  = {} 
             ...checking {{23}:: li40 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [y], [y, y]]], []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [y], [y, y]]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li41 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [y], [y, y]]], []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [y], [y, y]]] with [lambda, [y], [y, y]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [x], x] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li70 rdf:type NeedsEval} 
              Unifying list [[[lambda, [x], x], [lambda, [y], [y, y]]], []] with [x, [[x, [function, y, [y, y], []]]]] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [x], x], [lambda, [y], [y, y]]] with x vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
              ...searchDone, now   80) short=4, {23}(et([]) ::      li39(et([])? rdf:type(et([]) NeedsEval(et([]). 
            nbs=[({}, {{23}:: li39 rdf:type NeedsEval})] 
             QUERY2: called 0 terms, 2 bindings {X: li48, F: li45}, (new: {}) 
              
             QUERY MATCH COMPLETE with bindings: {X: li48, F: li45} 
              Concluding tentatively...{X: li48, F: li45} 
              @@ Duplicate result: {X: li48, F: li45} 
            Nested query returns 0 fo {} 
            Item state 80, returning total 0 
           Nested query returns 0 fo {F: li45, A: li31} 
            QUERY2: called 1 terms, 1 bindings {X: li48}, (new: {F: li48, A: li36}) 
             45) short=4, {23}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]).
 
                new binding:  F -> li48 
                new binding:  A -> li36 
              binding   45) short=4, {23}(et([]) ::      li58(et([A])? rdf:type(et([]) NeedsEval(et([]). with {F: li48, A: li36} 
               Substition of variables {F: li48, A: li36} in list li57 
               ...yields NEW li61 = [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] 
              Substition of variables {F: li48, A: li36} in list li58 
              ...yields NEW li62 = [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] 
             ...bound becomes   45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
            query iterating with 1 terms, 2 bindings:  F->li48  X->li48 ; 2 new bindings:  F->li48  A->li36  . 
             45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]).
 
            Looking at  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
            ...with vars() ExQuVars:() 
             Searching (S=45) 4 for  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li39 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] with [[lambda, [x], x], [lambda, [y], [y, y]]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                 Unifying symbol lambda with lambda vars=set([F, X]), so far={} 
                 Unifying list [[y], [y, y]] with [[x], x] vars=set([X, F]), so far={} 
                  Unifying list [y] with [x] vars=set([X, F]), so far={} 
                   Unifying symbol y with x vars=set([X, F]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li40 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] with [[lambda, [x], x], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] with [lambda, [x], x] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li41 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] with [[lambda, [y], [y, y]], []] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] with [lambda, [y], [y, y]] vars=set([F, X]), so far={} 
                Unifying list [lambda, [y], [y, y]] with lambda vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
             ...checking {{23}:: li70 rdf:type NeedsEval} 
              Unifying list [[[lambda, [y], [y, y]], [lambda, [y], [y, y]]], []] with [x, [[x, [function, y, [y, y], []]]]] vars=set([F, X]), so far={} 
               Unifying list [[lambda, [y], [y, y]], [lambda, [y], [y, y]]] with x vars=set([F, X]), so far={} 
             Searching deep  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). result binding 0 
             ......fail:  45) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
              ...searchDone, now   80) short=4, {23}(et([]) ::      li62(et([])? rdf:type(et([]) NeedsEval(et([]). 
            nbs=[] 
            Item state 80, returning total 0 
           Nested query returns 0 fo {F: li48, A: li36} 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), B: li36, X: li48} 
          Item state 80, returning total 0 
        Rule try generated 0 new statements 
       Rule R8 gave 0. Affects:[R9]. 
        Trying rule R1 =================== 
                {23} ::       li2 rdf:type NeedsFindBinding.
        {23} ::         E rdf:first      li4.
        {23} ::         E rdf:rest        R.
 
         Query: created with 3 terms. (justone=0, wc={23}) 
                 {23} ::       li2 rdf:type NeedsFindBinding.
        {23} ::         E rdf:first      li4.
        {23} ::         E rdf:rest        R.
 
             Smart in:  [{23}] 
                  rdf:type needs to run: set([]) 
                  li2 needs to run: set([E, X]) 
                  NeedsFindBinding needs to run: set([]) 
          setup: 45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
                  rdf:first needs to run: set([]) 
                  E needs to run: set([E]) 
                  li4 needs to run: set([B, X]) 
          setup: 50) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
                  rdf:rest needs to run: set([]) 
                  E needs to run: set([E]) 
                  R needs to run: set([R]) 
          setup: 50) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          QUERY2: called 3 terms, 0 bindings {}, (new: {}) 
           45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 50) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 50) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=50) 0 for  50) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
            ...searchDone, now   30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 50) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 
          Looking at  50) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=50) 0 for  50) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
            ...searchDone, now   30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?. 
          nbs=[] 
          Item state 30, returning total 0 
          query iterating with 3 terms, 0 bindings: ; 0 new bindings:  . 
           45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]).
 30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([B, X])?.
 
          Looking at  45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          ...with vars(X,E,B) ExQuVars:(R) 
           Searching (S=45) 4 for  45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
           ...checking {{23}:: li39 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[[lambda, [x], x], [lambda, [y], [y, y]]], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li38 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li38 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li38} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li38} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li38, E: ()}, None)] 
           nb1 = {X: li38, E: ()} 
           nb  = {} 
           ...checking {{23}:: li40 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [x], x], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li31 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li31 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li31} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li31} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li31, E: ()}, None)] 
           nb1 = {X: li31, E: ()} 
           nb  = {} 
           ...checking {{23}:: li41 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [[lambda, [y], [y, y]], []] vars=set([X, E, B]), so far={} 
             Unifying symbol X with li36 vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to li36 
             Unifying list [E] with [[]] vars=set([E, B]), so far={X: li36} 
              Unifying symbol E with () vars=set([E, B]), so far={X: li36} 
              Unifying term MATCHED E to () 
           Searching deep  45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: li36, E: ()}, None)] 
           nb1 = {X: li36, E: ()} 
           nb  = {} 
           ...checking {{23}:: li70 rdf:type NeedsFindBinding} 
            Unifying list [X, E] with [x, [[x, [function, y, [y, y], []]]]] vars=set([X, E, B]), so far={} 
             Unifying symbol X with x vars=set([X, E, B]), so far={} 
             Unifying term MATCHED X to x 
             Unifying list [E] with [[[x, [function, y, [y, y], []]]]] vars=set([E, B]), so far={X: x} 
              Unifying symbol E with li66 vars=set([E, B]), so far={X: x} 
              Unifying term MATCHED E to li66 
           Searching deep  45) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). result binding [({X: x, E: li66}, None)] 
           nb1 = {X: x, E: li66} 
           nb  = {} 
            ...searchDone, now   80) short=4, {23}(et([]) ::       li2(et([E, X])? rdf:type(et([]) NeedsFindBinding(et([]). 
          nbs=[({E: (), X: li38}, {{23}:: li39 rdf:type NeedsFindBinding}), ({E: (), X: li31}, {{23}:: li40 rdf:type NeedsFindBinding}), ({E: (), X: li36}, {{23}:: li41 rdf:type NeedsFindBinding}), ({E: li66, X: x}, {{23}:: li70 rdf:type NeedsFindBinding})] 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li38}) 
            30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li38 
             binding   30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li38} 
            ...bound becomes   65) short=7730, {23}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li38} 
             Substition of variables {E: (), X: li38} in list li4 
             ...yields NEW li42 = [[[lambda, [x], x], [lambda, [y], [y, y]]], B] 
            ...bound becomes   65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li38  E->() ; 2 new bindings:  E->()  X->li38  . 
            65) short=7730, {23}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?.
 
           Looking at  65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li42(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li38} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li31}) 
            30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li31 
             binding   30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li31} 
            ...bound becomes   65) short=7730, {23}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li31} 
             Substition of variables {E: (), X: li31} in list li4 
             ...yields NEW li63 = [[lambda, [x], x], B] 
            ...bound becomes   65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li31  E->() ; 2 new bindings:  E->()  X->li31  . 
            65) short=7730, {23}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?.
 
           Looking at  65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li63(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li31} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: (), X: li36}) 
            30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> () 
               new binding:  X -> li36 
             binding   30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: (), X: li36} 
            ...bound becomes   65) short=7730, {23}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: (), X: li36} 
             Substition of variables {E: (), X: li36} in list li4 
             ...yields NEW li64 = [[lambda, [y], [y, y]], B] 
            ...bound becomes   65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->li36  E->() ; 2 new bindings:  E->()  X->li36  . 
            65) short=7730, {23}(et([]) ::        ()(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?.
 
           Looking at  65) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(()) 
            Builtin could not give result 80) short=7730, {23}(et([]) ::        ()(et([]) rdf:first(et([])     li64(et([B])?. 
           nbs=[] 
           Item state 80, returning total 0 
          Nested query returns 0 fo {E: (), X: li36} 
           QUERY2: called 2 terms, 0 bindings {}, (new: {E: li66, X: x}) 
            30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?.
 30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?.
 
               new binding:  E -> li66 
               new binding:  X -> x 
             binding   30) short=0, {23}(et([]) ::         E(et([E])? rdf:rest(et([])        R(et([R])?. with {E: li66, X: x} 
            ...bound becomes   65) short=7730, {23}(et([]) ::      li66(et([]) rdf:rest(et([])        R(et([R])?. 
             binding   30) short=0, {23}(et([]) ::         E(et([E])? rdf:first(et([])      li4(et([X, B])?. with {E: li66, X: x} 
             Substition of variables {E: li66, X: x} in list li4 
             ...yields NEW li71 = [x, B] 
            ...bound becomes   65) short=7730, {23}(et([]) ::      li66(et([]) rdf:first(et([])     li71(et([B])?. 
           query iterating with 2 terms, 2 bindings:  X->x  E->li66 ; 2 new bindings:  E->li66  X->x  . 
            65) short=7730, {23}(et([]) ::      li66(et([]) rdf:rest(et([])        R(et([R])?.
 65) short=7730, {23}(et([]) ::      li66(et([]) rdf:first(et([])     li71(et([B])?.
 
           Looking at  65) short=7730, {23}(et([]) ::      li66(et([]) rdf:first(et([])     li71(et([B])?. 
           ...with vars(B) ExQuVars:(R) 
            Builtin function call rdf:first(li66) 
           nbs=[({li71: li65}, None)] 
            QUERY2: called 1 terms, 2 bindings {E: li66, X: x}, (new: {li71: li65}) 
             65) short=7730, {23}(et([]) ::      li66(et([]) rdf:rest(et([])        R(et([R])?.
 
                new binding:  li71 -> li65 
            @@@  Not in existentials or variables but now bound: li71 
#Processed by Id: cwm.py,v 1.167 2005/01/10 19:15:22 syosi Exp 
        #    using base http://www.w3.org/2000/10/swap/test/turing/lambda.n3
        Traceback (most recent call last):
  File "/home/syosi/SWAP/cwm.py", line 652, in ?
    doCommand()
  File "/home/syosi/SWAP/cwm.py", line 563, in doCommand
    think(workingContext, mode=option_flags["think"])
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 62, in think
    return InferenceTask(knowledgeBase, ruleFormula, mode=mode, repeat=1).run()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 222, in run
    return self.runSmart()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 210, in runSmart
    total += cy.run()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 351, in run
    found = rule.once()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 443, in once
    total = query.resolve()
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 587, in resolve
    return self.unify(self.queue, self.variables, self.existentials)
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 827, in unify
    bindings.copy(), nb, evidence = evidence + [reason])
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 827, in unify
    bindings.copy(), nb, evidence = evidence + [reason])
  File "/home/syosi/cvs-trunk/WWW/2000/10/swap/query.py", line 715, in unify
    existentials.remove(pair[0]) # Can't match anything anymore, need exact match
KeyError: li71

Received on Tuesday, 24 May 2005 03:40:39 UTC